/**
 * FOTRIEM — Adaptación global (tótem + panel admin)
 * Usa --fotriem-site-header-h (sincronizado por brand-header.js)
 */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

img,
video,
canvas {
  max-width: 100%;
  height: auto;
}

body.kiosk-page .screen-roulette #roulette-canvas {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  aspect-ratio: 1 / 1;
}

body.kiosk-page .screen-roulette .roulette-showcase__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

/* —— Tótem: contenedor principal —— */
body.kiosk-page.has-site-banner {
  min-height: 100dvh;
  min-height: 100svh;
}

body.kiosk-page.has-site-banner .kiosk-app {
  min-height: calc(100dvh - var(--fotriem-site-header-h, 88px));
  min-height: calc(100svh - var(--fotriem-site-header-h, 88px));
  box-sizing: border-box;
}

body.kiosk-page .screen {
  padding:
    clamp(0.35rem, 1.2vh, 0.85rem)
    clamp(0.65rem, 3vw, 1.5rem)
    max(4.25rem, calc(env(safe-area-inset-bottom) + 3.25rem)) !important;
  box-sizing: border-box;
  width: 100%;
  max-width: 100vw;
}

/* Bienvenida */
body.kiosk-page .welcome-layout,
body.kiosk-page .welcome-card {
  width: min(100%, 640px);
  max-width: 96vw;
}

body.kiosk-page .welcome-logo-hero,
body.kiosk-page .welcome-logo-img {
  max-height: min(168px, 20vh, 34vw);
  max-width: min(325px, 82vw);
  width: auto;
  margin: 0 auto;
}

/* Términos */
body.kiosk-page .terms-panel {
  width: min(100%, 680px);
  max-height: calc(100dvh - var(--fotriem-site-header-h, 88px) - 6rem);
  overflow-y: auto;
}

body.kiosk-page .terms-body {
  max-height: min(42vh, calc(100dvh - var(--fotriem-site-header-h, 88px) - 18rem));
}

/* Profesiones */
body.kiosk-page .profession-panel {
  max-height: calc(100dvh - var(--fotriem-site-header-h, 88px) - 2rem);
  width: 100%;
  max-width: min(1200px, 100%);
  margin: 0 auto;
}

body.kiosk-page .profession-scroll-wrap {
  max-height: min(
    420px,
    calc(100dvh - var(--fotriem-site-header-h, 88px) - 16rem)
  );
}

body.kiosk-page .profession-card {
  flex: 0 0 clamp(140px, 28vw, 200px);
}

/* Formulario */
body.kiosk-page .form-screen {
  padding-top: clamp(0.5rem, 1.5vh, 1rem) !important;
}

body.kiosk-page .form-container {
  width: min(100%, 600px);
  max-height: calc(100dvh - var(--fotriem-site-header-h, 88px) - 5rem);
  overflow-y: auto;
}

/* Bienvenida ruleta */
body.kiosk-page .welcome-roulette-scene {
  width: min(100%, 560px);
}

/* Footer y admin link */
body.kiosk-page .kiosk-footer {
  padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
}

body.kiosk-page .kiosk-admin-link {
  top: calc(var(--fotriem-site-header-h, 88px) + 0.5rem);
  right: max(0.65rem, env(safe-area-inset-right));
  font-size: clamp(0.65rem, 2vw, 0.78rem);
}

/* —— Panel admin —— */
body.admin-body.has-site-banner {
  min-height: 100dvh;
  min-height: 100svh;
}

body.admin-theme-light.admin-body .admin-shell {
  min-height: 100dvh;
  min-height: 100svh;
}

body.admin-theme-light.admin-body .admin-main {
  min-width: 0;
  width: 100%;
}

body.admin-theme-light.admin-body .admin-content {
  width: 100%;
  max-width: min(1280px, 100%);
  margin-inline: auto;
  padding: clamp(0.85rem, 2.5vw, 1.5rem);
  box-sizing: border-box;
  overflow-x: auto;
}

body.admin-theme-light.admin-body .admin-header {
  flex-wrap: nowrap;
  gap: 0.75rem;
  align-items: center;
}

