/* ============================================================================
   CHECKLIST CL GERAL POLOS — ESTILOS
   Identidade visual: Cogna Educação (roxo #7F39F3 + grafite #2B2D3A)
============================================================================ */

:root {
  --cogna-purple: #7F39F3;
  --cogna-purple-dark: #6425D6;
  --cogna-purple-light: #F1E9FE;
  --cogna-dark: #24252E;
  --cogna-dark-2: #33343F;
  --cogna-gray-50: #F7F7F9;
  --cogna-gray-100: #EFEFF3;
  --cogna-gray-200: #E2E2E9;
  --cogna-gray-300: #C9C9D4;
  --cogna-gray-500: #85879A;
  --cogna-gray-700: #55566A;
  --white: #FFFFFF;
  --success: #1FA25A;
  --success-bg: #E8F8EF;
  --danger: #E14848;
  --danger-bg: #FDEAEA;
  --warning: #E0A324;
  --warning-bg: #FCF3E0;
  --info: #2E6FE8;
  --info-bg: #EAF1FE;
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --shadow-sm: 0 1px 3px rgba(36,37,46,.08);
  --shadow-md: 0 6px 24px rgba(36,37,46,.10);
  --shadow-lg: 0 16px 48px rgba(36,37,46,.18);
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  font-family: var(--font);
  background: var(--cogna-gray-50);
  color: var(--cogna-dark);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; }
::selection { background: var(--cogna-purple-light); }

a { color: var(--cogna-purple); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ---------------------------------------------------------------------- *
 * LAYOUT SHELL
 * ---------------------------------------------------------------------- */
#app-shell {
  display: flex;
  min-height: 100vh;
}

/* ---- Top bar (mobile) ---- */
.topbar {
  display: none;
  position: sticky; top: 0; z-index: 40;
  background: var(--cogna-dark);
  color: var(--white);
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
}
.topbar__logo { height: 26px; }
.topbar__title { font-weight: 700; font-size: 14px; flex: 1; }
.topbar__menu-btn {
  background: rgba(255,255,255,.08); border: none; color: #fff;
  width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center;
}

/* ---------------------------------------------------------------------- *
 * SIDEBAR
 * ---------------------------------------------------------------------- */
.sidebar {
  width: 320px;
  flex-shrink: 0;
  background: var(--cogna-dark);
  color: var(--white);
  padding: 28px 20px 20px;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}
