/* ==========================================================
   DP Travels — Sistema visual
   Paleta tomada del isotipo: azul vuelo + cian estela
   ========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --dp-blue:      #1c22d6;   /* azul vuelo — media luna exterior / avión */
  --dp-blue-dark: #12167f;
  --dp-cyan:      #2fc7ef;   /* cian estela — media luna interior */
  --dp-navy:      #0b0e2e;   /* texto principal */
  --dp-ice:       #f2f8fd;   /* fondo tenue */
  --dp-cloud:     #ffffff;
  --dp-gray:      #5c6480;
  --dp-line:      #e1e8f5;
  --dp-success:   #1fae6a;

  --font-display: 'Space Grotesk', sans-serif;
  --font-body:    'Inter', sans-serif;

  --radius: 16px;
  --shadow-soft: 0 10px 30px -12px rgba(11,14,46,.18);
  --shadow-lift: 0 20px 45px -18px rgba(28,34,214,.35);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--dp-navy);
  background:var(--dp-ice);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
button{ font-family:inherit; }

/* ---------- utilidades ---------- */
.container{ width:min(1080px, 92vw); margin-inline:auto; }
.visually-hidden{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap;
}

/* ---------- header ---------- */
.dp-header{
  padding:28px 0 10px;
}
.dp-brand{
  display:flex; align-items:center; gap:14px;
}
.dp-brand img{ width:46px; height:46px; object-fit:contain; }
.dp-brand-name{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.3rem;
  letter-spacing:.01em;
  color:var(--dp-navy);
}
.dp-brand-name span{ color:var(--dp-blue); }
.dp-brand-tag{
  font-size:.78rem;
  color:var(--dp-gray);
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-top:2px;
}

/* ---------- hero ---------- */
.dp-hero{
  padding:34px 0 8px;
}
.dp-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.78rem; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:var(--dp-blue);
  background:rgba(28,34,214,.08);
  padding:6px 14px; border-radius:999px;
  margin-bottom:18px;
}
.dp-eyebrow::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background:var(--dp-cyan);
}
.dp-hero h1{
  font-family:var(--font-display);
  font-size:clamp(1.9rem, 4vw, 2.7rem);
  line-height:1.12;
  margin:0 0 14px;
  max-width:16ch;
}
.dp-hero p{
  color:var(--dp-gray);
  font-size:1.02rem;
  max-width:52ch;
  line-height:1.6;
  margin:0;
}

/* flight path signature divider */
.dp-flightpath{ width:100%; height:80px; margin:26px 0 6px; overflow:visible; }
.dp-flightpath path{
  fill:none;
  stroke:url(#dpGrad);
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-dasharray:6 10;
  stroke-dashoffset:600;
  animation:dpDraw 1.8s ease-out forwards .2s;
}
.dp-flightpath .dp-plane{
  transform-origin:center;
  animation:dpFly 1.8s ease-out forwards .2s;
  offset-path:path('M2 60 C 180 60, 260 6, 460 6 S 760 60, 1058 20');
}
@keyframes dpDraw{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion: reduce){
  .dp-flightpath path{ animation:none; stroke-dashoffset:0; }
}

/* ---------- form card ---------- */
.dp-card{
  background:var(--dp-cloud);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  padding:clamp(22px, 4vw, 40px);
  margin:26px 0 60px;
  border:1px solid var(--dp-line);
}
.dp-card h2{
  font-family:var(--font-display);
  font-size:1.25rem;
  margin:0 0 4px;
}
.dp-card .dp-subtext{
  color:var(--dp-gray);
  font-size:.92rem;
  margin:0 0 28px;
}

.dp-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 20px;
}
.dp-field{ display:flex; flex-direction:column; gap:7px; }
.dp-field.full{ grid-column:1 / -1; }
.dp-field label{
  font-size:.82rem; font-weight:600;
  color:var(--dp-navy);
}
.dp-field .hint{ font-size:.76rem; color:var(--dp-gray); font-weight:400; }

