/* ==========================================================================
   NEXTFLOW ENTERPRISE - ESTILIZAÇÃO COMPLETA (style.css)
   ========================================================================== */

/* PALETA CORPORATIVA ZAAZ TELECOM E VARIÁVEIS DE TEMAS */
:root {
  --zaaz-blue: #0052CC;
  --zaaz-blue-hover: #003D99;
  --zaaz-accent: #0066FF;
  --success: #10B981;
  --danger: #EF4444;
  --warning: #FF9900;
}

/* TEMA CLARO ZAAZ */
.theme-light {
  --bg-main: #F1F5F9;
  --card-bg: #FFFFFF;
  --text-main: #1E293B;
  --text-muted: #64748B;
  --border-color: #E2E8F0;
  --input-bg: #F8FAFC;
}

/* TEMA ESCURO */
.theme-dark {
  --bg-main: #0F172A;
  --card-bg: #1E293B;
  --text-main: #F8FAFC;
  --text-muted: #94A3B8;
  --border-color: #334155;
  --input-bg: #0F172A;
}

/* A ZAAZ é a operação interna; NEXTFLOW continua como marca do produto. */
.theme-zaaz {
  --zaaz-blue: #43358D;
  --zaaz-blue-hover: #33266E;
  --zaaz-accent: #8B72D9;
  --bg-main: #F5F3FB;
  --card-bg: #FFFFFF;
  --text-main: #242042;
  --text-muted: #625F77;
  --border-color: #DCD7ED;
  --input-bg: #FAF9FD;
}

* {
  box-sizing: border-box;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  margin: 0;
  padding: 0;
}

/* TELA DE LOGIN */
.login-body {
  background: #020617;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px;
  overflow: hidden;
  position: relative;
}

.login-card {
  background: #FFFFFF;
  width: 100%;
  max-width: 420px;
  border-radius: 20px;
  padding: 36px 28px;
  box-shadow: 0 25px 50px -12px rgba(0, 82, 204, 0.3);
  position: relative;
  z-index: 10;
}

.brand-header { text-align: center; margin-bottom: 28px; }
.brand-header p { font-size: 12px; color: var(--text-muted); font-weight: 700; text-transform: uppercase; margin-top: 4px; }

.form-group { margin-bottom: 18px; }
label { display: block; font-size: 13px; font-weight: 600; color: var(--text-main); margin-bottom: 6px; }

input[type="text"], input[type="email"], input[type="password"], input[type="number"], select, textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid var(--border-color);
  border-radius: 12px;
  font-size: 14px;
  background-color: var(--input-bg);
  color: var(--text-main);
  transition: all 0.2s ease;
}

.code-textarea { min-height: 220px; font-family: monospace; font-size: 13px; }

input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--zaaz-blue);
  box-shadow: 0 0 0 4px rgba(0, 82, 204, 0.15);
}

.btn-primary {
  width: 100%;
  background-color: var(--zaaz-blue);
  color: #FFFFFF;
  border: none;
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 6px -1px rgba(0, 82, 204, 0.2);
}

.btn-primary:hover {
  background-color: var(--zaaz-blue-hover);
  transform: translateY(-1px);
}

.btn-sec {
  background-color: var(--border-color);
  color: var(--text-main);
  border: none;
  padding: 12px 18px;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  width: 100%;
}

.btn-sec-sm {
  background: var(--border-color);
  color: var(--text-main);
  border: none;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.error-box { display: none; background-color: #FEF2F2; color: var(--danger); border: 1px solid #FCA5A5; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; text-align: center; margin-top: 16px; }
.welcome-card { display: none; text-align: center; }

/* LAYOUT WIDESCREEN & BARRA SUPERIOR REDESENHADA */
.dashboard-body { background: var(--bg-main); color: var(--text-main); min-height: 100vh; display: block; padding-bottom: 70px; }
.widescreen-container { max-width: 1450px; width: 95%; margin: 25px auto; }

.top-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--card-bg);
  padding: 12px 28px;
  border-bottom: 2px solid var(--zaaz-blue);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  gap: 16px;
}

/* BRANDING ESQUERDA: ZAAZ EM CIMA E NEXTFLOW EM DESTAQUE ABAIXO */
.nav-brand {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.zaaz-title {
  font-size: 20px;
  font-weight: 900;
  color: var(--zaaz-blue);
  line-height: 1.1;
  letter-spacing: -0.5px;
}

.nextflow-highlight {
  font-size: 12px;
  font-weight: 800;
  color: var(--zaaz-accent);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-top: 2px;
}

/* MENU DE NAVEGAÇÃO MOVIDO PARA A ESQUERDA APÓS O TITULO */
.nav-menu {
  display: flex;
  gap: 8px;
  margin-left: 10px;
}

.nav-btn {
  background: var(--input-bg);
  border: 1px solid var(--border-color);
  padding: 8px 16px;
  border-radius: 10px;
  font-weight: 700;
  font-size: 13px;
  color: var(--text-main);
  cursor: pointer;
  transition: all 0.2s ease;
}

.nav-btn.active, .nav-btn:hover {
  background: var(--zaaz-blue);
  color: #FFFFFF;
  border-color: var(--zaaz-blue);
  box-shadow: 0 2px 8px rgba(0, 82, 204, 0.25);
}

/* GRUPO DA DIREITA (INLINE, SEM SOBREPOSIÇÃO DO RELÓGIO) */
.nav-right-group {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-left: auto;
}

.clock-box-inline {
  background: var(--input-bg);
  border: 1px solid var(--border-color);
  padding: 6px 14px;
  border-radius: 10px;
  text-align: center;
  font-weight: 800;
  color: var(--zaaz-blue);
  font-size: 14px;
  display: flex;
  flex-direction: column;
  white-space: nowrap;
}

.clock-date {
  font-size: 10px;
  color: var(--text-muted);
  font-weight: 600;
}

.user-badge-box {
  background: var(--input-bg);
  border: 1px solid var(--border-color);
  padding: 8px 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-main);
  white-space: nowrap;
}

.theme-select {
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 10px;
  cursor: pointer;
}

