:root{
  --navy:#0E2A6B;
  --navy-dark:#091c4a;
  --orange:#F26522;
  --orange-dark:#d4550f;
  --gray-bg:#f4f6fb;
  --gray-border:#d7dce6;
  --text:#1c2333;
  --ok:#1e8a4c;
  --ok-bg:#e6f6ec;
  --err:#c0392b;
  --err-bg:#fdecea;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:Calibri,'Segoe UI',Arial,sans-serif;
  background:var(--gray-bg);
  color:var(--text);
}

.site-header{
  background:var(--navy);
  color:#fff;
  padding:18px 24px;
  display:flex;
  align-items:center;
  gap:16px;
  box-shadow:0 2px 8px rgba(14,42,107,.25);
}
.site-header img{height:56px;width:56px;display:block}
.site-header h1{font-size:1.25rem;margin:0;font-weight:700}
.site-header p{margin:2px 0 0;font-size:.85rem;color:#cfd9f7}

.container{
  max-width:900px;
  margin:0 auto;
  padding:24px 16px 60px;
}

.card{
  background:#fff;
  border:1px solid var(--gray-border);
  border-radius:10px;
  margin-bottom:22px;
  overflow:hidden;
}

.card-header{
  background:#eef1f8;
  border-bottom:1px solid var(--gray-border);
  padding:12px 20px;
  font-weight:700;
  color:var(--navy);
  font-size:1.02rem;
  letter-spacing:.2px;
}

.card-body{padding:20px}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px 20px;
}

