/* ===== Escala general (igual que todo designtech.uy) =====
   Los tamaños están en rem: esto achica textos, tarjetas y márgenes en
   proporción (PC 70%, tablet 80%, celular 90%). */
html { font-size: 70%; }
@media (max-width: 1024px) { html { font-size: 80%; } }
@media (max-width: 600px)  { html { font-size: 90%; } }
/* Botones y campos: el navegador les pone 13.33px fijos; así escalan igual */
:where(button, input, select, textarea) { font-size: .8333rem; }
/* En celular los campos quedan en 16px: con menos, el iPhone hace zoom al tocarlos */
@media (max-width: 600px) { :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea) { font-size: 16px !important; } }

:root{
  --dt-blue:#003366;
  --dt-blue-2:#00449C;
  --dt-orange:#F47C2B;
  --dt-orange-2:#ff9a45;
  --dt-bg:#f4f7fb;
  --dt-panel:#ffffff;
  --dt-text:#162033;
  --dt-muted:#667085;
  --dt-line:#cfd9ea;
  --dt-soft:#eef3ff;
  --dt-danger:#b42318;
  --dt-success:#2e7d32;
  --dt-edit-highlight:#003b8b;
  --dt-shadow:0 .375rem .875rem rgba(0,0,0,.06);
  --dt-shadow-hover:0 .875rem 1.875rem rgba(0,51,102,.14);
  --dt-radius:.75rem;
  --dt-radius-sm:.5rem;
  --dt-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --dt-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}

*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  min-height:100%;
  margin:0;
  color:var(--dt-text);
  font-family:var(--dt-font);
  line-height:1.5;
  background:
    radial-gradient(circle at top left, rgba(244,124,43,.10), transparent 32rem),
    linear-gradient(180deg,#f8fbff 0%,var(--dt-bg) 100%);
}
body::before{
  content:"";
  display:block;
  height:.375rem;
  background:linear-gradient(90deg,var(--dt-blue),var(--dt-blue-2),var(--dt-orange));
}

a{color:var(--dt-blue-2);text-decoration:none;font-weight:650}
a:hover{color:var(--dt-orange);text-decoration:none}

.container{
  width:min(57.5rem,100%);
  margin:1.5rem auto 2.125rem;
  padding:0 .75rem;
}

