: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 6px 14px rgba(0,0,0,.06);
  --dt-shadow-hover:0 14px 30px rgba(0,51,102,.14);
  --dt-radius:12px;
  --dt-radius-sm:8px;
  --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:6px;
  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(920px,100%);
  margin:24px auto 34px;
  padding:0 12px;
}

.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:18px;
  margin-bottom:16px;
  overflow:hidden;
}
.panel::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg,var(--dt-blue),var(--dt-orange));
  opacity:.95;
}
.panel.hero{
  padding:30px 22px;
  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:4px}
.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 12px;
}
h1{font-size:clamp(2rem,4vw,3rem)}
h2{font-size:clamp(1.35rem,2.6vw,2rem)}
p{margin:0 0 12px}
.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:10px 12px;
}

.actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:16px 0 4px;
}
.btn,button[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border:1px solid var(--dt-blue-2);
  border-radius:var(--dt-radius-sm);
  background:var(--dt-blue-2);
  color:#fff;
  padding:10px 14px;
  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 8px 18px 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 8px 18px 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:12px 0 6px;
  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:10px 12px;
  font:inherit;
  outline:none;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
textarea{min-height:96px;resize:vertical}
input:focus,textarea:focus,select:focus{
  border-color:var(--dt-blue-2);
  box-shadow:0 0 0 3px rgba(0,68,156,.12);
}
input[type="range"]{
  accent-color:var(--dt-blue-2);
  padding:8px 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:12px;
  flex-wrap:wrap;
  margin:6px 0 16px;
}
.dtv-file-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  cursor:pointer;
}
.dtv-file-icon{flex:0 0 auto}
.dtv-support-actions{align-items:center}
.dtv-support-actions .btn-icon-only{
  width:42px;
  min-width:42px;
  padding:0;
  flex:0 0 auto;
}
.dtv-support-actions .btn-icon-only .wa-mark{width:20px;height:20px;display:inline-flex}
.dtv-support-actions .btn-icon-only .wa-mark svg{width:20px;height:20px;fill:currentColor;display:block}
.btn:has(.dtv-file-icon){gap:8px}
.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:8px;
  margin:10px 0 14px;
}
.checks label{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:10px 12px;
  border:1px solid var(--dt-line);
  border-radius:var(--dt-radius-sm);
  background:#fff;
  color:var(--dt-text);
  font-weight:600;
}

.meter{
  height:10px;
  background:var(--dt-soft);
  border-radius:99px;
  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:12px;
  margin-bottom:10px;
}
.topbar h1{margin:0}
.topbar a{
  border:1px solid var(--dt-line);
  border-radius:var(--dt-radius-sm);
  padding:8px 12px;
  background:#fff;
}

.item{
  border:1px solid var(--dt-line);
  border-radius:var(--dt-radius);
  padding:14px;
  margin:10px 0;
  background:#fff;
  box-shadow:0 4px 10px 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 12px;
  padding:8px 12px;
  border-radius:8px;
  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:10px}
.item-row-top input[type="checkbox"]{width:18px;height:18px;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:12px;flex-wrap:wrap;margin:4px 0 12px}
.bulk-actions label{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--dt-blue);cursor:pointer}
.bulk-actions input[type="checkbox"]{width:18px;height:18px;accent-color:var(--dt-edit-highlight)}

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

@media(max-width:720px){
  .container{margin:16px auto 28px;padding:0 12px}
  .panel{padding:16px}
  .panel.hero{padding:24px 18px}
  .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:980px;}
.panel{
  border:1px solid rgba(0,51,102,.10);
  box-shadow:0 8px 24px rgba(0,31,63,.08);
}

.hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  gap:24px;
  align-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,var(--dt-blue) 0%,#064b91 100%);
  color:#fff;
  border-top:4px solid var(--dt-orange);
}
.hero h1{font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.05;margin-bottom:12px;letter-spacing:-.04em;color:#fff;}
.hero .muted{color:rgba(255,255,255,.88);max-width:680px;}
.hero .actions{margin-top:18px;}
.hero .btn{background:#075fbd;color:#fff;box-shadow:0 8px 18px 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:360px;margin-left:auto;border-radius:22px;filter:drop-shadow(0 18px 26px 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 4px rgba(0,68,156,.10);
}

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

@media(max-width:760px){
  .hero{grid-template-columns:1fr;padding:24px;}
  .hero-visual img{max-width:280px;margin:4px 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: 10px;
  align-items: center;
}

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

.dtv-footer-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  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: 10px;
  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: 42px;
  white-space: nowrap;
}

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

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

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

.dtv-donation-footer p {
  margin: 0;
  max-width: 720px;
  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 8px 18px rgba(37, 211, 102, .24);
  gap: 8px;
  text-decoration: none;
}

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

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

.wa-mark svg {
  width: 20px;
  height: 20px;
  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:14px;
  --dt-shadow:0 14px 34px 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: 980px;
  margin: 28px auto;
  padding: 0 18px;
}

.vault-dashboard .card,
.vault-dashboard .panel,
.vault-dashboard > section,
.vault-dashboard > div:first-child{
  border-radius: 18px;
  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 18px 22px;
  background:
    linear-gradient(180deg, var(--dt-blue) 0 104px, #fff 104px 100%);
  border-top: 3px solid var(--dt-orange);
}

.vault-dashboard h1{
  color:#fff;
  margin:0;
  padding:22px 0 12px;
  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:8px;
  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:20px;
  right:18px;
  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:10px;
  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:8px;
  margin-bottom:18px;
  padding:12px;
  border-radius:16px;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(214,225,239,.95);
  box-shadow:0 10px 24px rgba(0,31,73,.12);
  transform:translateY(2px);
}

.vault-dashboard .btn,
.vault-dashboard button,
.vault-dashboard input[type="submit"]{
  border-radius:10px;
  font-weight:800;
  letter-spacing:.01em;
  min-height:38px;
  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 8px 18px rgba(0,68,156,.16);
}

.vault-dashboard .btn:not(.secondary):not(.ghost),
.vault-dashboard button:not(.secondary):not(.ghost),
.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:14px;
}

.vault-dashboard .item,
.vault-dashboard .vault-item,
.vault-dashboard article,
.vault-dashboard ul > li{
  background:#fff;
  border:1px solid #d2deee;
  box-shadow:0 8px 18px 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 14px 28px rgba(0,31,73,.10);
}

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

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

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

.dtv-footer .wa-btn,
.wa-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:10px 16px;
  border-radius:10px;
  background:#20c65a!important;
  color:#fff!important;
  border:1px solid rgba(0,0,0,.05)!important;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 10px 22px 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:14px auto;
    padding:0 12px;
  }

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

  .vault-dashboard h1{
    padding:20px 0 10px;
    padding-right:76px;
    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:18px;
    right:12px;
  }

  .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:8px;
  }

  .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:20px;
    padding:16px 12px;
  }

  .dtv-footer .wa-btn,
  .wa-btn{
    width:100%;
    max-width:320px;
  }
}

