/* ============================================================
   RIFTWAY / RWM — P3F8A Responsive Foundation / Notebook Comfort
   Fundação técnica: viewport real, anti-overflow e modais acessíveis.
   Não redesenha telas nem altera regra/sistema de jogo.
   ============================================================ */

html,
body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
}

html { min-height: 100%; }
body { min-height: 100dvh; }

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

img,
svg,
video,
canvas,
picture {
  max-width: 100%;
}

button,
input,
select,
textarea {
  max-width: 100%;
}

button,
[role="button"] {
  touch-action: manipulation;
}

/* Piso mínimo de leitura para informações acionáveis. Microcopy decorativa continua intocada. */
button,
input,
select,
textarea,
.full-modal-body,
.rw-cl-body,
.rw-da-panel,
.match-report-modal,
.ca-modal,
.round-prep-modal {
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

#app,
.app,
.screen,
.full-modal,
.full-modal-box,
.full-modal-body,
#screen-dashboard,
#screen-dashboard * {
  min-width: 0;
}

/* Segurança global: nada deve criar largura horizontal fora do viewport real. */
.full-modal,
#training-modal,
#custom-confirm-modal,
#saveload-modal,
#offers-modal,
#offer-modal,
#player-card-modal,
#playoffs-modal,
#playin-modal,
#intl-modal,
#contract-modal,
#weekly-event-modal,
#match-result-modal,
.rw-champion-lab-modal-root,
#draft-screen-lolzeria {
  max-width: 100vw;
  overflow-x: hidden;
}

/* Modais comuns: conteúdo interno rola, ações/fechar permanecem alcançáveis por scroll. */
.full-modal-box,
#custom-confirm-modal .mr-card,
#offers-modal .mr-card,
#offer-modal .mr-card,
#player-card-modal .mr-card,
#playoffs-modal .mr-card,
#playin-modal .mr-card,
#intl-modal .mr-card,
#contract-modal .mr-card,
#weekly-event-modal .mr-card {
  width: min(var(--rw-modal-max, 1100px), calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100dvh - 24px) !important;
  overflow: auto !important;
}

.full-modal-body,
.mr-card-body,
.mr-body {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.full-modal-header,
.mr-header,
.mr-card-header {
  min-width: 0;
}

/* P3F7F stack preservado/reforçado: Save/Load acima de gameplay, toast acima de modal. */
#saveload-modal.ca-wrap {
  z-index: 15000 !important;
  padding: clamp(10px, 2vw, 22px) !important;
}

#saveload-modal .ca-overlay {
  z-index: 0 !important;
}

#saveload-modal .ca-modal {
  z-index: 1 !important;
  width: min(1100px, calc(100vw - 24px)) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-height: calc(100dvh - 24px) !important;
  overflow: auto !important;
  padding: clamp(18px, 2.25vw, 32px) !important;
}

#toast,
.p3f7-action-pulse {
  z-index: 18000 !important;
  max-width: calc(100vw - 24px) !important;
}

/* Plano de Jogo / Round Prep: compactação de fundação, sem reorganizar o fluxo. */
#training-modal.round-prep-root {
  padding: clamp(8px, 1.6vw, 16px) !important;
  overflow: hidden !important;
}

