@charset "UTF-8";

/*!
 * ProdutiviTrack — folha única de estilos (main.css)
 * Namespace público: .pt-*
 * Consolidada a partir do design system da versão anterior; contém somente os estilos em uso.
 */

/* ===== Fonte: styles/main.css ===== */

/*!
 * ProdutiviTrack Design System
 * Folha de estilos oficial para aplicações comerciais de rastreamento BLE.
 * Versão: 1.0.0
 * Namespace público: .pt-*
 *
 * Requisitos:
 * - Dark-first e compatível com white-label por custom properties.
 * - Estados acessíveis por teclado.
 * - Transições discretas e animações orientadas a feedback.
 * - Compatível com prefers-reduced-motion, prefers-contrast e forced-colors.
 */
/* ==========================================================================
   TOKENS COMPLEMENTARES, ESCALA E CONFIGURAÇÃO COMERCIAL
   ========================================================================== */
:root {
  --pt-white: #FFFFFF;
  --pt-black: #000000;
  --pt-primary-rgb: 212, 106, 31;
  --pt-danger-rgb: 255, 90, 61;
  --pt-divider: rgba(255, 255, 255, 0.055);
  --pt-hover-neutral: rgba(255, 255, 255, 0.055);
  --pt-control-height-xs: 32px;
  --pt-control-height-sm: 36px;
  --pt-control-height-md: 44px;
  --pt-control-height-lg: 52px;
  --pt-sidebar-width: 264px;
  --pt-topbar-height: 72px;
  --pt-page-max-width: 1920px;
  --pt-z-sticky: 100;
  --pt-z-dropdown: 400;
  --pt-z-backdrop: 700;
  --pt-z-modal: 800;
  --pt-z-tooltip: 1000;
  --pt-transition-colors:
    color var(--pt-motion-fast) var(--pt-ease-standard),
    background-color var(--pt-motion-fast) var(--pt-ease-standard),
    border-color var(--pt-motion-fast) var(--pt-ease-standard);
  --pt-transition-surface:
    background-color var(--pt-motion-base) var(--pt-ease-standard),
    border-color var(--pt-motion-base) var(--pt-ease-standard),
    box-shadow var(--pt-motion-base) var(--pt-ease-standard),
    transform var(--pt-motion-base) var(--pt-ease-standard);
  --pt-scrollbar-size: 10px;
  --pt-scrollbar-track: rgba(255, 255, 255, 0.025);
  --pt-scrollbar-thumb: #343B45;
  --pt-scrollbar-thumb-hover: #454E5A;
}

/* ==========================================================================
   CSS DE REFERÊNCIA APROVADO
   ========================================================================== */
:root {
  color-scheme: dark;
  --pt-primary-200: #F8C195;
  --pt-primary-300: #F2A15F;
  --pt-primary-400: #E57C31;
  --pt-bg-950: #060709;
  --pt-bg-900: #0B0B0D;
  --pt-bg-850: #0F1114;
  --pt-surface-1: #171A1F;
  --pt-surface-2: #1E232B;
  --pt-surface-3: #252B34;
  --pt-border-subtle: #2B313A;
  --pt-border-strong: #3B434E;
  --pt-text-100: #F5F7FA;
  --pt-text-200: #DDE2E8;
  --pt-text-300: #A6ADB8;
  --pt-text-500: #6F7782;
  --pt-primary: #D46A1F;
  --pt-primary-hover: #E07A32;
  --pt-primary-action: #A65317;
  --pt-primary-active: #8F4311;
  --pt-primary-soft: rgba(212, 106, 31, 0.14);
  --pt-primary-border: rgba(212, 106, 31, 0.48);
  --pt-success: #22C55E;
  --pt-warning: #F59E0B;
  --pt-danger: #FF5A3D;
  --pt-info: #3B82F6;
  --pt-offline: #7A828E;
  --pt-success-soft: rgba(34, 197, 94, 0.14);
  --pt-warning-soft: rgba(245, 158, 11, 0.14);
  --pt-danger-soft: rgba(255, 90, 61, 0.14);
  --pt-info-soft: rgba(59, 130, 246, 0.14);
  --pt-offline-soft: rgba(122, 130, 142, 0.14);
  --pt-font-sans: Inter, ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pt-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
  --pt-space-1: 4px;
  --pt-space-2: 8px;
  --pt-space-3: 12px;
  --pt-space-4: 16px;
  --pt-space-5: 20px;
  --pt-space-6: 24px;
  --pt-space-8: 32px;
  --pt-space-10: 40px;
  --pt-radius-xs: 4px;
  --pt-radius-sm: 6px;
  --pt-radius-md: 8px;
  --pt-radius-lg: 12px;
  --pt-radius-xl: 16px;
  --pt-radius-2xl: 20px;
  --pt-radius-pill: 999px;
  --pt-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.28);
  --pt-shadow-card: 0 12px 32px rgba(0, 0, 0, 0.24);
  --pt-shadow-elevated: 0 20px 60px rgba(0, 0, 0, 0.38);
  --pt-shadow-hover:
    0 16px 40px rgba(0, 0, 0, 0.30),
    0 0 0 1px rgba(212, 106, 31, 0.10),
    0 0 24px rgba(212, 106, 31, 0.08);
  --pt-focus-ring: 0 0 0 3px rgba(212, 106, 31, 0.32);
  --pt-motion-instant: 80ms;
  --pt-motion-fast: 140ms;
  --pt-motion-base: 200ms;
  --pt-motion-slow: 280ms;
  --pt-motion-enter: 320ms;
  --pt-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --pt-ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: var(--pt-bg-900);
  color: var(--pt-text-100);
  font-family: var(--pt-font-sans);
  text-rendering: optimizeLegibility;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background:
    radial-gradient(circle at 85% 0%, rgba(195, 94, 30, 0.055), transparent 28rem),
    var(--pt-bg-900);
  color: var(--pt-text-100);
  font-size: 14px;
  line-height: 1.4286;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
[role="button"],
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}

:focus {
  outline: none;
}

:focus-visible {
  outline: none;
  box-shadow: var(--pt-focus-ring);
}

::selection {
  background: rgba(212, 106, 31, 0.32);
  color: var(--pt-text-100);
}

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

.pt-display,
.pt-h1,
.pt-h2,
.pt-h3,
.pt-subtitle,
.pt-body,
.pt-label,
.pt-caption {
  margin: 0;
}

.pt-display {
  font-size: 40px;
  line-height: 48px;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.pt-h1 {
  font-size: 32px;
  line-height: 40px;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.pt-h2 {
  font-size: 24px;
  line-height: 32px;
  font-weight: 600;
  letter-spacing: -0.015em;
}

.pt-h3 {
  font-size: 20px;
  line-height: 28px;
  font-weight: 500;
}

.pt-subtitle {
  font-size: 16px;
  line-height: 24px;
  font-weight: 500;
}

.pt-body {
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}

.pt-label {
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
}

.pt-caption {
  font-size: 11px;
  line-height: 16px;
  font-weight: 400;
  color: var(--pt-text-300);
}

.pt-number {
  font-variant-numeric: tabular-nums;
}

.pt-btn {
  --pt-btn-bg: transparent;
  --pt-btn-border: transparent;
  --pt-btn-color: var(--pt-text-100);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pt-space-2);
  min-width: 0;
  border: 1px solid var(--pt-btn-border);
  border-radius: var(--pt-radius-md);
  background: var(--pt-btn-bg);
  color: var(--pt-btn-color);
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition:
    color var(--pt-motion-fast) var(--pt-ease-standard),
    background-color var(--pt-motion-fast) var(--pt-ease-standard),
    border-color var(--pt-motion-fast) var(--pt-ease-standard),
    box-shadow var(--pt-motion-base) var(--pt-ease-standard),
    transform var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-btn:hover:not(:disabled):not([aria-disabled="true"]) {
  transform: translateY(-1px);
}

.pt-btn:active:not(:disabled):not([aria-disabled="true"]) {
  transform: translateY(0) scale(0.985);
  transition-duration: var(--pt-motion-instant);
}

.pt-btn:disabled,
.pt-btn[aria-disabled="true"] {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

.pt-btn--sm {
  min-height: 36px;
  padding-inline: 12px;
  font-size: 12px;
}

.pt-btn--md {
  min-height: 44px;
  padding-inline: 16px;
  font-size: 14px;
}

.pt-btn--lg {
  min-height: 52px;
  padding-inline: 20px;
  font-size: 15px;
}

.pt-btn--primary {
  --pt-btn-bg: var(--pt-primary-action);
  --pt-btn-border: var(--pt-primary-action);
  --pt-btn-color: #FFFFFF;
  box-shadow:
    0 8px 22px rgba(166, 83, 23, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.pt-btn--primary:hover:not(:disabled):not([aria-disabled="true"]) {
  --pt-btn-bg: #B85A1B;
  --pt-btn-border: #B85A1B;
  box-shadow:
    0 12px 28px rgba(195, 94, 30, 0.22),
    0 0 20px rgba(212, 106, 31, 0.10);
}

.pt-btn--primary:active:not(:disabled):not([aria-disabled="true"]) {
  --pt-btn-bg: var(--pt-primary-active);
  --pt-btn-border: var(--pt-primary-active);
}

.pt-btn--secondary {
  --pt-btn-bg: var(--pt-surface-2);
  --pt-btn-border: var(--pt-border-strong);
  --pt-btn-color: var(--pt-text-100);
}

.pt-btn--secondary:hover:not(:disabled):not([aria-disabled="true"]) {
  --pt-btn-bg: var(--pt-surface-3);
  --pt-btn-border: #4A535F;
  box-shadow: var(--pt-shadow-xs);
}

.pt-btn--outline {
  --pt-btn-bg: transparent;
  --pt-btn-border: var(--pt-primary);
  --pt-btn-color: var(--pt-primary-300);
}

.pt-btn--outline:hover:not(:disabled):not([aria-disabled="true"]) {
  --pt-btn-bg: var(--pt-primary-soft);
  --pt-btn-border: var(--pt-primary-hover);
  --pt-btn-color: var(--pt-primary-200);
  box-shadow: 0 0 20px rgba(212, 106, 31, 0.08);
}

.pt-btn--ghost {
  --pt-btn-bg: transparent;
  --pt-btn-border: transparent;
  --pt-btn-color: var(--pt-text-200);
}

.pt-btn--ghost:hover:not(:disabled):not([aria-disabled="true"]) {
  --pt-btn-bg: rgba(255, 255, 255, 0.055);
  --pt-btn-color: var(--pt-text-100);
  box-shadow: none;
}

.pt-btn--danger {
  --pt-btn-bg: #A33B2B;
  --pt-btn-border: #A33B2B;
  --pt-btn-color: #FFFFFF;
}

.pt-btn--danger:hover:not(:disabled):not([aria-disabled="true"]) {
  --pt-btn-bg: #B94431;
  --pt-btn-border: #B94431;
}

.pt-btn--block {
  width: 100%;
}

.pt-btn.is-loading {
  cursor: wait;
}

.pt-btn.is-loading .pt-btn__content {
  opacity: 0;
}

.pt-btn.is-loading .pt-spinner {
  position: absolute;
}

.pt-icon-btn {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--pt-radius-md);
  background: transparent;
  color: var(--pt-text-300);
  cursor: pointer;
  transition:
    color var(--pt-motion-fast) var(--pt-ease-standard),
    background-color var(--pt-motion-fast) var(--pt-ease-standard),
    border-color var(--pt-motion-fast) var(--pt-ease-standard),
    transform var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-icon-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.055);
  color: var(--pt-text-100);
}

.pt-icon-btn:active:not(:disabled) {
  transform: scale(0.96);
}

.pt-icon-btn--sm {
  width: 36px;
  height: 36px;
}

.pt-icon-btn--danger {
  color: var(--pt-danger);
}

.pt-icon-btn--danger:hover:not(:disabled) {
  background: var(--pt-danger-soft);
}

.pt-field {
  display: grid;
  gap: var(--pt-space-2);
}

.pt-field__label {
  color: var(--pt-text-200);
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
}

.pt-field__control {
  position: relative;
}

.pt-field__hint,
.pt-field__error {
  margin: 0;
  font-size: 11px;
  line-height: 16px;
}

.pt-field__hint {
  color: var(--pt-text-300);
}

.pt-field__error {
  color: var(--pt-danger);
  animation: pt-fade-in var(--pt-motion-fast) var(--pt-ease-standard);
}

.pt-input,
.pt-select,
.pt-textarea {
  width: 100%;
  border: 1px solid var(--pt-border-strong);
  border-radius: var(--pt-radius-md);
  background: var(--pt-bg-850);
  color: var(--pt-text-100);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
  transition:
    color var(--pt-motion-fast) var(--pt-ease-standard),
    background-color var(--pt-motion-fast) var(--pt-ease-standard),
    border-color var(--pt-motion-fast) var(--pt-ease-standard),
    box-shadow var(--pt-motion-fast) var(--pt-ease-standard);
}

.pt-input,
.pt-select {
  min-height: 44px;
  padding: 10px 12px;
}

.pt-textarea {
  min-height: 96px;
  padding: 12px;
  resize: vertical;
}

.pt-input::placeholder,
.pt-textarea::placeholder {
  color: var(--pt-text-500);
}

.pt-input:hover:not(:disabled),
.pt-select:hover:not(:disabled),
.pt-textarea:hover:not(:disabled) {
  border-color: #4A535F;
  background: #111419;
}

.pt-input:focus-visible,
.pt-select:focus-visible,
.pt-textarea:focus-visible {
  border-color: var(--pt-primary);
  box-shadow: var(--pt-focus-ring);
}

.pt-input:disabled,
.pt-select:disabled,
.pt-textarea:disabled {
  background: #14171B;
  border-color: #272C33;
  color: var(--pt-text-500);
  cursor: not-allowed;
  opacity: 0.72;
}

.pt-input[readonly],
.pt-textarea[readonly] {
  background: var(--pt-surface-1);
  color: var(--pt-text-300);
}

.pt-field.is-invalid .pt-input,
.pt-field.is-invalid .pt-select,
.pt-field.is-invalid .pt-textarea,
.pt-input.is-invalid,
.pt-select.is-invalid,
.pt-textarea.is-invalid {
  border-color: var(--pt-danger);
}

.pt-field.is-invalid .pt-input:focus-visible,
.pt-field.is-invalid .pt-select:focus-visible,
.pt-field.is-invalid .pt-textarea:focus-visible {
  box-shadow: 0 0 0 3px rgba(255, 90, 61, 0.22);
}

.pt-field__icon {
  position: absolute;
  inset-block-start: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--pt-text-500);
  pointer-events: none;
}

.pt-field__icon--start {
  inset-inline-start: 12px;
}

.pt-input.has-icon-start {
  padding-inline-start: 40px;
}

.pt-input.has-icon-end {
  padding-inline-end: 40px;
}

.pt-input--compact,
.pt-select--compact {
  min-height: 36px;
  padding-block: 7px;
  font-size: 12px;
}

.pt-check {
  display: inline-flex;
  align-items: center;
  gap: var(--pt-space-2);
  min-height: 36px;
  color: var(--pt-text-200);
  cursor: pointer;
  user-select: none;
}

.pt-check__input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}

.pt-check__box {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border: 1px solid var(--pt-border-strong);
  background: var(--pt-bg-850);
  transition:
    background-color var(--pt-motion-fast) var(--pt-ease-standard),
    border-color var(--pt-motion-fast) var(--pt-ease-standard),
    box-shadow var(--pt-motion-fast) var(--pt-ease-standard),
    transform var(--pt-motion-fast) var(--pt-ease-standard);
}

.pt-check__box {
  border-radius: 4px;
}

.pt-check__input:focus-visible + .pt-check__box {
  box-shadow: var(--pt-focus-ring);
}

.pt-check__input:checked + .pt-check__box {
  border-color: var(--pt-primary);
  background: var(--pt-primary-action);
}

.pt-check__input:checked + .pt-check__box::after {
  content: "";
  width: 8px;
  height: 4px;
  border-inline-start: 2px solid #FFFFFF;
  border-block-end: 2px solid #FFFFFF;
  transform: translateY(-1px) rotate(-45deg);
}

.pt-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 44%),
    var(--pt-surface-1);
  box-shadow: var(--pt-shadow-card);
}

.pt-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--pt-space-4);
  padding: var(--pt-space-5);
  border-block-end: 1px solid rgba(255, 255, 255, 0.045);
}

.pt-card__title {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.pt-card__subtitle {
  margin: 4px 0 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 16px;
}

.pt-card__body {
  padding: var(--pt-space-5);
}

.pt-card__footer {
  padding: var(--pt-space-4) var(--pt-space-5);
  border-block-start: 1px solid rgba(255, 255, 255, 0.045);
}

.pt-card--interactive {
  cursor: pointer;
  transition:
    background-color var(--pt-motion-base) var(--pt-ease-standard),
    border-color var(--pt-motion-base) var(--pt-ease-standard),
    box-shadow var(--pt-motion-base) var(--pt-ease-standard),
    transform var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-card--interactive:hover {
  transform: translateY(-2px);
  border-color: rgba(212, 106, 31, 0.24);
  box-shadow: var(--pt-shadow-hover);
}

.pt-card--interactive:active {
  transform: translateY(0);
}

.pt-card.is-selected {
  border-color: var(--pt-primary-border);
  box-shadow:
    0 0 0 1px rgba(212, 106, 31, 0.16),
    var(--pt-shadow-card);
}

.pt-stat-card {
  min-height: 112px;
  padding: var(--pt-space-5);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--pt-space-4);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background:
    radial-gradient(circle at 15% 10%, rgba(212, 106, 31, 0.06), transparent 42%),
    var(--pt-surface-1);
}

.pt-stat-card__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--pt-primary-soft);
  color: var(--pt-primary-300);
}

.pt-stat-card__label {
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 16px;
}

.pt-stat-card__value {
  margin-block-start: 4px;
  color: var(--pt-text-100);
  font-size: 28px;
  line-height: 32px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pt-stat-card__meta {
  margin-block-start: 8px;
  color: var(--pt-text-300);
  font-size: 12px;
}

.pt-table-wrap {
  width: 100%;
  overflow: auto;
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-surface-1);
}