.panel{
  position:relative;
  background:var(--dt-panel);
  border:1px solid rgba(207,217,234,.72);
  border-radius:var(--dt-radius);
  box-shadow:var(--dt-shadow);
  padding:1.125rem;
  margin-bottom:1rem;
  overflow:hidden;
}
.panel::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:.1875rem;
  background:linear-gradient(90deg,var(--dt-blue),var(--dt-orange));
  opacity:.95;
}
.panel.hero{
  padding:1.875rem 1.375rem;
  background:
    linear-gradient(135deg,rgba(0,51,102,.97),rgba(0,68,156,.93)),
    var(--dt-blue);
  color:#fff;
  border-color:rgba(0,51,102,.25);
}
.panel.hero::before{background:var(--dt-orange);height:.25rem}
.panel.hero .muted{color:#e8f3ff}
.panel.hero h1{color:#fff}
.panel.soft{
  background:#fafcff;
  border:1px solid var(--dt-line);
  box-shadow:none;
}
.panel.soft::before{opacity:.25}

h1,h2,h3{
  color:var(--dt-blue);
  line-height:1.16;
  letter-spacing:-.02em;
  margin:0 0 .75rem;
}
h1{font-size:clamp(2rem,4vw,3rem)}
h2{font-size:clamp(1.35rem,2.6vw,2rem)}
p{margin:0 0 .75rem}
.muted{color:var(--dt-muted);font-size:.94rem}
.error{
  color:var(--dt-danger);
  font-weight:700;
  background:#fff1f0;
  border:1px solid #ffd4d0;
  border-radius:var(--dt-radius-sm);
  padding:.625rem .75rem;
}

.actions{
  display:flex;
  flex-wrap:wrap;
  gap:.625rem;
  margin:1rem 0 .25rem;
}
.btn,button[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.625rem;
  border:1px solid var(--dt-blue-2);
  border-radius:var(--dt-radius-sm);
  background:var(--dt-blue-2);
  color:#fff;
  padding:.625rem .875rem;
  text-decoration:none;
  cursor:pointer;
  font:inherit;
  font-weight:700;
  line-height:1.1;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,border-color .16s ease,background .16s ease,color .16s ease;
}
.btn:hover,button[type="submit"]:hover{
  color:#fff;
  filter:brightness(1.05);
  transform:translateY(-1px);
  box-shadow:0 .5rem 1.125rem rgba(0,68,156,.18);
}
.btn.secondary{
  background:#fff;
  color:var(--dt-blue);
  border-color:var(--dt-line);
}
.btn.secondary:hover{
  color:var(--dt-blue);
  border-color:var(--dt-orange);
  box-shadow:0 .5rem 1.125rem rgba(244,124,43,.15);
}
.panel.hero .btn.secondary{
  background:rgba(255,255,255,.10);
  color:#fff;
  border-color:rgba(255,255,255,.34);
}
.panel.hero .btn.secondary:hover{border-color:var(--dt-orange)}

label{
  display:block;
  margin:.75rem 0 .375rem;
  color:var(--dt-blue);
  font-weight:700;
}
input,textarea,select{
  width:100%;
  border:1px solid var(--dt-line);
  border-radius:var(--dt-radius-sm);
  background:#fff;
  color:var(--dt-text);
  padding:.625rem .75rem;
  font:inherit;
  outline:none;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
textarea{min-height:6rem;resize:vertical}
input:focus,textarea:focus,select:focus{
  border-color:var(--dt-blue-2);
  box-shadow:0 0 0 .1875rem rgba(0,68,156,.12);
}
input[type="range"]{
  accent-color:var(--dt-blue-2);
  padding:.5rem 0;
  border:0;
  background:transparent;
}
input[type="checkbox"]{
  width:auto;
  accent-color:var(--dt-blue-2);
}
.pass{font-family:var(--dt-mono);font-size:1.03rem}

.dtv-file-picker{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
  margin:.375rem 0 1rem;
}
.dtv-file-btn{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin:0;
  cursor:pointer;
}
.dtv-file-icon{flex:0 0 auto}
.dtv-support-actions{align-items:center}
.dtv-support-actions .btn-icon-only{
  width:2.625rem;
  min-width:2.625rem;
  padding:0;
  flex:0 0 auto;
}
.dtv-support-actions .btn-icon-only .wa-mark{width:1.25rem;height:1.25rem;display:inline-flex}
.dtv-support-actions .btn-icon-only .wa-mark svg{width:1.25rem;height:1.25rem;fill:currentColor;display:block}
.btn:has(.dtv-file-icon){gap:.5rem}
.dtv-file-input-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.dtv-file-btn:has(+ .dtv-file-input-hidden:focus-visible){
  outline:2px solid var(--dt-blue-2);
  outline-offset:2px;
}
#csvFileName{word-break:break-all}

.checks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem;
  margin:.625rem 0 .875rem;
}
.checks label{
  display:flex;
  align-items:center;
  gap:.5rem;
  margin:0;
  padding:.625rem .75rem;
  border:1px solid var(--dt-line);
  border-radius:var(--dt-radius-sm);
  background:#fff;
  color:var(--dt-text);
  font-weight:600;
}

.meter{
  height:.625rem;
  background:var(--dt-soft);
  border-radius:6.1875rem;
  overflow:hidden;
  border:1px solid rgba(207,217,234,.75);
}
.bar{
  height:100%;
  width:0;
  transition:width .22s ease,background .22s ease;
}
.bar.w1{width:25%;background:#d9534f}
.bar.w2{width:50%;background:#f0ad4e}
.bar.w3{width:75%;background:#5bc0de}
.bar.w4{width:100%;background:#5cb85c}

.topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  margin-bottom:.625rem;
}
.topbar h1{margin:0}
.topbar a{
  border:1px solid var(--dt-line);
  border-radius:var(--dt-radius-sm);
  padding:.5rem .75rem;
  background:#fff;
}

.item{
  border:1px solid var(--dt-line);
  border-radius:var(--dt-radius);
  padding:.875rem;
  margin:.625rem 0;
  background:#fff;
  box-shadow:0 .25rem .625rem rgba(0,0,0,.035);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.item:hover{
  transform:translateY(-1px);
  box-shadow:var(--dt-shadow-hover);
  border-color:rgba(244,124,43,.45);
}
.item strong{display:block;color:var(--dt-blue);font-size:1.05rem}

.vault-dashboard .item.editing,
.item.editing{
  border-color:var(--dt-orange) !important;
  background:#fff6ef !important;
  box-shadow:0 0 0 2px rgba(244,124,43,.30) !important;
}
#itemForm.editing{
  border-color:var(--dt-orange);
  box-shadow:0 0 0 2px rgba(244,124,43,.30);
}
.editing-banner{
  margin:0 0 .75rem;
  padding:.5rem .75rem;
  border-radius:.5rem;
  background:rgba(244,124,43,.12);
  color:var(--dt-orange-2);
  font-weight:700;
}
.editing-banner strong{color:var(--dt-blue)}
.item-row-top{display:flex;align-items:flex-start;gap:.625rem}
.item-row-top input[type="checkbox"]{width:1.125rem;height:1.125rem;margin-top:2px;flex:0 0 auto;accent-color:var(--dt-edit-highlight)}
.item-row-top strong{flex:1 1 auto}
.bulk-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.25rem 0 .75rem}
.bulk-actions label{display:flex;align-items:center;gap:.375rem;font-weight:700;color:var(--dt-blue);cursor:pointer}
.bulk-actions input[type="checkbox"]{width:1.125rem;height:1.125rem;accent-color:var(--dt-edit-highlight)}

form .btn,form button[type="submit"]{margin-top:.625rem}
#unlockBox,#vaultApp{margin-top:.5rem}
#copyStatus{min-height:1.4em}

@media(max-width:720px){
  .container{margin:1rem auto 1.75rem;padding:0 .75rem}
  .panel{padding:1rem}
  .panel.hero{padding:1.5rem 1.125rem}
  .topbar{align-items:flex-start;flex-direction:column}
  .actions{flex-direction:column}
  .btn,button[type="submit"]{width:100%;text-align:center}
  .checks{grid-template-columns:1fr}
}


/* DT Vault visual header/footer patch */
:root{
  --dt-blue:#003366;
  --dt-blue-2:#00449c;
  --dt-orange:#f47c2b;
  --dt-bg:#f3f6fa;
  --dt-text:#001f3f;
  --dt-soft:#eef4fb;
}

html,body{min-height:100%;}
body{
  background:
    radial-gradient(circle at top left, rgba(244,124,43,.08), transparent 34rem),
    linear-gradient(180deg,#f7fafc 0%,var(--dt-bg) 100%);
  color:var(--dt-text);
}

.container{max-width:61.25rem;}
.panel{
  border:1px solid rgba(0,51,102,.10);
  box-shadow:0 .5rem 1.5rem rgba(0,31,63,.08);
}

.hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(16.25rem,.85fr);
  gap:1.5rem;
  align-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,var(--dt-blue) 0%,#064b91 100%);
  color:#fff;
  border-top:.25rem solid var(--dt-orange);
}
.hero h1{font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.05;margin-bottom:.75rem;letter-spacing:-.04em;color:#fff;}
.hero .muted{color:rgba(255,255,255,.88);max-width:42.5rem;}
.hero .actions{margin-top:1.125rem;}
.hero .btn{background:#075fbd;color:#fff;box-shadow:0 .5rem 1.125rem rgba(0,31,63,.22);}
.hero .btn:hover{transform:translateY(-1px);filter:brightness(1.04);}
.hero .btn.secondary{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.42);color:#fff;box-shadow:none;}
.hero-copy{position:relative;z-index:2;}
.hero-visual{position:relative;z-index:1;}
.hero-visual img{display:block;width:100%;max-width:22.5rem;margin-left:auto;border-radius:1.375rem;filter:drop-shadow(0 1.125rem 1.625rem rgba(0,31,63,.22));}

.btn{transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;}
.btn:hover{transform:translateY(-1px);}
.btn.secondary{background:#eef4fb;color:var(--dt-blue);border:1px solid rgba(0,68,156,.18);}

a{color:var(--dt-blue-2);}
a:hover{color:var(--dt-orange);}

input,textarea,select{
  border-color:rgba(0,51,102,.16);
  background:#fff;
  transition:border-color .18s ease, box-shadow .18s ease;
}
input:focus,textarea:focus,select:focus{
  outline:none;
  border-color:rgba(0,68,156,.72);
  box-shadow:0 0 0 .25rem rgba(0,68,156,.10);
}

.dtv-footer{
  max-width:61.25rem;
  margin:.5rem auto 1.75rem;
  padding:0 .75rem;
  color:#5b6b80;
}
.dtv-footer-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.625rem 1rem;
  border-top:1px solid rgba(0,51,102,.12);
  padding-top:1rem;
  font-size:.94rem;
}
.dtv-footer strong{color:var(--dt-blue);}
.dtv-footer nav{display:flex;flex-wrap:wrap;gap:.625rem .875rem;}
.dtv-footer a{text-decoration:none;font-weight:650;}

@media(max-width:760px){
  .hero{grid-template-columns:1fr;padding:1.5rem;}
  .hero-visual img{max-width:17.5rem;margin:.25rem auto 0;}
  .dtv-footer-inner{align-items:flex-start;flex-direction:column;}
}

/* Patch: home actions + footer limpio */
.hero .actions,
.hero-actions,
.actions {
  display: flex;
  flex-wrap: wrap;
  gap: .625rem;
  align-items: center;
}

.dtv-footer {
  margin: 1.75rem auto 0;
  padding: 1.125rem 0 1.375rem;
  border-top: 1px solid rgba(0, 51, 102, .16);
  color: #5d6b82;
  font-size: .92rem;
}

.dtv-footer-inner {
  max-width: 71.25rem;
  margin: 0 auto;
  padding: 0 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.125rem;
  flex-wrap: wrap;
  text-align: center;
}

.dtv-footer p {
  margin: 0;
}

.dtv-footer a {
  color: #00449C;
  font-weight: 700;
  text-decoration: none;
}

.dtv-footer a:hover {
  color: #F47C2B;
  text-decoration: underline;
}

@media (max-width: 640px) {
  .hero .actions,
  .hero-actions,
  .actions {
    align-items: stretch;
  }

  .hero .actions .btn,
  .hero-actions .btn,
  .actions .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* Patch: botones fila + donacion WhatsApp + iconos app */
.hero .actions,
.hero-actions,
.actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: .625rem;
  align-items: center;
  justify-content: flex-start;
}

.hero .actions .btn,
.hero-actions .btn,
.actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.625rem;
  white-space: nowrap;
}

.dtv-footer {
  margin: 1.75rem auto 0;
  padding: 1.125rem 0 1.5rem;
  border-top: 1px solid rgba(0, 51, 102, .16);
  color: #5d6b82;
  font-size: .94rem;
}

.dtv-footer-inner {
  max-width: 71.25rem;
  margin: 0 auto;
  padding: 0 1rem;
}

.dtv-donation-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .875rem;
  flex-wrap: wrap;
  text-align: center;
}

.dtv-donation-footer p {
  margin: 0;
  max-width: 45rem;
  line-height: 1.55;
}

.btn.btn-whatsapp,
a.btn.btn-whatsapp {
  background: #25D366;
  color: #ffffff;
  border: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 .5rem 1.125rem rgba(37, 211, 102, .24);
  gap: .5rem;
  text-decoration: none;
}

.btn.btn-whatsapp:hover,
a.btn.btn-whatsapp:hover {
  background: #1ebe5d;
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 .625rem 1.375rem rgba(37, 211, 102, .30);
}

.wa-mark {
  width: 1.25rem;
  height: 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 1.25rem;
}

.wa-mark svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
  display: block;
}

@media (max-width: 640px) {
  .hero .actions,
  .hero-actions,
  .actions {
    align-items: stretch;
  }

  .hero .actions .btn,
  .hero-actions .btn,
  .actions .btn {
    width: 100%;
    white-space: normal;
    text-align: center;
  }

  .dtv-donation-footer {
    align-items: stretch;
  }

  .dtv-donation-footer .btn-whatsapp {
    width: 100%;
  }
}


/* DT Vault dashboard polish v1 */
:root{
  --dt-blue:#003366;
  --dt-blue-2:#00449C;
  --dt-orange:#F47C2B;
  --dt-bg:#f4f7fb;
  --dt-text:#0b1f3a;
  --dt-muted:#60708a;
  --dt-line:#d6e1ef;
  --dt-soft:#eef5ff;
  --dt-radius:.875rem;
  --dt-shadow:0 .875rem 2.125rem rgba(0,31,73,.10);
}

body{
  background:
    radial-gradient(circle at top left, rgba(0,68,156,.10), transparent 34rem),
    linear-gradient(180deg,#f8fbff 0%,var(--dt-bg) 100%);
}

.container.vault-dashboard,
.wrap.vault-dashboard,
main.vault-dashboard{
  max-width: 61.25rem;
  margin: 1.75rem auto;
  padding: 0 1.125rem;
}

.vault-dashboard .card,
.vault-dashboard .panel,
.vault-dashboard > section,
.vault-dashboard > div:first-child{
  border-radius: 1.125rem;
  border: 1px solid rgba(0,51,102,.12);
  box-shadow: var(--dt-shadow);
}

.vault-dashboard .card:first-child,
.vault-dashboard .panel:first-child,
.vault-dashboard > section:first-child,
.vault-dashboard > div:first-child{
  position: relative;
  overflow: visible;
  padding: 0 1.125rem 1.375rem;
  background:
    linear-gradient(180deg, var(--dt-blue) 0 6.5rem, #fff 6.5rem 100%);
  border-top: .1875rem solid var(--dt-orange);
}

.vault-dashboard h1{
  color:#fff;
  margin:0;
  padding:1.375rem 0 .75rem;
  font-size: clamp(2rem, 5vw, 2.75rem);
  letter-spacing:-.035em;
  line-height:1.05;
}

.vault-dashboard h1::after{
  content:"Protegida con contraseña y verificación en dos pasos";
  display:block;
  margin-top:.5rem;
  color:rgba(255,255,255,.82);
  font-size:.92rem;
  font-weight:500;
  letter-spacing:0;
}

.vault-dashboard a[href*="logout"],
.vault-dashboard a[href*="logout.php"]{
  position:absolute;
  top:1.25rem;
  right:1.125rem;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.40)!important;
  box-shadow:none!important;
}

.vault-dashboard a[href*="logout"]:hover,
.vault-dashboard a[href*="logout.php"]:hover{
  background:rgba(255,255,255,.22)!important;
  transform:translateY(-1px);
}

.vault-dashboard .actions,
.vault-dashboard .toolbar,
.vault-dashboard .nav-actions,
.vault-dashboard .button-row,
.vault-dashboard .btn-row,
.vault-dashboard p:has(> .btn),
.vault-dashboard div:has(> .btn){
  display:flex;
  flex-wrap:wrap;
  gap:.625rem;
  align-items:center;
}

.vault-dashboard h1 + .actions,
.vault-dashboard h1 + .toolbar,
.vault-dashboard h1 + .nav-actions,
.vault-dashboard h1 + .button-row,
.vault-dashboard h1 + .btn-row,
.vault-dashboard h1 + p:has(> .btn),
.vault-dashboard h1 + div:has(> .btn){
  margin-top:.5rem;
  margin-bottom:1.125rem;
  padding:.75rem;
  border-radius:1rem;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(214,225,239,.95);
  box-shadow:0 .625rem 1.5rem rgba(0,31,73,.12);
  transform:translateY(2px);
}

.vault-dashboard .btn,
.vault-dashboard button,
.vault-dashboard input[type="submit"]{
  border-radius:.625rem;
  font-weight:800;
  letter-spacing:.01em;
  min-height:2.375rem;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.vault-dashboard .btn:hover,
.vault-dashboard button:hover,
.vault-dashboard input[type="submit"]:hover{
  transform:translateY(-1px);
  box-shadow:0 .5rem 1.125rem rgba(0,68,156,.16);
}

.vault-dashboard .btn:not(.secondary):not(.ghost):not(.danger),
.vault-dashboard button:not(.secondary):not(.ghost):not(.danger),
.vault-dashboard input[type="submit"]{
  background:linear-gradient(180deg,#0758bf,var(--dt-blue-2));
  border-color:var(--dt-blue-2);
  color:#fff;
}

.vault-dashboard .btn.secondary,
.vault-dashboard .btn.ghost,
.vault-dashboard a.btn[href*="passwd"],
.vault-dashboard a.btn[href*="export"],
.vault-dashboard a.btn[href*="import"],
.vault-dashboard a.btn[href*="settings"]{
  color:var(--dt-blue);
  background:#f7fbff;
  border:1px solid #bcd0e8;
}

.vault-dashboard .item,
.vault-dashboard .vault-item,
.vault-dashboard li,
.vault-dashboard article{
  border-radius:.875rem;
}

.vault-dashboard .item,
.vault-dashboard .vault-item,
.vault-dashboard article,
.vault-dashboard ul > li{
  background:#fff;
  border:1px solid #d2deee;
  box-shadow:0 .5rem 1.125rem rgba(0,31,73,.06);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.vault-dashboard .item:hover,
.vault-dashboard .vault-item:hover,
.vault-dashboard article:hover,
.vault-dashboard ul > li:hover{
  transform:translateY(-2px);
  border-color:#adc6e6;
  box-shadow:0 .875rem 1.75rem rgba(0,31,73,.10);
}

.vault-dashboard strong,
.vault-dashboard b{
  color:var(--dt-blue);
}

.dtv-footer{
  max-width:61.25rem;
  margin:1.75rem auto 0;
  padding:1.125rem;
  border-top:1px solid var(--dt-line);
  display:flex;
  gap:1rem;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  color:var(--dt-muted);
  text-align:center;
}

.dtv-footer p{
  max-width:45rem;
  margin:0;
  line-height:1.45;
}

.dtv-footer .wa-btn,
.wa-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:2.5rem;
  padding:.625rem 1rem;
  border-radius:.625rem;
  background:#20c65a!important;
  color:#fff!important;
  border:1px solid rgba(0,0,0,.05)!important;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 .625rem 1.375rem rgba(32,198,90,.24);
}

.dtv-footer .wa-btn:hover,
.wa-btn:hover{
  background:#16ae4b!important;
  transform:translateY(-1px);
}

@media (max-width:720px){
  .container.vault-dashboard,
  .wrap.vault-dashboard,
  main.vault-dashboard{
    margin:.875rem auto;
    padding:0 .75rem;
  }

  .vault-dashboard .card:first-child,
  .vault-dashboard .panel:first-child,
  .vault-dashboard > section:first-child,
  .vault-dashboard > div:first-child{
    padding:0 .75rem 1rem;
    background:linear-gradient(180deg, var(--dt-blue) 0 7.875rem, #fff 7.875rem 100%);
  }

  .vault-dashboard h1{
    padding:1.25rem 0 .625rem;
    padding-right:4.75rem;
    font-size:2rem;
  }

  .vault-dashboard h1::after{
    font-size:.82rem;
    max-width: 82%;
  }

  .vault-dashboard a[href*="logout"],
  .vault-dashboard a[href*="logout.php"]{
    top:1.125rem;
    right:.75rem;
  }

  .vault-dashboard h1 + .actions,
  .vault-dashboard h1 + .toolbar,
  .vault-dashboard h1 + .nav-actions,
  .vault-dashboard h1 + .button-row,
  .vault-dashboard h1 + .btn-row,
  .vault-dashboard h1 + p:has(> .btn),
  .vault-dashboard h1 + div:has(> .btn){
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.5rem;
  }

  .vault-dashboard h1 + .actions .btn,
  .vault-dashboard h1 + .toolbar .btn,
  .vault-dashboard h1 + .nav-actions .btn,
  .vault-dashboard h1 + .button-row .btn,
  .vault-dashboard h1 + .btn-row .btn,
  .vault-dashboard h1 + p:has(> .btn) .btn,
  .vault-dashboard h1 + div:has(> .btn) .btn{
    width:100%;
    text-align:center;
    justify-content:center;
  }

  .dtv-footer{
    margin-top:1.25rem;
    padding:1rem .75rem;
  }

  .dtv-footer .wa-btn,
  .wa-btn{
    width:100%;
    max-width:20rem;
  }
}

@media (max-width:430px){
  .vault-dashboard h1 + .actions,
  .vault-dashboard h1 + .toolbar,
  .vault-dashboard h1 + .nav-actions,
  .vault-dashboard h1 + .button-row,
  .vault-dashboard h1 + .btn-row,
  .vault-dashboard h1 + p:has(> .btn),
  .vault-dashboard h1 + div:has(> .btn){
    grid-template-columns:1fr;
  }
}


/* DT Vault modules patch */
.success{color:#0f7a3b;font-weight:700}.small{font-size:.9rem}.mono,.secret-box{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.secret-box{padding:.75rem .875rem;border:1px dashed #9bb6d8;background:#f7fbff;border-radius:.75rem;font-size:1.05rem;letter-spacing:.08em;word-break:break-all}.security-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.security-card{border:1px solid rgba(0,51,102,.16);border-radius:1rem;padding:1rem;background:#fff}.danger-zone{margin-top:1.125rem;border-top:1px solid rgba(0,51,102,.14);padding-top:.875rem}.btn.danger{background:var(--dt-danger);color:#fff;border-color:var(--dt-danger)}.recovery-list{background:#0b1f3a;color:#fff;border-radius:.875rem;padding:1rem;line-height:1.7;overflow:auto}.table-wrap{overflow:auto;border:1px solid rgba(0,51,102,.14);border-radius:.875rem}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:.625rem .75rem;border-bottom:1px solid rgba(0,51,102,.10);text-align:left;vertical-align:top}th{background:#f3f7fb;color:#003366}.wide{max-width:73.75rem}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:1.125rem}.admin-stats div{background:#fff;border:1px solid rgba(0,51,102,.14);border-radius:1rem;padding:1rem;box-shadow:0 .5rem 1.125rem rgba(0,51,102,.08)}.admin-stats strong{display:block;font-size:2rem;color:#003366}.admin-stats span{color:#667085}.inline-actions{display:flex;flex-wrap:wrap;gap:.375rem}.inline-actions .btn{padding:.4375rem .5625rem;font-size:.88rem}.search-row{display:grid;grid-template-columns:1fr auto;gap:.625rem;align-items:end;margin:.75rem 0 1.125rem}.auth-note{margin-top:.875rem}.footer-donation{margin-top:1.75rem}
@media(max-width:780px){.security-grid,.admin-stats{grid-template-columns:1fr}.search-row{grid-template-columns:1fr}.inline-actions .btn{width:100%}}


/* DT Vault admin users visual polish */
.admin-users-page{max-width:68.75rem}.admin-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:1.375rem;padding:1.75rem 1.875rem;background:linear-gradient(135deg,#003366 0%,#00449c 68%,#0759bd 100%);color:#fff;border:0;border-top:.1875rem solid #f47c2b;box-shadow:0 1.125rem 2.8125rem rgba(0,51,102,.18)}.admin-hero:after{content:"";position:absolute;right:-5rem;top:-5.625rem;width:16.25rem;height:16.25rem;border-radius:62.4375rem;background:rgba(255,255,255,.10)}.admin-hero h1{color:#fff;margin:.1rem 0 .3rem;font-size:clamp(2rem,4vw,3.1rem);line-height:1}.admin-hero p{margin:0;max-width:43.125rem;color:rgba(255,255,255,.9)}.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ffd8c2!important}.admin-back{background:rgba(255,255,255,.12)!important;color:#fff!important;border-color:rgba(255,255,255,.36)!important;position:relative;z-index:1}.admin-back:hover{background:#fff!important;color:#003366!important}.admin-toolbar-panel{margin-top:1rem;padding:1.125rem 1.25rem}.admin-search label{display:block;font-weight:800;color:#003366;margin-bottom:.5rem}.admin-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.625rem;align-items:center}.admin-search-row input{height:2.75rem}.admin-user-list{display:grid;gap:.875rem;margin-top:1rem}.admin-user-card{padding:0;overflow:hidden;border:1px solid rgba(0,51,102,.14);box-shadow:0 .75rem 2rem rgba(0,51,102,.08)}.admin-user-card:hover{transform:translateY(-1px);box-shadow:0 1.125rem 2.625rem rgba(0,51,102,.12);transition:.18s ease}.admin-user-main{display:flex;align-items:center;gap:.875rem;padding:1.125rem 1.25rem;background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);border-bottom:1px solid rgba(0,51,102,.10)}.admin-avatar{width:3rem;height:3rem;border-radius:1rem;display:grid;place-items:center;background:#003366;color:#fff;font-size:1.25rem;font-weight:900;box-shadow:0 .5rem 1.375rem rgba(0,51,102,.18)}.admin-user-identity h2{margin:0 0 .25rem;color:#003366;font-size:1.15rem;word-break:break-word}.admin-user-identity span{color:#667085;font-size:.92rem}.admin-user-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(0,51,102,.10);border-bottom:1px solid rgba(0,51,102,.10)}.admin-user-meta>div{background:#fff;padding:.875rem 1rem;min-width:0}.meta-label{display:block;color:#667085;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3125rem}.admin-user-meta strong{display:block;color:#003366;font-size:.95rem;line-height:1.25;word-break:break-word}.status-badge{display:inline-flex!important;width:auto;align-items:center;border-radius:62.4375rem;padding:.3125rem .625rem;font-size:.82rem;font-weight:900}.badge-ok{background:#e7f7ed;color:#0f7a3b}.badge-warn{background:#fff4d8;color:#916400}.badge-danger{background:#fde7e5;color:#b42318}.badge-muted{background:#eef2f6;color:#475467}.admin-user-actions{display:flex;gap:.5625rem;flex-wrap:wrap;padding:1rem 1.25rem;background:#fbfdff}.admin-user-actions .btn{padding:.5625rem .8125rem}.admin-empty{padding:1.5rem}.admin-empty h2{margin-top:0;color:#003366}@media (max-width:850px){.admin-hero{align-items:flex-start;flex-direction:column}.admin-back{align-self:flex-start}.admin-user-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.admin-users-page{padding-left:.75rem!important;padding-right:.75rem!important}.admin-hero{padding:1.5rem 1.125rem}.admin-toolbar-panel{padding:1rem}.admin-search-row{grid-template-columns:1fr}.admin-search-row .btn{width:100%;justify-content:center}.admin-user-main{align-items:flex-start;padding:1rem}.admin-avatar{width:2.625rem;height:2.625rem;border-radius:.875rem}.admin-user-meta{grid-template-columns:1fr}.admin-user-actions{display:grid;grid-template-columns:1fr;padding:.875rem 1rem}.admin-user-actions .btn{width:100%;justify-content:center}}


/* DT Vault logout alignment patch */
#unlockBox{
  display:grid;
  gap:.875rem;
}
#unlockBox > .muted{
  margin:0 0 .25rem;
}
#unlockBox label{
  display:grid;
  gap:.375rem;
  max-width:26.25rem;
  margin:0;
}
#unlockBox input{
  width:100%;
}
#unlockBox #unlockBtn{
  justify-self:start;
  align-self:end;
  min-height:2.625rem;
  margin:0;
}
@media (min-width: 680px){
  #unlockBox{
    grid-template-columns:minmax(16.25rem, 26.25rem) auto;
    align-items:end;
    column-gap:.625rem;
  }
  #unlockBox > .muted{
    grid-column:1 / -1;
  }
  #unlockBox label{
    max-width:none;
  }
}
@media (max-width: 679px){
  #unlockBox #unlockBtn{
    width:100%;
  }
}
.site-footer,
.dtv-footer,
.footer-donation{
  align-items:center;
}
.footer-donation,
.dtv-footer-inner{
  gap:1rem;
}
.footer-donation .whatsapp-btn,
.footer-donation .btn.whatsapp,
.btn.whatsapp,
.whatsapp-donate{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  white-space:nowrap;
  min-height:2.625rem;
}
@media (max-width: 720px){
  .footer-donation,
  .dtv-footer-inner{
    text-align:center;
    grid-template-columns:1fr !important;
    justify-items:center;
  }
  .footer-donation .whatsapp-btn,
  .footer-donation .btn.whatsapp,
  .btn.whatsapp,
  .whatsapp-donate{
    width:100%;
    max-width:16.25rem;
  }
}


