/* ==========================================================================
   NITT — Ajustes específicos do WordPress
   Complementa css/style.css (não substitui). Modal de vídeo, Contact Form 7,
   logo personalizada e pequenos ajustes de integração.
   ========================================================================== */

/* Garante que o atributo [hidden] realmente oculte, mesmo em componentes
   que definem display (ex.: .form-field, .solic-step). */
[hidden] {
  display: none !important;
}

/* ==========================================================================
   Menu do topo — submenu (dropdown)
   ========================================================================== */
.main-nav__item {
  position: relative;
}
.main-nav__label {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.main-nav__caret {
  font-size: 1.25rem;
  line-height: 1;
}
.main-nav__submenu {
  list-style: none;
  margin: 0;
  min-width: 240px;
}
.main-nav__subitem {
  list-style: none;
}
.main-nav__sublink {
  display: block;
  padding: var(--space-3);
  border-radius: var(--radius-8);
  color: var(--color-neutral-900);
  font-size: var(--font-size-body-base);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  white-space: nowrap;
}
.main-nav__sublink:hover,
.main-nav__sublink.is-active {
  background: var(--color-primary-50);
  color: var(--color-primary-600);
}

@media (min-width: 1024px) {
  .main-nav__submenu {
    position: absolute;
    top: 100%;
    left: 0;
    padding: var(--space-3) var(--space-2) var(--space-2);
    background: var(--color-neutral-0);
    border-radius: var(--radius-12);
    box-shadow: var(--shadow-card);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity var(--transition-base), transform var(--transition-base), visibility var(--transition-base);
    z-index: 300;
  }
  .main-nav__item.has-submenu:hover > .main-nav__submenu,
  .main-nav__item.has-submenu:focus-within > .main-nav__submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

@media (max-width: 1023.98px) {
  .main-nav__item {
    width: 100%;
  }
  .main-nav__submenu {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding-left: var(--space-5);
    margin-top: var(--space-4);
  }
}

/* ==========================================================================
   Conteúdo institucional em bloco único — títulos de seção
   ========================================================================== */
.content-card__text h2 {
  font-size: var(--font-size-h2);
  line-height: var(--line-height-h2);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
}
.content-card__text h2:not(:first-child) {
  margin-top: var(--space-6);
}

/* ---- Logo personalizada (Personalizar > Identidade do site) ---- */
.custom-logo-link {
  display: inline-flex;
  align-items: center;
}
.custom-logo {
  max-height: 65px;
  width: auto;
  height: auto;
}

/* ---- Barra de administração não deve cobrir o cabeçalho fixo ---- */
.admin-bar .site-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  .admin-bar .site-header {
    top: 46px;
  }
}

/* ==========================================================================
   Modal de vídeo da NITT Academy
   ========================================================================== */
.nitt-video-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  background: var(--color-overlay-black-50);
}
.nitt-video-modal.is-open {
  display: flex;
}
.nitt-video-modal__dialog {
  position: relative;
  width: min(960px, 100%);
  background: var(--color-neutral-0);
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}
.nitt-video-modal__close {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  background: var(--color-neutral-0);
  color: var(--color-neutral-900);
  box-shadow: var(--shadow-card);
  cursor: pointer;
}
.nitt-video-modal__close:hover {
  background: var(--color-primary-50);
}
.nitt-video-modal__body {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
}
.nitt-video-modal__body iframe,
.nitt-video-modal__body video,
.nitt-video-modal__body embed,
.nitt-video-modal__body object {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}
.nitt-video-modal__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--color-neutral-0);
  font-family: var(--font-family-base);
  padding: var(--space-6);
  text-align: center;
}

/* Cursor de "assistir" nos cards de vídeo */
.video-card__thumb {
  cursor: pointer;
}

/* ==========================================================================
   Contact Form 7 — herda a aparência dos campos do layout
   ========================================================================== */