.pt-table {
  width: 100%;
  border-collapse: collapse;
  color: var(--pt-text-200);
  font-size: 13px;
}

.pt-table th,
.pt-table td {
  min-height: 52px;
  padding: 12px 16px;
  border-block-end: 1px solid rgba(255, 255, 255, 0.045);
  text-align: start;
  vertical-align: middle;
}

.pt-table th {
  color: var(--pt-text-300);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  background: var(--pt-bg-850);
}

.pt-table--sticky thead {
  position: sticky;
  inset-block-start: 0;
  z-index: 1;
}

.pt-table tbody tr {
  transition:
    background-color var(--pt-motion-fast) var(--pt-ease-standard),
    box-shadow var(--pt-motion-fast) var(--pt-ease-standard);
}

.pt-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.025);
}

.pt-table tbody tr.is-selected {
  background: var(--pt-primary-soft);
  box-shadow: inset 2px 0 var(--pt-primary);
}

.pt-table__cell--numeric {
  text-align: end !important;
  font-variant-numeric: tabular-nums;
}

.pt-table__cell--actions {
  width: 1%;
  white-space: nowrap;
}

.pt-table--compact th,
.pt-table--compact td {
  min-height: 44px;
  padding-block: 8px;
}

.pt-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 22px;
  padding: 3px 8px;
  border: 1px solid transparent;
  border-radius: var(--pt-radius-pill);
  font-size: 11px;
  line-height: 14px;
  font-weight: 600;
  white-space: nowrap;
}

.pt-badge--success {
  background: var(--pt-success-soft);
  color: #69E592;
  border-color: rgba(34, 197, 94, 0.22);
}

.pt-badge--warning {
  background: var(--pt-warning-soft);
  color: #FFC24C;
  border-color: rgba(245, 158, 11, 0.22);
}

.pt-badge--danger {
  background: var(--pt-danger-soft);
  color: #FF8A74;
  border-color: rgba(255, 90, 61, 0.22);
}

.pt-badge--info {
  background: var(--pt-info-soft);
  color: #78A9FF;
  border-color: rgba(59, 130, 246, 0.22);
}

.pt-badge--offline {
  background: var(--pt-offline-soft);
  color: #B1B7C0;
  border-color: rgba(122, 130, 142, 0.22);
}

.pt-alert {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--pt-border-strong);
  border-radius: var(--pt-radius-md);
  background: var(--pt-surface-1);
}

.pt-alert--info {
  border-color: rgba(59, 130, 246, 0.30);
  background: var(--pt-info-soft);
}

.pt-alert--success {
  border-color: rgba(34, 197, 94, 0.30);
  background: var(--pt-success-soft);
}

.pt-alert--danger {
  border-color: rgba(255, 90, 61, 0.34);
  background: var(--pt-danger-soft);
}

.pt-skeleton {
  position: relative;
  overflow: hidden;
  border-radius: var(--pt-radius-sm);
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.035) 0%,
      rgba(255, 255, 255, 0.08) 50%,
      rgba(255, 255, 255, 0.035) 100%
    );
  background-size: 200% 100%;
  animation: pt-shimmer 1.4s linear infinite;
}

.pt-skeleton--text {
  height: 12px;
}

.pt-spinner {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.26);
  border-block-start-color: currentColor;
  border-radius: 50%;
  animation: pt-spin 0.8s linear infinite;
}

.pt-status-dot {
  position: relative;
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}

.pt-status-dot--online {
  color: var(--pt-success);
}

.pt-status-dot--warning {
  color: var(--pt-warning);
}

.pt-status-dot--offline {
  color: var(--pt-offline);
}

.pt-status-dot.is-live::after {
  content: "";
  position: absolute;
  inset: -4px;
  border: 1px solid currentColor;
  border-radius: 50%;
  animation: pt-status-ping 2s var(--pt-ease-standard) infinite;
}

.pt-backdrop {
  position: fixed;
  inset: 0;
  z-index: 700;
  background: rgba(0, 0, 0, 0.64);
  backdrop-filter: blur(3px);
  animation: pt-fade-in var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-modal {
  position: fixed;
  inset: 50% auto auto 50%;
  z-index: 800;
  width: min(560px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow: auto;
  border: 1px solid var(--pt-border-strong);
  border-radius: var(--pt-radius-xl);
  background: var(--pt-surface-2);
  box-shadow: var(--pt-shadow-elevated);
  transform: translate(-50%, -50%);
  animation: pt-scale-in var(--pt-motion-slow) var(--pt-ease-emphasized);
}

.pt-modal--lg {
  width: min(880px, calc(100vw - 32px));
}

.pt-modal__header,
.pt-modal__body,
.pt-modal__footer {
  padding: 20px;
}

.pt-modal__header {
  border-block-end: 1px solid var(--pt-border-subtle);
}

.pt-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  border-block-start: 1px solid var(--pt-border-subtle);
}

.pt-app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr);
  background: var(--pt-bg-900);
}

.pt-sidebar {
  position: sticky;
  inset-block-start: 0;
  height: 100vh;
  padding: 20px 14px;
  border-inline-end: 1px solid rgba(255, 255, 255, 0.045);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.014), transparent),
    var(--pt-bg-850);
}

.pt-main {
  min-width: 0;
}

.pt-topbar {
  position: sticky;
  inset-block-start: 0;
  z-index: 100;
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-inline: 24px;
  border-block-end: 1px solid rgba(255, 255, 255, 0.045);
  background: rgba(11, 11, 13, 0.86);
  backdrop-filter: blur(14px);
}

.pt-page {
  padding: 24px;
}

.pt-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

.pt-col-12 {
grid-column: span 12;
}

.pt-col-8 {
grid-column: span 8;
}

.pt-col-6 {
grid-column: span 6;
}

.pt-col-4 {
grid-column: span 4;
}

.pt-col-3 {
grid-column: span 3;
}

@media (max-width: 1279px) {
  .pt-app-shell {
    grid-template-columns: 80px minmax(0, 1fr);
  }
  .pt-col-3 {
    grid-column: span 6;
  }
}

@media (max-width: 1023px) {
  .pt-app-shell {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 800;
    width: min(320px, 88vw);
    transform: translateX(-100%);
    transition: transform var(--pt-motion-enter) var(--pt-ease-emphasized);
  }
  .pt-col-8,
  .pt-col-6,
  .pt-col-4,
  .pt-col-3 {
    grid-column: span 12;
  }
}

@media (max-width: 767px) {
  .pt-topbar {
    min-height: 64px;
    padding-inline: 16px;
  }
  .pt-page {
    padding: 16px;
  }
  .pt-grid {
    gap: 12px;
  }
  .pt-card__header,
  .pt-card__body {
    padding: 16px;
  }
}

.pt-nav {
  display: grid;
  gap: 4px;
}

.pt-nav__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: var(--pt-radius-md);
  background: transparent;
  color: var(--pt-text-300);
  text-decoration: none;
  transition:
    color var(--pt-motion-fast) var(--pt-ease-standard),
    background-color var(--pt-motion-base) var(--pt-ease-standard),
    border-color var(--pt-motion-base) var(--pt-ease-standard),
    transform var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-nav__item:hover {
  color: var(--pt-text-100);
  background: rgba(255, 255, 255, 0.04);
}

.pt-nav__item.is-active,
.pt-nav__item[aria-current="page"] {
  color: var(--pt-primary-200);
  border-color: rgba(212, 106, 31, 0.12);
  background:
    linear-gradient(90deg, rgba(212, 106, 31, 0.24), rgba(212, 106, 31, 0.06));
}

.pt-nav__item.is-active::before,
.pt-nav__item[aria-current="page"]::before {
  content: "";
  position: absolute;
  inset-block: 10px;
  inset-inline-start: 0;
  width: 2px;
  border-radius: 2px;
  background: var(--pt-primary);
}

@keyframes pt-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes pt-fade-up {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pt-scale-in {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes pt-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

@keyframes pt-spin {
  to { transform: rotate(360deg); }
}

@keyframes pt-status-ping {
  0% {
    opacity: 0.36;
    transform: scale(0.8);
  }
  70%, 100% {
    opacity: 0;
    transform: scale(1.6);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .pt-skeleton {
    background-image: none !important;
  }
  .pt-status-dot::after {
    display: none !important;
  }
}

/* ==========================================================================
   BASE COMPLEMENTAR E ELEMENTOS NATIVOS
   ========================================================================== */
html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

body {
  accent-color: var(--pt-primary);
  overflow-x: hidden;
}

body.pt-scroll-lock {
  overflow: hidden;
  overscroll-behavior: contain;
}

a {
  color: var(--pt-primary-300);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition:
    color var(--pt-motion-fast) var(--pt-ease-standard),
    text-decoration-color var(--pt-motion-fast) var(--pt-ease-standard);
}

a:hover {
  color: var(--pt-primary-200);
}

a:active {
  color: var(--pt-primary-400);
}

img,
svg {
  display: block;
  max-width: 100%;
}

svg {
  flex: 0 0 auto;
}

figure {
  margin: 0;
}

p {
  margin-block: 0 1em;
}

p:last-child {
  margin-block-end: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-block: 0;
  color: var(--pt-text-100);
  text-wrap: balance;
}

ul {
  margin-block: 0;
}

fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  padding: 0;
}

summary {
  cursor: pointer;
}

[hidden] {
  display: none !important;
}

[aria-disabled="true"] {
  cursor: not-allowed;
}

::placeholder {
  opacity: 1;
}

* {
  scrollbar-width: thin;
  scrollbar-color: var(--pt-scrollbar-thumb) var(--pt-scrollbar-track);
}

*::-webkit-scrollbar {
  width: var(--pt-scrollbar-size);
  height: var(--pt-scrollbar-size);
}

*::-webkit-scrollbar-track {
  background: var(--pt-scrollbar-track);
}

*::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-scrollbar-thumb);
  background-clip: padding-box;
}

*::-webkit-scrollbar-thumb:hover {
  background-color: var(--pt-scrollbar-thumb-hover);
}

/* ==========================================================================
   TIPOGRAFIA, TEXTO E UTILITÁRIOS DE CONTEÚDO
   ========================================================================== */
.pt-h4 {
  margin: 0;
  font-size: 17px;
  line-height: 24px;
  font-weight: 600;
}

.pt-overline {
  margin: 0;
  color: var(--pt-primary-300);
  font-size: 10px;
  line-height: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pt-mono {
  font-family: var(--pt-font-mono);
}

.pt-text-secondary {
color: var(--pt-text-300) !important;
}

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

.pt-text-center {
text-align: center !important;
}

.pt-tabular {
font-variant-numeric: tabular-nums;
}

.pt-uppercase {
text-transform: uppercase;
}

/* ==========================================================================
   UTILITÁRIOS DE LAYOUT
   ========================================================================== */
.pt-container {
  width: min(100%, var(--pt-page-max-width));
  margin-inline: auto;
}

.pt-stack {
  display: flex;
  flex-direction: column;
  gap: var(--pt-stack-gap, var(--pt-space-4));
}

.pt-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-cluster-gap, var(--pt-space-3));
}

.pt-split {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-4);
}

.pt-inline {
  display: inline-flex;
  align-items: center;
  gap: var(--pt-space-2);
}

.pt-gap-1 {
gap: var(--pt-space-1) !important;
}

.pt-gap-2 {
gap: var(--pt-space-2) !important;
}

.pt-gap-3 {
gap: var(--pt-space-3) !important;
}

.pt-gap-4 {
gap: var(--pt-space-4) !important;
}

.pt-gap-5 {
gap: var(--pt-space-5) !important;
}

.pt-gap-6 {
gap: var(--pt-space-6) !important;
}

/* ==========================================================================
   MARCA, APP SHELL, SIDEBAR E TOPBAR
   ========================================================================== */
.pt-brand {
  display: inline-flex;
  align-items: center;
  gap: var(--pt-space-3);
  min-width: 0;
  color: var(--pt-text-100);
  text-decoration: none;
}

.pt-brand:hover {
  color: var(--pt-text-100);
}

.pt-brand__logo {
  display: block;
  width: auto;
  max-width: 100%;
  height: 32px;
  object-fit: contain;
}

.pt-app-shell {
  grid-template-columns: var(--pt-sidebar-width) minmax(0, 1fr);
}

.pt-sidebar {
  z-index: var(--pt-z-sticky);
  display: flex;
  flex-direction: column;
  gap: var(--pt-space-4);
  overflow: hidden auto;
  transition:
    transform var(--pt-motion-enter) var(--pt-ease-emphasized),
    box-shadow var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-sidebar__header {
  display: flex;
  min-height: 48px;
  align-items: center;
  padding-inline: 6px;
}

.pt-sidebar__body {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
}

.pt-sidebar__footer {
  display: grid;
  gap: var(--pt-space-3);
  padding-block-start: var(--pt-space-3);
  border-block-start: 1px solid var(--pt-divider);
}

.pt-sidebar__section {
  display: grid;
  gap: var(--pt-space-1);
}

.pt-sidebar__section-label {
  margin: 12px 12px 6px;
  color: var(--pt-text-500);
  font-size: 10px;
  line-height: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pt-topbar {
  min-height: var(--pt-topbar-height);
  z-index: var(--pt-z-sticky);
}

.pt-topbar__start,
.pt-topbar__end {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: var(--pt-space-3);
}

.pt-topbar__end {
  margin-inline-start: auto;
}

.pt-topbar__context {
  min-width: 0;
}

.pt-topbar__title {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.pt-topbar__meta {
  margin: 2px 0 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 16px;
}

.pt-page {
  width: 100%;
  max-width: var(--pt-page-max-width);
  margin-inline: auto;
  animation: pt-page-enter var(--pt-motion-enter) var(--pt-ease-emphasized) both;
}

.pt-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--pt-space-5);
  margin-block-end: var(--pt-space-6);
}

.pt-page-header__content {
  min-width: 0;
}

.pt-page-header__title {
  margin: 0;
  font-size: 28px;
  line-height: 36px;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.pt-page-header__description {
  max-width: 72ch;
  margin: 6px 0 0;
  color: var(--pt-text-300);
}

.pt-page-header__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--pt-space-2);
}

.pt-nav__label {
  min-width: 0;
  opacity: 1;
  transition:
    opacity var(--pt-motion-fast) var(--pt-ease-standard),
    width var(--pt-motion-fast) var(--pt-ease-standard);
}

.pt-nav__item:active {
  transform: scale(0.99);
}

/* ==========================================================================
   BOTÕES, GRUPOS E AÇÕES
   ========================================================================== */
.pt-btn {
  min-height: var(--pt-control-height-md);
}

.pt-btn--xs {
  min-height: var(--pt-control-height-xs);
  padding-inline: 10px;
  border-radius: var(--pt-radius-sm);
  font-size: 11px;
}

.pt-btn--sm {
  min-height: var(--pt-control-height-sm);
}

.pt-btn--md {
  min-height: var(--pt-control-height-md);
}

.pt-btn--lg {
  min-height: var(--pt-control-height-lg);
}

.pt-btn__content {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: inherit;
  min-width: 0;
  transition: opacity var(--pt-motion-fast) var(--pt-ease-standard);
}

.pt-btn.is-loading,
.pt-btn[aria-busy="true"] {
  pointer-events: none;
}

.pt-btn[aria-busy="true"] .pt-btn__content {
  opacity: 0;
}

.pt-btn[aria-busy="true"] .pt-spinner {
  position: absolute;
}

.pt-icon-btn {
  flex: 0 0 auto;
}

.pt-icon-btn:disabled,
.pt-icon-btn[aria-disabled="true"] {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none;
}

.pt-icon-btn--surface {
  border-color: var(--pt-border-subtle);
  background: var(--pt-surface-1);
}

/* ==========================================================================
   FORMULÁRIOS, INPUTS, SELECTS, TEXTAREAS E DATE PICKER
   ========================================================================== */
.pt-form {
  display: grid;
  gap: var(--pt-space-5);
}

.pt-form-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--pt-space-4);
}

.pt-form-col-12 {
grid-column: span 12;
}

.pt-form-col-6 {
grid-column: span 6;
}

.pt-form-col-4 {
grid-column: span 4;
}

.pt-form-col-3 {
grid-column: span 3;
}

.pt-field__label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-2);
}

.pt-field__required {
  margin-inline-start: 3px;
  color: var(--pt-danger);
}

.pt-field__actions {
  position: absolute;
  inset-block: 0;
  inset-inline-end: 4px;
  display: flex;
  align-items: center;
  gap: 2px;
}

.pt-field.is-loading .pt-input,
.pt-field.is-loading .pt-select,
.pt-field.is-loading .pt-textarea {
  padding-inline-end: 42px;
}

.pt-field.is-loading .pt-field__control::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 14px;
  width: 16px;
  height: 16px;
  margin-block-start: -8px;
  border: 2px solid rgba(255, 255, 255, 0.22);
  border-block-start-color: var(--pt-primary);
  border-radius: 50%;
  animation: pt-spin 0.8s linear infinite;
}

.pt-input,
.pt-select {
  min-height: var(--pt-control-height-md);
}

.pt-select--sm {
  min-height: var(--pt-control-height-sm);
  padding-block: 7px;
  font-size: 12px;
}

.pt-input--date,
.pt-input--time {
  padding-inline-end: 40px;
  font-variant-numeric: tabular-nums;
}

.pt-input[type="number"] {
  font-variant-numeric: tabular-nums;
}

.pt-input[type="search"]::-webkit-search-cancel-button {
  appearance: none;
}

.pt-input[type="date"],
.pt-input[type="time"],
.pt-input[type="datetime-local"] {
  color-scheme: dark;
}

.pt-input[type="date"]::-webkit-calendar-picker-indicator,
.pt-input[type="time"]::-webkit-calendar-picker-indicator,
.pt-input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  opacity: 0.7;
  cursor: pointer;
  filter: invert(1);
}