@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:12px 14px;border:1px dashed #9bb6d8;background:#f7fbff;border-radius:12px;font-size:1.05rem;letter-spacing:.08em;word-break:break-all}.security-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.security-card{border:1px solid rgba(0,51,102,.16);border-radius:16px;padding:16px;background:#fff}.danger-zone{margin-top:18px;border-top:1px solid rgba(0,51,102,.14);padding-top:14px}.btn.danger{background:var(--dt-danger);color:#fff;border-color:var(--dt-danger)}.recovery-list{background:#0b1f3a;color:#fff;border-radius:14px;padding:16px;line-height:1.7;overflow:auto}.table-wrap{overflow:auto;border:1px solid rgba(0,51,102,.14);border-radius:14px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px 12px;border-bottom:1px solid rgba(0,51,102,.10);text-align:left;vertical-align:top}th{background:#f3f7fb;color:#003366}.wide{max-width:1180px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.admin-stats div{background:#fff;border:1px solid rgba(0,51,102,.14);border-radius:16px;padding:16px;box-shadow:0 8px 18px 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:6px}.inline-actions .btn{padding:7px 9px;font-size:.88rem}.search-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:12px 0 18px}.auth-note{margin-top:14px}.footer-donation{margin-top:28px}
@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:1100px}.admin-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:28px 30px;background:linear-gradient(135deg,#003366 0%,#00449c 68%,#0759bd 100%);color:#fff;border:0;border-top:3px solid #f47c2b;box-shadow:0 18px 45px rgba(0,51,102,.18)}.admin-hero:after{content:"";position:absolute;right:-80px;top:-90px;width:260px;height:260px;border-radius:999px;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:690px;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:16px;padding:18px 20px}.admin-search label{display:block;font-weight:800;color:#003366;margin-bottom:8px}.admin-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}.admin-search-row input{height:44px}.admin-user-list{display:grid;gap:14px;margin-top:16px}.admin-user-card{padding:0;overflow:hidden;border:1px solid rgba(0,51,102,.14);box-shadow:0 12px 32px rgba(0,51,102,.08)}.admin-user-card:hover{transform:translateY(-1px);box-shadow:0 18px 42px rgba(0,51,102,.12);transition:.18s ease}.admin-user-main{display:flex;align-items:center;gap:14px;padding:18px 20px;background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);border-bottom:1px solid rgba(0,51,102,.10)}.admin-avatar{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#003366;color:#fff;font-size:1.25rem;font-weight:900;box-shadow:0 8px 22px rgba(0,51,102,.18)}.admin-user-identity h2{margin:0 0 4px;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:14px 16px;min-width:0}.meta-label{display:block;color:#667085;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.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:999px;padding:5px 10px;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:9px;flex-wrap:wrap;padding:16px 20px;background:#fbfdff}.admin-user-actions .btn{padding:9px 13px}.admin-empty{padding:24px}.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:12px!important;padding-right:12px!important}.admin-hero{padding:24px 18px}.admin-toolbar-panel{padding:16px}.admin-search-row{grid-template-columns:1fr}.admin-search-row .btn{width:100%;justify-content:center}.admin-user-main{align-items:flex-start;padding:16px}.admin-avatar{width:42px;height:42px;border-radius:14px}.admin-user-meta{grid-template-columns:1fr}.admin-user-actions{display:grid;grid-template-columns:1fr;padding:14px 16px}.admin-user-actions .btn{width:100%;justify-content:center}}


/* DT Vault logout alignment patch */
#unlockBox{
  display:grid;
  gap:14px;
}
#unlockBox > .muted{
  margin:0 0 4px;
}
#unlockBox label{
  display:grid;
  gap:6px;
  max-width:420px;
  margin:0;
}
#unlockBox input{
  width:100%;
}
#unlockBox #unlockBtn{
  justify-self:start;
  align-self:end;
  min-height:42px;
  margin:0;
}
@media (min-width: 680px){
  #unlockBox{
    grid-template-columns:minmax(260px, 420px) auto;
    align-items:end;
    column-gap:10px;
  }
  #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:16px;
}
.footer-donation .whatsapp-btn,
.footer-donation .btn.whatsapp,
.btn.whatsapp,
.whatsapp-donate{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
  min-height:42px;
}
@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:260px;
  }
}


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

.hero-menu a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 14px;
  border-radius: 10px;
  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 8px 22px 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 8px 20px 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 8px 20px 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: 8px;
    margin-bottom: 22px;
  }
  .hero-menu a {
    width: 100%;
    min-height: 42px;
    padding: 10px 9px;
    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 18px 44px rgba(0,51,102,.14);
}

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

