/**
 * Densidade UI 75% (desktop Full HD) — opt-in por página.
 *
 * Uso: adicionar body class `ccpv-density-75` no template da página.
 * Não aplicar zoom em html/body (causa faixa branca no Chrome).
 *
 * Escala: --ccpv-density-scale (padrão 0.75)
 *
 * Breakpoint 1024px (não 1280): com escala do Windows (125–175%) a
 * largura CSS de um Full HD cai abaixo de 1280 e a densidade sumia.
 */

:root {
  --ccpv-density-scale: 0.75;
}

/* —— Shell (sidebar + conteúdo) ——
 * Não usar zoom no .dashboard-wrapper: corta a direita (overflow).
 * Escala sidebar e content separadamente, com largura/margin compensadas.
 */
@media (min-width: 1024px) {
  body.ccpv-density-75 .dashboard-wrapper {
    zoom: 1 !important;
    width: 100%;
    max-width: 100%;
    min-height: 100dvh;
    overflow-x: hidden;
  }

  body.ccpv-density-75 .sidebar {
    zoom: var(--ccpv-density-scale) !important;
    width: calc(var(--ccpv-sidebar-width, 220px) / var(--ccpv-density-scale));
    height: calc(100vh / var(--ccpv-density-scale));
    min-height: calc(100vh / var(--ccpv-density-scale));
  }

  body.ccpv-density-75 .sidebar.collapsed {
    width: calc(var(--ccpv-sidebar-collapsed, 84px) / var(--ccpv-density-scale));
  }

  body.ccpv-density-75 .dashboard-content,
  body.ccpv-density-75 .agenda-content,
  body.ccpv-density-75 .novo-agendamento-content {
    zoom: var(--ccpv-density-scale) !important;
    margin-left: calc(var(--ccpv-sidebar-width, 220px) / var(--ccpv-density-scale));
    width: calc((100vw - var(--ccpv-sidebar-width, 220px)) / var(--ccpv-density-scale));
    max-width: none;
    min-width: 0;
    min-height: calc(100dvh / var(--ccpv-density-scale));
    box-sizing: border-box;
    overflow-x: hidden;
  }

  body.ccpv-density-75 .sidebar.collapsed ~ .dashboard-content,
  body.ccpv-density-75 .sidebar.collapsed ~ .agenda-content,
  body.ccpv-density-75 .sidebar.collapsed ~ .novo-agendamento-content {
    margin-left: calc(var(--ccpv-sidebar-collapsed, 84px) / var(--ccpv-density-scale));
    width: calc((100vw - var(--ccpv-sidebar-collapsed, 84px)) / var(--ccpv-density-scale));
  }

  body.ccpv-density-75 .page-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
}

/* —— Login (card centralizado; fundo na janela) —— */
@media (min-width: 1024px) {
  html:has(body.ccpv-density-75.ccpv-page-login) {
    background-color: #0f172a;
    min-height: 100dvh;
  }

  html:has(body.ccpv-density-75.ccpv-page-login)::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background-color: #0f172a;
    pointer-events: none;
  }

  body.ccpv-density-75.ccpv-page-login {
    background: #0f172a;
    min-height: 100dvh;
  }

  body.ccpv-density-75.ccpv-page-login .login-page {
    width: 100%;
    max-width: 100%;
    min-height: 100dvh;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }

  body.ccpv-density-75.ccpv-page-login .login-container {
    width: min(450px, 100%);
    max-width: min(450px, 92vw);
    transform: scale(var(--ccpv-density-scale)) !important;
    transform-origin: center center !important;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  body.ccpv-density-75.ccpv-page-login .login-page {
    width: 100%;
    min-height: 100dvh;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  body.ccpv-density-75.ccpv-page-login .login-container {
    width: min(420px, 90vw);
    max-width: 90vw;
    transform: scale(0.9) !important;
    transform-origin: center center !important;
  }
}

/* —— Mapa: nunca escalar —— */
@media (min-width: 1024px) {
  body.ccpv-density-75.ccpv-maps-ala-gmaps .dashboard-wrapper,
  html.ccpv-maps-ala-gmaps body.ccpv-density-75 .dashboard-wrapper {
    zoom: 1 !important;
    width: 100%;
    min-height: 100dvh;
  }

  body.ccpv-density-75.ccpv-maps-ala-gmaps .sidebar,
  html.ccpv-maps-ala-gmaps body.ccpv-density-75 .sidebar {
    zoom: 1 !important;
    width: var(--ccpv-sidebar-width, 220px);
    height: 100vh;
    min-height: 100vh;
  }

  body.ccpv-density-75.ccpv-maps-ala-gmaps .dashboard-content,
  html.ccpv-maps-ala-gmaps body.ccpv-density-75 .dashboard-content {
    zoom: 1 !important;
    margin-left: var(--ccpv-sidebar-width, 220px);
    width: calc(100% - var(--ccpv-sidebar-width, 220px));
    min-height: 100dvh;
  }
}

@media print {
  body.ccpv-density-75 .dashboard-wrapper,
  body.ccpv-density-75 .login-container {
    zoom: 1 !important;
    transform: none !important;
    width: auto !important;
    min-height: 0 !important;
  }
}