.pt-select {
  appearance: none;
  padding-inline-end: 40px;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--pt-text-500) 50%),
    linear-gradient(135deg, var(--pt-text-500) 50%, transparent 50%);
  background-position:
    calc(100% - 17px) 50%,
    calc(100% - 12px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

[dir="rtl"] .pt-select {
  background-position:
    17px 50%,
    12px 50%;
}

.pt-select[multiple] {
  min-height: 120px;
  padding: 8px;
  background-image: none;
}

.pt-select option,
.pt-select optgroup {
  background: var(--pt-bg-850);
  color: var(--pt-text-100);
}

.pt-input-group {
  display: flex;
  width: 100%;
}

.pt-input-group > .pt-input,
.pt-input-group > .pt-select,
.pt-input-group > .pt-input-addon,
.pt-input-group > .pt-btn {
  border-radius: 0;
}

.pt-input-group > :first-child {
  border-start-start-radius: var(--pt-radius-md);
  border-end-start-radius: var(--pt-radius-md);
}

.pt-input-group > :last-child {
  border-start-end-radius: var(--pt-radius-md);
  border-end-end-radius: var(--pt-radius-md);
}

.pt-input-group > * + * {
  margin-inline-start: -1px;
}

.pt-input-group > *:focus-visible {
  position: relative;
  z-index: 1;
}

.pt-input-addon {
  display: inline-flex;
  min-height: var(--pt-control-height-md);
  align-items: center;
  padding-inline: 12px;
  border: 1px solid var(--pt-border-strong);
  background: var(--pt-surface-1);
  color: var(--pt-text-300);
  white-space: nowrap;
}

/* ==========================================================================
   CHECKBOX, RADIO, SWITCH E CONTROLES SEGMENTADOS
   ========================================================================== */
.pt-check__label {
  min-width: 0;
}

.pt-check:hover .pt-check__box {
  border-color: var(--pt-primary-border);
}

.pt-check__input:indeterminate + .pt-check__box {
  border-color: var(--pt-primary);
  background: var(--pt-primary-action);
}

.pt-check__input:indeterminate + .pt-check__box::after {
  content: "";
  width: 9px;
  height: 2px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-white);
}

.pt-check__input:disabled + .pt-check__box {
  opacity: 0.45;
  cursor: not-allowed;
}

.pt-check:has(.pt-check__input:disabled) {
  color: var(--pt-text-500);
  cursor: not-allowed;
}

.pt-check.is-invalid .pt-check__box {
  border-color: var(--pt-danger);
}

/* ==========================================================================
   BADGES, CHIPS, AVATARES E INDICADORES
   ========================================================================== */
.pt-badge--neutral {
  border-color: var(--pt-border-subtle);
  background: rgba(255, 255, 255, 0.055);
  color: var(--pt-text-300);
}

.pt-badge--primary {
  border-color: rgba(var(--pt-primary-rgb), 0.22);
  background: var(--pt-primary-soft);
  color: var(--pt-primary-200);
}

.pt-avatar {
  --pt-avatar-size: 40px;
  position: relative;
  display: inline-grid;
  width: var(--pt-avatar-size);
  height: var(--pt-avatar-size);
  flex: 0 0 auto;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--pt-border-strong);
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 25%, rgba(255, 255, 255, 0.08), transparent 45%),
    var(--pt-surface-3);
  color: var(--pt-text-200);
  font-size: calc(var(--pt-avatar-size) * 0.34);
  font-weight: 600;
  text-transform: uppercase;
}

.pt-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pt-avatar--sm {
--pt-avatar-size: 32px;
}

.pt-avatar--lg {
--pt-avatar-size: 52px;
}

.pt-card.is-loading {
  min-height: 120px;
}

.pt-card.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      100deg,
      transparent 20%,
      rgba(255, 255, 255, 0.035) 40%,
      transparent 60%
    );
  background-size: 220% 100%;
  pointer-events: none;
  animation: pt-shimmer 1.4s linear infinite;
}

.pt-stat-card {
  transition: var(--pt-transition-surface);
}

.pt-stat-card--interactive {
  cursor: pointer;
}

.pt-stat-card--interactive:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--pt-primary-rgb), 0.24);
  box-shadow: var(--pt-shadow-hover);
}

.pt-stat-card__content {
  min-width: 0;
}

.pt-table__row {
  transition:
    background-color var(--pt-motion-fast) var(--pt-ease-standard),
    box-shadow var(--pt-motion-fast) var(--pt-ease-standard),
    opacity var(--pt-motion-base) var(--pt-ease-standard),
    transform var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-table__cell {
  min-width: 0;
}

.pt-table-wrap {
  position: relative;
}

.pt-table-wrap:focus-visible {
  box-shadow: var(--pt-focus-ring);
}

.pt-combobox {
  position: relative;
}

.pt-combobox__list,
.pt-listbox {
  z-index: var(--pt-z-dropdown);
  max-height: min(320px, 48vh);
  overflow: auto;
  padding: 6px;
  border: 1px solid var(--pt-border-strong);
  border-radius: var(--pt-radius-md);
  background: var(--pt-surface-2);
  box-shadow: var(--pt-shadow-elevated);
  animation: pt-popover-in var(--pt-motion-base) var(--pt-ease-emphasized);
}

.pt-combobox__list {
  position: absolute;
  inset-block-start: calc(100% + 6px);
  inset-inline: 0;
}

.pt-listbox__option {
  display: flex;
  min-height: 40px;
  align-items: center;
  gap: var(--pt-space-2);
  padding: 8px 10px;
  border-radius: var(--pt-radius-sm);
  color: var(--pt-text-200);
  cursor: pointer;
  transition: var(--pt-transition-colors);
}

.pt-listbox__option:hover,
.pt-listbox__option.is-active,
.pt-listbox__option[aria-selected="true"] {
  background: var(--pt-hover-neutral);
  color: var(--pt-text-100);
}

.pt-listbox__option[aria-selected="true"] {
  box-shadow: inset 2px 0 var(--pt-primary);
}

.pt-listbox__option[aria-disabled="true"] {
  opacity: 0.42;
  cursor: not-allowed;
}

.pt-listbox__empty {
  padding: var(--pt-space-6) var(--pt-space-4);
  color: var(--pt-text-300);
  text-align: center;
}

.pt-feedback {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--pt-text-300);
  font-size: 12px;
}

.pt-feedback--success {
color: var(--pt-success);
}

.pt-feedback--warning {
color: var(--pt-warning);
}

.pt-feedback--danger {
color: var(--pt-danger);
}

.pt-feedback--info {
color: var(--pt-info);
}

/* ==========================================================================
   MODAL, DRAWER, DIALOG E OVERLAYS
   ========================================================================== */
.pt-backdrop {
  z-index: var(--pt-z-backdrop);
}

.pt-modal {
  z-index: var(--pt-z-modal);
  animation: pt-dialog-in var(--pt-motion-slow) var(--pt-ease-emphasized) both;
}

.pt-modal--sm {
  width: min(420px, calc(100vw - 32px));
}

.pt-modal--xl {
  width: min(1120px, calc(100vw - 32px));
}

.pt-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--pt-space-4);
}

.pt-modal__title {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 18px;
  line-height: 26px;
  font-weight: 600;
}

.pt-modal__description {
  margin: 4px 0 0;
  color: var(--pt-text-300);
  font-size: 13px;
  line-height: 19px;
}

.pt-modal__body {
  color: var(--pt-text-200);
}

.pt-modal__close {
  margin: -8px -8px 0 0;
}

.pt-skeleton--heading {
  width: min(280px, 70%);
  height: 22px;
}

.pt-skeleton--text + .pt-skeleton--text {
  margin-block-start: 8px;
}

.pt-empty {
  display: grid;
  min-height: 260px;
  place-items: center;
  align-content: center;
  gap: var(--pt-space-3);
  padding: var(--pt-space-8);
  color: var(--pt-text-300);
  text-align: center;
}

.pt-empty__icon {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 1px solid var(--pt-border-subtle);
  border-radius: 50%;
  background: var(--pt-surface-1);
  color: var(--pt-primary-300);
}

.pt-empty__title {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 17px;
  line-height: 24px;
  font-weight: 600;
}

.pt-empty__message {
  max-width: 54ch;
  margin: 0;
  color: var(--pt-text-300);
}

.pt-empty__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--pt-space-2);
  margin-block-start: var(--pt-space-2);
}

.pt-ble-alert {
  --pt-alert-level: var(--pt-warning);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--pt-space-3);
  padding: var(--pt-space-4);
  border: 1px solid color-mix(in srgb, var(--pt-alert-level) 28%, transparent);
  border-radius: var(--pt-radius-lg);
  background: color-mix(in srgb, var(--pt-alert-level) 7%, var(--pt-surface-1));
  transition: var(--pt-transition-surface);
}

.pt-ble-alert:hover {
  border-color: color-mix(in srgb, var(--pt-alert-level) 42%, transparent);
  background: color-mix(in srgb, var(--pt-alert-level) 10%, var(--pt-surface-1));
}

.pt-ble-alert--critical {
--pt-alert-level: var(--pt-danger);
}

.pt-ble-alert__icon {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--pt-alert-level) 12%, transparent);
  color: var(--pt-alert-level);
}

.pt-ble-alert__title {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
}

.pt-ble-alert__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-block-start: 4px;
  color: var(--pt-text-300);
  font-size: 11px;
}

.pt-ble-alert__time {
  color: var(--pt-text-500);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ==========================================================================
   FILTROS, TOOLBARS, SEARCH E AÇÕES DE TELA
   ========================================================================== */
.pt-toolbar,
.pt-filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-3);
}

.pt-toolbar {
  justify-content: space-between;
}

.pt-toolbar__start,
.pt-toolbar__end,
.pt-filter-bar__group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-2);
}

.pt-toolbar__end {
  margin-inline-start: auto;
}

.pt-filter-bar {
  padding: var(--pt-space-3);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-surface-1);
}

.pt-filter-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-2);
}

.pt-animate-fade-up {
  animation: pt-fade-up var(--pt-motion-base) var(--pt-ease-emphasized) both;
}

.pt-stagger > * {
  animation: pt-fade-up var(--pt-motion-enter) var(--pt-ease-emphasized) both;
}

.pt-stagger > *:nth-child(1) {
animation-delay: 0ms;
}

.pt-stagger > *:nth-child(2) {
animation-delay: 40ms;
}

.pt-stagger > *:nth-child(3) {
animation-delay: 80ms;
}

.pt-stagger > *:nth-child(4) {
animation-delay: 120ms;
}

.pt-stagger > *:nth-child(5) {
animation-delay: 160ms;
}

.pt-stagger > *:nth-child(6) {
animation-delay: 200ms;
}

.pt-stagger > *:nth-child(n + 7) {
animation-delay: 220ms;
}

@keyframes pt-page-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pt-dialog-in {
  from {
    opacity: 0;
    transform: translate(-50%, calc(-50% + 8px)) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes pt-popover-in {
  from {
    opacity: 0;
    transform: translateY(5px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ==========================================================================
   RESPONSIVIDADE
   ========================================================================== */
@media (max-width: 1279px) {
  .pt-page-header__title {
    font-size: 25px;
    line-height: 32px;
  }
}

@media (max-width: 1023px) {
  .pt-sidebar {
    width: min(320px, 88vw);
  }
  .pt-topbar__meta {
    display: none;
  }
  .pt-page-header {
    align-items: stretch;
    flex-direction: column;
  }
  .pt-page-header__actions {
    justify-content: flex-start;
  }
  .pt-form-col-6,
  .pt-form-col-4,
  .pt-form-col-3 {
    grid-column: span 12;
  }
}

@media (max-width: 767px) {
  :root {
    --pt-topbar-height: 64px;
  }
  .pt-page-header {
    margin-block-end: var(--pt-space-5);
  }
  .pt-page-header__title {
    font-size: 23px;
    line-height: 30px;
  }
  .pt-form-grid {
    gap: var(--pt-space-3);
  }
  .pt-form-col-12,
  .pt-form-col-6,
  .pt-form-col-4,
  .pt-form-col-3 {
    grid-column: span 12;
  }
  .pt-modal__header,
  .pt-modal__body,
  .pt-modal__footer {
    padding: 16px;
  }
  .pt-modal__footer {
    flex-direction: column-reverse;
  }
  .pt-modal__footer .pt-btn {
    width: 100%;
  }
  .pt-alert {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .pt-filter-bar,
  .pt-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .pt-toolbar__start,
  .pt-toolbar__end,
  .pt-filter-bar__group {
    width: 100%;
  }
  .pt-toolbar__end {
    margin-inline-start: 0;
  }
}

/* Tabela opcional em formato de cards no mobile. */
@media (max-width: 639px) {
  .pt-table--responsive,
  .pt-table--responsive tbody,
  .pt-table--responsive tr,
  .pt-table--responsive td {
    display: block;
    width: 100%;
  }
  .pt-table--responsive thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  .pt-table--responsive tr {
    padding: 12px 14px;
    border-block-end: 1px solid var(--pt-divider);
  }
  .pt-table--responsive td {
    display: grid;
    grid-template-columns: minmax(100px, 38%) minmax(0, 1fr);
    gap: var(--pt-space-3);
    min-height: auto;
    padding: 7px 0;
    border: 0;
  }
  .pt-table--responsive td::before {
    content: attr(data-label);
    color: var(--pt-text-500);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
}

/* ==========================================================================
   ACESSIBILIDADE, CONTRASTE E PREFERÊNCIAS DO SISTEMA
   ========================================================================== */
@media (prefers-contrast: more) {
  :root {
    --pt-border-subtle: #46505D;
    --pt-border-strong: #647080;
    --pt-text-300: #C5CBD3;
    --pt-text-500: #929AA5;
  }
  .pt-card,
  .pt-stat-card,
  .pt-table-wrap,
  .pt-modal {
    border-width: 2px;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .pt-topbar,
  .pt-backdrop {
    backdrop-filter: none;
  }
  .pt-topbar {
    background: var(--pt-bg-850);
  }
}

@media (forced-colors: active) {
  .pt-btn,
  .pt-icon-btn,
  .pt-input,
  .pt-select,
  .pt-textarea,
  .pt-check__box,
  .pt-card,
  .pt-table-wrap,
  .pt-modal {
    forced-color-adjust: auto;
  }
  .pt-status-dot {
    border: 1px solid CanvasText;
  }
}

/* Esta regra final também neutraliza as animações adicionadas nesta folha. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-delay: 0ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-delay: 0ms !important;
    transition-duration: 0.01ms !important;
  }
  .pt-sidebar {
    transition-property: none !important;
  }
  .pt-status-dot::after {
    display: none !important;
  }
}

/* ==========================================================================
   IMPRESSÃO E EXPORTAÇÃO DE RELATÓRIOS
   ========================================================================== */
@media print {
  :root {
    color-scheme: light;
  }
  body {
    background: #FFFFFF !important;
    color: #111111 !important;
  }
  .pt-sidebar,
  .pt-topbar,
  .pt-btn,
  .pt-icon-btn,
  .pt-filter-bar,
  .pt-toolbar {
    display: none !important;
  }
  .pt-app-shell {
    display: block;
  }
  .pt-page {
    max-width: none;
    padding: 0;
    animation: none;
  }
  .pt-card,
  .pt-stat-card,
  .pt-table-wrap {
    break-inside: avoid;
    border-color: #CCCCCC !important;
    background: #FFFFFF !important;
    color: #111111 !important;
    box-shadow: none !important;
  }
  .pt-card *,
  .pt-stat-card *,
  .pt-table * {
    color: #111111 !important;
  }
  .pt-table th,
  .pt-table td {
    border-color: #DDDDDD !important;
  }
}

/* ===== Fonte: styles/landing.css ===== */

body {
  min-width: 0;
}

.pt-landing {
  min-height: 100vh;
  overflow: clip;
  background:
    radial-gradient(circle at 82% 3%, rgba(212, 106, 31, 0.13), transparent 30rem),
    var(--pt-bg-900);
}

.pt-landing .pt-container {
  width: min(100%, 1480px);
  padding-inline: clamp(20px, 4vw, 64px);
}

.pt-landing-skip {
  position: fixed;
  inset-block-start: 12px;
  inset-inline-start: 12px;
  z-index: var(--pt-z-tooltip);
  padding: 10px 14px;
  border-radius: var(--pt-radius-md);
  background: var(--pt-primary-action);
  color: var(--pt-white);
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-170%);
  transition: transform var(--pt-motion-fast) var(--pt-ease-standard);
}

.pt-landing-skip:focus-visible {
  color: var(--pt-white);
  transform: translateY(0);
}

.pt-landing-header {
  position: sticky;
  inset-block-start: 0;
  z-index: var(--pt-z-sticky);
  border-block-end: 1px solid rgba(255, 255, 255, 0.055);
  background: rgba(6, 7, 9, 0.84);
  backdrop-filter: blur(16px);
}

.pt-landing-header__inner,
.pt-landing-footer__inner,
.pt-landing-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-6);
}

.pt-landing-header__inner {
  min-height: 76px;
}

.pt-landing-brand {
  display: block;
  width: 248px;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
}

.pt-landing-brand__logo {
  width: 248px;
  height: 74px;
  object-fit: cover;
  object-position: center;
}

.pt-landing-header__access {
  border-color: rgba(212, 106, 31, 0.3);
  background: rgba(212, 106, 31, 0.07);
}

.pt-landing-header__access:hover {
  border-color: var(--pt-primary-border);
  background: var(--pt-primary-soft);
}

.pt-landing-header__access img,
.pt-landing-card__icon img,
.pt-landing-benefit__icon img,
.pt-landing-hero .pt-btn img {
  filter: brightness(0) invert(1);
}

.pt-landing-hero {
  position: relative;
  overflow: hidden;
}

.pt-landing-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.42;
  background:
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: linear-gradient(90deg, #000, transparent 70%);
  mask-image: linear-gradient(90deg, #000, transparent 70%);
  pointer-events: none;
}

.pt-landing-hero__inner {
  position: relative;
  display: grid;
  min-height: calc(100vh - 76px);
  grid-template-columns: minmax(0, 0.92fr) minmax(560px, 1.08fr);
  align-items: center;
  gap: clamp(40px, 5vw, 80px);
  padding-block: clamp(64px, 8vw, 116px);
}

.pt-landing-hero__content {
  position: relative;
  z-index: 3;
  max-width: 680px;
}

.pt-landing-hero__title {
  margin-block: 14px 22px;
  font-size: clamp(46px, 5.4vw, 78px);
  line-height: 0.98;
  letter-spacing: -0.055em;
  text-wrap: balance;
}

.pt-landing-hero__title::after {
  content: "";
  display: block;
  width: 72px;
  height: 3px;
  margin-block-start: 26px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-primary);
  box-shadow: 0 0 22px rgba(212, 106, 31, 0.36);
}

.pt-landing-hero__lead {
  max-width: 620px;
  margin: 0 0 30px;
  color: var(--pt-text-300);
  font-size: clamp(17px, 1.45vw, 20px);
  line-height: 1.55;
}

.pt-landing-hero__visual {
  position: relative;
  min-height: 630px;
  margin-inline-end: min(-10vw, -72px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-inline-end: 0;
  border-radius: var(--pt-radius-2xl) 0 0 var(--pt-radius-2xl);
  background: var(--pt-bg-950);
  box-shadow: -20px 34px 90px rgba(0, 0, 0, 0.42);
}

.pt-landing-hero__visual::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background:
    linear-gradient(90deg, var(--pt-bg-900), transparent 39%),
    linear-gradient(0deg, rgba(6, 7, 9, 0.72), transparent 42%);
  pointer-events: none;
}

.pt-landing-hero__visual::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  opacity: 0.33;
  background:
    linear-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.09) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000);
  mask-image: linear-gradient(90deg, transparent 30%, #000);
  pointer-events: none;
}

.pt-landing-hero__visual > img {
  width: 100%;
  height: 100%;
  min-height: 630px;
  object-fit: cover;
  object-position: 62% center;
  filter: saturate(0.78) contrast(1.08) brightness(0.76);
}

.pt-landing-hero__node {
  position: absolute;
  z-index: 3;
  display: grid;
  gap: 2px;
  min-width: 132px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: var(--pt-radius-md);
  background: rgba(11, 13, 16, 0.84);
  box-shadow: var(--pt-shadow-card);
  color: var(--pt-text-200);
  font-size: 11px;
  backdrop-filter: blur(10px);
}

.pt-landing-hero__node::before {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: -22px;
  width: 22px;
  height: 1px;
  background: var(--pt-primary);
}

.pt-landing-hero__node b {
  color: var(--pt-success);
  font-size: 10px;
  font-weight: 600;
}

.pt-landing-hero__node--1 {
  inset-block-start: 24%;
  inset-inline-end: 13%;
}

.pt-landing-hero__node--2 {
  inset-block-end: 18%;
  inset-inline-start: 37%;
}

.pt-landing-section {
  position: relative;
  padding-block: clamp(76px, 9vw, 132px);
}

.pt-landing-section--surface {
  border-block: 1px solid var(--pt-divider);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.012), transparent 35%),
    var(--pt-bg-850);
}

.pt-landing-section__header {
  max-width: 780px;
  margin-block-end: clamp(36px, 5vw, 56px);
}

.pt-landing-section__header .pt-h1,
.pt-landing-tech .pt-h1,
.pt-landing-cta .pt-h1 {
  margin-block: 10px 15px;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.06;
  letter-spacing: -0.04em;
}

.pt-landing-section__header .pt-subtitle,
.pt-landing-tech .pt-subtitle,
.pt-landing-cta .pt-subtitle {
  max-width: 720px;
  line-height: 1.6;
}

.pt-landing-card-grid,
.pt-landing-benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--pt-space-4);
}