.dtv-page{
  width:min(1120px, calc(100% - 28px));
  margin:18px auto 34px;
}

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

.dtv-hero-clean::after{
  content:"";
  position:absolute;
  right:-120px;
  top:-140px;
  width:360px;
  height:360px;
  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:10px;
  flex-wrap:nowrap;
  margin-bottom:26px;
}

.dtv-nav-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 15px;
  border-radius:9px;
  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:14px;
  letter-spacing:.01em;
  white-space:nowrap;
  box-shadow:0 8px 18px 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 12px 24px 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(260px, 390px);
  gap:34px;
  align-items:center;
  padding:2px 8px 12px;
}

.dtv-hero-copy{
  max-width:640px;
}

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

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

.dtv-lead{
  margin:16px 0 0;
  color:#fff;
  font-size:clamp(17px, 2.1vw, 22px);
  line-height:1.45;
  max-width:720px;
}

.dtv-note{
  margin:14px 0 0;
  color:#d8eafd;
  font-size:14px;
  line-height:1.55;
  max-width:660px;
}

.dtv-hero-art{
  justify-self:end;
  width:min(100%, 390px);
  padding:8px;
  border-radius:24px;
  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:18px;
  padding:22px 24px;
  border-radius:12px;
  border:1px solid #d8e2ee;
  border-top:3px solid var(--dtv-orange);
  background:#fff;
  box-shadow:0 10px 26px rgba(0,51,102,.08);
}

.dtv-info-card h2{
  margin:0 0 8px;
  color:var(--dtv-blue);
  font-size:clamp(24px, 3vw, 34px);
  line-height:1.1;
}

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

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

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

.dtv-whatsapp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:42px;
  padding:0 18px;
  border-radius:8px;
  background:#25D366;
  color:#fff !important;
  text-decoration:none;
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 12px 24px rgba(37,211,102,.25);
}

.dtv-wa-icon{
  font-size:16px;
  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:22px;
  }
  .dtv-hero-copy{
    margin:0 auto;
  }
  .dtv-hero-art{
    justify-self:center;
    max-width:360px;
  }
  .dtv-footer-donation{
    flex-direction:column;
    gap:14px;
  }
}

@media (max-width:560px){
  .dtv-page{
    width:min(100% - 20px, 1120px);
    margin-top:10px;
  }
  .dtv-hero-clean{
    padding:14px;
  }
  .dtv-hero-nav{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-bottom:22px;
  }
  .dtv-nav-btn{
    width:100%;
  }
  .dtv-hero-grid{
    padding:0 0 8px;
  }
  .dtv-hero-art{
    max-width:280px;
  }
  .dtv-info-card{
    padding:18px;
  }
  .dtv-whatsapp-btn{
    width:100%;
  }
}


