/* Dictamina button system — one blue/silver family across the platform. */
:root {
  --button-blue: #315f87;
  --button-blue-hover: #244d76;
  --button-blue-pressed: #183752;
  --button-silver: #e8eff5;
  --button-silver-hover: #dce7f0;
  --button-ink: #244d76;
  --button-border: #9fb4c7;
  --button-radius: 9px;
  --button-height: 44px;
}

button:not(.password-toggle),
a.button-link,
a.admin-nav-link {
  box-sizing: border-box;
  min-height: var(--button-height);
  padding: 10px 16px;
  border: 1px solid var(--button-blue) !important;
  border-radius: var(--button-radius) !important;
  background: linear-gradient(180deg, #426f97 0%, var(--button-blue) 100%) !important;
  color: #f7fafc !important;
  font: 600 13px/1.2 "DM Sans", system-ui, sans-serif !important;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
  touch-action: manipulation;
}

a.button-link,
a.admin-nav-link:not(.oculto) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

button:not(.password-toggle):hover:not(:disabled),
a.button-link:hover,
a.admin-nav-link:hover {
  border-color: var(--button-blue-hover) !important;
  background: linear-gradient(180deg, #315f87 0%, var(--button-blue-hover) 100%) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(36, 77, 118, .15);
}

button:not(.password-toggle):active:not(:disabled),
a.button-link:active,
a.admin-nav-link:active {
  background: var(--button-blue-pressed) !important;
  transform: translateY(0);
  box-shadow: none;
}

button:not(.password-toggle):focus-visible,
a.button-link:focus-visible,
a.admin-nav-link:focus-visible {
  outline: 3px solid rgba(72, 119, 158, .36) !important;
  outline-offset: 3px;
}

button:not(.password-toggle):disabled {
  opacity: .56;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* Compact input affordance: preserve its position and never inherit button movement. */
.password-toggle {
  min-height: 30px;
  padding: 5px 7px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--button-ink);
  font: 600 11px/1.15 "DM Sans", system-ui, sans-serif;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

button.password-toggle:hover:not(:disabled) {
  border-color: #d1deE8;
  background: #e8eff5;
  transform: translateY(-50%);
}

.password-toggle:focus-visible {
  outline: 3px solid rgba(72, 119, 158, .36);
  outline-offset: 2px;
}

input[type="file"] {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  height: var(--button-height);
  padding: 0;
  min-height: var(--button-height);
  border-radius: var(--button-radius);
  font: 13px "DM Sans", system-ui, sans-serif;
  overflow: hidden;
}

input[type="file"]::file-selector-button {
  box-sizing: border-box;
  height: calc(var(--button-height) - 2px);
  min-height: calc(var(--button-height) - 2px);
  margin: 0 10px 0 0;
  padding: 7px 12px;
  border: 1px solid var(--button-blue);
  border-radius: var(--button-radius);
  background: linear-gradient(180deg, #426f97 0%, var(--button-blue) 100%);
  color: #f7fafc;
  font: 600 13px/1.2 "DM Sans", system-ui, sans-serif;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease;
}

.ficha-revista input[type="file"] {
  padding: 0;
}

input[type="file"]::-webkit-file-upload-button {
  box-sizing: border-box;
  height: calc(var(--button-height) - 2px);
  min-height: calc(var(--button-height) - 2px);
  margin: 0 10px 0 0;
  padding: 7px 12px;
  border: 1px solid var(--button-blue);
  border-radius: var(--button-radius);
  background: linear-gradient(180deg, #426f97 0%, var(--button-blue) 100%);
  color: #f7fafc;
  font: 600 13px/1.2 "DM Sans", system-ui, sans-serif;
  cursor: pointer;
}

input[type="file"]::file-selector-button:hover {
  border-color: var(--button-blue-hover);
  background: var(--button-blue-hover);
}

input[type="file"]::-webkit-file-upload-button:hover {
  border-color: var(--button-blue-hover);
  background: var(--button-blue-hover);
}

input[type="file"]:disabled {
  opacity: .58;
  cursor: not-allowed;
}

input[type="file"]:disabled::file-selector-button,
input[type="file"]:disabled::-webkit-file-upload-button {
  opacity: .7;
  cursor: not-allowed;
}

input[type="file"]:focus-visible {
  outline: 3px solid rgba(72, 119, 158, .32);
  outline-offset: 2px;
}

/* Keep the reviewer upload controls on one shared desktop baseline. The
   checkbox occupies the same label slot as the other field labels. */
#workspace > .panel > .campos {
  align-items: start;
}

#workspace > .panel > .campos > div > label:not(.check) {
  line-height: 19px;
}

#workspace > .panel > .campos > div > input[type="text"],
#workspace > .panel > .campos > div > select,
#workspace > .panel > .campos > div > input[type="file"],
#workspace > .panel > .campos > div > button {
  box-sizing: border-box;
  width: 100%;
  height: var(--button-height);
  min-height: var(--button-height);
}

#workspace > .panel > .campos > div:last-child > .check {
  box-sizing: border-box;
  min-height: 19px;
  margin-bottom: 6px;
  align-items: center;
  line-height: 19px;
}

#workspace > .panel > .campos > div:last-child > #procesar {
  margin-top: 0 !important;
}

@media (max-width: 680px) {
  button:not(.password-toggle),
  a.button-link,
  a.admin-nav-link {
    min-height: 44px;
  }

  input[type="file"] {
    height: auto;
    min-height: 48px;
    font-size: 16px;
  }

  #workspace > .panel > .campos > div > input[type="file"] {
    height: 48px;
    min-height: 48px;
  }

  input[type="file"]::file-selector-button,
  input[type="file"]::-webkit-file-upload-button {
    min-height: 46px;
    height: 46px;
  }
}

@media (prefers-reduced-motion: reduce) {
  button:not(.password-toggle),
  a.button-link,
  a.admin-nav-link,
  .password-toggle,
  input[type="file"]::file-selector-button {
    transition: none;
  }
}