.contact-form-card .wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}
.contact-form-card .wpcf7-form p {
  margin: 0;
}
.contact-form-card .wpcf7-form label {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  font-family: var(--font-family-base);
  font-size: var(--font-size-body-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-neutral-900);
}
.contact-form-card .wpcf7-form input[type="text"],
.contact-form-card .wpcf7-form input[type="tel"],
.contact-form-card .wpcf7-form input[type="email"],
.contact-form-card .wpcf7-form input[type="url"],
.contact-form-card .wpcf7-form input[type="number"],
.contact-form-card .wpcf7-form select,
.contact-form-card .wpcf7-form textarea {
  width: 100%;
  font-family: var(--font-family-base);
  font-size: var(--font-size-body-base);
  color: var(--color-neutral-900);
  background: var(--color-neutral-0);
  border: var(--border-width-1) solid var(--color-form-border);
  border-radius: var(--radius-12);
  padding: var(--space-3);
}
.contact-form-card .wpcf7-form textarea {
  min-height: 140px;
  resize: vertical;
}
.contact-form-card .wpcf7-form input:focus,
.contact-form-card .wpcf7-form select:focus,
.contact-form-card .wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--color-primary-500);
  box-shadow: 0 0 0 3px var(--color-primary-100);
}
.contact-form-card .wpcf7-form input[type="submit"] {
  align-self: flex-start;
  font-family: var(--font-family-base);
  font-size: var(--font-size-body-base);
  font-weight: var(--font-weight-bold);
  color: var(--color-neutral-0);
  background-image: var(--gradient-academy);
  border: none;
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-7);
  cursor: pointer;
  box-shadow: var(--shadow-button);
}
.contact-form-card .wpcf7-form input[type="submit"]:hover {
  opacity: 0.92;
}
/* Mensagens de resposta e validação do CF7 */
.contact-form-card .wpcf7-response-output {
  border-radius: var(--radius-12);
  font-family: var(--font-family-base);
  margin: 0 !important;
}
.contact-form-card .wpcf7-not-valid-tip {
  font-family: var(--font-family-base);
  font-size: var(--font-size-body-sm);
  color: #d33;
}

/* ==========================================================================
   Barra lateral (O NITT) — cards "Sobre PI" e "Empresas Jrs" com links
   ========================================================================== */
.sidebar-card__badge--link {
  text-decoration: none;
}
.sidebar-card__list--links a {
  color: inherit;
  text-decoration: none;
  transition: color var(--transition-base);
}
.sidebar-card__list--links a:hover,
.sidebar-card__list--links a:focus-visible {
  color: var(--color-primary-600);
  text-decoration: underline;
}

/* ==========================================================================
   Portfólio — badge de situação (Concedida / Depositada)
   ========================================================================== */
.portfolio-status {
  display: inline-flex;
  align-items: center;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-body-sm);
  font-weight: var(--font-weight-bold);
  line-height: 1.6;
  white-space: nowrap;
}
.portfolio-status--concedida {
  background: #dcfce7;
  color: #166534;
}
.portfolio-status--depositada {
  background: #fef9c3;
  color: #854d0e;
}

/* ==========================================================================
   Portfólio — cards clicáveis e modal de detalhes
   ========================================================================== */
.portfolio-item.is-clickable {
  cursor: pointer;
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.portfolio-item.is-clickable:hover {
  box-shadow: var(--shadow-card);
}
.portfolio-item.is-clickable:focus-visible {
  outline: 3px solid var(--color-primary-300);
  outline-offset: 2px;
}

.nitt-pf-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  background: var(--color-overlay-black-50);
}
.nitt-pf-modal.is-open {
  display: flex;
}
.nitt-pf-modal__dialog {
  position: relative;
  width: min(560px, 100%);
  max-height: 90vh;
  overflow-y: auto;
  background: var(--color-neutral-0);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  padding: var(--space-8) var(--space-7) var(--space-7);
  font-family: var(--font-family-base);
  text-align: center;
}
.nitt-pf-modal__close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  display: inline-flex;
  cursor: pointer;
  color: var(--color-neutral-900);
  background: none;
  border: none;
}
.nitt-pf-modal__title {
  font-size: var(--font-size-h3);
  line-height: 1.2;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
  margin: 0 auto var(--space-4);
  max-width: 26ch;
}
.nitt-pf-modal__date {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-primary-600);
  font-size: var(--font-size-body-sm);
  font-weight: var(--font-weight-bold);
}
.nitt-pf-modal__divider {
  height: 1px;
  background: var(--color-primary-100);
  margin: var(--space-5) 0;
}
.nitt-pf-modal__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.nitt-pf-modal__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-sm);
  background-image: var(--gradient-academy);
  color: var(--color-neutral-0);
  font-size: 1.5rem;
}
.nitt-pf-modal__heading {
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
  margin: 0;
}
.nitt-pf-modal__text {
  color: var(--color-neutral-700);
  font-weight: var(--font-weight-semibold);
  line-height: 1.5;
  margin: 0;
}
.nitt-pf-modal__code-row {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-neutral-900);
  font-weight: var(--font-weight-semibold);
}