/* DT Vault - menu superior integrado al hero */
.hero-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .625rem;
  flex-wrap: wrap;
  width: 100%;
  margin: 0 0 1.625rem;
  padding: .5rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: .875rem;
  background: rgba(0, 31, 73, .22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter: blur(.375rem);
}

.hero-menu a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.375rem;
  padding: .5625rem .875rem;
  border-radius: .625rem;
  color: #ffffff;
  font-weight: 800;
  font-size: .94rem;
  text-decoration: none;
  line-height: 1;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.08);
  transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.hero-menu a:hover,
.hero-menu a:focus-visible {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.42);
  transform: translateY(-1px);
  box-shadow: 0 .5rem 1.375rem rgba(0,0,0,.15);
  outline: none;
}

.hero-menu a[href*="login.php"] {
  background: #0056b8;
  border-color: rgba(255,255,255,.20);
  box-shadow: 0 .5rem 1.25rem rgba(0, 45, 98, .20);
}

.hero-menu a[href*="register.php"] {
  background: #F47C2B;
  border-color: rgba(255,255,255,.25);
  color: #ffffff;
  box-shadow: 0 .5rem 1.25rem rgba(244,124,43,.22);
}

.hero-menu a[href*="passwd.php"] {
  background: rgba(255,255,255,.12);
}

