/* ==========================================================================
   Tema Produtos Sintonia — paleta extraída de sintoniaeducacao.com.br
   Roxo institucional como primária do Tabler; laranja/rosa/amarelo/azul
   como acentos pontuais (CTAs, badges), nunca como fundo de tela de dados.
   ========================================================================== */

:root{
  --sint-roxo: #601aae;
  --sint-roxo-escuro: #491d7f;
  --sint-roxo-profundo: #2a0f4d;
  --sint-roxo-claro: #b48be8;
  --sint-lavanda: #f7f3ff;
  --sint-lavanda-2: #efe6fa;
  --sint-laranja: #ff7300;
  --sint-laranja-escuro: #d96200;
  --sint-rosa: #ef4c7e;
  --sint-amarelo: #f5b828;
  --sint-azul: #2eb4e8;
  --sint-texto-suave: #d9c8f2;

  /* Tabler: primária roxa em botões, links, foco, paginação, switches */
  --tblr-primary: var(--sint-roxo);
  --tblr-primary-rgb: 96, 26, 174;
  --tblr-primary-darken: var(--sint-roxo-escuro);
  --tblr-primary-lt: rgba(96, 26, 174, .1);
  --tblr-primary-lt-rgb: 239, 230, 250;
  --tblr-primary-text-emphasis: var(--sint-roxo-escuro);
  --tblr-primary-bg-subtle: var(--sint-lavanda-2);
  --tblr-primary-border-subtle: #d3bdf0;
  --tblr-link-color: var(--sint-roxo);
  --tblr-link-color-rgb: 96, 26, 174;
  --tblr-link-hover-color: var(--sint-roxo-escuro);
  --tblr-link-hover-color-rgb: 73, 29, 127;
  --tblr-font-sans-serif: 'Lexend', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --sint-sidebar-w: 250px;
}
.sidebar-collapsed{ --sint-sidebar-w: 68px; }

body{
  background: var(--sint-lavanda);
  font-family: var(--tblr-font-sans-serif);
}

/* Elementos do Tabler com a cor primária compilada (não usam a variável). */
.form-check-input:checked{
  background-color: var(--sint-roxo);
  border-color: var(--sint-roxo);
}
.form-control:focus,
.form-select:focus,
.form-check-input:focus{
  border-color: var(--sint-roxo-claro);
  box-shadow: 0 0 0 .25rem rgba(96, 26, 174, .2);
}
.page-item.active .page-link{
  background-color: var(--sint-roxo);
  border-color: var(--sint-roxo);
}
.btn-primary{
  --tblr-btn-bg: var(--sint-roxo);
  --tblr-btn-hover-bg: var(--sint-roxo-escuro);
  --tblr-btn-active-bg: var(--sint-roxo-escuro);
  --tblr-btn-disabled-bg: var(--sint-roxo);
}
.btn-outline-primary{
  --tblr-btn-color: var(--sint-roxo);
  --tblr-btn-border-color: var(--sint-roxo);
  --tblr-btn-hover-bg: var(--sint-roxo);
  --tblr-btn-active-bg: var(--sint-roxo-escuro);
}
.text-primary{ color: var(--sint-roxo) !important; }
.bg-primary{ background-color: var(--sint-roxo) !important; }

/* CTA de destaque (laranja do botão "Contato" do site). Usar com moderação. */
.btn-sint-destaque{
  background: var(--sint-laranja);
  border-color: var(--sint-laranja);
  color: #fff;
  font-weight: 600;
}
.btn-sint-destaque:hover,
.btn-sint-destaque:focus{
  background: var(--sint-laranja-escuro);
  border-color: var(--sint-laranja-escuro);
  color: #fff;
}