/* ==========================================================================
   Cabeçalho — área de conta (avatar + dropdown)
   ========================================================================== */
.account-menu {
  position: relative;
}
.account-menu__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-family-base);
  color: var(--color-neutral-900);
}
.account-menu__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  background-image: var(--gradient-academy);
  color: var(--color-neutral-0);
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-body-base);
}
.account-menu__name {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-body-sm);
}
.account-menu__dropdown {
  position: absolute;
  top: calc(100% + var(--space-2));
  right: 0;
  min-width: 200px;
  background: var(--color-neutral-0);
  border-radius: var(--radius-12);
  box-shadow: var(--shadow-card);
  padding: var(--space-2);
  z-index: 200;
}
.account-menu__item {
  display: block;
  padding: var(--space-3);
  border-radius: var(--radius-8);
  color: var(--color-neutral-900);
  text-decoration: none;
  font-weight: var(--font-weight-semibold);
}
.account-menu__item:hover {
  background: var(--color-primary-50);
  color: var(--color-primary-600);
}

/* ==========================================================================
   Páginas de conta (login/cadastro)
   ========================================================================== */
.auth-page {
  padding-block: var(--space-12);
}
.auth {
  display: flex;
  justify-content: center;
}
.auth__card {
  width: min(460px, 100%);
  background: var(--color-neutral-0);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  padding: var(--space-7);
  font-family: var(--font-family-base);
}
.auth__tabs {
  display: flex;
  gap: var(--space-2);
  background: var(--color-primary-50);
  border-radius: var(--radius-pill);
  padding: var(--space-1);
  margin-bottom: var(--space-6);
}
.auth__tab {
  flex: 1;
  padding: var(--space-3);
  border: none;
  border-radius: var(--radius-pill);
  background: none;
  cursor: pointer;
  font-family: var(--font-family-base);
  font-weight: var(--font-weight-bold);
  color: var(--color-neutral-600);
}
.auth__tab.is-active {
  background: var(--color-neutral-0);
  color: var(--color-primary-600);
  box-shadow: var(--shadow-card);
}
.auth__form {
  display: none;
  flex-direction: column;
  gap: var(--space-4);
}
.auth__form.is-active {
  display: flex;
}
.auth__submit {
  margin-top: var(--space-2);
  width: 100%;
  text-align: center;
  justify-content: center;
}
.auth__hint {
  text-align: center;
  font-size: var(--font-size-body-sm);
  margin: 0;
}
.auth__message {
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-12);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--space-5);
}
.auth__message--ok {
  background: #dcfce7;
  color: #166534;
}
.auth__message--error {
  background: #fee2e2;
  color: #b91c1c;
}
.nitt-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ==========================================================================
   Meus registros
   ========================================================================== */