/* DT VAULT SAFE IMAGE FIX START */
.dtv-home{max-width:980px;margin:18px auto 0;padding:0 14px;}
.dtv-hero-clean{position:relative;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,#003366 0%,#00449c 100%);border-top:3px solid #f47c2b;box-shadow:0 12px 30px rgba(0,30,75,.12);padding:18px 20px 28px;color:#fff;}
.dtv-hero-clean:after{content:"";position:absolute;right:-90px;top:-120px;width:340px;height:340px;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:10px;flex-wrap:nowrap;margin-bottom:18px;}
.dtv-hero-menu a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 15px;border-radius:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;font-weight:800;font-size:14px;line-height:1;box-shadow:0 2px 10px 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) 360px;gap:24px;align-items:center;}
.dtv-eyebrow{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.18em;font-weight:900;color:#cfe3fb;}
.dtv-hero-copy h1{font-size:56px;line-height:.96;margin:0 0 14px;color:#fff;letter-spacing:-.04em;}
.dtv-lead{font-size:20px;line-height:1.45;margin:0 0 12px;max-width:650px;color:#fff;}
.dtv-note{font-size:13px;line-height:1.5;margin:0;color:#d9e8f8;}
.dtv-hero-art{display:flex;justify-content:center;align-items:center;min-height:230px;}
.dtv-hero-art img{display:block;width:min(100%,360px);height:auto;filter:drop-shadow(0 18px 22px rgba(0,20,50,.20));}
.dtv-info-panel{margin-top:16px;border-top:2px solid #f47c2b;}
.dtv-info-panel h2{margin-top:0;}
.dtv-footer{max-width:980px;margin:20px auto 0;padding:0 14px 26px;}
.dtv-footer-inner{border-top:1px solid #cdd9e6;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:18px;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:8px;background:#25d366;color:#fff;text-decoration:none;font-weight:800;border-radius:8px;padding:11px 18px;box-shadow:0 8px 18px 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:320px;}.dtv-hero-copy h1{font-size:46px;}.dtv-lead{font-size:18px;}.dtv-footer-inner{flex-direction:column;}}
@media (max-width:520px){.dtv-hero-clean{padding:14px 14px 22px;}.dtv-hero-menu{grid-template-columns:1fr;gap:8px;}.dtv-hero-menu a{width:100%;}.dtv-hero-copy h1{font-size:40px;}.dtv-lead{font-size:16px;}.dtv-hero-art img{max-width:260px;}.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:10px;
  flex-wrap:wrap;
  margin:0 0 18px auto;
}
.hero-menu-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 14px;
  border-radius:8px;
  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:14px;
  line-height:1.1;
  white-space:nowrap;
  box-shadow:0 8px 18px 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:17px;
  height:17px;
  flex:0 0 17px;
  display:inline-block;
  vertical-align:-3px;
  margin-right:6px;
}
a[href*="wa.me"],
a[href*="whatsapp"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
@media (max-width:780px){
  .hero-menu{
    justify-content:flex-start;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin-bottom:18px;
  }
  .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: 18px;
  right: 18px;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: nowrap;
  max-width: calc(100% - 36px);
}

.hero-menu-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 13px;
  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: 4px;
  font-size: clamp(18px, 2.2vw, 27px);
  font-weight: 700;
  letter-spacing: .01em;
  color: rgba(255,255,255,.92);
}

.hero p {
  max-width: 560px;
}

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

@media (max-width: 560px) {
  .hero .hero-menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .hero-menu-link {
    width: 100%;
    padding: 10px 9px;
    font-size: 12px;
  }
}

@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:10px;
  flex-wrap:nowrap;
  width:100%;
  margin:0 0 18px 0;
  position:relative;
  z-index:5;
}
.dtv-hero-menu-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 14px;
  border-radius:8px;
  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:13px;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 8px 18px 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 12px 24px 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:8px;
  }
  .dtv-hero-menu-link{
    flex:1 1 calc(50% - 8px);
    min-width:180px;
  }
}
@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: 18px;
  right: 20px;
  z-index: 20;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: nowrap;
  max-width: calc(100% - 40px);
}

.dtv-hero-menu__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 8px 14px;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 8px;
  background: rgba(255,255,255,.10);
  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.1;
  white-space: nowrap;
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
  backdrop-filter: blur(8px);
  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 22px 0;
    justify-content: flex-start;
    flex-wrap: wrap;
    max-width: 100%;
  }

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

@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: 10px;
  position: absolute;
  top: 18px;
  right: 20px;
  left: 20px;
  z-index: 50;
  pointer-events: auto;
}

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

.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(72px, 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(290px, 42vw) !important;
  height: auto !important;
  object-fit: contain !important;
}

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