.pt-landing-card,
.pt-landing-benefit,
.pt-landing-profile {
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-xl);
  background: var(--pt-surface-1);
  box-shadow: var(--pt-shadow-xs);
}

.pt-landing-card,
.pt-landing-benefit {
  position: relative;
  min-height: 258px;
  overflow: hidden;
  padding: var(--pt-space-6);
  transition: var(--pt-transition-surface);
}

.pt-landing-card::after,
.pt-landing-benefit::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: linear-gradient(90deg, var(--pt-primary), transparent 72%);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-landing-card:hover,
.pt-landing-benefit:hover {
  border-color: var(--pt-border-strong);
  box-shadow: var(--pt-shadow-hover);
  transform: translateY(-4px);
}

.pt-landing-card:hover::after,
.pt-landing-benefit:hover::after {
  transform: scaleX(1);
}

.pt-landing-card__icon,
.pt-landing-benefit__icon {
  display: grid;
  width: 48px;
  height: 48px;
  margin-block-end: var(--pt-space-6);
  place-items: center;
  border: 1px solid var(--pt-primary-border);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-primary-soft);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.04);
}

.pt-landing-card .pt-h3,
.pt-landing-benefit .pt-h3 {
  margin-block-end: 10px;
  font-weight: 600;
}

.pt-landing-tech {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(430px, 1.12fr);
  align-items: center;
  gap: clamp(52px, 8vw, 116px);
}

.pt-landing-tech__content .pt-caption {
  display: block;
  max-width: 620px;
  margin-block-start: var(--pt-space-5);
  padding-inline-start: 14px;
  border-inline-start: 2px solid var(--pt-primary);
}

.pt-landing-tech__list {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  list-style: none;
}

.pt-landing-tech__item {
  position: relative;
  display: grid;
  min-height: 144px;
  align-content: center;
  gap: 8px;
  overflow: hidden;
  padding: 24px;
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-xl);
  background:
    linear-gradient(135deg, rgba(212, 106, 31, 0.08), transparent 52%),
    var(--pt-surface-1);
  color: var(--pt-text-300);
}

.pt-landing-tech__item::after {
  content: "";
  position: absolute;
  inset-block-start: -26px;
  inset-inline-end: -26px;
  width: 72px;
  height: 72px;
  border: 1px solid rgba(212, 106, 31, 0.24);
  border-radius: 50%;
}

.pt-landing-tech__name {
  color: var(--pt-primary-300);
  font-size: 25px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.pt-landing-cta {
  position: relative;
  overflow: hidden;
  padding-block: clamp(76px, 8vw, 112px);
  border-block: 1px solid var(--pt-primary-border);
  background:
    linear-gradient(135deg, rgba(212, 106, 31, 0.12), transparent 52%),
    var(--pt-bg-950);
}

.pt-landing-cta::after {
  content: "";
  position: absolute;
  inset-block: -40%;
  inset-inline-end: 12%;
  width: 1px;
  background: rgba(212, 106, 31, 0.32);
  box-shadow:
    42px 0 rgba(212, 106, 31, 0.12),
    84px 0 rgba(212, 106, 31, 0.06);
  transform: rotate(20deg);
}

.pt-landing-cta__inner {
  position: relative;
  z-index: 1;
}

.pt-landing-cta__inner > div {
  max-width: 820px;
}

.pt-landing-cta__inner > img {
  width: 290px;
  height: 118px;
  object-fit: cover;
  object-position: center;
}

.pt-landing-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(540px, 1.22fr);
  align-items: start;
  gap: clamp(52px, 8vw, 116px);
}

.pt-landing-profile {
  padding: clamp(24px, 4vw, 42px);
  background:
    linear-gradient(150deg, rgba(255, 255, 255, 0.018), transparent 48%),
    var(--pt-surface-1);
  box-shadow: var(--pt-shadow-card);
}

.pt-landing-profile .pt-field__required {
  margin-inline-start: 0;
  color: var(--pt-text-500);
  font-size: 10px;
  font-weight: 500;
}

.pt-landing-profile .pt-feedback:empty {
  display: none;
}

.pt-landing-footer {
  padding-block: var(--pt-space-10);
  border-block-start: 1px solid var(--pt-divider);
  background: var(--pt-bg-950);
}

.pt-landing-footer__inner > div:first-child > img {
  width: 202px;
  height: 62px;
  object-fit: cover;
  object-position: center;
}

.pt-landing-footer__inner > div:first-child .pt-caption {
  max-width: 320px;
  margin-block-start: 4px;
}

.pt-landing-footer__signature {
  display: grid;
  justify-items: end;
  gap: 2px;
}

.pt-landing-footer__phd {
  width: 164px;
  height: 56px;
  object-fit: cover;
  object-position: center;
}

noscript {
  display: block;
  padding: var(--pt-space-6);
  background: var(--pt-warning-soft);
  color: var(--pt-text-100);
  text-align: center;
}

.pt-landing-auth {
  position: fixed;
  inset: 0;
  z-index: var(--pt-z-backdrop);
}

.pt-landing-auth .pt-modal {
  overflow-x: hidden;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.018), transparent 46%),
    var(--pt-surface-2);
}

.pt-landing-auth__logo {
  width: 216px;
  height: 70px;
  margin-block: -14px 8px;
  object-fit: cover;
  object-position: center;
}

.pt-landing-auth .pt-modal__close img,
.pt-landing-auth .pt-field__icon,
.pt-landing-auth .pt-field__actions img {
  filter: brightness(0) invert(1);
}

.pt-landing-auth .pt-modal__body {
  padding-block-start: 24px;
}

.pt-landing-auth .pt-field__actions .pt-icon-btn {
  width: 36px;
  height: 36px;
}

.pt-landing-auth .pt-feedback {
  min-height: 18px;
}

.pt-landing-login__support {
  margin-block-start: var(--pt-space-6);
  padding-block-start: var(--pt-space-5);
  border-block-start: 1px solid var(--pt-divider);
  text-align: center;
}

.pt-empty.pt-page {
  min-height: 100vh;
  place-content: center;
}

.pt-empty.pt-page .pt-empty__icon {
  filter: brightness(0) invert(1);
}

@media (max-width: 1240px) {
  .pt-landing-hero__inner {
    grid-template-columns: minmax(0, 0.94fr) minmax(480px, 1.06fr);
  }
  .pt-landing-hero__visual {
    min-height: 570px;
  }
  .pt-landing-hero__visual > img {
    min-height: 570px;
  }
  .pt-landing-card-grid,
  .pt-landing-benefit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .pt-landing-hero__inner {
    min-height: auto;
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
    padding-block-end: 80px;
  }
  .pt-landing-hero__content {
    max-width: 760px;
  }
  .pt-landing-hero__visual {
    min-height: 540px;
    margin-inline-end: -64px;
    margin-inline-start: clamp(0px, 7vw, 72px);
  }
  .pt-landing-hero__visual > img {
    min-height: 540px;
  }
  .pt-landing-tech,
  .pt-landing-profile-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-landing-tech__content,
  .pt-landing-profile-grid > .pt-landing-section__header {
    max-width: 760px;
  }
}

@media (max-width: 767px) {
  .pt-landing .pt-container {
    padding-inline: 16px;
  }
  .pt-landing-header__inner {
    min-height: 64px;
  }
  .pt-landing-brand {
    width: 192px;
  }
  .pt-landing-brand__logo {
    width: 192px;
    height: 62px;
  }
  .pt-landing-hero__inner {
    gap: 36px;
    padding-block: 48px 64px;
  }
  .pt-landing-hero__title {
    font-size: clamp(39px, 13vw, 56px);
  }
  .pt-landing-hero__lead {
    font-size: 16px;
  }
  .pt-landing-hero__content .pt-cluster,
  .pt-landing-hero__content .pt-btn {
    width: 100%;
  }
  .pt-landing-hero__visual {
    min-height: 390px;
    margin-inline: 0 -16px;
    border-radius: var(--pt-radius-xl) 0 0 var(--pt-radius-xl);
  }
  .pt-landing-hero__visual > img {
    min-height: 390px;
    object-position: 66% center;
  }
  .pt-landing-hero__node {
    min-width: 118px;
    font-size: 10px;
  }
  .pt-landing-hero__node--1 {
    inset-block-start: 18%;
    inset-inline-end: 8%;
  }
  .pt-landing-hero__node--2 {
    display: none;
  }
  .pt-landing-section__header {
    margin-block-end: 32px;
  }
  .pt-landing-card-grid,
  .pt-landing-benefit-grid,
  .pt-landing-tech__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-landing-card,
  .pt-landing-benefit {
    min-height: auto;
  }
  .pt-landing-tech__item {
    min-height: 120px;
  }
  .pt-landing-cta__inner,
  .pt-landing-footer__inner {
    align-items: flex-start;
    flex-direction: column;
  }
  .pt-landing-cta__inner > img {
    align-self: flex-start;
    width: 230px;
    height: 90px;
  }
  .pt-landing-profile {
    padding: 22px 18px;
  }
  .pt-landing-footer__signature {
    justify-items: start;
  }
  .pt-landing-auth .pt-modal {
    width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
  }
  .pt-landing-auth__logo {
    width: 184px;
    height: 62px;
  }
}

@media (prefers-contrast: more) {
  .pt-landing-hero__node,
  .pt-landing-card,
  .pt-landing-benefit,
  .pt-landing-tech__item,
  .pt-landing-profile {
    border-width: 2px;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .pt-landing-header,
  .pt-landing-hero__node,
  .pt-landing-auth .pt-backdrop {
    backdrop-filter: none;
  }
  .pt-landing-header {
    background: var(--pt-bg-950);
  }
  .pt-landing-hero__node {
    background: var(--pt-bg-850);
  }
}

/* ===== Fonte: styles/auth.css ===== */

/* Folha de estilos das páginas de autenticação (recuperação, redefinição, verificação) */
.pt-auth-page {
  display: grid;
  width: min(100% - 32px, 440px);
  min-height: 100vh;
  margin-inline: auto;
  place-content: center;
  justify-items: center;
  gap: var(--pt-space-5);
  text-align: center;
}

.pt-auth-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at center, rgba(212, 106, 31, 0.11), transparent 24rem),
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    var(--pt-bg-900);
  background-size: auto, 44px 44px, 44px 44px, auto;
}

.pt-auth-brand {
  width: 96px;
  height: 96px;
  object-fit: cover;
  object-position: center;
}

.pt-auth-card {
  width: 100%;
  padding: var(--pt-space-6);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.018), transparent 46%),
    var(--pt-surface-2);
  text-align: start;
}

.pt-auth-card .pt-alert {
  width: 100%;
}

@media (max-width: 480px) {
  .pt-auth-page {
    width: min(100% - 24px, 440px);
  }
  .pt-auth-card {
    padding: var(--pt-space-5);
  }
}

/* ===== Fonte: styles/app.css ===== */

/* Folha de estilos da área autenticada (shell e dashboard) */
/* Correção de hover (main.css é congelada): o atalho `background` do estado
   hover reseta o `background-image` que desenha as setas do .pt-select.
   Restaura as setas mantendo a cor e a borda de hover do componente. */
.pt-select:hover:not(:disabled):not([multiple]) {
  border-color: #4A535F;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--pt-text-500) 50%),
    linear-gradient(135deg, var(--pt-text-500) 50%, transparent 50%);
  background-position:
    calc(100% - 17px) 50%,
    calc(100% - 12px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

/* Os controles já usam color-scheme: dark. A inversão de main.css escurece
   o ícone nativo do calendário/relógio sobre o fundo escuro do campo. */
.pt-input[type="date"]::-webkit-calendar-picker-indicator,
.pt-input[type="time"]::-webkit-calendar-picker-indicator,
.pt-input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  filter: none;
  opacity: 1;
}

/* Logomarca da sidebar: o asset e canvas quadrado (800x800) com glifo horizontal
   (637x124, ~5.14:1) centrado na vertical. main.css fixa 32px/contain. Aqui o logo
   ocupa 80% da largura da sidebar (abaixo do seu padding), com aspect-ratio do
   glifo e object-fit cover cortando a transparencia vertical do canvas. */
.pt-sidebar__header {
  padding-inline: 0;
}

.pt-brand {
  width: 100%;
  justify-content: center;
}

.pt-brand__logo {
  width: 100%;
  height: auto;
  aspect-ratio: 5.14;
  object-fit: cover;
}

.pt-btn img,
.pt-ble-alert__icon img {
  filter: brightness(0) invert(1);
}

.pt-sidebar-user {
  display: flex;
  align-items: center;
  gap: var(--pt-space-3);
  width: 100%;
  min-width: 0;
  padding: var(--pt-space-2);
  border: 1px solid transparent;
  border-radius: var(--pt-radius-md);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: start;
  cursor: pointer;
}

.pt-sidebar-user:hover {
  border-color: var(--pt-border-subtle);
  background: var(--pt-surface-2);
}

.pt-sidebar-user__info {
  display: grid;
  gap: var(--pt-space-1);
  min-width: 0;
  flex: 1 1 auto;
}

.pt-sidebar-user__name,
.pt-sidebar-user__email {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Atalhos do resumo (dashboard) */
.pt-dash-shortcut {
  display: block;
  text-decoration: none;
}

.pt-dash-shortcut__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--pt-space-2);
}

.pt-dash-shortcut__body {
  display: grid;
  gap: var(--pt-space-1);
  align-content: start;
  padding: var(--pt-space-4);
}

.pt-dash-shortcut__icon {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-block-end: var(--pt-space-1);
  border-radius: var(--pt-radius-sm);
  background: var(--pt-primary-soft);
  color: var(--pt-primary-300);
}

.pt-dash-shortcut__title {
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
}

.pt-dash-shortcut__meta {
  color: var(--pt-text-300);
  font-size: 11px;
  line-height: 15px;
}

/* ===== Fonte: styles/home.css ===== */

/* Folha de estilos da área Início (dashboard) */
.pt-home-now {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--pt-space-2);
  margin: var(--pt-space-3) 0 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
}

/* Pulso do ciclo BLE */
.pt-home-pulse {
  display: grid;
  grid-template-columns:
    minmax(200px, 0.9fr)
    minmax(240px, 1.1fr)
    minmax(300px, 1.4fr)
    auto;
  align-items: center;
  gap: var(--pt-space-6);
  padding: var(--pt-space-5);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background:
    radial-gradient(
      circle at 0% 0%,
      rgba(var(--pt-primary-rgb), 0.14),
      transparent 46%
    ),
    var(--pt-surface-1);
  box-shadow: var(--pt-shadow-card);
}

.pt-home-pulse__clock {
  min-width: 0;
}