.registros-page {
  padding-block: var(--space-10) var(--space-14);
  min-height: 50vh;
}
.registros-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
  margin-bottom: var(--space-7);
}
.registros-head__title {
  font-size: var(--font-size-h1);
  line-height: 1.05;
  font-weight: var(--font-weight-black);
  color: var(--color-neutral-900);
  margin: 0;
}
@media (max-width: 640px) {
  .registros-head__title {
    font-size: 2.5rem;
  }
}
.registros-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.registro-card {
  position: relative;
  background: var(--color-neutral-0);
  border: var(--border-width-1) solid var(--color-form-border);
  border-radius: var(--radius-sm);
  padding: var(--space-6);
  box-shadow: var(--shadow-card);
}
.registro-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.registro-card__title {
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
  margin: 0;
}
.registro-card__updated {
  color: var(--color-neutral-600);
  margin: var(--space-2) 0 var(--space-5);
}
.registro-card__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.registro-card__type {
  display: inline-block;
  padding: var(--space-2) var(--space-4);
  border: var(--border-width-1) solid var(--color-primary-500);
  border-radius: var(--radius-12);
  color: var(--color-primary-600);
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-body-sm);
}
.registro-status {
  display: inline-block;
  padding: var(--space-1) var(--space-4);
  border-radius: var(--radius-pill);
  color: var(--color-neutral-0);
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-body-sm);
  white-space: nowrap;
}
.registro-status--pendente { background: #e2493a; }
.registro-status--em-analise { background: #f59e0b; }
.registro-status--concedido { background: #16a34a; }
.registro-status--indeferido { background: var(--color-neutral-600); }

.registro-card__menu { position: relative; }
.registro-card__kebab {
  display: inline-flex;
  padding: var(--space-2);
  border: none;
  background: none;
  cursor: pointer;
  color: var(--color-neutral-600);
  border-radius: var(--radius-full);
}
.registro-card__kebab:hover { background: var(--color-primary-50); }
.registro-card__dropdown {
  position: absolute;
  top: calc(100% + var(--space-1));
  right: 0;
  min-width: 180px;
  background: var(--color-neutral-0);
  border-radius: var(--radius-12);
  box-shadow: var(--shadow-card);
  padding: var(--space-2);
  z-index: 50;
}
.registro-card__dropdown form { margin: 0; }
.registro-card__action {
  display: block;
  width: 100%;
  text-align: left;
  padding: var(--space-3);
  border: none;
  background: none;
  cursor: pointer;
  border-radius: var(--radius-8);
  font-family: var(--font-family-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-neutral-900);
}
.registro-card__action:hover { background: var(--color-primary-50); }
.registro-card__action--danger { color: #b91c1c; }
.registro-card__details {
  margin-top: var(--space-5);
  padding-top: var(--space-5);
  border-top: var(--border-width-1) solid var(--color-form-border);
  color: var(--color-neutral-700);
}

.registros-empty {
  text-align: center;
  background: var(--color-neutral-0);
  border: var(--border-width-1) dashed var(--color-form-border);
  border-radius: var(--radius-sm);
  padding: var(--space-12) var(--space-6);
}
.registros-empty__icon {
  font-size: 4rem;
  color: var(--color-primary-300);
}
.registros-empty__title {
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
  margin: var(--space-4) 0 var(--space-2);
}
.registros-empty__text {
  color: var(--color-neutral-600);
  max-width: 46ch;
  margin: 0 auto var(--space-6);
}

/* ==========================================================================
   Novo registro — seleção de tipo
   ========================================================================== */
.novo-registro__form {
  background: var(--color-neutral-0);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  padding: var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  font-family: var(--font-family-base);
}
.novo-registro__label {
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
  margin: 0;
}
.novo-registro__options {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}
@media (min-width: 640px) {
  .novo-registro__options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.tipo-option { cursor: pointer; }
.tipo-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.tipo-option__card {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border: var(--border-width-3) solid var(--color-form-border);
  border-radius: var(--radius-sm);
  transition: border-color var(--transition-base), background var(--transition-base);
}
.tipo-option__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-12);
  background: var(--color-primary-50);
  color: var(--color-primary-600);
}
.tipo-option__name {
  font-weight: var(--font-weight-bold);
  color: var(--color-neutral-900);
}
.tipo-option__check {
  margin-left: auto;
  color: var(--color-primary-600);
  opacity: 0;
}
.tipo-option input:checked + .tipo-option__card {
  border-color: var(--color-primary-500);
  background: var(--color-primary-50);
}
.tipo-option input:checked + .tipo-option__card .tipo-option__check {
  opacity: 1;
}
.tipo-option input:focus-visible + .tipo-option__card {
  outline: 3px solid var(--color-primary-300);
  outline-offset: 2px;
}
.novo-registro__submit {
  align-self: flex-start;
  justify-content: center;
}

/* ==========================================================================
   Fluxo de anexos (baixar modelo, assinar e enviar) — ex.: Marca
   ========================================================================== */
.solic-instrucoes {
  background: var(--color-primary-50);
  border-radius: var(--radius-sm);
  padding: var(--space-6);
  margin-bottom: var(--space-6);
}
.solic-instrucoes__title {
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
  margin: 0 0 var(--space-3);
}
.solic-instrucoes__list {
  margin: 0 0 var(--space-5);
  padding-left: 1.2em;
  color: var(--color-neutral-700);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.solic-instrucoes__empty {
  color: var(--color-neutral-600);
  margin: 0;
}
.modelos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--space-3);
}
.modelo-btn {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--color-neutral-0);
  border: var(--border-width-1) solid var(--color-form-border);
  border-radius: var(--radius-12);
  color: var(--color-neutral-900);
  text-decoration: none;
  font-weight: var(--font-weight-semibold);
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
.modelo-btn:hover {
  border-color: var(--color-primary-500);
  box-shadow: var(--shadow-card);
}
.modelo-btn__doc {
  color: var(--color-primary-600);
}
.modelo-btn__label {
  flex: 1;
  line-height: 1.3;
}
.modelo-btn__dl {
  color: var(--color-primary-600);
}
.modelo-btn__obs {
  font-weight: var(--font-weight-regular);
  color: var(--color-neutral-600);
  font-size: var(--font-size-body-sm);
}
.solic-grupo__titulo {
  font-size: var(--font-size-body-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-neutral-900);
  margin: var(--space-5) 0 var(--space-3);
}
.solic-extras {
  margin: 0 0 var(--space-3);
  padding-left: 1.2em;
  color: var(--color-neutral-700);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.solic-nota {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin: var(--space-4) 0 0;
  padding: var(--space-3) var(--space-4);
  background: var(--color-primary-100);
  border-radius: var(--radius-12);
  color: var(--color-primary-600);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-body-sm);
}

.anexos-existentes {
  margin-bottom: var(--space-6);
}
.anexos-existentes__title {
  font-size: var(--font-size-body-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-neutral-900);
  margin: 0 0 var(--space-3);
}
.anexos-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}
.anexo-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  border: var(--border-width-1) solid var(--color-form-border);
  border-radius: var(--radius-12);
}
.anexo-item__link {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-neutral-900);
  text-decoration: none;
  font-weight: var(--font-weight-semibold);
  flex: 1;
  min-width: 0;
  word-break: break-word;
}
.anexo-item__link:hover {
  color: var(--color-primary-600);
}
.anexo-item__size {
  color: var(--color-neutral-600);
  font-size: var(--font-size-body-sm);
  white-space: nowrap;
}
.anexo-item__remove {
  margin: 0;
}
.anexo-item__remove button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: var(--color-primary-50);
  color: var(--color-neutral-700);
  border-radius: var(--radius-full);
  cursor: pointer;
}
.anexo-item__remove button:hover {
  background: #fee2e2;
  color: #b91c1c;
}