@media (max-width: 520px) {
  .dtv-hero-menu {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .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: 18px;
  padding: 16px;
  margin: 12px 0 16px;
  border: 1px solid rgba(0, 68, 156, .18);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(0,68,156,.08), rgba(244,124,43,.08));
}
.dtv-twofa-qr-copy h3 {
  margin: 0 0 6px;
  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: 188px;
  min-height: 188px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0, 51, 102, .14);
  box-shadow: 0 10px 22px rgba(0, 51, 102, .12);
}
.dtv-twofa-qr-box img,
.dtv-twofa-qr-box canvas {
  display: block;
  width: 172px !important;
  height: 172px !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: 14px 0 16px;
  padding: 14px;
  border: 1px solid rgba(0, 68, 156, .18);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(0,68,156,.06), rgba(244,124,43,.06));
  display: grid;
  gap: 12px;
  align-items: start;
  justify-items: center;
}
.dtv-twofa-compact-copy {
  width: 100%;
  display: grid;
  gap: 4px;
  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: 188px;
  min-height: 188px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0, 51, 102, .14);
  box-shadow: 0 10px 22px rgba(0, 51, 102, .12);
}
.dtv-twofa-qr-compact img,
.dtv-twofa-qr-compact canvas {
  display: block;
  width: 168px !important;
  height: 168px !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: 14px;
  flex-wrap: wrap;
  text-align: left;
}

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

.dtv-footer .btn-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #25D366;
  color: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 8px 18px 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 10px 22px 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: 10px;
  flex-wrap: wrap;
  position: relative;
  z-index: 20;
  margin: 0 0 22px 0;
}

.dtv-hero-menu a,
.dtv-hero-menu-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 8px 15px;
  border-radius: 9px;
  border: 1px solid rgba(255, 255, 255, .35);
  background: rgba(255, 255, 255, .12) !important;
  color: #ffffff !important;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: 0 6px 14px 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 10px 22px rgba(0, 0, 0, .18);
  outline: none;
}

.dtv-hero-menu a:active,
.dtv-hero-menu-link:active {
  transform: translateY(0);
  box-shadow: 0 5px 12px 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% - 10px);
  }
}

@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: 4px;
  background: #F47C2B;
  border-radius: 18px 18px 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 -18px 14px;
  padding: 22px 18px 10px;
  background: linear-gradient(135deg, #003366 0%, #00449C 100%);
  border-top: 4px 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: -14px -18px 18px;
  padding: 0 18px 18px;
  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 -18px 18px;
  padding: 18px;
  background: linear-gradient(135deg, #003366 0%, #00449C 100%);
  border-top: 4px 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 -18px 18px;
  padding: 20px 18px;
  background: linear-gradient(135deg, #003366 0%, #00449C 100%);
  border-top: 4px 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 */
.dtv-footer.dtv-footer-unified {
  max-width: 980px;
  margin: 20px auto 0;
  padding: 0 14px 28px;
}

.dtv-footer.dtv-footer-unified .dtv-footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-top: 1px solid #cdd9e6;
  padding-top: 14px;
  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: #60728d;
  line-height: 1.5;
  text-align: left;
}

.dtv-pay-methods {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
}

.dtv-pay-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid rgba(0, 51, 102, .16);
  background: #ffffff;
  color: #003366;
  font-size: 12px;
  font-weight: 750;
  line-height: 1;
  box-shadow: 0 4px 10px rgba(0, 51, 102, .06);
  white-space: nowrap;
}

.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: 7px;
  min-height: 38px;
  padding: 9px 16px;
  border-radius: 8px;
  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 8px 18px 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 10px 22px 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: 16px;
  height: 16px;
  display: inline-flex;
  flex: 0 0 16px;
  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%;
  }
}

/* DT Vault - footer azul suave e imagenes de donacion */
.dtv-footer.dtv-footer-unified {
  max-width: 980px;
  margin: 20px auto 0;
  padding: 0 14px 28px;
}

.dtv-footer.dtv-footer-unified .dtv-footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px;
  border: 1px solid rgba(0, 68, 156, .14);
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    rgba(0, 68, 156, .075) 0%,
    rgba(0, 51, 102, .045) 100%
  );
  box-shadow: 0 8px 22px 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: 9px;
  margin-top: 10px;
}