.dp-field input[type=text],
.dp-field input[type=tel],
.dp-field input[type=number],
.dp-field select,
.dp-field textarea{
  border:1.5px solid var(--dp-line);
  border-radius:10px;
  padding:12px 14px;
  font-size:.95rem;
  font-family:inherit;
  color:var(--dp-navy);
  background:var(--dp-ice);
  transition:border-color .15s, box-shadow .15s, background .15s;
  width:100%;
}
.dp-field textarea{ resize:vertical; min-height:110px; line-height:1.5; }
.dp-field input:focus,
.dp-field select:focus,
.dp-field textarea:focus{
  outline:none;
  border-color:var(--dp-blue);
  background:var(--dp-cloud);
  box-shadow:0 0 0 4px rgba(28,34,214,.12);
}
.dp-field .error-msg{
  font-size:.76rem; color:#d33a3a; min-height:1em;
}
.dp-field.invalid input,
.dp-field.invalid select,
.dp-field.invalid textarea{
  border-color:#d33a3a;
}

/* photo uploader */
.dp-photo{
  display:flex; align-items:center; gap:16px;
  border:1.5px dashed var(--dp-line);
  border-radius:12px;
  padding:14px;
  background:var(--dp-ice);
  cursor:pointer;
  transition:border-color .15s, background .15s;
}
.dp-photo:hover{ border-color:var(--dp-cyan); }
.dp-photo-preview{
  width:64px; height:64px; border-radius:50%;
  background:var(--dp-cloud) center/cover no-repeat;
  border:2px solid var(--dp-line);
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--dp-gray); font-size:.7rem; text-align:center;
}
.dp-photo-text strong{ display:block; font-size:.88rem; }
.dp-photo-text span{ font-size:.78rem; color:var(--dp-gray); }
.dp-photo input[type=file]{ display:none; }

