/* =========================================================
   Renta WEB · hoja de estilo
   ADN: Sede Electrónica AEAT — Arial, azul #005eb5, filete
   #dee2e6, tarjeta con sombra, anillo de foco amarillo.
   ========================================================= */

:root{
  --azul:#005eb5;
  --azul-hover:#004a8f;
  --azul-osc:#003669;
  --azul-claro:#f1f8fe;
  --rojo:#da291c;
  --amarillo:#ffcd00;
  --verde:#080;
  --gris:#dee2e6;
  --gris-borde:#ced4da;
  --gris-fondo:#e9ecef;
  --gris-texto:#6c757d;
  --radio:.25rem;
  --sombra:0 .125rem .25rem rgba(0,0,0,.3);
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  -webkit-user-select:none;user-select:none;
  -webkit-touch-callout:none;
  border-top:2px solid var(--gris);
  background:#fff;
  color:#000;
  font-family:Arial,Helvetica,sans-serif;
  font-size:1rem;
  line-height:1.35;
  padding-bottom:92px;
}

img{max-width:100%;height:auto}
a{color:var(--azul);text-decoration:none}
a:hover{color:var(--azul-osc);text-decoration:underline}

::selection{background:var(--azul);color:#fff}

.saltar{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--azul);color:#fff;padding:.5rem 1rem;
}
.saltar:focus{left:0}

.contenedor{width:100%;max-width:1140px;margin:0 auto;padding:0 1rem}

/* ---------- cabecera ---------- */

