/* =====================================================
   WORKS2DATA - RESPONSIVO CONSERVADOR
   Mantem o desktop fiel ao layout original e so adapta
   quando a tela realmente aperta.
   ===================================================== */

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

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

img,
svg,
iframe {
  max-width: 100%;
}

.works2data-theme {
  --r-page-gutter: 40px;
}

.works2data-theme :is(button, input, select, textarea) {
  max-width: 100%;
}

.works2data-theme .toast {
  width: max-content;
  max-width: calc(100vw - 28px);
}

.works2data-theme .modal-box {
  width: min(760px, calc(100vw - 32px)) !important;
  max-height: min(88vh, 820px);
  max-height: min(88dvh, 820px);
  overflow: auto;
}

.works2data-theme .modal-box-wide {
  width: min(1080px, calc(100vw - 32px)) !important;
}

/* Desktop e notebooks: nao reestrutura, apenas evita estouro. */
.works2data-menu .dashboard-container.menu-dashboard-shell,
body.works2data-admin .dashboard-container,
.works2data-report .report-page-shell {
  width: min(1760px, calc(100% - (2 * var(--r-page-gutter)))) !important;
  max-width: none !important;
}

.works2data-menu .dashboard-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
}

body.works2data-admin .form-box,
body.works2data-admin .form-box-dashboard,
body.works2data-admin .users-box,
body.works2data-admin .dashboard-form-panel,
body.works2data-admin .dashboard-pages-panel,
body.works2data-admin .setor-categoria-panel {
  max-width: 100% !important;
}

body.works2data-admin .table-wrapper,
body.works2data-admin .users-box,
.works2data-report .report-table-scroll,
.works2data-report .report-tabs {
  scrollbar-width: thin;
  scrollbar-color: rgba(212, 173, 63, .65) rgba(168, 191, 214, .08);
}

/* Visualizacao de dashboard: preserva o header antigo. */
.dashboard-view-body {
  overflow-x: hidden;
}

.dashboard-view-body .main-header {
  height: 90px !important;
  min-height: 90px !important;
}

.dashboard-view-body .dashboard-top-container {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding-left: 280px !important;
  padding-right: 170px !important;
  position: relative !important;
}

.dashboard-view-body .dashboard-top-container > .logo {
  position: absolute !important;
  left: 40px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
}

.dashboard-view-body .dashboard-top-container > .logo img {
  width: 218px !important;
  height: 58px !important;
  max-width: 218px !important;
  object-fit: contain !important;
  object-position: left center !important;
}

.dashboard-view-body .dashboard-header-nav {
  flex: 1 1 auto !important;
  justify-content: flex-start !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
}

.dashboard-view-body .dashboard-top-container > .header-right {
  position: absolute !important;
  right: 40px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  min-width: 0 !important;
}

.dashboard-view-body .report-container.report-hide-pbi-toolbar {
  height: calc(100vh - 90px) !important;
  height: calc(100dvh - 90px) !important;
}

@media (max-width: 1500px) {
  .works2data-theme {
    --r-page-gutter: 32px;
  }

  .works2data-menu .menu-landing-panel {
    padding: 34px 54px !important;
  }

  .works2data-menu .dashboard-title {
    font-size: clamp(46px, 4.2vw, 64px) !important;
  }

  .works2data-menu .dashboard-subtitle {
    font-size: 18px !important;
  }

  .works2data-menu .dashboard-card.dashboard-selection-card {
    min-height: 220px !important;
    padding: 28px 30px !important;
  }

  body.works2data-admin .dashboard-container {
    padding-top: 30px !important;
  }

  .dashboard-view-body .dashboard-top-container {
    max-width: 100% !important;
    padding-left: 260px !important;
    padding-right: 150px !important;
  }

  .dashboard-view-body .dashboard-top-container > .logo {
    left: 28px !important;
  }

  .dashboard-view-body .dashboard-top-container > .header-right {
    right: 28px !important;
  }
}