.dtv-pay-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 86px;
  height: 30px;
  padding: 4px 8px;
  border-radius: 9px;
  border: 1px solid rgba(0, 51, 102, .12);
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 4px 10px rgba(0, 51, 102, .06);
}

.dtv-pay-logo img {
  display: block;
  max-width: 100%;
  max-height: 22px;
  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: 7px;
  min-height: 38px;
  padding: 9px 16px;
  border-radius: 8px;
  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 8px 18px 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 10px 22px 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: 16px;
  height: 16px;
  display: inline-flex;
  flex: 0 0 16px;
  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: 82px;
    height: 30px;
  }
}

/* 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: 10px;
}

/* 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: 44px !important;
    margin: 10px 0 0 0 !important;
    padding: 11px 14px !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: 10px !important;
    width: 100% !important;
    margin: 0 0 24px 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: 44px !important;
    margin: 0 !important;
    padding: 11px 14px !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: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
  }

  .actions .btn,
  .actions a.btn,
  .actions button.btn {
    width: 100% !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 11px 14px !important;
    line-height: 1.15 !important;
  }
}

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

  .topbar .btn,
  .topbar a.btn {
    min-height: 42px !important;
    padding: 10px 14px !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: 10px !important;
    width: 100% !important;
    margin: 0 0 24px 0 !important;
    padding: 0 !important;
  }

  .dtv-hero-menu a,
  .dtv-hero-menu-link {
    box-sizing: border-box !important;
    width: 260px !important;
    max-width: calc(100vw - 72px) !important;
    margin: 0 auto !important;
    padding: 10px 16px !important;
    min-height: 42px !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: 240px !important;
    max-width: calc(100vw - 56px) !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

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

.copy-password-btn{
  width:auto;
  min-width:42px;
  padding:7px 10px;
  line-height:1;
}

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

  .copy-password-btn{
    width:auto;
    min-width:46px;
    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:16px;padding-top:12px;border-top:1px solid rgba(0,51,102,.14)}
.biometric-login-box hr{display:none}
.biometric-card{margin-top:12px}
.biometric-card .actions{margin-top:12px}
#bioLoginStatus,#bioStatus,#bioLocalState{min-height:1.35em}
@media(max-width:640px){.biometric-card .actions{display:grid!important;grid-template-columns:1fr!important}.biometric-card .actions .btn{width:100%!important}}


/* DT Vault - acceso rapido biometrico v3 */
.biometric-login-box{margin-top:16px;padding-top:12px;border-top:1px solid rgba(0,51,102,.14)}
.biometric-login-box hr{display:none}
.biometric-card{margin-top:12px}
.biometric-card .actions{margin-top:12px}
#bioLoginStatus,#bioStatus,#bioLocalState{min-height:1.35em}
#bioDeviceList{margin:6px 0 10px}
#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 16px;
  padding:0;
  border:0;
}
.biometric-login-box.biometric-login-compact[hidden]{
  display:none!important;
}
.biometric-login-main{
  width:100%;
  min-height:46px;
  gap:10px;
}
.biometric-login-icon{
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 22px;
}
.biometric-login-icon svg{
  width:22px;
  height:22px;
  display:block;
  fill:currentColor;
}
#bioLoginStatus{
  margin:8px 0 0;
  min-height:1.35em;
  text-align:center;
}
@media(max-width:640px){
  .biometric-login-main{
    min-height:44px;
  }
}