/* Badges de nível de acesso */
.badge-nivel-10{ background: #e3f5fc; color: #0d5a78; }   /* Vendedor — azul */
.badge-nivel-20{ background: var(--sint-lavanda-2); color: var(--sint-roxo-escuro); }  /* Comum — roxo */
.badge-nivel-30{ background: #fde6ee; color: #8f1f43; }   /* Administrador — rosa */

/* Cards padrão do produto */
.card-sint{
  border: none;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(73, 29, 127, .08);
}

/* --------------------------------------------------------------------------
   Sidebar
   -------------------------------------------------------------------------- */
.sint-sidebar{
  background: linear-gradient(180deg, var(--sint-roxo-profundo) 0%, var(--sint-roxo-escuro) 100%);
  color: #fff;
  height: 100vh;
  /* altura dinâmica: no mobile o rodapé não fica atrás da barra de endereço */
  height: 100dvh;
  position: fixed;
  top: 0;
  left: 0;
  width: var(--sint-sidebar-w);
  overflow: hidden;
  transition: width .2s ease, transform .2s ease;
  z-index: 1040;
}
/* Topo (marca) e rodapé (usuário) fixos; só o menu do meio rola. */
.sint-sidebar > .nav{
  flex: 1 1 auto;
  min-height: 0;
  flex-wrap: nowrap;   /* .nav do Bootstrap quebra em 2ª coluna sem isso */
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .35) transparent;
}
.sint-sidebar > .nav::-webkit-scrollbar{ width: 8px; }
.sint-sidebar > .nav::-webkit-scrollbar-thumb{
  background-color: rgba(255, 255, 255, .35);
  border-radius: 8px;
}
.sint-sidebar > .mt-auto{ flex: none; }

.sint-sidebar .nav-link{
  color: var(--sint-texto-suave);
  border-radius: 8px;
  white-space: nowrap;
}
.sint-sidebar .nav-link:hover{
  background: rgba(255, 255, 255, .08);
  color: #fff;
}
.sint-sidebar .nav-link.active{
  background: rgba(255, 255, 255, .14);
  color: #fff;
  box-shadow: inset 3px 0 0 var(--sint-laranja);
}
.sint-sidebar .nav-section{
  color: rgba(255, 255, 255, .45);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .75rem 1rem .25rem;
  white-space: nowrap;
}

.sint-sidebar .brand{
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.sint-sidebar .brand-logo{
  height: 40px;
  width: auto;
  max-width: 170px;
  object-fit: contain;
  object-position: left center;
}
.sint-sidebar .brand-icon{
  display: none;
  height: 28px;
  width: 28px;
}
.sint-sidebar-toggle{
  flex: none;
  background: transparent;
  border: 0;
  color: var(--sint-texto-suave);
  font-size: .95rem;
  line-height: 1;
  padding: .3rem .45rem;
  border-radius: 6px;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, transform .2s ease;
}
.sint-sidebar-toggle:hover{
  background: rgba(255, 255, 255, .08);
  color: #fff;
}

.sint-avatar{
  background: var(--sint-amarelo);
  color: var(--sint-roxo-profundo);
  font-weight: 700;
}

/* Menu do usuário com estratégia "fixed" (Popper): escapa do overflow da sidebar. */
.sint-sidebar .dropdown-menu{ z-index: 1080; }

.sint-main{
  margin-left: var(--sint-sidebar-w);
  transition: margin-left .2s ease;
  min-height: 100vh;
}

/* Estado recolhido (desktop): só ícones */
@media (min-width: 768px){
  .sidebar-collapsed .sint-sidebar{
    padding-left: .5rem !important;
    padding-right: .5rem !important;
  }
  .sidebar-collapsed .sint-nav-text,
  .sidebar-collapsed .sint-sidebar .nav-section{ display: none; }
  .sidebar-collapsed .sint-sidebar .nav-link{
    text-align: center;
    padding-left: .5rem !important;
    padding-right: .5rem !important;
  }
  .sidebar-collapsed .sint-sidebar .nav-link i{ margin-right: 0 !important; }
  .sidebar-collapsed .sint-sidebar .brand{
    flex-direction: column;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .sidebar-collapsed .sint-sidebar .brand-logo{ display: none; }
  .sidebar-collapsed .sint-sidebar .brand-icon{ display: block; }
  .sidebar-collapsed .sint-sidebar-toggle{ transform: rotate(180deg); }
  .sidebar-collapsed .sint-sidebar .dropdown-toggle{ justify-content: center; }
  .sidebar-collapsed .sint-sidebar .dropdown-toggle::after{ display: none; }
}

/* Mobile: sidebar vira gaveta, com barra superior e botão de menu */
.sint-topbar{ display: none; }
.sint-backdrop{ display: none; }
@media (max-width: 767.98px){
  :root{ --sint-sidebar-w: 260px; }
  .sint-sidebar{ transform: translateX(-100%); }
  .sint-sidebar.is-open{
    transform: translateX(0);
    box-shadow: 0 0 40px rgba(0, 0, 0, .35);
  }
  .sint-sidebar-toggle{ display: none; }
  .sint-main{ margin-left: 0; }
  .sint-topbar{
    display: flex;
    align-items: center;
    gap: .75rem;
    position: sticky;
    top: 0;
    z-index: 1030;
    padding: .6rem 1rem;
    background: var(--sint-roxo-profundo);
    color: #fff;
  }
  .sint-topbar img{ height: 28px; width: auto; }
  .sint-topbar button{
    background: transparent;
    border: 0;
    color: #fff;
    font-size: 1.25rem;
    padding: .25rem .5rem;
  }
  .sint-backdrop.is-open{
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(20, 6, 40, .5);
    z-index: 1035;
  }
}

/* Banner do modo "ver como" */
.sint-simulacao-banner{
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #fff4d6;
  color: #6b4a00;
  border-bottom: 1px solid var(--sint-amarelo);
}
@media (max-width: 767.98px){
  .sint-simulacao-banner{ top: 52px; }
}

/* Respiro no fim de toda página interna (área segura do celular). */
.sint-main > .container-xl{
  padding-bottom: calc(4rem + env(safe-area-inset-bottom, 0px)) !important;
}
@media (min-width: 768px){
  .sint-main > .container-xl{ padding-bottom: 3rem !important; }
}

/* Hero de topo da home interna */
.sint-hero{
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(239, 76, 126, .45) 0%, transparent 55%),
    linear-gradient(120deg, var(--sint-roxo-profundo) 0%, var(--sint-roxo) 100%);
  color: #fff;
  border-radius: 14px;
}

/* --------------------------------------------------------------------------
   Tabelas em cards no mobile (.table-mobile-cards)
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px){
  .table-mobile-cards{ display: block; padding: .75rem; }
  .table-mobile-cards thead{ display: none; }
  .table-mobile-cards tbody{ display: block; }
  .table-mobile-cards tr{
    display: block;
    background: var(--tblr-card-bg, #fff);
    border: var(--tblr-border-width, 1px) solid var(--tblr-border-color);
    border-radius: 8px;
    margin-bottom: .75rem;
  }
  .table-mobile-cards tr:last-child{ margin-bottom: 0; }
  .table-mobile-cards td{
    display: block;
    padding: .5rem .875rem !important;
    border: none;
    border-bottom: var(--tblr-border-width, 1px) solid var(--tblr-border-color-translucent);
  }
  .table-mobile-cards td:last-child{ border-bottom: none; }
  .table-mobile-cards td[data-label]::before{
    content: attr(data-label);
    display: block;
    font-size: .75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1rem;
    color: var(--tblr-secondary);
    margin-bottom: .125rem;
  }
  /* Linha de estado vazio não vira card */
  .table-mobile-cards tr:has(td:not([data-label])){
    background: transparent;
    border: none;
    margin-bottom: 0;
  }
  .table-mobile-cards td:not([data-label]){
    border-bottom: none;
    padding-left: 0 !important;
  }
  .table-mobile-cards .btn-list{ justify-content: flex-start !important; }

  .card-footer.d-flex{ flex-wrap: wrap; row-gap: .5rem; }
  .card-footer .pagination{ flex-wrap: wrap; }
}

/* Indicador de carregamento do HTMX */
.htmx-indicator{ opacity: 0; transition: opacity .2s ease; }
.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator{ opacity: 1; }

/* Alpine: esconde elementos com x-cloak até o Alpine iniciar */
[x-cloak]{ display: none !important; }

/* --------------------------------------------------------------------------
   Páginas públicas (login, cadastro, convite, recuperação de senha)
   -------------------------------------------------------------------------- */
.sint-public-wrap{
  min-height: 100vh;
  min-height: 100dvh;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(60% 50% at 100% 0%, rgba(239, 76, 126, .35) 0%, transparent 70%),
    radial-gradient(50% 45% at 0% 100%, rgba(46, 180, 232, .25) 0%, transparent 70%),
    linear-gradient(150deg, var(--sint-roxo-profundo) 0%, var(--sint-roxo-escuro) 45%, var(--sint-roxo) 100%);
}
.sint-public-logo{
  display: block;
  height: 64px;
  width: auto;
  max-width: 100%;
  margin: 0 auto;
}
.sint-public-card{
  width: 100%;
  max-width: 440px;
  position: relative;
  z-index: 2;
}
.sint-public-wrap header,
.sint-public-wrap footer{
  position: relative;
  z-index: 2;
}

/* Formas decorativas (círculos do site) */
.sint-shapes{
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
  pointer-events: none;
}
.sint-shape{
  position: absolute;
  border-radius: 50%;
}
.sint-shape--amarelo{
  width: 220px; height: 220px;
  top: 0; right: 0;
  background: rgba(245, 184, 40, .18);
  transform: translate(35%, -45%);
}
.sint-shape--azul{
  width: 170px; height: 170px;
  bottom: 0; left: 0;
  background: rgba(46, 180, 232, .16);
  transform: translate(-40%, 35%);
}
.sint-shape--rosa{
  width: 90px; height: 90px;
  bottom: 70px; right: 50px;
  background: rgba(239, 76, 126, .25);
}

/* Home pública */
.sint-hero-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
}
.sint-hero-header img{ height: 44px; width: auto; }
.sint-hero-nav-link{
  color: #fff;
  font-size: .85rem;
  text-decoration: none;
  padding: .5rem 1.1rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .55);
  background: rgba(255, 255, 255, .12);
  transition: background .15s ease, color .15s ease;
}
.sint-hero-nav-link:hover{
  background: #fff;
  color: var(--sint-roxo);
}
.sint-hero-body{
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 2rem 1.5rem;
  max-width: 640px;
}
.sint-hero-kicker{
  display: inline-block;
  background: var(--sint-amarelo);
  color: #000;
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .35rem .9rem;
  margin-bottom: 1.25rem;
}
.sint-hero-title{
  color: #fff;
  font-weight: 700;
  font-size: clamp(2.1rem, 5vw, 3.2rem);
  line-height: 1.1;
  margin-bottom: 1rem;
}
.sint-hero-sub{
  color: rgba(255, 255, 255, .9);
  font-size: 1.05rem;
  max-width: 460px;
  margin: 0 auto 1.75rem;
}
.sint-hero-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
}
.btn-sint-outline-light{
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .6);
  background: rgba(255, 255, 255, .12);
  font-weight: 600;
}
.btn-sint-outline-light:hover{
  background: #fff;
  color: var(--sint-roxo);
  border-color: #fff;
}

/* Tom Select: o CSS dele usa variáveis do Bootstrap (--bs-*) que o Tabler não
   define (usa --tblr-*), então o dropdown e a opção ativa ficavam transparentes.
   Definidas no próprio elemento, valem mesmo com o tom-select.css carregado
   depois deste arquivo (no extra_css das páginas). */
.ts-wrapper,
.ts-dropdown{
  --bs-body-bg: #fff;
  --bs-body-color: var(--tblr-body-color, #1d273b);
  --bs-tertiary-bg: var(--sint-lavanda-2);
  --bs-border-color: var(--tblr-border-color, #dadfe5);
  --bs-border-color-translucent: rgba(4, 32, 69, .14);
  --bs-border-radius: var(--tblr-border-radius, 6px);
  --bs-secondary-color: var(--tblr-secondary, #6c7a91);
}