.pt-home-pulse__time {
  margin: var(--pt-space-2) 0 0;
  color: var(--pt-text-100);
  font-size: 34px;
  line-height: 38px;
  font-weight: 650;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.pt-home-pulse__status {
  display: flex;
  align-items: center;
  gap: var(--pt-space-2);
  margin: var(--pt-space-2) 0 0;
  color: var(--pt-text-200);
  font-size: 12px;
  line-height: 17px;
}

.pt-home-pulse__feed {
  min-width: 0;
}

.pt-home-pulse__feed-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-3);
  margin-block-end: var(--pt-space-2);
}

.pt-home-pulse__count {
  color: var(--pt-text-300);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.pt-home-pulse__count strong {
  color: var(--pt-text-100);
  font-size: 16px;
  font-weight: 700;
}

.pt-home-pulse__segments {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  min-height: 24px;
}

.pt-home-pulse__segment {
  flex: 1 1 0;
  height: 10px;
  border: 1px solid var(--pt-border-subtle);
  border-radius: 2px;
  background: var(--pt-surface-3);
  transition:
    height var(--pt-motion-base) var(--pt-ease-emphasized),
    background-color var(--pt-motion-base) var(--pt-ease-standard),
    border-color var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-home-pulse__segment.is-arrived {
  height: 24px;
  border-color: var(--pt-primary);
  background: var(--pt-primary);
}

.pt-home-pulse.is-live .pt-home-pulse__segment.is-latest {
  animation: pt-home-cycle-beat 2s var(--pt-ease-standard) infinite;
}

@keyframes pt-home-cycle-beat {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(var(--pt-primary-rgb), 0.5);
  }
  50% {
    box-shadow: 0 0 0 4px rgba(var(--pt-primary-rgb), 0);
  }
}

.pt-home-pulse__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--pt-space-4) var(--pt-space-5);
  margin: 0;
}

.pt-home-pulse__metric dt {
  color: var(--pt-text-300);
  font-size: 11px;
  line-height: 15px;
}

.pt-home-pulse__metric dd {
  margin: var(--pt-space-1) 0 0;
  color: var(--pt-text-100);
  font-size: 22px;
  line-height: 26px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pt-home-pulse__metric--moving dd {
  color: var(--pt-success);
}

.pt-home-pulse__metric--still dd {
  color: var(--pt-info);
}

.pt-home-pulse__metric--unlinked dd {
  color: var(--pt-warning);
}

.pt-home-pulse__actions {
  display: flex;
  justify-content: flex-end;
}

/* Indicadores do Início */
.pt-home-kpi {
  color: var(--pt-text-100);
  text-decoration: none;
}

.pt-home-kpi .pt-stat-card__label,
.pt-home-kpi .pt-stat-card__value,
.pt-home-kpi .pt-stat-card__meta {
  display: block;
}

.pt-home-kpi--danger .pt-stat-card__icon {
  background: var(--pt-danger-soft);
  color: var(--pt-danger);
}

.pt-home-kpi--danger .pt-stat-card__value {
  color: var(--pt-danger);
}

.pt-home-kpi--warning .pt-stat-card__icon {
  background: var(--pt-warning-soft);
  color: var(--pt-warning);
}

.pt-home-kpi--warning .pt-stat-card__value {
  color: var(--pt-warning);
}

.pt-home-kpi--success .pt-stat-card__icon {
  background: var(--pt-success-soft);
  color: var(--pt-success);
}

.pt-home-kpi--success .pt-stat-card__value {
  color: var(--pt-success);
}

.pt-home-kpi--info .pt-stat-card__icon {
  background: var(--pt-info-soft);
  color: var(--pt-info);
}

.pt-home-kpi--info .pt-stat-card__value {
  color: var(--pt-info);
}

.pt-home-kpi--offline .pt-stat-card__icon {
  background: var(--pt-offline-soft);
  color: var(--pt-offline);
}

/* Painéis do Início: altura fixa com rolagem interna */
.pt-home-dashboard {
  --pt-home-panel-alerts-height: 320px;
  --pt-home-panel-signals-height: 440px;
  --pt-home-panel-top-row: calc(
    var(--pt-home-panel-alerts-height) + var(--pt-home-panel-signals-height) +
      var(--pt-space-4)
  );
  --pt-home-panel-bottom-row: 400px;
}

.pt-home-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.pt-home-panel > .pt-card__header,
.pt-home-panel > .pt-card__footer {
  flex: 0 0 auto;
}

.pt-home-panel__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

@media (min-width: 1024px) {
  .pt-home-panel--alerts {
    height: var(--pt-home-panel-alerts-height);
  }
  .pt-home-panel--signals {
    height: var(--pt-home-panel-signals-height);
  }
  .pt-home-panel--health {
    height: var(--pt-home-panel-top-row);
  }
  .pt-home-panel--shortcuts {
    height: var(--pt-home-panel-bottom-row);
  }
  .pt-home-panel--pending {
    height: var(--pt-home-panel-bottom-row);
  }
}

/* Alertas ativos */
.pt-home-alerts.is-active {
  border-color: color-mix(in srgb, var(--pt-danger) 55%, transparent);
  background:
    linear-gradient(135deg, rgba(var(--pt-danger-rgb), 0.12), transparent 62%),
    var(--pt-surface-1);
  box-shadow: inset 3px 0 0 var(--pt-danger);
}

.pt-home-alerts.is-active .pt-card__header {
  border-block-end-color: color-mix(in srgb, var(--pt-danger) 30%, transparent);
}

/* Listas do Início */
.pt-home-list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pt-home-list__item {
  display: grid;
  gap: var(--pt-space-2);
  padding: var(--pt-space-3) 0;
  border-block-end: 1px solid var(--pt-divider);
}

.pt-home-list__item:first-child {
  padding-block-start: 0;
}

.pt-home-list__item:last-child {
  border-block-end: 0;
  padding-block-end: 0;
}

.pt-home-list__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-3);
  min-width: 0;
}

.pt-home-list__row > .pt-badge {
  flex: 0 0 auto;
}

.pt-home-list__title {
  min-width: 0;
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.pt-home-list__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px var(--pt-space-4);
  margin: 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
}

.pt-home-list__empty {
  margin: 0;
  color: var(--pt-text-300);
  font-size: 13px;
  line-height: 19px;
}

/* Estrutura cadastrada */
.pt-home-structure {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--pt-space-3);
}

.pt-home-structure__item {
  display: grid;
  gap: 2px;
  padding: var(--pt-space-3) var(--pt-space-4);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-md);
  background: var(--pt-surface-2);
  color: inherit;
  text-decoration: none;
  transition:
    border-color var(--pt-motion-base) var(--pt-ease-standard),
    background-color var(--pt-motion-base) var(--pt-ease-standard),
    transform var(--pt-motion-base) var(--pt-ease-standard);
}

.pt-home-structure__item:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--pt-primary-rgb), 0.35);
  background: var(--pt-surface-3);
}

.pt-home-structure__value {
  color: var(--pt-text-100);
  font-size: 24px;
  line-height: 28px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pt-home-structure__label {
  color: var(--pt-text-200);
  font-size: 12px;
  line-height: 16px;
  font-weight: 600;
}

.pt-home-structure__meta {
  color: var(--pt-text-500);
  font-size: 11px;
  line-height: 15px;
}

.pt-home-structure__meta.is-warning {
  color: var(--pt-warning);
}

@media (max-width: 1279px) {
  .pt-home-pulse {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--pt-space-5);
  }
  .pt-home-pulse__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .pt-home-pulse {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pt-space-4);
    padding: var(--pt-space-4);
  }
  .pt-home-pulse__time {
    font-size: 28px;
    line-height: 32px;
  }
  .pt-home-structure {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }
}

/* ===== Fonte: styles/settings.css ===== */

/* Folha de estilos da tela de configurações da conta e do popup do shell */
.pt-settings-profile {
  display: flex;
  align-items: center;
  gap: var(--pt-space-3);
}

.pt-settings-fixed-profile {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-2);
  margin: 0;
}

.pt-settings-facts {
  display: grid;
  gap: var(--pt-space-4);
  margin: 0;
}

.pt-settings-facts__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-3);
  padding-block-end: var(--pt-space-3);
  border-block-end: 1px solid var(--pt-divider);
}

.pt-settings-facts__item:last-child {
  padding-block-end: 0;
  border-block-end: 0;
}

.pt-settings-facts__item dt {
  margin: 0;
}

.pt-settings-facts__item dd {
  margin: 0;
}

.pt-account-dialog {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--pt-text-100);
  overflow: visible;
}

.pt-account-dialog::backdrop {
  background: rgba(0, 0, 0, 0.72);
}

.pt-account-dialog__surface {
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-xl);
  background: var(--pt-surface-1);
  overflow: auto;
}

.pt-account-dialog__header {
  padding: var(--pt-space-4) var(--pt-space-5);
}

.pt-account-dialog__body {
  padding: var(--pt-space-5);
}

/* ===== Fonte: styles/accesses.css ===== */

/* Folha de estilos da tela de gestão de acessos */
.pt-access-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--pt-space-4);
}

.pt-access-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--pt-space-3);
}

.pt-access-filter {
  min-width: 12rem;
}

.pt-access-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--pt-space-2);
}

.pt-access-profile {
  display: inline-flex;
  align-items: center;
}

.pt-access-profile .pt-select {
  min-width: 9.75rem;
  /* O chevron ocupa os últimos 22px; 28px mantêm o texto livre dele e
     deixam espaço para o rótulo de perfil mais longo. */
  padding-inline-end: 28px;
}

.pt-access-list {
  margin-block-start: var(--pt-space-4);
}

.pt-access-list .pt-empty {
  padding-block: var(--pt-space-6);
}

.pt-access-dialog {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--pt-text-100);
  overflow: visible;
}

.pt-access-dialog::backdrop {
  background: rgba(0, 0, 0, 0.72);
}

.pt-access-dialog__surface {
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-xl);
  background: var(--pt-surface-1);
  overflow: auto;
}

.pt-access-dialog__header {
  padding: var(--pt-space-4) var(--pt-space-5);
}

.pt-access-dialog__body {
  display: grid;
  gap: var(--pt-space-4);
  padding: var(--pt-space-5);
}

.pt-access-dialog__body .pt-alert {
  margin-block-end: 0;
}

.pt-access-dialog__footer {
  position: sticky;
  inset-block-end: 0;
  padding: var(--pt-space-3) var(--pt-space-5);
  background: var(--pt-surface-1);
}

@media (max-width: 767px) {
  .pt-access-toolbar,
  .pt-access-filters {
    align-items: stretch;
  }
  .pt-access-filter {
    min-width: 0;
    flex: 1 1 100%;
  }
  .pt-access-actions {
    justify-content: flex-start;
  }
}

/* ===== Fonte: styles/cadastro.css ===== */

/* Folha de estilos das telas de cadastro (áreas, setores, gateways e ativos) */
.pt-modal::backdrop {
  background: rgba(0, 0, 0, 0.72);
}

.pt-modal .pt-field[hidden] {
  display: none;
}

/* ===== Fonte: styles/map-editor.css ===== */

/* Folha de estilos do editor de mapa */
.pt-map-editor {
  position: relative;
  width: 100%;
  height: 100%;
  outline: none;
}

.pt-map-editor:focus-visible {
  box-shadow: var(--pt-focus-ring);
}

.pt-map-editor__layout {
  display: flex;
  flex-direction: column;
  gap: var(--pt-space-4);
}

.pt-map-editor__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-2);
}

.pt-map-editor__tool {
  display: inline-flex;
  align-items: center;
  gap: var(--pt-space-2);
  padding: var(--pt-space-2) var(--pt-space-3);
  border: 1px solid var(--pt-divider);
  border-radius: var(--pt-radius-sm);
  background: var(--pt-surface-1);
  color: var(--pt-text-100);
  font: inherit;
  cursor: pointer;
}

.pt-map-editor__tool.is-active {
  border-color: var(--pt-primary-border);
  color: var(--pt-primary);
}

.pt-map-editor__tool:focus-visible {
  box-shadow: var(--pt-focus-ring);
}

.pt-map-editor__spacer {
  flex: 1;
}

.pt-map-editor__stage {
  display: flex;
  gap: var(--pt-space-4);
  align-items: flex-start;
}

.pt-map-editor__canvas-host {
  flex: 1;
  min-height: 420px;
  border: 1px solid var(--pt-divider);
  border-radius: var(--pt-radius-md);
  background: var(--pt-surface-2);
  overflow: hidden;
}

.pt-map-editor__canvas {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  touch-action: none;
}

.pt-map-shape__handle {
  fill: var(--pt-surface-1);
  stroke: var(--pt-primary);
  stroke-width: 1;
  cursor: pointer;
}

.pt-map-editor__marker--asset circle {
  fill: var(--pt-primary);
  stroke: var(--pt-surface-1);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.pt-map-editor__marker--gateway rect {
  fill: #3b82f6;
  stroke: var(--pt-surface-1);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.pt-map-editor__marker text {
  fill: var(--pt-text-100);
  font-size: 11px;
  pointer-events: none;
}

.pt-map-editor__panel {
  width: 240px;
  display: flex;
  flex-direction: column;
  gap: var(--pt-space-3);
  padding: var(--pt-space-4);
  border: 1px solid var(--pt-divider);
  border-radius: var(--pt-radius-md);
}

.pt-map-editor__panel-title {
  margin: 0;
  font-weight: 600;
}

.pt-map-sector {
  cursor: move;
}

.pt-map-sector__outline {
  fill: none;
  stroke: var(--pt-primary);
  stroke-width: 2;
}

.pt-map-sector.is-selected .pt-map-sector__outline {
  stroke: #ffffff;
  stroke-width: 3;
}

.pt-map-sector__label {
  fill: var(--pt-text-100);
  font-size: 11px;
  pointer-events: none;
}

/* ===== Fonte: styles/monitoring.css ===== */

/* Folha de estilos da tela de Monitoramento */
.pt-monitor-filters {
  align-items: flex-end;
  margin-block-end: var(--pt-space-4);
}

.pt-monitor-filters__field {
  min-width: 160px;
}

.pt-monitor-filters__field.is-loading .pt-select {
  opacity: 0.6;
  cursor: wait;
}

.pt-monitor-filters__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-2);
  margin-inline-start: auto;
}

.pt-monitor-layout {
  display: grid;
  grid-template-columns: minmax(480px, 2fr) 1fr;
  gap: var(--pt-space-4);
  align-items: start;
}

.pt-monitor-layout__map {
  min-width: 0;
}

.pt-monitor-layout__side {
  display: grid;
  gap: var(--pt-space-4);
  min-width: 0;
}

:is(#mon-overview, #hist-overview) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--pt-space-3);
  margin-block-end: var(--pt-space-4);
}

:is(#mon-overview, #hist-overview) .pt-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--pt-space-4);
}

:is(#mon-overview, #hist-overview) .pt-card__title {
  padding-block-end: var(--pt-space-3);
  border-block-end: 1px solid var(--pt-divider);
  font-size: 14px;
  line-height: 20px;
}

:is(#mon-overview, #hist-overview) .pt-monitor-map-summary {
  gap: var(--pt-space-2);
  margin: var(--pt-space-3) 0;
  padding: 0;
  border: 0;
  background: transparent;
}

:is(#mon-overview, #hist-overview) .pt-monitor-map-summary__item {
  align-items: center;
  gap: var(--pt-space-2);
}

:is(#mon-overview, #hist-overview) .pt-monitor-map-summary__item dd,
:is(#mon-overview, #hist-overview) .pt-number {
  color: var(--pt-text-100);
  font-size: 24px;
  line-height: 28px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

#mon-overview #mon-assets-present,
#mon-overview #mon-sectors-referenced,
#hist-overview #hist-assets-instant,
#hist-overview #hist-sectors-referenced {
  color: var(--pt-primary-300);
}

#mon-overview #mon-assets-moving {
  color: var(--pt-success);
}

#hist-overview #hist-assets-referenced {
  color: var(--pt-success);
}

:is(#mon-overview, #hist-overview) .pt-number {
  margin: var(--pt-space-3) 0;
}

:is(#mon-overview, #hist-overview) .pt-caption {
  margin: auto 0 0;
}

.pt-monitor-map-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--pt-space-4);
  padding: var(--pt-space-5);
  border-block-end: 1px solid var(--pt-divider);
}

.pt-monitor-map-card__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: var(--pt-space-6);
  row-gap: var(--pt-space-3);
  min-width: 0;
}

.pt-monitor-map-card__label-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-3);
}

.pt-monitor-map-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--pt-space-2);
  margin: 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 16px;
}

.pt-monitor-map-card__body {
  padding: var(--pt-space-5);
}

.pt-monitor-map-canvas {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 420px;
  border: 1px solid var(--pt-divider);
  border-radius: var(--pt-radius-md);
  background: var(--pt-surface-2);
  overflow: hidden;
}

.pt-monitor-map__surface {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 0;
}

.pt-monitor-map-summary {
  display: grid;
  gap: var(--pt-space-2);
  margin: auto 0 0;
  padding: var(--pt-space-3) var(--pt-space-4);
  border-block-start: 1px solid var(--pt-divider);
  background: var(--pt-surface-2);
}

.pt-monitor-map-summary__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--pt-space-4);
}

.pt-monitor-map-summary__item dt,
.pt-monitor-map-summary__item dd {
  margin: 0;
}

.pt-monitor-map-summary__item dt {
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
}

.pt-monitor-map-summary__item dd {
  color: var(--pt-text-100);
  font-size: 14px;
  line-height: 20px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.pt-monitor-map-legend {
  margin: var(--pt-space-3) 0 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
}

.pt-monitor-map__svg {
  display: block;
  width: 100%;
  height: auto;
}

.pt-monitor-map-state {
  min-height: 420px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--pt-space-3);
  padding: var(--pt-space-6);
  color: var(--pt-text-300);
  text-align: center;
}

.pt-monitor-map-state .pt-spinner {
  color: var(--pt-primary-300);
}

.pt-monitor-map__area-border {
  fill: none;
  stroke: var(--pt-text-500);
  stroke-width: 1.5;
}

