/* Escala de leitura: projetada para ser confortável com o navegador em 100%. */
html {
  font-size: clamp(18px, calc(13px + .55vw), 24px);
}

.topbar {
  height: 82px;
  padding-inline: clamp(20px, 3vw, 52px);
}

.brand img { width: 48px; height: 48px; }
.icon-button { width: 44px; height: 44px; }
.level-seal { width: 43px; height: 43px; }
main, .screen { min-height: calc(100vh - 82px); }

.mission-bar {
  min-height: 94px;
  padding-block: 14px;
}

.panel-title {
  min-height: 56px;
  padding: 14px 17px;
}

.investigation-grid {
  min-height: calc(100vh - 176px);
  grid-template-columns: minmax(280px, .78fr) minmax(560px, 1.55fr) minmax(350px, .92fr);
}

.suspect-board { padding: 14px; gap: 10px; }
.suspect-file {
  min-height: 104px;
  padding: 10px;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 12px;
}
.suspect-file img { width: 76px; height: 82px; }
.suspicion-meter { height: 5px; }

.suspect-map { margin: 14px; padding: 14px; }
.story-notes { margin: 0 14px 14px; padding: 16px; }

.objective-card {
  min-height: 94px;
  margin: 17px 17px 0;
  padding: 15px 17px;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 15px;
}
.objective-number { width: 44px; height: 44px; }

.stack-area { width: min(760px, calc(100% - 34px)); margin-top: 19px; }
.source-stack-tabs { gap: 9px; margin-bottom: 15px; }
.source-stack-tab { min-height: 62px; padding: 10px; }
.stack-shell { padding-top: 28px; }
.stack-visual { min-height: 280px; padding: 15px 18px 0; gap: 9px; }
.stack-item { min-height: 74px; padding: 10px 15px; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 13px; }
.evidence-symbol { width: 40px; height: 40px; }
.stack-base { height: 16px; }

.analysis-tray {
  width: min(760px, calc(100% - 34px));
  min-height: 76px;
  margin-top: 21px;
  padding: 13px 15px;
  grid-template-columns: 44px minmax(0, 1fr) auto;
}
.tray-icon { width: 39px; height: 39px; }

.timeline-board { width: calc(100% - 34px); margin: 20px 17px 0; padding: 16px; }
.timeline-track { grid-template-columns: repeat(9, minmax(96px, 1fr)); gap: 8px; }
.timeline-track::before { top: 31px; }
.timeline-slot { min-height: 112px; padding: 9px; }
.timeline-slot time { width: 50px; padding: 5px; }

.terminal { height: 235px; padding: 17px; }
.terminal p { margin-bottom: 10px; }
.command-line { padding: 15px 16px 8px; }
.command-line > div { min-height: 49px; grid-template-columns: 30px minmax(0, 1fr) auto; }
.command-line input { height: 47px; padding-inline: 8px; }
.command-line button { padding-inline: 13px; }
.evidence-detail { min-height: 175px; padding: 17px; }
.detail-card dl { gap: 10px; }
.detail-card dl div { padding: 10px; }
.operation-log { padding: 17px; }
.operation-log li { padding: 10px 3px; grid-template-columns: 51px minmax(0, 1fr); gap: 9px; }

.button { min-height: 52px; padding: 12px 20px; }
.evidence-dialog[open] {
  position: fixed;
  z-index: 60;
  top: 110px;
  right: 28vw;
  bottom: auto;
  left: 0;
  width: min(820px, calc(72vw - 48px));
  max-height: calc(100vh - 130px);
  margin: 0 auto;
}
.evidence-dialog .evidence-paper { max-height: calc(100vh - 130px); }
.suspect-dialog[open] {
  position: fixed;
  z-index: 65;
  top: 100px;
  right: 28vw;
  bottom: auto;
  left: 0;
  width: min(760px, calc(72vw - 48px));
  max-height: calc(100vh - 120px);
  margin: 0 auto;
}
.forensic-sidebar { position: relative; z-index: 70; }
.paper-close { width: 42px; height: 42px; }

.toast-region { width: min(470px, calc(100vw - 40px)); }
.toast { min-height: 70px; padding: 18px 18px 18px 57px; }

@media (max-width: 1400px) {
  html { font-size: 20px; }
  .investigation-grid { grid-template-columns: minmax(250px, .75fr) minmax(500px, 1.55fr) minmax(320px, .9fr); }
  .evidence-dialog[open] {
    right: 27vw;
    width: min(720px, calc(73vw - 36px));
  }
  .suspect-dialog[open] { right: 27vw; width: min(700px, calc(73vw - 36px)); }
}

@media (max-width: 1100px) {
  html { font-size: 18px; }
  .investigation-grid { grid-template-columns: 260px minmax(480px, 1fr); }
  .terminal { height: 230px; }
  .evidence-dialog[open] {
    top: 90px;
    right: 0;
    width: min(760px, calc(100vw - 32px));
    max-height: calc(100vh - 108px);
  }
  .evidence-dialog .evidence-paper { max-height: calc(100vh - 108px); }
  .suspect-dialog[open] { top: 90px; right: 0; width: min(700px, calc(100vw - 32px)); max-height: calc(100vh - 108px); }
}

@media (max-width: 780px) {
  html { font-size: 17px; }
  .topbar { height: 70px; }
  .site-home-link strong { display: none; }
  .site-home-link { padding-left: 12px; }
  main, .screen { min-height: calc(100vh - 70px); }
  .mission-bar { min-height: 82px; }
  .investigation-grid { grid-template-columns: 1fr; }
  .case-sidebar { grid-template-columns: 180px 1fr; }
  .stack-area, .analysis-tray { width: min(100% - 28px, 760px); }
  .timeline-board { width: calc(100% - 28px); margin-inline: 14px; }
}

@media (max-width: 520px) {
  html { font-size: 16px; }
  .topbar { height: 64px; }
  main, .screen { min-height: calc(100vh - 64px); }
  .brand img { width: 38px; height: 38px; }
  .icon-button { width: 40px; height: 40px; }
  .case-sidebar { grid-template-columns: 1fr; }
  .suspect-file { grid-template-columns: 68px minmax(0, 1fr); }
  .suspect-file img { width: 68px; height: 76px; }
  .objective-card { margin-inline: 12px; padding: 13px; }
  .stack-visual { min-height: 235px; padding-inline: 12px; }
  .stack-item { min-height: 66px; }
  .terminal { height: 220px; }
  .suspect-dossier-identity { grid-template-columns: 76px minmax(0, 1fr); }
  .suspect-dossier-identity > img { width: 76px; height: 88px; }
  .suspect-dossier-suspicion { grid-column: 1 / -1; text-align: left; }
  .suspect-profile-grid { grid-template-columns: 1fr; }
  .suspect-profile-grid section { border-right: 0; border-bottom: 1px solid var(--line); }
  .suspect-dossier > footer { align-items: stretch; flex-direction: column; }
}