.dp-submit-row{
  margin-top:28px;
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
.dp-btn{
  appearance:none; border:none; cursor:pointer;
  background:linear-gradient(135deg, var(--dp-blue), var(--dp-blue-dark));
  color:#fff;
  font-family:var(--font-display);
  font-weight:600; font-size:.95rem;
  padding:14px 30px;
  border-radius:12px;
  box-shadow:var(--shadow-lift);
  transition:transform .15s, box-shadow .15s, opacity .15s;
  display:inline-flex; align-items:center; gap:10px;
}
.dp-btn:hover{ transform:translateY(-1px); }
.dp-btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; }
.dp-form-msg{ font-size:.88rem; }
.dp-form-msg.error{ color:#d33a3a; }
.dp-form-msg.success{ color:var(--dp-success); }

.dp-success-panel{
  text-align:center;
  padding:50px 20px 60px;
}
.dp-success-panel .dp-check{
  width:64px; height:64px; border-radius:50%;
  background:rgba(31,174,106,.12);
  color:var(--dp-success);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 20px;
  font-size:1.8rem;
}
.dp-success-panel h2{ font-family:var(--font-display); margin:0 0 8px; }
.dp-success-panel p{ color:var(--dp-gray); max-width:42ch; margin:0 auto; }

.dp-footer{
  text-align:center; padding:20px 0 40px;
  color:var(--dp-gray); font-size:.78rem;
}

@media (max-width:640px){
  .dp-grid{ grid-template-columns:1fr; }
}

/* ==========================================================
   Panel admin
   ========================================================== */
.dp-admin-body{ background:var(--dp-navy); min-height:100vh; }

.dp-login-wrap{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.dp-login-card{
  background:var(--dp-cloud); border-radius:var(--radius);
  padding:40px 34px; width:min(380px,100%);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
  text-align:center;
}
.dp-login-card img{ width:52px; margin:0 auto 14px; }
.dp-login-card h1{ font-family:var(--font-display); font-size:1.2rem; margin:0 0 24px; }
.dp-login-card .dp-field{ text-align:left; margin-bottom:14px; }
.dp-login-card .dp-btn{ width:100%; justify-content:center; margin-top:8px; }

.dp-admin-top{
  background:var(--dp-navy);
  border-bottom:1px solid rgba(255,255,255,.08);
  padding:20px 0;
}
.dp-admin-top .container{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.dp-admin-brand{ display:flex; align-items:center; gap:12px; color:#fff; }
.dp-admin-brand img{ width:34px; }
.dp-admin-brand strong{ font-family:var(--font-display); }
.dp-live{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.78rem; color:#bcd2ff; font-weight:600;
  letter-spacing:.03em; text-transform:uppercase;
}
.dp-live .dot{
  width:8px; height:8px; border-radius:50%; background:var(--dp-cyan);
  box-shadow:0 0 0 0 rgba(47,199,239,.6);
  animation:dpPulse 1.8s infinite;
}
@keyframes dpPulse{
  0%{ box-shadow:0 0 0 0 rgba(47,199,239,.55); }
  70%{ box-shadow:0 0 0 10px rgba(47,199,239,0); }
  100%{ box-shadow:0 0 0 0 rgba(47,199,239,0); }
}
.dp-logout{
  font-size:.82rem; color:#bcd2ff; text-decoration:none;
  border:1px solid rgba(255,255,255,.2); padding:8px 16px; border-radius:8px;
}
.dp-logout:hover{ border-color:#fff; color:#fff; }

.dp-admin-main{ padding:32px 0 60px; }

.dp-stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:16px; margin-bottom:26px;
}
.dp-stat{
  background:var(--dp-cloud); border-radius:14px; padding:18px 20px;
  box-shadow:var(--shadow-soft);
}
.dp-stat .n{ font-family:var(--font-display); font-size:1.8rem; color:var(--dp-blue); }
.dp-stat .l{ font-size:.78rem; color:var(--dp-gray); text-transform:uppercase; letter-spacing:.04em; }

.dp-toolbar{
  display:flex; gap:12px; flex-wrap:wrap; margin-bottom:18px;
}
.dp-toolbar input[type=search]{
  flex:1; min-width:200px;
  border:1.5px solid var(--dp-line); border-radius:10px;
  padding:11px 14px; font-size:.9rem; background:var(--dp-cloud);
}
.dp-toolbar input[type=search]:focus{ outline:none; border-color:var(--dp-blue); }

.dp-list{ display:flex; flex-direction:column; gap:12px; }
.dp-row{
  background:var(--dp-cloud); border-radius:14px;
  box-shadow:var(--shadow-soft);
  padding:16px 18px;
  display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center;
  transition:background .3s;
}
.dp-row.dp-new{ animation:dpHighlight 2.4s ease-out; }
@keyframes dpHighlight{
  0%{ background:rgba(47,199,239,.22); }
  100%{ background:var(--dp-cloud); }
}
.dp-row .avatar{
  width:52px; height:52px; border-radius:50%; object-fit:cover;
  background:var(--dp-ice); border:1px solid var(--dp-line);
}
.dp-row .info strong{ font-size:.98rem; }
.dp-row .info .meta{ font-size:.8rem; color:var(--dp-gray); margin-top:2px; }
.dp-row .badge{
  display:inline-block; font-size:.7rem; font-weight:600;
  padding:2px 9px; border-radius:999px; margin-left:8px;
  background:rgba(28,34,214,.1); color:var(--dp-blue);
}
.dp-row .actions{ display:flex; gap:8px; align-items:center; }
.dp-row .actions a, .dp-row .actions button{
  font-size:.8rem; text-decoration:none;
  border:1px solid var(--dp-line); border-radius:8px;
  padding:8px 12px; background:var(--dp-ice); cursor:pointer;
  color:var(--dp-navy);
}
.dp-row .actions .wa{ color:var(--dp-success); border-color:rgba(31,174,106,.3); }

.dp-detail{
  grid-column:1 / -1; display:none; margin-top:14px;
  border-top:1px solid var(--dp-line); padding-top:14px;
  font-size:.9rem; line-height:1.6; color:var(--dp-navy);
}
.dp-row.open .dp-detail{ display:block; }

.dp-empty{
  text-align:center; padding:60px 20px; color:var(--dp-gray);
}