.pt-monitor-map__sector {
  fill: var(--pt-primary-soft);
  stroke: var(--pt-primary);
  stroke-width: 0.5;
}

.pt-monitor-map__label {
  fill: var(--pt-text-100);
  font-weight: 600;
  pointer-events: none;
}

.pt-monitor-map__sector-count {
  fill: var(--pt-text-100);
  font-weight: 600;
  pointer-events: none;
}

.pt-monitor-map__sector-count[hidden] {
  display: none;
}

.pt-monitor-map__marker {
  pointer-events: none;
}

.pt-monitor-map__marker text {
  fill: var(--pt-text-100);
  pointer-events: none;
}

.pt-monitor-map__gateway-label {
  fill: var(--pt-text-200);
  opacity: 0.68;
}

.pt-monitor-map__surface.is-sector-labels-hidden .pt-monitor-map__label,
.pt-monitor-map__surface.is-sector-labels-hidden .pt-monitor-map__sector-count,
.pt-monitor-map__surface.is-gateway-labels-hidden .pt-monitor-map__gateway-label {
  display: none;
}

.pt-monitor-map__marker-icon,
.pt-monitor-map__live-tag {
  overflow: visible;
}

.pt-monitor-map__marker-icon *,
.pt-monitor-map__live-tag * {
  vector-effect: non-scaling-stroke;
}

.pt-monitor-map__marker--asset .pt-monitor-map__marker-icon {
  color: var(--pt-primary);
}

.pt-monitor-map__marker--gateway .pt-monitor-map__marker-icon {
  color: var(--pt-info);
}

.pt-monitor-map__marker--gateway.is-signal-reference .pt-monitor-map__marker-icon {
  color: var(--pt-warning);
}

.pt-monitor-map__sector.is-signal-sector {
  stroke: var(--pt-warning);
}

.pt-monitor-map__marker--gateway.is-selected-reference .pt-monitor-map__marker-icon {
  filter: drop-shadow(0 0 2px var(--pt-primary));
}

.pt-monitor-map__history-hit-target {
  fill: transparent;
  stroke: none;
  pointer-events: all;
  cursor: pointer;
}

.pt-monitor-map__live-hit-target {
  fill: transparent;
  stroke: none;
  pointer-events: all;
  cursor: pointer;
}

.pt-monitor-map__live-tag {
  color: var(--pt-info);
  pointer-events: none;
}

.pt-monitor-map__live-tag.is-moving {
  color: var(--pt-success, #22c55e);
}

.pt-monitor-map__live-tag.is-still {
  color: var(--pt-info);
}

.pt-monitor-map__live-tag.is-history-reference {
  color: var(--pt-text-300);
}

.pt-monitor-map__live-tag.is-history-reference,
.pt-monitor-map__live-tag[data-live-signal] {
  pointer-events: auto;
  cursor: pointer;
}

.pt-monitor-map__live-tag.is-history-reference.is-selected-history-reference {
  color: var(--pt-warning);
  filter: drop-shadow(0 0 2px var(--pt-primary));
}

.pt-monitor-map__live-tag.is-history-reference:focus-visible,
.pt-monitor-map__live-tag[data-live-signal]:focus-visible {
  outline: none;
}

.pt-monitor-map__live-tag.is-history-reference:focus-visible {
  color: var(--pt-text-100);
}

.pt-monitor-map__live-tag.is-history-reference:focus-visible *,
.pt-monitor-map__live-tag[data-live-signal]:focus-visible * {
  stroke-width: 3;
}

.pt-monitor-map__live-tag.is-selected-live-tag {
  filter:
    drop-shadow(0 0 1px var(--pt-black))
    drop-shadow(0 0 3px var(--pt-white));
}

.pt-monitor-map__live-tag.is-selected-live-tag * {
  stroke-width: 2.6;
}

.pt-monitor-panel {
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-surface-1);
}

.pt-monitor-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-3);
  padding: var(--pt-space-4);
  border-block-end: 1px solid var(--pt-divider);
}

.pt-monitor-panel__title {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.pt-monitor-panel__body {
  padding: var(--pt-space-4);
  max-height: min(60vh, 560px);
  max-height: min(60dvh, 560px);
  overflow: auto;
}

.pt-monitor-history__status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-3);
  margin-block: var(--pt-space-3) var(--pt-space-4);
  color: var(--pt-text-300);
  font-size: 13px;
  line-height: 20px;
}

.pt-monitor-history__status p {
  margin: 0;
}

@media print {
  .pt-monitor-panel__body {
    max-height: none;
    overflow: visible;
  }
}

.pt-monitor-panel__body p {
  color: var(--pt-text-300);
}

.pt-monitor-panel__footer {
  padding: var(--pt-space-3) var(--pt-space-4);
  border-block-start: 1px solid var(--pt-divider);
}

.pt-monitor-panel.is-loading .pt-monitor-panel__body {
  opacity: 0.65;
}

.pt-monitor-panel--alerts {
  border-color: rgba(var(--pt-danger-rgb), 0.62);
  background:
    linear-gradient(135deg, rgba(var(--pt-danger-rgb), 0.2), transparent 68%),
    var(--pt-surface-1);
  box-shadow:
    inset 4px 0 0 var(--pt-danger),
    0 12px 28px rgba(var(--pt-danger-rgb), 0.14);
}

.pt-monitor-panel--alerts .pt-monitor-panel__header,
.pt-monitor-panel--alerts .pt-monitor-panel__footer {
  border-color: rgba(var(--pt-danger-rgb), 0.3);
}

.pt-monitor-panel--alerts .pt-monitor-panel__header {
  background: rgba(var(--pt-danger-rgb), 0.08);
}

.pt-monitor-alerts__heading {
  display: flex;
  align-items: center;
  gap: var(--pt-space-2);
  min-width: 0;
}

.pt-monitor-alerts__icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(var(--pt-danger-rgb), 0.5);
  border-radius: var(--pt-radius-sm);
  background: var(--pt-danger-soft);
  color: var(--pt-danger);
}

.pt-monitor-panel--alerts .pt-monitor-panel__title {
  color: var(--pt-text-100);
}

.pt-monitor-panel--alerts .pt-monitor-alerts__value {
  margin: 0;
  color: var(--pt-danger);
  font-size: 40px;
  line-height: 44px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.pt-monitor-panel--alerts .pt-monitor-alerts__message {
  margin: var(--pt-space-1) 0 0;
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 20px;
  font-weight: 600;
}

.pt-monitor-pending {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
}

.pt-monitor-pending__item {
  display: grid;
  gap: var(--pt-space-1);
  padding: var(--pt-space-3) 0;
  border-block-end: 1px solid var(--pt-divider);
}

.pt-monitor-pending__item:first-child {
  padding-block-start: 0;
}

.pt-monitor-pending__item:last-child {
  border-block-end: 0;
  padding-block-end: 0;
}

.pt-monitor-pending__mac {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.pt-monitor-pending__meta {
  margin: 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
}

.pt-monitor-pending-state {
  margin: 0;
  display: grid;
  gap: var(--pt-space-3);
  color: var(--pt-text-300);
}

.pt-monitor-live__select {
  display: grid;
  gap: var(--pt-space-2);
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.pt-monitor-live__select[aria-pressed="true"] {
  margin-inline: calc(-1 * var(--pt-space-2));
  padding: var(--pt-space-2);
  border-radius: var(--pt-radius-sm);
  background: var(--pt-primary-soft);
  box-shadow: inset 2px 0 0 var(--pt-primary);
}

.pt-monitor-live__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-2);
  min-width: 0;
}

.pt-monitor-live__name {
  min-width: 0;
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.pt-monitor-live__heading > .pt-badge {
  flex: 0 0 auto;
}

.pt-monitor-live__details {
  display: grid;
  grid-template-columns: minmax(0, 9rem) minmax(0, 1fr);
  gap: var(--pt-space-2);
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
}

.pt-monitor-live__detail {
  min-width: 0;
  overflow-wrap: anywhere;
}

.pt-monitor-live__detail--duration {
  grid-column: 1 / -1;
  color: var(--pt-text-100);
  font-weight: 600;
}

.pt-monitor-map__sector[data-sector-action] {
  cursor: pointer;
}

.pt-monitor-map__sector[data-sector-action]:focus-visible {
  outline: none;
  stroke: var(--pt-warning);
  stroke-width: 2;
}

.pt-monitor-sector-dialog {
  width: min(1120px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100vh - 32px);
  padding: 0;
  border: 0;
  border-radius: var(--pt-radius-lg);
  background: transparent;
  color: var(--pt-text-100);
}

.pt-monitor-sector-dialog::backdrop {
  background: rgba(0, 0, 0, 0.72);
}

.pt-monitor-sector-dialog__surface {
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-surface-1);
  overflow: hidden;
}

.pt-monitor-sector-dialog__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-4);
  padding: var(--pt-space-4) var(--pt-space-5);
  border-block-end: 1px solid var(--pt-divider);
}

.pt-monitor-sector-dialog__content {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  gap: var(--pt-space-4);
  padding: var(--pt-space-5);
}

.pt-monitor-sector-dialog__map {
  min-height: 520px;
  border: 1px solid var(--pt-divider);
  border-radius: var(--pt-radius-md);
  background: var(--pt-surface-2);
  overflow: hidden;
}

.pt-monitor-sector-dialog__map .pt-monitor-map__surface {
  min-height: 520px;
}

.pt-monitor-sector-dialog__map .pt-monitor-map__svg {
  min-height: 520px;
}

.pt-monitor-sector-dialog__tags {
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-height: 520px;
  overflow: hidden;
}

.pt-monitor-sector-dialog__tags .pt-monitor-panel__body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}

.pt-monitor-map__sector.is-heat-1 {
  fill: rgba(245, 158, 11, 0.22);
}

.pt-monitor-map__sector.is-heat-2 {
  fill: rgba(245, 158, 11, 0.38);
}

.pt-monitor-map__sector.is-heat-3 {
  fill: rgba(212, 106, 31, 0.52);
}

.pt-monitor-map__sector.is-heat-4 {
  fill: rgba(230, 90, 40, 0.72);
}

.pt-monitor-map__sector.is-heat-5 {
  fill: rgba(255, 90, 61, 0.88);
}

.pt-heatmap-legend {
  display: flex;
  flex-direction: column;
  gap: var(--pt-space-2);
  margin-top: var(--pt-space-3);
}

.pt-heatmap-legend[hidden] {
  display: none;
}

.pt-heatmap-legend__title {
  margin: 0;
  color: var(--pt-text-200);
  font-size: 12px;
  line-height: 17px;
  font-weight: 600;
}

.pt-heatmap-legend__scale {
  display: flex;
  gap: var(--pt-space-2);
}

.pt-heatmap-legend__swatch {
  width: 44px;
  height: 12px;
  border-radius: var(--pt-radius-xs);
  border: 1px solid var(--pt-border-subtle);
}

.pt-heatmap-legend__swatch.is-heat-1 {
  background: rgba(245, 158, 11, 0.22);
}

.pt-heatmap-legend__swatch.is-heat-2 {
  background: rgba(245, 158, 11, 0.38);
}

.pt-heatmap-legend__swatch.is-heat-3 {
  background: rgba(212, 106, 31, 0.52);
}

.pt-heatmap-legend__swatch.is-heat-4 {
  background: rgba(230, 90, 40, 0.72);
}

.pt-heatmap-legend__swatch.is-heat-5 {
  background: rgba(255, 90, 61, 0.88);
}

.pt-heatmap-legend__caption {
  margin: 0;
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
}

.pt-heatmap-legend__caption strong {
  color: var(--pt-text-100);
  font-variant-numeric: tabular-nums;
}

.pt-heatmap-asset {
  display: flex;
  flex-direction: column;
  gap: var(--pt-space-1);
  min-width: 0;
  padding: var(--pt-space-3);
}

.pt-heatmap-asset__name {
  color: var(--pt-text-100);
  font-weight: 600;
}

.pt-heatmap-asset__details {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pt-space-2) var(--pt-space-4);
}

.pt-heatmap-asset__detail {
  color: var(--pt-text-300);
  font-size: 12px;
  line-height: 17px;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1250px) {
  :is(#mon-overview, #hist-overview) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1023px) {
  .pt-monitor-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-monitor-sector-dialog__content {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-monitor-sector-dialog__map,
  .pt-monitor-sector-dialog__map .pt-monitor-map__surface,
  .pt-monitor-sector-dialog__map .pt-monitor-map__svg {
    min-height: 320px;
  }
}

@media (max-width: 479px) {
  :is(#mon-overview, #hist-overview) {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-monitor-filters__field,
  .pt-monitor-filters__actions {
    width: 100%;
  }
}

/* ===== Fonte: styles/emergency.css ===== */

/* Folha de estilos da tela de Emergências */
.pt-emg-list {
  display: grid;
  gap: var(--pt-space-4);
}

.pt-emg-table td {
  vertical-align: middle;
}

@media (min-width: 768px) {
  .pt-emg-table {
    min-width: 1180px;
  }
}

.pt-emg-asset,
.pt-emg-location {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.pt-emg-asset {
  min-width: 210px;
}

.pt-emg-location {
  min-width: 170px;
}

.pt-emg-asset__name,
.pt-emg-location__sector {
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.pt-emg-asset__meta,
.pt-emg-location__gateway {
  color: var(--pt-text-300);
  font-size: 11px;
  line-height: 16px;
  overflow-wrap: anywhere;
}

.pt-emg-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: var(--pt-space-2);
  min-width: 232px;
  white-space: nowrap;
}

.pt-emg-action {
  flex: 0 0 auto;
}

.pt-emg-action > svg {
  flex: 0 0 auto;
}

.pt-emg-detail-row > td {
  padding: 0;
  background: var(--pt-surface-2);
}

.pt-emg-detail {
  display: grid;
  gap: var(--pt-space-4);
  padding: var(--pt-space-4);
}

.pt-emg-detail__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--pt-space-3);
  margin: 0;
}

.pt-emg-detail__item {
  display: grid;
  align-content: start;
  gap: var(--pt-space-1);
  min-width: 0;
}

.pt-emg-detail__item dt {
  color: var(--pt-text-300);
  font-size: 11px;
  line-height: 16px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pt-emg-detail__item dd {
  margin: 0;
  display: grid;
  gap: var(--pt-space-1);
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  overflow-wrap: anywhere;
}

.pt-emg-detail__item dd .pt-caption {
  color: var(--pt-text-300);
}

@media (max-width: 767px) {
  .pt-emg-table thead {
    display: none;
  }
  .pt-emg-table,
  .pt-emg-table tbody,
  .pt-emg-table tr,
  .pt-emg-table td {
    display: block;
    width: 100%;
  }
  .pt-emg-table tr.pt-emg-row {
    padding: var(--pt-space-3) 0;
  }
  .pt-emg-table td {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--pt-space-4);
    padding: var(--pt-space-1) var(--pt-space-2);
    border-block-end: 0;
    text-align: start;
  }
  .pt-emg-table td::before {
    content: attr(data-label);
    flex-shrink: 0;
    color: var(--pt-text-300);
    font-size: 11px;
    line-height: 16px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .pt-emg-table td.pt-emg-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
    min-width: 0;
    padding-block-start: var(--pt-space-3);
  }
  .pt-emg-table td.pt-emg-actions::before {
    content: none;
  }
  .pt-emg-table td .pt-emg-asset,
  .pt-emg-table td .pt-emg-location {
    min-width: 0;
    text-align: end;
  }
  .pt-emg-table tr.pt-emg-detail-row > td {
    display: block;
    padding: 0;
  }
  .pt-emg-table tr.pt-emg-detail-row > td::before {
    content: none;
  }
  .pt-emg-detail__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.pt-emg-closed {
  display: grid;
  gap: var(--pt-space-4);
  margin-block-start: var(--pt-space-10);
}

.pt-emg-closed__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--pt-space-4);
}

.pt-emg-closed__title {
  margin: 0 0 var(--pt-space-1);
  color: var(--pt-text-100);
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.pt-emg-closed__occurrence {
  min-width: 220px;
  max-width: 360px;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

@media (min-width: 768px) {
  .pt-emg-table--closed {
    min-width: 1180px;
  }
}

.pt-emg-dialog__context {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--pt-space-3) var(--pt-space-4);
  margin: 0 0 var(--pt-space-5);
  padding: var(--pt-space-4);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-md);
  background: var(--pt-surface-1);
}

.pt-emg-dialog__context-item {
  display: grid;
  align-content: start;
  gap: 2px;
  min-width: 0;
}

.pt-emg-dialog__context-item dt {
  color: var(--pt-text-300);
  font-size: 11px;
  line-height: 16px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pt-emg-dialog__context-item dd {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
  overflow-wrap: anywhere;
}

@media (max-width: 767px) {
  .pt-emg-dialog__context {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-emg-dialog .pt-modal__footer {
    flex-wrap: wrap;
  }
  .pt-emg-dialog .pt-modal__footer .pt-btn {
    flex: 1 1 auto;
  }
}

/* ===== Fonte: styles/productivity.css ===== */

/* Folha de estilos da tela de Produtividade */
.pt-productivity-actions {
  align-items: center;
}

.pt-productivity-filters {
  align-items: flex-end;
  margin-block-end: var(--pt-space-3);
}

.pt-productivity-filters .pt-field {
  min-width: 152px;
}

.pt-productivity-filters .pt-field:has(#productivity-activity) {
  min-width: min(280px, 100%);
}

.pt-productivity-note {
  margin-block-end: var(--pt-space-4);
}

#productivity-error {
  margin-block-end: var(--pt-space-4);
}

.pt-productivity-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
  gap: var(--pt-space-3);
  margin-block: var(--pt-space-4) var(--pt-space-6);
}

.pt-productivity-summary__item {
  position: relative;
  min-width: 0;
  min-height: 124px;
  padding: var(--pt-space-4);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background:
    linear-gradient(115deg, rgba(var(--pt-primary-rgb), 0.09), transparent 48%),
    var(--pt-surface-1);
  overflow: hidden;
}

.pt-productivity-summary__item::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--pt-primary);
  opacity: 0.72;
}

.pt-productivity-summary__item p {
  margin: 0;
}

