/**
 * Supresoft Delivery — layout responsivo (celular, tablet, notebook, desktop)
 * Complementa o bundle Tailwind sem alterar o build principal.
 */

/* Base: evita scroll horizontal indesejado */
html {
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
}

body.sd-responsive {
  overflow-x: clip;
  min-height: 100dvh;
}

#root {
  min-height: 100dvh;
  max-width: 100vw;
  overflow-x: clip;
}

/* Safe area (notch / barra inferior em iOS) */
@supports (padding: max(0px)) {
  body.sd-responsive {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }

  .fixed.bottom-6.inset-x-0,
  .fixed.bottom-0 {
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
  }
}

/* ——— Admin ——— */
body.sd-admin aside.hidden.md\:flex {
  /* sidebar desktop: já oculta em < md pelo Tailwind */
}

/* Shell admin: coluna em telas estreitas quando sidebar some */
@media (max-width: 767px) {
  body.sd-admin .p-4.md\:p-8.flex-1 {
    padding: 0.75rem !important;
    padding-bottom: max(1rem, env(safe-area-inset-bottom)) !important;
  }

  body.sd-admin h2.text-2xl {
    font-size: 1.25rem;
    line-height: 1.35;
  }

  body.sd-admin h2.text-3xl,
  body.sd-admin .text-3xl {
    font-size: 1.5rem;
  }

  /* Menu mobile overlay acima do conteúdo */
  body.sd-admin .md\:hidden.fixed.inset-0.bg-white {
    z-index: 50 !important;
    padding-top: calc(4rem + env(safe-area-inset-top, 0px)) !important;
  }

  /* Header sticky admin */
  body.sd-admin .sticky.top-0.z-50 {
    padding-left: max(0.5rem, env(safe-area-inset-left));
    padding-right: max(0.5rem, env(safe-area-inset-right));
  }

/* Grids de cards: 1 coluna em celular */
  body.sd-admin .grid.grid-cols-1.md\:grid-cols-3,
  body.sd-admin .grid.md\:grid-cols-3 {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  body.sd-admin .grid.grid-cols-2.gap-4,
  body.sd-admin .grid.grid-cols-2.gap-6 {
    grid-template-columns: 1fr;
  }

  body.sd-admin .grid.grid-cols-3:not(.grid-cols-1) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Tablet: 2 colunas em grids de 3 */
@media (min-width: 768px) and (max-width: 1023px) {
  body.sd-admin .lg\:grid-cols-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.sd-admin .grid.grid-cols-1.md\:grid-cols-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.sd-admin aside.hidden.md\:flex {
    width: 5rem !important;
    min-width: 5rem;
  }

  body.sd-admin aside.hidden.md\:flex nav span,
  body.sd-admin aside.hidden.md\:flex .border-b p,
  body.sd-admin aside.hidden.md\:flex .border-t span {
    display: none !important;
  }

  body.sd-admin aside.hidden.md\:flex h1 {
    font-size: 0.65rem !important;
  }

  body.sd-admin aside.hidden.md\:flex nav a,
  body.sd-admin aside.hidden.md\:flex .border-t a,
  body.sd-admin aside.hidden.md\:flex .border-t button {
    justify-content: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* Tabelas admin: scroll horizontal com indicação */
.sd-table-scroll {
  -webkit-overflow-scrolling: touch;
  overflow-x: auto;
  max-width: 100%;
  margin-bottom: 0.25rem;
}

.sd-table-scroll::after {
  content: "";
  display: block;
  height: 0;
}

@media (max-width: 767px) {
  .sd-table-scroll {
    border-radius: 0.75rem;
    box-shadow: inset -12px 0 12px -12px rgba(15, 23, 42, 0.08);
  }

  body.sd-admin .sd-table-hint {
    display: block;
    font-size: 0.7rem;
    color: #64748b;
    margin: 0 0 0.5rem 0.25rem;
  }
}

body.sd-admin .sd-table-hint {
  display: none;
}

/* Modais: largura total em celular */
@media (max-width: 639px) {
  .fixed.inset-0.z-\[60\] {
    align-items: flex-end !important;
    padding: 0 !important;
  }

  .fixed.inset-0.z-\[60\] > .bg-white,
  .fixed.inset-0.z-\[60\] > div.bg-white {
    max-width: 100% !important;
    width: 100% !important;
    border-radius: 1.25rem 1.25rem 0 0 !important;
    max-height: min(92dvh, 92vh) !important;
  }

  .max-h-\[90vh\] {
    max-height: min(88dvh, 88vh) !important;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .fixed.inset-0.z-\[60\] {
    padding: 1rem !important;
  }

  .fixed.inset-0.z-\[60\] .max-w-lg,
  .fixed.inset-0.z-\[60\] .max-w-md,
  .fixed.inset-0.z-\[60\] .max-w-sm {
    max-width: min(32rem, calc(100vw - 2rem)) !important;
  }
}

/* Toolbars: quebra de linha */
@media (max-width: 639px) {
  body.sd-admin .flex.flex-col.sm\:flex-row,
  body.sd-admin .flex.justify-between.items-start {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  body.sd-admin .flex.gap-2:not(.flex-col),
  body.sd-admin .flex.gap-3:not(.flex-col) {
    flex-wrap: wrap;
  }

  body.sd-admin input[type="text"],
  body.sd-admin input[type="search"],
  body.sd-admin input[type="email"],
  body.sd-admin input[type="tel"],
  body.sd-admin input[type="number"],
  body.sd-admin input[type="date"],
  body.sd-admin select,
  body.sd-admin textarea {
    max-width: 100%;
  }

  body.sd-admin .w-80,
  body.sd-admin .sm\:w-72 {
    width: 100% !important;
    max-width: 100%;
  }
}

/* Área de toque mínima (acessibilidade mobile) */
@media (max-width: 767px) {
  body.sd-admin button:not(.p-1):not(.p-1\.5):not(.p-0),
  body.sd-admin a.rounded-lg,
  body.sd-admin nav a {
    min-height: 2.75rem;
  }

  body.sd-admin table button {
    min-height: 2.25rem;
    min-width: 2.25rem;
  }

  /* Abas de período (Hoje / 7 Dias / Este Mês): scroll horizontal, sem quebra */
  body.sd-admin .flex.bg-slate-100.p-1.rounded-xl {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    scrollbar-width: none;
    gap: 0.25rem;
  }

  body.sd-admin .flex.bg-slate-100.p-1.rounded-xl::-webkit-scrollbar {
    display: none;
  }

  body.sd-admin .flex.bg-slate-100.p-1.rounded-xl button {
    white-space: nowrap !important;
    flex: 0 0 auto;
    font-size: 0.8125rem !important;
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
    line-height: 1.2 !important;
  }

  /* Toolbar pedidos: select + busca em coluna */
  body.sd-admin .flex.flex-col.lg\:flex-row.gap-2.w-full {
    width: 100% !important;
  }

  body.sd-admin .flex-1.flex.flex-col.min-w-0 {
    width: 100%;
    max-width: 100vw;
  }
}

/* Gráficos Recharts */
.recharts-responsive-container {
  min-width: 0 !important;
  width: 100% !important;
}

@media (max-width: 767px) {
  body.sd-admin .h-\[300px\],
  body.sd-admin .h-\[200px\] {
    height: 220px !important;
  }
}

/* ——— Público (cardápio, checkout, landing) ——— */
@media (max-width: 639px) {
  .max-w-3xl.mx-auto.px-4,
  .max-w-3xl.mx-auto.px-4.sm\:px-6 {
    padding-left: max(1rem, env(safe-area-inset-left)) !important;
    padding-right: max(1rem, env(safe-area-inset-right)) !important;
  }

  .max-w-xl.mx-auto.px-6,
  .flex-1.w-full.max-w-xl.mx-auto.px-6 {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .grid.grid-cols-2.gap-3,
  .grid.grid-cols-2.gap-4 {
    gap: 0.75rem;
  }

  .text-4xl {
    font-size: 1.75rem;
  }

  .pb-32 {
    padding-bottom: calc(8rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Login */
@media (max-width: 479px) {
  .w-full.max-w-sm.bg-white.p-8 {
    padding: 1.5rem !important;
    margin: 0 0.75rem;
    max-width: calc(100vw - 1.5rem) !important;
  }
}

/* Impressão: não alterar */
@media print {
  body.sd-admin .sd-table-hint,
  .sd-table-scroll {
    box-shadow: none;
    overflow: visible;
  }
}