.sidebar__brand {
  display: flex; align-items: center; gap: 12px;
  padding-bottom: 22px; margin-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.sidebar__logo { height: 40px; }
.sidebar__brand-text { font-size: 12px; color: rgba(255,255,255,.55); line-height: 1.4; }

.sidebar__title { font-size: 18px; font-weight: 800; margin: 0 0 2px; letter-spacing: -.2px; }
.sidebar__subtitle { font-size: 12.5px; color: rgba(255,255,255,.55); margin: 0 0 20px; }

.progress-overview {
  background: rgba(255,255,255,.06);
  border-radius: var(--radius-md);
  padding: 14px;
  margin-bottom: 18px;
}
.progress-overview__label { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.5); margin-bottom: 8px; }
.progress-overview__bar { height: 8px; background: rgba(255,255,255,.12); border-radius: 99px; overflow: hidden; margin-bottom: 8px; }
.progress-overview__fill { height: 100%; background: linear-gradient(90deg, var(--cogna-purple), #B98CF9); border-radius: 99px; transition: width .35s ease; }
.progress-overview__count { font-size: 13px; font-weight: 700; }
.progress-overview__count span { color: var(--cogna-purple); }

.steps { list-style: none; margin: 0; padding: 0; flex: 1; }
.step {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 10px; border-radius: 10px; margin-bottom: 2px;
  cursor: pointer; font-size: 13.2px; color: rgba(255,255,255,.75);
  transition: background .15s ease;
}
.step:hover { background: rgba(255,255,255,.06); }
.step.is-active { background: rgba(127,57,243,.25); color: #fff; font-weight: 700; }
.step__badge {
  width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800;
  background: rgba(255,255,255,.1); color: rgba(255,255,255,.6);
}
.step.is-complete .step__badge { background: var(--success); color: #fff; }
.step.is-active .step__badge { background: var(--cogna-purple); color: #fff; }
.step__num { }
.step__title { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.sidebar__footer {
  margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.1);
  font-size: 11px; color: rgba(255,255,255,.4); line-height: 1.5;
}

/* ---------------------------------------------------------------------- *
 * MAIN CONTENT
 * ---------------------------------------------------------------------- */
.main {
  flex: 1;
  min-width: 0;
  padding: 36px 44px 90px;
  max-width: 900px;
}

.section-header { margin-bottom: 26px; }
.section-header__eyebrow { display: flex; align-items: center; gap: 10px; color: var(--cogna-purple); font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }
.section-header__eyebrow .num-pill { background: var(--cogna-purple); color: #fff; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; }
.section-header h1 { font-size: 26px; margin: 0 0 6px; letter-spacing: -.4px; }
.section-header p { margin: 0; color: var(--cogna-gray-700); font-size: 14.5px; }

.card {
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--cogna-gray-200);
  padding: 26px;
  margin-bottom: 18px;
}

.field { margin-bottom: 22px; }
.field:last-child { margin-bottom: 0; }
.field__label { display: block; font-weight: 700; font-size: 14px; margin-bottom: 8px; color: var(--cogna-dark); }
.field__label .required-star { color: var(--danger); margin-left: 2px; }
.field__hint { font-size: 12.5px; color: var(--cogna-gray-700); background: var(--cogna-gray-50); border-left: 3px solid var(--cogna-purple); padding: 8px 12px; border-radius: 0 8px 8px 0; margin-bottom: 10px; }

.input, select.input, textarea.input {
  width: 100%; padding: 11px 14px; font-size: 14.5px;
  border: 1.5px solid var(--cogna-gray-200); border-radius: var(--radius-sm);
  background: var(--white); color: var(--cogna-dark);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.input:focus, select.input:focus, textarea.input:focus {
  outline: none; border-color: var(--cogna-purple); box-shadow: 0 0 0 3px rgba(127,57,243,.15);
}
textarea.input { min-height: 96px; resize: vertical; }
.field.has-error .input, .field.has-error select.input, .field.has-error textarea.input { border-color: var(--danger); }
.field__error { color: var(--danger); font-size: 12.5px; margin-top: 6px; display: none; align-items: center; gap: 5px; }
.field.has-error .field__error { display: flex; }

.btn-link-toggle {
  display: inline-block; margin-top: 8px; background: none; border: none; padding: 0;
  color: var(--cogna-purple); font-weight: 700; font-size: 12.5px; text-decoration: underline;
  cursor: pointer;
}
.btn-link-toggle:hover { color: var(--cogna-purple-dark); }

/* radio pill (Sim/Não/N-A) */
.pill-group { display: flex; gap: 10px; flex-wrap: wrap; }
.pill-option { position: relative; }
.pill-option input { position: absolute; opacity: 0; width: 100%; height: 100%; cursor: pointer; margin: 0; }
.pill-option label {
  display: flex; align-items: center; justify-content: center;
  min-width: 84px; padding: 10px 20px; border-radius: 99px;
  border: 1.5px solid var(--cogna-gray-200); font-weight: 700; font-size: 13.5px;
  color: var(--cogna-gray-700); background: var(--white); transition: all .15s ease;
}
.pill-option input:checked + label { border-color: transparent; }
.pill-option.is-yes input:checked + label { background: var(--success); color: #fff; }
.pill-option.is-no input:checked + label { background: var(--danger); color: #fff; }
.pill-option.is-na input:checked + label { background: var(--cogna-gray-700); color: #fff; }
.pill-option label:hover { border-color: var(--cogna-purple); }

/* checkbox / multiselect */
.check-grid { display: flex; flex-wrap: wrap; gap: 9px; }
.check-option { position: relative; }
.check-option input { position: absolute; opacity: 0; }
.check-option label {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 14px; border-radius: var(--radius-sm);
  border: 1.5px solid var(--cogna-gray-200); font-size: 13.5px; color: var(--cogna-dark);
  background: var(--white); transition: all .15s ease;
}
.check-option label::before {
  content: ''; width: 16px; height: 16px; border-radius: 4px; border: 1.5px solid var(--cogna-gray-300); flex-shrink: 0;
  background: #fff center/12px no-repeat;
}
.check-option input:checked + label { border-color: var(--cogna-purple); background: var(--cogna-purple-light); font-weight: 600; }
.check-option input:checked + label::before {
  background-color: var(--cogna-purple); border-color: var(--cogna-purple);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------------------- *
 * PHOTO GROUP
 * ---------------------------------------------------------------------- */
.photo-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; flex-wrap: wrap; gap: 10px; }
.photo-count { font-size: 12.5px; color: var(--cogna-gray-700); font-weight: 600; }
.photo-count strong { color: var(--cogna-dark); }

.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px; border-radius: 99px; border: none;
  font-weight: 700; font-size: 13.5px; transition: all .15s ease;
}
.btn-primary { background: var(--cogna-purple); color: #fff; box-shadow: 0 4px 14px rgba(127,57,243,.3); }
.btn-primary:hover { background: var(--cogna-purple-dark); transform: translateY(-1px); }
.btn-primary:disabled { background: var(--cogna-gray-300); color: var(--cogna-gray-700); box-shadow: none; cursor: not-allowed; transform: none; }
.btn-secondary { background: var(--cogna-gray-100); color: var(--cogna-dark); }
.btn-secondary:hover { background: var(--cogna-gray-200); }
.btn-outline { background: #fff; color: var(--cogna-purple); border: 1.5px solid var(--cogna-purple); }
.btn-outline:hover { background: var(--cogna-purple-light); }
.btn-danger-ghost { background: transparent; color: var(--danger); padding: 8px 12px; }
.btn-danger-ghost:hover { background: var(--danger-bg); }
.btn-sm { padding: 7px 14px; font-size: 12.5px; }
.btn-block { width: 100%; justify-content: center; }
.btn:disabled { opacity: .55; cursor: not-allowed; }

.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; margin-bottom: 12px; }
.photo-thumb { position: relative; border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 4/3; background: var(--cogna-gray-100); border: 1.5px solid var(--cogna-gray-200); }
.photo-thumb img { width: 100%; height: 100%; object-fit: cover; }
.photo-thumb__remove {
  position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border-radius: 50%;
  background: rgba(20,20,26,.65); color: #fff; border: none; display: flex; align-items: center; justify-content: center;
  font-size: 14px; line-height: 1;
}
.photo-thumb--pdf { background: var(--cogna-purple-light); display: flex; align-items: center; justify-content: center; }
.pdf-chip { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 22px; padding: 8px; text-align: center; }
.pdf-chip__name { font-size: 10.5px; font-weight: 700; color: var(--cogna-purple-dark); word-break: break-all; line-height: 1.3; }

/* ---------------------------------------------------------------------- *
 * PEOPLE LIST (comercial)
 * ---------------------------------------------------------------------- */
.people-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.people-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; align-items: center; }
@media (max-width: 560px) { .people-row { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------- *
 * DYNAMIC LIST SECTIONS (salas, sanitários)
 * ---------------------------------------------------------------------- */
.list-item-card { border: 1.5px solid var(--cogna-gray-200); border-radius: var(--radius-lg); margin-bottom: 18px; overflow: hidden; }
.list-item-card__head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 16px 22px; background: var(--cogna-dark); color: #fff;
}
.list-item-card__head h3 { margin: 0; font-size: 15px; }
.list-item-card__body { padding: 22px; }
.list-add-btn { border: 1.5px dashed var(--cogna-purple); color: var(--cogna-purple); background: var(--cogna-purple-light); border-radius: var(--radius-lg); padding: 16px; width: 100%; font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; gap: 8px; }
.list-add-btn:hover { background: #E7D8FC; }
.list-add-btn:disabled { opacity: .45; cursor: not-allowed; }
.list-limit-note { text-align: center; font-size: 12px; color: var(--cogna-gray-700); margin-top: 8px; }

/* ---------------------------------------------------------------------- *
 * NAV FOOTER
 * ---------------------------------------------------------------------- */
.nav-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 10px; }

/* ---------------------------------------------------------------------- *
 * REVIEW / SUMMARY SCREEN
 * ---------------------------------------------------------------------- */
.review-item { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-radius: var(--radius-sm); border: 1px solid var(--cogna-gray-200); margin-bottom: 8px; }
.review-item.incomplete { border-color: var(--danger); background: var(--danger-bg); }
.review-item__left { display: flex; align-items: center; gap: 12px; }
.review-item__status { width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; color: #fff; flex-shrink: 0; }
.review-item.complete .review-item__status { background: var(--success); }
.review-item.incomplete .review-item__status { background: var(--danger); }

.final-gate {
  border-radius: var(--radius-lg); padding: 18px 22px; margin-top: 18px;
  display: flex; gap: 14px; align-items: flex-start;
}
.final-gate.blocked { background: var(--danger-bg); border: 1.5px solid #F3C6C6; }
.final-gate.ready { background: var(--success-bg); border: 1.5px solid #B9E7CC; }
.final-gate__icon { font-size: 22px; }
.final-gate h4 { margin: 0 0 4px; font-size: 14.5px; }
.final-gate p { margin: 0; font-size: 13px; color: var(--cogna-gray-700); }

/* ---------------------------------------------------------------------- *
 * SUCCESS SCREEN
 * ---------------------------------------------------------------------- */
.success-screen { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 60px 20px; }
.success-screen__icon { width: 84px; height: 84px; border-radius: 50%; background: var(--success-bg); color: var(--success); display: flex; align-items: center; justify-content: center; font-size: 40px; margin-bottom: 22px; }
.success-screen h1 { margin: 0 0 10px; }
.success-screen p { color: var(--cogna-gray-700); max-width: 460px; margin: 0 auto 6px; }
.protocol-box { margin-top: 22px; background: var(--white); border: 1.5px dashed var(--cogna-purple); border-radius: var(--radius-md); padding: 16px 26px; font-family: monospace; font-size: 15px; font-weight: 700; color: var(--cogna-purple); }

/* ---------------------------------------------------------------------- *
 * MODALS
 * ---------------------------------------------------------------------- */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(20,20,26,.7); backdrop-filter: blur(2px);
  display: none; align-items: center; justify-content: center; z-index: 100; padding: 16px;
}
.modal-overlay.is-open { display: flex; }
.modal {
  background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
  width: 100%; max-width: 640px; max-height: 92vh; overflow: auto;
}
.modal__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--cogna-gray-200); position: sticky; top: 0; background: #fff; z-index: 2; }
.modal__head h3 { margin: 0; font-size: 16px; }
.modal__close { width: 32px; height: 32px; border-radius: 50%; border: none; background: var(--cogna-gray-100); font-size: 16px; }
.modal__body { padding: 22px; }

/* Camera modal specific */
.camera-modal .modal { max-width: 520px; background: #0d0d10; color: #fff; }
.camera-modal .modal__head { background: #0d0d10; border-color: rgba(255,255,255,.1); }
.camera-modal .modal__head h3 { color: #fff; }
.camera-modal .modal__close { background: rgba(255,255,255,.1); color: #fff; }
.camera-stage { position: relative; background: #000; border-radius: var(--radius-md); overflow: hidden; aspect-ratio: 3/4; max-height: 62vh; margin: 0 auto; }
.camera-stage video, .camera-stage canvas, .camera-stage img { width: 100%; height: 100%; object-fit: cover; display: block; }
.camera-stage canvas.is-hidden { display: none; }
.camera-hint { text-align: center; font-size: 12.5px; color: rgba(255,255,255,.55); margin-top: 12px; }
.camera-error { text-align: center; font-size: 13.5px; color: #fff; background: rgba(225,72,72,.2); border: 1px solid rgba(225,72,72,.4); border-radius: var(--radius-sm); padding: 14px; margin-top: 14px; }
.camera-controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 18px; }
.camera-shutter { width: 68px; height: 68px; border-radius: 50%; border: 4px solid #fff; background: transparent; display: flex; align-items: center; justify-content: center; }
.camera-shutter::after { content: ''; width: 54px; height: 54px; border-radius: 50%; background: #fff; }
.camera-shutter:active::after { background: var(--cogna-purple); }
.camera-shutter:disabled { opacity: .4; }
.camera-shutter:disabled::after { background: #999; }
.camera-loading { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; flex-direction: column; gap: 10px; background: rgba(0,0,0,.55); color: #fff; font-size: 13px; text-align: center; padding: 20px; z-index: 2; }
.camera-loading__spinner { width: 30px; height: 30px; border-radius: 50%; border: 3px solid rgba(255,255,255,.3); border-top-color: #fff; animation: camera-spin .8s linear infinite; }
@keyframes camera-spin { to { transform: rotate(360deg); } }
.camera-side-btn { width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.12); border: none; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.camera-retake-row { display: flex; gap: 12px; margin-top: 18px; }
.camera-retake-row .btn { flex: 1; justify-content: center; }
.camera-fileinput { display: none; }

/* Toast */
#toast-region { position: fixed; bottom: 20px; right: 20px; z-index: 200; display: flex; flex-direction: column; gap: 10px; }
.toast { background: var(--cogna-dark); color: #fff; padding: 12px 18px; border-radius: var(--radius-sm); font-size: 13.5px; box-shadow: var(--shadow-md); display: flex; align-items: center; gap: 10px; max-width: 340px; animation: toast-in .25s ease; }
.toast.error { background: var(--danger); }
.toast.success { background: var(--success); }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* ---------------------------------------------------------------------- *
 * RESPONSIVE
 * ---------------------------------------------------------------------- */
@media (max-width: 980px) {
  .sidebar { position: fixed; left: 0; top: 0; z-index: 60; transform: translateX(-102%); transition: transform .25s ease; box-shadow: var(--shadow-lg); }
  .sidebar.is-open { transform: translateX(0); }
  .topbar { display: flex; }
  .main { padding: 22px 16px 90px; max-width: 100%; }
  #sidebar-scrim { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 55; }
  #sidebar-scrim.is-open { display: block; }
}
@media (max-width: 620px) {
  .card { padding: 18px; }
  .section-header h1 { font-size: 21px; }
  .pill-option label { min-width: 70px; padding: 9px 14px; }
  .nav-footer { flex-wrap: wrap; }
  .nav-footer .btn { flex: 1; }
  /* Campo com fonte >=16px evita o zoom automático do Safari/iOS ao focar. */
  .input, select.input, textarea.input { font-size: 16px; }
}

/* ============================================================================
   TELA DE ENTRADA (splash, sem senha) — mesma identidade visual do painel
   administrativo, só que sem campo de senha: um único botão "Iniciar" em
   destaque para o gestor do Polo entrar.
============================================================================ */
#screen-entry { position: fixed; inset: 0; z-index: 999; display: flex; background: var(--cogna-dark); }
#screen-entry.is-hidden { display: none; }
.entry-left { width: 100%; max-width: 480px; display: flex; align-items: center; justify-content: center; padding: 40px; background: #15161d; position: relative; z-index: 2; }
.entry-left__inner { width: 100%; max-width: 340px; }
.entry-logo { height: 36px; margin-bottom: 38px; display: block; }
.entry-left__inner h1 { font-size: 27px; color: #fff; margin: 0 0 10px; letter-spacing: -.02em; line-height: 1.25; }
.entry-left__inner h1 .dot { color: #9B6BFA; }
.entry-left__inner > p { color: #9294a6; font-size: 14px; line-height: 1.6; margin: 0 0 30px; }
.entry-features { list-style: none; margin: 0 0 34px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.entry-features li { display: flex; align-items: center; gap: 10px; color: #c6c7d4; font-size: 13px; }
.entry-features li .ico { width: 26px; height: 26px; border-radius: 8px; background: rgba(127,57,243,.22); color: #B98CF9; display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; }
#btn-entry-start {
  position: relative; overflow: hidden; width: 100%; padding: 16px 20px; border: none; border-radius: 12px;
  background: linear-gradient(90deg, #9B6BFA, #6425D6); color: #fff; font-weight: 800; font-size: 15.5px; letter-spacing: .01em;
  box-shadow: 0 8px 26px rgba(127,57,243,.45), 0 0 0 1px rgba(255,255,255,.06) inset;
  display: flex; align-items: center; justify-content: center; gap: 10px; cursor: pointer;
  animation: entry-glow 2.4s ease-in-out infinite;
}
#btn-entry-start:hover { filter: brightness(1.1); transform: translateY(-1px); }
#btn-entry-start::after {
  content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-20deg); animation: entry-shine 3.2s ease-in-out infinite;
}
@keyframes entry-glow {
  0%, 100% { box-shadow: 0 8px 26px rgba(127,57,243,.45), 0 0 0 1px rgba(255,255,255,.06) inset; }
  50% { box-shadow: 0 8px 42px rgba(155,107,250,.8), 0 0 0 1px rgba(255,255,255,.1) inset; }
}
@keyframes entry-shine { 0% { left: -60%; } 40% { left: 130%; } 100% { left: 130%; } }
.entry-note { margin-top: 22px; font-size: 11px; color: #63647a; line-height: 1.6; }
.entry-right { flex: 1; position: relative; overflow: hidden; background: linear-gradient(180deg,#0a0b12 0%,#171040 42%,#2b2062 78%,#3a2a74 100%); }
/* Grade estilo "planta baixa / blueprint" no lugar do céu estrelado — remete a
   projeto/infraestrutura de engenharia, tema do checklist. */
.entry-right .blueprint-grid { position: absolute; inset: 0; opacity: .5;
  background-image:
    linear-gradient(rgba(155,107,250,.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(155,107,250,.14) 1px, transparent 1px);
  background-size: 34px 34px;
  -webkit-mask-image: radial-gradient(circle at 50% 40%, #000 0%, transparent 72%);
  mask-image: radial-gradient(circle at 50% 40%, #000 0%, transparent 72%);
}
/* Ilustração central: prédio esquemático + rampa de acessibilidade, com
   "anéis de varredura" pulsando como se estivesse sendo vistoriado. */
.building-illustration { position: absolute; top: 30%; left: 50%; transform: translate(-50%, -50%); width: 150px; height: 150px; display: flex; align-items: center; justify-content: center; }
.building-illustration svg { position: relative; z-index: 2; filter: drop-shadow(0 6px 18px rgba(127,57,243,.5)); }
.scan-ring { position: absolute; border-radius: 50%; border: 1.5px solid rgba(155,107,250,.55); }
.scan-ring.r1 { width: 100%; height: 100%; animation: scan-pulse 3.2s ease-out infinite; }
.scan-ring.r2 { width: 100%; height: 100%; animation: scan-pulse 3.2s ease-out infinite; animation-delay: 1.6s; }
@keyframes scan-pulse {
  0% { transform: scale(.55); opacity: .9; border-color: rgba(155,107,250,.7); }
  100% { transform: scale(1.9); opacity: 0; border-color: rgba(155,107,250,0); }
}
.entry-right .site-plan { position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; display: block; }
.entry-right .float-card {
  position: absolute; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(6px); border-radius: 14px; padding: 13px 16px; color: #fff;
  font-size: 12.5px; font-weight: 700; display: flex; align-items: center; gap: 10px;
  box-shadow: 0 12px 30px rgba(0,0,0,.35); animation: float-y 5s ease-in-out infinite;
}
.entry-right .float-card .ico { width: 30px; height: 30px; border-radius: 9px; background: rgba(127,57,243,.35); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
.entry-right .float-card.c1 { top: 12%; left: 8%; animation-delay: .2s; }
.entry-right .float-card.c2 { top: 58%; right: 7%; animation-delay: 1.4s; }
.entry-right .float-card.c3 { bottom: 34%; left: 9%; animation-delay: 2.6s; }
.entry-right .float-card.c4 { top: 8%; right: 9%; animation-delay: 3.4s; }
@keyframes float-y { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (max-width: 820px) { .entry-right { display: none; } .entry-left { max-width: 100%; } }

/* ============================================================================
   TELA DE SELEÇÃO DE CHECKLISTS (home) — grade de checklists disponíveis,
   igual ao portal do Checklist Fácil. Só "CL GERAL POLOS" está ativo; os
   demais aparecem em cinza com "Em breve" até serem implementados.
============================================================================ */
#screen-checklists-home { position: fixed; inset: 0; z-index: 900; overflow-y: auto;
  background: radial-gradient(1200px 600px at 12% -10%, rgba(127,57,243,.22), transparent 60%), var(--cogna-dark); }
#screen-checklists-home.is-hidden { display: none; }
.home-wrap { max-width: 1080px; margin: 0 auto; padding: 48px 24px 90px; }
.home-header { display: flex; align-items: center; gap: 16px; margin-bottom: 8px; }
.home-header img { height: 40px; }
.home-header .brandline { font-size: 12.5px; color: #B98CF9; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.home-title { font-size: 30px; font-weight: 800; letter-spacing: -.5px; margin: 22px 0 6px; color: #fff; }
.home-subtitle { color: #9294a6; font-size: 15px; margin: 0 0 34px; max-width: 640px; line-height: 1.55; }
.checklist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px,1fr)); gap: 18px; }
.checklist-card { background: var(--cogna-dark-2); border: 1px solid rgba(255,255,255,.08); border-radius: var(--radius-lg); box-shadow: 0 10px 30px rgba(0,0,0,.28); padding: 24px; display: flex; flex-direction: column; gap: 12px; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; cursor: pointer; text-align: left; width: 100%; font-family: inherit; }
.checklist-card:not(.is-disabled) { border-color: rgba(155,107,250,.4); animation: card-glow 2.6s ease-in-out infinite; }
.checklist-card:not(.is-disabled):hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(127,57,243,.4); border-color: #9B6BFA; }
@keyframes card-glow {
  0%, 100% { box-shadow: 0 10px 30px rgba(0,0,0,.28), 0 0 0 1px rgba(155,107,250,.08); }
  50% { box-shadow: 0 10px 34px rgba(127,57,243,.4), 0 0 0 1px rgba(155,107,250,.2); }
}
.checklist-card__icon { width: 46px; height: 46px; border-radius: 12px; background: rgba(127,57,243,.25); color: #B98CF9; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.checklist-card__name { font-size: 16px; font-weight: 800; line-height: 1.3; margin: 0; color: #fff; }
.checklist-card__desc { font-size: 13px; color: #9294a6; line-height: 1.5; margin: 0; flex: 1; }
.checklist-card__cta { font-size: 12.5px; font-weight: 800; color: #fff; display: flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 9px; background: linear-gradient(90deg, #9B6BFA, #6425D6); align-self: flex-start; box-shadow: 0 4px 14px rgba(127,57,243,.45); }
.checklist-card.is-disabled { cursor: not-allowed; opacity: .55; background: #26272f; }
.checklist-card.is-disabled:hover { transform: none; box-shadow: 0 10px 30px rgba(0,0,0,.28); border-color: rgba(255,255,255,.08); }
.checklist-card.is-disabled .checklist-card__icon { background: rgba(255,255,255,.06); color: #63647a; }
.checklist-card.is-disabled .checklist-card__cta { background: rgba(255,255,255,.06); color: #85879A; box-shadow: none; }
.checklist-card__badge { font-size: 11px; font-weight: 800; background: rgba(255,255,255,.08); color: #c6c7d4; padding: 3px 10px; border-radius: 99px; align-self: flex-start; }
.checklist-card__badge--inativo { background: rgba(240,90,90,.18); color: #ff9b9b; }
/* Cards do departamento "Laboratórios e Bibliotecas" -- cor diferenciada
   (verde-água) pra identificar visualmente que são de outra área/
   departamento, diferente dos demais checklists (Auditoria de
   Infraestrutura), que continuam na cor roxa padrão. */
.checklist-card--lab:not(.is-disabled) { border-color: rgba(30,197,168,.45); animation: card-glow-lab 2.6s ease-in-out infinite; }
.checklist-card--lab:not(.is-disabled):hover { box-shadow: 0 16px 40px rgba(30,197,168,.35); border-color: #1EC5A8; }
@keyframes card-glow-lab {
  0%, 100% { box-shadow: 0 10px 30px rgba(0,0,0,.28), 0 0 0 1px rgba(30,197,168,.08); }
  50% { box-shadow: 0 10px 34px rgba(30,197,168,.35), 0 0 0 1px rgba(30,197,168,.2); }
}
.checklist-card--lab:not(.is-disabled) .checklist-card__icon { background: rgba(30,197,168,.22); color: #5EEFD4; }
.checklist-card--lab:not(.is-disabled) .checklist-card__cta { background: linear-gradient(90deg, #1EC5A8, #0E8C77); box-shadow: 0 4px 14px rgba(30,197,168,.45); }
.checklist-card--lab:not(.is-disabled) .checklist-card__badge { background: rgba(30,197,168,.18); color: #5EEFD4; }
.home-footnote { margin-top: 40px; font-size: 12px; color: #63647a; line-height: 1.6; }

/* Botão "Contatos dos Consultores de Infraestrutura" -- mesma família visual
   dos 4 cards de checklist, mas com um acento âmbar (em vez do roxo dos
   cards) pra ficar claramente distinto -- é uma ação diferente (consulta),
   não mais um checklist pra preencher. */
.contacts-btn { margin-top: 22px; background: var(--cogna-dark-2); border: 1px solid rgba(255,196,92,.3); border-radius: var(--radius-lg); box-shadow: 0 8px 24px rgba(0,0,0,.24); padding: 16px 20px; display: flex; align-items: center; gap: 14px; cursor: pointer; width: 100%; text-align: left; font-family: inherit; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.contacts-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(245,166,35,.26); border-color: #F5A623; }
.contacts-btn__icon { width: 42px; height: 42px; border-radius: 12px; background: rgba(245,166,35,.2); color: #FFC55C; display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; }
.contacts-btn__text { display: flex; flex-direction: column; gap: 3px; }
.contacts-btn__title { font-size: 14px; font-weight: 800; color: #fff; }
.contacts-btn__hint { font-size: 12px; color: #9294a6; }
.contacts-btn__cta { margin-left: auto; font-size: 12px; font-weight: 800; color: #FFC55C; white-space: nowrap; }
@media (max-width: 560px) { .contacts-btn { flex-wrap: wrap; } .contacts-btn__cta { margin-left: 56px; } }

/* #screen-checklists-home fica com z-index:900 (position:fixed) -- como o
   modal de contatos é irmão dele no body (não filho), precisa de um z-index
   maior que 900 pra ficar por cima, senão fica escondido atrás da tela
   inicial mesmo com display:flex. */
#consultores-modal { z-index: 950; }
.consultores-list { display: flex; flex-direction: column; gap: 12px; margin: 4px 0 4px; }
.consultor-card { border: 1.5px solid var(--gray-200); border-radius: var(--radius-md); padding: 14px 16px; }
.consultor-card h4 { margin: 0 0 8px; font-size: 14px; color: var(--cogna-purple-dark); }
.consultor-card__row { font-size: 12.5px; color: var(--gray-700); margin-bottom: 4px; }
.consultor-card__row a { color: var(--cogna-purple-dark); text-decoration: underline; }

@media (max-width: 620px) { .home-wrap { padding: 28px 16px 70px; } }
@media (max-width: 480px) { .home-title { font-size: 24px; } .checklist-grid { grid-template-columns: 1fr; } }

/* ---- Botão "voltar" no topo da sidebar do formulário ---- */
.sidebar__back { background: none; border: none; color: rgba(255,255,255,.55); font-size: 12px; font-weight: 700; display: flex; align-items: center; gap: 6px; padding: 0 0 14px; cursor: pointer; }
.sidebar__back:hover { color: #fff; }


/* ============================================================================
 *  CSS ESPECÍFICO DO PAINEL ADMINISTRATIVO (admin.html)
 *  ----------------------------------------------------------------------
 *  Unificado aqui junto com o CSS do formulário do Polo. Como os dois
 *  arquivos de origem compartilhavam a mesma base de tokens/reset (histórico
 *  de copy-paste do projeto), pode haver alguma sobreposição de seletores —
 *  isso é inofensivo em CSS (a última declaração idêntica prevalece).
 * ========================================================================== */
  :root{
    --cogna-purple:#7F39F3;--cogna-purple-light2:#9B6BFA;--cogna-purple-dark:#6425D6;--cogna-purple-light:#F1E9FE;
    --cogna-dark:#24252E;--cogna-dark-2:#33343F;
    --gray-50:#F7F7F9;--gray-100:#EFEFF3;--gray-200:#E2E2E9;--gray-300:#C9C9D4;--gray-500:#85879A;--gray-700:#55566A;
    --white:#FFFFFF;
    --success:#1FA25A;--success-bg:#E8F8EF;
    --danger:#E14848;--danger-bg:#FDEAEA;
    --warning:#E0A324;--warning-bg:#FCF3E0;
    --info:#2E6FE8;--info-bg:#EAF1FE;
    --neutral:#6B6C7B;--neutral-bg:#EEEEF2;
    --radius-sm:8px;--radius-md:14px;--radius-lg:20px;
    --shadow-sm:0 1px 3px rgba(36,37,46,.08);
    --shadow-md:0 6px 24px rgba(36,37,46,.10);
    --shadow-lg:0 16px 48px rgba(36,37,46,.18);
    --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  }
  *,*::before,*::after{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{font-family:var(--font);background:var(--gray-50);color:var(--cogna-dark);-webkit-font-smoothing:antialiased;}
  h1,h2,h3,h4{margin:0;font-weight:800;}
  p{margin:0;}
  button{font-family:inherit;cursor:pointer;}
  input,select{font-family:inherit;}
  a{color:var(--cogna-purple-dark);}

  /* ================= Gate (login) ================= */
  #gate{position:fixed;inset:0;display:flex;z-index:999;background:var(--cogna-dark);}
  .gate-left{width:100%;max-width:460px;display:flex;align-items:center;justify-content:center;padding:40px 36px;background:#15161d;position:relative;z-index:2;}
  .gate-left__inner{width:100%;max-width:320px;}
  .gate-logo{height:34px;margin-bottom:34px;display:block;}
  .gate-left__inner h2{font-size:24px;color:#fff;margin-bottom:8px;letter-spacing:-.01em;}
  .gate-left__inner h2 .dot{color:var(--cogna-purple-light2);}
  .gate-left__inner p{color:#9294a6;font-size:13.5px;line-height:1.55;margin-bottom:30px;}
  .gate-label{display:block;color:#c6c7d4;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}
  #gate-input{width:100%;padding:13px 14px;border-radius:var(--radius-sm);border:1.5px solid #383a4a;background:#1d1e28;color:#fff;font-size:14.5px;margin-bottom:16px;}
  #gate-input::placeholder{color:#63647a;}
  #gate-input:focus{outline:none;border-color:var(--cogna-purple-light2);box-shadow:0 0 0 3px rgba(155,107,250,.22);}
  #gate-btn{width:100%;padding:13px;border:none;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--cogna-purple-light2),var(--cogna-purple-dark));color:#fff;font-weight:700;font-size:14.5px;box-shadow:0 8px 22px rgba(127,57,243,.35);}
  #gate-btn:hover{filter:brightness(1.08);}
  #gate-email-input{width:100%;padding:13px 14px;border-radius:var(--radius-sm);border:1.5px solid #383a4a;background:#1d1e28;color:#fff;font-size:14.5px;margin-bottom:16px;}
  #gate-email-input::placeholder{color:#63647a;}
  #gate-email-input:focus{outline:none;border-color:var(--cogna-purple-light2);box-shadow:0 0 0 3px rgba(155,107,250,.22);}
  #gate-email-btn{width:100%;padding:13px;border:none;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--cogna-purple-light2),var(--cogna-purple-dark));color:#fff;font-weight:700;font-size:14.5px;box-shadow:0 8px 22px rgba(127,57,243,.35);}
  #gate-email-btn:hover{filter:brightness(1.08);}
  .gate-error{color:#ff8686;font-size:13px;margin-top:12px;min-height:16px;}
  .gate-note{margin-top:26px;font-size:11px;color:#63647a;line-height:1.6;}
  .gate-right{flex:1;position:relative;overflow:hidden;background:linear-gradient(180deg,#0a0b12 0%,#171040 42%,#2b2062 78%,#3a2a74 100%);}
  .gate-right .sky{position:absolute;inset:0;opacity:.9;
    background-image:
      radial-gradient(1.5px 1.5px at 12% 18%, #fff, transparent),
      radial-gradient(1.5px 1.5px at 60% 10%, #fff, transparent),
      radial-gradient(1px 1px at 80% 25%, #fff, transparent),
      radial-gradient(1.5px 1.5px at 38% 34%, #fff, transparent),
      radial-gradient(1px 1px at 8% 55%, #fff, transparent),
      radial-gradient(1.5px 1.5px at 92% 48%, #fff, transparent),
      radial-gradient(1px 1px at 28% 68%, #fff, transparent),
      radial-gradient(1.5px 1.5px at 68% 74%, #fff, transparent),
      radial-gradient(1px 1px at 48% 85%, #fff, transparent),
      radial-gradient(1.5px 1.5px at 18% 42%, #fff, transparent),
      radial-gradient(1px 1px at 84% 14%, #fff, transparent),
      radial-gradient(1.5px 1.5px at 52% 58%, #fff, transparent),
      radial-gradient(1px 1px at 96% 68%, #fff, transparent),
      radial-gradient(1px 1px at 5% 30%, #fff, transparent);
  }
  .gate-right .shooting-star{position:absolute;top:20%;right:12%;width:110px;height:2px;border-radius:2px;
    background:linear-gradient(90deg, rgba(255,255,255,.95), rgba(255,255,255,0));
    transform:rotate(-32deg);opacity:0;animation:shoot 6s ease-in infinite;animation-delay:1.4s;}
  @keyframes shoot{
    0%{opacity:0;transform:translate(0,0) rotate(-32deg);}
    4%{opacity:1;}
    22%{opacity:0;transform:translate(-240px,150px) rotate(-32deg);}
    100%{opacity:0;}
  }
  .gate-right .mountains{position:absolute;bottom:0;left:0;width:100%;height:42%;display:block;}
  @media (max-width:820px){ .gate-right{display:none;} .gate-left{max-width:100%;} }

  /* ================= Shell ================= */
  #shell{display:none;}
  #shell.is-open{display:block;}
  .btn{border:none;border-radius:var(--radius-sm);padding:10px 16px;font-size:13.5px;font-weight:700;display:inline-flex;align-items:center;gap:7px;transition:.15s;}
  .btn-primary{background:var(--cogna-purple);color:#fff;}
  .btn-primary:hover{background:var(--cogna-purple-dark);}
  .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);}
  .btn-ghost:hover{background:rgba(255,255,255,.16);}
  .btn-light{background:#fff;color:var(--cogna-dark);border:1.5px solid var(--gray-200);}
  .btn-light:hover{border-color:var(--cogna-purple);color:var(--cogna-purple-dark);}
  .btn-success{background:var(--success-bg);color:var(--success);border:1.5px solid transparent;}
  .btn-success:hover{border-color:var(--success);}
  .btn-danger{background:var(--danger-bg);color:var(--danger);border:1.5px solid transparent;}
  .btn-danger:hover{border-color:var(--danger);}
  .btn-sm{padding:7px 12px;font-size:12.5px;}
  .btn:disabled{opacity:.45;cursor:not-allowed;}
  .btn-link{background:none;border:none;color:var(--cogna-purple-dark);font-weight:700;font-size:12.5px;padding:4px 0;text-decoration:underline;}

  /* ---- Topbar (mobile only) ---- */
  .topbar{display:none;position:sticky;top:0;z-index:40;background:var(--cogna-dark);color:#fff;align-items:center;gap:12px;padding:12px 16px;box-shadow:var(--shadow-md);}
  .topbar__logo{height:26px;}
  .topbar__title{font-weight:700;font-size:14px;flex:1;}
  .topbar__menu-btn{background:rgba(255,255,255,.08);border:none;color:#fff;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  #sidebar-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:55;}
  #sidebar-scrim.is-open{display:block;}

  /* ---- App shell (sidebar + main) ---- */
  #app-shell{display:flex;align-items:flex-start;}

  .sidebar{
    width:280px;flex-shrink:0;background:var(--cogna-dark);color:#fff;
    padding:26px 18px 18px;display:flex;flex-direction:column;
    position:sticky;top:0;height:100vh;overflow-y:auto;
  }
  .sidebar__brand{display:flex;align-items:center;gap:12px;padding-bottom:20px;margin-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1);}
  .sidebar__logo{height:34px;}
  .sidebar__brand-text{font-size:11.5px;color:rgba(255,255,255,.55);line-height:1.4;}
  .sidebar__title{font-size:17px;font-weight:800;margin:0 0 2px;letter-spacing:-.2px;color:#fff;}
  .sidebar__subtitle{font-size:12px;color:rgba(255,255,255,.55);margin:0 0 14px;}
  .sidebar__status{font-size:11.5px;color:rgba(255,255,255,.65);font-weight:700;margin:0 0 16px;}

  .steps{list-style:none;margin:0 0 0;padding:0;}
  .step{display:flex;align-items:center;gap:10px;padding:10px 10px;border-radius:10px;margin-bottom:2px;cursor:pointer;font-size:13.2px;color:rgba(255,255,255,.75);transition:background .15s ease;border:none;background:none;width:100%;text-align:left;font-family:inherit;}
  .step:hover{background:rgba(255,255,255,.06);}
  .step.is-active{background:rgba(127,57,243,.25);color:#fff;font-weight:700;}
  .step__badge{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);}
  .step.is-active .step__badge{background:var(--cogna-purple);color:#fff;}
  .step__title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .step__count{flex-shrink:0;min-width:18px;text-align:center;padding:1px 6px;border-radius:99px;background:var(--warning);color:#4a3400;font-size:10.5px;font-weight:800;}
  .step__count:empty{display:none;}

  .sidebar__footer{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);font-size:10.5px;color:rgba(255,255,255,.4);line-height:1.5;}

  .main{flex:1;min-width:0;padding:26px 28px 60px;}

  .upload-card{background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--shadow-sm);margin-bottom:26px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
  .upload-card h3{font-size:15.5px;margin-bottom:5px;}
  .upload-card .sub{color:var(--gray-500);font-size:12.5px;}
  .upload-card__hint{color:var(--gray-500);font-size:12.5px;line-height:1.55;max-width:560px;margin-top:2px;}
  .upload-card__hint code{background:var(--gray-100);color:var(--cogna-purple-dark);padding:1px 5px;border-radius:4px;font-size:11.5px;}
  .upload-card__hint strong{color:var(--cogna-dark);}
  .upload-status{margin-top:4px;font-size:12.5px;font-weight:700;display:flex;align-items:center;gap:6px;}
  .upload-status.ok{color:var(--success);}
  .upload-status.empty{color:var(--gray-500);font-weight:500;}
  .upload-status.err{color:var(--danger);}
  input[type=file]{display:none;}

  .stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:24px;}
  .stat-card{background:#fff;border-radius:var(--radius-lg);border:1.5px solid var(--gray-200);padding:20px 20px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px;position:relative;}
  .stat-card__icon{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;}
  .stat-card__icon--total{background:var(--cogna-purple-light);color:var(--cogna-purple-dark);}
  .stat-card__icon--done{background:var(--success-bg);color:var(--success);}
  .stat-card__icon--pending{background:var(--warning-bg);color:var(--warning);}
  .stat-card__icon--other{background:var(--danger-bg);color:var(--danger);}
  .stat-card .label{font-size:11.5px;color:var(--gray-700);font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding-right:40px;}
  .stat-card .value{font-size:30px;font-weight:800;color:var(--cogna-dark);}
  .stat-card.total .value{color:var(--cogna-purple-dark);}
  .stat-card.done .value{color:var(--success);}
  .stat-card.pending .value{color:var(--warning);}
  .stat-card.other .value{color:var(--danger);}
  .stat-card .hint{font-size:11px;color:var(--gray-500);}

  .ring-card{grid-column:span 1;display:flex;flex-direction:row;align-items:center;gap:14px;}
  .ring{width:66px;height:66px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--success) calc(var(--pct,0)*1%), var(--gray-200) 0);position:relative;}
  .ring::after{content:'';width:46px;height:46px;border-radius:50%;background:#fff;position:absolute;}
  .ring span{position:relative;z-index:2;font-size:13.5px;font-weight:800;color:var(--cogna-dark);}

  .panel{background:#fff;border-radius:var(--radius-lg);border:1.5px solid var(--gray-200);box-shadow:var(--shadow-sm);margin-bottom:22px;overflow:hidden;}
  .panel__head{padding:16px 20px;border-bottom:1.5px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}
  .panel__head h3{font-size:15px;}
  .panel__body{padding:6px 0;}
  .panel__body.pad{padding:16px 20px;}

  .table-scroll{overflow-x:auto;}
  table{width:100%;border-collapse:collapse;font-size:13px;}
  thead th{text-align:left;padding:10px 20px;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--gray-500);border-bottom:1.5px solid var(--gray-100);white-space:nowrap;}
  tbody td{padding:11px 20px;border-bottom:1px solid var(--gray-100);vertical-align:middle;white-space:nowrap;}
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:hover{background:var(--gray-50);}
  .badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:11.5px;font-weight:700;white-space:nowrap;}
  .badge.ok{background:var(--success-bg);color:var(--success);}
  .badge.pend{background:var(--warning-bg);color:var(--warning);}
  .badge.warn{background:var(--warning-bg);color:var(--warning);}
  .badge.rep{background:var(--danger-bg);color:var(--danger);}
  .badge.info{background:var(--info-bg);color:var(--info);}
  .badge.neutral{background:var(--neutral-bg);color:var(--neutral);}
  .pct-cell{font-weight:700;}
  .badge-fonte{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;font-size:10.5px;font-weight:700;background:var(--info-bg);color:var(--info);margin-left:6px;}
  .hint-box{background:var(--cogna-purple-light);border:1.5px solid #E4D3FC;border-radius:var(--radius-md);padding:14px 16px;font-size:12.5px;color:var(--cogna-purple-dark);margin:0 0 16px;display:flex;gap:10px;align-items:flex-start;}
  .action-cell{display:flex;gap:6px;flex-wrap:wrap;}
  /* ---- Histórico Anual: pílula de nota, ícones de ação e aviso do ano atual ---- */
  .icon-btn-view,.icon-btn-remove{width:30px;height:30px;border-radius:50%;border:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;flex-shrink:0;}
  .icon-btn-view{background:var(--info-bg);color:var(--info);}
  .icon-btn-view:hover{background:var(--info);color:#fff;}
  .icon-btn-remove{background:var(--gray-100);color:var(--gray-500);}
  .icon-btn-remove:hover{background:var(--danger-bg);color:var(--danger);}
  .historico-date-cell{display:inline-flex;align-items:center;gap:6px;color:var(--gray-700);}
  .historico-current-year-note{background:var(--success-bg);border:1.5px solid #CBEBD9;border-radius:var(--radius-md);padding:12px 14px;font-size:12.5px;color:var(--success);margin:0 0 14px;display:flex;gap:8px;align-items:flex-start;}

  .toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 20px;border-bottom:1.5px solid var(--gray-100);}
  .toolbar input[type=text]{flex:1;min-width:180px;padding:9px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;}
  .toolbar select{padding:9px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;background:#fff;}
  .toolbar input:focus,.toolbar select:focus{outline:none;border-color:var(--cogna-purple);}

  .pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1.5px solid var(--gray-100);flex-wrap:wrap;}
  .pager .info{font-size:12.5px;color:var(--gray-500);}
  .pager .btns{display:flex;gap:6px;align-items:center;}
  .pager button{border:1.5px solid var(--gray-200);background:#fff;border-radius:var(--radius-sm);padding:6px 12px;font-size:12.5px;font-weight:700;color:var(--cogna-dark);}
  .pager button:hover:not(:disabled){border-color:var(--cogna-purple);color:var(--cogna-purple-dark);}
  .pager button:disabled{opacity:.4;cursor:not-allowed;}
  .pager button.current{background:var(--cogna-purple);color:#fff;border-color:var(--cogna-purple);}

  .empty-state{padding:44px 20px;text-align:center;color:var(--gray-500);font-size:13.5px;}
  .empty-state strong{display:block;color:var(--cogna-dark);font-size:14.5px;margin-bottom:6px;}
  .empty-state .btn-link{margin-top:10px;}

  .toast-region{position:fixed;bottom:20px;right:20px;z-index:900;display:flex;flex-direction:column;gap:8px;}
  .toast{background:var(--cogna-dark);color:#fff;padding:12px 18px;border-radius:var(--radius-sm);font-size:13px;box-shadow:var(--shadow-md);max-width:340px;animation:toastIn .2s ease;}
  .toast.err{background:var(--danger);}
  .toast.ok{background:var(--success);}
  @keyframes toastIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

  /* ---- modal de análise (aprovar/reprovar checklist) ---- */
  /* obs: sem "display" aqui de propósito -- a visibilidade do #review-modal
     é controlada via style.display inline no JS (abre/fecha), então a regra
     da classe não precisa (e não deve) forçar display:flex por padrão; isso
     evitaria conflito com outras telas que usam .modal-overlay + .is-open
     (ex.: o modal de câmera do formulário, quando os dois CSS são unidos
     no style.css compartilhado do projeto em pastas). */
  .modal-overlay{position:fixed;inset:0;background:rgba(20,18,35,.55);z-index:80;align-items:center;justify-content:center;padding:20px;}
  .modal-box{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px;width:100%;max-width:460px;}
  .modal-box h3{margin:0 0 4px;font-size:16px;}
  .modal-box .sub{color:var(--gray-500);font-size:12.5px;margin-bottom:16px;}
  .modal-box label{display:block;font-size:12px;font-weight:700;color:var(--gray-700);margin-bottom:6px;}
  .modal-box textarea{width:100%;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;font-size:13.5px;resize:vertical;min-height:90px;}
  .modal-box textarea:focus{outline:none;border-color:var(--cogna-purple);}
  .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
  .action-cell{display:flex;gap:6px;flex-wrap:wrap;}

  .stat-grid.cols-4{grid-template-columns:repeat(4,1fr);}
  .stat-grid.cols-2{grid-template-columns:repeat(2,1fr);}

  /* ---- link "nome da unidade" clicável (abre análise detalhada) ---- */
  .link-unidade{background:none;border:none;padding:0;color:var(--cogna-purple-dark);font-weight:800;text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit;}
  .link-unidade:hover{color:var(--cogna-purple);}

  /* ---- análise detalhada de um checklist (visão completa, editável) ---- */
  .detalhe-layout{display:flex;gap:20px;align-items:stretch;width:calc(100vw - 408px);max-width:1400px;}
  /* o cartão de cabeçalho (nome da unidade/protocolo/gestor + botão Voltar)
     acima do layout de detalhe -- sem isto ele fica com a largura antiga
     (a de .main, mais estreita), enquanto o bloco de baixo já ficou mais
     largo, então as duas caixas ficavam com tamanhos diferentes. */
  #view-detalhe .upload-card{width:calc(100vw - 408px);max-width:1400px;box-sizing:border-box;}
  .detalhe-sidebar{width:270px;flex-shrink:0;background:var(--cogna-dark);border-radius:var(--radius-lg);padding:16px;position:sticky;top:16px;max-height:calc(100vh - 170px);display:flex;flex-direction:column;}
  .detalhe-actions{padding-top:14px;margin-top:10px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:8px;flex-shrink:0;}
  .detalhe-actions .btn{width:100%;justify-content:center;}
  .detalhe-steps-scroll{overflow-y:auto;min-height:0;flex:1 1 auto;}
  .detalhe-main{flex:1;min-width:0;background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);padding:22px 24px;}
  .det-section-head{margin-bottom:18px;padding-bottom:14px;border-bottom:1.5px solid var(--gray-100);}
  .det-section-head h3{font-size:16.5px;color:var(--cogna-dark);margin-bottom:3px;}
  .det-section-head .sub{font-size:12.5px;color:var(--gray-500);}
  .det-card{display:flex;flex-direction:column;gap:18px;}
  .det-field__label{display:block;font-size:12.5px;font-weight:700;color:var(--cogna-dark);margin-bottom:6px;}
  .det-input{width:100%;padding:10px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13.5px;font-family:inherit;background:#fff;}
  .det-input:focus{outline:none;border-color:var(--cogna-purple);}
  .det-input:disabled{background:var(--gray-50);color:var(--gray-500);}
  .det-pill-group{display:flex;gap:8px;flex-wrap:wrap;}
  .det-pill{position:relative;}
  .det-pill input{position:absolute;opacity:0;width:1px;height:1px;}
  .det-pill label{display:inline-block;padding:8px 16px;border-radius:99px;border:1.5px solid var(--gray-200);font-size:12.5px;font-weight:700;cursor:pointer;color:var(--cogna-dark);}
  .det-pill input:checked + label{border-color:transparent;color:#fff;}
  .det-pill.is-yes input:checked + label{background:var(--success);}
  .det-pill.is-no input:checked + label{background:var(--danger);}
  .det-pill.is-na input:checked + label{background:var(--gray-500);}
  .det-check-grid{display:flex;flex-wrap:wrap;gap:14px;}
  .det-check{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--cogna-dark);}
  .det-people-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;}
  .det-people-row .det-input{flex:1;}
  .det-photo-grid{display:flex;flex-wrap:wrap;gap:10px;}
  .det-photo-thumb{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;display:block;border-radius:10px;transition:transform .12s ease,box-shadow .12s ease;position:relative;}
  .det-photo-thumb:hover{transform:scale(1.04);box-shadow:0 4px 14px rgba(0,0,0,.16);}
  .det-photo-thumb img{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1.5px solid var(--gray-200);display:block;}
  /* lupa que aparece no hover, só na miniatura de foto (não no bloco de PDF)
     -- deixa claro que dá pra clicar e ver em tela cheia/alta resolução */
  .det-photo-thumb:not(.det-photo-thumb--pdf)::after{
    content:'🔍'; position:absolute; inset:0; border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    font-size:22px; color:#fff; background:rgba(20,16,32,0);
    opacity:0; transition:opacity .15s ease, background .15s ease; pointer-events:none;
  }
  .det-photo-thumb:not(.det-photo-thumb--pdf):hover::after{ opacity:1; background:rgba(20,16,32,.38); }
  .det-photo-thumb--pdf{width:96px;height:96px;border-radius:10px;border:1.5px solid var(--gray-200);background:var(--cogna-purple-light);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:24px;text-decoration:none;color:var(--cogna-purple-dark);text-align:center;padding:6px;box-sizing:border-box;}
  .det-photo-thumb--pdf span{font-size:9.5px;font-weight:700;word-break:break-all;line-height:1.25;}
  .lightbox-overlay{position:fixed;inset:0;background:rgba(20,16,32,.88);z-index:2000;display:flex;align-items:center;justify-content:center;padding:40px;}
  .lightbox-overlay[hidden]{display:none;}
  .lightbox-body{max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:10px;}
  .lightbox-body img{max-width:88vw;max-height:82vh;object-fit:contain;border-radius:8px;cursor:zoom-in;transition:transform .2s ease;background:#fff;}
  .lightbox-body img.is-zoomed{transform:scale(1.9);cursor:zoom-out;}
  .lightbox-body iframe{width:min(88vw,900px);height:80vh;border:none;border-radius:8px;background:#fff;}
  .lightbox-toolbar{color:#fff;font-size:13px;background:rgba(0,0,0,.35);padding:8px 14px;border-radius:20px;}
  .lightbox-close{position:fixed;top:18px;right:22px;z-index:2001;width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
  .lightbox-close:hover{background:rgba(255,255,255,.26);}
  .det-hint{font-size:12.5px;color:var(--gray-500);font-style:italic;}
  .det-item-card{border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px;}
  .det-item-card__head h4{font-size:13.5px;margin-bottom:12px;color:var(--cogna-purple-dark);}
  .det-item-card__body{display:flex;flex-direction:column;gap:14px;}
  @media (max-width: 860px){
    .detalhe-layout{flex-direction:column;width:auto;max-width:none;}
    #view-detalhe .upload-card{width:auto;max-width:none;}
    .detalhe-sidebar{width:100%;position:static;max-height:none;}
  }
  @media (max-width:1080px){
    .stat-grid{grid-template-columns:repeat(3,1fr);}
    .stat-grid.cols-4{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:860px){
    .stat-grid{grid-template-columns:1fr 1fr;}
    table{font-size:12px;}
    thead th,tbody td{padding:9px 12px;}
  }

  /* ---- Sidebar as off-canvas overlay on small screens ---- */
  @media (max-width:980px){
    .sidebar{position:fixed;left:0;top:0;z-index:60;transform:translateX(-102%);transition:transform .25s ease;box-shadow:var(--shadow-lg);width:280px;height:100vh;}
    .sidebar.is-open{transform:translateX(0);}
    .topbar{display:flex;}
    .main{padding:20px 16px 60px;}
  }

  /* ---- Histórico Anual ---- */
  .historico-year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;}
  .historico-year-card{background:var(--white);border:1.5px solid var(--gray-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:20px;text-align:left;display:flex;flex-direction:column;gap:8px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;cursor:pointer;}
  .historico-year-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--cogna-purple);}
  .historico-year-card__year{font-size:26px;font-weight:800;color:var(--cogna-dark);}
  .historico-year-card__badge{align-self:flex-start;font-size:10.5px;font-weight:800;background:var(--neutral-bg);color:var(--neutral);padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.03em;}
  .historico-year-card__badge.has-data{background:var(--cogna-purple-light);color:var(--cogna-purple-dark);}
  .historico-year-card.is-open{border-color:var(--cogna-purple);box-shadow:0 0 0 3px rgba(127,57,243,.15);}
  .historico-detail{margin-top:18px;background:var(--gray-50);border:1.5px dashed var(--gray-300);border-radius:var(--radius-md);padding:20px 22px;display:none;}
  .historico-detail.is-open{display:block;}
  .historico-detail h4{margin:0 0 4px;font-size:16px;}
  .historico-detail__hint{margin:0 0 16px;font-size:12.5px;color:var(--gray-700);line-height:1.6;max-width:640px;}
  .historico-detail__toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
  .historico-detail__table-wrap{background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden;}
  .historico-detail__table-wrap table{font-size:12.5px;}
  .historico-detail__table-wrap th{background:var(--gray-50);text-align:left;padding:10px 12px;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--gray-700);}
  .historico-detail__table-wrap td{padding:10px 12px;border-top:1px solid var(--gray-100);vertical-align:top;}

  /* ================= Configurações ================= */
  .config-subnav{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;}
  .config-subnav button{border:1.5px solid var(--gray-200);background:#fff;color:var(--gray-700);border-radius:99px;padding:9px 18px;font-size:13px;font-weight:700;transition:.15s;}
  .config-subnav button:hover{border-color:var(--cogna-purple);color:var(--cogna-purple-dark);}
  .config-subnav button.is-active{background:var(--cogna-purple);border-color:var(--cogna-purple);color:#fff;}
  .config-section{display:none;}
  .config-section.is-active{display:block;}

  /* ---- Configurações > Perguntas: seletor de checklist (4 cards, igual à
     tela inicial do Polo) -- só "CL GERAL POLOS" abre o editor de perguntas;
     os demais ficam cinza com "Em breve" até existir estrutura pra eles. */
  .cfg-checklist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:6px;}
  .cfg-checklist-card{background:var(--cogna-dark-2,#1c1d26);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:0 8px 22px rgba(0,0,0,.18);padding:15px;display:flex;flex-direction:column;gap:7px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;cursor:pointer;text-align:left;width:100%;font-family:inherit;}
  .cfg-checklist-card:not(.is-disabled){border-color:rgba(155,107,250,.4);}
  .cfg-checklist-card:not(.is-disabled):hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(127,57,243,.35);border-color:#9B6BFA;}
  .cfg-checklist-card__icon{width:32px;height:32px;border-radius:9px;background:rgba(127,57,243,.25);color:#B98CF9;display:flex;align-items:center;justify-content:center;font-size:15px;}
  .cfg-checklist-card__name{font-size:12.5px;font-weight:800;line-height:1.3;margin:0;color:#fff;}
  .cfg-checklist-card__desc{font-size:10.5px;color:#9294a6;line-height:1.45;margin:0;flex:1;}
  .cfg-checklist-card__cta{font-size:10px;font-weight:800;color:#fff;display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:7px;background:linear-gradient(90deg,#9B6BFA,#6425D6);align-self:flex-start;box-shadow:0 4px 12px rgba(127,57,243,.4);}
  .cfg-checklist-card.is-disabled{cursor:not-allowed;opacity:.55;background:#26272f;}
  .cfg-checklist-card.is-disabled:hover{transform:none;box-shadow:0 8px 22px rgba(0,0,0,.18);border-color:rgba(255,255,255,.08);}
  .cfg-checklist-card.is-disabled .cfg-checklist-card__icon{background:rgba(255,255,255,.06);color:#63647a;}
  .cfg-checklist-card.is-disabled .cfg-checklist-card__cta{background:rgba(255,255,255,.06);color:#85879A;box-shadow:none;}
  .cfg-checklist-card__badge{font-size:9px;font-weight:800;background:rgba(255,255,255,.08);color:#c6c7d4;padding:2px 8px;border-radius:99px;align-self:flex-start;}
  /* Cards do departamento "Laboratórios e Bibliotecas" -- cor diferenciada
     (verde-água) pra identificar visualmente que são de outra área, igual
     ao pedido pros cards da tela inicial (index.html). */
  .cfg-checklist-card--lab:not(.is-disabled){border-color:rgba(30,197,168,.45);}
  .cfg-checklist-card--lab:not(.is-disabled):hover{box-shadow:0 14px 32px rgba(30,197,168,.3);border-color:#1EC5A8;}
  .cfg-checklist-card--lab:not(.is-disabled) .cfg-checklist-card__icon{background:rgba(30,197,168,.22);color:#5EEFD4;}
  .cfg-checklist-card--lab:not(.is-disabled) .cfg-checklist-card__cta{background:linear-gradient(90deg,#1EC5A8,#0E8C77);box-shadow:0 4px 12px rgba(30,197,168,.4);}
  .cfg-perguntas-editor{display:none;}
  .cfg-perguntas-editor.is-open{display:block;}
  .cfg-perguntas-back{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--cogna-purple-dark);font-size:13px;font-weight:700;padding:0 0 16px;cursor:pointer;}
  .cfg-perguntas-back:hover{text-decoration:underline;}

  /* ---- Configurações > Departamentos: checklists agrupados por
     departamento, com atalho pra editar perguntas e toggle ativar/desativar
     (ver renderDepartamentos() / api/checklists_status_*.php). */
  .depto-grupo{margin-bottom:22px;}
  .depto-grupo__titulo{font-size:13.5px;font-weight:800;color:var(--gray-700);margin:0 0 10px;display:flex;align-items:center;gap:6px;}
  .depto-grupo__lista{display:flex;flex-direction:column;gap:10px;}
  .depto-checklist-row{display:flex;align-items:center;gap:14px;background:var(--cogna-dark-2,#1c1d26);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:12px 16px;transition:opacity .15s ease,background .15s ease;}
  .depto-checklist-row.is-disabled{opacity:.6;background:#26272f;}
  .depto-checklist-row__icon{width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:rgba(127,57,243,.25);color:#B98CF9;display:flex;align-items:center;justify-content:center;font-size:16px;}
  .depto-checklist-row.is-disabled .depto-checklist-row__icon{background:rgba(255,255,255,.06);color:#63647a;}
  .depto-checklist-row__info{flex:1;min-width:0;}
  .depto-checklist-row__nome{font-size:13px;font-weight:800;color:#fff;line-height:1.35;}
  .depto-checklist-row__desc{font-size:11.5px;color:#9294a6;line-height:1.4;margin-top:2px;}
  .depto-checklist-row__editar{flex:0 0 auto;white-space:nowrap;}
  .depto-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;flex:0 0 auto;user-select:none;}
  .depto-toggle input{position:absolute;opacity:0;width:0;height:0;}
  .depto-toggle__track{position:relative;width:38px;height:22px;border-radius:99px;background:rgba(255,255,255,.14);transition:background .15s ease;flex:0 0 auto;}
  .depto-toggle__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#85879A;transition:transform .15s ease,background .15s ease;}
  .depto-toggle input:checked ~ .depto-toggle__track{background:rgba(30,197,168,.55);}
  .depto-toggle input:checked ~ .depto-toggle__track .depto-toggle__thumb{transform:translateX(16px);background:#1EC5A8;}
  .depto-toggle input:disabled ~ .depto-toggle__track{opacity:.5;}
  .depto-toggle__label{font-size:11px;font-weight:800;color:#c6c7d4;min-width:34px;}

  .pergunta-secao{background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-md);margin-bottom:12px;overflow:hidden;}
  .pergunta-secao__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;user-select:none;}
  .pergunta-secao__head:hover{background:var(--gray-50);}
  .pergunta-secao__title{font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:10px;}
  .pergunta-secao__num{background:var(--cogna-purple-light);color:var(--cogna-purple-dark);font-size:11px;font-weight:800;border-radius:7px;padding:3px 8px;}
  .pergunta-secao__count{font-size:11.5px;color:var(--gray-500);font-weight:600;}
  .pergunta-secao__chevron{transition:transform .15s ease;color:var(--gray-500);}
  .pergunta-secao.is-open .pergunta-secao__chevron{transform:rotate(180deg);}
  .pergunta-secao__body{display:none;border-top:1.5px solid var(--gray-100);padding:6px 18px 16px;}
  .pergunta-secao.is-open .pergunta-secao__body{display:block;}
  .pergunta-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--gray-100);}
  .pergunta-item:last-child{border-bottom:none;}
  .pergunta-item__label{font-size:13px;font-weight:600;line-height:1.4;}
  .pergunta-item__meta{font-size:11px;color:var(--gray-500);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;}
  .pergunta-item__badge{background:var(--neutral-bg);color:var(--neutral);border-radius:99px;padding:1px 8px;font-weight:700;}
  .pergunta-item__badge.required{background:var(--warning-bg);color:var(--warning);}
  .pergunta-item__badge.custom{background:var(--info-bg);color:var(--info);}
  .pergunta-item__actions{display:flex;gap:6px;flex-shrink:0;}
  .pergunta-item__actions button{border:none;background:var(--gray-100);color:var(--gray-700);border-radius:7px;width:28px;height:28px;font-size:13px;}
  .pergunta-item__actions button:hover{background:var(--gray-200);}
  .pergunta-item__actions button.danger:hover{background:var(--danger-bg);color:var(--danger);}
  .pergunta-add-row{padding-top:12px;}

  .form-grid{display:grid;gap:14px;}
  .form-grid label{display:block;font-size:12px;font-weight:700;color:var(--gray-700);margin-bottom:6px;text-transform:uppercase;letter-spacing:.02em;}
  .form-grid input[type=text],.form-grid input[type=date],.form-grid input[type=number],.form-grid input[type=email],.form-grid select,.form-grid textarea{width:100%;padding:10px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13.5px;background:#fff;}
  .form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--cogna-purple);box-shadow:0 0 0 3px rgba(127,57,243,.12);}
  .form-grid textarea{min-height:70px;resize:vertical;}
  .form-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--cogna-dark);}
  .form-check input{width:16px;height:16px;}

  .notif-table{table-layout:fixed;}
  .notif-table td{vertical-align:top;white-space:normal;word-break:break-word;overflow-wrap:break-word;padding-right:10px;}
  .notif-table th:nth-child(1),.notif-table td:nth-child(1){width:18%;}
  .notif-table th:nth-child(2),.notif-table td:nth-child(2){width:36%;}
  .notif-table th:nth-child(3),.notif-table td:nth-child(3){width:12%;}
  .notif-table th:nth-child(4),.notif-table td:nth-child(4){width:12%;}
  .notif-table th:nth-child(5),.notif-table td:nth-child(5){width:22%;}
  .notif-status-pill{font-size:11px;font-weight:800;border-radius:99px;padding:3px 10px;display:inline-block;}
  .notif-status-pill.ativa{background:var(--success-bg);color:var(--success);}
  .notif-status-pill.inativa{background:var(--neutral-bg);color:var(--neutral);}
  .notif-status-pill.agendada{background:var(--info-bg);color:var(--info);}

  /* pop-up de nova onda de checklist */
  .notif-popup-overlay{position:fixed;inset:0;background:rgba(20,14,40,.55);z-index:1200;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px);}
  .notif-popup-overlay.is-open{display:flex;}
  .notif-popup{background:#fff;border-radius:var(--radius-lg);max-width:440px;width:100%;box-shadow:var(--shadow-lg);overflow:hidden;animation:notifPopIn .25s ease;}
  @keyframes notifPopIn{from{opacity:0;transform:translateY(14px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
  .notif-popup__head{background:linear-gradient(120deg,var(--cogna-purple-dark),var(--cogna-purple) 55%,var(--cogna-purple-light2));padding:26px 26px 22px;color:#fff;position:relative;}
  .notif-popup__icon{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:14px;}
  .notif-popup__head h3{font-size:18px;margin:0 0 4px;}
  .notif-popup__head p{font-size:12px;color:rgba(255,255,255,.8);margin:0;}
  .notif-popup__body{padding:22px 26px;}
  .notif-popup__body p{font-size:13.5px;line-height:1.6;color:var(--cogna-dark);white-space:pre-wrap;}
  .notif-popup__actions{display:flex;gap:10px;padding:0 26px 24px;}
  .notif-popup__actions .btn{flex:1;justify-content:center;}

  /* ---- Versão celular do painel: "Checklist em Análise", "Checklists
     Concluídos" e "Roteiros de Viagem" ficam disponíveis — "Painel Geral",
     "Histórico Anual" e "Configurações" exigem a tela maior do computador. ---- */
  .mobile-desktop-notice{ display:none; align-items:center; gap:10px; background:var(--info-bg); color:var(--info); border-radius:var(--radius-md); padding:12px 16px; font-size:12.5px; font-weight:600; margin-bottom:18px; }
  @media (max-width:820px){
    #admin-nav-list .step[data-tab="painel"],
    #admin-nav-list .step[data-tab="historico"],
    #admin-nav-list .step[data-tab="configuracoes"]{ display:none; }
    .mobile-desktop-notice{ display:flex; }
    /* Campo com fonte >=16px evita o zoom automático do Safari/iOS ao focar. */
    .toolbar input[type=text], .toolbar select{ font-size:16px; }
  }

/* ============================================================
 * ROTEIROS DE VIAGEM
 * ========================================================== */
.rot-toolbar{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; padding:16px 20px; border-bottom:1.5px solid var(--gray-100); }
.rot-toolbar select{ padding:9px 12px; border:1.5px solid var(--gray-200); border-radius:var(--radius-sm); font-size:13px; background:#fff; min-width:220px; }
.rot-toolbar select:focus{ outline:none; border-color:var(--cogna-purple); }

.rot-lista{ list-style:none; margin:0; padding:12px; display:flex; flex-direction:column; gap:8px; }
.rot-parada{ display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border:1.5px solid var(--gray-100); border-radius:var(--radius-md); background:#fff; }
.rot-parada__num{ flex:0 0 auto; width:26px; height:26px; border-radius:50%; background:var(--cogna-purple); color:#fff; font-size:12.5px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.rot-parada__corpo{ flex:1; min-width:0; }
.rot-parada__polo{ font-size:13.5px; font-weight:700; color:var(--cogna-dark); }
.rot-parada__end{ font-size:12px; color:var(--gray-700); margin-top:2px; line-height:1.4; }
.rot-parada__meta{ font-size:11.5px; color:var(--gray-500); margin-top:4px; }

.rot-resumo{ display:flex; gap:18px; flex-wrap:wrap; padding:14px 20px; border-bottom:1.5px solid var(--gray-100); font-size:12.5px; color:var(--gray-700); }
.rot-resumo strong{ color:var(--cogna-dark); }

.rot-mapa-wrap{ padding:16px 20px 4px; border-bottom:1.5px solid var(--gray-100); }
.rot-mapa{ width:100%; height:340px; border-radius:var(--radius-md); border:1.5px solid var(--gray-100); background:var(--gray-50); }
.rot-mapa__legenda{ font-size:11.5px; color:var(--gray-500); margin:8px 0 4px; }
.rot-mapa-pin{ background:var(--cogna-purple); color:#fff; border-radius:50%; width:26px; height:26px; display:flex; align-items:center; justify-content:center; font-size:12.5px; font-weight:800; border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.35); }

/* ============================================================
 * DASHBOARD EXECUTIVO (topo da aba "Painel Geral")
 * ========================================================== */
.dash-header{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.dash-header__crumb{ font-size:12px; color:var(--gray-500); font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:4px; }
.dash-header__title{ font-size:22px; font-weight:800; margin:0; color:var(--cogna-dark); }
.dash-header__date{ font-size:12.5px; color:var(--gray-500); background:#fff; padding:8px 14px; border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); border:1.5px solid var(--gray-100); }

.dash-kpi-row{ margin-bottom:18px; }

.dash-panel-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:16px; margin-bottom:22px; }
@media (max-width: 900px){ .dash-panel-grid{ grid-template-columns:1fr; } }

.dash-donut-wrap{ padding:22px 20px; display:flex; flex-direction:column; align-items:center; gap:14px; }
.dash-donut-legend{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; font-size:12px; color:var(--gray-700); }
.dash-donut-legend .dot{ width:9px; height:9px; border-radius:50%; display:inline-block; margin-right:5px; }

.ring--lg{ width:150px; height:150px; background:conic-gradient(var(--success) calc(var(--pct,0)*1%), var(--gray-200) 0); }
.ring--lg::after{ width:106px; height:106px; }
.ring--lg span{ font-size:24px; }