﻿/* Global mobile overrides for portal pages */
@media (max-width: 900px) {
  body {
    overflow-x: clip;
  }

  body {
    font-size: 15px;
  }

  /* Remove linhas laterais no mobile */
  .page-wrapper {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
  }

  body,
  .portal-home,
  .site-header,
  .cab,
  .biblioteca-nav {
    width: 100% !important;
    max-width: 100% !important;
  }

  .content-wrapper,
  .communication-page,
  .leadership-content {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box;
  }

  .content-wrapper {
    width: calc(100% - 20px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Header mobile no formato antigo */
  .portal-home .site-header .header-row {
    padding: 10px 12px !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    overflow: visible !important;
    padding-right: calc(18px + env(safe-area-inset-right)) !important;
  }

  .portal-home .site-header .brand-area {
    width: auto !important;
    flex: 1 1 auto !important;
    justify-content: flex-start !important;
  }

  .portal-home .site-header .brand-area img {
    max-width: none !important;
    height: clamp(48px, 7vw, 64px) !important;
    width: auto !important;
  }
  
  .portal-home .site-header.has-faq-back .faq-back-button {
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    order: -1 !important;
  }

  .portal-home .site-header.has-faq-back .faq-back-text {
    display: none !important;
  }

  .portal-home .header-actions {
    width: auto !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    overflow: visible !important;
    padding-right: 8px !important;
    margin-right: 4px !important;
  }


  .portal-home .site-header .dropdown.user-menu {
    overflow: visible !important;
    flex: 0 0 auto !important;
  }

  .site-header .dropdown-menu {
    right: 0 !important;
    left: auto !important;
    width: min(92vw, 320px);
  }

  .site-header .dropdown.user-menu,
  .site-header .leadership-chip {
    max-width: 100%;
  }

  .portal-home .user-menu .user-badge,
  .portal-home .leadership-chip {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    max-width: 46px !important;
    max-height: 46px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    overflow: visible !important;
    flex-shrink: 0 !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0 !important;
  }

  .portal-home .user-menu .user-avatar {
    font-size: 22px !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .portal-home .leadership-chip .chip-text,
  .portal-home .user-badge__name,
  .portal-home .user-badge__caret {
    display: none !important;
  }

  .portal-home .leadership-chip .chip-icon {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    object-fit: contain !important;
    background: transparent !important;
  }

  .hero-section,
  .communication-hero-banner,
  .benefits-hero,
  .talent-hero,
  .calendar-hero {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
    padding: 20px 10px 22px !important;
  }

  .hero-section .hero-copy,
  .communication-hero-content,
  .benefits-hero__copy,
  .talent-hero__text,
  .calendar-hero__copy {
    order: 1;
    width: 100%;
    margin: 0 !important;
    align-self: stretch !important;
    text-align: center !important;
    align-items: center !important;
  }

  .hero-section .hero-media,
  .communication-hero-media,
  .benefits-hero__media,
  .talent-hero__card,
  .calendar-hero__viewer {
    order: 2;
    /*width: 100%; */
    margin: 0 !important;
    align-self: stretch !important;
    display: flex !important;
    justify-content: center !important;
  }

  .portal-home.portal-detail .hero-section [class*="media"] img,
  .portal-home.portal-detail .hero-section img,
  .portal-home.portal-detail .hero-section picture,
  .portal-home.portal-detail .hero-section figure {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
  }

  .hero-section.hero-faq .hero-media,
  .hero-section.hero-faq .hero-media img {
    justify-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .hero-section.hero-faq .hero-media {
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center !important;
  }

  .hero-section.hero-faq .hero-media img {
    display: block !important;
    width: min(100%, 520px) !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
  }

  .partnerships-hero .hero-media {
    display: flex !important;
    justify-content: center !important;
  }

  .partnerships-hero .hero-media img {
    margin-left: auto !important;
    margin-right: auto !important;
    width: min(100%, 520px) !important;
  }

  .hero-section h1,
  .communication-hero-content h1,
  .benefits-hero h1,
  .talent-hero h1,
  .calendar-hero h1 {
    text-align: center !important;
    font-size: clamp(1.6rem, 6vw, 2rem) !important;
    line-height: 1.2;
    margin-bottom: 6px;
  }

  .hero-section p,
  .communication-hero-content p,
  .benefits-hero p,
  .talent-hero p,
  .calendar-hero p {
    text-align: center !important;
    font-size: 0.95rem;
    line-height: 1.5;
  }

  .hero-actions,
  .benefits-hero__actions,
  .calendar-hero__actions {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .hero-action,
  .hero-button,
  .login-button {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .hero-media img,
  .communication-hero-media img,
  .benefits-hero__media img,
  .calendar-hero__viewer iframe {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    max-height: none !important;
    border-radius: 16px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .content-wrapper section,
  .content-wrapper article,
  .content-wrapper .text-content,
  .panel-card,
  .faq-list details {
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box !important;
  }

  .portal-home.portal-detail .content-wrapper > section,
  .portal-home.portal-detail .content-wrapper > article,
  .portal-home.portal-detail .content-wrapper section > article {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .leadership-panels,
  .resource-grid,
  .communication-layout,
  .notice-form .form-grid,
  .cards-grid,
  .catalog-grid,
  .faq-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* FAQ RH: carrossel mobile controlado pelo JS */
  .benefits-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  #benefits-grid .benefit-card {
    display: flex;
  }

  .benefits-nav {
    display: none !important;
  }

  .benefits-slider-nav {
    display: inline-flex !important;
  }

  /* FAQ RH: perguntas mais largas */
  .faq-rh-bg,
  #faq-rh,
  .faq-list {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #faq-rh .faq-list details,
  #faq-rh .faq-list summary {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #faq-rh .faq-list details {
    width: 100% !important;
    max-width: 100% !important;
    margin: 10px auto !important;
  }

  .portal-home .faq-list {
    padding-left: 6px !important;
    padding-right: 6px !important;
    box-sizing: border-box !important;
  }

  .portal-home details {
    margin: 10px auto !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
  }

  /* Pesquisa no FAQ */
  .faq-search-bar {
    padding: 12px !important;
  }

  .faq-search-form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: end !important;
    gap: 8px !important;
  }

  .faq-search-field {
    min-width: 0 !important;
    margin: 0 !important;
    gap: 6px !important;
  }

  .faq-search-form input[type="search"] {
    width: 100% !important;
    margin: 0 !important;
  }

  .faq-search-button {
    width: auto !important;
    min-width: 132px !important;
    margin: 0 !important;
    align-self: end !important;
  }

  /* Botao de sugestoes */
  .faq-floating-button {
    width: 72px !important;
    height: 72px !important;
    right: 12px !important;
    bottom: 18px !important;
    background: transparent !important;
  }

  .faq-floating-button img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 1 !important;
    visibility: visible !important;
    object-fit: cover !important;
    border-radius: 18px !important;
  }

  /* Apps: evita corte do text-content */
  .portal-home .text-content,
  .portal-home .intro-card.text-content,
  .portal-home.portal-detail .content-wrapper,
  body.portal-home.portal-detail .hero-section.hero-section--app + main.content-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Biblioteca - navegacao e conteudo */
  .cab {
    width: 100% !important;
    min-height: 62px !important;
    height: auto !important;
  }

  .biblioteca-nav {
    padding: 8px 10px !important;
  }

  .cab-logo-link #logo-madesa-cab {
    width: clamp(105px, 36vw, 150px) !important;
    height: auto !important;
  }

  #menu-list {
    width: min(86vw, 320px) !important;
    max-width: 86vw !important;
    overflow-x: hidden !important;
  }

  #menu-list a,
  .side-menu > li > a,
  ul.side-menu > li > a {
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    line-height: 1.35 !important;
    padding: 12px 14px !important;
  }

  .submenu li a {
    padding-left: 14px !important;
    font-size: 0.92rem !important;
  }

  .biblioteca-container {
    margin: 14px auto !important;
    padding: 14px 12px !important;
    border-radius: 12px !important;
  }

  .biblioteca-title {
    font-size: clamp(1.3rem, 5vw, 1.8rem) !important;
    margin-bottom: 12px !important;
  }

  .livro-detalhe-flex {
    flex-direction: column !important;
    gap: 12px !important;
  }

  .livro-detalhe-img,
  .livro-detalhe-desc {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .livro-form-img,
  .livro-sem-capa {
    width: min(62vw, 220px) !important;
    height: auto !important;
    aspect-ratio: 2 / 3;
    margin: 0 auto;
  }

  .retirar-livro-btn {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 12px 10px !important;
    border-radius: 12px !important;
  }

  /* Tabelas e DataTables */
  table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    white-space: nowrap;
  }

  .dataTables_wrapper,
  .dataTables_scroll,
  .tabela-larga,
  .table-responsive {
    width: 100% !important;
    overflow-x: auto !important;
  }

  .dataTables_wrapper .dataTables_filter,
  .dataTables_wrapper .dataTables_length {
    width: 100%;
    text-align: left !important;
    margin-bottom: 8px;
  }

  .dataTables_wrapper .dataTables_filter input,
  .dataTables_wrapper .dataTables_length select {
    width: 100%;
    max-width: 100%;
  }

  .dataTables_wrapper .dataTables_paginate {
    white-space: normal !important;
  }

  .dataTables_wrapper .dataTables_paginate .paginate_button {
    padding: 0.3em 0.5em !important;
    margin: 2px !important;
  }

  input,
  select,
  textarea,
  button {
    font-size: 16px !important;
  }

  .calendar-sidebar {
    display: none !important;
  }
}

@media (max-width: 640px) {
  .hero-kicker {
    font-size: 0.72rem !important;
    letter-spacing: 0.08em !important;
  }

  .panel-card,
  .notice-item,
  .training-card,
  .book-card {
    border-radius: 12px !important;
    padding: 12px !important;
  }

  .site-header .user-badge__name {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .cab-right .user-badge__name {
    max-width: 120px;
  }

  #barras {
    padding: 0 10px !important;
    font-size: 1.2rem !important;
  }

  .hero-section,
  .communication-hero-banner,
  .benefits-hero,
  .talent-hero,
  .calendar-hero {
    border-radius: 0 0 14px 14px;
  }

  .content-wrapper section,
  .content-wrapper article,
  .content-wrapper .text-content,
  .panel-card,
  .faq-list details {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .faq-search-form {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .faq-search-button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .portal-home .header-actions {
    gap: 6px !important;
    padding-right: 8px !important;
    margin-right: 4px !important;
  }

  .portal-home .site-header .header-row {
    padding-left: 8px !important;
    padding-right: calc(18px + env(safe-area-inset-right)) !important;
  }

  .portal-home .user-menu .user-badge,
  .portal-home .leadership-chip {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
  }

  #benefits-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

/* Home page — photo-only cards on mobile */
@media (max-width: 640px) {
  .portal-home.no-hero .app-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }

  .portal-home .app-card {
    padding: 5px;
    gap: 0;
    border-top-width: 3px;
    border-radius: 10px;
  }

  /* Hide description text */
  .portal-home .app-card > p {
    display: none;
  }

  /* Make the link cover the entire card as an invisible overlay */
  .portal-home .app-link {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    height: auto !important;
    min-height: 0 !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 0 !important;
    color: transparent !important;
    background: transparent !important;
    border: none !important;
    border-radius: 10px !important;
    line-height: 0 !important;
  }

  .portal-home .app-link::after {
    display: none !important;
  }

  /* Image fills card square */
  .portal-home .app-card .app-card-media {
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: contain !important;
    border-radius: 7px !important;
    margin: 0 !important;
    display: block !important;
  }
}


/* ================================================================
   BIBLIOTECA NETFLIX — Mobile overrides (375px–768px)
   Loaded LAST to guarantee precedence over all other rules.
   ================================================================ */
@media (max-width: 768px) {

  /* --- Body: allow inner horizontal scrolling (clip blocks it) --- */
  body:has(.nf-page) {
    overflow-x: hidden !important;
  }

  /* --- Tab buttons: fit inside screen, never overflow --- */
  .nf-page .nf-tabs {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    gap: 0 !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    display: flex !important;
  }
  .nf-page .nf-tab-btn {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    border-radius: 0 !important;
    font-size: 0.72rem !important;
    padding: 10px 6px !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.3 !important;
    overflow: hidden !important;
  }

  /* --- Shelves: swipeable horizontal scroll --- */
  .nf-page .nf-shelf {
    max-width: 100% !important;
    overflow: visible !important;
    margin-bottom: 32px !important;
  }
  .nf-page .nf-shelf-wrap {
    max-width: 100% !important;
    overflow: visible !important;
  }
  .nf-page .nf-shelf-track {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    scroll-snap-type: x mandatory !important;
    gap: 10px !important;
    padding: 4px !important;
  }
  .nf-page .nf-shelf-track::-webkit-scrollbar {
    display: none !important;
  }
  .nf-page .nf-shelf-track .nf-book-card {
    flex: 0 0 calc((100vw - 60px) / 3) !important;
    min-width: calc((100vw - 60px) / 3) !important;
    max-width: calc((100vw - 60px) / 3) !important;
    scroll-snap-align: start !important;
  }
  .nf-page .nf-shelf-arrow {
    display: none !important;
  }

  /* --- Catalog grid: exactly 2 books per row --- */
  .nf-page .nf-catalog-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px 10px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .nf-page .nf-catalog-grid .nf-book-card {
    min-width: 0 !important;
    max-width: 100% !important;
    width: auto !important;
  }

  /* --- Catalog filters: stack vertically --- */
  .nf-page .nf-catalog-header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }
  .nf-page .nf-catalog-header > div {
    flex-direction: column !important;
    width: 100% !important;
    gap: 8px !important;
  }
  .nf-page .nf-catalog-header .nf-filter-select,
  .nf-page .nf-catalog-header .nf-search-filter {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    font-size: 0.85rem !important;
  }

  /* --- Container: tight padding --- */
  .nf-page .nf-container {
    padding: 16px 10px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* --- Hero: compact --- */
  .nf-page .nf-hero {
    padding: 24px 16px !important;
  }
  .nf-page .nf-hero-title {
    font-size: 1.3rem !important;
  }
  .nf-page .nf-hero-subtitle {
    font-size: 0.85rem !important;
  }

  /* --- Book detail: Voltar button at top-left corner --- */
  .nf-page .nf-btn-voltar-catalogo {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 10 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    background: rgba(255,255,255,0.12) !important;
    border: 1px solid rgba(255,255,255,0.3) !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 7px 12px !important;
    cursor: pointer !important;
    font-size: 0 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    backdrop-filter: blur(4px) !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
  }
  .nf-page .nf-btn-voltar-catalogo::after {
    content: 'Voltar' !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    color: #fff !important;
  }
  .nf-page .nf-btn-voltar-catalogo .material-icons {
    font-size: 16px !important;
    color: #fff !important;
  }
}