.solic-anexo-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.form-field__file {
  display: block;
  width: 100%;
  padding: var(--space-4);
  border: var(--border-width-1) dashed var(--color-primary-500);
  border-radius: var(--radius-12);
  background: var(--color-primary-50);
  cursor: pointer;
  font-family: var(--font-family-base);
  color: var(--color-neutral-700);
}
.form-field__hint-inline {
  font-weight: var(--font-weight-regular);
  color: var(--color-neutral-600);
  font-size: var(--font-size-body-sm);
}
.registro-summary__anexos {
  margin: 4px 0 0 18px;
}
.registro-summary__size {
  color: var(--color-neutral-600);
}

/* Seletor de tipo — cards "Solicitar" (Novo registro) */
.solicitar-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
}
@media (max-width: 900px) {
  .solicitar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .solicitar-grid {
    grid-template-columns: 1fr;
  }
}
.solicitar-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  background: var(--color-neutral-0);
  border: var(--border-width-1) solid var(--color-form-border);
  border-radius: var(--radius-sm);
  padding: var(--space-7) var(--space-5);
  text-align: center;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
.solicitar-card:hover {
  border-color: var(--color-primary-300);
  box-shadow: var(--shadow-card);
}
.solicitar-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: var(--radius-sm);
  background-image: var(--gradient-academy);
  color: var(--color-neutral-0);
  font-size: 2rem;
}
.solicitar-card__title {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: 1.2;
  font-weight: var(--font-weight-extrabold);
}
.solicitar-card__prefix {
  color: var(--color-neutral-900);
}
.solicitar-card__name {
  color: var(--color-primary-600);
}
.solicitar-card__btn {
  margin-top: auto;
  width: 100%;
  justify-content: center;
}