#training-modal .round-prep-modal,
.round-prep-modal {
  width: min(1200px, calc(100vw - 20px)) !important;
  max-width: calc(100vw - 20px) !important;
  max-height: calc(100dvh - 20px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

.round-prep-head,
.round-prep-top-grid,
.round-prep-grid,
.round-prep-footer {
  min-width: 0 !important;
}

@media (max-width: 900px), (max-height: 740px) {
  .round-prep-footer {
    grid-template-columns: 1fr !important;
  }
  .round-prep-confirm {
    min-height: 54px !important;
  }
}

/* Champion Lab: listar preview não deve exigir zoom, e o CTA/fechar fica acessível. */
.rw-champion-lab-modal-root {
  z-index: 12000;
  padding: clamp(8px, 1.6vw, 16px) !important;
}

.rw-cl-modal {
  width: min(900px, calc(100vw - 20px)) !important;
  max-width: calc(100vw - 20px) !important;
  max-height: calc(100dvh - 20px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

.rw-cl-body,
.rw-cl-grid,
.rw-cl-panel,
.rw-cl-history,
.rw-cl-read,
.rw-cl-pickers {
  min-width: 0 !important;
}

@media (max-width: 720px), (max-height: 720px) {
  .rw-cl-body { padding: 14px !important; gap: 10px !important; }
  .rw-cl-header { grid-template-columns: 54px minmax(0,1fr) !important; gap: 10px !important; padding-right: 42px !important; }
  .rw-cl-header h2 { font-size: clamp(26px, 7vw, 34px) !important; }
  .rw-cl-seal { height: 50px !important; border-radius: 16px !important; }
  .rw-cl-grid { grid-template-columns: 1fr !important; }
  .rw-cl-metrics { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
}

/* Analista pré-draft/draft: painel compacto nunca deve cobrir o grid. */
.rw-da-panel,
.rw-da-panel * {
  min-width: 0 !important;
}

.rw-da-draft-slot {
  min-height: 0 !important;
  max-height: min(132px, 20dvh) !important;
  overflow: auto !important;
}

.rw-da-panel.draft {
  max-height: min(126px, 20dvh) !important;
  overflow: auto !important;
}

@media (max-width: 1366px), (max-height: 760px) {
  .rw-da-panel.draft .rw-da-lanes { display: none !important; }
  .rw-da-panel.draft .rw-da-summary { white-space: normal !important; }
  .rw-da-panel.draft .rw-da-chips { flex-wrap: wrap !important; }
}

/* Draft screen: mantém estrutura, só evita corte horizontal e reserva grid útil em notebook. */
#draft-screen-lolzeria,
#draft-screen-lolzeria * {
  box-sizing: border-box !important;
  min-width: 0;
}

#draft-screen-lolzeria {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
}

#draft-screen-lolzeria .dr-topbar,
#draft-screen-lolzeria .dr-layout,
#draft-screen-lolzeria .dr-center,
#draft-screen-lolzeria .dr-toolbar,
#draft-screen-lolzeria #dr-grid,
#draft-screen-lolzeria .dr-bottom {
  min-width: 0 !important;
  overflow-x: hidden !important;
}

#draft-screen-lolzeria #dr-grid {
  min-height: 0 !important;
  overflow-y: auto !important;
}

@media (max-width: 1366px), (max-height: 760px) {
  #draft-screen-lolzeria .dr-topbar {
    height: 68px !important;
    grid-template-columns: 210px minmax(0,1fr) 210px !important;
    padding: 0 14px !important;
    gap: 10px !important;
  }
  #draft-screen-lolzeria .dr-layout {
    grid-template-columns: 214px minmax(0,1fr) 214px !important;
  }
  #draft-screen-lolzeria .dr-center {
    grid-template-rows: auto auto minmax(0,1fr) minmax(92px, 16dvh) !important;
  }
  #draft-screen-lolzeria .dr-toolbar {
    padding: 7px 10px !important;
    gap: 6px !important;
  }
  #draft-screen-lolzeria .dr-search {
    width: min(170px, 28vw) !important;
    padding: 7px 10px !important;
  }
  #draft-screen-lolzeria .dr-filterbox button {
    padding: 6px 9px !important;
  }
  #draft-screen-lolzeria #dr-grid {
    padding: 10px !important;
  }
  #draft-screen-lolzeria .dr-grid-inner {
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)) !important;
    gap: 8px 7px !important;
  }
  #draft-screen-lolzeria .dr-champ {
    height: 94px !important;
  }
  #draft-screen-lolzeria .dr-champ .dr-img {
    height: 58px !important;
  }
  #draft-screen-lolzeria .dr-bottom {
    padding: 8px 10px !important;
    gap: 8px !important;
  }
  #draft-screen-lolzeria .dr-selected,
  #draft-screen-lolzeria .dr-compass {
    height: auto !important;
    min-height: 82px !important;
  }
}