.pt-productivity-summary__item .pt-number {
  margin-block: var(--pt-space-2) var(--pt-space-1);
  color: var(--pt-text-100);
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.pt-productivity-summary__item .pt-caption {
  color: var(--pt-text-300);
}

.pt-productivity-table td {
  vertical-align: middle;
}

.pt-productivity-table .pt-table__cell > span:not(.pt-badge) {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.pt-productivity-table .pt-table__cell > .pt-caption {
  margin-block-start: 3px;
  color: var(--pt-text-300);
  font-size: 11px;
  line-height: 16px;
}

.pt-productivity-table .pt-table__cell--actions {
  min-width: 92px;
}

.pt-productivity-table .pt-icon-btn + .pt-icon-btn {
  margin-inline-start: var(--pt-space-1);
}

.pt-productivity-quality {
  vertical-align: middle;
}

.pt-productivity-detail-row > td {
  padding: 0;
  background: var(--pt-surface-2);
}

.pt-productivity-detail-row[hidden] {
  display: none;
}

.pt-productivity-detail {
  display: grid;
  gap: var(--pt-space-3);
  padding: var(--pt-space-4);
  border-block: 1px solid var(--pt-divider);
  background:
    linear-gradient(90deg, rgba(var(--pt-primary-rgb), 0.075), transparent 38%),
    var(--pt-surface-2);
}

.pt-productivity-detail__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  border: 1px solid var(--pt-divider);
  border-radius: var(--pt-radius-md);
  background: var(--pt-divider);
  overflow: hidden;
}

.pt-productivity-detail__item {
  display: grid;
  align-content: start;
  gap: var(--pt-space-1);
  min-width: 0;
  padding: var(--pt-space-3);
  background: var(--pt-surface-1);
}

.pt-productivity-detail__item dt,
.pt-productivity-detail__item dd,
.pt-productivity-detail__item p {
  margin: 0;
}

.pt-productivity-detail__item dt {
  color: var(--pt-text-300);
  font-size: 11px;
  line-height: 16px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pt-productivity-detail__item dd {
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 19px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.pt-productivity-detail__item .pt-caption {
  color: var(--pt-text-300);
}

.pt-productivity-dialog {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--pt-text-100);
  overflow: visible;
}

.pt-productivity-dialog::backdrop {
  background: rgba(0, 0, 0, 0.72);
}

.pt-productivity-dialog__surface {
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-xl);
  background: var(--pt-surface-1);
  overflow: auto;
}

.pt-productivity-dialog__header {
  padding: var(--pt-space-4) var(--pt-space-5);
}

.pt-productivity-dialog__body {
  padding: var(--pt-space-5);
}

.pt-productivity-dialog__body .pt-alert {
  margin-block-end: var(--pt-space-4);
}

.pt-productivity-dialog__footer {
  position: sticky;
  inset-block-end: 0;
  padding: var(--pt-space-3) var(--pt-space-5);
  background: var(--pt-surface-1);
}

.pt-productivity-manage-list .pt-table-wrap {
  max-height: min(52vh, 480px);
  max-height: min(52dvh, 480px);
}

@media (min-width: 768px) {
  .pt-productivity-table {
    min-width: 1120px;
  }
}

@media (max-width: 767px) {
  .pt-productivity-actions {
    justify-content: flex-start;
  }
  .pt-productivity-filters,
  .pt-productivity-filters .pt-toolbar__start,
  .pt-productivity-filters .pt-toolbar__end,
  .pt-productivity-filters .pt-filter-bar__group {
    width: 100%;
  }
  .pt-productivity-filters .pt-field,
  .pt-productivity-filters .pt-field:has(#productivity-activity) {
    flex: 1 1 148px;
    min-width: 0;
  }
  .pt-productivity-filters .pt-toolbar__end .pt-btn {
    flex: 1 1 auto;
  }
  .pt-productivity-table thead {
    display: none;
  }
  .pt-productivity-table,
  .pt-productivity-table tbody,
  .pt-productivity-table tr,
  .pt-productivity-table td {
    display: block;
    width: 100%;
  }
  .pt-productivity-table tr.pt-table__row {
    padding: var(--pt-space-3) 0;
  }
  .pt-productivity-table td {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--pt-space-4);
    padding: var(--pt-space-1) var(--pt-space-2);
    border-block-end: 0;
    text-align: end;
  }
  .pt-productivity-table td::before {
    content: attr(data-label);
    flex: 0 0 auto;
    color: var(--pt-text-300);
    font-size: 11px;
    line-height: 16px;
    letter-spacing: 0.04em;
    text-align: start;
    text-transform: uppercase;
  }
  .pt-productivity-table td.pt-table__cell--actions {
    justify-content: flex-start;
    min-width: 0;
    padding-block-start: var(--pt-space-3);
  }
  .pt-productivity-table td.pt-table__cell--actions::before,
  .pt-productivity-detail-row > td::before {
    content: none;
  }
  .pt-productivity-table tr.pt-productivity-detail-row > td {
    display: block;
    padding: 0;
  }
  .pt-productivity-detail {
    padding: var(--pt-space-3);
  }
  .pt-productivity-detail__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-productivity-detail__item {
    padding: var(--pt-space-3);
  }
  .pt-productivity-dialog__header,
  .pt-productivity-dialog__body {
    padding-inline: var(--pt-space-4);
  }
  .pt-productivity-dialog__footer {
    flex-wrap: wrap-reverse;
    padding-inline: var(--pt-space-4);
  }
  .pt-productivity-dialog__footer .pt-btn {
    flex: 1 1 150px;
  }
}

@media (max-width: 479px) {
  .pt-productivity-summary {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-productivity-filters .pt-toolbar__end .pt-btn {
    flex-basis: calc(50% - var(--pt-space-2));
  }
  .pt-productivity-filters .pt-toolbar__end .pt-btn[type="submit"] {
    flex-basis: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pt-productivity-summary__item,
  .pt-productivity-detail,
  .pt-productivity-dialog {
    animation: none;
    transition: none;
  }
}

/* ===== Fonte: styles/activities.css ===== */

/* A tela de Atividades usa os componentes pt-* existentes; os IDs organizam apenas seus formulários. */
#activities-error {
  margin-block-end: var(--pt-space-4);
}

#activity-people-grid,
[data-activity-pair] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--pt-space-4);
}

#activity-available,
#activity-selected {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--pt-space-1);
  height: 19rem;
  min-height: 0;
  overflow-y: auto;
  padding: var(--pt-space-2);
  border: 1px solid var(--pt-divider);
  border-radius: var(--pt-radius-md);
}

#activity-people-grid > .pt-field {
  min-width: 0;
  align-content: start;
}

[data-activity-pair] > .pt-field {
  min-width: 0;
  align-content: start;
}

#activity-available button,
#activity-selected button {
justify-content: flex-start; text-align: left; white-space: normal;
}

#activity-sector-list {
border: 1px solid var(--pt-divider); border-radius: var(--pt-radius-md);
}

#activity-sector-list legend {
font-weight: 600;
}

#activity-sectors {
display: flex; flex-wrap: wrap; gap: var(--pt-space-3);
}

#activity-sectors label {
display: inline-flex; align-items: center; gap: var(--pt-space-2); cursor: pointer;
}

[data-activity-pair] .pt-input-group {
align-items: center;
}

[data-activity-pair] .pt-input-group .pt-select {
width: 6rem; flex: none;
}

@media (max-width: 640px) {
  #activity-people-grid,
  [data-activity-pair] {
  grid-template-columns: minmax(0, 1fr);
  }
}

/* ===== Fonte: styles/relatorios.css ===== */

/* Folha de estilos da tela de Relatórios */
.pt-report-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pt-space-2);
}

.pt-report-results {
  display: grid;
  gap: var(--pt-space-4);
  margin-block-start: var(--pt-space-4);
}

.pt-report-empty {
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-surface-1);
}

.pt-report-asset {
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-surface-1);
  box-shadow: var(--pt-shadow-xs);
  overflow: hidden;
}

.pt-report-asset__header {
  padding: var(--pt-space-4) var(--pt-space-5);
  border-block-end: 1px solid var(--pt-divider);
  background: var(--pt-surface-2);
}

.pt-report-asset__heading {
  display: grid;
  gap: var(--pt-space-1);
}

.pt-report-asset__name {
  margin: 0;
  color: var(--pt-text-100);
  font-size: 20px;
  line-height: 28px;
  font-weight: 700;
}

.pt-report-asset__days {
  display: grid;
  gap: var(--pt-space-5);
  padding: var(--pt-space-4) var(--pt-space-5);
}

.pt-report-day {
  display: grid;
  gap: var(--pt-space-2);
}

.pt-report-day__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--pt-space-2);
}

.pt-report-day__title {
  margin: 0;
  color: var(--pt-text-200);
  font-size: 15px;
  line-height: 22px;
  font-weight: 600;
}

.pt-report-day__total {
  margin: 0;
}

/* Cabeçalho + 12 linhas compactas antes da rolagem (borda incluída). */
.pt-report-day .pt-table-wrap {
  max-height: 574px;
}

.pt-report-day__table tr {
  height: 44px;
}

@media (max-width: 639px) {
  .pt-report-asset__header,
  .pt-report-asset__days {
    padding: var(--pt-space-4);
  }
  /* No mobile, as linhas são blocos de altura variável. */
  .pt-report-day .pt-table-wrap {
    max-height: clamp(320px, calc(100dvh - 300px), 720px);
  }
  .pt-report-day__table tr {
    height: auto;
  }
}

@media print {
  .pt-report-day .pt-table-wrap {
    max-height: none;
  }
}

/* ===== Fonte: styles/table-scroll.css ===== */

/* Rolagem própria das listas tabulares.
   O `.pt-table-wrap` (main.css) já tem `overflow: auto`, mas sem altura
   máxima ele cresce com o conteúdo e empurra a rolagem para a página.
   Esta folha limita a altura à viewport para que cada tabela role sozinha,
   mantendo filtros, formulários e títulos sempre visíveis. */
.pt-table-wrap {
  max-height: clamp(320px, calc(100vh - 300px), 720px);
  max-height: clamp(320px, calc(100dvh - 300px), 720px);
}

@media print {
  .pt-table-wrap {
    max-height: none;
    overflow: visible;
  }
}

/* ===== Sistema novo: menu recolhível (alteração aprovada em 2026-10-01) ===== */
.pt-app-shell--collapsible .pt-sidebar {
  height: 100dvh;
}

.pt-app-shell--collapsible .pt-page {
  container-type: inline-size;
}

.pt-brand__mark,
.pt-sidebar__close {
  display: none;
}

.pt-brand__mark {
  position: relative;
  flex: 0 0 auto;
  width: 44px;
  height: 48px;
  overflow: hidden;
}

/* Centraliza o desenho (limites alfa 161,150–328,337 no PNG 512×512),
   não o canvas transparente, com folga para não recortar topo/esquerda. */
.pt-brand__mark img {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 120px;
  height: 120px;
  max-width: none;
  transform: translate(-47.75%, -47.56%);
}

.pt-shell-menu-toggle {
  flex: 0 0 auto;
}

.pt-sidebar-backdrop {
  z-index: var(--pt-z-backdrop);
}

@media (min-width: 1024px) {
  .pt-app-shell--collapsible {
    grid-template-columns: var(--pt-sidebar-width) minmax(0, 1fr);
  }

  .pt-app-shell--collapsible.is-sidebar-collapsed {
    grid-template-columns: 80px minmax(0, 1fr);
  }

  .pt-app-shell--collapsible:not(.is-sidebar-collapsed) .pt-shell-menu-toggle svg {
    transform: rotate(180deg);
  }

  .is-sidebar-collapsed .pt-sidebar {
    padding-inline: 12px;
  }

  .is-sidebar-collapsed .pt-brand__logo,
  .is-sidebar-collapsed .pt-nav__label,
  .is-sidebar-collapsed .pt-sidebar__section-label,
  .is-sidebar-collapsed .pt-sidebar-user__info,
  .is-sidebar-collapsed .pt-sidebar__action-label {
    display: none;
  }

  .is-sidebar-collapsed .pt-brand__mark {
    display: block;
  }

  .is-sidebar-collapsed .pt-nav__item,
  .is-sidebar-collapsed .pt-sidebar-user {
    justify-content: center;
    padding-inline: 0;
  }

  .is-sidebar-collapsed .pt-sidebar__section + .pt-sidebar__section {
    padding-block-start: var(--pt-space-3);
    margin-block-start: var(--pt-space-3);
    border-block-start: 1px solid var(--pt-divider);
  }

  .is-sidebar-collapsed .pt-sidebar__footer .pt-btn {
    padding-inline: 0;
  }
}

@media (max-width: 1023px) {
  .pt-app-shell--collapsible {
    grid-template-columns: minmax(0, 1fr);
  }

  .pt-app-shell--collapsible .pt-sidebar {
    z-index: var(--pt-z-modal);
    visibility: hidden;
    transform: translateX(-100%);
  }

  .pt-app-shell--collapsible.is-sidebar-open .pt-sidebar {
    visibility: visible;
    transform: translateX(0);
  }

  .pt-app-shell--collapsible .pt-sidebar__header {
    gap: var(--pt-space-3);
  }

  .pt-sidebar__close {
    display: inline-flex;
    flex: 0 0 auto;
  }
}

/* O conteúdo disponível muda com o menu, não só com a largura da janela. */
@container (max-width: 1100px) {
  .pt-home-pulse {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--pt-space-5);
  }

  .pt-home-pulse__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@container (max-width: 600px) {
  .pt-home-pulse {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pt-space-4);
    padding: var(--pt-space-4);
  }
}
/* Início informativo: dados cadastrais longos dentro dos mesmos painéis. */
.pt-home-dashboard .pt-home-list__meta > span {
  min-inline-size: 0;
  overflow-wrap: anywhere;
}

@container (max-width: 600px) {
  .pt-home-dashboard .pt-home-list__row {
    flex-wrap: wrap;
  }
}

/* ===== Sistema novo: autenticação e gestão de acessos ===== */
.pt-auth-cookie-notice {
  margin: 0;
  padding: 1rem;
  text-align: center;
  color: var(--pt-text-secondary);
}
.pt-account-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: 1rem;
}
.pt-account-email { overflow-wrap: anywhere; }
[data-account-data], [data-account-password] {
  display: grid;
  gap: 1rem;
}
[data-account-data][hidden], [data-account-password][hidden] { display: none; }

/* ===== Sistema novo: Funcionários, Equipes e Funções ===== */
.pt-funcionarios .pt-card { min-inline-size: 0; }
.pt-funcionarios-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.pt-funcionarios-filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); align-items: end; gap: 1rem; }
.pt-funcionarios-filtros .pt-field { min-inline-size: 0; }
.pt-funcionarios .pt-table-wrap { max-inline-size: 100%; }
.pt-funcionarios td { max-inline-size: 20rem; overflow-wrap: anywhere; }
.pt-funcionarios-tag { white-space: nowrap; }
.pt-funcionarios-confirmacao { display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--pt-primary); border-radius: var(--pt-radius-md); }
.pt-funcionarios-confirmacao[hidden] { display: none; }
.pt-funcionarios-confirmacao ul { margin: 0; padding-inline-start: 1.5rem; overflow-wrap: anywhere; }
.pt-funcionarios-confirmacao p { margin: 0; }
@media (max-width: 599px) {
  .pt-funcionarios-filtros { grid-template-columns: minmax(0, 1fr); }
  .pt-funcionarios-header > div { inline-size: 100%; }
.pt-funcionarios-header .pt-btn { inline-size: 100%; }
}