/* ==========================================================================
   Formulário de solicitação (multi-etapa)
   ========================================================================== */
.solic-page {
  padding-block: var(--space-10) var(--space-14);
}
.solic-form {
  max-width: 980px;
  margin-inline: auto;
  background: var(--color-neutral-0);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  padding: var(--space-8) var(--space-8) var(--space-7);
  font-family: var(--font-family-base);
}
.solic-form__header {
  text-align: center;
  margin-bottom: var(--space-7);
}
.solic-form__title {
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-black);
  color: var(--color-neutral-900);
  margin: 0 0 var(--space-2);
}
.solic-form__subtitle {
  color: var(--color-neutral-600);
  margin: 0;
}
.solic-form__fields {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5);
}
.form-field--w100 {
  flex: 1 1 100%;
}
.form-field--w50 {
  flex: 1 1 calc(50% - var(--space-5));
  min-width: 240px;
}
.form-radios {
  display: flex;
  gap: var(--space-6);
  flex-wrap: wrap;
  padding-top: var(--space-2);
}
.form-radio {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-weight: var(--font-weight-semibold);
  color: var(--color-neutral-900);
  cursor: pointer;
}
.form-radio input {
  width: 18px;
  height: 18px;
  accent-color: var(--color-primary-600);
}
.solic-step__title {
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-neutral-900);
  margin: 0 0 var(--space-2);
}
.solic-step__hint {
  color: var(--color-neutral-600);
  margin: 0 0 var(--space-5);
}
.solic-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-7);
}
.solic-form__actions .btn {
  justify-content: center;
}

/* Autores */
.autores {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.autor-row {
  display: grid;
  grid-template-columns: 2fr 1.4fr 1fr auto;
  gap: var(--space-3);
  align-items: center;
}
@media (max-width: 640px) {
  .autor-row {
    grid-template-columns: 1fr 1fr;
  }
}
.autor-row__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: none;
  background: var(--color-primary-50);
  color: var(--color-neutral-700);
  border-radius: var(--radius-12);
  cursor: pointer;
}
.autor-row__remove:hover {
  background: #fee2e2;
  color: #b91c1c;
}
.autores__add {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-4);
  padding: var(--space-3) var(--space-5);
  border: var(--border-width-1) dashed var(--color-primary-500);
  border-radius: var(--radius-12);
  background: none;
  color: var(--color-primary-600);
  font-weight: var(--font-weight-bold);
  font-family: var(--font-family-base);
  cursor: pointer;
}
.autores__add:hover {
  background: var(--color-primary-50);
}

/* Resumo dos dados no card de "Meus registros" */
.registro-summary dt {
  font-weight: var(--font-weight-bold);
  color: var(--color-neutral-900);
  margin-top: var(--space-3);
}
.registro-summary dd {
  margin: 2px 0 0;
  color: var(--color-neutral-700);
}
.registro-summary__authors {
  margin: 4px 0 0 18px;
}