.btn-logout-sm {
  background: #FEF2F2;
  color: #EF4444;
  border: 1px solid #FCA5A5;
  padding: 8px 16px;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-logout-sm:hover {
  background: #FEE2E2;
}

.view-panel { background: var(--card-bg); border-radius: 20px; padding: 30px; border: 1px solid var(--border-color); }
.panel-header-action { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.panel-title { font-size: 22px; color: var(--zaaz-blue); }
.panel-desc { font-size: 13px; color: var(--text-muted); margin-bottom: 20px; }

.btn-export { background: #10B981; color: white; border: none; padding: 10px 18px; border-radius: 10px; font-weight: 700; font-size: 13px; cursor: pointer; }

/* KPIS E GRÁFICOS */
.kpi-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; margin-bottom: 24px; }
.kpi-card { background: var(--input-bg); border: 1px solid var(--border-color); padding: 22px; border-radius: 16px; text-align: center; }
.kpi-card.active-filter { border-color: var(--zaaz-blue); background: rgba(0, 82, 204, 0.05); }

.kpi-title { font-size: 12px; color: var(--text-muted); font-weight: 700; text-transform: uppercase; }
.kpi-value { font-size: 36px; font-weight: 800; margin-top: 6px; color: var(--zaaz-blue); }
.state-value { font-size: 26px; font-weight: 800; margin-top: 6px; }

.alert-text { color: var(--danger) !important; }
.warning-text { color: var(--warning) !important; }

.charts-grid-three { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; margin-bottom: 24px; }
.chart-card { background: var(--input-bg); border: 1px solid var(--border-color); border-radius: 16px; padding: 20px; }
.chart-card h5 { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; text-align: center; text-transform: uppercase; }

/* MODAL E LIGHTBOX */
.modal-widescreen-layout { max-width: 1000px !important; }
.modal-grid-sidebar { display: grid; grid-template-columns: 280px 1fr; gap: 20px; margin-top: 10px; }

.modal-sidebar-nav { background: var(--input-bg); padding: 16px; border-radius: 12px; border: 1px solid var(--border-color); }
.sidebar-steps-list { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }

.sidebar-step-item { background: var(--card-bg); padding: 10px; border-radius: 8px; border: 1px solid var(--border-color); font-size: 12px; font-weight: 700; color: var(--text-main); }

.timeline-container { display: flex; flex-direction: column; gap: 16px; margin-top: 10px; }
.timeline-item { background: var(--input-bg); border-left: 4px solid var(--zaaz-blue); padding: 16px; border-radius: 0 12px 12px 0; border: 1px solid var(--border-color); }
.timeline-header { display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; color: var(--zaaz-blue); margin-bottom: 8px; }

.timeline-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; margin-top: 10px; }
.timeline-photos img { width: 100%; height: 90px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border-color); cursor: pointer; transition: transform 0.2s; }
.timeline-photos img:hover { transform: scale(1.05); }

.lightbox-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.9); z-index: 2000; justify-content: center; align-items: center; }
.lightbox-overlay img { max-width: 90%; max-height: 90%; border-radius: 12px; border: 2px solid white; }
.lightbox-close { position: absolute; top: 20px; right: 30px; color: white; font-size: 32px; font-weight: 800; cursor: pointer; }

/* TÉCNICO DE CAMPO */
.tech-flow-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.active-incident-badge { background: rgba(0, 82, 204, 0.1); color: var(--zaaz-blue); padding: 6px 12px; border-radius: 8px; font-size: 12px; font-weight: 700; }