/* ===== Sistema novo: Mapas, Áreas e coberturas hexagonais ===== */
.pt-mapas .pt-card, .pt-map-workspace__stage, .pt-map-workspace__catalog { min-inline-size: 0; }
.pt-map-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); gap: 1rem; align-items: start; }
.pt-map-header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.pt-map-workspace__stage > .pt-map-header { align-items: flex-end; }
.pt-map-header .pt-field { flex: 1; min-inline-size: min(100%, 12rem); }
.pt-map-catalog { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.pt-map-catalog__item { padding-block: .75rem; border-block-end: 1px solid var(--pt-border-subtle); overflow-wrap: anywhere; }
.pt-map-catalog__item:last-child { border-block-end: 0; }
.pt-map-catalog__item p { margin: .25rem 0; }
.pt-map-catalog__row { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.pt-map-catalog__info { min-inline-size: 0; overflow-wrap: anywhere; }
.pt-map-catalog__row .pt-btn { flex-shrink: 0; }
.pt-map-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: .75rem; align-items: end; min-inline-size: 0; }
.pt-map-fields legend { padding-block-end: .5rem; }
.pt-map-coordinates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.pt-map-choice { display: flex; align-items: center; gap: .75rem; overflow-wrap: anywhere; padding: .5rem; }
.pt-map-choice input { flex-shrink: 0; }
.pt-modal.pt-modal--map { inline-size: min(96vw, 76rem); max-inline-size: 76rem; }
.pt-map-canvas { min-inline-size: 0; overflow: hidden; border: 1px solid var(--pt-border-subtle); border-radius: var(--pt-radius-md); background: var(--pt-bg-900); }
.pt-map-canvas__toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .5rem; border-block-end: 1px solid var(--pt-border-subtle); }
.pt-map-canvas__identity { min-inline-size: 0; overflow-wrap: anywhere; color: var(--pt-text-100); font-size: 14px; line-height: 20px; font-weight: 600; }
.pt-map-canvas__identity[hidden] { display: none; }
.pt-map-canvas__actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-inline-start: auto; }
.pt-map-canvas__value { display: grid; justify-items: center; gap: 1px; line-height: 1; }
.pt-map-canvas__value [data-zoom-label], .pt-map-canvas__value [data-transparency-label] { min-inline-size: 2.5rem; text-align: center; }
.pt-map-canvas__hint { color: var(--pt-primary-300); font-size: 8.5px; line-height: 10px; font-weight: 600; letter-spacing: .02em; }
.pt-map-canvas__transparency { display: flex; align-items: center; gap: .35rem; margin-inline-end: 1.375rem; }
.pt-map-canvas__transparency[hidden] { display: none; }
.pt-map-canvas__surface { display: block; inline-size: 100%; block-size: clamp(20rem, 52vh, 38rem); touch-action: none; user-select: none; cursor: grab; }
.pt-map-canvas__surface:active { cursor: grabbing; }
.pt-map-canvas__surface:focus-visible { outline: 2px solid var(--pt-primary); outline-offset: -3px; }
.pt-map-area { fill: var(--pt-surface-2); }
.pt-map-image { pointer-events: none; }
.pt-map-grid { pointer-events: none; }
.pt-map-cell { fill: rgba(61, 157, 235, .055); stroke: rgba(37, 111, 171, .22); stroke-width: .022; }
.pt-map-cell--margin { fill: rgba(255, 255, 255, .045); stroke: rgba(255, 255, 255, .16); }
.pt-map-tools { display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; }
.pt-map-tools .pt-icon-btn[aria-pressed="true"] { background: var(--pt-primary-soft); border-color: var(--pt-primary-border); color: var(--pt-primary-200); }
.pt-map-toolbar { align-items: flex-end; }
.pt-map-toolbar .pt-field { min-inline-size: min(100%, 9rem); }
.pt-map-ghost { pointer-events: none; }
.pt-map-ghost__frame { fill: rgba(61, 157, 235, .14); stroke: #3D9DEB; stroke-width: .05; stroke-dasharray: .14 .09; }
.pt-map-cursor { pointer-events: none; }
.pt-map-cursor__bg { fill: rgba(11, 11, 13, .92); stroke: rgba(255, 255, 255, .18); }
.pt-map-cursor__text { fill: var(--pt-text-100); font: 600 11px Inter, sans-serif; }
.pt-map-area__boundary { fill: none; stroke: rgba(61, 157, 235, .10); stroke-width: .025; pointer-events: none; }
.pt-map-area__boundary.is-selected { stroke: rgba(61, 157, 235, .40); }
.pt-map-area__label { fill: var(--pt-text-100); stroke: rgba(0, 0, 0, .8); stroke-width: .025; paint-order: stroke; font: 600 .3px Inter, sans-serif; pointer-events: none; }
.pt-map-coverage__hit { fill: transparent; stroke: none; cursor: pointer; }
.pt-map-coverage__boundary { fill: none; stroke: rgba(30, 92, 146, .55); stroke-width: .035; stroke-linejoin: round; stroke-linecap: round; pointer-events: none; }
.pt-map-gateway { cursor: pointer; }
.pt-map-gateway circle { fill: var(--pt-primary); stroke: var(--pt-white); stroke-width: .08; }
.pt-map-gateway text { fill: var(--pt-white); stroke: rgba(0, 0, 0, .5); stroke-width: .05; paint-order: stroke; font: 700 1.1px Inter, sans-serif; pointer-events: none; }
.pt-map-person__label { fill: var(--pt-white); stroke: rgba(0, 0, 0, .5); stroke-width: .05; paint-order: stroke; font: 700 .52px Inter, sans-serif; pointer-events: none; }
.pt-map-person circle { fill: #51C28A; stroke: var(--pt-white); stroke-width: .02; }
.pt-map-person { cursor: pointer; }
.pt-map-person.is-selected circle { stroke: var(--pt-primary); stroke-width: .06; }
.pt-map-capacity { fill: var(--pt-primary-200); font: 600 .22px Inter, sans-serif; stroke: var(--pt-bg-900); stroke-width: .02; paint-order: stroke; pointer-events: none; }
.pt-map-calibration { display: grid; gap: .5rem; }
.pt-map-calibration__surface { display: block; inline-size: 100%; block-size: clamp(12rem, 35vh, 24rem); background: var(--pt-bg-900); touch-action: none; cursor: crosshair; }
.pt-map-calibration__frame { fill: none; stroke: #3D9DEB; stroke-width: 2; vector-effect: non-scaling-stroke; pointer-events: none; }
.pt-map-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); gap: 1rem; }
.pt-map-detail > *, .pt-map-detail__list { min-inline-size: 0; }
.pt-map-detail__list { overflow-wrap: anywhere; }

.pt-modal--map form[aria-busy="true"] .pt-map-calibration__surface,
.pt-modal--map form[aria-busy="true"] .pt-map-canvas { pointer-events: none; opacity: .6; }
@media (max-width: 1199px) { .pt-map-workspace { grid-template-columns: minmax(0, 1fr); } .pt-map-workspace__catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .pt-map-workspace__catalog, .pt-map-detail { grid-template-columns: minmax(0, 1fr); } .pt-map-canvas__surface { block-size: 22rem; } }
@media (max-width: 599px) { .pt-map-fields { grid-template-columns: minmax(0, 1fr); } .pt-map-header > .pt-btn { inline-size: 100%; } .pt-map-header .pt-field { flex-basis: 100%; } }
@media (max-height: 500px) { .pt-map-canvas__surface, .pt-map-calibration__surface { block-size: 14rem; } }

/* ===== Sistema novo: Monitoramento por instante consolidado ===== */
.pt-map-person.is-still circle { fill: #3D9DEB; }
.pt-map-person.is-motion-unknown circle { fill: var(--pt-text-300); }
.pt-map-person circle.pt-map-person__halo { fill: none; stroke: var(--pt-primary); stroke-width: .08; }
.pt-map-heat { stroke: none; }
.pt-map-heat.is-heat-1 { fill: rgba(245, 158, 11, .22); }
.pt-map-heat.is-heat-2 { fill: rgba(245, 158, 11, .38); }
.pt-map-heat.is-heat-3 { fill: rgba(212, 106, 31, .52); }
.pt-map-heat.is-heat-4 { fill: rgba(230, 90, 40, .72); }
.pt-map-heat.is-heat-5 { fill: rgba(255, 90, 61, .88); }
.pt-monitor-live__select { inline-size: 100%; text-align: start; }
.pt-monitor-live__details { overflow-wrap: anywhere; }
/* Cada gateway do Status da estrutura em uma única linha, com os campos espaçados. */
.pt-monitor-structure__row { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .85rem; margin: 0; }
.pt-monitor-structure__row strong { color: var(--pt-text-100); }
.pt-monitor-structure__row span { white-space: nowrap; }
@container (max-width: 1100px) {
  .pt-monitor-layout { grid-template-columns: minmax(0, 1fr); }
}
@container (max-width: 600px) {
  #mon-overview { grid-template-columns: minmax(0, 1fr); }
  .pt-monitor-filters__field { min-inline-size: 0; inline-size: 100%; }
  .pt-monitor-map-card__body, .pt-monitor-map-card__header { padding: var(--pt-space-3); }
}

/* Alinhamento dos filtros operacionais; preserva o trecho CSS original consolidado. */
.pt-monitor-filters > .pt-cluster {
  align-items: flex-end;
}
@media (max-width: 767px) {
  .pt-monitor-filters {
    align-items: stretch;
  }
  .pt-monitor-filters__actions {
    margin-inline-start: 0;
  }
}

/* Afasta o rótulo do grupo seguinte do último item do grupo anterior. */
.pt-sidebar__section + .pt-sidebar__section > .pt-sidebar__section-label {
  margin-block-start: var(--pt-space-6);
}

/* Emergências Go: quatro/cinco colunas, sem largura mínima da tabela legada. */
.pt-emg-table--events {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.pt-emg-table--events .pt-emg-asset,
.pt-emg-table--events .pt-emg-closed__occurrence {
  min-width: 0;
  max-width: none;
}
.pt-emg-table--events td.pt-emg-actions {
  display: table-cell;
  min-width: 0;
  text-align: end;
  white-space: normal;
}
.pt-emg-table--events td,
.pt-emg-table--events .pt-badge {
  overflow-wrap: anywhere;
  white-space: normal;
}
@media (max-width: 767px) {
  .pt-emg-table--events td,
  .pt-emg-table--events td.pt-emg-actions {
    display: block;
    text-align: start;
    padding: var(--pt-space-2) var(--pt-space-4);
  }
  .pt-emg-table--events td::before {
    display: block;
    margin-block-end: var(--pt-space-1);
  }
  .pt-emg-table--events td .pt-emg-asset {
    text-align: start;
  }
}

/* Monitoramento: resumo acima das duas colunas, com cards da mesma altura por linha.
   auto-fit redistribui os três cards quando Emergências está oculto. */
.pt-monitor-layout > #mon-overview {
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  align-items: stretch;
  margin-block-end: 0;
}
@container (max-width: 600px) {
  .pt-monitor-layout > #mon-overview {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Card de emergências do Monitoramento: renderizado somente com evento aberto. */
#mon-overview .pt-monitor-emergency {
  border-color: var(--pt-danger);
  background: var(--pt-danger-soft);
}
#mon-overview .pt-monitor-emergency .pt-card__title {
  color: var(--pt-danger);
}
#mon-overview .pt-monitor-emergency [data-emergency-count] {
  color: var(--pt-danger);
}
#mon-overview .pt-monitor-emergency .pt-map-catalog {
  gap: var(--pt-space-2);
}
#mon-overview .pt-monitor-emergency .pt-map-catalog__item {
  padding-block: var(--pt-space-2);
}
#mon-overview .pt-monitor-emergency .pt-map-catalog__item strong {
  color: var(--pt-text-100);
  font-size: 13px;
  line-height: 18px;
}
#mon-overview .pt-monitor-emergency .pt-map-catalog__item p {
  margin: 0;
}
#mon-overview .pt-monitor-emergency > .pt-btn {
  align-self: flex-start;
  margin-block-start: var(--pt-space-3);
}

/* Praticabilidade: sete linhas semanais, com períodos e totais por dia. */
.pt-praticabilidade { min-width: 0; }
.pt-praticabilidade > [data-feedback]:empty { display: none; }
.pt-praticabilidade-header { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: var(--pt-space-3); }
.pt-praticabilidade-header .pt-caption { margin-block: var(--pt-space-2) 0; overflow-wrap: anywhere; }
.pt-praticabilidade-semana { width: 100%; table-layout: fixed; }
.pt-praticabilidade-semana > thead > tr > th:first-child { width: 190px; }
.pt-praticabilidade-semana > tbody > tr > th,
.pt-praticabilidade-semana > tbody > tr > td { vertical-align: top; white-space: normal; border-block-end: 1px solid var(--pt-border-strong); }
.pt-praticabilidade-dia { background: var(--pt-surface-2); }
.pt-praticabilidade-dia h3 { margin-block: 0 var(--pt-space-3); }
.pt-praticabilidade-totais { display: grid; grid-template-columns: 1fr auto; gap: var(--pt-space-2); margin-block: 0 var(--pt-space-4); font-size: 12px; font-weight: 400; }
.pt-praticabilidade-totais dt { color: var(--pt-text-300); }
.pt-praticabilidade-totais dd { margin: 0; font-variant-numeric: tabular-nums; }
.pt-praticabilidade-acoes { display: flex; flex-wrap: wrap; gap: var(--pt-space-2); }
.pt-praticabilidade-periodos { width: 100%; table-layout: fixed; }
.pt-praticabilidade-periodos th,
.pt-praticabilidade-periodos td { padding: var(--pt-space-2); white-space: normal; overflow-wrap: anywhere; }
.pt-praticabilidade-periodos th:first-child { width: 110px; }
.pt-praticabilidade-periodos th:nth-child(3),
.pt-praticabilidade-periodos th:nth-child(4),
.pt-praticabilidade-periodos th:nth-child(5) { width: 65px; }
.pt-praticabilidade-periodos th:nth-child(6) { width: 175px; }
.pt-praticabilidade-periodos td:nth-child(6) .pt-btn { margin-inline-end: var(--pt-space-1); margin-block-end: var(--pt-space-1); }
.pt-praticabilidade-periodos td:nth-child(3),
.pt-praticabilidade-periodos td:nth-child(4),
.pt-praticabilidade-periodos td:nth-child(5) { font-variant-numeric: tabular-nums; }
.pt-praticabilidade-horario { display: flex; align-items: center; gap: var(--pt-space-2); }
.pt-praticabilidade-horario input[type=time] { min-width: 0; flex: 1; }
.pt-praticabilidade-horario .pt-praticabilidade-segundos { width: 60px; flex: 0 0 60px; text-align: center; color: var(--pt-text-200); opacity: 1; }
.pt-praticabilidade-destinos { border: 1px solid var(--pt-border-subtle); border-radius: var(--pt-radius-md); padding: var(--pt-space-4); }
.pt-praticabilidade-destinos [data-destinations] { display: grid; gap: var(--pt-space-3); }
.pt-praticabilidade [data-history-list] { max-height: 440px; }
@media (max-width: 1199px) {
  .pt-praticabilidade-semana > thead { display: none; }
  .pt-praticabilidade-semana,
  .pt-praticabilidade-semana > tbody,
  .pt-praticabilidade-semana > tbody > tr,
  .pt-praticabilidade-semana > tbody > tr > th,
  .pt-praticabilidade-semana > tbody > tr > td { display: block; width: 100%; }
  .pt-praticabilidade-semana > tbody > tr { border: 1px solid var(--pt-border-strong); border-radius: var(--pt-radius-md); margin-block-end: var(--pt-space-4); overflow: hidden; }
  .pt-praticabilidade-totais { grid-template-columns: repeat(3, auto auto); justify-content: start; column-gap: var(--pt-space-3); margin-block-end: var(--pt-space-3); }
}
@media (max-width: 767px) {
  .pt-praticabilidade-periodos > thead { display: none; }
  .pt-praticabilidade-periodos,
  .pt-praticabilidade-periodos > tbody,
  .pt-praticabilidade-periodos > tbody > tr { display: block; width: 100%; }
  .pt-praticabilidade-periodos > tbody > tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block-end: 1px solid var(--pt-border-subtle); padding-block: var(--pt-space-2); }
  .pt-praticabilidade-periodos td { display: block; min-width: 0; border: 0; }
  .pt-praticabilidade-periodos td:first-child,
  .pt-praticabilidade-periodos td:nth-child(2),
  .pt-praticabilidade-periodos td:nth-child(6) { grid-column: 1 / -1; }
  .pt-praticabilidade-periodos td::before { content: attr(data-label); display: block; color: var(--pt-text-300); font-size: 11px; margin-block-end: var(--pt-space-1); }
  .pt-praticabilidade-totais { grid-template-columns: 1fr auto; }
}

/* ===== Sistema novo: altura dinâmica dos modais (Atividades, 2026-10-04) ===== */
[data-activities-dialog] .pt-modal {
  max-height: calc(100dvh - 32px);
}
[data-activities-dialog] .pt-modal__body {
  overflow-wrap: anywhere;
}
@media (max-width: 767px) {
  [data-activities-dialog] .pt-modal {
    max-height: calc(100dvh - 24px);
  }
}

/* ===== Sistema novo: painéis ao lado dos mapas com altura estável (2026-10-04) ===== */
:is(.pt-monitor-layout__side > .pt-monitor-panel, .pt-map-workspace__catalog > .pt-card, .pt-map-detail__list) {
  display: flex;
  flex-direction: column;
  block-size: clamp(20rem, 52vh, 38rem);
  min-block-size: 0;
  min-inline-size: 0;
  overflow: hidden;
}
:is(.pt-monitor-layout__side > .pt-monitor-panel, .pt-map-workspace__catalog > .pt-card, .pt-map-detail__list) > :not(.pt-monitor-panel__body, .pt-card__body) {
  flex: 0 0 auto;
}
.pt-monitor-layout__side .pt-monitor-panel__body,
.pt-map-workspace__catalog > .pt-card > .pt-card__body,
.pt-map-detail__list > .pt-monitor-panel__body {
  flex: 1 1 0;
  min-block-size: 0;
  max-height: none;
  overflow: auto;
  scrollbar-gutter: stable;
}
.pt-map-workspace__catalog > .pt-card > .pt-card__body > * {
  flex-shrink: 0;
}
@media (max-width: 767px) {
  :is(.pt-monitor-layout__side > .pt-monitor-panel, .pt-map-workspace__catalog > .pt-card, .pt-map-detail__list) {
    block-size: 22rem;
  }
}
@media (max-height: 500px) {
  :is(.pt-monitor-layout__side > .pt-monitor-panel, .pt-map-workspace__catalog > .pt-card, .pt-map-detail__list) {
    block-size: 14rem;
  }
}
@media print {
  :is(.pt-monitor-layout__side > .pt-monitor-panel, .pt-map-workspace__catalog > .pt-card, .pt-map-detail__list) {
    block-size: auto;
    overflow: visible;
  }
  .pt-monitor-layout__side .pt-monitor-panel__body,
  .pt-map-workspace__catalog > .pt-card > .pt-card__body,
  .pt-map-detail__list > .pt-monitor-panel__body {
    flex: 0 0 auto;
    overflow: visible;
  }
}

/* ===== Sistema novo: coberturas compactas e ações alinhadas no editor de Área ===== */
[data-area-editor] [data-coverage-actions] > .pt-field {
  flex: 0 1 20rem;
  min-inline-size: 0;
  max-inline-size: 100%;
}
[data-area-editor] [data-coverages] {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
}
[data-area-editor] [data-coverages] > li {
  display: flex;
  align-items: center;
  gap: var(--pt-space-2);
  min-inline-size: 0;
  padding: var(--pt-space-2);
  border: 1px solid var(--pt-border-subtle);
  border-radius: var(--pt-radius-md);
}
[data-area-editor] [data-select-coverage] {
  flex: 1 1 0;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.4;
}
[data-area-editor] [data-select-coverage][aria-pressed="true"] {
  border-color: var(--pt-primary-border);
  background: var(--pt-primary-soft);
  color: var(--pt-primary-200);
}
[data-area-editor] [data-remove-coverage] {
  flex: 0 0 5.5rem;
  min-height: 44px;
  white-space: pre-line;
  line-height: 1.2;
}
@media (max-width: 599px) {
  [data-area-editor] [data-coverage-actions] {
    flex-direction: column;
    align-items: stretch;
  }
  [data-area-editor] [data-coverage-actions] > .pt-field {
    flex: 0 0 auto;
  }
}