@media (max-width: 900px) {
  #draft-screen-lolzeria .dr-topbar { grid-template-columns: 1fr !important; height: auto !important; padding: 8px 10px !important; }
  #draft-screen-lolzeria .dr-team-head.right { display: none !important; }
  #draft-screen-lolzeria .dr-layout { grid-template-columns: minmax(0,1fr) !important; }
  #draft-screen-lolzeria .dr-side { display: none !important; }
  #draft-screen-lolzeria .dr-bottom { grid-template-columns: 1fr !important; }
}

/* Match Report: corpo volta a ser rolável em telas baixas; footer/fechar permanecem acessíveis. */
#match-result-modal.match-report-modal {
  padding: clamp(8px, 1.4vw, 18px) !important;
  overflow: hidden !important;
}

.match-report-modal .mrv2-card {
  width: min(1420px, calc(100vw - 16px)) !important;
  max-width: calc(100vw - 16px) !important;
  max-height: calc(100dvh - 16px) !important;
  min-height: 0 !important;
}

.match-report-modal .mrv2-body {
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

.match-report-modal .mrv2-header,
.match-report-modal .mrv2-scoreboard,
.match-report-modal .mrv2-cause,
.match-report-modal .mrv2-grid,
.match-report-modal .mrv2-bottom-grid,
.match-report-modal .mrv2-draft-read,
.match-report-modal .mrv2-footer {
  min-width: 0 !important;
}

@media (max-width: 1366px), (max-height: 760px) {
  .match-report-modal .mrv2-header { padding: 12px 52px 10px 18px !important; }
  .match-report-modal .mrv2-body { padding: 10px 14px !important; }
  .match-report-modal .mrv2-footer { padding: 9px 14px 10px !important; }
  .match-report-modal .mrv2-event-list { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
  .match-report-modal .mrv2-grid { grid-template-columns: minmax(0,1fr) 300px !important; }
}

@media (max-width: 900px) {
  .match-report-modal .mrv2-header,
  .match-report-modal .mrv2-cause,
  .match-report-modal .mrv2-grid,
  .match-report-modal .mrv2-bottom-grid,
  .match-report-modal .mrv2-footer,
  .match-report-modal .mrv2-draft-read {
    grid-template-columns: 1fr !important;
  }
  .match-report-modal .mrv2-team.is-us { justify-content: flex-start !important; text-align: left !important; }
  .match-report-modal .mrv2-scoreboard { grid-template-columns: 1fr !important; }
}

/* Dashboard: só contenção responsiva, sem reorganização screen-by-screen. */
#screen-dashboard.dashboard-final.dashboard-v32,
#screen-dashboard.dashboard-final.dashboard-v32 .dash-main,
#screen-dashboard.dashboard-final.dashboard-v32 .rwdb-shell,
#screen-dashboard.dashboard-final.dashboard-v32 .rwdb-top,
#screen-dashboard.dashboard-final.dashboard-v32 .rwdb-grid,
#screen-dashboard.dashboard-final.dashboard-v32 .rwdb-card {
  max-width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 1280px), (max-height: 730px) {
  #screen-dashboard.dashboard-final.dashboard-v32 .rwdb-shell {
    padding: 10px !important;
    gap: 7px !important;
  }
  #screen-dashboard.dashboard-final.dashboard-v32 .rwdb-top,
  #screen-dashboard.dashboard-final.dashboard-v32 .rwdb-grid {
    gap: 7px !important;
  }
  #screen-dashboard.dashboard-final.dashboard-v32 .rwdb-card-head span {
    font-size: 12.5px !important;
  }
  #screen-dashboard.dashboard-final.dashboard-v32 .rwdb-match-actions button {
    min-width: 0 !important;
  }
}

/* Sanity mobile: não é layout mobile completo; só evita explosão horizontal. */
@media (max-width: 520px) {
  body { overflow-x: hidden !important; }
  .full-modal-box,
  #custom-confirm-modal .mr-card,
  #saveload-modal .ca-modal,
  .rw-cl-modal,
  .round-prep-modal,
  .match-report-modal .mrv2-card {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
  }
}