body.admin-theme-light.admin-body .admin-header h1 {
  font-size: clamp(1.1rem, 3.5vw, 1.5rem);
}

body.admin-theme-light .table-wrap,
body.admin-theme-light .stats-grid-premium,
body.admin-theme-light .prizes-toolbar {
  max-width: 100%;
  overflow-x: auto;
}

@media (max-width: 1024px) {
  body.admin-theme-light.admin-body .admin-shell {
    display: block;
    width: 100%;
    max-width: 100vw;
    overflow-x: clip;
  }

  body.admin-theme-light.admin-body .admin-main {
    width: 100%;
    max-width: 100vw;
  }

  body.admin-theme-light.admin-body .admin-sidebar {
    position: fixed !important;
    transform: translate3d(-100%, 0, 0);
  }

  body.admin-theme-light.admin-body.sidebar-open .admin-sidebar {
    transform: translate3d(0, 0, 0);
  }
}

body.login-page.has-site-banner .login-box {
  width: min(100%, 440px);
  margin: 0 auto;
}

/* —— Orientación horizontal (tótems landscape) —— */
/* Ruleta — layout adaptable sin solapamientos */
body.kiosk-page .screen-roulette .roulette-layout {
  width: min(100%, 1280px);
}

body.kiosk-page .screen-roulette .roulette-stage {
  width: 100%;
}

body.kiosk-page .screen-roulette .roulette-showcase__name,
body.kiosk-page .screen-roulette .roulette-showcase__desc {
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.kiosk-page .screen-prize-won .prize-won-name,
body.kiosk-page .screen-prize-won .prize-won-desc {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 1080px) {
  body.kiosk-page .screen-roulette .roulette-stage {
    grid-template-columns: 1fr !important;
  }

  body.kiosk-page .screen-roulette .roulette-layout {
    width: min(100%, 880px);
    gap: 0.5rem;
  }

body.kiosk-page.kiosk-on-roulette .screen-roulette {
  padding-bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px)) !important;
}

body.kiosk-page .screen-roulette .roulette-main {
  width: 100%;
  padding-bottom: 0.25rem;
}

body.kiosk-page.kiosk-on-roulette .screen-roulette .btn-spin-roulette {
  position: sticky;
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  z-index: 50;
}

  body.kiosk-page .screen-roulette .roulette-wrap {
    margin-inline: auto;
  }
}

@media (orientation: landscape) and (max-height: 520px) {
  body.kiosk-page .screen-welcome-promo .welcome-card {
    padding: 1rem 1.25rem;
    gap: 0.75rem;
  }

  body.kiosk-page .welcome-logo-hero,
  body.kiosk-page .welcome-logo-img {
    max-height: min(96px, 16vh);
    max-width: min(260px, 72vw);
  }

  body.kiosk-page .profession-scroll-wrap {
    max-height: min(200px, 42vh);
  }

  body.kiosk-page .screen-profession {
    padding-bottom: max(4rem, env(safe-area-inset-bottom) + 2.5rem) !important;
  }
}

/* —— Móvil estrecho —— */
@media (max-width: 380px) {
  body.kiosk-page .btn-kiosk-primary,
  body.kiosk-page .btn-cta-hero {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    font-size: 0.95rem;
  }

  body.kiosk-page .profession-card {
    flex: 0 0 130px;
  }
}

/* —— Tablets y pantallas grandes —— */
@media (min-width: 768px) {
  body.kiosk-page .form-container,
  body.kiosk-page .terms-panel {
    padding: clamp(1.5rem, 3vw, 2rem);
  }
}

@media (min-width: 1200px) {
  body.kiosk-page .profession-panel {
    max-width: 1100px;
  }
}

/* Touch: áreas mínimas */
@media (pointer: coarse) {
  body.kiosk-page .btn-kiosk-primary,
  body.kiosk-page .btn-kiosk-ghost,
  body.kiosk-page .profession-card {
    min-height: 48px;
  }

  body.kiosk-page .terms-check input {
    width: 1.5rem;
    height: 1.5rem;
  }
}