.cabecera{background:#fff}

.cabecera-in{padding-top:.75rem;padding-bottom:.5rem}

.logos{display:inline-flex;align-items:center;gap:.75rem;line-height:0}
.logos img:first-child{width:227px;height:62px;object-fit:contain}
.logos img:last-child{width:64px;height:62px;object-fit:contain}

.barra-azul{background:var(--azul);color:#fff}
.barra-in{display:flex;align-items:center;gap:.75rem;min-height:44px;padding-top:.5rem;padding-bottom:.5rem;font-size:.9375rem}
.barra-sede{font-weight:700;white-space:nowrap}
.barra-sep{width:1px;height:18px;background:rgba(255,255,255,.5)}
.barra-tramite{color:#dbe9f7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- migas ---------- */

.migas{padding-top:1rem}
.migas ol{
  display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:.75rem 1rem;
  background:var(--gris-fondo);border-radius:var(--radio);font-size:.9375rem;
}
.migas li+li::before{content:"/";margin-right:.5rem;color:var(--gris-texto)}
.migas a{color:var(--azul)}
.migas [aria-current]{color:#495057}

/* ---------- marco ---------- */

.marco{padding-top:1.25rem;padding-bottom:2rem}

.rail{margin-bottom:1.25rem}
.rail ul{display:flex;gap:.5rem;list-style:none;margin:0 0 .75rem;padding:0;overflow-x:auto;scrollbar-width:none}
.rail ul::-webkit-scrollbar{display:none}
.rail a{
  display:flex;align-items:center;gap:.5rem;white-space:nowrap;
  padding:.5rem .75rem;border:1px solid var(--gris);border-radius:var(--radio);
  color:var(--azul);font-size:.9375rem;background:#fff;
}
.rail a:hover,.rail a.activo{background:var(--azul);border-color:var(--azul);color:#fff !important;text-decoration:none}
.rail a i{font-style:normal;opacity:.7}
.rail-nota{display:none;margin:0;font-size:.8125rem;color:var(--gris-texto);line-height:1.4}

/* ---------- documento ---------- */

h1{font-size:1.8rem;line-height:1.2;font-weight:700;margin:0 0 .5rem}

.entradilla{margin:0 0 1.25rem;font-size:1rem;color:#000}

.aviso{
  background:var(--azul-claro);border:1px solid #c1e0fb;border-radius:var(--radio);
  padding:1rem 1.25rem;margin-bottom:1.5rem;
}
.aviso h2{font-size:1.0625rem;font-weight:700;margin:0 0 .5rem;color:var(--azul-osc)}
.aviso p{margin:0 0 .75rem;font-size:.9375rem;line-height:1.45}
.aviso p:last-child{margin-bottom:0}
.aviso details{margin-top:.5rem}
.aviso summary{
  cursor:pointer;color:var(--azul);font-size:.9375rem;font-weight:700;
  padding:.25rem 0;
}
.aviso summary:hover{color:var(--azul-osc)}
.aviso details p,.aviso details ul{font-size:.9375rem}
.aviso details ul{margin:0 0 .75rem;padding-left:1.25rem}

/* ---------- tarjetas ---------- */

.tarjeta{
  background:#fff;border:1px solid var(--gris);border-radius:var(--radio);
  box-shadow:var(--sombra);padding:1.25rem;margin-bottom:1.25rem;
}
.tarjeta h2{font-size:1.3rem;line-height:1.2;font-weight:500;margin:0 0 1rem}

.nota{margin:-.5rem 0 1rem;font-size:.875rem;color:var(--gris-texto)}

/* ---------- campos ---------- */

.campo{margin-bottom:1rem;min-width:0}
.campo label{display:block;font-size:.875rem;font-weight:700;margin-bottom:.25rem}

.campo input,.campo select{
  width:100%;height:38px;padding:.375rem .75rem;
  font-family:inherit;font-size:1rem;color:#000;
  background:#fff;border:1px solid var(--gris-borde);border-radius:var(--radio);
  transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.campo input::placeholder{color:var(--gris-texto)}
.campo input,.campo select,.selector-panel input{-webkit-user-select:text;user-select:text}
.campo input:focus,.campo select:focus{
  outline:0;border-color:#0386ff;box-shadow:0 0 0 .2rem var(--amarillo);
}
.campo input[aria-invalid="true"],.campo select[aria-invalid="true"]{
  border-color:var(--rojo);
}
.campo input[aria-invalid="true"]:focus,.campo select[aria-invalid="true"]:focus{
  box-shadow:0 0 0 .2rem rgba(218,41,28,.25);
}

select{appearance:none;padding-right:2rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236c757d' stroke-width='1.4'/%3E%3C/svg%3E");
  background-position:right .75rem center;background-size:10px 6px;background-repeat:no-repeat;
}

.pareja{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}

.prefijo{display:flex;align-items:stretch}
.prefijo span{
  display:flex;align-items:center;padding:0 .75rem;
  background:var(--gris-fondo);border:1px solid var(--gris-borde);border-right:0;
  border-radius:var(--radio) 0 0 var(--radio);font-size:.9375rem;color:#495057;
}
.prefijo input{border-radius:0 var(--radio) var(--radio) 0}
.prefijo:focus-within span{border-color:#0386ff}

.error{margin:.25rem 0 0;font-size:.85em;color:var(--rojo)}
.error:empty{display:none}

/* ---------- selector de entidad ---------- */

.selector{position:relative}

.selector-btn{
  display:flex;align-items:center;gap:.625rem;width:100%;height:44px;padding:.375rem .75rem;
  font-family:inherit;font-size:1rem;color:#000;text-align:left;
  background:#fff;border:1px solid var(--gris-borde);border-radius:var(--radio);cursor:pointer;
}
.selector-btn:hover{border-color:#adb5bd}
.selector-btn:focus{outline:0;border-color:#0386ff;box-shadow:0 0 0 .2rem var(--amarillo)}
.selector-btn[aria-invalid="true"]{border-color:var(--rojo)}
.selector-btn svg{flex:none;color:var(--gris-texto);margin-left:auto}
.selector-logo{flex:none;width:40px;height:24px;display:flex;align-items:center}
.selector-logo img{max-width:40px;max-height:24px;object-fit:contain}
.selector-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selector-txt.vacio{color:var(--gris-texto)}

.selector-panel{
  position:absolute;z-index:40;top:calc(100% + .25rem);left:0;right:0;
  background:#fff;border:1px solid var(--gris);border-radius:var(--radio);
  box-shadow:0 .5rem 1rem rgba(0,0,0,.2);overflow:hidden;
}
.selector-panel input{
  width:100%;height:40px;padding:0 .75rem;font-family:inherit;font-size:.9375rem;
  border:0;border-bottom:1px solid var(--gris);border-radius:0;
}
.selector-panel input:focus{outline:0;border-bottom-color:#0386ff;box-shadow:inset 0 -2px 0 var(--amarillo)}

#bankList{list-style:none;margin:0;padding:0;max-height:250px;overflow-y:auto;overscroll-behavior:contain}
#bankList li{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #f1f3f5}
#bankList li:last-child{border-bottom:0}
#bankList li:hover,#bankList li.activo{background:var(--azul-claro)}
#bankList li[aria-selected="true"]{background:#e3effb;font-weight:700}
#bankList img{width:40px;height:24px;object-fit:contain;flex:none}
#bankList span{font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.selector-vacio{margin:0;padding:.875rem;font-size:.875rem;color:var(--gris-texto);text-align:center}

/* ---------- resumen de errores ---------- */

.resumen-errores{
  border:1px solid var(--rojo);border-radius:var(--radio);
  background:#fdf2f1;padding:1rem 1.25rem;margin-bottom:1.25rem;
}
.re-titulo{margin:0 0 .5rem;font-weight:700;color:var(--rojo);font-size:1rem}
.resumen-errores ul{margin:0;padding-left:1.25rem;font-size:.9375rem}
.resumen-errores a{color:var(--rojo);text-decoration:underline}

/* ---------- letra y envío ---------- */

.letra{margin:0 0 1.25rem;font-size:.8125rem;color:var(--gris-texto);line-height:1.4}

.envio{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:#fff;border-top:1px solid var(--gris);
  box-shadow:0 -.125rem .25rem rgba(0,0,0,.08);
  padding:.625rem 1rem calc(.625rem + env(safe-area-inset-bottom));
}
.envio-in{display:flex;align-items:center;gap:1rem;max-width:1140px;margin:0 auto}
.envio-nota{margin:0;font-size:.75rem;line-height:1.3;color:var(--gris-texto)}
.envio-nota strong{color:#000}

.btn-primario{
  flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;
  height:46px;padding:.5rem 1.5rem;
  font-family:inherit;font-size:1rem;font-weight:700;
  color:#fff;background:var(--azul);border:1px solid var(--azul);border-radius:var(--radio);
  cursor:pointer;transition:background-color .15s ease-in-out,border-color .15s ease-in-out;
}
.btn-primario:hover{background:var(--azul-hover);border-color:var(--azul-hover)}
.btn-primario:focus{outline:0;box-shadow:0 0 0 .2rem var(--amarillo)}
.btn-primario:disabled{opacity:.65;cursor:progress}

.girando{display:none;width:14px;height:14px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:giro .7s linear infinite}
.enviando .girando{display:block}
@keyframes giro{to{transform:rotate(360deg)}}

/* ---------- resguardo ---------- */

.resguardo{padding:1.5rem}
.sello-ok{color:var(--verde);margin-bottom:.75rem}
.resguardo h2{font-size:1.5rem;font-weight:700;margin:0 0 .75rem;line-height:1.2}
.resguardo p{margin:0 0 1rem;font-size:1rem}
.reg-datos{margin:0 0 1rem;border-top:1px solid var(--gris)}
.reg-datos div{display:grid;grid-template-columns:40% 1fr;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--gris);font-size:.9375rem}
.reg-datos dt{color:var(--gris-texto);font-size:.875rem}
.reg-datos dd{margin:0}
.reg-volver{margin:0}
.reg-volver a{font-weight:700}

.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- pie ---------- */

.pie{border-top:1px solid var(--gris);background:#f8f9fa;padding:1.25rem 0;margin-top:1rem}
.pie p{margin:0 0 .25rem;font-size:.8125rem;color:#495057}
.pie a{color:#495057;text-decoration:underline}

/* ---------- escritorio ---------- */

@media (min-width:992px){
  body{padding-bottom:0}
  .marco{display:grid;grid-template-columns:260px 1fr;gap:2rem;align-items:start}
  .rail{position:sticky;top:1rem;margin-bottom:0}
  .rail ul{flex-direction:column;overflow:visible;margin-bottom:1rem}
  .rail a{border:0;border-radius:0;padding:.5rem 1rem;justify-content:space-between}
  .rail a i{opacity:.4}
  .rail-nota{display:block}
  .envio{position:static;box-shadow:none;border:1px solid var(--gris);border-radius:var(--radio);padding:.75rem 1rem;margin-bottom:1.5rem}
  .btn-primario{flex:0 0 240px;margin-left:auto}
}

@media (max-width:479px){
  .pareja{grid-template-columns:1fr}
  .logos img:first-child{width:170px;height:46px}
  .logos img:last-child{width:48px;height:46px}
  h1{font-size:1.5rem}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

@media print{
  .envio,.rail,.pie,.migas{display:none}
  body{padding-bottom:0;border-top:0}
  .tarjeta{box-shadow:none}
}