.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-weight:600;font-size:.88rem;color:#333}
.field .hint{font-size:.78rem;color:#6b7280;font-weight:400}

input[type=text],
input[type=email],
input[type=date],
select{
  border:1px solid var(--gray-border);
  border-radius:6px;
  padding:10px 12px;
  font-size:.95rem;
  font-family:inherit;
  background:#fff;
  color:var(--text);
}
input:focus,select:focus{
  outline:none;
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(14,42,107,.15);
}
input.error,select.error{border-color:var(--err);background:var(--err-bg)}

.file-drop{
  border:2px dashed var(--gray-border);
  border-radius:8px;
  padding:16px;
  text-align:center;
  background:#fafbfd;
  cursor:pointer;
  transition:border-color .15s;
}
.file-drop:hover{border-color:var(--navy)}
.file-drop.has-file{border-color:var(--ok);background:var(--ok-bg)}
.file-drop input[type=file]{display:none}
.file-drop .fd-label{font-weight:600;color:var(--navy);font-size:.9rem}
.file-drop .fd-sub{font-size:.78rem;color:#6b7280;margin-top:4px}
.file-drop .fd-filename{font-size:.82rem;color:var(--ok);margin-top:6px;word-break:break-all}

.photo-preview{
  width:130px;height:130px;border-radius:8px;border:1px solid var(--gray-border);
  background:#eef1f8 center/cover no-repeat;
  display:flex;align-items:center;justify-content:center;color:#9aa4bd;font-size:.75rem;
  margin:0 auto 10px;
}

/* Botón grande de renovación */
.renew-box{
  background:linear-gradient(135deg,#fff,#fdf3ec);
  border:2px solid var(--orange);
  border-radius:10px;
  padding:18px 20px;
  text-align:center;
  margin:24px 0;
}
.renew-box p{margin:0 0 10px;color:#555;font-size:.9rem}
.btn-renew{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--orange);
  color:#fff;
  border:none;
  border-radius:8px;
  padding:16px 28px;
  font-size:1.05rem;
  font-weight:700;
  cursor:pointer;
  transition:background .15s,transform .05s;
}
.btn-renew:hover{background:var(--orange-dark)}
.btn-renew:active{transform:scale(.98)}
.btn-renew.active{background:var(--ok);}
.renew-status{margin-top:12px;font-size:.9rem;font-weight:600}
.renew-status.ok{color:var(--ok)}
.renew-status.err{color:var(--err)}
.renew-status.checking{color:#6b7280}

#quick-renew-fields{
  text-align:left;
  margin-top:18px;
  padding-top:18px;
  border-top:1px dashed #f2b98c;
}
#quick-renew-fields > p{text-align:center}

.vigor-choice{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:10px;
}
.btn-choice{
  flex:1 1 200px;
  padding:13px 16px;
  border-radius:8px;
  border:2px solid var(--gray-border);
  background:#fff;
  font-weight:700;
  font-size:.92rem;
  font-family:inherit;
  cursor:pointer;
  color:#444;
  transition:border-color .15s,background .15s,color .15s;
}
.btn-choice:hover{border-color:var(--navy)}
.btn-choice.active-ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.btn-choice.active-bad{border-color:var(--err);background:var(--err-bg);color:var(--err)}

.btn-primary{
  background:var(--navy);
  color:#fff;
  border:none;
  border-radius:8px;
  padding:14px 30px;
  font-size:1.05rem;
  font-weight:700;
  cursor:pointer;
  width:100%;
}
.btn-primary:hover{background:var(--navy-dark)}
.btn-primary:disabled{opacity:.6;cursor:not-allowed}

.btn-secondary{
  background:#fff;
  color:var(--navy);
  border:1px solid var(--navy);
  border-radius:8px;
  padding:9px 16px;
  font-size:.9rem;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
}
.btn-secondary:hover{background:#eef1f8}

.alert{padding:12px 16px;border-radius:8px;font-size:.9rem;margin-bottom:18px}
.alert-ok{background:var(--ok-bg);color:var(--ok);border:1px solid #b9e6c7}
.alert-err{background:var(--err-bg);color:var(--err);border:1px solid #f3c1ba}

.required:after{content:" *";color:var(--err)}

footer.site-footer{
  text-align:center;
  font-size:.78rem;
  color:#8b93a7;
  padding:20px;
}

/* Panel admin */
.admin-topbar{
  background:var(--navy);color:#fff;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;
}
.admin-topbar .brand{display:flex;align-items:center;gap:12px}
.admin-topbar img{height:38px;width:38px}
.admin-topbar a{color:#cfd9f7;text-decoration:none;font-size:.85rem}
.admin-topbar a:hover{color:#fff}

.login-wrap{
  max-width:380px;margin:80px auto;background:#fff;border:1px solid var(--gray-border);
  border-radius:10px;padding:32px;text-align:center;
}
.login-wrap img{height:70px;margin-bottom:14px}
.login-wrap h2{color:var(--navy);margin-top:0}
.login-wrap .field{text-align:left;margin-bottom:14px}

table.data-table{width:100%;border-collapse:collapse;background:#fff;font-size:.88rem}
table.data-table th,table.data-table td{padding:10px 12px;border-bottom:1px solid var(--gray-border);text-align:left}
table.data-table th{background:#eef1f8;color:var(--navy);font-weight:700;white-space:nowrap}
table.data-table tr:hover{background:#f8f9fd}
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700}
.badge-renov{background:#e6f0ff;color:#1554b8}
.badge-nuevo{background:#eef1f8;color:#555}
.badge-caducado{background:var(--err-bg);color:var(--err)}
.badge-pendiente{background:#fff4e0;color:#b5710a}
.badge-revisado{background:var(--ok-bg);color:var(--ok)}

.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.toolbar input[type=text]{padding:8px 10px}

.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.detail-grid .field-view{padding:10px 0;border-bottom:1px solid #eef1f8}
.detail-grid .field-view label{display:block;font-size:.75rem;color:#8b93a7;text-transform:uppercase;letter-spacing:.4px}
.detail-grid .field-view span{font-size:.98rem}
.doc-images{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}
.doc-images a{display:block}
.doc-images img{width:220px;border:1px solid var(--gray-border);border-radius:8px}

@media (max-width:600px){
  .detail-grid{grid-template-columns:1fr}
  .site-header h1{font-size:1.05rem}
}
