/* Padrão compartilhado de legibilidade do Centro Operacional. */
:root {
  --ink-soft: #59655f;
  --soft: #59655f;
}

html[data-theme="dark"] {
  --ink: #f0f7f5;
  --ink-soft: #a8bab5;
  --soft: #a8bab5;
  --line: #2d4540;
  --line-soft: #21332f;
}

body {
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}

/* Menu lateral */
.shell { grid-template-columns: 260px minmax(0, 1fr); }
.sidebar {
  color: #ddebe8;
  background: linear-gradient(165deg, #10201f, #091412 52%, #07100f);
  box-shadow: 8px 0 30px rgba(10, 30, 25, .12);
}
.side-brand,
.brand { display: flex; align-items: center; gap: 11px; min-height: 79px; padding: 20px 17px 16px; }
.side-brand strong,
.brand strong { display: block; color: #f1f9f7; font-size: 14px; }
.brand-mark {
  display: grid;
  place-items: center;
  flex: 0 0 43px;
  width: 43px;
  height: 43px;
  border: 1px solid rgba(87, 216, 194, .22);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(55, 197, 173, .17), rgba(34, 105, 133, .12));
}
.brand-mark img { width: 34px; height: 30px; object-fit: contain; }
.side-nav,
.nav { flex: 1; padding: 2px 10px 14px; }
.side-brand span,
.brand span { font-size: 10px; }
.workspace span,
.nav-label { font-size: 9.5px; }
.workspace strong { font-size: 12px; }
.nav-item { font-size: 13px; }
.nav-icon {
  display: grid;
  place-items: center;
  flex: 0 0 29px;
  width: 29px;
  height: 29px;
  border-radius: 8px;
  color: #7e9c96;
  background: rgba(255, 255, 255, .035);
}
.nav-icon svg { width: 15px; height: 15px; }
.nav-item.active .nav-icon { color: #65e0cb; background: rgba(55, 205, 180, .13); }
.soon { font-size: 9px; }
.user-copy strong { font-size: 12px; }
.user-copy span { font-size: 10px; }
.theme-value,
.theme b { font-size: 10px; }
.theme-toggle,
.theme {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  margin: 0 12px 2px;
  padding: 9px 10px;
  border: 1px solid rgba(157, 197, 188, .1);
  border-radius: 10px;
  color: #91aaa5;
  background: rgba(255, 255, 255, .025);
  font: 600 10.5px var(--sans, system-ui);
  cursor: pointer;
}
.theme-icon { display: grid; place-items: center; width: 18px; height: 18px; }
.theme-icon svg { width: 17px; height: 17px; }
.theme-value { margin-left: auto; color: #63817a; font-weight: 800; text-transform: uppercase; }
.online-dot {
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #4cd3a7;
  box-shadow: 0 0 0 3px rgba(76, 211, 167, .09);
}

/* Cabeçalhos, cards e textos explicativos */
.subtitle,
.head p { font-size: 14px; font-weight: 500; line-height: 1.5; }
.updated,
.section-note,
.visible-count { font-size: 11.5px; font-weight: 500; }
.metric-label { font-size: 13px; }
.metric-note,
.metric span,
.panel-title p,
.panel p,
.notice,
.quality-note { font-size: 11.5px; font-weight: 500; line-height: 1.5; }
.delivery-detail,
.camera-aggregate-copy p,
.camera-aggregate-total span,
.camera-limit-copy span { font-size: 10.5px; line-height: 1.45; }

/* Tabelas e informações operacionais */
th,
.table-head span { font-size: 10.5px; font-weight: 700; line-height: 1.35; }
td { font-size: 11.5px; line-height: 1.45; }
td strong,
.identity strong { font-size: 12px; }
td small,
.identity small,
.contract small,
.updated-cell { font-size: 10.5px; line-height: 1.4; }
.rank,
.range-count,
.page-current { font-size: 10.5px; }
.page-btn,
.action { font-size: 11px; }
.status,
.status-badge,
.badge,
.chip,
.count-badge,
.client-count,
.cancelled-badge,
.blocked-badge,
.block-type,
.wait-days { font-size: 10px; }

/* Elementos específicos das abas */
.legend,
.fc .fc-col-header-cell-cushion,
.fc .fc-daygrid-day-number,
.fc .fc-event { font-size: 11px; }
.detail span { font-size: 10px; }
.detail strong { font-size: 13px; }
.drawer-subtitle { font-size: 11.5px; }
.field label,
.permissions-title { font-size: 11px; }
.hint { font-size: 10.5px; line-height: 1.4; }
.permission { font-size: 11px; line-height: 1.45; }
.notification-head span,
.notification-read-all,
.notification-copy small { font-size: 10px; }
.notification-copy strong { font-size: 12px; }
.notification-copy > span { font-size: 11px; }
footer,
.footer { font-size: 11.5px; }

@media (max-width: 760px) {
  .shell { grid-template-columns: 1fr; }
  .nav-item { font-size: 12.5px; }
  td::before,
  .table-wrap td::before { font-size: 10px; }
}