@media (max-width: 1280px) {
  .works2data-theme {
    --r-page-gutter: 24px;
  }

  .works2data-theme .main-header .header-container {
    width: calc(100% - 48px) !important;
    max-width: none !important;
  }

  .works2data-theme .main-header .logo {
    left: 24px !important;
  }

  .works2data-theme .main-header .header-right {
    right: 24px !important;
  }

  .works2data-menu .menu-landing-panel {
    padding: 32px 42px !important;
  }

  .works2data-menu .menu-brand-mark img {
    width: 140px !important;
    height: 140px !important;
  }

  .works2data-menu .dashboard-card.dashboard-selection-card {
    min-height: 205px !important;
  }

  .dashboard-view-body .dashboard-top-container {
    width: 100% !important;
    padding-left: 220px !important;
    padding-right: 132px !important;
  }

  .dashboard-view-body .dashboard-top-container > .logo img {
    width: 184px !important;
    height: 52px !important;
  }

  .dashboard-view-body .dashboard-page-select {
    min-width: 132px !important;
    max-width: 154px !important;
  }

  .dashboard-view-body .dashboard-pages-label {
    font-size: 11px !important;
  }

  .dashboard-view-body .mini-nav-btn {
    padding-inline: 10px !important;
  }
}

@media (max-width: 1100px) {
  .works2data-login .landing-content {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .works2data-login .landing-access {
    width: min(520px, 100%) !important;
  }

  .works2data-report .report-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.works2data-admin .dashboard-form-grid,
  body.works2data-admin .pagina-dashboard-row,
  body.works2data-admin .setor-categoria-form {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 980px) {
  .works2data-theme {
    --r-page-gutter: 18px;
  }

  .works2data-theme .main-header {
    height: auto !important;
    min-height: 78px !important;
  }

  .works2data-theme .main-header .header-container {
    min-height: 78px !important;
    padding: 8px 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
  }

  .works2data-menu .main-header .menu,
  .works2data-admin .main-header .menu,
  .works2data-menu .main-header .user-label,
  .works2data-admin .main-header .user-label {
    display: none !important;
  }

  .works2data-theme .main-header .logo,
  .works2data-theme .main-header .header-right {
    position: static !important;
    transform: none !important;
  }

  .works2data-theme .main-header .logo img {
    width: 168px !important;
    height: 48px !important;
    max-width: 168px !important;
  }

  .works2data-theme .main-header .header-right {
    display: flex !important;
    gap: 8px !important;
    margin: 0 !important;
  }

  .works2data-theme .main-header :is(.admin-btn, .logout-btn) {
    min-width: 74px !important;
    min-height: 38px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
  }

  .side-hover-nav {
    display: none !important;
  }

  .works2data-menu .menu-landing-panel {
    grid-template-columns: 1fr !important;
  }

  .works2data-menu .menu-brand-mark {
    display: none !important;
  }

  .works2data-report .report-ranking-cards,
  .works2data-report .report-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .dashboard-view-body {
    padding-top: 132px !important;
  }

  .dashboard-view-body .main-header {
    height: auto !important;
    min-height: 132px !important;
  }

  .dashboard-view-body .dashboard-top-container {
    width: calc(100% - 28px) !important;
    min-height: 132px !important;
    padding: 10px 0 !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    gap: 10px 12px !important;
    align-items: center !important;
  }

  .dashboard-view-body .dashboard-top-container > .logo {
    position: static !important;
    transform: none !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .dashboard-view-body .dashboard-top-container > .logo img {
    width: 156px !important;
    height: 44px !important;
    max-width: 156px !important;
  }

  .dashboard-view-body .dashboard-header-nav {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    display: flex !important;
    justify-content: flex-start !important;
  }

  .dashboard-view-body .dashboard-top-container > .header-right {
    position: static !important;
    transform: none !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
  }

  .dashboard-view-body .report-container.report-hide-pbi-toolbar {
    height: calc(100vh - 132px) !important;
    height: calc(100dvh - 132px) !important;
  }
}

@media (max-width: 720px) {
  .works2data-theme {
    --r-page-gutter: 14px;
  }

  .works2data-login .landing-shell,
  .works2data-menu .dashboard-container.menu-dashboard-shell,
  body.works2data-admin .dashboard-container,
  .works2data-report .report-page-shell {
    width: calc(100% - 28px) !important;
    padding-inline: 0 !important;
  }

  .works2data-login .landing-topbar {
    height: 72px !important;
  }

  .works2data-login .landing-logo {
    width: 178px !important;
    height: 50px !important;
  }

  .works2data-login .landing-content {
    gap: 22px !important;
    padding-block: 22px 34px !important;
  }

  .works2data-login .landing-copy h1,
  .works2data-menu .dashboard-title,
  body.works2data-admin .dashboard-title,
  .works2data-report .report-page-heading h1 {
    font-size: clamp(30px, 9vw, 40px) !important;
    line-height: 1.04 !important;
    letter-spacing: 0 !important;
  }

  .works2data-login .landing-copy p,
  .works2data-menu .dashboard-subtitle,
  body.works2data-admin .dashboard-subtitle {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  .works2data-login .landing-eyebrow,
  .works-orbit,
  .works-diagonal {
    display: none !important;
  }

  .works2data-login .login-card,
  body.works2data-admin :is(.form-box, .form-box-dashboard, .users-box, .dashboard-form-panel, .dashboard-pages-panel, .setor-categoria-panel),
  .works2data-report .report-filter-panel,
  .works2data-report .report-content-panel {
    padding: 18px !important;
  }

  .works2data-menu .menu-landing-panel {
    padding: 24px 18px !important;
    border-radius: 12px !important;
  }

  .works2data-menu .dashboard-grid,
  .works2data-report .report-filter-grid,
  .works2data-report .report-ranking-cards,
  .works2data-report .report-summary-grid {
    grid-template-columns: 1fr !important;
  }

  .works2data-menu .dashboard-card.dashboard-selection-card {
    min-height: 170px !important;
  }

  body.works2data-admin :is(input, select, textarea, .btn-action, .btn-primary, .btn-save) {
    font-size: 16px !important;
  }

  body.works2data-admin .users-box,
  body.works2data-admin .users-box .table-wrapper {
    overflow: visible !important;
  }

  body.works2data-admin .users-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body.works2data-admin .users-table thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
  }

  body.works2data-admin .users-table tbody,
  body.works2data-admin .users-table tr,
  body.works2data-admin .users-table td {
    display: block !important;
    width: 100% !important;
  }

  body.works2data-admin .users-table tbody tr {
    margin-bottom: 14px !important;
    padding: 8px !important;
    border: 1px solid rgba(168, 191, 214, .18) !important;
    border-radius: 10px !important;
    background: rgba(168, 191, 214, .035) !important;
  }

  body.works2data-admin .users-table tbody td {
    display: grid !important;
    grid-template-columns: minmax(82px, .34fr) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 8px !important;
    text-align: left !important;
    white-space: normal !important;
  }

  body.works2data-admin .users-table tbody td::before {
    color: var(--admin-gold-light, #edce70);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
  }

  body.works2data-admin .users-table:not(.dashboards-table) tbody td:nth-child(1)::before { content: "Nome"; }
  body.works2data-admin .users-table:not(.dashboards-table) tbody td:nth-child(2)::before { content: "E-mail"; }
  body.works2data-admin .users-table:not(.dashboards-table) tbody td:nth-child(3)::before { content: "Setor"; }
  body.works2data-admin .users-table:not(.dashboards-table) tbody td:nth-child(4)::before { content: "Admin"; }
  body.works2data-admin .users-table:not(.dashboards-table) tbody td:nth-child(5)::before { content: "Acoes"; }

  body.works2data-admin .dashboards-table tbody td:nth-child(1)::before { content: "Nome"; }
  body.works2data-admin .dashboards-table tbody td:nth-child(2)::before { content: "Categoria"; }
  body.works2data-admin .dashboards-table tbody td:nth-child(3)::before { content: "Link"; }
  body.works2data-admin .dashboards-table tbody td:nth-child(4)::before { content: "Acoes"; }

  body.works2data-admin .users-table tbody td[colspan] {
    display: block !important;
    text-align: center !important;
  }

  body.works2data-admin .users-table tbody td[colspan]::before {
    content: none !important;
  }

  body.works2data-admin .users-table :is(input, select) {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.works2data-admin .users-table tbody td,
  body.works2data-admin .dashboards-table tbody td {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 7px !important;
    padding: 12px 10px !important;
  }

  body.works2data-admin .users-table tbody td::before,
  body.works2data-admin .dashboards-table tbody td::before {
    display: block;
    line-height: 1;
  }

  body.works2data-admin .users-table :is(input, select),
  body.works2data-admin .dashboards-table :is(input, select) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 48px !important;
    font-size: 16px !important;
  }

  body.works2data-admin .users-table .acoes-wrap-dashboard {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 10px !important;
  }

  body.works2data-admin .dashboards-table .acoes-td,
  body.works2data-admin .users-table .acoes-td {
    text-align: left !important;
    padding-top: 18px !important;
  }

  body.works2data-admin .dashboards-table .acoes-td::before,
  body.works2data-admin .users-table .acoes-td::before {
    text-align: right;
  }

  body.works2data-admin .dashboards-table .acoes-wrap-dashboard .btn-action,
  body.works2data-admin .users-table .acoes-wrap-dashboard .btn-action,
  body.works2data-admin .users-table .acoes-td > .btn-action {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 54px !important;
    margin: 0 !important;
    padding-inline: 12px !important;
  }

  .works2data-report .report-page-heading,
  .works2data-report .report-section-title-row,
  .works2data-report .report-chart-heading {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .works2data-report .report-refresh-btn {
    width: 100% !important;
  }

  .works2data-report .report-tabs {
    display: flex !important;
    width: 100% !important;
    overflow-x: auto !important;
  }

  .works2data-report .report-tab {
    flex: 0 0 auto !important;
  }

  .works2data-report .report-hour-row {
    grid-template-columns: 38px minmax(70px, 1fr) 54px !important;
    gap: 7px !important;
  }

  .dashboard-view-body {
    padding-top: 170px !important;
  }

  .dashboard-view-body .main-header {
    min-height: 170px !important;
  }

  .dashboard-view-body .dashboard-top-container {
    min-height: 170px !important;
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
  }

  .dashboard-view-body .dashboard-header-nav {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
    overflow: visible !important;
  }

  .dashboard-view-body .dashboard-header-nav > .back-btn {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  .dashboard-view-body .dashboard-pages-nav {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .dashboard-view-body .dashboard-pages-label {
    display: none !important;
  }

  .dashboard-view-body .dashboard-page-select {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .dashboard-view-body .mini-nav-btn {
    min-width: 42px !important;
    padding-inline: 8px !important;
    font-size: 0 !important;
  }

  .dashboard-view-body #dashboardPrevPageBtn::after {
    content: "<";
    font-size: 16px;
  }

  .dashboard-view-body #dashboardNextPageBtn::after {
    content: ">";
    font-size: 16px;
  }

  .dashboard-view-body .report-container.report-hide-pbi-toolbar {
    height: calc(100vh - 170px) !important;
    height: calc(100dvh - 170px) !important;
  }
}

@media (max-width: 420px) {
  .works2data-theme .main-header .header-container {
    width: calc(100% - 24px) !important;
  }

  .works2data-theme .main-header .logo img {
    width: 138px !important;
    height: 42px !important;
    max-width: 138px !important;
  }

  .works2data-theme .main-header :is(.admin-btn, .logout-btn) {
    min-width: 62px !important;
    padding-inline: 9px !important;
    font-size: 12px !important;
  }

  body.works2data-admin .users-table tbody td {
    grid-template-columns: 1fr !important;
  }
}

@media (hover: none), (pointer: coarse) {
  .works2data-theme :is(button, a, select, input[type="checkbox"]) {
    touch-action: manipulation;
  }

  .side-hover-nav {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