.hero-menu a[href*="contacto.php"] {
  background: rgba(255,255,255,.06);
}

/* Evita que viejos contenedores de acciones dejen botones duplicados o apretados en la home */
.hero-actions:empty,
.actions:empty,
.button-row:empty {
  display: none !important;
}

@media (max-width: 760px) {
  .hero-menu {
    justify-content: stretch;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    margin-bottom: 1.375rem;
  }
  .hero-menu a {
    width: 100%;
    min-height: 2.625rem;
    padding: .625rem .5625rem;
    font-size: .9rem;
    text-align: center;
  }
}

@media (max-width: 460px) {
  .hero-menu {
    grid-template-columns: 1fr;
  }
}

/* === DT Vault clean home override === */
:root{
  --dtv-blue:#003366;
  --dtv-blue-2:#00449C;
  --dtv-orange:#F47C2B;
  --dtv-bg:#f4f7fb;
  --dtv-text:#06284f;
  --dtv-muted:#5f7390;
  --dtv-border:#cdd9e8;
  --dtv-shadow:0 1.125rem 2.75rem rgba(0,51,102,.14);
}

body{
  background:var(--dtv-bg);
}

.dtv-page{
  width:min(70rem, calc(100% - 1.75rem));
  margin:1.125rem auto 2.125rem;
}

.dtv-hero-clean{
  position:relative;
  overflow:hidden;
  border-radius:.75rem;
  border-top:.25rem solid var(--dtv-orange);
  background:linear-gradient(135deg, #003366 0%, #004a98 62%, #003f86 100%);
  color:#fff;
  box-shadow:var(--dtv-shadow);
  padding:1.125rem;
}

.dtv-hero-clean::after{
  content:"";
  position:absolute;
  right:-7.5rem;
  top:-8.75rem;
  width:22.5rem;
  height:22.5rem;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  pointer-events:none;
}

.dtv-hero-nav{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.625rem;
  flex-wrap:nowrap;
  margin-bottom:1.625rem;
}

.dtv-nav-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.5rem;
  padding:0 .9375rem;
  border-radius:.5625rem;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.10);
  color:#fff !important;
  text-decoration:none;
  font-weight:800;
  font-size:.875rem;
  letter-spacing:.01em;
  white-space:nowrap;
  box-shadow:0 .5rem 1.125rem rgba(0,0,0,.08);
  transition:transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.dtv-nav-btn:hover,
.dtv-nav-btn:focus-visible{
  transform:translateY(-1px);
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.58);
  box-shadow:0 .75rem 1.5rem rgba(0,0,0,.13);
}

.dtv-nav-primary{
  background:#0057bf;
  border-color:#2276de;
}

.dtv-nav-primary:hover,
.dtv-nav-primary:focus-visible{
  background:#0067dd;
}

.dtv-hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(16.25rem, 24.375rem);
  gap:2.125rem;
  align-items:center;
  padding:2px .5rem .75rem;
}

.dtv-hero-copy{
  max-width:40rem;
}

.dtv-eyebrow{
  margin:0 0 .625rem;
  color:#bcd8f6;
  font-size:.8125rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.dtv-hero-clean h1{
  margin:0;
  color:#fff;
  font-size:clamp(2.625rem, 6vw, 4.5rem);
  line-height:.95;
  letter-spacing:-.045em;
}

.dtv-lead{
  margin:1rem 0 0;
  color:#fff;
  font-size:clamp(1.0625rem, 2.1vw, 1.375rem);
  line-height:1.45;
  max-width:45rem;
}

.dtv-note{
  margin:.875rem 0 0;
  color:#d8eafd;
  font-size:.875rem;
  line-height:1.55;
  max-width:41.25rem;
}

.dtv-hero-art{
  justify-self:end;
  width:min(100%, 24.375rem);
  padding:.5rem;
  border-radius:1.5rem;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
}

.dtv-hero-art img{
  display:block;
  width:100%;
  height:auto;
}

.dtv-info-card{
  margin-top:1.125rem;
  padding:1.375rem 1.5rem;
  border-radius:.75rem;
  border:1px solid #d8e2ee;
  border-top:.1875rem solid var(--dtv-orange);
  background:#fff;
  box-shadow:0 .625rem 1.625rem rgba(0,51,102,.08);
}

.dtv-info-card h2{
  margin:0 0 .5rem;
  color:var(--dtv-blue);
  font-size:clamp(1.5rem, 3vw, 2.125rem);
  line-height:1.1;
}

.dtv-info-card p{
  margin:0;
  color:#0b2447;
  line-height:1.6;
}

.dtv-footer-donation{
  margin:1.75rem auto 0;
  padding:1.125rem 0 0;
  border-top:1px solid #d1deec;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  color:#5f7390;
  text-align:center;
}

.dtv-footer-donation p{
  margin:0;
  max-width:47.5rem;
  line-height:1.45;
}

.dtv-whatsapp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5625rem;
  min-height:2.625rem;
  padding:0 1.125rem;
  border-radius:.5rem;
  background:#25D366;
  color:#fff !important;
  text-decoration:none;
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 .75rem 1.5rem rgba(37,211,102,.25);
}

.dtv-wa-icon{
  font-size:1rem;
  line-height:1;
}

/* Evita que estilos viejos del hero/menu anterior vuelvan a romper la home */
.dtv-hero-menu,
.hero-menu,
.hero-actions:not(.dtv-keep),
.hero-buttons:not(.dtv-keep){
  display:none !important;
}

@media (max-width:900px){
  .dtv-hero-nav{
    justify-content:center;
    flex-wrap:wrap;
  }
  .dtv-hero-grid{
    grid-template-columns:1fr;
    text-align:center;
    gap:1.375rem;
  }
  .dtv-hero-copy{
    margin:0 auto;
  }
  .dtv-hero-art{
    justify-self:center;
    max-width:22.5rem;
  }
  .dtv-footer-donation{
    flex-direction:column;
    gap:.875rem;
  }
}

@media (max-width:560px){
  .dtv-page{
    width:min(100% - 1.25rem, 70rem);
    margin-top:.625rem;
  }
  .dtv-hero-clean{
    padding:.875rem;
  }
  .dtv-hero-nav{
    display:grid;
    grid-template-columns:1fr;
    gap:.5rem;
    margin-bottom:1.375rem;
  }
  .dtv-nav-btn{
    width:100%;
  }
  .dtv-hero-grid{
    padding:0 0 .5rem;
  }
  .dtv-hero-art{
    max-width:17.5rem;
  }
  .dtv-info-card{
    padding:1.125rem;
  }
  .dtv-whatsapp-btn{
    width:100%;
  }
}