.step-indicator { display: flex; justify-content: space-between; margin-bottom: 24px; background-color: var(--input-bg); padding: 6px; border-radius: 12px; border: 1px solid var(--border-color); }
.step-number { flex: 1; text-align: center; padding: 8px 0; font-weight: 700; color: var(--text-muted); font-size: 12px; border-radius: 8px; }
.step-number.active { color: #FFFFFF; background-color: var(--zaaz-blue); }

.step { display: none; }
.step.active { display: block; }
.btn-step-group { display: flex; gap: 12px; margin-top: 16px; }

.preview-img { width: 100%; max-height: 180px; object-fit: cover; border-radius: 10px; margin-top: 8px; display: none; border: 1px solid var(--border-color); }

.incidents-grid-list { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.account-form { max-width: 480px; margin-top: 26px; }
.account-form .btn-primary { width: auto; }
.account-feedback { min-height: 20px; margin: 12px 0; font-size: 13px; font-weight: 600; color: var(--zaaz-blue); }
.account-hint { color: var(--text-muted); font-size: 12px; line-height: 1.5; margin-top: 18px; }
.registration-section[hidden] { display: none; }
.login-switch { display: block; margin: 16px auto 0; background: transparent; border: 0; color: #1454BD; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; text-decoration: underline; }
.registration-feedback { color: #175E49; font-size: 13px; line-height: 1.5; margin-top: 14px; }
.pending-count { display: inline-block; min-width: 20px; padding: 2px 6px; border-radius: 20px; background: #DC4D5F; color: #fff; font-size: 11px; }
.pending-count[hidden] { display: none; }
.approval-list { display: grid; gap: 12px; }
.approval-card { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 16px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--input-bg); }
.approval-card strong { min-width: 180px; }
.approval-card small { color: var(--text-muted); flex: 1 1 220px; overflow-wrap: anywhere; }
.approval-card select { width: auto; min-width: 110px; }
.approval-card .btn-primary { width: auto; }
.assignment-box { border-top: 1px solid var(--border-color); margin-top: 28px; padding-top: 24px; }
.assignment-search { display: flex; gap: 10px; max-width: 520px; margin: 12px 0 18px; }
.assignment-search input { flex: 1; min-width: 0; }
@media (max-width: 520px) { .assignment-search { flex-direction: column; } }
.supervisor-kpis { margin: 24px 0; }
.supervisor-card { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; text-align: left; color: var(--text-main); font: inherit; }
.supervisor-card small { color: var(--text-muted); }
.evidence-complete { color: #087F5B; font-weight: 700; font-size: 12px; }
.evidence-pending { color: #B45309; font-weight: 700; font-size: 12px; }
.report-filters { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px; margin: -8px 0 18px; background: var(--input-bg); border: 1px solid var(--border-color); border-radius: 12px; }
.report-filters label { display: grid; gap: 5px; min-width: 120px; color: var(--text-muted); font-size: 12px; font-weight: 700; }
.report-filters input, .report-filters select { min-height: 40px; }
.admin-edit[hidden] { display: none; }
.admin-edit { display: grid; gap: 10px; padding: 16px 0; }
.admin-edit label { display: grid; gap: 5px; font-size: 12px; font-weight: 700; }
.admin-edit textarea { min-height: 80px; }
#viewSac .search-box { display: flex; gap: 10px; margin: 26px 0 10px; }
#viewSac .search-box input { flex: 1; min-width: 0; }
@media (max-width: 520px) {
  #viewSac .search-box { flex-direction: column; }
  #viewSac .search-box .btn-sec-sm { min-height: 44px; }
}
.search-hint { color: var(--text-muted); font-size: 12px; line-height: 1.5; margin-bottom: 18px; }
.list-actions { display: flex; justify-content: center; padding: 22px 0 6px; }
.list-actions .btn-sec-sm { padding: 12px 20px; }
.incidente-card { background: var(--input-bg); border: 1px solid var(--border-color); border-radius: 14px; padding: 18px; transition: all 0.2s ease; cursor: pointer; }
.incidente-card:hover { border-color: var(--zaaz-blue); transform: translateY(-2px); }

.modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, 0.7); backdrop-filter: blur(4px); z-index: 1000; justify-content: center; align-items: center; padding: 20px; }
.modal-content { background: var(--card-bg); color: var(--text-main); width: 100%; max-width: 800px; max-height: 90vh; border-radius: 20px; overflow-y: auto; padding: 24px; }
.modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border-color); padding-bottom: 14px; margin-bottom: 16px; }
.modal-close { background: none; border: none; font-size: 20px; font-weight: 700; color: var(--text-muted); cursor: pointer; }

.info-details-box { background: var(--input-bg); padding: 14px; border-radius: 12px; border: 1px solid var(--border-color); font-size: 12px; line-height: 1.5; }

.app-footer { position: fixed; bottom: 0; left: 0; width: 100%; background-color: #020617; border-top: 1px solid #1E293B; color: #94A3B8; text-align: center; padding: 14px 0; font-size: 12px; z-index: 90; }
.app-footer strong { color: #38BDF8; }

@media (max-width: 1100px) {
  .top-nav { flex-wrap: wrap; }
  .nav-right-group { margin-left: 0; }
  .modal-grid-sidebar { grid-template-columns: 1fr; }
  .charts-grid-three { grid-template-columns: 1fr; }
}

/* Celulares: prioriza leitura e toque sem rolagem horizontal. */
@media (max-width: 700px) {
  .top-nav { padding: 12px 16px; gap: 12px; }
  .nav-brand { width: 100%; }
  .nav-menu { width: 100%; margin-left: 0; overflow-x: auto; padding-bottom: 4px; }
  .nav-btn { flex: 0 0 auto; min-height: 44px; }
  .nav-right-group { width: 100%; flex-wrap: wrap; gap: 8px; }
  .clock-box-inline { display: none; }
  .user-badge-box { max-width: 100%; white-space: normal; }
  .widescreen-container { width: calc(100% - 24px); margin: 12px auto; }
  .view-panel { padding: 16px; border-radius: 14px; }
  .panel-header-action, .tech-flow-header { flex-direction: column; align-items: stretch; gap: 12px; }
  .kpi-grid, .incidents-grid-list, .charts-grid-three { grid-template-columns: 1fr; gap: 12px; }
  .kpi-card { padding: 16px; }
  .timeline-header { flex-direction: column; gap: 4px; }
  .step-number { font-size: 10px; }
  .btn-step-group { flex-direction: column; }
  .app-footer { position: static; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
/* Ajuste compacto para celulares */
@media (max-width: 700px) {
  .top-nav { position: static; padding: 12px 16px; gap: 10px; }
  .zaaz-title { font-size: 18px; }
  .nextflow-highlight { font-size: 10px; }

  .nav-menu {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin-left: 0;
    gap: 8px;
    overflow: visible;
  }
  .nav-btn {
    min-width: 0;
    min-height: 44px;
    padding: 8px;
    font-size: 12px;
    white-space: normal;
  }

  .nav-right-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
    gap: 8px;
    margin-left: 0;
  }
  .theme-select { grid-column: 1 / -1; width: 100%; min-height: 42px; }
  .user-badge-box {
    min-width: 0;
    padding: 8px 10px;
    white-space: normal;
    font-size: 11px;
    align-self: center;
  }
  .btn-logout-sm { min-height: 42px; padding: 8px 12px; }
  .panel-title { font-size: 20px; line-height: 1.2; }

  .kpi-card {
    min-height: 84px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    text-align: left;
  }
  .kpi-title { max-width: 70%; font-size: 11px; line-height: 1.4; }
  .kpi-value, .state-value { flex: 0 0 auto; margin-top: 0; font-size: 30px; }
}

/* Login NEXTFLOW: fundo estático, formulário claro e operação identificada. */
.login-body {
  min-height: 100svh;
  overflow: auto;
  padding: 36px 24px 70px;
  background:
    radial-gradient(circle at 14% 22%, rgba(63, 102, 225, .27), transparent 29%),
    radial-gradient(circle at 85% 78%, rgba(110, 78, 181, .25), transparent 30%),
    #101b3f;
  color: #fff;
}
.login-body::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(90deg, #000, transparent 85%);
  pointer-events: none;
}
.login-layout { position: relative; z-index: 1; width: min(100%, 1050px); display: grid; grid-template-columns: 1fr 430px; gap: clamp(28px, 6vw, 90px); align-items: center; }
.login-intro { position: relative; min-height: 360px; display: flex; align-items: center; }
.login-intro-content { position: relative; z-index: 1; }
.fiber-art { position: absolute; inset: -22% -24% -15% -20%; width: 144%; height: 137%; pointer-events: none; opacity: .95; }
.login-intro h1 { font-size: clamp(44px, 6vw, 76px); letter-spacing: -.06em; line-height: 1; margin: 12px 0 22px; }
.login-eyebrow, .card-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.login-eyebrow { margin-top: 0; color: #A8BEFF; }
.login-lead { max-width: 480px; color: #D4DEF5; font-size: 18px; line-height: 1.55; }
.internal-tag { display: inline-flex; align-items: center; gap: 9px; margin-top: 32px; padding: 10px 13px; color: #F9E5B5; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; font-size: 12px; font-weight: 700; }
.tag-dot { width: 8px; height: 8px; border-radius: 50%; background: #F5C431; }
.login-card { max-width: none; padding: 38px; border: 1px solid rgba(255,255,255,.22); border-radius: 22px; box-shadow: 0 28px 70px rgba(3, 11, 42, .3); }
.card-eyebrow { color: #4A58AA; }
.login-card h2 { margin: 10px 0 6px; color: #16204A; font-size: 27px; letter-spacing: -.035em; }
.login-helper { color: #5F6881; font-size: 13px; margin-bottom: 27px; line-height: 1.5; }
.login-card .form-group { margin-bottom: 19px; }
.login-card label { color: #283454; font-size: 13px; margin-bottom: 8px; }
.login-card input { min-height: 48px; background: #fff; color: #16204A; caret-color: #1256C6; border: 1px solid #CBD3E4; border-radius: 10px; font-size: 14px; }
.login-card input::placeholder { color: #8994A9; }
.login-card input:focus { border-color: #1B57C7; box-shadow: 0 0 0 3px rgba(27, 87, 199, .13); }
.password-field { position: relative; }
.password-field input { padding-right: 87px; }
.password-toggle { position: absolute; right: 6px; top: 5px; min-width: 70px; height: 38px; border: 0; border-radius: 7px; background: transparent; color: #2854A3; font-size: 12px; font-weight: 700; cursor: pointer; }
.password-toggle:hover, .password-toggle:focus-visible { background: #EEF3FC; outline: none; }
.login-card .btn-primary { min-height: 48px; margin-top: 5px; background: #1256C6; }
.login-card .btn-primary:hover { background: #0B469F; }
.login-card .btn-primary:disabled { opacity: .65; cursor: wait; transform: none; }
.login-card .error-box { margin-top: 14px; }
.login-card .welcome-card { color: #16204A; }
.login-footer { position: absolute; bottom: 22px; z-index: 1; width: 100%; color: #B4C2E1; text-align: center; font-size: 11px; }
.login-footer span { margin: 0 7px; color: #F5C431; }
.theme-zaaz .top-nav { border-bottom-color: #F0BC27; }
.theme-zaaz .nav-btn.active, .theme-zaaz .nav-btn:hover { background: #43358D; border-color: #43358D; }
.theme-zaaz .btn-primary { background: #43358D; }
.theme-zaaz .btn-primary:hover { background: #33266E; }

@media (max-width: 760px) {
  .login-body { justify-content: flex-start; padding: 30px 18px 44px; }
  .login-layout { max-width: 450px; display: block; }
  .login-intro { margin-bottom: 24px; }
  .login-intro { min-height: 175px; }
  .fiber-art { inset: -10% -4%; width: 108%; height: 120%; opacity: .65; }
  .login-intro h1 { margin: 8px 0; font-size: 38px; }
  .login-eyebrow { margin-top: 0; }
  .login-lead { display: none; }
  .internal-tag { margin-top: 12px; padding: 7px 10px; }
  .login-card { padding: 26px 22px; }
  .login-footer { position: static; margin-top: 28px; line-height: 1.5; }
}

/* Painel de decisão: hierarquia clara, cartões leves e ações consistentes. */
.dashboard-body { background: #F4F6FA; }
.theme-dark.dashboard-body { background: #0F172A; }
.theme-zaaz.dashboard-body { background: #F5F3FB; }
.widescreen-container { max-width: 1320px; margin-top: 30px; }
.top-nav { border-bottom-width: 1px; border-color: var(--border-color); box-shadow: 0 4px 20px rgba(17, 31, 58, .045); }
.nav-brand { min-width: 170px; }
.zaaz-title { letter-spacing: -.06em; font-size: 23px; }
.nextflow-highlight { color: var(--text-muted); font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: none; }
.nav-btn { background: transparent; border-color: transparent; border-radius: 9px; }
.nav-btn.active { box-shadow: none; }
.nav-btn:hover { box-shadow: none; }
.view-panel { padding: clamp(20px, 3vw, 38px); border-radius: 22px; box-shadow: 0 12px 40px rgba(23, 40, 72, .045); }
.executive-hero { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 8px 0 30px; border-bottom: 1px solid var(--border-color); margin-bottom: 28px; }
.section-eyebrow { color: var(--zaaz-blue); font-size: 10px; font-weight: 800; letter-spacing: .14em; margin-bottom: 12px; }
.live-dot { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: #12AD78; box-shadow: 0 0 0 4px rgba(18,173,120,.12); }
.executive-hero .panel-title { color: var(--text-main); font-size: clamp(27px, 3vw, 36px); letter-spacing: -.045em; line-height: 1.1; }
.executive-hero .panel-desc { margin: 10px 0 0; font-size: 14px; line-height: 1.5; }
.btn-export { flex: 0 0 auto; background: var(--zaaz-blue); border-radius: 9px; padding: 12px 16px; box-shadow: 0 5px 12px rgba(13,73,153,.13); }
.btn-export:hover { background: var(--zaaz-blue-hover); }
.btn-export span { margin-left: 10px; }
.executive-kpis { margin-bottom: 34px; }
.executive-kpis .kpi-card { min-height: 172px; display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 24px; background: var(--card-bg); box-shadow: 0 4px 18px rgba(23,40,72,.035); }
.executive-kpis .kpi-card::before { content: ''; width: 28px; height: 3px; background: var(--zaaz-blue); border-radius: 3px; margin-bottom: 19px; }
.executive-kpis .kpi-card:nth-child(2)::before { background: #DC4D5F; }
.executive-kpis .kpi-card:nth-child(3)::before { background: #E19A17; }
.executive-kpis .kpi-title { font-size: 11px; letter-spacing: .065em; }
.executive-kpis .kpi-value { font-size: clamp(34px, 4vw, 48px); letter-spacing: -.05em; line-height: 1.12; margin: 7px 0; }
.kpi-foot { color: var(--text-muted); font-size: 11px; margin-top: auto; }
.section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 30px 0 16px; }
.section-heading .section-subtitle { margin: 0; font-size: 17px; letter-spacing: -.025em; }
.section-heading span { color: var(--text-muted); font-size: 12px; }
.state-grid { gap: 12px; }
.state-grid .kpi-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; background: var(--card-bg); cursor: pointer; padding: 18px 20px; }
.state-grid .kpi-card:hover, .state-grid .active-filter { border-color: var(--zaaz-blue); }
.state-grid .kpi-title { font-size: 11px; }
.state-grid .state-value { margin: 0; font-size: 25px; color: var(--zaaz-blue); }
.chart-card { background: var(--card-bg); min-width: 0; padding: 20px; }
.chart-card h5 { text-align: left; text-transform: none; color: var(--text-main); font-size: 13px; }
.chart-card canvas { max-height: 235px; }
.incidente-card { background: var(--card-bg); box-shadow: 0 3px 12px rgba(23,40,72,.035); }
.empty-state { grid-column: 1 / -1; text-align: center; color: var(--text-muted); padding: 35px 12px; border: 1px dashed var(--border-color); border-radius: 14px; }
.app-footer { position: static; margin-top: 40px; background: transparent; color: var(--text-muted); border: 0; }
.app-footer strong { color: var(--zaaz-blue); }
.theme-dark .chart-card, .theme-dark .executive-kpis .kpi-card, .theme-dark .state-grid .kpi-card, .theme-dark .incidente-card { background: var(--card-bg); }
@media (max-width: 900px) {
  .executive-hero { align-items: flex-start; }
  .kpi-grid { gap: 12px; }
}
@media (max-width: 700px) {
  .widescreen-container { margin-top: 12px; }
  .executive-hero { flex-direction: column; padding-bottom: 22px; gap: 18px; }
  .btn-export { width: 100%; }
  .executive-kpis { gap: 10px; }
  .executive-kpis .kpi-card { min-height: 102px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; padding: 16px; }
  .executive-kpis .kpi-card::before { display: none; }
  .executive-kpis .kpi-title { max-width: none; }
  .executive-kpis .kpi-value { grid-column: 2; grid-row: 1 / 3; margin: 0; font-size: 36px; }
  .kpi-foot { grid-column: 1; font-size: 10px; }
  .section-heading { display: block; margin-top: 26px; }
  .section-heading span { display: block; margin-top: 4px; }
  .state-grid .kpi-card { min-height: 70px; }
}

/* Navegação em duas linhas: identificação e conta em cima, áreas de trabalho abaixo. */
.top-nav {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 14px 20px;
  padding: 15px max(24px, calc((100vw - 1320px) / 2));
}
.nav-brand { grid-column: 1; grid-row: 1; }
.nav-right-group { grid-column: 2; grid-row: 1; gap: 10px; margin: 0; }
.nav-menu {
  grid-column: 1 / -1;
  grid-row: 2;
  display: flex;
  gap: 5px;
  margin: 0;
  padding: 9px 0 0;
  border-top: 1px solid var(--border-color);
  overflow-x: auto;
  scrollbar-width: thin;
}
.nav-btn { flex: 0 0 auto; padding: 10px 14px; white-space: nowrap; }
.nav-btn.active { background: var(--zaaz-blue); color: #fff; }
.user-badge-box { max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.clock-box-inline { padding: 5px 10px; }

/* Painel de reunião: leitura da esquerda para a direita, com resumo antes dos detalhes. */
.executive-hero { margin-bottom: 20px; }
.hero-meta { display: grid; gap: 7px; justify-items: end; flex: 0 0 auto; color: var(--text-muted); font-size: 12px; }
.hero-meta span:last-child { color: var(--zaaz-blue); font-weight: 800; }
.executive-section-label { display: flex; align-items: baseline; gap: 15px; margin: 30px 0 12px; }
.executive-section-label span { color: var(--zaaz-blue); font-size: 10px; font-weight: 800; letter-spacing: .12em; white-space: nowrap; }
.executive-section-label strong { color: var(--text-muted); font-size: 12px; font-weight: 600; }
.executive-summary { padding: 16px 20px; border: 1px solid var(--border-color); border-left: 4px solid var(--zaaz-blue); border-radius: 12px; background: var(--input-bg); margin-bottom: 16px; }
.executive-summary p { font-size: 14px; line-height: 1.55; font-weight: 600; }
.supervisor-notice { background: var(--input-bg); border-left: 4px solid #E19A17; padding: 14px 16px; border-radius: 10px; color: var(--text-main); font-size: 13px; line-height: 1.5; margin: 14px 0; }
.supervisor-notice[hidden] { display: none; }
.executive-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.executive-kpis .kpi-card { min-width: 0; min-height: 155px; padding: 20px; }
.executive-kpis .kpi-card::before { margin-bottom: 16px; }
.executive-kpis .kpi-value { font-size: clamp(30px, 3vw, 43px); }
.executive-kpis .kpi-card:nth-child(4)::before { background: #7659BF; }
.evidence-text { color: #7659BF !important; }
.state-grid { margin-bottom: 14px; }
.state-grid .kpi-card { min-width: 0; }
.report-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin: 8px 0 16px; }
.report-toolbar .section-subtitle { font-size: 20px; }
.report-toolbar p { color: var(--text-muted); font-size: 12px; margin-top: 5px; }
.report-filters { margin: 0 0 18px; }
.chart-card { min-height: 290px; }
.chart-card canvas { max-height: 225px; }
#viewGerente .incidents-grid-list { gap: 12px; }
#viewGerente .incidente-card { border-left: 3px solid var(--zaaz-blue); }

@media (max-width: 1080px) {
  .top-nav { padding: 14px 20px; }
  .clock-box-inline { display: none; }
  .executive-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .top-nav { grid-template-columns: 1fr; grid-template-rows: auto auto auto; gap: 10px; padding: 13px 16px; }
  .nav-brand { grid-column: 1; grid-row: 1; }
  .nav-right-group { grid-column: 1; grid-row: 2; width: 100%; flex-wrap: nowrap; }
  .nav-menu { grid-column: 1; grid-row: 3; width: 100%; padding-top: 10px; }
  .nav-btn { min-height: 42px; }
  .theme-select { min-width: 0; }
  .user-badge-box { flex: 1; min-width: 0; white-space: nowrap; }
  .executive-hero { gap: 10px; }
  .hero-meta { justify-items: start; }
  .executive-section-label { margin-top: 24px; gap: 10px; }
  .executive-section-label strong { font-size: 11px; }
  .executive-summary { padding: 14px; }
  .executive-kpis { grid-template-columns: 1fr 1fr; }
  .executive-kpis .kpi-card { display: flex; min-height: 130px; align-items: flex-start; padding: 15px; }
  .executive-kpis .kpi-title { font-size: 10px; }
  .executive-kpis .kpi-value { font-size: 33px; margin: 8px 0; }
  .kpi-foot { font-size: 10px; }
  .report-toolbar { align-items: stretch; flex-direction: column; }
  .report-toolbar .btn-export { width: 100%; }
}

/* NEXTFLOW · refinamento de navegação e formulários */
.nav-brand { position: relative; min-width: 190px; }
.brand-fiber { display:block; width: 128px; height: 3px; margin: 5px 0 5px; border-radius: 8px; background: linear-gradient(90deg,#0751bc 0%,#43a8ea 50%,#9ee8ff 85%,transparent); position:relative; box-shadow:0 0 8px rgba(29,145,233,.28); }
.brand-fiber::after { content:''; position:absolute; width:6px; height:6px; top:-1.5px; left:120px; border-radius:50%; background:#d9f8ff; box-shadow:0 0 8px 3px #53d5ff; animation:fiberPulse 3.4s ease-in-out infinite; }
@keyframes fiberPulse { 50% { opacity:.45; transform:translateX(-8px); } }
@media (prefers-reduced-motion:reduce) { .brand-fiber::after { animation:none; } }
.nav-right-group { min-width:0; }
.account-menu { position:relative; min-width:0; width:280px; max-width:100%; flex:1 1 280px; z-index:30; }
.account-menu summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:14px; background:var(--card-bg); border:1px solid var(--border-color); color:var(--text-main); padding:11px 14px; border-radius:14px; font-weight:700; box-shadow:0 3px 12px rgba(12,39,80,.04); }
.account-menu summary::-webkit-details-marker { display:none; }
.account-menu summary:hover, .account-menu[open] summary { border-color:var(--zaaz-blue); }
#userBadge { overflow-wrap:anywhere; line-height:1.4; }
.account-chevron { flex:0 0 auto; font-size:20px; }
.account-dropdown { position:absolute; right:0; top:calc(100% + 8px); width:max(100%,235px); padding:10px; background:var(--card-bg); border:1px solid var(--border-color); box-shadow:0 18px 50px rgba(12,39,80,.17); border-radius:16px; }
.account-dropdown button { display:block; width:100%; text-align:left; border:0; border-radius:10px; background:transparent; color:var(--text-main); padding:11px 12px; cursor:pointer; font-size:13px; font-weight:600; }
.account-dropdown button:hover { background:var(--input-bg); }
.account-dropdown label { margin:10px 12px 7px; }
.account-dropdown .theme-select { display:block; width:100%; min-width:0; border-radius:10px; }
.account-dropdown .menu-logout { color:var(--danger); margin-top:8px; border-top:1px solid var(--border-color); border-radius:0; }
.dashboard-body .form-group input:not([type=file]):not([type=checkbox]), .dashboard-body .form-group select, .dashboard-body .form-group textarea,
.dashboard-body .assignment-search input, .dashboard-body .search-box input, .dashboard-body .report-filters input, .dashboard-body .report-filters select,
.dashboard-body #formAdminEdicao input, .dashboard-body #formAdminEdicao select, .dashboard-body #formAdminEdicao textarea { border-radius:12px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-main); padding:12px 14px; min-height:45px; width:100%; }
.dashboard-body :is(input,select,textarea,button):focus-visible { outline:3px solid rgba(26,137,231,.35); outline-offset:2px; }
.dashboard-body .report-filters, .dashboard-body .assignment-box, .dashboard-body #formNocIncidente, .dashboard-body .search-box { border-radius:20px; }
.dashboard-body .report-filters { padding:18px; box-shadow:0 5px 24px rgba(12,39,80,.04); }
.dashboard-body .field-card { background:var(--card-bg); border:1px solid var(--border-color); border-radius:18px; padding:18px; margin:14px 0; box-shadow:0 8px 25px rgba(12,39,80,.035); }
.dashboard-body .field-card h5 { margin-bottom:15px; }
.dashboard-body .field-card .btn-sec-sm { margin:9px 0 17px; }
.dashboard-body .field-card .preview-img { max-height:170px; }
.dashboard-body .project-box { display:flex; flex-wrap:wrap; align-items:center; gap:14px; border-top:1px solid var(--border-color); padding:12px 0; }
.dashboard-body .project-box img { width:96px; height:75px; object-fit:cover; border-radius:9px; cursor:pointer; }
.dashboard-body .box-evidence label { margin-top:10px; }
.dashboard-body .step { background:var(--card-bg); border:1px solid var(--border-color); border-radius:20px; padding:clamp(18px,3vw,28px); box-shadow:0 10px 30px rgba(12,39,80,.05); }
.dashboard-body .step-indicator { border-radius:18px; padding:7px; gap:5px; }
.dashboard-body .step-number { border-radius:12px; }
@media (max-width: 700px) { .account-menu { width:100%; } .account-dropdown { width:100%; } .nav-right-group { align-items:stretch; } }

/* Campo: ações e evidências acessíveis no celular */
.dashboard-body .box-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.dashboard-body .box-heading h5 { margin:0; font-size:16px; }
.dashboard-body .remove-box { border:1px solid var(--border-color); background:var(--input-bg); color:var(--danger); border-radius:10px; padding:10px 14px; font-weight:700; cursor:pointer; }
.dashboard-body .remove-box[hidden], .dashboard-body .btn-add-box[hidden] { display:none; }
.dashboard-body .box-evidence { padding:20px; }
.dashboard-body .box-evidence .box-gps { width:100%; font-variant-numeric:tabular-nums; }
.dashboard-body .box-evidence .btn-capture { width:100%; min-height:48px; margin:10px 0 20px; text-align:center; }
.dashboard-body .box-evidence input[type=file] { display:block; width:100%; padding:12px; border:1px dashed var(--border-color); border-radius:12px; background:var(--input-bg); color:var(--text-main); font-size:13px; }
.dashboard-body .box-evidence input[type=file]::file-selector-button { display:block; width:100%; margin:0 0 8px; border:0; border-radius:9px; padding:11px; background:var(--zaaz-blue); color:white; font-weight:700; font-family:inherit; }
.dashboard-body .box-evidence .preview-img { display:none; width:100%; height:auto; max-height:220px; object-fit:contain; margin-top:12px; border-radius:12px; }
.dashboard-body .box-evidence.invalid-box { border:2px solid var(--danger); }
.dashboard-body .field-error { margin:14px 0; border-radius:12px; padding:14px; background:#FEE2E2; color:#991B1B; font-size:14px; line-height:1.5; font-weight:700; }
.dashboard-body .field-error[hidden] { display:none; }
.dashboard-body .btn-add-box { width:100%; min-height:48px; margin:8px 0 20px; border-radius:12px; }
.dashboard-body .step-sent::after { content:' ✓'; color:#17A877; }
@media (max-width:700px) {
  .dashboard-body #techFormArea .step { padding:18px 16px; }
  .dashboard-body #techFormArea .btn-step-group { display:grid; grid-template-columns:1fr; gap:10px; }
  .dashboard-body #techFormArea .btn-step-group button { width:100%; min-height:50px; border-radius:12px; font-size:14px; }
  .dashboard-body #techFormArea .btn-step-group .btn-primary { order:1; }
  .dashboard-body #techFormArea .btn-step-group .btn-sec-sm { order:2; }
  .dashboard-body #techFormArea .box-evidence { padding:16px; }
}

/* Atendimento técnico: controles proporcionais e organização para campo */
.dashboard-body #techFormArea { max-width:860px; margin:0 auto; }
.dashboard-body #techFormArea .step h4 { font-size:19px; margin-bottom:18px; }
.dashboard-body #techFormArea .form-group { margin-bottom:20px; }
.dashboard-body #techFormArea input:not([type=file]), .dashboard-body #techFormArea select, .dashboard-body #techFormArea textarea { font-size:15px; min-height:44px; padding:11px 13px; border-radius:11px; }
.dashboard-body #techFormArea textarea { min-height:100px; line-height:1.5; }
.dashboard-body #techFormArea small { display:block; margin-top:7px; color:var(--text-muted); line-height:1.5; }
.dashboard-body #techFormArea .btn-sec-sm, .dashboard-body #techFormArea .btn-primary { width:auto; min-height:42px; padding:10px 17px; border-radius:11px; font-size:13px; }
.dashboard-body #techFormArea .btn-step-group { display:flex; justify-content:flex-end; align-items:center; gap:10px; border-top:1px solid var(--border-color); padding-top:18px; }
.dashboard-body #techFormArea .btn-capture { display:inline-flex; width:auto; margin:8px 0 14px; }
.dashboard-body #techFormArea .btn-add-box { display:inline-flex; width:auto; margin:0 0 18px; }
.dashboard-body #techFormArea input[type=file] { width:100%; padding:10px; border:1px dashed var(--border-color); border-radius:12px; background:var(--input-bg); color:var(--text-main); font-size:13px; }
.dashboard-body #techFormArea input[type=file]::file-selector-button { display:inline-block; width:auto; min-height:38px; margin:0 10px 0 0; padding:8px 14px; border:0; border-radius:9px; background:var(--zaaz-blue); color:white; font-weight:600; font-family:inherit; }
.dashboard-body #techFormArea .preview-img { max-width:100%; width:auto; max-height:180px; object-fit:contain; margin:12px auto 0; border:1px solid var(--border-color); border-radius:10px; }
.dashboard-body #techFormArea .box-evidence { padding:18px; }
.dashboard-body #techFormArea .box-heading .remove-box { min-height:36px; padding:7px 11px; font-size:12px; }
.dashboard-body #techFormArea .tech-flow-header .btn-sec-sm { padding:8px 12px; }
.dashboard-body #techFormArea .step-indicator { margin-bottom:12px; }
.dashboard-body #techFormArea #techLocalStatus { background:var(--input-bg); border-radius:12px; padding:12px 14px; font-size:13px; }
@media (max-width:600px) {
  .dashboard-body #techFormArea .step { padding:18px 14px; }
  .dashboard-body #techFormArea .step h4 { font-size:17px; }
  .dashboard-body #techFormArea input:not([type=file]), .dashboard-body #techFormArea select, .dashboard-body #techFormArea textarea { font-size:16px; }
  .dashboard-body #techFormArea .btn-step-group { display:grid; grid-template-columns:auto 1fr; }
  .dashboard-body #techFormArea .btn-step-group .btn-sec-sm { order:0; width:auto; }
  .dashboard-body #techFormArea .btn-step-group .btn-primary { order:1; width:100%; min-height:46px; }
  .dashboard-body #techFormArea .box-evidence { padding:14px; }
  .dashboard-body #techFormArea .tech-flow-header { flex-direction:row; flex-wrap:wrap; align-items:center; }
}

/* Projetos: identificação e coordenadas legíveis */
.dashboard-body #projetosResultados .project-incident-title { font-size:clamp(23px,2.2vw,30px); line-height:1.25; color:var(--zaaz-blue); margin-bottom:8px; overflow-wrap:anywhere; }
.dashboard-body #projetosResultados .project-incident-meta { color:var(--text-muted); font-size:14px; font-weight:600; margin-bottom:16px; }
.dashboard-body #projetosResultados .field-card > p { line-height:1.6; margin-bottom:10px; }
.dashboard-body #projetosResultados .project-box { font-size:15px; line-height:1.6; gap:18px; padding:16px 0; }
.dashboard-body #projetosResultados .project-box span { overflow-wrap:anywhere; }
.dashboard-body #projetosResultados .project-box img { width:140px; height:105px; }

/* Projetos segue o padrão de lista e consulta dos demais IDs. */
.dashboard-body .project-list-card strong { color:var(--zaaz-blue); font-size:16px; }
.dashboard-body .project-details { font-size:14px; line-height:1.6; }
.dashboard-body .project-details > p { margin-bottom:14px; white-space:pre-wrap; overflow-wrap:anywhere; }
.dashboard-body .project-details .project-box { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:16px 0; border-top:1px solid var(--border-color); }
.dashboard-body .project-details .project-box strong { font-size:14px; overflow-wrap:anywhere; }
.dashboard-body .project-details .project-box img { width:160px; height:120px; object-fit:cover; border-radius:10px; cursor:pointer; }

/* Apresentação: controles com espaço próprio e movimento discreto. */
.dashboard-body :is(.btn-primary,.btn-sec,.btn-sec-sm,.btn-export,.nav-btn,.incidente-card) {
  position:relative; max-width:100%; white-space:normal; overflow-wrap:anywhere;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease;
}
.dashboard-body :is(.btn-primary,.btn-sec,.btn-sec-sm,.btn-export,.nav-btn,.incidente-card):hover { transform:none; }
.dashboard-body button:disabled { opacity:.6; cursor:wait; box-shadow:none; }
.dashboard-body .btn-export { display:inline-flex; align-items:center; justify-content:center; margin-bottom:20px; min-height:44px; line-height:1.4; }
.dashboard-body #techFormArea select + .btn-sec-sm { display:flex; margin:14px 0 4px; }
.dashboard-body .btn-step-group { flex-wrap:wrap; }
.dashboard-body .account-chevron { width:24px; height:24px; display:grid; place-items:center; line-height:1; transition:transform .22s ease; transform-origin:center; }
.dashboard-body .account-menu[open] .account-chevron { transform:rotate(180deg); }
.dashboard-body .account-menu summary:active { background:var(--input-bg); }
.dashboard-body .account-menu[open] .account-dropdown { animation:menuReveal .18s ease-out; }
@keyframes menuReveal { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
.dashboard-body .view-panel { animation:panelReveal .2s ease-out; }
@keyframes panelReveal { from { opacity:.65; } to { opacity:1; } }
.dashboard-body .project-treatment { margin-top:24px; padding:20px; }
.dashboard-body .project-treatment h4 { margin-bottom:18px; }
.dashboard-body .project-treatment .project-check { display:flex; align-items:flex-start; gap:12px; margin:18px 0; line-height:1.6; }
.dashboard-body .project-check input[type=checkbox] { appearance:auto; width:20px; height:20px; min-width:20px; margin:3px 0 0; padding:0; accent-color:var(--zaaz-blue); }
.dashboard-body .project-audit { color:var(--text-muted); font-size:13px; margin:12px 0 18px; }
.dashboard-body .project-treatment .btn-primary { width:auto; min-height:44px; }
.dashboard-body .live-status { display:block; color:var(--success); font-size:12px; font-weight:700; padding-bottom:12px; }
@media(max-width:600px) {
  .dashboard-body .project-treatment { padding:16px; }
  .dashboard-body .project-treatment .btn-primary { width:100%; }
  .dashboard-body .account-dropdown { max-height:70dvh; overflow-y:auto; }
}
@media(prefers-reduced-motion:reduce) { .dashboard-body .account-chevron,.dashboard-body .account-menu[open] .account-dropdown,.dashboard-body .view-panel { animation:none; transition:none; } }

/* Evidências de campo: seleção múltipla ou adição de uma foto por vez. */
.photo-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-top:10px; }
.photo-gallery figure { min-width:0; margin:0; border:1px solid var(--border-color); border-radius:14px; padding:8px; background:var(--input-bg); }
.photo-gallery img { display:block; width:100%; height:145px; object-fit:cover; border-radius:9px; }
.photo-gallery button { width:100%; margin-top:8px; min-height:44px; }
.photo-gallery > p { grid-column:1/-1; }
#techFormFlow input[type=file] { width:100%; min-width:0; }
#techFormFlow input[type=datetime-local] { width:100%; min-width:0; }
#techFormFlow .field-card + .btn-step-group { margin-top:16px; }

/* Supervisão e evidências: disposição comum no sistema e no laboratório. */
[hidden] { display:none !important; }
.dashboard-body #techFormArea .btn-step-group { display:flex; justify-content:center; }
.dashboard-body #techFormArea .btn-step-group .btn-primary { width:min(100%,360px); min-height:48px; }
.dashboard-body #techFormFlow input[type=datetime-local] { padding:12px 14px; min-height:48px; border:1px solid var(--border-color); border-radius:12px; background:var(--input-bg,var(--input-bg)); color:var(--text-main); font:inherit; color-scheme:light; }
.theme-dark #techFormFlow input[type=datetime-local] { color-scheme:dark; }
.status-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 18px; }
.status-tabs button { border-radius:999px; padding:11px 20px; }
.status-tabs .active { background:var(--zaaz-blue); color:white; }
.team-panel { border:1px solid var(--border-color); border-radius:18px; margin:22px 0; background:var(--card-bg); }
.team-panel summary { padding:18px; font-weight:700; cursor:pointer; }
.team-panel-body { padding:0 18px 18px; display:grid; gap:14px; }
.team-roster { display:grid; gap:10px; }
.team-member { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:12px; background:var(--input-bg); border-radius:12px; }
.team-panel select,.supervisor-card select { max-width:100%; min-width:0; padding:12px; border:1px solid var(--border-color); border-radius:12px; color:var(--text-main); background:var(--card-bg); }
.incident-open { display:flex; flex-direction:column; align-items:flex-start; gap:10px; width:100%; padding:0; border:0; background:none; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.supervisor-card .assignment-search { display:grid; grid-template-columns:1fr; gap:10px; margin-top:14px; border-top:1px solid var(--border-color); padding-top:14px; }
.charts-grid-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:20px 0; }
.evidence-gallery { display:grid !important; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:12px; width:100%; align-items:start; }
.evidence-gallery figure { margin:0; min-width:0; }
.evidence-gallery figcaption { font-size:12px; line-height:1.4; margin-top:7px; color:var(--text-muted); overflow-wrap:anywhere; }
.evidence-thumbnail { padding:0; border:1px solid var(--border-color); border-radius:12px; overflow:hidden; width:100%; display:block; background:var(--input-bg); cursor:zoom-in; }
.dashboard-body .evidence-thumbnail img { display:block; width:100% !important; height:120px !important; object-fit:cover; border-radius:0; }
.evidence-gallery .photo-retention-note { grid-column:1/-1; }
.dashboard-body .project-details .project-box { display:flex; flex-direction:column; align-items:stretch; padding:18px; border:1px solid var(--border-color); border-radius:16px; margin:14px 0; }
.photo-viewer-open { overflow:hidden; }
.photo-viewer { position:fixed; inset:0; z-index:10000; background:rgba(9,16,29,.97); color:white; display:grid; grid-template-rows:auto minmax(0,1fr) auto; padding:16px; gap:12px; }
.photo-viewer-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.photo-viewer-caption { flex:1 1 140px; font-size:14px; }
.photo-viewer button { min-width:44px; min-height:44px; padding:8px 14px; border:1px solid #526178; border-radius:12px; color:white; background:#24324a; font:inherit; cursor:pointer; }
.photo-viewer button:disabled { opacity:.4; cursor:default; }
.photo-viewer-stage { overflow:auto; display:flex; align-items:center; justify-content:center; min-height:0; touch-action:pan-x pan-y pinch-zoom; }
.photo-viewer-stage img { display:block; max-width:100%; max-height:100%; object-fit:contain; }
.photo-viewer-zoom .photo-viewer-stage { display:block; }
.photo-viewer-zoom .photo-viewer-stage img { max-width:none; max-height:none; width:auto; min-width:100%; }
.photo-viewer-navigation { display:flex; align-items:center; justify-content:center; gap:20px; }
#diretoriaMais,#supervisorMais { display:block; margin:18px auto 0; }
@media(max-width:640px) {
 .charts-grid-two { grid-template-columns:1fr; }
 .dashboard-body #techFormArea .btn-step-group { display:flex; }
 .evidence-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .photo-viewer { padding:10px; }
 .photo-viewer-toolbar { gap:6px; }
 .photo-viewer-caption { flex-basis:100%; }
 .team-panel .assignment-search { display:grid; grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .dashboard-body * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

@media(max-width:640px) {
 #techFormFlow .photo-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 #techFormFlow .photo-gallery figure { padding:6px; }
 #techFormFlow .photo-gallery img { height:95px; }
 #techFormFlow .photo-gallery .btn-sec-sm { font-size:11px; padding:8px 5px; width:100%; }
}

/* Diretoria: recorte único, hierarquia executiva e ações sem sobreposição. */
.executive-filterbar { padding:20px; margin:24px 0; border:1px solid var(--border-color); border-radius:18px; background:var(--card-bg); }
.executive-filterbar .report-filters { margin:0 0 16px; }
.executive-actions { display:flex; justify-content:flex-end; align-items:center; gap:10px; flex-wrap:wrap; }
.dashboard-body .executive-actions .btn-export { margin:0; gap:8px; }
.executive-actions .btn-export span { margin:0; }
.report-scope-note { margin-top:14px; color:var(--text-muted); font-size:12px; line-height:1.6; }
#avisoRelatorio { margin-top:8px; color:var(--zaaz-blue); font-size:13px; }
.executive-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.executive-kpis .kpi-card { min-height:150px; }
.executive-kpis .kpi-card:nth-child(2)::before { background:#13877a; }
.executive-kpis .kpi-card:nth-child(3)::before { background:#c64255; }
.executive-kpis .kpi-card:nth-child(4)::before, .executive-kpis .kpi-card:nth-child(6)::before { background:#bd7d1d; }
.success-text { color:#13877a; }
.executive-summary { display:grid; grid-template-columns:1fr 1.3fr; gap:28px; padding:24px; margin-bottom:28px; border-radius:18px; }
.executive-summary p { font-size:17px; line-height:1.6; margin-top:10px; font-weight:600; }
.executive-summary ul { padding-left:18px; margin:0; font-size:13px; line-height:1.65; }
.executive-summary li+li { margin-top:8px; }
.supervisor-chart { min-height:300px; }
.supervisor-chart canvas { max-height:245px; }
#viewGerente .chart-card { border-radius:18px; padding:24px; }
#viewGerente .chart-card h5 { margin-bottom:20px; }
#viewGerente .report-toolbar .btn-export { margin:0; }
@media(max-width:900px){.executive-summary { grid-template-columns:1fr; gap:16px; }.executive-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }}
@media(max-width:520px){.executive-filterbar { padding:16px; }.executive-kpis { gap:10px; }.executive-kpis .kpi-card { min-height:138px; padding:15px; }.executive-summary { padding:18px; }.executive-actions { align-items:stretch; }.executive-actions button { flex:1; }#viewGerente .chart-card { padding:18px; }}
.executive-filterbar .report-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.executive-filterbar .report-filters label { min-width:0; }
.executive-filterbar .report-filters input, .executive-filterbar .report-filters select { width:100%; min-width:0; }
@media(max-width:900px){.executive-filterbar .report-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }}
@media(max-width:520px){.executive-filterbar .report-filters { grid-template-columns:1fr; }}
/* Consulta ampliada e GPS legível no atendimento. */
#modalDetalhesIncidente.consultation-wide .modal-content { max-width:1440px !important; width:96vw; max-height:94dvh; }
#modalDetalhesIncidente.consultation-wide .modal-grid-sidebar { grid-template-columns:minmax(260px,340px) minmax(0,1fr); }
.rupture-location { display:inline-block; margin:10px 0; color:var(--zaaz-blue); font-weight:700; overflow-wrap:anywhere; }
.rupture-field input { width:100%; margin:10px 0; font-variant-numeric:tabular-nums; }
.field-hint { margin-top:10px; color:var(--text-muted); font-size:12px; line-height:1.6; }
@media(max-width:760px){#modalDetalhesIncidente.consultation-wide .modal-content { width:96vw; padding:18px; }#modalDetalhesIncidente.consultation-wide .modal-grid-sidebar { grid-template-columns:1fr; }}
