/* OV Digital Pet — tarjeta pública (diseño aprobado) */
.ov-dp-page{
  --ov-dp-paper:#F7F5FF;
  --ov-dp-paper-2:#FFFFFF;
  --ov-dp-ink:#241B3A;
  --ov-dp-muted:#847E9C;
  --ov-dp-coral:#FF6F59;
  --ov-dp-sunflower:#FFC145;
  --ov-dp-sky:#3E9FDE;
  --ov-dp-mint:#2FBE86;
  --ov-dp-plum:#7C5CFF;
  --ov-dp-line: rgba(36,27,58,0.08);
  --ov-dp-charcoal:#3A3A3A;

  background: var(--ov-dp-paper);
  font-family:'Nunito', sans-serif;
  color: var(--ov-dp-ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:100vh;
  box-sizing:border-box;
  padding: 28px 16px 60px;
}

.ov-dp-card{
  width:100%;
  max-width:400px;
  background: var(--ov-dp-paper-2);
  border-radius:28px;
  overflow:hidden;
  box-shadow: 0 20px 45px -18px rgba(124,92,255,0.35), 0 4px 14px -6px rgba(36,27,58,0.12);
}

.ov-dp-header{
  position:relative;
  padding:20px 20px 46px;
  background: linear-gradient(135deg, var(--ov-dp-coral) 0%, #FF8A5B 40%, var(--ov-dp-plum) 100%);
  color:#fff;
  overflow:hidden;
}
.ov-dp-header-top{ position:relative; display:flex; justify-content:space-between; align-items:center; }
.ov-dp-tag-id{
  font-family:'Space Mono', monospace; font-size:11px; letter-spacing:0.08em;
  background: rgba(255,255,255,0.22); padding:4px 10px; border-radius:100px;
}
.ov-dp-status{
  display:flex; align-items:center; gap:5px;
  font-family:'Space Mono', monospace; font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase;
  background: rgba(255,255,255,0.94); color: var(--ov-dp-mint);
  padding:5px 10px 5px 8px; border-radius:100px; font-weight:700;
}
.ov-dp-status.is-perdido{ color: var(--ov-dp-coral); }
.ov-dp-status.is-fallecido{ color: var(--ov-dp-charcoal); }
.ov-dp-status .ov-dp-dot{ width:6px; height:6px; border-radius:50%; background: currentColor; }

.ov-dp-photo{
  position:relative; width:104px; height:104px; margin:18px auto 0;
  background:#fff; border-radius:20px; padding:5px; transform: rotate(-4deg);
  box-shadow: 0 12px 24px -10px rgba(0,0,0,0.3);
}
.ov-dp-photo img{ width:100%; height:100%; object-fit:cover; border-radius:15px; display:block; }
.ov-dp-photo.is-fallecido img{ filter: grayscale(1); }
.ov-dp-header.is-fallecido{ filter: grayscale(0.55); }

.ov-dp-bow{
  position:absolute; top:-8px; right:-8px; width:34px; height:34px;
  filter: drop-shadow(0 3px 4px rgba(0,0,0,0.4));
}
.ov-dp-memorial{
  font-family:'Nunito', sans-serif; font-weight:700; font-size:12.5px;
  color:#fff; opacity:0.95; margin-top:6px; letter-spacing:0.01em;
}

.ov-dp-name-block{ text-align:center; margin-top:14px; }
.ov-dp-pet-name{ font-family:'Fredoka', sans-serif; font-weight:700; font-size:30px; margin:0; line-height:1.1; }
.ov-dp-pet-sub{ font-family:'Nunito', sans-serif; font-weight:600; font-size:13.5px; opacity:0.92; margin-top:4px; }

.ov-dp-body{ padding: 22px 20px 20px; }

.ov-dp-lost-zone{
  background: var(--ov-dp-coral, #FF6F59); color:#fff; font-weight:800; font-size:13px;
  text-align:center; padding:11px 14px; border-radius:14px; margin-bottom:18px;
}

.ov-dp-chip-row{ display:flex; gap:8px; margin-bottom:20px; }
.ov-dp-chip{ flex:1; text-align:center; border-radius:16px; padding:10px 6px; color:#fff; }
.ov-dp-chip .ov-dp-c-label{ display:block; font-family:'Space Mono', monospace; font-size:9px; letter-spacing:0.1em; text-transform:uppercase; opacity:0.85; margin-bottom:4px; }
.ov-dp-chip .ov-dp-c-value{ font-family:'Space Mono', monospace; font-weight:700; font-size:14.5px; }
.ov-dp-chip-sky{ background: var(--ov-dp-sky); }
.ov-dp-chip-sunflower{ background: var(--ov-dp-sunflower); color:#3a2a00; }
.ov-dp-chip-plum{ background: var(--ov-dp-plum); }

.ov-dp-block{ border-radius:18px; padding:16px 16px 18px; margin-bottom:14px; border:1.5px solid var(--ov-dp-line); }
.ov-dp-block-emergency{ background: rgba(255,111,89,0.06); border-color: rgba(255,111,89,0.25); margin-bottom:18px; }

.ov-dp-block-memorial{
  background: rgba(124,92,255,0.06); border-color: rgba(124,92,255,0.2);
  text-align:center; padding:26px 20px; margin-bottom:18px;
}
.ov-dp-memorial-icon{ font-size:26px; display:block; margin-bottom:10px; }
.ov-dp-memorial-dates{
  font-family:'Space Mono', monospace; font-size:13px; letter-spacing:0.03em;
  color: var(--ov-dp-plum, #7C5CFF); margin:0 0 10px;
}
.ov-dp-memorial-text{
  font-family:'Nunito', sans-serif; font-size:14px; line-height:1.6;
  color: var(--ov-dp-ink, #241B3A); margin:0; font-style:italic;
}
.ov-dp-block-health{ background: rgba(47,190,134,0.06); border-color: rgba(47,190,134,0.25); position:relative; }

.ov-dp-block-title{ display:flex; align-items:center; gap:7px; font-family:'Fredoka', sans-serif; font-weight:600; font-size:14.5px; margin:0 0 12px; }
.ov-dp-block-emergency .ov-dp-block-title{ color: var(--ov-dp-coral); }
.ov-dp-block-health .ov-dp-block-title{ color: var(--ov-dp-mint); }

.ov-dp-contact-row{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:14px; padding-bottom:14px; border-bottom:1px dashed rgba(255,111,89,0.3); }
.ov-dp-contact-row:last-child{ margin-bottom:0; padding-bottom:0; border-bottom:none; }
.ov-dp-c-label-sm{ display:block; font-family:'Space Mono', monospace; font-size:9.5px; color: var(--ov-dp-muted); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:4px; }
.ov-dp-c-name{ display:block; font-weight:800; font-size:14.5px; margin-bottom:2px; }
.ov-dp-c-phone{ font-family:'Space Mono', monospace; font-size:11.5px; color: var(--ov-dp-muted); }

.ov-dp-btn{ flex-shrink:0; display:inline-flex; align-items:center; gap:6px; text-decoration:none; font-family:'Nunito', sans-serif; font-weight:800; font-size:12px; padding:9px 13px; border-radius:100px; transition: transform 180ms ease; white-space:nowrap; }
.ov-dp-btn:hover{ transform: translateY(-2px); }
.ov-dp-btn-coral{ background: var(--ov-dp-coral); color:#fff; box-shadow:0 6px 14px -6px rgba(255,111,89,0.6); }
.ov-dp-btn-outline{ background:#fff; color: var(--ov-dp-ink); border:1.5px solid var(--ov-dp-line); }
.ov-dp-btn svg{ width:13px; height:13px; }

.ov-dp-health-row{ display:flex; gap:6px; font-size:13px; line-height:1.5; margin-bottom:6px; }
.ov-dp-health-row:last-child{ margin-bottom:0; }
.ov-dp-h-label{ font-weight:800; color: var(--ov-dp-mint); flex-shrink:0; }
.ov-dp-h-value{ color: var(--ov-dp-ink); }

.ov-dp-vax-sticker{ position:absolute; top:-10px; right:14px; background: var(--ov-dp-mint); color:#fff; font-family:'Space Mono', monospace; font-size:9.5px; font-weight:700; padding:6px 10px; border-radius:100px; border:2.5px solid #fff; box-shadow:0 5px 12px -4px rgba(47,190,134,0.6); transform: rotate(4deg); }

.ov-dp-footer{ display:flex; justify-content:center; font-family:'Space Mono', monospace; font-size:10px; color: var(--ov-dp-muted); padding: 4px 4px 0; }

.ov-dp-credit{ text-align:center; margin-top:16px; font-family:'Space Mono', monospace; font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color: var(--ov-dp-muted); opacity:0.7; }

@media (prefers-reduced-motion: reduce){ .ov-dp-card *{ animation: none !important; transition: none !important; } }
@media (max-width:360px){ .ov-dp-pet-name{ font-size:26px; } .ov-dp-chip-row{ flex-wrap:wrap; } }

/* Panel del dueño (/mi-mascota/) */
.ov-dp-owner-page{
  background: var(--ov-dp-paper, #F7F5FF);
  font-family:'Nunito', sans-serif;
  color: var(--ov-dp-ink, #241B3A);
  min-height:100vh;
  box-sizing:border-box;
  display:flex;
  justify-content:center;
  padding: 40px 16px 60px;
}
.ov-dp-owner-card{
  width:100%; max-width:420px;
  background:#fff;
  border-radius:24px;
  padding:28px 24px 26px;
  box-shadow: 0 20px 45px -18px rgba(124,92,255,0.3), 0 4px 14px -6px rgba(36,27,58,0.1);
  height:fit-content;
}
.ov-dp-owner-eyebrow{
  font-family:'Space Mono', monospace; font-size:10.5px; letter-spacing:0.14em;
  text-transform:uppercase; color: var(--ov-dp-muted, #847E9C); margin:0 0 4px;
}
.ov-dp-owner-title{
  font-family:'Fredoka', sans-serif; font-weight:700; font-size:26px; margin:0 0 22px;
}
.ov-dp-owner-msg{
  font-size:13px; font-weight:700; padding:10px 14px; border-radius:12px; margin-bottom:18px;
}
.ov-dp-owner-msg.is-ok{ background: rgba(47,190,134,0.12); color: var(--ov-dp-mint, #2FBE86); }
.ov-dp-owner-msg.is-error{ background: rgba(255,111,89,0.12); color: var(--ov-dp-coral, #FF6F59); }

.ov-dp-owner-fieldset{ border:none; padding:0; margin:0 0 22px; }
.ov-dp-owner-legend{
  font-family:'Fredoka', sans-serif; font-weight:600; font-size:14px; color: var(--ov-dp-coral, #FF6F59);
  margin:0 0 10px; padding:0;
}
.ov-dp-owner-radio{
  display:flex; align-items:center; gap:8px; font-weight:700; font-size:14px;
  padding:9px 0; cursor:pointer;
}
.ov-dp-owner-radio input{ width:16px; height:16px; accent-color: var(--ov-dp-coral, #FF6F59); }

.ov-dp-owner-field{ margin-bottom:14px; }
.ov-dp-owner-field label{
  display:block; font-family:'Space Mono', monospace; font-size:9.5px; letter-spacing:0.08em;
  text-transform:uppercase; color: var(--ov-dp-muted, #847E9C); margin-bottom:5px;
}
.ov-dp-owner-field input[type="text"],
.ov-dp-owner-field input[type="tel"],
.ov-dp-owner-field input[type="date"],
.ov-dp-owner-field select,
.ov-dp-owner-field textarea{
  width:100%; box-sizing:border-box; font-family:'Nunito', sans-serif; font-size:14px;
  padding:10px 12px; border-radius:12px; border:1.5px solid var(--ov-dp-line, rgba(36,27,58,0.08));
  background:#FAFAFD; color: var(--ov-dp-ink, #241B3A);
}
.ov-dp-owner-field input:focus,
.ov-dp-owner-field select:focus,
.ov-dp-owner-field textarea:focus{ outline:2px solid var(--ov-dp-coral, #FF6F59); outline-offset:1px; }
.ov-dp-owner-field textarea{ resize:vertical; min-height:60px; }
.ov-dp-owner-checkbox{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:13px; }

.ov-dp-owner-submit{
  width:100%; border:none; cursor:pointer;
  background: linear-gradient(135deg, var(--ov-dp-coral, #FF6F59), var(--ov-dp-plum, #7C5CFF));
  color:#fff; font-family:'Nunito', sans-serif; font-weight:800; font-size:14.5px;
  padding:13px; border-radius:100px; margin-top:6px;
  box-shadow:0 10px 20px -8px rgba(255,111,89,0.5);
}

.ov-dp-owner-link-box{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:#FAFAFD; border:1.5px solid var(--ov-dp-line, rgba(36,27,58,0.08));
  border-radius:12px; padding:10px 14px; margin-bottom:18px;
}
.ov-dp-owner-link-label{
  font-family:'Space Mono', monospace; font-size:9.5px; letter-spacing:0.08em;
  text-transform:uppercase; color: var(--ov-dp-muted, #847E9C); flex-shrink:0;
}
.ov-dp-owner-link-right{ display:flex; align-items:center; gap:8px; min-width:0; }
.ov-dp-owner-link-box a{
  font-family:'Space Mono', monospace; font-size:12.5px; font-weight:700;
  color: var(--ov-dp-plum, #7C5CFF); text-decoration:none; overflow-wrap:anywhere; text-align:right;
}
.ov-dp-owner-link-box a:hover{ text-decoration:underline; }
.ov-dp-owner-copy{
  flex-shrink:0; display:flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:8px; border:1.5px solid var(--ov-dp-line, rgba(36,27,58,0.08));
  background:#fff; color: var(--ov-dp-muted, #847E9C); cursor:pointer; padding:0;
}
.ov-dp-owner-copy svg{ width:14px; height:14px; }
.ov-dp-owner-copy:hover{ color: var(--ov-dp-plum, #7C5CFF); border-color: var(--ov-dp-plum, #7C5CFF); }
.ov-dp-owner-copy.is-copied{ color: var(--ov-dp-mint, #2FBE86); border-color: var(--ov-dp-mint, #2FBE86); }

.ov-dp-owner-qr{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:16px; margin-bottom:22px; border-radius:16px;
  background:#FAFAFD; border:1.5px solid var(--ov-dp-line, rgba(36,27,58,0.08));
}
.ov-dp-owner-qr img{ border-radius:10px; }
.ov-dp-owner-qr-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.ov-dp-owner-qr-download{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'Nunito', sans-serif; font-weight:800; font-size:12.5px;
  color: var(--ov-dp-ink, #241B3A); text-decoration:none;
  border:1.5px solid var(--ov-dp-line, rgba(36,27,58,0.08)); border-radius:100px;
  padding:7px 14px; background:#fff;
}
.ov-dp-owner-qr-download:hover{ border-color: var(--ov-dp-coral, #FF6F59); color: var(--ov-dp-coral, #FF6F59); }

.ov-dp-owner-photo-current{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ov-dp-owner-photo-current img{ width:56px; height:56px; object-fit:cover; border-radius:12px; flex-shrink:0; }
.ov-dp-owner-field input[type="file"]{
  width:100%; box-sizing:border-box; font-family:'Nunito', sans-serif; font-size:12.5px;
  padding:8px 10px; border-radius:12px; border:1.5px dashed var(--ov-dp-line, rgba(36,27,58,0.08));
  background:#FAFAFD;
}
.ov-dp-owner-hint{ display:block; font-size:11px; color: var(--ov-dp-muted, #847E9C); margin-top:4px; }
