/* ============================================================
   SALA DE SITUACAO
   ============================================================ */
.content-area:has(#view-situacao.active) {
  max-width: none;
  padding: 0;
}

#view-situacao {
  min-height: calc(100vh - var(--header-height));
  background:
    linear-gradient(105deg, rgba(5, 18, 32, 0.68) 0%, rgba(10, 34, 58, 0.46) 48%, rgba(10, 34, 58, 0.24) 100%),
    linear-gradient(180deg, rgba(5, 18, 32, 0.18) 0%, rgba(5, 18, 32, 0.34) 100%),
    url("../assets/bg-tcm-entrada.jpg") left top / cover no-repeat fixed;
  color: #e5edf7;
}

.situacao-shell { position: relative; padding: 1rem; display: flex; flex-direction: column; gap: 0.85rem; }
.situacao-admin-btn {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  z-index: 80;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 36px;
  padding: 0 0.8rem;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.12);
  color: #fff;
  font-size: 0.76rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(0,0,0,0.18);
  backdrop-filter: blur(14px);
}
.situacao-admin-btn:hover { background: rgba(255,255,255,0.18); }
.situacao-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 7.4rem 1rem 1rem;
  border: 1px solid rgba(148,163,184,0.22);
  border-radius: 10px;
  background: rgba(15, 35, 58, 0.78);
  box-shadow: 0 10px 26px rgba(0,0,0,0.18);
}
.situacao-brand { display: flex; align-items: center; gap: 0.85rem; min-width: 0; }
.situacao-tcm-logo {
  width: 74px;
  height: auto;
  object-fit: contain;
  flex-shrink: 0;
}
.situacao-kicker { color: #f2d184; font-size: 0.69rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0.2rem; }
.situacao-title { margin: 0; color: #fff; font-size: 1.32rem; line-height: 1.2; letter-spacing: 0; }
.situacao-subtitle { color: rgba(229,237,247,0.74); font-size: 0.82rem; line-height: 1.45; margin-top: 0.3rem; max-width: 760px; }
.situacao-clock { text-align: right; color: rgba(229,237,247,0.72); font-size: 0.78rem; }
.situacao-clock strong { display: block; color: #fff; font-size: 1rem; margin-bottom: 0.15rem; }
.situacao-filter { display: flex; align-items: center; gap: 0.5rem; justify-self: end; }
.situacao-filter label { color: rgba(229,237,247,0.64); font-size: 0.69rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }
.situacao-filter select {
  min-width: 220px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid rgba(148,163,184,0.26);
  background: rgba(8, 22, 38, 0.62);
  color: #fff;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 0 0.65rem;
}
.situacao-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.85rem; }
.situacao-kpi {
  position: relative;
  overflow: hidden;
  min-height: 102px;
  padding: 0.9rem;
  border: 1px solid rgba(148,163,184,0.2);
  border-radius: 10px;
  background: rgba(12, 31, 52, 0.68);
  box-shadow: 0 10px 26px rgba(0,0,0,0.22);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.situacao-kpi::after { display: none; }
.situacao-kpi-label { color: rgba(229,237,247,0.68); font-size: 0.69rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
.situacao-kpi-value { color: #fff; font-size: 2.3rem; font-weight: 850; line-height: 1.05; margin-top: 0.55rem; }
.situacao-kpi-note { color: rgba(229,237,247,0.68); font-size: 0.76rem; line-height: 1.35; margin-top: 0.45rem; }
.situacao-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr); gap: 0.85rem; }
.situacao-grid-single { grid-template-columns: 1fr; }
.situacao-panel {
  border: 1px solid rgba(148,163,184,0.2);
  border-radius: 10px;
  background: rgba(12, 31, 52, 0.68);
  box-shadow: 0 10px 26px rgba(0,0,0,0.22);
  padding: 1rem;
  min-width: 0;
}
.situacao-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.9rem; }
.situacao-panel-title { color: #fff; font-size: 0.95rem; font-weight: 800; margin: 0; }
.situacao-panel-sub { color: rgba(229,237,247,0.62); font-size: 0.74rem; line-height: 1.4; margin-top: 0.2rem; }
.situacao-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 0.55rem; border-radius: 999px; background: rgba(242,209,132,0.14); color: #f2d184; border: 1px solid rgba(242,209,132,0.24); font-size: 0.69rem; font-weight: 800; white-space: nowrap; }
.situacao-bars { display: grid; gap: 0.65rem; }
.situacao-bar-row { display: grid; grid-template-columns: 108px minmax(0,1fr) 42px; gap: 0.65rem; align-items: center; }
.situacao-bar-label { color: rgba(229,237,247,0.78); font-size: 0.76rem; font-weight: 700; }
.situacao-bar-track { height: 10px; border-radius: 999px; background: rgba(255,255,255,0.1); overflow: hidden; }
.situacao-bar-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #60a5fa, #f2d184); }
.situacao-bar-value { color: rgba(229,237,247,0.76); font-size: 0.76rem; text-align: right; font-weight: 750; }
.situacao-pipeline-panel .situacao-bars { gap: 0.95rem; padding-top: 0.2rem; }
.situacao-pipeline-panel .situacao-bar-row { min-height: 26px; }
.situacao-pipeline-panel .situacao-bar-track { height: 11px; }
.situacao-achados-chart { display:grid; gap:0.62rem; }
.situacao-achado-bar { display:grid; grid-template-columns:minmax(180px,0.42fr) minmax(0,1fr) 76px; gap:0.7rem; align-items:center; }
.situacao-achado-label { min-width:0; color:#fff; font-size:0.78rem; font-weight:760; line-height:1.28; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.situacao-achado-code { color:#f2d184; font-weight:900; margin-right:0.25rem; }
.situacao-achado-track { height:12px; border-radius:999px; background:rgba(255,255,255,0.1); overflow:hidden; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04); }
.situacao-achado-fill { height:100%; border-radius:inherit; background:linear-gradient(90deg,#60a5fa,#f2d184); }
.situacao-achado-value { color:#f2d184; font-size:0.8rem; font-weight:900; text-align:right; white-space:nowrap; }
.situacao-conformidade { display:grid; grid-template-columns: minmax(285px, 0.42fr) minmax(0, 0.58fr); gap:1.15rem; align-items:center; min-height:258px; }
.situacao-pie-card { position:relative; min-height:252px; display:grid; place-items:center; overflow:hidden; }
.situacao-pie-scene {
  position:relative;
  width:min(286px, 100%);
  aspect-ratio:1;
  transform-style:preserve-3d;
  filter: drop-shadow(0 28px 32px rgba(0,0,0,0.36));
  animation:situacaoPieSettle 780ms ease-out both;
}
.situacao-pie-base,
.situacao-pie-face {
  position:absolute;
  inset:9%;
  border-radius:50%;
  background:var(--pie-bg, conic-gradient(#60a5fa 0 100%));
  transform:perspective(700px) rotateX(58deg);
}
.situacao-pie-base {
  transform:perspective(700px) rotateX(58deg) translateY(18px);
  filter:brightness(0.46) saturate(0.96);
  box-shadow:0 18px 0 rgba(4,14,26,0.95);
}
.situacao-pie-face {
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.16),
    inset -18px -24px 38px rgba(0,0,0,0.28),
    inset 18px 18px 32px rgba(255,255,255,0.13);
}
.situacao-pie-face::before {
  content:'';
  position:absolute;
  inset:9%;
  border-radius:50%;
  background:linear-gradient(112deg, transparent 0 44%, rgba(255,255,255,0.11) 49%, transparent 54% 100%);
  transform:translateX(-38%) rotate(-12deg);
  animation:situacaoPieGleam 8s ease-in-out infinite;
  mix-blend-mode:screen;
  opacity:0;
  pointer-events:none;
}
.situacao-pie-face::after {
  content:'';
  position:absolute;
  inset:13%;
  border-radius:50%;
  background:linear-gradient(145deg, rgba(9,28,48,0.96), rgba(11,35,58,0.82));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08), 0 8px 20px rgba(0,0,0,0.24);
}
.situacao-pie-callout {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -34%);
  width:92px;
  min-height:56px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:transparent;
  border:0;
  box-shadow:none;
  text-align:center;
  pointer-events:none;
}
.situacao-pie-callout strong { color:#fff; font-size:1.5rem; line-height:1; font-weight:950; text-shadow:0 2px 10px rgba(0,0,0,0.65); }
.situacao-pie-callout span { color:#fca5a5; font-size:0.69rem; font-weight:850; margin-top:0.24rem; text-transform:uppercase; letter-spacing:0.04em; text-shadow:0 2px 10px rgba(0,0,0,0.65); }
.situacao-conformidade-summary { display:grid; gap:0.55rem; min-width:0; }
.situacao-conformidade-base { color:rgba(229,237,247,0.66); font-size:0.74rem; line-height:1.45; margin-bottom:0.2rem; }
.situacao-conformidade-item {
  display:grid;
  grid-template-columns:minmax(120px,1fr) auto auto;
  gap:0.65rem;
  align-items:center;
  padding:0.62rem 0.72rem;
  border-radius:9px;
  background:rgba(15,35,58,0.68);
  border:1px solid rgba(148,163,184,0.16);
}
.situacao-conformidade-item { animation:situacaoMetricFade 520ms ease-out both; }
.situacao-conformidade-item:nth-child(2) { animation-delay:80ms; }
.situacao-conformidade-item:nth-child(3) { animation-delay:150ms; }
.situacao-conformidade-item:nth-child(4) { animation-delay:220ms; }
.situacao-conformidade-item:nth-child(5) { animation-delay:290ms; }
.situacao-conformidade-label { display:flex; align-items:center; gap:0.45rem; min-width:0; color:#fff; font-size:0.78rem; font-weight:800; }
.situacao-conformidade-dot { width:10px; height:10px; border-radius:3px; flex:0 0 auto; background:var(--dot-color, #60a5fa); box-shadow:0 0 14px color-mix(in srgb, var(--dot-color, #60a5fa) 45%, transparent); }
.situacao-conformidade-count { color:rgba(229,237,247,0.62); font-size:0.72rem; font-weight:760; white-space:nowrap; }
.situacao-conformidade-percent { color:#f2d184; font-size:0.88rem; font-weight:950; text-align:right; white-space:nowrap; }
@keyframes situacaoPieSettle {
  from { opacity:0; transform:translateY(12px) scale(0.94); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes situacaoPieGleam {
  0%, 62% { transform:translateX(-34%) rotate(-12deg); opacity:0; }
  69% { opacity:0.55; }
  82%, 100% { transform:translateX(34%) rotate(-12deg); opacity:0; }
}
@keyframes situacaoMetricFade {
  from { opacity:0; transform:translateX(10px); }
  to { opacity:1; transform:translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .situacao-conformidade-item { animation:none !important; }
  .situacao-pie-scene { animation:situacaoPieSettle 420ms ease-out both; }
  .situacao-pie-face::before { animation:situacaoPieGleam 12s ease-in-out infinite; }
}
.situacao-severity-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.65rem; }
.situacao-severity { padding: 0.85rem; border-radius: 8px; background: rgba(15,35,58,0.72); border: 1px solid rgba(148,163,184,0.18); }
.situacao-severity strong { display:block; color:#fff; font-size:1.45rem; line-height:1; margin-bottom:0.45rem; }
.situacao-severity span { color: rgba(229,237,247,0.7); font-size:0.72rem; font-weight:800; text-transform:uppercase; letter-spacing:0.06em; }
.situacao-list { display: grid; gap: 0.58rem; }
.situacao-list-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0.75rem; align-items: center; padding: 0.75rem; border-radius: 8px; background: rgba(15,35,58,0.72); border: 1px solid rgba(148,163,184,0.18); }
.situacao-list-title { color: #fff; font-size: 0.82rem; font-weight: 750; overflow: hidden; line-height: 1.35; }
.situacao-list-sub { color: rgba(229,237,247,0.6); font-size: 0.72rem; margin-top: 0.18rem; overflow: hidden; line-height: 1.35; }
.situacao-score { color: #f2d184; font-size: 1rem; font-weight: 850; white-space: nowrap; }
.situacao-empty { padding: 1.25rem; border-radius: 14px; background: rgba(255,255,255,0.07); border: 1px dashed rgba(255,255,255,0.18); color: rgba(229,237,247,0.72); font-size: 0.84rem; line-height: 1.5; }
.situacao-photo-stage {
  position: relative;
  overflow: hidden;
  min-height: 330px;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(148,163,184,0.24);
  border-radius: 10px;
  background:
    radial-gradient(circle at 18% 0%, rgba(96,165,250,0.18), transparent 32%),
    linear-gradient(135deg, rgba(8,22,38,0.94), rgba(13,39,67,0.78));
  box-shadow: 0 14px 34px rgba(0,0,0,0.26);
  margin-bottom: 0.75rem;
}
.situacao-photo-slide {
  position: absolute;
  inset: 0;
  display: none;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.situacao-photo-slide.active { display: block; }
.situacao-photo-slide img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: rgba(0,0,0,0.18);
}
.situacao-photo-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: end;
  padding: 1rem;
  background: linear-gradient(180deg, transparent, rgba(5,18,32,0.9));
}
.situacao-photo-main-title { color: #fff; font-size: 0.88rem; font-weight: 850; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.situacao-photo-main-sub { color: rgba(229,237,247,0.68); font-size: 0.72rem; line-height: 1.35; margin-top: 0.18rem; }
.situacao-photo-count { color: #f2d184; font-size: 0.74rem; font-weight: 900; white-space: nowrap; }
.situacao-photo-dots { display: flex; flex-wrap: wrap; gap: 0.28rem; align-items: center; margin: 0 0 0.7rem; }
.situacao-photo-dot { width: 7px; height: 7px; border: 0; border-radius: 999px; background: rgba(229,237,247,0.22); padding: 0; cursor: pointer; }
.situacao-photo-dot.active { width: 22px; background: linear-gradient(90deg,#60a5fa,#f2d184); }
.situacao-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 0.6rem; }
.situacao-photo {
  border: 1px solid rgba(148,163,184,0.22);
  border-radius: 8px;
  overflow: hidden;
  background: rgba(15,35,58,0.78);
  padding: 0;
  text-align: left;
  cursor: pointer;
  color: inherit;
}
.situacao-photo img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; background: rgba(255,255,255,0.06); }
.situacao-photo-caption { padding: 0.45rem; color: rgba(229,237,247,0.72); font-size: 0.69rem; line-height: 1.25; min-height: 42px; }
.situacao-photo:hover { border-color: rgba(242,209,132,0.48); box-shadow: 0 0 0 1px rgba(242,209,132,0.12); }
.situacao-photo.active { border-color: rgba(242,209,132,0.72); box-shadow: 0 0 0 1px rgba(242,209,132,0.18); }
.situacao-question-showcase {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,0.22);
  border-radius: 12px;
  background:
    radial-gradient(circle at 12% 0%, rgba(96,165,250,0.22), transparent 28%),
    radial-gradient(circle at 90% 18%, rgba(242,209,132,0.16), transparent 30%),
    linear-gradient(135deg, rgba(8,22,38,0.9), rgba(13,39,67,0.78));
  box-shadow: 0 14px 34px rgba(0,0,0,0.26);
  padding: 1rem;
}
.situacao-question-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:0.9rem; }
.situacao-question-title { margin:0; color:#fff; font-size:1rem; font-weight:850; letter-spacing:0; }
.situacao-question-sub { margin-top:0.22rem; color:rgba(229,237,247,0.62); font-size:0.74rem; line-height:1.45; }
.situacao-question-controls { display:flex; align-items:center; gap:0.45rem; flex-wrap:wrap; justify-content:flex-end; }
.situacao-question-btn {
  width:30px;
  height:30px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,0.25);
  background:rgba(15,35,58,0.78);
  color:#fff;
  font-weight:850;
  cursor:pointer;
}
.situacao-question-btn:hover { border-color:rgba(242,209,132,0.42); color:#f2d184; }
.situacao-question-dots { display:flex; gap:0.28rem; align-items:center; }
.situacao-question-dot { width:7px; height:7px; border-radius:999px; background:rgba(229,237,247,0.22); border:0; padding:0; cursor:pointer; }
.situacao-question-dot.active { width:20px; background:linear-gradient(90deg,#60a5fa,#f2d184); }
.situacao-question-slide { display:none; grid-template-columns:minmax(220px,0.38fr) minmax(0,0.62fr); gap:0.9rem; align-items:stretch; }
.situacao-question-slide.active { display:grid; }
.situacao-question-summary {
  border-radius:10px;
  border:1px solid rgba(148,163,184,0.18);
  background:rgba(15,35,58,0.62);
  padding:0.9rem;
  min-width:0;
}
.situacao-question-kicker { color:#f2d184; font-size:0.69rem; font-weight:850; text-transform:uppercase; letter-spacing:0.08em; }
.situacao-question-section { color:#fff; font-size:1.18rem; font-weight:900; line-height:1.18; margin-top:0.35rem; }
.situacao-question-meta { color:rgba(229,237,247,0.62); font-size:0.74rem; line-height:1.4; margin-top:0.45rem; }
.situacao-question-gauge { margin-top:1rem; display:grid; grid-template-columns:88px minmax(0,1fr); gap:0.7rem; align-items:center; }
.situacao-question-ring {
  width:82px;
  height:82px;
  border-radius:50%;
  background:var(--ring-bg, conic-gradient(#60a5fa 0deg, rgba(255,255,255,0.12) 0));
  display:grid;
  place-items:center;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08);
}
.situacao-question-ring span {
  width:58px;
  height:58px;
  border-radius:50%;
  background:#0b223a;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:1rem;
  font-weight:900;
  line-height:1;
}
.situacao-question-ring span small { color:rgba(229,237,247,0.58); font-size:0.69rem; font-weight:800; margin-top:0.14rem; text-transform:uppercase; letter-spacing:0.04em; }
.situacao-question-pills { display:grid; gap:0.35rem; }
.situacao-question-pill { display:flex; justify-content:space-between; gap:0.6rem; color:rgba(229,237,247,0.7); font-size:0.72rem; }
.situacao-question-pill span { display:inline-flex; align-items:center; gap:0.35rem; }
.situacao-question-pill span::before { content:''; width:8px; height:8px; border-radius:3px; background:rgba(148,163,184,0.65); flex:0 0 auto; }
.situacao-question-pill.ok span::before { background:#60a5fa; }
.situacao-question-pill.bad span::before { background:#ef4444; }
.situacao-question-pill.na span::before { background:#94a3b8; }
.situacao-question-pill.pending span::before { background:#f2d184; }
.situacao-question-pill strong { color:#fff; }
.situacao-question-photo-note { margin-top:0.45rem; color:rgba(229,237,247,0.58); font-size:0.7rem; }
.situacao-question-list { display:grid; gap:0.62rem; }
.situacao-question-row {
  border-radius:10px;
  border:1px solid rgba(148,163,184,0.17);
  background:rgba(15,35,58,0.66);
  padding:0.72rem;
}
.situacao-question-row-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0.7rem; align-items:start; margin-bottom:0.55rem; }
.situacao-question-text { color:#fff; font-size:0.8rem; font-weight:760; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.situacao-question-code { color:#f2d184; font-weight:900; margin-right:0.25rem; }
.situacao-question-alert { color:#fca5a5; font-size:0.76rem; font-weight:900; white-space:nowrap; }
.situacao-stack { height:13px; border-radius:999px; overflow:hidden; display:flex; background:rgba(255,255,255,0.1); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04); }
.situacao-stack span { display:block; min-width:2px; height:100%; }
.situacao-stack .ok { background:#60a5fa; }
.situacao-stack .bad { background:#ef4444; }
.situacao-stack .na { background:rgba(148,163,184,0.65); }
.situacao-stack .pending { background:#f2d184; }
.situacao-question-row-foot { display:flex; gap:0.55rem; flex-wrap:wrap; margin-top:0.48rem; color:rgba(229,237,247,0.58); font-size:0.69rem; }
.situacao-question-legend { display:flex; gap:0.65rem; flex-wrap:wrap; margin-top:0.75rem; color:rgba(229,237,247,0.58); font-size:0.69rem; }
.situacao-question-legend span::before { content:''; display:inline-block; width:9px; height:9px; border-radius:3px; margin-right:0.3rem; vertical-align:-1px; }
.situacao-question-legend .ok::before { background:#60a5fa; }
.situacao-question-legend .bad::before { background:#ef4444; }
.situacao-question-legend .na::before { background:#94a3b8; }
.situacao-question-legend .pending::before { background:#f2d184; }

@media (max-width: 1080px) {
  .situacao-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .situacao-grid { grid-template-columns: 1fr; }
  .situacao-conformidade { grid-template-columns: minmax(190px, 0.34fr) minmax(0, 0.66fr); }
  .situacao-question-slide { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .situacao-shell { padding: 0.85rem; }
  .situacao-hero { grid-template-columns: 1fr; align-items: start; }
  .situacao-filter { justify-self: stretch; width: 100%; }
  .situacao-filter select { flex: 1; min-width: 0; }
  .situacao-clock { text-align: left; }
  .situacao-kpis, .situacao-severity-grid { grid-template-columns: 1fr; }
  .situacao-conformidade { grid-template-columns: 1fr; }
  .situacao-pie-card { min-height: 240px; }
  .situacao-pie-scene { width:250px; }
  .situacao-conformidade-item { grid-template-columns: 1fr auto; }
  .situacao-conformidade-count { grid-column: 1 / -1; }
  .situacao-bar-row { grid-template-columns: 86px minmax(0,1fr) 36px; }
  .situacao-achado-bar { grid-template-columns: 1fr 64px; gap: 0.4rem 0.65rem; }
  .situacao-achado-label { grid-column: 1 / -1; }
  .situacao-photo-stage { min-height: 240px; }
  .situacao-photo-overlay { grid-template-columns: 1fr; gap: 0.35rem; }
  .situacao-photo-count { justify-self: start; }
}

/* Entrada por PIN/cookie: mesma identidade visual da tela inicial. */
.login-screen {
  background:
    linear-gradient(105deg, rgba(6,22,39,0.96) 0%, rgba(13,43,73,0.88) 48%, rgba(13,43,73,0.42) 100%),
    url("../assets/bg-tcm-entrada.jpg") center center / cover no-repeat;
  padding: 1rem;
  box-sizing: border-box;
}

.login-screen .login-card {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.22);
  box-shadow: 0 24px 70px rgba(0,0,0,0.32);
  width: min(360px, calc(100vw - 2rem));
  box-sizing: border-box;
}
.login-screen .login-card *,
.login-screen .login-card *::before,
.login-screen .login-card *::after { box-sizing: border-box; }

.login-screen .login-logo {
  color: #fff;
  text-shadow: 0 10px 24px rgba(0,0,0,0.26);
}

.login-screen .login-sub {
  color: rgba(255,255,255,0.78);
}
