.login-wrap,
.register-container,
.admin-registry-wrap{
  width:100%;
  max-width:1040px;
  margin:0 auto;
}

.login-wrap{
  display:flex;
  justify-content:center;
}

.login-form,
.register-card,
.admin-registry-card{
  background:#ffffff;
  border:1px solid rgba(26,54,93,.12);
  border-radius:1.2rem;
  box-shadow:0 18px 32px rgba(15,23,42,.08);
  overflow:hidden;
}

.login-form{
  width:100%;
  max-width:560px;
}

.register-card{
  max-width:940px;
  margin:0 auto;
}

.admin-registry-card{
  padding:1.4rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.icts-auth-header,
.register-header,
.admin-registry-hero{
  background:linear-gradient(120deg,#7aa7e6 0%,#173659 48%,#0b0f14 100%);
  color:#ffffff;
}

.icts-auth-header{
  display:flex;
  justify-content:space-between;
  align-items:stretch;
  gap:1rem;
  padding:1.2rem 1.3rem;
}

.register-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  padding:1.35rem 1.5rem;
  border-bottom:1px solid rgba(255,255,255,.16);
}

.admin-registry-hero{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1rem;
  border-radius:1rem;
  box-shadow:0 14px 28px rgba(15,23,42,.18);
}

.icts-auth-brand,
.register-header-main{
  display:flex;
  align-items:center;
  gap:1rem;
  flex:1;
}

.icts-auth-logo-wrap,
.register-icon,
.admin-registry-logo-wrap{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#ffffff;
  box-shadow:0 10px 18px rgba(0,0,0,.18);
}

.icts-auth-logo-wrap,
.admin-registry-logo-wrap{
  width:72px;
  height:72px;
  border-radius:1rem;
}

.register-icon{
  width:4rem;
  height:4rem;
  border-radius:1rem;
  font-size:1.45rem;
  color:#173659;
}

.icts-auth-logo,
.admin-registry-logo{
  width:56px;
  height:56px;
  object-fit:contain;
}

.register-header-copy,
.admin-registry-copy{
  flex:1;
  min-width:220px;
}

.icts-auth-overline,
.register-overline,
.admin-registry-overline{
  margin:0 0 .2rem;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.82);
}

.icts-auth-title,
.register-title,
.admin-registry-card h1{
  margin:0;
  font-size:1.7rem;
  font-weight:900;
  letter-spacing:.03em;
}

.icts-auth-subtitle,
.register-subtitle,
.admin-registry-copy p{
  margin:.3rem 0 0;
  color:rgba(255,255,255,.88);
  line-height:1.5;
}

.register-header-meta{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
}

.register-meta-pill,
.icts-auth-clock{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.4rem;
  padding:.55rem .9rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.12);
  color:#ffffff;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.03em;
}

.icts-auth-clock{
  max-width:250px;
  text-align:center;
  line-height:1.35;
}

.login-form-body,
.register-body{
  padding:1.45rem;
}

.form-group{
  margin-bottom:1.05rem;
}

.form-section{
  margin-bottom:1.5rem;
  padding:1.1rem;
  background:rgba(248,250,252,.82);
  border:1px solid rgba(148,163,184,.18);
  border-radius:1rem;
}

.form-section--ciemat{
  display:none;
  background:#f0f9f4;
  border:2px solid #a7d9c2;
}

.form-section-title{
  display:flex;
  align-items:center;
  gap:.5rem;
  margin:0 0 1rem;
  padding-bottom:.5rem;
  border-bottom:1px solid rgba(148,163,184,.26);
  color:var(--primary);
  font-size:1rem;
  font-weight:800;
}

.form-section-title--ciemat{
  color:#155724;
  border-bottom-color:#a7d9c2;
}

.form-label{
  display:block;
  margin-bottom:.38rem;
  color:var(--text-primary);
  font-size:.92rem;
  font-weight:700;
}

.form-input,
.form-control,
.admin-registry-form textarea{
  width:100%;
  border:1px solid rgba(148,163,184,.4);
  border-radius:.8rem;
  padding:.78rem .95rem;
  font-size:.95rem;
  color:var(--text-primary);
  background:#ffffff;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.form-input:focus,
.form-control:focus,
.admin-registry-form textarea:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(26,54,93,.1);
  background:#ffffff;
}

.password-field-wrap{
  position:relative;
}

.password-field-wrap .password-field-input{
  padding-right:3.75rem;
}