/* DT VAULT SAFE IMAGE FIX START */
.dtv-home{max-width:61.25rem;margin:1.125rem auto 0;padding:0 .875rem;}
.dtv-hero-clean{position:relative;overflow:hidden;border-radius:.75rem;background:linear-gradient(135deg,#003366 0%,#00449c 100%);border-top:.1875rem solid #f47c2b;box-shadow:0 .75rem 1.875rem rgba(0,30,75,.12);padding:1.125rem 1.25rem 1.75rem;color:#fff;}
.dtv-hero-clean:after{content:"";position:absolute;right:-5.625rem;top:-7.5rem;width:21.25rem;height:21.25rem;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none;}
.dtv-hero-menu{position:relative;z-index:2;display:flex;justify-content:flex-end;align-items:center;gap:.625rem;flex-wrap:nowrap;margin-bottom:1.125rem;}
.dtv-hero-menu a{display:inline-flex;align-items:center;justify-content:center;min-height:2.125rem;padding:.5rem .9375rem;border-radius:.5rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;font-weight:800;font-size:.875rem;line-height:1;box-shadow:0 2px .625rem rgba(0,0,0,.08);transition:transform .18s ease,background .18s ease,border-color .18s ease;white-space:nowrap;}
.dtv-hero-menu a:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.6);transform:translateY(-1px);}
.dtv-hero-menu a:nth-child(2){background:#f47c2b;border-color:#f47c2b;}
.dtv-hero-content{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 22.5rem;gap:1.5rem;align-items:center;}
.dtv-eyebrow{margin:0 0 .5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;font-weight:900;color:#cfe3fb;}
.dtv-hero-copy h1{font-size:3.5rem;line-height:.96;margin:0 0 .875rem;color:#fff;letter-spacing:-.04em;}
.dtv-lead{font-size:1.25rem;line-height:1.45;margin:0 0 .75rem;max-width:40.625rem;color:#fff;}
.dtv-note{font-size:.8125rem;line-height:1.5;margin:0;color:#d9e8f8;}
.dtv-hero-art{display:flex;justify-content:center;align-items:center;min-height:14.375rem;}
.dtv-hero-art img{display:block;width:min(100%,22.5rem);height:auto;filter:drop-shadow(0 1.125rem 1.375rem rgba(0,20,50,.20));}
.dtv-info-panel{margin-top:1rem;border-top:2px solid #f47c2b;}
.dtv-info-panel h2{margin-top:0;}
.dtv-footer{max-width:61.25rem;margin:1.25rem auto 0;padding:0 .875rem 1.625rem;}
.dtv-footer-inner{border-top:1px solid #cdd9e6;padding-top:.875rem;display:flex;align-items:center;justify-content:space-between;gap:1.125rem;color:#60728d;text-align:center;}
.dtv-footer-inner p{margin:0;flex:1;line-height:1.45;}
.btn-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:#25d366;color:#fff;text-decoration:none;font-weight:800;border-radius:.5rem;padding:.6875rem 1.125rem;box-shadow:0 .5rem 1.125rem rgba(37,211,102,.22);white-space:nowrap;}
.btn-whatsapp:hover{filter:brightness(.96);transform:translateY(-1px);}
@media (max-width:860px){.dtv-hero-menu{justify-content:stretch;display:grid;grid-template-columns:1fr 1fr;}.dtv-hero-content{grid-template-columns:1fr;text-align:left;}.dtv-hero-art{min-height:auto;}.dtv-hero-art img{max-width:20rem;}.dtv-hero-copy h1{font-size:2.875rem;}.dtv-lead{font-size:1.125rem;}.dtv-footer-inner{flex-direction:column;}}
@media (max-width:520px){.dtv-hero-clean{padding:.875rem .875rem 1.375rem;}.dtv-hero-menu{grid-template-columns:1fr;gap:.5rem;}.dtv-hero-menu a{width:100%;}.dtv-hero-copy h1{font-size:2.5rem;}.dtv-lead{font-size:1rem;}.dtv-hero-art img{max-width:16.25rem;}.btn-whatsapp{width:100%;}}
/* DT VAULT SAFE IMAGE FIX END */

/* DT Vault - parche minimo: menu hero y boton WhatsApp */
.hero-menu{
  position:relative;
  z-index:4;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:.625rem;
  flex-wrap:wrap;
  margin:0 0 1.125rem auto;
}
.hero-menu-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.125rem;
  padding:.5rem .875rem;
  border-radius:.5rem;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.10);
  color:#fff !important;
  text-decoration:none;
  font-weight:700;
  font-size:.875rem;
  line-height:1.1;
  white-space:nowrap;
  box-shadow:0 .5rem 1.125rem rgba(0,0,0,.10);
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}
.hero-menu-link:hover,
.hero-menu-link:focus{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.58);
  transform:translateY(-1px);
  outline:none;
}
.hero-menu-link[href*="register"]{
  background:#F47C2B;
  border-color:#F47C2B;
}
.hero-menu-link[href*="register"]:hover,
.hero-menu-link[href*="register"]:focus{
  background:#ff8b3d;
  border-color:#ff8b3d;
}
.wa-icon{
  width:1.0625rem;
  height:1.0625rem;
  flex:0 0 1.0625rem;
  display:inline-block;
  vertical-align:-.1875rem;
  margin-right:.375rem;
}
a[href*="wa.me"],
a[href*="whatsapp"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.375rem;
}
@media (max-width:780px){
  .hero-menu{
    justify-content:flex-start;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.5625rem;
    margin-bottom:1.125rem;
  }
  .hero-menu-link{
    width:100%;
    white-space:normal;
    text-align:center;
  }
}
@media (max-width:460px){
  .hero-menu{grid-template-columns:1fr;}
}

/* DT Vault - ajuste minimo hero/menu/textos */
.hero {
  position: relative;
}

.hero .hero-menu {
  position: absolute;
  top: 1.125rem;
  right: 1.125rem;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .625rem;
  flex-wrap: nowrap;
  max-width: calc(100% - 2.25rem);
}

.hero-menu-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.125rem;
  padding: .5rem .8125rem;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: .5rem;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: .8125rem;
  line-height: 1;
  background: rgba(255,255,255,.11);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
  white-space: nowrap;
}

.hero-menu-link:hover,
.hero-menu-link:focus {
  background: rgba(255,255,255,.19);
  border-color: rgba(255,255,255,.58);
  transform: translateY(-1px);
}

.hero-menu-primary {
  background: #0057bd;
  border-color: rgba(255,255,255,.28);
}

.hero-menu-primary:hover,
.hero-menu-primary:focus {
  background: #0a66d8;
}

.hero h1 span {
  display: block;
  margin-top: .25rem;
  font-size: clamp(1.125rem, 2.2vw, 1.6875rem);
  font-weight: 700;
  letter-spacing: .01em;
  color: rgba(255,255,255,.92);
}

.hero p {
  max-width: 35rem;
}

@media (max-width: 920px) {
  .hero .hero-menu {
    position: static;
    justify-content: flex-start;
    flex-wrap: wrap;
    margin: 0 0 1.375rem;
    max-width: 100%;
  }
}

@media (max-width: 560px) {
  .hero .hero-menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
  }
  .hero-menu-link {
    width: 100%;
    padding: .625rem .5625rem;
    font-size: .75rem;
  }
}

@media (max-width: 380px) {
  .hero .hero-menu {
    grid-template-columns: 1fr;
  }
}

/* DT Vault - menu principal integrado al hero. Parche minimo. */
.dtv-hero-menu{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.625rem;
  flex-wrap:nowrap;
  width:100%;
  margin:0 0 1.125rem 0;
  position:relative;
  z-index:5;
}
.dtv-hero-menu-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.125rem;
  padding:.5rem .875rem;
  border-radius:.5rem;
  border:1px solid rgba(255,255,255,.34);
  background:rgba(255,255,255,.10);
  color:#fff !important;
  text-decoration:none !important;
  font-weight:700;
  font-size:.8125rem;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 .5rem 1.125rem rgba(0,0,0,.10);
  transition:transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.dtv-hero-menu-link:hover,
.dtv-hero-menu-link:focus{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.58);
  transform:translateY(-1px);
  box-shadow:0 .75rem 1.5rem rgba(0,0,0,.15);
  outline:none;
}
.dtv-hero-menu-link:nth-child(2){
  background:#f47c2b;
  border-color:#f47c2b;
}
.dtv-hero-menu-link:nth-child(2):hover,
.dtv-hero-menu-link:nth-child(2):focus{
  background:#ff8b3d;
  border-color:#ff8b3d;
}
@media (max-width: 820px){
  .dtv-hero-menu{
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:.5rem;
  }
  .dtv-hero-menu-link{
    flex:1 1 calc(50% - .5rem);
    min-width:11.25rem;
  }
}
@media (max-width: 480px){
  .dtv-hero-menu-link{
    flex-basis:100%;
    width:100%;
  }
}

/* DTV_HERO_MENU_CSS_START */
/* Menu principal integrado al bloque azul de DT Vault. */
.hero,
.home-hero,
.hero-card,
.vault-hero,
.dtv-hero {
  position: relative;
}

.dtv-hero-menu {
  position: absolute;
  top: 1.125rem;
  right: 1.25rem;
  z-index: 20;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: .625rem;
  flex-wrap: nowrap;
  max-width: calc(100% - 2.5rem);
}

.dtv-hero-menu__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.125rem;
  padding: .5rem .875rem;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: .5rem;
  background: rgba(255,255,255,.10);
  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 700;
  font-size: .8125rem;
  line-height: 1.1;
  white-space: nowrap;
  box-shadow: 0 .5rem 1.125rem rgba(0,0,0,.10);
  backdrop-filter: blur(.5rem);
  transition: transform .16s ease, background .16s ease, border-color .16s ease;
}

.dtv-hero-menu__btn:hover,
.dtv-hero-menu__btn:focus {
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.62);
  transform: translateY(-1px);
}

.dtv-hero-menu__btn--primary {
  background: #0057c2;
  border-color: rgba(255,255,255,.28);
}

.dtv-hero-menu__btn--primary:hover,
.dtv-hero-menu__btn--primary:focus {
  background: #0066df;
}

@media (max-width: 920px) {
  .dtv-hero-menu {
    position: static;
    margin: 0 0 1.375rem 0;
    justify-content: flex-start;
    flex-wrap: wrap;
    max-width: 100%;
  }

  .dtv-hero-menu__btn {
    flex: 1 1 calc(50% - .625rem);
  }
}

@media (max-width: 520px) {
  .dtv-hero-menu__btn {
    flex: 1 1 100%;
    width: 100%;
  }
}
/* DTV_HERO_MENU_CSS_END */

/* DT Vault - menu principal dentro del encabezado azul. Parche minimo. */
.hero,
.vault-hero,
.home-hero,
.dtv-hero,
.hero-card {
  position: relative;
}

.dtv-hero-menu {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .625rem;
  position: absolute;
  top: 1.125rem;
  right: 1.25rem;
  left: 1.25rem;
  z-index: 50;
  pointer-events: auto;
}