/* 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 16px;
  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:64px!important;
  min-width:64px!important;
  max-width:64px!important;
  height:58px!important;
  min-height:58px!important;
  padding:0!important;
  border-radius:16px!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:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 38px;
}
.biometric-login-box.biometric-login-icon-only .biometric-login-icon svg{
  width:38px;
  height:38px;
  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:62px!important;
    min-width:62px!important;
    max-width:62px!important;
    height:56px!important;
    min-height:56px!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 16px!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:64px!important;
  min-width:64px!important;
  max-width:64px!important;
  height:54px!important;
  min-height:54px!important;
  padding:0!important;
  border-radius:16px!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:36px;
  height:36px;
  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 12px;
}
@media(max-width:640px){
  #biometricLoginBtn.biometric-icon-btn,
  .biometric-login-box.biometric-login-icon-only .biometric-icon-btn{
    width:62px!important;
    min-width:62px!important;
    max-width:62px!important;
    height:52px!important;
    min-height:52px!important;
  }
}

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

/* DT Vault - aviso de acceso rapido destacado, sin parecer header */
#bioFirstLoginOffer{
  background:#ffffff!important;
  color:#003366!important;
  border:1px solid rgba(0,51,102,.18)!important;
  border-top:5px solid #F47C2B!important;
  border-radius:18px!important;
  box-shadow:0 10px 24px rgba(0,51,102,.10)!important;
  margin:18px 0 20px!important;
}
#bioFirstLoginOffer strong,
#bioFirstLoginOffer p,
#bioFirstLoginOffer .muted,
#bioFirstLoginOffer #bioStatus{
  color:#003366!important;
}



/* DT Vault - ajuste puntual acceso rapido: tarjeta blanca y texto institucional */
#bioFirstLoginOffer {
  background: #ffffff !important;
  color: #003366 !important;
  border: 1px solid rgba(0, 51, 102, .16) !important;
  border-top: 4px solid #F47C2B !important;
  box-shadow: 0 10px 26px rgba(0, 51, 102, .10) !important;
}
#bioFirstLoginOffer strong,
#bioFirstLoginOffer .muted,
#bioFirstLoginOffer .small {
  color: #003366 !important;
}
#bioFirstLoginOffer #bioStatus {
  color: #5f6f86 !important;
}

/* DT Vault password eye toggle */
.dtv-password-wrap{
  position:relative;
  display:block;
}
.dtv-password-wrap input[type="password"],
.dtv-password-wrap input[type="text"][data-dtv-password-visible="1"]{
  padding-right:46px;
}
.dtv-password-toggle{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  width:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  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:19px;
  height:19px;
  fill:currentColor;
  pointer-events:none;
}

/* DT Vault password eye: start */
.dtv-password-wrap {
  position: relative;
  display: block;
  width: 100%;
}

.dtv-password-wrap > input[type="password"],
.dtv-password-wrap > input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  padding-right: 2.75rem !important;
}

.dtv-password-eye {
  position: absolute;
  top: 50%;
  right: 0.65rem;
  transform: translateY(-50%);
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #003366;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  line-height: 1;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  z-index: 2;
}

.dtv-password-eye:hover,
.dtv-password-eye:focus {
  background: transparent;
  color: #00449C;
  box-shadow: none;
  outline: none;
}

.dtv-password-eye:focus-visible {
  outline: 2px solid rgba(0, 68, 156, 0.35);
  outline-offset: 2px;
  border-radius: 999px;
}

.dtv-password-eye svg {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
  pointer-events: none;
}
/* DT Vault password eye: end */

/* DT Vault - modo oscuro (toggle en vault.php) */
.theme-toggle-row{
  display:flex;
  justify-content:flex-end;
  margin:-6px 0 12px;
}
.theme-toggle-btn{
  padding:8px 14px;
  min-height:36px;
  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 10px 26px 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 6px 16px 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 3px 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:10px 12px}
  .item .actions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    margin:10px 0 0 !important;
  }
  .item .actions .btn{
    width:100% !important;
    min-height:36px !important;
    padding:8px 6px !important;
    font-size:.86rem !important;
  }
  .item .vault-password-row{
    padding:6px 8px;
    margin-top:8px;
  }
  .item .copy-password-btn{
    min-width:36px;
    padding:6px 8px;
  }
  .item-row-top strong{font-size:.98rem}
}