.password-peek-btn{
  position:absolute;
  top:50%;
  right:.65rem;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.5rem;
  height:2.5rem;
  border:0;
  border-radius:.75rem;
  background:transparent;
  color:#4b6382;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}

.password-peek-btn:hover,
.password-peek-btn:focus-visible{
  background:rgba(23,54,89,.08);
  color:#173659;
  outline:none;
}

.password-peek-btn:active{
  background:rgba(23,54,89,.14);
}

.siglas-preview{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:3rem;
  padding:.7rem .95rem;
  border:1px dashed rgba(26,54,93,.26);
  border-radius:.8rem;
  background:#eff6ff;
  color:var(--primary);
  font-size:1rem;
  font-weight:800;
  letter-spacing:.14em;
}

.form-check{
  margin:0 0 .85rem;
  padding:1rem 1.1rem;
  border:1px solid rgba(148,163,184,.2);
  border-radius:.95rem;
  background:#ffffff;
}

.form-check-input{
  margin-right:.7rem;
  transform:scale(1.12);
  accent-color:var(--primary);
}

.form-check-label{
  color:var(--text-primary);
  font-weight:600;
  cursor:pointer;
}

.privacy-policy-box{
  max-height:280px;
  overflow-y:auto;
  padding:1rem 1.1rem;
  border:1px solid rgba(148,163,184,.24);
  border-radius:.95rem;
  background:#f8fafc;
  font-size:.9rem;
  line-height:1.5;
  color:var(--text-primary);
}

.privacy-policy-box h6{
  margin:0 0 .8rem;
  color:var(--primary);
  font-size:.95rem;
  font-weight:800;
}

.privacy-policy-box p{
  margin:0 0 .8rem;
}

.privacy-policy-box ul{
  margin:0 0 .8rem 1.15rem;
  padding:0;
}

.privacy-policy-box li{
  margin-bottom:.35rem;
}

.privacy-policy-box a,
.link,
.small,
.back-link{
  color:var(--primary);
  text-decoration:none;
}

.privacy-policy-box a:hover,
.link:hover,
.small:hover,
.back-link:hover{
  color:var(--primary-dark);
  text-decoration:underline;
}

.privacy-policy-status{
  display:flex;
  align-items:center;
  gap:.45rem;
  margin-top:.75rem;
  color:#92400e;
  font-size:.86rem;
  font-weight:600;
}

.privacy-policy-status--ready{
  color:#166534;
}

.btn-main,
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:2.85rem;
  padding:.72rem 1.15rem;
  border-radius:.85rem;
  border:1px solid transparent;
  font-size:.94rem;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.btn-main,
.btn-primary{
  background:var(--primary);
  color:#ffffff;
  box-shadow:0 12px 24px rgba(15,42,74,.18);
}

.btn-main{
  width:100%;
}

.btn-main:hover,
.btn-primary:hover{
  background:var(--primary-dark);
  color:#ffffff;
  transform:translateY(-1px);
}

.btn-outline-secondary{
  border-color:rgba(26,54,93,.18);
  background:#ffffff;
  color:var(--text-primary);
}

.btn-outline-secondary:hover{
  border-color:var(--primary);
  color:var(--primary);
  background:#eff6ff;
}

.btn-outline-danger{
  border-color:rgba(185,28,28,.18);
  background:#ffffff;
  color:#b91c1c;
}

.btn-outline-danger:hover{
  background:#fef2f2;
  border-color:#dc2626;
  color:#991b1b;
}

.alert-danger{
  background:#fef2f2;
  border:1px solid rgba(239,68,68,.2);
  border-left-color:#ef4444;
  color:#991b1b;
}

.text-danger{
  margin-top:.3rem;
  color:#b91c1c;
  font-size:.85rem;
  font-weight:600;
}

.text-muted{
  color:var(--text-secondary);
  font-size:.85rem;
}

.text-center{
  text-align:center;
}

.d-flex{
  display:flex;
}

.gap-3{
  gap:1rem;
}

.mt-4{
  margin-top:1.25rem;
}

.mt-2{
  margin-top:.5rem;
}

.flex-wrap{
  flex-wrap:wrap;
}

.row.g-3{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:1rem;
}

.row.g-3 > .col-md-6{
  grid-column:span 6;
}

.row.g-3 > .col-12{
  grid-column:1 / -1;
}

.back-link{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-weight:700;
}

.admin-registry-copy{
  max-width:72ch;
}

.admin-registry-card h1{
  color:#ffffff;
}

.admin-registry-copy p{
  max-width:72ch;
}

.admin-registry-form{
  width:100%;
}

.admin-registry-form label{
  display:block;
  margin-bottom:.45rem;
  color:var(--text-primary);
  font-weight:700;
}

.admin-registry-form textarea{
  min-height:24rem;
  resize:vertical;
  line-height:1.55;
  background:#f8fafc;
}

.admin-registry-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:.9rem;
}

.admin-registry-meta{
  color:var(--text-secondary);
  font-size:.86rem;
  font-weight:600;
}

.icts-auth-links{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:1rem;
}

@media (max-width: 900px){
  .register-header,
  .admin-registry-hero,
  .icts-auth-header{
    flex-direction:column;
  }

  .register-header-meta{
    width:100%;
    justify-content:flex-start;
  }

  .icts-auth-clock{
    max-width:none;
    width:100%;
  }
}

@media (max-width: 768px){
  .login-form-body,
  .register-body,
  .admin-registry-card{
    padding:1.05rem;
  }

  .register-header{
    padding:1.1rem;
  }

  .row.g-3 > .col-md-6,
  .row.g-3 > .col-12{
    grid-column:1 / -1;
  }

  .register-title,
  .admin-registry-card h1,
  .icts-auth-title{
    font-size:1.4rem;
  }

  .admin-registry-actions,
  .d-flex.gap-3.mt-4.flex-wrap{
    flex-direction:column;
  }

  .admin-registry-actions .btn,
  .d-flex.gap-3.mt-4.flex-wrap .btn{
    width:100%;
  }
}