.dtv-hero-menu-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 2.125rem;
  padding: .5rem .875rem;
  border-radius: .5rem;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.13);
  color: #fff !important;
  font-weight: 700;
  font-size: .8125rem;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: 0 .5rem 1.125rem rgba(0,0,0,.10);
  backdrop-filter: blur(.25rem);
}

.dtv-hero-menu-link:hover,
.dtv-hero-menu-link:focus {
  background: #F47C2B;
  border-color: #F47C2B;
  color: #fff !important;
  transform: translateY(-1px);
}

/* Deja espacio visual arriba para que el menu no tape el titulo. */
.hero,
.vault-hero,
.home-hero,
.dtv-hero,
.hero-card {
  padding-top: max(4.5rem, 2rem) !important;
}

/* Si la imagen competia con el menu, se reduce un poco sin tocar el archivo. */
.hero-illustration,
.hero-art img,
.hero img[src*="dtvault-logo"],
.hero img[src*="dtvault-hero"],
.hero img[src*="dtvault-icon"],
.vault-hero img[src*="dtvault"],
.home-hero img[src*="dtvault"],
.dtv-hero img[src*="dtvault"] {
  max-width: min(18.125rem, 42vw) !important;
  height: auto !important;
  object-fit: contain !important;
}

@media (max-width: 820px) {
  .dtv-hero-menu {
    position: static;
    justify-content: center;
    margin: 0 0 1.125rem 0;
  }
  .hero,
  .vault-hero,
  .home-hero,
  .dtv-hero,
  .hero-card {
    padding-top: 1.75rem !important;
  }
}

@media (max-width: 520px) {
  .dtv-hero-menu {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: .5rem;
  }
  .dtv-hero-menu-link {
    width: 100%;
  }
}

/* DT Vault - QR local para doble verificacion */
.dtv-twofa-qr-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.125rem;
  padding: 1rem;
  margin: .75rem 0 1rem;
  border: 1px solid rgba(0, 68, 156, .18);
  border-radius: .875rem;
  background: linear-gradient(135deg, rgba(0,68,156,.08), rgba(244,124,43,.08));
}
.dtv-twofa-qr-copy h3 {
  margin: 0 0 .375rem;
  color: #003366;
  font-size: 1.1rem;
}
.dtv-twofa-qr-copy p {
  margin: 0;
  color: #56708f;
  line-height: 1.45;
}
.dtv-twofa-qr-box {
  flex: 0 0 auto;
  width: 11.75rem;
  min-height: 11.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .5rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid rgba(0, 51, 102, .14);
  box-shadow: 0 .625rem 1.375rem rgba(0, 51, 102, .12);
}
.dtv-twofa-qr-box img,
.dtv-twofa-qr-box canvas {
  display: block;
  width: 10.75rem !important;
  height: 10.75rem !important;
}
.dtv-twofa-qr-error {
  color: #b42318;
  font-weight: 700;
  text-align: center;
  font-size: .9rem;
}
@media (max-width: 680px) {
  .dtv-twofa-qr-panel {
    flex-direction: column;
    align-items: stretch;
  }
  .dtv-twofa-qr-box {
    margin: 0 auto;
  }
}


/* DT Vault - QR 2FA compacto minimo */
.dtv-otpauth-hidden {
  display: none !important;
}
.dtv-twofa-clean,
.dtv-twofa-step-qr,
.dtv-twofa-qr-panel,
.dtv-twofa-qr-card,
.twofa-qr-panel,
.twofa-qr-card {
  display: none !important;
}
.dtv-twofa-compact {
  margin: .875rem 0 1rem;
  padding: .875rem;
  border: 1px solid rgba(0, 68, 156, .18);
  border-radius: .875rem;
  background: linear-gradient(135deg, rgba(0,68,156,.06), rgba(244,124,43,.06));
  display: grid;
  gap: .75rem;
  align-items: start;
  justify-items: center;
}
.dtv-twofa-compact-copy {
  width: 100%;
  display: grid;
  gap: .25rem;
  color: #003366;
}
.dtv-twofa-compact-copy strong {
  font-size: .98rem;
  font-weight: 800;
}
.dtv-twofa-compact-copy span {
  color: #56708f;
  line-height: 1.45;
  font-size: .92rem;
}
.dtv-twofa-qr-compact {
  width: 11.75rem;
  min-height: 11.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .625rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid rgba(0, 51, 102, .14);
  box-shadow: 0 .625rem 1.375rem rgba(0, 51, 102, .12);
}
.dtv-twofa-qr-compact img,
.dtv-twofa-qr-compact canvas {
  display: block;
  width: 10.5rem !important;
  height: 10.5rem !important;
}
.dtv-twofa-qr-error {
  color: #b42318;
  font-weight: 700;
  text-align: center;
  font-size: .9rem;
}
@media (max-width: 720px) {
  .dtv-twofa-compact {
    justify-items: stretch;
  }
  .dtv-twofa-qr-compact {
    margin: 0 auto;
  }
}
/* Fin DT Vault - QR 2FA compacto minimo */

/* DT Vault - ajuste puntual footer donacion texto blanco */
.dtv-footer .dtv-footer-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .875rem;
  flex-wrap: wrap;
  text-align: left;
}

.dtv-footer .dtv-footer-inner p {
  margin: 0;
  max-width: 47.5rem;
  line-height: 1.55;
  text-align: left;
}

.dtv-footer .btn-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .375rem;
  background: #25D366;
  color: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 .5rem 1.125rem rgba(37, 211, 102, .24);
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.dtv-footer .btn-whatsapp:hover,
.dtv-footer .btn-whatsapp:focus {
  background: #1ebe5d;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 .625rem 1.375rem rgba(37, 211, 102, .30);
  outline: none;
}

.dtv-footer .btn-whatsapp .wa-icon,
.dtv-footer .btn-whatsapp svg {
  color: #ffffff !important;
  fill: currentColor;
}

@media (max-width: 640px) {
  .dtv-footer .dtv-footer-inner {
    align-items: stretch;
    justify-content: flex-start;
  }

  .dtv-footer .btn-whatsapp {
    width: 100%;
  }
}

/* DT Vault - ajuste puntual botones superiores hero */
.dtv-hero-menu {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: .625rem;
  flex-wrap: wrap;
  position: relative;
  z-index: 20;
  margin: 0 0 1.375rem 0;
}

.dtv-hero-menu a,
.dtv-hero-menu-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 2.125rem;
  padding: .5rem .9375rem;
  border-radius: .5625rem;
  border: 1px solid rgba(255, 255, 255, .35);
  background: rgba(255, 255, 255, .12) !important;
  color: #ffffff !important;
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: 0 .375rem .875rem rgba(0, 0, 0, .12);
  transform: none;
  transition:
    transform .16s ease,
    background .16s ease,
    border-color .16s ease,
    box-shadow .16s ease;
}

.dtv-hero-menu a:hover,
.dtv-hero-menu a:focus,
.dtv-hero-menu-link:hover,
.dtv-hero-menu-link:focus {
  background: #F47C2B !important;
  border-color: #F47C2B !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 .625rem 1.375rem rgba(0, 0, 0, .18);
  outline: none;
}

.dtv-hero-menu a:active,
.dtv-hero-menu-link:active {
  transform: translateY(0);
  box-shadow: 0 .3125rem .75rem rgba(0, 0, 0, .14);
}

@media (max-width: 720px) {
  .dtv-hero-menu {
    justify-content: flex-start;
  }

  .dtv-hero-menu a,
  .dtv-hero-menu-link {
    flex: 1 1 calc(50% - .625rem);
  }
}

@media (max-width: 460px) {
  .dtv-hero-menu a,
  .dtv-hero-menu-link {
    flex: 1 1 100%;
    width: 100%;
  }
}

/* DT Vault - ajuste puntual headers azules y bordes superiores */

/* Corrige las puntas/sobrantes del borde superior en la bÃ³veda */
.vault-dashboard .panel:first-child,
.vault-dashboard > section:first-child,
.vault-dashboard > div:first-child {
  overflow: hidden !important;
  border-top: 0 !important;
}

.vault-dashboard .panel:first-child::before,
.vault-dashboard > section:first-child::before,
.vault-dashboard > div:first-child::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: .25rem;
  background: #F47C2B;
  border-radius: 1.125rem 1.125rem 0 0;
  opacity: 1;
}

/* Header azul para pantallas internas simples: login, registro, verificaciÃ³n, 2FA, export, import, settings */
body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child {
  overflow: hidden;
  padding-top: 0;
}

body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child::before {
  display: none;
}

/* Variante con h1 directo */
body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > h1:first-child {
  margin: 0 -1.125rem .875rem;
  padding: 1.375rem 1.125rem .625rem;
  background: linear-gradient(135deg, #003366 0%, #00449C 100%);
  border-top: .25rem solid #F47C2B;
  color: #ffffff;
  font-size: clamp(2rem, 4vw, 2.6rem);
  line-height: 1.05;
}

/* Texto breve debajo del tÃ­tulo cuando pertenece al encabezado */
body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > h1:first-child + p.muted {
  margin: -.875rem -1.125rem 1.125rem;
  padding: 0 1.125rem 1.125rem;
  background: linear-gradient(135deg, #003366 0%, #00449C 100%);
  color: rgba(255, 255, 255, .86);
}

/* Variante con topbar: settings, export, import, eventos */
body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > .topbar:first-child {
  margin: 0 -1.125rem 1.125rem;
  padding: 1.125rem;
  background: linear-gradient(135deg, #003366 0%, #00449C 100%);
  border-top: .25rem solid #F47C2B;
  color: #ffffff;
}

body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > .topbar:first-child h1 {
  color: #ffffff;
}

body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > .topbar:first-child .btn,
body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > .topbar:first-child a {
  background: rgba(255, 255, 255, .12) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .38) !important;
}

body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > .topbar:first-child .btn:hover,
body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > .topbar:first-child a:hover {
  background: rgba(255, 255, 255, .22) !important;
  color: #ffffff !important;
}

/* Admin simple */
body > main.container > section.panel.vault-shell:first-child {
  overflow: hidden;
  padding-top: 0;
}

body > main.container > section.panel.vault-shell:first-child::before {
  display: none;
}

body > main.container > section.panel.vault-shell:first-child > .vault-head:first-child {
  margin: 0 -1.125rem 1.125rem;
  padding: 1.25rem 1.125rem;
  background: linear-gradient(135deg, #003366 0%, #00449C 100%);
  border-top: .25rem solid #F47C2B;
  color: #ffffff;
}

body > main.container > section.panel.vault-shell:first-child > .vault-head:first-child h1 {
  color: #ffffff;
}

body > main.container > section.panel.vault-shell:first-child > .vault-head:first-child p {
  color: rgba(255, 255, 255, .86);
}

body > main.container > section.panel.vault-shell:first-child > .vault-head:first-child .btn,
body > main.container > section.panel.vault-shell:first-child > .vault-head:first-child a {
  background: rgba(255, 255, 255, .12) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .38) !important;
}

@media (max-width: 640px) {
  body > main.container:not(.dtv-home):not(.vault-dashboard):not(.admin-users-page) > section.panel:first-child > .topbar:first-child,
  body > main.container > section.panel.vault-shell:first-child > .vault-head:first-child {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* DT Vault - fix hidden vault */
#unlockBox[hidden],
#vaultApp[hidden],
#itemForm[hidden],
[hidden] {
  display: none !important;
}

/* DT Vault - footer unico donaciones, azul suave e imagenes de donacion */
.dtv-footer.dtv-footer-unified {
  max-width: 61.25rem;
  margin: 1.25rem auto 0;
  padding: 0 .875rem 1.75rem;
}

.dtv-footer.dtv-footer-unified .dtv-footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.125rem;
  padding: 1rem 1.125rem;
  border: 1px solid rgba(0, 68, 156, .14);
  border-radius: .875rem;
  background: linear-gradient(
    135deg,
    rgba(0, 68, 156, .075) 0%,
    rgba(0, 51, 102, .045) 100%
  );
  box-shadow: 0 .5rem 1.375rem rgba(0, 51, 102, .055);
  text-align: left;
}

.dtv-footer.dtv-footer-unified .dtv-footer-copy {
  flex: 1;
  min-width: 0;
}

.dtv-footer.dtv-footer-unified p {
  margin: 0;
  color: #4f6684;
  line-height: 1.5;
  text-align: left;
}

.dtv-pay-methods {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5625rem;
  margin-top: .625rem;
}

.dtv-pay-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 5.375rem;
  height: 1.875rem;
  padding: .25rem .5rem;
  border-radius: .5625rem;
  border: 1px solid rgba(0, 51, 102, .12);
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 .25rem .625rem rgba(0, 51, 102, .06);
}

.dtv-pay-logo img {
  display: block;
  max-width: 100%;
  max-height: 1.375rem;
  object-fit: contain;
}

.dtv-footer.dtv-footer-unified .btn-whatsapp,
.dtv-footer.dtv-footer-unified a.btn-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4375rem;
  min-height: 2.375rem;
  padding: .5625rem 1rem;
  border-radius: .5rem;
  background: #25D366 !important;
  color: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, .08);
  text-decoration: none !important;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 .5rem 1.125rem rgba(37, 211, 102, .24);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.dtv-footer.dtv-footer-unified .btn-whatsapp:hover,
.dtv-footer.dtv-footer-unified .btn-whatsapp:focus {
  background: #1ebe5d !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 .625rem 1.375rem rgba(37, 211, 102, .30);
  outline: none;
}

.dtv-footer.dtv-footer-unified .btn-whatsapp:active {
  transform: translateY(0);
}

.dtv-footer.dtv-footer-unified .wa-mark,
.dtv-footer.dtv-footer-unified .wa-mark svg {
  width: 1rem;
  height: 1rem;
  display: inline-flex;
  flex: 0 0 1rem;
  fill: currentColor !important;
  color: #ffffff !important;
}

@media (max-width: 720px) {
  .dtv-footer.dtv-footer-unified .dtv-footer-inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .dtv-footer.dtv-footer-unified .btn-whatsapp,
  .dtv-footer.dtv-footer-unified a.btn-whatsapp {
    width: 100%;
  }

  .dtv-pay-logo {
    width: 5.125rem;
    height: 1.875rem;
  }
}

/* DT Vault - mobile botones alineacion precisa */

/* Normaliza enlaces y botones para que midan igual */
.btn,
a.btn,
button.btn,
.dtv-hero-menu-link,
.dtv-hero-menu a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Escritorio: separacion normal entre Entrar y Volver */
.auth-panel form .btn-back-home {
  margin-left: .625rem;
}

/* Login, registro y pantallas de acceso en celular */
@media (max-width: 640px) {
  .auth-panel form .btn,
  .auth-panel form a.btn,
  .auth-panel form button.btn {
    width: 100% !important;
    min-height: 2.75rem !important;
    margin: .625rem 0 0 0 !important;
    padding: .6875rem .875rem !important;
    line-height: 1.15 !important;
  }

  .auth-panel form .btn-back-home {
    margin-left: 0 !important;
  }
}

/* Menu superior de la home en celular: todos los botones iguales y sin desfase */
@media (max-width: 640px) {
  .dtv-hero-menu {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .625rem !important;
    width: 100% !important;
    margin: 0 0 1.5rem 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }

  .dtv-hero-menu a,
  .dtv-hero-menu-link {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 2.75rem !important;
    margin: 0 !important;
    padding: .6875rem .875rem !important;
    white-space: normal !important;
    line-height: 1.15 !important;
  }
}

/* Botoneras internas: vault, export, import, admin simple */
@media (max-width: 640px) {
  .actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .625rem !important;
    width: 100% !important;
    align-items: stretch !important;
  }

  .actions .btn,
  .actions a.btn,
  .actions button.btn {
    width: 100% !important;
    min-height: 2.75rem !important;
    margin: 0 !important;
    padding: .6875rem .875rem !important;
    line-height: 1.15 !important;
  }
}

/* Encabezados internos con Volver o Salir */
@media (max-width: 640px) {
  .topbar {
    gap: .75rem !important;
  }

  .topbar .btn,
  .topbar a.btn {
    min-height: 2.625rem !important;
    padding: .625rem .875rem !important;
  }
}

/* DT Vault - ajuste minimo menu home responsive botones uniformes */
@media (max-width: 640px) {
  .dtv-hero-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .625rem !important;
    width: 100% !important;
    margin: 0 0 1.5rem 0 !important;
    padding: 0 !important;
  }

  .dtv-hero-menu a,
  .dtv-hero-menu-link {
    box-sizing: border-box !important;
    width: 16.25rem !important;
    max-width: calc(100vw - 4.5rem) !important;
    margin: 0 auto !important;
    padding: .625rem 1rem !important;
    min-height: 2.625rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.15 !important;
    white-space: normal !important;
  }
}

@media (max-width: 380px) {
  .dtv-hero-menu a,
  .dtv-hero-menu-link {
    width: 15rem !important;
    max-width: calc(100vw - 3.5rem) !important;
    padding-left: .875rem !important;
    padding-right: .875rem !important;
  }
}

/* DT Vault: copiar contraseÃ±a oculta en listado */
.vault-password-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.625rem;
  margin-top:.625rem;
  padding:.5rem .625rem;
  border:1px solid rgba(188,208,232,.75);
  border-radius:.625rem;
  background:#f7fbff;
}

.copy-password-btn{
  width:auto;
  min-width:2.625rem;
  padding:.4375rem .625rem;
  line-height:1;
}

@media(max-width:720px){
  .vault-password-row{
    align-items:stretch;
  }

  .copy-password-btn{
    width:auto;
    min-width:2.875rem;
    flex:0 0 auto;
  }
}

/* DT Vault - subtitulo Seguridad Personal en blanco */
.dtv-hero-copy h3 {
  color: #ffffff !important;
}

/* DT Vault - acceso rapido biometrico */
.biometric-login-box{margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(0,51,102,.14)}
.biometric-login-box hr{display:none}
.biometric-card{margin-top:.75rem}
.biometric-card .actions{margin-top:.75rem}
#bioLoginStatus,#bioStatus,#bioLocalState{min-height:1.35em}
#bioDeviceList{margin:.375rem 0 .625rem}
#bioMasterLabel[hidden]{display:none!important}
@media(max-width:640px){.biometric-card .actions{display:grid!important;grid-template-columns:1fr!important}.biometric-card .actions .btn{width:100%!important}}


/* DT Vault - login biometrico compacto */
.biometric-login-box.biometric-login-compact{
  margin:0 0 1rem;
  padding:0;
  border:0;
}
.biometric-login-box.biometric-login-compact[hidden]{
  display:none!important;
}
.biometric-login-main{
  width:100%;
  min-height:2.875rem;
  gap:.625rem;
}
.biometric-login-icon{
  width:1.375rem;
  height:1.375rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 1.375rem;
}
.biometric-login-icon svg{
  width:1.375rem;
  height:1.375rem;
  display:block;
  fill:currentColor;
}
#bioLoginStatus{
  margin:.5rem 0 0;
  min-height:1.35em;
  text-align:center;
}
@media(max-width:640px){
  .biometric-login-main{
    min-height:2.75rem;
  }
}


/* DT Vault - login biometrico solo icono v5 */
.biometric-login-box.biometric-login-icon-only{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:0 0 1rem;
  padding:0;
  border:0;
}
.biometric-login-box.biometric-login-icon-only[hidden]{
  display:none!important;
}
.biometric-login-box.biometric-login-icon-only .biometric-icon-btn{
  width:4rem!important;
  min-width:4rem!important;
  max-width:4rem!important;
  height:3.625rem!important;
  min-height:3.625rem!important;
  padding:0!important;
  border-radius:1rem!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.biometric-login-box.biometric-login-icon-only .biometric-login-icon{
  width:2.375rem;
  height:2.375rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 2.375rem;
}
.biometric-login-box.biometric-login-icon-only .biometric-login-icon svg{
  width:2.375rem;
  height:2.375rem;
  display:block;
  fill:currentColor;
}
.biometric-login-box.biometric-login-icon-only #bioLoginStatus{
  display:none!important;
}
@media(max-width:640px){
  .biometric-login-box.biometric-login-icon-only .biometric-icon-btn{
    width:3.875rem!important;
    min-width:3.875rem!important;
    max-width:3.875rem!important;
    height:3.5rem!important;
    min-height:3.5rem!important;
  }
}

/* DT Vault - v7 acceso biometrico compacto y sesion centralizada */
#biometricLoginBox.biometric-login-icon-only,
.biometric-login-box.biometric-login-icon-only{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  margin:0 0 1rem!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
#biometricLoginBox.biometric-login-icon-only[hidden],
.biometric-login-box.biometric-login-icon-only[hidden],
#unlockBox[hidden],
#vaultApp[hidden],
#itemForm[hidden],
[hidden]{
  display:none!important;
}
#biometricLoginBtn.biometric-icon-btn,
.biometric-login-box.biometric-login-icon-only .biometric-icon-btn{
  width:4rem!important;
  min-width:4rem!important;
  max-width:4rem!important;
  height:3.375rem!important;
  min-height:3.375rem!important;
  padding:0!important;
  border-radius:1rem!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:0!important;
  line-height:1!important;
  color:transparent!important;
  overflow:hidden!important;
}
#biometricLoginBtn.biometric-icon-btn .biometric-login-icon,
#biometricLoginBtn.biometric-icon-btn svg{
  display:none!important;
}
#biometricLoginBtn.biometric-icon-btn::before{
  content:"";
  display:block;
  width:2.25rem;
  height:2.25rem;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5H9a4 4 0 0 0-4 4v6M49 5h6a4 4 0 0 1 4 4v6M15 59H9a4 4 0 0 1-4-4v-6M49 59h6a4 4 0 0 0 4-4v-6'/%3E%3Cpath d='M20 38V27a12 12 0 0 1 24 0v12M28 43V27a4 4 0 0 1 8 0v14M20 28a12 12 0 0 1 24 0M24 48c3 3 7 5 12 5'/%3E%3C/g%3E%3Ccircle cx='48' cy='47' r='10' fill='%23ffffff'/%3E%3Cpath d='M43.5 47l3 3 6-6' fill='none' stroke='%2300449C' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
#bioLoginStatus{
  display:none!important;
}
.vault-decrypt-warning{
  margin:0 0 .75rem;
}
@media(max-width:640px){
  #biometricLoginBtn.biometric-icon-btn,
  .biometric-login-box.biometric-login-icon-only .biometric-icon-btn{
    width:3.875rem!important;
    min-width:3.875rem!important;
    max-width:3.875rem!important;
    height:3.25rem!important;
    min-height:3.25rem!important;
  }
}

/* DT Vault - aviso de acceso rapido en boveda */
#bioFirstLoginOffer{
  background:#ffffff!important;
  color:#003366!important;
  border:1px solid rgba(0,51,102,.16)!important;
  border-top:.25rem solid #F47C2B!important;
  border-radius:1.125rem!important;
  box-shadow:0 .625rem 1.625rem rgba(0,51,102,.10)!important;
  margin:1.125rem 0 1.25rem!important;
}
#bioFirstLoginOffer strong{
  display:block;
  color:#003366!important;
  font-size:1.05rem;
  margin-bottom:.5rem;
}
#bioFirstLoginOffer .muted,
#bioFirstLoginOffer .small{
  color:#003366!important;
}
#bioFirstLoginOffer #bioStatus{
  color:#5f6f86!important;
  margin-top:.625rem;
}
#bioFirstLoginOffer .btn{
  margin-top:.625rem;
}

/* DT Vault password eye toggle */
.dtv-password-wrap{
  position:relative;
  display:block;
  width:100%;
}
.dtv-password-wrap input[type="password"],
.dtv-password-wrap input[type="text"][data-dtv-password-visible="1"]{
  width:100%;
  box-sizing:border-box;
  padding-right:2.75rem!important;
}
.dtv-password-toggle{
  position:absolute;
  right:.625rem;
  top:50%;
  transform:translateY(-50%);
  width:2rem;
  height:2rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:62.4375rem;
  background:transparent;
  color:#003366;
  cursor:pointer;
  box-shadow:none;
  padding:0;
  line-height:1;
}
.dtv-password-toggle:hover,
.dtv-password-toggle:focus{
  background:rgba(0,51,102,.08);
  color:#00449C;
  box-shadow:none;
  transform:translateY(-50%);
  outline:none;
}
.dtv-password-toggle svg{
  width:1.1875rem;
  height:1.1875rem;
  fill:currentColor;
  pointer-events:none;
}

/* DT Vault - modo oscuro (toggle en vault.php) */
.theme-toggle-row{
  display:flex;
  justify-content:flex-end;
  margin:-.375rem 0 .75rem;
}
.theme-toggle-btn{
  padding:.5rem .875rem;
  min-height:2.25rem;
  font-size:.9rem;
}

html[data-theme="dark"] body{
  background:#0f1720 !important;
  color:#e7ecf3 !important;
}
html[data-theme="dark"] .panel{
  background:#182432 !important;
  border-color:rgba(255,255,255,.08) !important;
  color:#e7ecf3 !important;
  box-shadow:0 .625rem 1.625rem rgba(0,0,0,.35) !important;
}
html[data-theme="dark"] .panel.soft{
  background:#141d29 !important;
}
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] label,
html[data-theme="dark"] strong{
  color:#dfe8f5 !important;
}
html[data-theme="dark"] .muted{
  color:#93a3b8 !important;
}
html[data-theme="dark"] .vault-dashboard .item,
html[data-theme="dark"] .item{
  background:#1c2836 !important;
  border-color:rgba(255,255,255,.10) !important;
  color:#e7ecf3 !important;
  box-shadow:0 .375rem 1rem rgba(0,0,0,.28) !important;
}
html[data-theme="dark"] .item strong{color:#e7ecf3 !important}
html[data-theme="dark"] .vault-dashboard .item.editing,
html[data-theme="dark"] .item.editing{
  background:#2a2015 !important;
  border-color:var(--dt-orange) !important;
}
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select{
  background:#101923 !important;
  border-color:rgba(255,255,255,.14) !important;
  color:#e7ecf3 !important;
}
html[data-theme="dark"] input:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] select:focus{
  border-color:var(--dt-orange) !important;
  box-shadow:0 0 0 .1875rem rgba(244,124,43,.18) !important;
}
html[data-theme="dark"] .btn.secondary{
  background:#1c2836 !important;
  color:#dfe8f5 !important;
  border-color:rgba(255,255,255,.18) !important;
}
html[data-theme="dark"] .btn.secondary:hover{
  border-color:var(--dt-orange) !important;
}
html[data-theme="dark"] .vault-password-row{
  background:#101923 !important;
  border-color:rgba(255,255,255,.10) !important;
}
html[data-theme="dark"] .bulk-actions label{
  color:#dfe8f5 !important;
}
html[data-theme="dark"] #csvFileName{
  color:#93a3b8 !important;
}
html[data-theme="dark"] a{color:#7db2ff !important}
html[data-theme="dark"] a:hover{color:var(--dt-orange) !important}

/* DT Vault - tarjetas de entrada más compactas en celular */
@media (max-width:640px){
  .item{padding:.625rem .75rem}
  .item .actions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:.5rem !important;
    margin:.625rem 0 0 !important;
  }
  .item .actions .btn{
    width:100% !important;
    min-height:2.25rem !important;
    padding:.5rem .375rem !important;
    font-size:.86rem !important;
  }
  .item .vault-password-row{
    padding:.375rem .5rem;
    margin-top:.5rem;
  }
  .item .copy-password-btn{
    min-width:2.25rem;
    padding:.375rem .5rem;
  }
  .item-row-top strong{font-size:.98rem}
}

/* DT Vault - toasts y confirmaciones propias (reemplazan alert()/confirm()) */
.dtv-toast-host{
  position:fixed;
  left:50%;
  bottom:1.375rem;
  transform:translateX(-50%);
  z-index:1000;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
  width:min(26.25rem, calc(100% - 2rem));
  pointer-events:none;
}
.dtv-toast{
  width:100%;
  box-sizing:border-box;
  padding:.75rem 1rem;
  border-radius:.75rem;
  background:var(--dt-blue);
  color:#fff;
  font-size:.92rem;
  font-weight:650;
  text-align:center;
  box-shadow:0 .75rem 1.75rem rgba(0,31,73,.28);
  opacity:0;
  transform:translateY(.5rem);
  transition:opacity .2s ease, transform .2s ease;
}
.dtv-toast-show{opacity:1;transform:translateY(0)}
.dtv-toast-danger{background:var(--dt-danger)}
.dtv-toast-success{background:var(--dt-success)}

.dtv-confirm-overlay{
  position:fixed;
  inset:0;
  z-index:1001;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1.25rem;
  background:rgba(6,16,33,.52);
  backdrop-filter:blur(2px);
}
.dtv-confirm-box{
  width:min(23.75rem, 100%);
  background:var(--dt-panel);
  border-radius:var(--dt-radius);
  box-shadow:0 1.5rem 3.75rem rgba(0,20,50,.35);
  padding:1.375rem;
}
.dtv-confirm-box p{
  margin:0 0 1.125rem;
  color:var(--dt-text);
  font-weight:650;
  line-height:1.45;
}
.dtv-confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:.625rem;
}
html[data-theme="dark"] .dtv-confirm-box{
  background:#182432 !important;
  box-shadow:0 1.5rem 3.75rem rgba(0,0,0,.5) !important;
}
html[data-theme="dark"] .dtv-confirm-box p{
  color:#e7ecf3 !important;
}
@media (max-width:480px){
  .dtv-confirm-actions{flex-direction:column-reverse}
  .dtv-confirm-actions .btn{width:100%}
}

/* DT Vault - banner instalar como app */
.dtv-install-banner{
  position:fixed;
  left:50%;
  bottom:1rem;
  transform:translateX(-50%) translateY(140%);
  z-index:999;
  display:flex;
  align-items:center;
  gap:.875rem;
  flex-wrap:wrap;
  width:min(35rem, calc(100% - 1.5rem));
  padding:.875rem 1.125rem;
  border-radius:.875rem;
  background:var(--dt-blue);
  color:#fff;
  box-shadow:0 1rem 2.25rem rgba(0,31,73,.32);
  transition:transform .22s ease;
}
.dtv-install-banner.dtv-install-show{transform:translateX(-50%) translateY(0)}
.dtv-install-text{flex:1 1 13.75rem;font-size:.92rem;font-weight:600}
.dtv-install-actions{display:flex;gap:.5rem;flex:0 0 auto}
.dtv-install-actions .btn{min-height:2.25rem;padding:.5rem .75rem;font-size:.88rem}
.dtv-install-actions .btn.secondary{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.35)}
@media (max-width:480px){
  .dtv-install-banner{flex-direction:column;align-items:stretch;text-align:center}
  .dtv-install-actions{justify-content:center}
  .dtv-install-actions .btn{flex:1}
}
