
 :root {
  --bg: #eef8ff;
  --bg-2: #ffffff;
  --panel: rgba(255, 255, 255, 0.88);
  --panel-strong: rgba(255, 255, 255, 0.96);
  --panel-soft: rgba(240, 249, 255, 0.94);
  --text: #0f172a;
  --muted: #5f718d;
  --primary: #38bdf8;
  --primary-2: #0ea5e9;
  --secondary: #93c5fd;
  --cyan: #22d3ee;
  --border: rgba(59, 130, 246, 0.14);
  --border-strong: rgba(14, 165, 233, 0.24);
  --shadow: 0 24px 60px rgba(59, 130, 246, 0.12);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  font-family: Inter, Arial, sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(56, 189, 248, 0.18), transparent 18%),
    radial-gradient(circle at 85% 10%, rgba(34, 211, 238, 0.12), transparent 18%),
    radial-gradient(circle at 50% 100%, rgba(124, 58, 237, 0.16), transparent 24%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
}

a { color: inherit; text-decoration: none; }
strong { color: #0f172a; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(2rem, 4vw, 3.4rem); margin-bottom: 10px; letter-spacing: -0.03em; }
h2 { font-size: clamp(1.25rem, 2vw, 1.8rem); margin-bottom: 10px; letter-spacing: -0.02em; }
h3 { font-size: 1.06rem; margin-bottom: 8px; }

.container {
  width: min(1240px, calc(100% - 32px));
  margin: 0 auto;
}

.hero-layout,
.auth-layout {
  display: grid;
  gap: 24px;
  align-items: center;
  min-height: 100vh;
  padding: 32px 0;
}

.hero-layout { grid-template-columns: 1.15fr .85fr; }
.auth-layout { max-width: 560px; }

.hero-panel,
.card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px);
}

.hero-panel {
  padding: 42px;
  position: relative;
  overflow: hidden;
}

.hero-panel::before,
.card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.card {
  padding: 24px;
  position: relative;
  overflow: hidden;
}

.info-card { align-self: stretch; }
.auth-card { padding: 34px; }
.highlight-card {
  display: grid;
  grid-template-columns: 1.5fr .95fr;
  gap: 20px;
}

.badge,
.soft-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.badge {
  background: rgba(225, 29, 72, .16);
  color: #0c4a6e;
  border: 1px solid rgba(14, 165, 233, .24);
}

.soft-tag {
  background: rgba(255,255,255,.05);
  color: #1e3a8a;
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.lead { font-size: 1.08rem; color: var(--muted); max-width: 54ch; }
.muted-text { color: var(--muted); line-height: 1.6; }

.hero-actions,
.topbar-actions,
.module-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.stack-gap { display: grid; gap: 14px; }
.divider { height: 1px; background: var(--border); margin: 20px 0; }

.grid,
.module-grid,
.submodule-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
}
.submodule-grid-single { grid-template-columns: minmax(280px, 480px); }

.dashboard-layout,
.page-shell,
.dashboard-shell { padding: 30px 0 44px; }
.page-shell { max-width: 1240px; }
.advanced-page-shell { display: grid; gap: 22px; }
.page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 18px;
}
.page-header-advanced { margin-bottom: 0; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 10;
  backdrop-filter: blur(16px);
  background: rgba(255, 255, 255, 0.86);
  border-bottom: 1px solid rgba(110, 130, 170, 0.12);
}
.topbar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
}
.topbar-title { font-size: clamp(1.4rem, 3vw, 2.2rem); margin: 8px 0 0; }

.loader-card { margin-top: 28px; text-align: center; }
.nav-card, .module-placeholder, .info-card, .module-card, .submodule-card, .area-card, .page-hero-mini {
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.nav-card:hover, .module-placeholder:hover, .info-card:hover, .module-card:hover, .submodule-card:hover, .area-card:hover {
  transform: translateY(-4px);
  border-color: rgba(14, 165, 233, .28);
  box-shadow: 0 30px 80px rgba(0,0,0,.48);
}

.user-badge {
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,0.72);
  border: 1px solid var(--border);
  color: var(--muted);
  max-width: 340px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color: #fff;
  padding: 13px 18px;
  border-radius: 14px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-weight: 800;
  letter-spacing: .01em;
  transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
  box-shadow: 0 18px 30px rgba(14, 165, 233, .18);
}
.btn:hover { transform: translateY(-1px); }
.btn:disabled { opacity: .7; cursor: wait; transform: none; }
.btn-secondary {
  background: rgba(71, 85, 105, 0.28);
  border: 1px solid rgba(148, 163, 184, .18);
  box-shadow: none;
}
.btn-block { width: 100%; }

label {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 0.95rem;
}

input {
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  color: #fff;
  outline: none;
}
input:focus { border-color: rgba(14, 165, 233, .45); }

.form-feedback {
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 0.95rem;
}
.form-feedback.info { background: rgba(59, 130, 246, .12); color: #bfdbfe; }
.form-feedback.success { background: rgba(16, 185, 129, .12); color: #bbf7d0; }
.form-feedback.error { background: rgba(14, 165, 233, .12); color: #075985; }

.feature-list,
.placeholder-list {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  display: grid;
  gap: 8px;
}

.hero-banner-advanced {
  display: grid;
  grid-template-columns: 1.3fr .9fr;
  gap: 24px;
  padding: 34px;
  background:
    linear-gradient(135deg, rgba(56,189,248,.14), rgba(124,58,237,.08)),
    var(--panel-strong);
  border-color: var(--border-strong);
}
.hero-copy { display: grid; gap: 10px; }
.hero-metrics {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  align-content: start;
}
.metric-box {
  padding: 18px;
  border-radius: 20px;
  background: rgba(239, 246, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.28);
}
.metric-box strong {
  display: block;
  font-size: clamp(1.6rem, 3vw, 2rem);
  margin-bottom: 6px;
}
.metric-box span { color: var(--muted); }
.accent-box {
  grid-column: span 2;
  background: linear-gradient(135deg, rgba(56,189,248,.16), rgba(34,211,238,.12));
  border-color: rgba(14,165,233,.18);
}

.dashboard-main-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 22px;
}

.area-card {
  min-height: 390px;
  display: grid;
  gap: 18px;
  align-content: space-between;
  padding: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.96));
}
.featured-area {
  border-color: rgba(14, 165, 233, 0.24);
  background:
    radial-gradient(circle at top right, rgba(56,189,248,.18), transparent 26%),
    linear-gradient(180deg, rgba(21,27,45,.96), rgba(11,16,28,.98));
}
.area-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.area-icon {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: 1.2rem;
  background: linear-gradient(135deg, rgba(56,189,248,.20), rgba(124,58,237,.2));
  border: 1px solid rgba(147, 197, 253, 0.28);
}
.feature-pills {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.feature-pills li {
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(147, 197, 253, 0.28);
  color: #1e3a8a;
  font-size: .92rem;
}

.page-hero-mini {
  display: grid;
  gap: 12px;
  padding: 24px 26px;
  background: linear-gradient(135deg, rgba(225,29,72,.1), rgba(34,211,238,.06));
}
.submodule-card {
  min-height: 220px;
  display: grid;
  gap: 18px;
  align-content: space-between;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.96));
}

.module-group {
  display: grid;
  gap: 14px;
  margin-bottom: 26px;
}
.section-heading { display: grid; gap: 8px; }
.module-card { display: grid; gap: 18px; align-content: space-between; min-height: 220px; }
.wide-card { grid-template-columns: 1fr auto; align-items: center; min-height: auto; }
.module-placeholder { display: grid; gap: 18px; }

.footer-note { padding-bottom: 32px; }

@media (max-width: 980px) {
  .hero-layout,
  .highlight-card,
  .hero-banner-advanced,
  .dashboard-main-grid { grid-template-columns: 1fr; }
  .hero-metrics { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .container { width: min(100% - 24px, 1240px); }
  .topbar-inner,
  .page-header { flex-direction: column; align-items: flex-start; }
  .hero-panel,
  .card,
  .area-card { padding: 22px; }
  .hero-metrics,
  .grid,
  .module-grid,
  .submodule-grid { grid-template-columns: 1fr; }
  .accent-box { grid-column: auto; }
  .wide-card { grid-template-columns: 1fr; }
  .user-badge { max-width: 100%; }
}


.company-hero {
  display: grid;
  grid-template-columns: 1.3fr .9fr;
  gap: 18px;
  align-items: stretch;
}

.hero-mini-stats {
  display: grid;
  gap: 14px;
}

.mini-stat-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-height: 110px;
  padding: 18px;
  border-radius: 20px;
  background: rgba(239, 246, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.mini-stat-box span {
  color: var(--muted);
  font-size: .92rem;
}

.mini-stat-box strong {
  font-size: 1.65rem;
}

.company-layout {
  display: grid;
  grid-template-columns: minmax(320px, 420px) 1fr;
  gap: 20px;
  align-items: start;
}

.form-card-elevated,
.table-card-elevated {
  padding: 26px;
}

.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}

.section-heading-table {
  align-items: center;
}

.advanced-form {
  display: grid;
}

.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.table-tools {
  display: flex;
  gap: 12px;
  align-items: center;
}

.table-search {
  width: min(320px, 100%);
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  color: #fff;
  outline: none;
}

.table-search:focus {
  border-color: rgba(14, 165, 233, .45);
}

.table-wrap {
  overflow-x: auto;
  border-radius: 18px;
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
  background: rgba(255, 255, 255, 0.92);
}

.data-table thead th {
  text-align: left;
  font-size: .86rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #1e3a8a;
  padding: 16px 14px;
  background: rgba(239, 246, 255, 0.9);
  border-bottom: 1px solid rgba(191, 219, 254, 0.7);
}

.data-table tbody td {
  padding: 14px;
  color: #0f172a;
  border-bottom: 1px solid rgba(226, 232, 240, 0.9);
  vertical-align: middle;
}

.data-table tbody tr:hover {
  background: rgba(239, 246, 255, 0.72);
}

.table-empty {
  text-align: center;
  color: var(--muted);
  padding: 26px 16px !important;
}

.th-actions {
  width: 220px;
}

.table-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.btn-table-action {
  min-width: 92px;
  padding: 10px 14px;
  box-shadow: none;
}

.btn-danger {
  background: rgba(127, 29, 29, .78);
  border: 1px solid rgba(248, 113, 113, .22);
  box-shadow: none;
}

@media (max-width: 980px) {
  .company-layout,
  .company-hero {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 860px) {
  .form-grid-2 { grid-template-columns: 1fr 1.2fr; }
}

select {
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  color: #fff;
  outline: none;
}
select:focus { border-color: rgba(14, 165, 233, .45); }

.simple-dual-layout {
  grid-template-columns: repeat(2, minmax(320px, 1fr));
}

@media (max-width: 980px) {
  .simple-dual-layout {
    grid-template-columns: 1fr;
  }
}


select {
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  color: #fff;
  outline: none;
}
select:focus { border-color: rgba(14, 165, 233, .45); }

.stock-filter-layout {
  display: grid;
  grid-template-columns: minmax(320px, 400px) 1fr;
  gap: 20px;
  align-items: start;
}

.stock-results-card {
  display: grid;
  gap: 18px;
}

.result-highlight {
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(239, 246, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.obra-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}

.obra-item-card,
.empty-state-card {
  padding: 20px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.96));
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.obra-item-card {
  display: grid;
  gap: 12px;
}

.obra-item-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.consumo-obra-card-top {
  align-items: flex-start;
}

.consumo-obra-card-top h3 {
  margin: 0;
  min-width: 0;
}

.consumo-obra-total {
  display: grid;
  justify-items: end;
  gap: 2px;
  flex: 0 0 auto;
  text-align: right;
}

.consumo-obra-total span {
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.consumo-obra-total strong {
  color: #0f4c81;
  font-size: 1rem;
  white-space: nowrap;
}

@media (max-width: 480px) {
  .consumo-obra-card-top {
    align-items: flex-start;
    gap: 12px;
  }

  .consumo-obra-total span {
    font-size: 0.66rem;
  }

  .consumo-obra-total strong {
    font-size: 0.92rem;
  }
}

@media (max-width: 980px) {
  .stock-filter-layout { grid-template-columns: 1fr; }
}

.form-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

@media (max-width: 860px) {
  .form-grid-3 {
    grid-template-columns: 1fr;
  }
}


select {
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  color: #fff;
  outline: none;
}

select:focus { border-color: rgba(14, 165, 233, .45); }

.btn-danger {
  background: rgba(127, 29, 29, 0.5);
  border: 1px solid rgba(248, 113, 113, 0.22);
  box-shadow: none;
}

.table-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.btn-table-action {
  padding: 10px 12px;
  font-size: 0.9rem;
}

.table-empty {
  text-align: center;
  color: var(--muted);
}

.employee-layout {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(320px, .95fr);
  gap: 20px;
  align-items: start;
}

.employee-hero {
  display: grid;
  grid-template-columns: 1.3fr .9fr;
  gap: 18px;
  align-items: stretch;
}

.form-actions-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.upload-box {
  display: grid;
  gap: 8px;
  padding: 18px;
  border-radius: 18px;
  border: 1px dashed rgba(14, 165, 233, .28);
  background: rgba(248, 252, 255, 0.94);
  cursor: pointer;
}

.upload-box strong { font-size: 1rem; }
.upload-box span { color: var(--muted); }

.import-actions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 980px) {
  .employee-layout,
  .employee-hero,
  .import-actions-grid {
    grid-template-columns: 1fr;
  }
}

.registro-toolbar-card {
  display: grid;
  gap: 16px;
}

.registro-toolbar-grid {
  display: grid;
  grid-template-columns: minmax(280px, 420px) auto;
  gap: 16px;
  align-items: end;
}

.registro-toolbar-actions {
  display: flex;
  align-items: end;
}

.registro-option-grid,
.registro-cards-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.registro-option-card,
.registro-cards-panel,
.registro-form-card {
  display: grid;
  gap: 18px;
}

.registro-option-card {
  min-height: 210px;
  align-content: space-between;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.96));
}

.compact-heading {
  margin-bottom: 12px;
}

.registro-items-stack {
  display: grid;
  gap: 14px;
}

.registro-item-row {
  display: grid;
  gap: 12px;
  padding: 18px;
  border-radius: 18px;
  background: rgba(248, 252, 255, 0.94);
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.registro-item-grid {
  align-items: end;
}

.form-grid-4,
.form-grid-5 {
  display: grid;
  gap: 16px;
}

.form-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-grid-5 { grid-template-columns: 1.4fr .8fr .8fr .7fr .8fr; }

.row-inline-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.align-end {
  align-items: end;
}

.registro-summary-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(239, 246, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.registro-summary-bar span {
  display: block;
  color: var(--muted);
  margin-bottom: 6px;
}

.registro-summary-bar strong {
  font-size: 1.35rem;
}

.registro-card-stack {
  display: grid;
  gap: 14px;
}

.registro-card {
  display: grid;
  gap: 14px;
  padding: 20px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(18,25,40,.92), rgba(10,15,26,.98));
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.entrega-card {
  border-color: rgba(34, 211, 238, .18);
}

.transferencia-card {
  border-color: rgba(251, 113, 133, .22);
}

.registro-card-head,
.registro-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.registro-card-meta {
  color: #0f172a;
}

.registro-items-summary {
  display: grid;
  gap: 10px;
}

.registro-item-pill {
  display: grid;
  gap: 6px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(239, 246, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.registro-item-pill span {
  color: var(--muted);
}

.ghost-label {
  visibility: hidden;
  margin-bottom: 8px;
}

.registro-plus-wrap {
  display: flex;
  flex-direction: column;
  justify-content: end;
}

@media (max-width: 1100px) {
  .registro-option-grid,
  .registro-cards-layout,
  .registro-toolbar-grid,
  .form-grid-4,
  .form-grid-5 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .registro-summary-bar,
  .registro-card-head,
  .registro-card-meta {
    flex-direction: column;
    align-items: flex-start;
  }
}


.registro-card-head-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.registro-card-head-main {
  display: grid;
  gap: 0.35rem;
}

.registro-card-delete {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  z-index: 2;
  width: 2.2rem;
  height: 2.2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(248, 113, 113, 0.75);
  background: linear-gradient(180deg, rgba(190, 24, 93, 0.95), rgba(220, 38, 38, 0.95));
  color: #fff;
  font-size: 1.45rem;
  line-height: 1;
  font-weight: 900;
  box-shadow: 0 10px 25px rgba(127, 29, 29, 0.35);
  cursor: pointer;
  transition: transform 0.18s ease, background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.registro-card-delete:hover {
  transform: translateY(-1px) scale(1.03);
  background: linear-gradient(180deg, rgba(14, 165, 233, 1), rgba(56, 189, 248, 1));
  border-color: rgba(254, 202, 202, 0.95);
  box-shadow: 0 12px 28px rgba(127, 29, 29, 0.45);
}

.registro-card-delete:disabled {
  opacity: 0.55;
  cursor: wait;
  transform: none;
}

.registro-card-with-delete {
  padding-top: 1.6rem;
}

.registro-card-with-delete .registro-card-head-actions {
  padding-right: 2.6rem;
}


.registro-card-delete {
  opacity: 1 !important;
  visibility: visible !important;
}

.registro-card-delete::before {
  content: "";
}


.registro-card-actions-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.btn-delete-entrega {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.4rem;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .registro-card-actions-bar {
    flex-direction: column;
    align-items: flex-start;
  }
}

.recebimento-layout {
  display: grid;
  grid-template-columns: minmax(320px, 1.1fr) minmax(320px, .95fr);
  gap: 20px;
  align-items: start;
}

.recebimento-layout-single {
  grid-template-columns: minmax(0, 1fr);
}

.recebimento-layout-single .recebimento-form-card {
  width: 100%;
}

.recebimento-form-card,
.recebimento-cards-panel {
  display: grid;
  gap: 18px;
}

.recebimento-hero-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.recebimento-grid-top {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.recebimento-item-grid {
  grid-template-columns: 1.5fr .8fr .7fr .8fr;
}

.recebimento-summary-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(239, 246, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.28);
  align-items: end;
}

.recebimento-summary-bar span {
  display: block;
  color: var(--muted);
  margin-bottom: 6px;
}

.recebimento-summary-bar strong {
  font-size: 1.2rem;
}

.autocomplete-shell {
  position: relative;
}

.row-autocomplete-shell {
  min-width: 0;
}

.field-helper {
  margin: 8px 0 0;
  font-size: .93rem;
}

.autocomplete-panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 12;
  display: grid;
  gap: 6px;
  max-height: 260px;
  overflow-y: auto;
  padding: 10px;
  border-radius: 18px;
  background: rgba(8, 12, 21, 0.98);
  border: 1px solid rgba(147, 197, 253, 0.28);
  box-shadow: 0 24px 60px rgba(0,0,0,.42);
}

.autocomplete-option {
  width: 100%;
  text-align: left;
  border: 1px solid rgba(147, 197, 253, 0.28);
  background: rgba(248, 252, 255, 0.94);
  color: #fff;
  padding: 12px 14px;
  border-radius: 14px;
  cursor: pointer;
  display: grid;
  gap: 4px;
}

.autocomplete-option:hover {
  border-color: rgba(14, 165, 233, .28);
  background: rgba(56, 189, 248, .08);
}

.autocomplete-option small,
.autocomplete-empty {
  color: var(--muted);
}

.autocomplete-empty {
  padding: 10px 12px;
}

@media (max-width: 1100px) {
  .recebimento-layout,
  .recebimento-grid-top,
  .recebimento-item-grid,
  .recebimento-summary-bar,
  .recebimento-hero-stats {
    grid-template-columns: 1fr;
  }
}

.btn-success {
  background: linear-gradient(135deg, #16a34a, #22c55e);
  border-color: rgba(74, 222, 128, 0.45);
  color: #f8fff9;
}

.btn-success:hover {
  filter: brightness(1.04);
}

body.modal-open {
  overflow: hidden;
}

[hidden] {
  display: none !important;
}

.term-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 18px;
}

.term-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, 0.74);
  backdrop-filter: blur(6px);
}

.term-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(760px, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  overflow: auto;
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(240, 249, 255, 0.96));
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.45);
  padding: 24px;
  display: grid;
  gap: 18px;
}

.term-modal-header,
.term-modal-grid {
  display: grid;
  gap: 18px;
}

.term-modal-header {
  grid-template-columns: 1fr auto;
  align-items: start;
}

.term-modal-grid {
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.88fr);
  align-items: start;
}


.term-modal-grid-signature-only {
  grid-template-columns: minmax(0, 560px);
  justify-content: center;
}

.signature-only-card {
  max-width: 560px;
  width: 100%;
  margin: 0 auto;
}

.signature-only-message {
  display: grid;
  gap: 8px;
}

.term-preview-hidden {
  display: none !important;
}

.term-modal-preview-wrap,
.term-signature-panel {
  border-radius: 22px;
  border: 1px solid rgba(147, 197, 253, 0.28);
  background: rgba(248, 252, 255, 0.94);
  padding: 18px;
}

.term-preview {
  display: grid;
}

.term-sheet {
  border-radius: 20px;
  background: #ffffff;
  color: #111827;
  padding: 22px;
  display: grid;
  gap: 16px;
}

.term-sheet-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.term-sheet-head strong {
  color: #0369a1;
  text-align: right;
}

.term-info-grid,
.term-footer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.term-info-grid div,
.term-footer-grid div {
  display: grid;
  gap: 4px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 12px 14px;
}

.term-info-grid span,
.term-footer-grid span,
.term-signature-preview span {
  color: #475569;
  font-size: 0.92rem;
}

.term-text {
  margin: 0;
  line-height: 1.65;
}

.term-declaration {
  display: grid;
  gap: 10px;
}

.public-term-content {
  display: grid;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(248, 250, 252, 0.92);
}

.public-term-content h2 {
  margin: 0;
  font-size: 1.15rem;
}

.public-term-content > div {
  display: grid;
  gap: 10px;
}

.public-term-content p {
  margin: 0;
  line-height: 1.65;
  color: #334155;
  text-align: justify;
}

.term-items-table-wrap {
  overflow-x: auto;
}

.term-items-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.term-items-table th,
.term-items-table td {
  border-bottom: 1px solid #e2e8f0;
  padding: 10px 12px;
  text-align: left;
}

.term-items-table thead th {
  background: #f8fafc;
  color: #334155;
}

.term-signature-preview {
  display: grid;
  gap: 8px;
  padding-top: 10px;
}

.term-signature-preview img {
  width: 240px;
  max-width: 100%;
  height: 90px;
  object-fit: contain;
  border-radius: 14px;
  border: 1px solid #d1d5db;
  background: #fff;
}

.term-signature-placeholder {
  min-height: 90px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  border: 1px dashed #cbd5e1;
  color: #64748b;
  background: #f8fafc;
}

.signature-canvas-shell {
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(147, 197, 253, 0.28);
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03);
}

#termSignatureCanvas {
  display: block;
  width: 100%;
  height: 200px;
  touch-action: none;
  cursor: crosshair;
}

.term-actions-stack {
  display: grid;
  gap: 10px;
}

@media (max-width: 980px) {
  .term-modal-header,
  .term-modal-grid,
  .term-info-grid,
  .term-footer-grid {
    grid-template-columns: 1fr;
  }

  .term-sheet-head {
    flex-direction: column;
  }
}


.stock-table-tools {
  width: min(320px, 100%);
  justify-content: flex-end;
}

.table-search-wrap {
  width: 100%;
}

.stock-modal-dialog {
  width: min(640px, calc(100vw - 24px));
}

.stock-modal-highlight {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.stock-recipient-list {
  display: grid;
  gap: 12px;
}

.stock-recipient-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(248, 252, 255, 0.94);
  border: 1px solid rgba(147, 197, 253, 0.28);
}

.stock-recipient-item span {
  color: var(--muted);
}

.compact-empty-state {
  padding: 18px;
}

@media (max-width: 720px) {
  .stock-modal-highlight,
  .stock-recipient-item {
    grid-template-columns: 1fr;
  }
}

.stock-recipient-line { grid-template-columns: 1fr; }


.collaborators-filter-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.collaborators-filter-grid-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.collaborators-data-table {
  min-width: 1080px;
}

.ficha-data-table {
  min-width: 780px;
}

.generic-modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 18px;
}

.generic-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, 0.74);
  backdrop-filter: blur(6px);
}

.generic-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(760px, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  overflow: auto;
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(240, 249, 255, 0.96));
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.45);
  padding: 24px;
  display: grid;
  gap: 18px;
}

.generic-modal-dialog-lg {
  width: min(980px, calc(100vw - 24px));
}

.generic-modal-dialog-xl {
  width: min(1120px, calc(100vw - 24px));
}

.generic-modal-header {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: start;
}

.ficha-modal-header {
  margin-bottom: 6px;
}

@media (max-width: 980px) {
  .collaborators-filter-grid,
  .collaborators-filter-grid-5 {
    grid-template-columns: 1fr;
  }

  .generic-modal-header {
    grid-template-columns: 1fr;
  }
}


.table-sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 0;
  padding: 0;
  font: inherit;
  font-weight: 700;
  color: inherit;
  cursor: pointer;
}

.table-sort-btn:hover {
  opacity: 0.82;
}

.sort-indicator {
  font-size: 0.95em;
  opacity: 0.8;
}

/* Colaboradores - Ficha de EPI */
.ficha-tools-card {
  margin-bottom: 1rem;
}

.employee-inline-details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
}

.employee-detail-pill {
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 0.85rem 1rem;
  background: rgba(255,255,255,0.03);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.employee-detail-pill strong {
  font-size: 0.8rem;
  opacity: 0.72;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.employee-detail-pill span {
  font-size: 0.95rem;
}

.ficha-filter-grid {
  align-items: end;
}

.ficha-filter-action {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

/* Termos Assinados */
.signed-terms-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.signed-term-employee-card {
  display: grid;
  gap: 14px;
}

.signed-term-card-body {
  display: grid;
  gap: 8px;
}

.signed-folders-stack {
  display: grid;
  gap: 16px;
}

.signed-folder-card {
  display: grid;
  gap: 14px;
}

.signed-terms-list {
  display: grid;
  gap: 12px;
}

.signed-term-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(148, 163, 184, 0.14);
  background: rgba(15, 23, 42, 0.48);
}

.signed-term-actions {
  justify-content: flex-end;
  align-self: center;
}

.termos-filters-grid {
  align-items: end;
}

.termos-filter-action {
  display: grid;
}

@media (max-width: 900px) {
  .signed-term-row {
    grid-template-columns: 1fr;
  }

  .signed-term-actions {
    justify-content: stretch;
  }
}

.users-layout-grid {
  display: grid;
  grid-template-columns: minmax(340px, 430px) minmax(0, 1fr);
  gap: 22px;
}

.operator-mobile-shell {
  width: min(100%, 560px);
  margin: 0 auto;
  padding: 18px 14px 28px;
  min-height: 100vh;
  display: grid;
  align-content: start;
}

.operator-mobile-card {
  padding: 18px;
  border-radius: 24px;
}

.operator-hidden-field {
  display: none;
}

.operator-summary-bar {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 900px) {
  .users-layout-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .operator-mobile-shell {
    width: 100%;
    padding: 12px;
  }

  .operator-mobile-card {
    padding: 16px;
    border-radius: 20px;
  }

  .operator-summary-bar {
    grid-template-columns: 1fr 1fr;
  }

  .operator-summary-bar .btn {
    grid-column: 1 / -1;
  }
}


body[data-operator-mode="1"] .autocomplete-shell {
  overflow: visible;
}

body[data-operator-mode="1"] .autocomplete-panel {
  position: static;
  margin-top: 8px;
  max-height: 240px;
}


.status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid rgba(255,255,255,0.12);
}
.status-ativo { background: rgba(32, 183, 87, 0.16); color: #90f0b0; }
.status-inativo { background: rgba(148, 163, 184, 0.16); color: #d6deea; }
.status-afastado { background: rgba(245, 158, 11, 0.16); color: #ffd08a; }


/* Tema azul claro e branco */
body {
  background:
    radial-gradient(circle at top left, rgba(56, 189, 248, 0.14), transparent 18%),
    radial-gradient(circle at 85% 10%, rgba(147, 197, 253, 0.16), transparent 18%),
    radial-gradient(circle at 50% 100%, rgba(186, 230, 253, 0.18), transparent 24%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
}
.topbar {
  box-shadow: 0 10px 30px rgba(59,130,246,0.08);
}
.badge {
  background: rgba(56, 189, 248, .14);
  color: #075985;
  border: 1px solid rgba(56, 189, 248, .22);
}
.soft-tag {
  background: rgba(239, 246, 255, 0.95);
  color: #1e3a8a;
  border: 1px solid rgba(147, 197, 253, 0.25);
}
.hero-banner-advanced, .featured-area, .page-hero-mini, .accent-box, .registro-option-card, .submodule-card, .area-card, .obra-item-card, .empty-state-card, .signed-term-row {
  color: var(--text);
}
.hero-banner-advanced {
  background: linear-gradient(135deg, rgba(56,189,248,.12), rgba(255,255,255,.9)), var(--panel-strong);
}
.featured-area {
  background: radial-gradient(circle at top right, rgba(56,189,248,.12), transparent 26%), linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.96));
}
.page-hero-mini, .accent-box {
  background: linear-gradient(135deg, rgba(56,189,248,.10), rgba(255,255,255,.92));
}
.user-badge, .metric-box, .mini-stat-box, .result-highlight, .employee-detail-pill, .stock-recipient-item, .term-modal-preview-wrap, .term-signature-panel, .signed-term-row, .autocomplete-option, .upload-box, .registro-item-row, .term-modal-dialog, .generic-modal-dialog {
  color: var(--text);
}
.data-table thead th, .term-items-table thead th {
  background: #eff6ff;
  color: #1e3a8a;
}
.data-table tbody td {
  color: #0f172a;
}
.table-search, input, select, textarea {
  background: #ffffff;
  color: #0f172a;
  box-shadow: inset 0 1px 2px rgba(59,130,246,0.04);
}
.table-search::placeholder, input::placeholder, textarea::placeholder {
  color: #94a3b8;
}
.table-wrap, .signature-canvas-shell {
  background: rgba(255,255,255,.95);
}
.btn-secondary {
  background: #ffffff;
  color: #1e3a8a;
  border: 1px solid rgba(147, 197, 253, .35);
}
.btn-danger {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
  border: 1px solid rgba(239, 68, 68, 0.18);
}
.term-modal-backdrop, .generic-modal-backdrop {
  background: rgba(186, 230, 253, 0.35);
}
.term-sheet-head strong {
  color: #0369a1;
}
.status-inativo { background: rgba(148, 163, 184, 0.12); color: #475569; }
.status-afastado { background: rgba(56, 189, 248, 0.12); color: #075985; }

/* Admin notifications */
.admin-notifications {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.admin-notification-bell {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(255,255,255,0.9);
  color: var(--text);
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(14, 165, 233, 0.10);
}
.admin-notification-bell:hover { transform: translateY(-1px); }
.admin-notification-icon { font-size: 1.1rem; line-height: 1; }
.admin-notification-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ef4444;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  border: 2px solid #fff;
  box-shadow: 0 6px 16px rgba(239, 68, 68, 0.25);
}
.admin-notification-panel {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: min(420px, 92vw);
  max-height: min(70vh, 560px);
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid rgba(110, 130, 170, 0.18);
  background: rgba(255,255,255,0.98);
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.18);
  z-index: 1000;
}
.admin-notification-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgba(110, 130, 170, 0.12);
}
.admin-notification-panel-head h3 {
  margin: 8px 0 0;
  font-size: 1.1rem;
}
.admin-notification-count {
  color: var(--muted);
  font-size: 0.88rem;
  white-space: nowrap;
}
.admin-notification-list {
  display: grid;
  gap: 12px;
  padding: 14px 16px 16px;
  max-height: calc(min(70vh, 560px) - 78px);
  overflow: auto;
}
.notification-item,
.notification-empty-state {
  border: 1px solid rgba(110, 130, 170, 0.12);
  border-radius: 16px;
  background: rgba(248, 250, 252, 0.95);
  padding: 14px 14px 12px;
}
.notification-item-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.notification-item-head strong {
  display: block;
  font-size: 0.98rem;
  line-height: 1.35;
}
.notification-item p {
  margin: 8px 0 0;
  color: var(--muted);
}
.notification-item.is-read {
  opacity: 0.72;
  background: rgba(248, 250, 252, 0.78);
}
.notification-item.is-read .notification-type-tag {
  opacity: 0.82;
}
.notification-type-tag {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  background: rgba(14, 165, 233, 0.10);
  color: var(--primary);
  white-space: nowrap;
}
.notification-empty-state {
  text-align: center;
  color: var(--muted);
}
.notification-empty-state strong {
  display: block;
  color: var(--text);
  margin-bottom: 6px;
}


.center-success-toast {
  position: fixed;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%) scale(0.96);
  min-width: min(88vw, 380px);
  max-width: 88vw;
  padding: 20px 24px;
  border-radius: 22px;
  background: rgba(15, 23, 42, 0.96);
  color: #ffffff;
  text-align: center;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  box-shadow: 0 24px 80px rgba(15, 23, 42, 0.32);
  z-index: 2500;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.center-success-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* ======================================================================
   R-CorpS Premium Black/Red Theme - aplicado em 13/05/2026
   Tema global escuro com contraste alto, vidro preto e acentos vermelhos.
   ====================================================================== */
:root {
  --bg: #050506;
  --bg-2: #0a0a0d;
  --panel: rgba(18, 18, 24, 0.86);
  --panel-strong: rgba(24, 24, 32, 0.96);
  --panel-soft: rgba(20, 20, 27, 0.78);
  --text: #f8fafc;
  --muted: #b8bfcc;
  --primary: #ef233c;
  --primary-2: #991b1f;
  --secondary: #ff4d5f;
  --cyan: #fb7185;
  --danger: #ef4444;
  --success: #22c55e;
  --warning: #f59e0b;
  --border: rgba(248, 113, 113, 0.20);
  --border-strong: rgba(239, 35, 60, 0.42);
  --shadow: 0 28px 90px rgba(0, 0, 0, 0.58);
  --radius-xl: 30px;
  --radius-lg: 24px;
  --radius-md: 16px;
}

html {
  background: #050506;
}

body {
  color: var(--text);
  background:
    radial-gradient(circle at 12% -10%, rgba(239, 35, 60, 0.38), transparent 32%),
    radial-gradient(circle at 90% 4%, rgba(153, 27, 31, 0.34), transparent 30%),
    radial-gradient(circle at 48% 105%, rgba(127, 29, 29, 0.30), transparent 36%),
    linear-gradient(135deg, #030305 0%, #09090c 42%, #12090b 100%);
  position: relative;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -2;
  background:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(circle at center, black, transparent 74%);
  opacity: 0.42;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(115deg, rgba(239, 35, 60, 0.10), transparent 24%, rgba(255,255,255,0.035) 48%, transparent 72%),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,0.075), transparent 18%);
}

::selection {
  background: rgba(239, 35, 60, 0.72);
  color: #ffffff;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #09090c; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #ef233c, #7f1d1d);
  border-radius: 999px;
  border: 2px solid #09090c;
}

h1, h2, h3, strong {
  color: #ffffff;
}

h1, h2 {
  text-shadow: 0 14px 34px rgba(0,0,0,0.44);
}

p, li, span, small, label, td, th {
  color: inherit;
}

.lead,
.muted-text,
.field-helper,
.table-empty,
.autocomplete-empty,
.upload-box span,
.metric-box span,
.mini-stat-box span,
.recebimento-summary-bar span,
.registro-summary-bar span,
.stock-recipient-item span,
.employee-detail-pill strong,
.notification-item p,
.notification-empty-state,
.admin-notification-count {
  color: var(--muted) !important;
}

.hero-panel,
.card,
.term-modal-dialog,
.generic-modal-dialog {
  background:
    linear-gradient(145deg, rgba(255,255,255,0.075), rgba(255,255,255,0.022)),
    linear-gradient(180deg, rgba(22,22,30,0.94), rgba(9,9,13,0.94));
  border: 1px solid var(--border);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.08);
  backdrop-filter: blur(22px);
}

.hero-panel::before,
.card::before,
.term-modal-dialog::before,
.generic-modal-dialog::before {
  background:
    linear-gradient(135deg, rgba(239,35,60,0.24), transparent 22%, rgba(255,255,255,0.06) 50%, transparent 76%);
  opacity: 0.78;
}

.hero-panel::after,
.card::after {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(circle at top right, rgba(239,35,60,0.14), transparent 38%);
  opacity: 0.9;
}

.card > *,
.hero-panel > * {
  position: relative;
  z-index: 1;
}

.topbar {
  background: rgba(5, 5, 8, 0.82);
  border-bottom: 1px solid rgba(239, 35, 60, 0.22);
  box-shadow: 0 18px 50px rgba(0,0,0,0.34);
}

.topbar::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(239,35,60,0.18), transparent 48%, rgba(239,35,60,0.10));
}

.badge,
.soft-tag,
.status-chip,
.notification-type-tag {
  background: linear-gradient(135deg, rgba(239, 35, 60, 0.24), rgba(153, 27, 31, 0.10));
  color: #ffffff;
  border: 1px solid rgba(248, 113, 113, 0.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 12px 30px rgba(127,29,29,0.18);
}

.user-badge,
.metric-box,
.mini-stat-box,
.result-highlight,
.employee-detail-pill,
.term-modal-preview-wrap,
.term-signature-panel,
.stock-recipient-item,
.notification-item,
.notification-empty-state,
.registro-summary-bar,
.recebimento-summary-bar,
.registro-item-row,
.upload-box,
.obra-item-card,
.empty-state-card,
.signed-term-row {
  background: linear-gradient(180deg, rgba(255,255,255,0.075), rgba(255,255,255,0.032));
  border: 1px solid rgba(248, 113, 113, 0.18);
  color: var(--text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.metric-box strong,
.mini-stat-box strong,
.registro-summary-bar strong,
.recebimento-summary-bar strong {
  color: #ffffff;
}

.hero-banner-advanced,
.page-hero-mini,
.accent-box,
.featured-area,
.area-card,
.submodule-card,
.registro-option-card,
.module-card,
.nav-card,
.module-placeholder {
  color: var(--text);
  background:
    radial-gradient(circle at top right, rgba(239,35,60,0.18), transparent 34%),
    linear-gradient(145deg, rgba(32,32,42,0.94), rgba(10,10,15,0.96));
  border-color: rgba(248, 113, 113, 0.22);
}

.hero-banner-advanced {
  padding: 38px;
  border-color: rgba(239, 35, 60, 0.34);
  box-shadow: 0 34px 110px rgba(0,0,0,.58), 0 0 0 1px rgba(255,255,255,0.03) inset;
}

.area-card,
.submodule-card,
.registro-option-card,
.module-card,
.module-placeholder,
.nav-card {
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

.nav-card:hover,
.module-placeholder:hover,
.info-card:hover,
.module-card:hover,
.submodule-card:hover,
.area-card:hover,
.registro-option-card:hover {
  transform: translateY(-5px);
  border-color: rgba(239, 35, 60, 0.48);
  box-shadow: 0 32px 95px rgba(0,0,0,.62), 0 0 42px rgba(239,35,60,.14);
}

.area-icon {
  background: linear-gradient(135deg, rgba(239,35,60,.30), rgba(153,27,31,.18));
  border: 1px solid rgba(248,113,113,.26);
  color: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 14px 35px rgba(127,29,29,.22);
}

.feature-pills li,
.registro-item-pill,
.signed-term-card-body,
.employee-inline-details .employee-detail-pill {
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(248,113,113,0.18);
  color: #f8fafc;
}

.divider {
  background: linear-gradient(90deg, transparent, rgba(248,113,113,.34), transparent);
}

.btn {
  background: linear-gradient(135deg, #ff3347 0%, #ef233c 42%, #7f1d1d 100%);
  color: #ffffff;
  border: 1px solid rgba(255, 118, 134, 0.36);
  box-shadow: 0 18px 42px rgba(239, 35, 60, .27), inset 0 1px 0 rgba(255,255,255,0.16);
}

.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 54px rgba(239, 35, 60, .36), inset 0 1px 0 rgba(255,255,255,0.18);
}

.btn:active {
  transform: translateY(0);
}

.btn-secondary {
  background: rgba(255,255,255,0.055);
  color: #ffffff;
  border: 1px solid rgba(248, 113, 113, 0.20);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}

.btn-secondary:hover {
  border-color: rgba(248, 113, 113, 0.44);
  background: rgba(239,35,60,0.10);
}

.btn-danger,
.registro-card-delete,
.btn-delete-entrega {
  background: linear-gradient(135deg, rgba(239,68,68,0.98), rgba(127,29,29,0.98));
  color: #ffffff;
  border-color: rgba(254,202,202,0.32);
}

.btn-success {
  background: linear-gradient(135deg, #16a34a, #15803d);
  border-color: rgba(74, 222, 128, 0.34);
}

label {
  color: #e7eaf0;
  font-weight: 700;
}

input,
select,
textarea,
.table-search {
  background: rgba(8, 8, 12, 0.88);
  color: #ffffff;
  border: 1px solid rgba(248, 113, 113, 0.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 10px 24px rgba(0,0,0,0.18);
}

input::placeholder,
textarea::placeholder,
.table-search::placeholder {
  color: #747d8c;
}

input:focus,
select:focus,
textarea:focus,
.table-search:focus {
  border-color: rgba(255, 77, 95, 0.74);
  box-shadow: 0 0 0 4px rgba(239,35,60,0.14), inset 0 1px 0 rgba(255,255,255,0.06);
}

select option {
  background: #0b0b0f;
  color: #ffffff;
}

input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1);
}

.form-feedback {
  border: 1px solid rgba(255,255,255,0.08);
}

.form-feedback.info {
  background: rgba(239, 35, 60, .10);
  color: #fecdd3;
}

.form-feedback.success {
  background: rgba(34, 197, 94, .12);
  color: #bbf7d0;
}

.form-feedback.error {
  background: rgba(239, 68, 68, .14);
  color: #fecaca;
}

.table-wrap {
  background: rgba(9,9,13,0.92);
  border: 1px solid rgba(248, 113, 113, 0.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.data-table {
  background: rgba(9,9,13,0.88);
}

.data-table thead th,
.term-items-table thead th {
  background: linear-gradient(180deg, rgba(127,29,29,0.72), rgba(24,24,32,0.96));
  color: #ffffff;
  border-bottom: 1px solid rgba(248,113,113,0.24);
}

.data-table tbody td {
  color: #f1f5f9;
  border-bottom: 1px solid rgba(248, 113, 113, 0.10);
}

.data-table tbody tr:nth-child(even) {
  background: rgba(255,255,255,0.025);
}

.data-table tbody tr:hover {
  background: rgba(239, 35, 60, 0.11);
}

.table-sort-btn {
  color: #ffffff;
}

.autocomplete-panel,
.admin-notification-panel {
  background: rgba(7, 7, 10, 0.98);
  border: 1px solid rgba(248, 113, 113, 0.22);
  box-shadow: 0 30px 80px rgba(0,0,0,.58);
}

.autocomplete-option {
  background: rgba(255,255,255,0.06);
  color: #ffffff;
  border: 1px solid rgba(248,113,113,0.16);
}

.autocomplete-option:hover {
  background: rgba(239,35,60,0.14);
  border-color: rgba(248,113,113,0.42);
}

.admin-notification-bell {
  background: rgba(255,255,255,0.06);
  color: #ffffff;
  border: 1px solid rgba(248,113,113,0.20);
  box-shadow: 0 14px 34px rgba(0,0,0,0.28);
}

.admin-notification-badge {
  background: linear-gradient(135deg, #ff3347, #ef233c);
  border-color: #09090c;
}

.admin-notification-panel-head {
  border-bottom: 1px solid rgba(248,113,113,0.16);
}

.notification-item.is-read {
  background: rgba(255,255,255,0.035);
}

.term-modal-backdrop,
.generic-modal-backdrop {
  background: rgba(0,0,0,0.78);
  backdrop-filter: blur(10px);
}

.signature-canvas-shell {
  background: #ffffff;
  border-color: rgba(248,113,113,0.22);
}

/* Mantém documentos/termos impressos em fundo claro para assinatura e PDF */
.term-sheet,
.term-info-grid div,
.term-footer-grid div,
.term-signature-placeholder,
.term-signature-preview img {
  background: #ffffff;
  color: #111827;
  border-color: #e5e7eb;
}

.term-sheet strong,
.term-sheet h1,
.term-sheet h2,
.term-sheet h3,
.term-sheet-head strong {
  color: #991b1f;
  text-shadow: none;
}

.term-sheet span,
.term-info-grid span,
.term-footer-grid span,
.term-signature-preview span {
  color: #475569 !important;
}

.term-items-table th,
.term-items-table td {
  color: #111827;
  border-bottom: 1px solid #e5e7eb;
}

.status-ativo {
  background: rgba(34, 197, 94, 0.16);
  color: #bbf7d0;
  border-color: rgba(74,222,128,0.22);
}

.status-inativo {
  background: rgba(148, 163, 184, 0.14);
  color: #cbd5e1;
}

.status-afastado {
  background: rgba(245, 158, 11, 0.16);
  color: #fde68a;
  border-color: rgba(245,158,11,0.22);
}

.center-success-toast {
  background: linear-gradient(135deg, rgba(22,22,30,0.98), rgba(127,29,29,0.96));
  border: 1px solid rgba(248,113,113,0.28);
  box-shadow: 0 28px 90px rgba(0,0,0,0.58), 0 0 36px rgba(239,35,60,0.18);
}

.operator-mobile-shell {
  background: transparent;
}

@media (max-width: 760px) {
  .hero-banner-advanced { padding: 24px; }
  .btn { min-height: 46px; }
  .topbar { position: sticky; }
}

.term-sheet .term-items-table thead th {
  background: #f8fafc;
  color: #334155;
}

.term-sheet .term-items-table tbody td {
  color: #111827;
}

/* ======================================================================
   R-CorpS Premium Light Theme - branco + azul claro
   Atualização solicitada: leitura reforçada em Estoque / Núcleo / Cards.
   Este bloco final sobrescreve o tema preto/vermelho anterior.
   ====================================================================== */
:root {
  --bg: #eef8ff;
  --bg-2: #ffffff;
  --panel: rgba(255, 255, 255, 0.92);
  --panel-strong: rgba(255, 255, 255, 0.98);
  --panel-soft: rgba(240, 249, 255, 0.96);
  --text: #0f172a;
  --muted: #475569;
  --primary: #0284c7;
  --primary-2: #38bdf8;
  --secondary: #7dd3fc;
  --cyan: #06b6d4;
  --danger: #dc2626;
  --success: #15803d;
  --warning: #d97706;
  --border: rgba(14, 116, 144, 0.14);
  --border-strong: rgba(2, 132, 199, 0.34);
  --shadow: 0 24px 70px rgba(2, 132, 199, 0.14);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
}

html { background: #eef8ff !important; }
body {
  color: var(--text) !important;
  background:
    radial-gradient(circle at 8% -10%, rgba(56, 189, 248, 0.34), transparent 30%),
    radial-gradient(circle at 92% 2%, rgba(147, 197, 253, 0.36), transparent 28%),
    radial-gradient(circle at 48% 110%, rgba(186, 230, 253, 0.40), transparent 34%),
    linear-gradient(180deg, #eef8ff 0%, #f8fcff 46%, #ffffff 100%) !important;
  overflow-x: hidden;
}
body::before {
  background:
    linear-gradient(rgba(2, 132, 199, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(2, 132, 199, 0.038) 1px, transparent 1px) !important;
  background-size: 48px 48px !important;
  opacity: 0.55 !important;
  mask-image: radial-gradient(circle at center, black, transparent 76%) !important;
}
body::after {
  background:
    linear-gradient(115deg, rgba(56, 189, 248, 0.10), transparent 24%, rgba(255,255,255,0.40) 48%, transparent 72%),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,0.65), transparent 26%) !important;
}

::selection { background: rgba(2, 132, 199, 0.24) !important; color: #082f49 !important; }
::-webkit-scrollbar-track { background: #e0f2fe !important; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #38bdf8, #0284c7) !important;
  border: 2px solid #e0f2fe !important;
}

h1, h2, h3, h4, strong { color: #0f172a !important; text-shadow: none !important; }
p, li, span, small, label, td, th { color: inherit; }
.lead,
.muted-text,
.field-helper,
.table-empty,
.autocomplete-empty,
.upload-box span,
.metric-box span,
.mini-stat-box span,
.recebimento-summary-bar span,
.registro-summary-bar span,
.stock-recipient-item span,
.employee-detail-pill strong,
.notification-item p,
.notification-empty-state,
.admin-notification-count {
  color: #475569 !important;
}

.hero-panel,
.card,
.term-modal-dialog,
.generic-modal-dialog {
  color: var(--text) !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,0.98), rgba(240,249,255,0.94)) !important;
  border: 1px solid rgba(14, 116, 144, 0.13) !important;
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.92) !important;
  backdrop-filter: blur(18px) !important;
}
.hero-panel::before,
.card::before,
.term-modal-dialog::before,
.generic-modal-dialog::before {
  background: linear-gradient(135deg, rgba(56,189,248,0.16), transparent 24%, rgba(255,255,255,0.62) 52%, transparent 78%) !important;
  opacity: 0.85 !important;
}
.hero-panel::after,
.card::after {
  background: radial-gradient(circle at top right, rgba(56,189,248,0.16), transparent 40%) !important;
  opacity: 0.9 !important;
}
.card > *, .hero-panel > * { position: relative; z-index: 1; }

.topbar {
  background: rgba(255, 255, 255, 0.88) !important;
  border-bottom: 1px solid rgba(14, 116, 144, 0.12) !important;
  box-shadow: 0 14px 38px rgba(2, 132, 199, 0.10) !important;
}
.topbar::before {
  background: linear-gradient(90deg, rgba(56,189,248,0.13), transparent 48%, rgba(147,197,253,0.15)) !important;
}

.badge,
.soft-tag,
.notification-type-tag {
  color: #075985 !important;
  background: linear-gradient(135deg, #e0f2fe, #ffffff) !important;
  border: 1px solid rgba(2, 132, 199, 0.20) !important;
  box-shadow: 0 10px 22px rgba(2, 132, 199, 0.08), inset 0 1px 0 rgba(255,255,255,0.96) !important;
}
.user-badge {
  color: #334155 !important;
  background: rgba(255,255,255,0.88) !important;
  border: 1px solid rgba(14, 116, 144, 0.15) !important;
}

.metric-box,
.mini-stat-box,
.result-highlight,
.employee-detail-pill,
.term-modal-preview-wrap,
.term-signature-panel,
.stock-recipient-item,
.notification-item,
.notification-empty-state,
.registro-summary-bar,
.recebimento-summary-bar,
.registro-item-row,
.upload-box,
.obra-item-card,
.empty-state-card,
.signed-term-row,
.registro-item-pill,
.feature-pills li {
  color: var(--text) !important;
  background: linear-gradient(180deg, #ffffff, #f0f9ff) !important;
  border: 1px solid rgba(2, 132, 199, 0.16) !important;
  box-shadow: 0 12px 28px rgba(2, 132, 199, 0.08), inset 0 1px 0 rgba(255,255,255,0.95) !important;
}
.metric-box strong,
.mini-stat-box strong,
.registro-summary-bar strong,
.recebimento-summary-bar strong {
  color: #075985 !important;
}

.hero-banner-advanced,
.page-hero-mini,
.accent-box,
.featured-area,
.area-card,
.submodule-card,
.registro-option-card,
.module-card,
.nav-card,
.module-placeholder {
  color: var(--text) !important;
  background:
    radial-gradient(circle at top right, rgba(56,189,248,0.16), transparent 34%),
    linear-gradient(145deg, rgba(255,255,255,0.99), rgba(240,249,255,0.96)) !important;
  border-color: rgba(2, 132, 199, 0.18) !important;
}
.hero-banner-advanced {
  box-shadow: 0 30px 84px rgba(2,132,199,0.15), inset 0 1px 0 rgba(255,255,255,0.98) !important;
}
.nav-card:hover,
.module-placeholder:hover,
.info-card:hover,
.module-card:hover,
.submodule-card:hover,
.area-card:hover,
.registro-option-card:hover {
  transform: translateY(-4px);
  border-color: rgba(2, 132, 199, 0.36) !important;
  box-shadow: 0 28px 72px rgba(2,132,199,0.20), 0 0 0 1px rgba(56,189,248,0.10) inset !important;
}
.area-icon {
  color: #075985 !important;
  background: linear-gradient(135deg, #dbeafe, #e0f2fe) !important;
  border-color: rgba(2,132,199,0.20) !important;
  box-shadow: 0 12px 28px rgba(2,132,199,0.10), inset 0 1px 0 rgba(255,255,255,0.96) !important;
}
.divider { background: linear-gradient(90deg, transparent, rgba(14,116,144,.24), transparent) !important; }

.btn {
  color: #ffffff !important;
  background: linear-gradient(135deg, #38bdf8 0%, #0284c7 58%, #0369a1 100%) !important;
  border: 1px solid rgba(2,132,199,0.28) !important;
  box-shadow: 0 16px 34px rgba(2,132,199,0.22), inset 0 1px 0 rgba(255,255,255,0.20) !important;
}
.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 48px rgba(2,132,199,0.28), inset 0 1px 0 rgba(255,255,255,0.24) !important;
}
.btn-secondary {
  color: #075985 !important;
  background: #ffffff !important;
  border: 1px solid rgba(2,132,199,0.22) !important;
  box-shadow: 0 10px 24px rgba(2,132,199,0.08), inset 0 1px 0 rgba(255,255,255,0.96) !important;
}
.btn-secondary:hover {
  background: #e0f2fe !important;
  border-color: rgba(2,132,199,0.36) !important;
}
.btn-danger,
.registro-card-delete,
.btn-delete-entrega {
  color: #ffffff !important;
  background: linear-gradient(135deg, #ef4444, #b91c1c) !important;
  border-color: rgba(185,28,28,0.32) !important;
  box-shadow: 0 14px 32px rgba(220,38,38,0.20) !important;
}
.btn-success {
  color: #ffffff !important;
  background: linear-gradient(135deg, #22c55e, #15803d) !important;
  border-color: rgba(21,128,61,0.34) !important;
  box-shadow: 0 14px 32px rgba(21,128,61,0.18) !important;
}

label { color: #334155 !important; font-weight: 800 !important; }
input,
select,
textarea,
.table-search,
.table-search-row input {
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid rgba(14, 116, 144, 0.20) !important;
  box-shadow: inset 0 1px 2px rgba(2,132,199,0.05), 0 8px 18px rgba(2,132,199,0.05) !important;
}
input::placeholder,
textarea::placeholder,
.table-search::placeholder,
.table-search-row input::placeholder { color: #94a3b8 !important; }
input:focus,
select:focus,
textarea:focus,
.table-search:focus,
.table-search-row input:focus {
  border-color: rgba(2,132,199,0.58) !important;
  box-shadow: 0 0 0 4px rgba(56,189,248,0.18), inset 0 1px 2px rgba(2,132,199,0.06) !important;
}
select option { background: #ffffff !important; color: #0f172a !important; }
input[type="date"]::-webkit-calendar-picker-indicator { filter: none !important; }

.form-feedback {
  border: 1px solid rgba(2,132,199,0.14) !important;
  font-weight: 700 !important;
}
.form-feedback.info {
  background: #dbeafe !important;
  color: #1e3a8a !important;
}
.form-feedback.success {
  background: #dcfce7 !important;
  color: #14532d !important;
  border-color: rgba(21,128,61,0.24) !important;
}
.form-feedback.error {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: rgba(185,28,28,0.24) !important;
}

.table-wrap,
.table-wrapper {
  background: #ffffff !important;
  border: 1px solid rgba(2, 132, 199, 0.14) !important;
  border-radius: 18px !important;
  overflow-x: auto !important;
  box-shadow: 0 14px 34px rgba(2,132,199,0.08), inset 0 1px 0 rgba(255,255,255,0.96) !important;
}
.data-table,
.table-wrapper table,
table {
  background: #ffffff !important;
  color: #0f172a !important;
}
.data-table thead th,
.table-wrapper table thead th,
table thead th,
.term-items-table thead th {
  background: linear-gradient(180deg, #e0f2fe, #dbeafe) !important;
  color: #0c4a6e !important;
  border-bottom: 1px solid rgba(2,132,199,0.18) !important;
}
.data-table tbody td,
.table-wrapper table tbody td,
table tbody td {
  color: #0f172a !important;
  border-bottom: 1px solid #e2e8f0 !important;
}
.data-table tbody tr:nth-child(even),
.table-wrapper table tbody tr:nth-child(even),
table tbody tr:nth-child(even) { background: #f8fafc !important; }
.data-table tbody tr:hover,
.table-wrapper table tbody tr:hover,
table tbody tr:hover { background: #eff6ff !important; }
.table-sort-btn { color: #0c4a6e !important; }

/* Estoque / Núcleo: cartões e informações de entrega mais fortes para leitura */
.stock-results-card,
.registro-cards-panel,
.recebimento-cards-panel,
.form-card-elevated,
.table-card-elevated {
  background: linear-gradient(180deg, #ffffff, #f8fcff) !important;
  border-color: rgba(2,132,199,0.16) !important;
}
.result-highlight,
#selectedNucleoLabel,
#registroNucleoAtivo,
.stock-modal-highlight {
  color: #0c4a6e !important;
  background: linear-gradient(135deg, #e0f2fe, #ffffff) !important;
  border: 1px solid rgba(2,132,199,0.24) !important;
  font-weight: 800 !important;
}
.registro-card {
  position: relative;
  color: #0f172a !important;
  background: linear-gradient(180deg, #ffffff 0%, #f8fcff 100%) !important;
  border: 1px solid rgba(2,132,199,0.18) !important;
  box-shadow: 0 16px 38px rgba(2,132,199,0.10), inset 0 1px 0 rgba(255,255,255,0.98) !important;
  overflow: hidden;
}
.registro-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  background: linear-gradient(180deg, #0284c7, #38bdf8);
  opacity: 1;
}
.entrega-card {
  border-color: rgba(21,128,61,0.30) !important;
}
.entrega-card::before {
  background: linear-gradient(180deg, #15803d, #22c55e) !important;
}
.transferencia-card {
  border-color: rgba(217,119,6,0.32) !important;
}
.transferencia-card::before {
  background: linear-gradient(180deg, #d97706, #facc15) !important;
}
.registro-card-head,
.registro-card-meta,
.registro-card-head-main,
.registro-items-summary {
  color: #0f172a !important;
}
.registro-card-meta span,
.registro-card-meta small,
.registro-card .muted-text {
  color: #334155 !important;
  font-weight: 650 !important;
}
.registro-card strong,
.registro-item-pill strong,
.stock-recipient-item strong {
  color: #0f172a !important;
}
.registro-item-pill {
  background: #f0f9ff !important;
  border-color: rgba(2,132,199,0.18) !important;
}
.recebimento-summary-bar,
.registro-summary-bar {
  background: linear-gradient(135deg, #e0f2fe, #ffffff) !important;
  border-color: rgba(2,132,199,0.24) !important;
}
.recebimento-summary-bar strong,
.registro-summary-bar strong { color: #075985 !important; }

.autocomplete-panel,
.admin-notification-panel {
  background: #ffffff !important;
  border: 1px solid rgba(2,132,199,0.18) !important;
  box-shadow: 0 26px 70px rgba(15,23,42,0.16) !important;
}
.autocomplete-option {
  background: #f8fafc !important;
  color: #0f172a !important;
  border-color: rgba(2,132,199,0.14) !important;
}
.autocomplete-option:hover {
  background: #e0f2fe !important;
  border-color: rgba(2,132,199,0.30) !important;
}
.admin-notification-bell {
  background: #ffffff !important;
  color: #075985 !important;
  border-color: rgba(2,132,199,0.18) !important;
  box-shadow: 0 12px 28px rgba(2,132,199,0.10) !important;
}
.admin-notification-badge {
  background: #dc2626 !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}
.admin-notification-panel-head { border-bottom: 1px solid rgba(2,132,199,0.12) !important; }
.notification-item.is-read { background: #f8fafc !important; }

.term-modal-backdrop,
.generic-modal-backdrop {
  background: rgba(15, 23, 42, 0.42) !important;
  backdrop-filter: blur(8px) !important;
}
.signature-canvas-shell,
.term-sheet,
.term-info-grid div,
.term-footer-grid div,
.term-signature-placeholder,
.term-signature-preview img {
  background: #ffffff !important;
  color: #111827 !important;
  border-color: #e2e8f0 !important;
}
.term-sheet strong,
.term-sheet h1,
.term-sheet h2,
.term-sheet h3,
.term-sheet-head strong { color: #0369a1 !important; text-shadow: none !important; }
.term-sheet span,
.term-info-grid span,
.term-footer-grid span,
.term-signature-preview span { color: #475569 !important; }
.term-items-table th,
.term-items-table td { color: #111827 !important; border-bottom: 1px solid #e5e7eb !important; }
.term-sheet .term-items-table thead th { background: #f8fafc !important; color: #334155 !important; }
.term-sheet .term-items-table tbody td { color: #111827 !important; }

/* Status: cores fortes e legíveis no fundo branco */
.status-chip {
  border-width: 1px !important;
  font-weight: 900 !important;
  letter-spacing: 0.03em !important;
  box-shadow: none !important;
}
.status-ativo,
.status-success,
.status-green,
.chip-success,
.badge-success,
.success-chip {
  background: #16a34a !important;
  color: #ffffff !important;
  border-color: #15803d !important;
}
.status-inativo,
.status-gray,
.status-neutral,
.chip-gray,
.badge-gray,
.neutral-chip {
  background: #64748b !important;
  color: #ffffff !important;
  border-color: #475569 !important;
}
.status-afastado,
.status-warning,
.status-yellow,
.chip-warning,
.badge-warning,
.warning-chip {
  background: #f59e0b !important;
  color: #111827 !important;
  border-color: #d97706 !important;
}
.status-danger,
.status-red,
.status-error,
.chip-danger,
.badge-danger,
.error-chip {
  background: #dc2626 !important;
  color: #ffffff !important;
  border-color: #b91c1c !important;
}

.center-success-toast {
  color: #ffffff !important;
  background: linear-gradient(135deg, #16a34a, #15803d) !important;
  border: 1px solid rgba(21,128,61,0.30) !important;
  box-shadow: 0 24px 70px rgba(21,128,61,0.30) !important;
}
.operator-mobile-shell { background: transparent !important; }

@media (max-width: 760px) {
  .hero-banner-advanced { padding: 24px; }
  .btn { min-height: 46px; }
  .topbar { position: sticky; }
}


/* ======================================================================
   R-CorpS Clean Light Theme - branco padrão + azul marinho
   Ajuste final: sem luz azul solta, contraste alto e leitura reforçada.
   ====================================================================== */
:root {
  --bg: #ffffff;
  --bg-2: #f8fafc;
  --panel: #ffffff;
  --panel-strong: #ffffff;
  --panel-soft: #f8fafc;
  --text: #0f172a;
  --muted: #475569;
  --primary: #0f3a66;
  --primary-2: #155e9f;
  --secondary: #dbeafe;
  --cyan: #0e7490;
  --danger: #dc2626;
  --success: #15803d;
  --warning: #ca8a04;
  --border: #d7e3f2;
  --border-strong: #0f3a66;
  --shadow: 0 16px 42px rgba(15, 58, 102, 0.10);
  --radius-xl: 24px;
  --radius-lg: 18px;
  --radius-md: 14px;
}

html {
  background: #ffffff !important;
}

body {
  color: #0f172a !important;
  background: #ffffff !important;
  overflow-x: hidden;
}

body::before,
body::after,
.hero-panel::before,
.hero-panel::after,
.card::before,
.card::after,
.term-modal-dialog::before,
.generic-modal-dialog::before,
.topbar::before {
  display: none !important;
  content: none !important;
  background: none !important;
}

::selection {
  background: rgba(15, 58, 102, 0.22) !important;
  color: #0f172a !important;
}

::-webkit-scrollbar-track { background: #f1f5f9 !important; }
::-webkit-scrollbar-thumb {
  background: #0f3a66 !important;
  border: 2px solid #f1f5f9 !important;
  border-radius: 999px !important;
}

h1, h2, h3, h4, strong {
  color: #0f172a !important;
  text-shadow: none !important;
}

p, li, span, small, label, td, th {
  color: inherit;
}

.lead,
.muted-text,
.field-helper,
.table-empty,
.autocomplete-empty,
.upload-box span,
.metric-box span,
.mini-stat-box span,
.recebimento-summary-bar span,
.registro-summary-bar span,
.stock-recipient-item span,
.employee-detail-pill strong,
.notification-item p,
.notification-empty-state,
.admin-notification-count {
  color: #475569 !important;
}

.container {
  position: relative;
}

.hero-panel,
.card,
.term-modal-dialog,
.generic-modal-dialog,
.operator-mobile-card {
  color: #0f172a !important;
  background: #ffffff !important;
  border: 1px solid #d7e3f2 !important;
  box-shadow: 0 16px 42px rgba(15, 58, 102, 0.10) !important;
  backdrop-filter: none !important;
}

.card > *,
.hero-panel > * {
  position: relative;
  z-index: 1;
}

.topbar {
  background: #ffffff !important;
  border-bottom: 1px solid #d7e3f2 !important;
  box-shadow: 0 8px 28px rgba(15, 58, 102, 0.08) !important;
  backdrop-filter: none !important;
}

.page-header,
.page-header-advanced,
.topbar-inner {
  color: #0f172a !important;
}

.hero-banner-advanced,
.page-hero-mini,
.accent-box,
.featured-area,
.area-card,
.submodule-card,
.registro-option-card,
.module-card,
.nav-card,
.module-placeholder,
.form-card-elevated,
.table-card-elevated,
.stock-results-card,
.registro-cards-panel,
.recebimento-cards-panel {
  color: #0f172a !important;
  background: #ffffff !important;
  border: 1px solid #d7e3f2 !important;
  box-shadow: 0 14px 36px rgba(15, 58, 102, 0.08) !important;
}

.hero-banner-advanced,
.page-hero-mini,
.featured-area {
  border-top: 5px solid #0f3a66 !important;
}

.nav-card:hover,
.module-placeholder:hover,
.info-card:hover,
.module-card:hover,
.submodule-card:hover,
.area-card:hover,
.registro-option-card:hover,
.upload-box:hover {
  transform: translateY(-3px);
  border-color: #155e9f !important;
  box-shadow: 0 20px 48px rgba(15, 58, 102, 0.16) !important;
}

.badge,
.soft-tag,
.notification-type-tag {
  color: #0f3a66 !important;
  background: #eff6ff !important;
  border: 1px solid #bfdbfe !important;
  box-shadow: none !important;
}

.user-badge,
.metric-box,
.mini-stat-box,
.result-highlight,
.employee-detail-pill,
.term-modal-preview-wrap,
.term-signature-panel,
.stock-recipient-item,
.notification-item,
.notification-empty-state,
.registro-summary-bar,
.recebimento-summary-bar,
.registro-item-row,
.upload-box,
.obra-item-card,
.empty-state-card,
.signed-term-row,
.registro-item-pill,
.feature-pills li,
.autocomplete-option {
  color: #0f172a !important;
  background: #f8fafc !important;
  border: 1px solid #d7e3f2 !important;
  box-shadow: none !important;
}

.metric-box strong,
.mini-stat-box strong,
.result-highlight strong,
.employee-detail-pill strong,
.registro-summary-bar strong,
.recebimento-summary-bar strong,
.stock-recipient-item strong,
.registro-item-pill strong {
  color: #0f3a66 !important;
}

.area-icon {
  color: #ffffff !important;
  background: #0f3a66 !important;
  border: 1px solid #0f3a66 !important;
  box-shadow: none !important;
}

.divider {
  background: #d7e3f2 !important;
}

.btn {
  color: #ffffff !important;
  background: #0f3a66 !important;
  border: 1px solid #0f3a66 !important;
  box-shadow: 0 10px 24px rgba(15, 58, 102, 0.18) !important;
}

.btn:hover {
  transform: translateY(-2px);
  background: #155e9f !important;
  border-color: #155e9f !important;
  box-shadow: 0 14px 32px rgba(15, 58, 102, 0.22) !important;
}

.btn:disabled {
  opacity: .72 !important;
  cursor: wait !important;
  transform: none !important;
}

.btn-secondary {
  color: #0f3a66 !important;
  background: #ffffff !important;
  border: 1px solid #9db6d4 !important;
  box-shadow: none !important;
}

.btn-secondary:hover {
  color: #ffffff !important;
  background: #0f3a66 !important;
  border-color: #0f3a66 !important;
}

.btn-danger,
.registro-card-delete,
.btn-delete-entrega {
  color: #ffffff !important;
  background: #dc2626 !important;
  border-color: #b91c1c !important;
  box-shadow: 0 10px 24px rgba(220, 38, 38, 0.18) !important;
}

.btn-danger:hover,
.registro-card-delete:hover,
.btn-delete-entrega:hover {
  background: #b91c1c !important;
}

.btn-success {
  color: #ffffff !important;
  background: #15803d !important;
  border-color: #166534 !important;
  box-shadow: 0 10px 24px rgba(21, 128, 61, 0.18) !important;
}

label {
  color: #24364f !important;
  font-weight: 800 !important;
}

input,
select,
textarea,
.table-search,
.table-search-row input {
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid #c8d8eb !important;
  box-shadow: none !important;
}

input::placeholder,
textarea::placeholder,
.table-search::placeholder,
.table-search-row input::placeholder {
  color: #64748b !important;
}

input:focus,
select:focus,
textarea:focus,
.table-search:focus,
.table-search-row input:focus {
  border-color: #155e9f !important;
  box-shadow: 0 0 0 4px rgba(21, 94, 159, 0.14) !important;
  outline: none !important;
}

select option {
  background: #ffffff !important;
  color: #0f172a !important;
}

input[type="date"]::-webkit-calendar-picker-indicator {
  filter: none !important;
}

.form-feedback {
  border: 1px solid #d7e3f2 !important;
  font-weight: 800 !important;
}
.form-feedback.info {
  background: #eff6ff !important;
  color: #0f3a66 !important;
}
.form-feedback.success {
  background: #dcfce7 !important;
  color: #14532d !important;
  border-color: #86efac !important;
}
.form-feedback.error {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fca5a5 !important;
}

.table-wrap,
.table-wrapper,
.signature-canvas-shell {
  background: #ffffff !important;
  border: 1px solid #d7e3f2 !important;
  border-radius: 18px !important;
  overflow-x: auto !important;
  box-shadow: 0 10px 28px rgba(15, 58, 102, 0.08) !important;
}

.data-table,
.table-wrapper table,
table {
  background: #ffffff !important;
  color: #0f172a !important;
}

.data-table thead th,
.table-wrapper table thead th,
table thead th,
.term-items-table thead th {
  background: #0f3a66 !important;
  color: #ffffff !important;
  border-bottom: 1px solid #0f3a66 !important;
}

.data-table tbody td,
.table-wrapper table tbody td,
table tbody td,
.term-items-table tbody td {
  color: #0f172a !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

.data-table tbody tr:nth-child(even),
.table-wrapper table tbody tr:nth-child(even),
table tbody tr:nth-child(even) {
  background: #f8fafc !important;
}

.data-table tbody tr:hover,
.table-wrapper table tbody tr:hover,
table tbody tr:hover {
  background: #eff6ff !important;
}

.table-sort-btn {
  color: #ffffff !important;
}

/* Estoque, Núcleo, Entregas e Movimentações: informação principal bem visível */
.stock-filter-layout,
.registro-cards-layout,
.recebimento-layout,
.employee-layout,
.company-layout-grid,
.users-layout-grid {
  align-items: start;
}

.stock-results-card,
.registro-cards-panel,
.recebimento-cards-panel,
.form-card-elevated,
.table-card-elevated {
  background: #ffffff !important;
  border-color: #c8d8eb !important;
}

.result-highlight,
#selectedNucleoLabel,
#registroNucleoAtivo,
.stock-modal-highlight {
  color: #0f3a66 !important;
  background: #eff6ff !important;
  border: 1px solid #9db6d4 !important;
  font-weight: 900 !important;
}

.registro-card {
  position: relative;
  color: #0f172a !important;
  background: #ffffff !important;
  border: 1px solid #c8d8eb !important;
  box-shadow: 0 12px 30px rgba(15, 58, 102, 0.10) !important;
  overflow: hidden;
}

.registro-card::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 8px !important;
  background: #0f3a66 !important;
  opacity: 1 !important;
}

.registro-card > * {
  position: relative;
  z-index: 1;
}

.entrega-card {
  border-color: #86efac !important;
}
.entrega-card::before {
  background: #15803d !important;
}

.transferencia-card {
  border-color: #facc15 !important;
}
.transferencia-card::before {
  background: #ca8a04 !important;
}

.registro-card-head,
.registro-card-meta,
.registro-card-head-main,
.registro-items-summary {
  color: #0f172a !important;
}

.registro-card-meta span,
.registro-card-meta small,
.registro-card .muted-text {
  color: #334155 !important;
  font-weight: 700 !important;
}

.registro-card strong,
.registro-item-pill strong,
.stock-recipient-item strong {
  color: #0f172a !important;
}

.registro-item-pill,
.stock-recipient-item,
.obra-item-card,
.empty-state-card,
.registro-item-row {
  background: #f8fafc !important;
  border-color: #d7e3f2 !important;
}

.registro-items-summary,
.recebimento-summary-bar,
.registro-summary-bar {
  background: #eff6ff !important;
  border: 1px solid #bfdbfe !important;
}
.recebimento-summary-bar strong,
.registro-summary-bar strong {
  color: #0f3a66 !important;
}

.autocomplete-panel,
.admin-notification-panel {
  background: #ffffff !important;
  border: 1px solid #c8d8eb !important;
  box-shadow: 0 22px 54px rgba(15, 58, 102, 0.16) !important;
}

.autocomplete-option:hover,
.obra-item-card:hover,
.stock-recipient-item:hover {
  background: #eff6ff !important;
  border-color: #9db6d4 !important;
}

.admin-notification-bell {
  background: #ffffff !important;
  color: #0f3a66 !important;
  border-color: #c8d8eb !important;
  box-shadow: none !important;
}
.admin-notification-badge {
  background: #dc2626 !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}
.admin-notification-panel-head {
  border-bottom: 1px solid #d7e3f2 !important;
}
.notification-item.is-read {
  background: #f8fafc !important;
}

.term-modal-backdrop,
.generic-modal-backdrop {
  background: rgba(15, 23, 42, 0.42) !important;
  backdrop-filter: blur(8px) !important;
}

.term-sheet,
.term-info-grid div,
.term-footer-grid div,
.term-signature-placeholder,
.term-signature-preview img {
  background: #ffffff !important;
  color: #111827 !important;
  border-color: #e2e8f0 !important;
}
.term-sheet strong,
.term-sheet h1,
.term-sheet h2,
.term-sheet h3,
.term-sheet-head strong {
  color: #0f3a66 !important;
  text-shadow: none !important;
}
.term-sheet span,
.term-info-grid span,
.term-footer-grid span,
.term-signature-preview span {
  color: #475569 !important;
}
.term-items-table th,
.term-items-table td {
  color: #111827 !important;
  border-bottom: 1px solid #e5e7eb !important;
}
.term-sheet .term-items-table thead th {
  background: #0f3a66 !important;
  color: #ffffff !important;
}
.term-sheet .term-items-table tbody td {
  color: #111827 !important;
}

/* Status e chips coloridos: cores fortes no fundo branco */
.status-chip,
[class*="status-"],
[class*="chip-"],
[class*="badge-"] {
  border-width: 1px !important;
  font-weight: 900 !important;
  letter-spacing: 0.03em !important;
}

.status-ativo,
.status-success,
.status-green,
.chip-success,
.badge-success,
.success-chip {
  background: #15803d !important;
  color: #ffffff !important;
  border-color: #166534 !important;
}

.status-inativo,
.status-gray,
.status-neutral,
.chip-gray,
.badge-gray,
.neutral-chip {
  background: #64748b !important;
  color: #ffffff !important;
  border-color: #475569 !important;
}

.status-afastado,
.status-warning,
.status-yellow,
.chip-warning,
.badge-warning,
.warning-chip {
  background: #f59e0b !important;
  color: #111827 !important;
  border-color: #b45309 !important;
}

.status-danger,
.status-red,
.status-error,
.chip-danger,
.badge-danger,
.error-chip {
  background: #dc2626 !important;
  color: #ffffff !important;
  border-color: #b91c1c !important;
}

.center-success-toast {
  color: #ffffff !important;
  background: #15803d !important;
  border: 1px solid #166534 !important;
  box-shadow: 0 22px 54px rgba(21, 128, 61, 0.24) !important;
}

.operator-mobile-shell {
  background: #ffffff !important;
}

@media (max-width: 760px) {
  .hero-banner-advanced { padding: 24px; }
  .btn { min-height: 46px; }
  .topbar { position: sticky; }
}


/* Controle de acesso por usuário */
.access-control-panel {
  border: 1px solid var(--border, #d6e1f2);
  background: #f8fbff;
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 12px 28px rgba(15, 35, 70, 0.08);
}

.access-control-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.access-control-heading h3 {
  margin: 6px 0 0;
  color: #0f2747;
}

.btn-small {
  padding: 8px 12px;
  font-size: 0.86rem;
  white-space: nowrap;
}

.access-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.access-group {
  border: 1px solid #c5d7ee;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px;
  min-width: 0;
}

.access-group legend {
  padding: 0 8px;
  color: #0f2747;
  font-weight: 800;
}

.access-group-options {
  display: grid;
  gap: 8px;
}

.access-check-option {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #172033;
  font-weight: 700;
  line-height: 1.25;
  padding: 8px 10px;
  border-radius: 12px;
  background: #f3f7fd;
  border: 1px solid transparent;
  cursor: pointer;
}

.access-check-option:hover {
  border-color: #7aa9df;
  background: #eaf3ff;
}

.access-check-option input {
  width: 18px;
  height: 18px;
  accent-color: #0f3d75;
  flex: 0 0 auto;
}

.access-summary-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 360px;
}

.access-summary-list span,
.access-summary-list strong {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #e9f2ff;
  color: #0f3d75;
  border: 1px solid #b9d3f2;
  padding: 4px 8px;
  font-size: 0.78rem;
  font-weight: 800;
}

.access-summary-empty {
  color: #b42318;
  font-weight: 800;
}

.access-empty-state {
  grid-column: 1 / -1;
  text-align: center;
  border: 1px dashed #8aa8c8;
  background: #f8fbff;
}

@media (max-width: 720px) {
  .access-control-heading {
    flex-direction: column;
  }

  .access-check-grid {
    grid-template-columns: 1fr;
  }
}


/* RCORPS RESPONSIVO GLOBAL - SEM ENTREGA MOBILE */
html {
  width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  width: 100%;
  overflow-x: hidden !important;
  background: #f8fafc !important;
}

body::before,
body::after,
.hero-panel::before,
.card::before {
  display: none !important;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
}

.container,
.page-shell,
.dashboard-shell {
  max-width: 1240px;
}

.card,
.hero-panel,
.hero-banner,
.hero-banner-advanced,
.page-hero-mini,
.area-card,
.submodule-card,
.form-card-elevated,
.table-card-elevated {
  max-width: 100%;
}

button,
.btn,
input,
select,
textarea {
  font-size: 16px !important;
  touch-action: manipulation;
}

.btn,
button {
  min-height: 44px;
}

.table-wrap,
.table-wrapper {
  -webkit-overflow-scrolling: touch;
}

.table-wrap::after,
.table-wrapper::after {
  content: "";
  display: block;
  height: 1px;
}

.submodule-grid .submodule-card:has(a[href="operador-entrega.html"]),
.dashboard-main-grid .area-card:has(a[href*="operador-entrega.html"]),
a[href="operador-entrega.html"] {
  display: none !important;
}

@supports not selector(:has(*)) {
  .hide-entrega-mobile,
  a[href="operador-entrega.html"] {
    display: none !important;
  }
}

@supports (padding: max(0px)) {
  body {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }

  .topbar {
    padding-top: env(safe-area-inset-top);
  }
}

@media (max-width: 1180px) {
  .container {
    width: min(100% - 28px, 1120px) !important;
  }

  .dashboard-main-grid,
  .highlight-card,
  .company-hero,
  .employee-layout,
  .company-layout-grid,
  .users-layout-grid,
  .stock-filter-layout,
  .registro-cards-layout,
  .recebimento-layout {
    grid-template-columns: 1fr !important;
  }

  .hero-banner-advanced {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 900px) {
  .topbar-inner,
  .page-header,
  .page-header-advanced,
  .section-heading,
  .section-heading-table,
  .registro-card-head,
  .registro-card-meta,
  .registro-card-head-actions,
  .obra-item-top,
  .access-control-heading {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .topbar-actions,
  .hero-actions,
  .module-actions,
  .table-tools,
  .row-inline-actions,
  .registro-toolbar-actions,
  .registro-card-actions-bar,
  .term-actions-stack {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .btn,
  .btn-block,
  .table-search,
  .table-tools input,
  .topbar-actions .btn,
  .topbar-actions .user-badge {
    width: 100% !important;
  }

  .hero-metrics,
  .hero-mini-stats,
  .recebimento-hero-stats,
  .form-grid-2,
  .form-grid-3,
  .form-grid-4,
  .form-grid-5,
  .recebimento-grid-top,
  .recebimento-item-grid,
  .recebimento-summary-bar,
  .registro-summary-bar,
  .registro-toolbar-grid,
  .registro-option-grid,
  .obra-list-grid,
  .access-check-grid {
    grid-template-columns: 1fr !important;
  }

  .registro-summary-bar {
    display: grid !important;
  }

  .term-modal-dialog {
    width: min(100% - 20px, 720px) !important;
    max-height: calc(100dvh - 20px) !important;
    overflow-y: auto !important;
  }

  .term-modal-grid,
  .term-modal-grid-signature-only {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  :root {
    --radius-xl: 20px;
    --radius-lg: 18px;
    --radius-md: 14px;
  }

  .container {
    width: calc(100% - 18px) !important;
  }

  .dashboard-layout,
  .page-shell,
  .dashboard-shell {
    padding: 16px 0 28px !important;
  }

  .topbar-inner {
    padding: 12px 0 !important;
  }

  h1 {
    font-size: clamp(1.55rem, 9vw, 2.1rem) !important;
    line-height: 1.08 !important;
  }

  h2 {
    font-size: clamp(1.15rem, 6vw, 1.45rem) !important;
    line-height: 1.15 !important;
  }

  h3 {
    font-size: 1rem !important;
  }

  .card,
  .hero-panel,
  .hero-banner-advanced,
  .page-hero-mini,
  .area-card,
  .submodule-card,
  .form-card-elevated,
  .table-card-elevated,
  .operator-mobile-card {
    padding: 16px !important;
    border-radius: 18px !important;
  }

  .area-card,
  .submodule-card,
  .module-card {
    min-height: auto !important;
  }

  .badge,
  .soft-tag,
  .feature-pills li,
  .access-summary-list span,
  .access-summary-list strong {
    white-space: normal !important;
    text-align: center !important;
  }

  .feature-pills {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .data-table {
    min-width: 720px !important;
  }

  .data-table th,
  .data-table td,
  table th,
  table td {
    padding: 11px 10px !important;
    font-size: 0.88rem !important;
  }

  .registro-card,
  .registro-item-row,
  .registro-item-pill,
  .stock-recipient-item,
  .obra-item-card,
  .empty-state-card {
    padding: 14px !important;
    border-radius: 16px !important;
  }

  .signature-canvas-shell {
    min-height: 180px !important;
  }

  #termSignatureCanvas,
  .signature-canvas-shell canvas {
    width: 100% !important;
    min-height: 180px !important;
  }

  .admin-notification-panel,
  .autocomplete-panel {
    left: 0 !important;
    right: 0 !important;
    max-width: 100% !important;
  }

  .user-badge {
    white-space: normal !important;
    text-align: center !important;
    justify-content: center !important;
  }
}

@media (max-width: 420px) {
  .container {
    width: calc(100% - 12px) !important;
  }

  .card,
  .hero-panel,
  .hero-banner-advanced,
  .page-hero-mini,
  .area-card,
  .submodule-card,
  .form-card-elevated,
  .table-card-elevated {
    padding: 14px !important;
  }

  .btn,
  button,
  input,
  select,
  textarea {
    border-radius: 12px !important;
  }

  .data-table {
    min-width: 660px !important;
  }
}

/* Área de Compras */
.compras-module input,
.compras-module select,
.compras-module textarea,
.compras-module .table-search {
  color: var(--text);
}

.compras-module textarea {
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  color: var(--text);
  outline: none;
  resize: vertical;
  min-height: 96px;
  font-family: inherit;
}

.compras-module textarea:focus {
  border-color: rgba(14, 165, 233, .45);
}

.compras-page-shell {
  gap: 24px;
}

.compras-hero .hero-mini-stats,
.compras-stats-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compras-process-grid,
.compras-actions-grid,
.compras-tables-grid {
  display: grid;
  gap: 20px;
}

.compras-process-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.compras-actions-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
}

.compras-tables-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compras-main-layout {
  display: grid;
  grid-template-columns: minmax(360px, 1.35fr) minmax(320px, .85fr);
  gap: 20px;
  align-items: start;
}

.compras-process-card {
  min-height: 190px;
  display: grid;
  gap: 10px;
  align-content: start;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.96));
}

.compras-form-card,
.compras-action-card {
  display: grid;
  gap: 10px;
}

.compras-items-header,
.compras-item-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.compras-item-footer {
  padding-top: 4px;
}

.compras-item-grid {
  grid-template-columns: .8fr 1.2fr 1.35fr .75fr .95fr;
}

.compras-summary-bar {
  margin-top: 2px;
}

.compras-table {
  min-width: 980px;
}

.compact-table {
  min-width: 860px;
}

.compras-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 800;
  background: rgba(14, 165, 233, .10);
  color: #075985;
  border: 1px solid rgba(14, 165, 233, .18);
}

.compras-status-pill.status-alta,
.compras-status-pill.status-critica,
.compras-status-pill.status-recusada,
.compras-status-pill.status-cancelado,
.compras-status-pill.status-divergente {
  background: rgba(239, 68, 68, .10);
  color: #991b1b;
  border-color: rgba(239, 68, 68, .18);
}

.compras-status-pill.status-aprovada,
.compras-status-pill.status-entregue,
.compras-status-pill.status-ativo,
.compras-status-pill.status-recebido {
  background: rgba(16, 185, 129, .10);
  color: #065f46;
  border-color: rgba(16, 185, 129, .18);
}

.compras-checkline {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(147, 197, 253, .28);
  background: rgba(239, 246, 255, .72);
  color: var(--text);
}

.compras-checkline input {
  width: auto;
  margin-top: 3px;
}

@media (max-width: 1180px) {
  .compras-process-grid,
  .compras-actions-grid,
  .compras-tables-grid,
  .compras-main-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .compras-hero .hero-mini-stats,
  .compras-stats-grid,
  .compras-item-grid {
    grid-template-columns: 1fr;
  }

  .compras-items-header,
  .compras-item-footer {
    align-items: stretch;
  }
}
.compras-status-pill.status-aprovada,
.compras-status-pill.status-cotacao-aprovada,
.compras-status-pill.status-pedido-gerado,
.compras-status-pill.status-entregue,
.compras-status-pill.status-recebido-integral,
.compras-status-pill.status-ativo {
  background: rgba(16, 185, 129, .10);
  color: #065f46;
  border-color: rgba(16, 185, 129, .18);
}

.compras-status-pill.status-pendente,
.compras-status-pill.status-em-cotacao,
.compras-status-pill.status-em-analise,
.compras-status-pill.status-emitido,
.compras-status-pill.status-enviado-ao-fornecedor,
.compras-status-pill.status-aguardando-entrega,
.compras-status-pill.status-recebido-parcial,
.compras-status-pill.status-recebimento-pendente {
  background: rgba(234, 179, 8, .12);
  color: #854d0e;
  border-color: rgba(234, 179, 8, .22);
}

.dashboard-main-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

/* Ajustes da Área de Compras em cards */
.compras-card-nav .submodule-card {
  min-height: 240px;
}

.compras-section-card {
  scroll-margin-top: 22px;
}

.code-preview-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(14, 165, 233, .10);
  color: #075985;
  border: 1px solid rgba(14, 165, 233, .18);
  font-size: .95rem;
  letter-spacing: .04em;
}

.no-margin {
  margin: 0;
}

.quote-options-grid,
.quote-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.quote-option-card,
.quote-detail-card {
  border: 1px solid rgba(147, 197, 253, .35);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.9));
  padding: 16px;
  display: grid;
  gap: 12px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
}

.quote-option-card h3,
.quote-detail-card h3 {
  margin: 0;
}

.quote-detail-card-selected {
  border-color: rgba(16, 185, 129, .42);
  background: linear-gradient(180deg, rgba(236, 253, 245, .98), rgba(255,255,255,.98));
}

.quote-detail-card-empty {
  opacity: .75;
}

.quote-detail-titleline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.quote-detail-list {
  display: grid;
  gap: 10px;
  margin: 0;
}

.quote-detail-list div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px dashed rgba(148, 163, 184, .45);
  padding-bottom: 8px;
}

.quote-detail-list dt {
  font-weight: 800;
  color: var(--muted);
}

.quote-detail-list dd {
  margin: 0;
  color: var(--text);
  font-weight: 800;
  text-align: right;
}

.compras-status-pill.status-aprovado,
.compras-status-pill.status-aprovada,
.compras-status-pill.status-entregue,
.compras-status-pill.status-ativo {
  background: rgba(16, 185, 129, .10);
  color: #065f46;
  border-color: rgba(16, 185, 129, .18);
}

.compras-status-pill.status-aguardando-aprovacao,
.compras-status-pill.status-aguardando-entrega,
.compras-status-pill.status-em-analise,
.compras-status-pill.status-pendente {
  background: rgba(234, 179, 8, .12);
  color: #854d0e;
  border-color: rgba(234, 179, 8, .22);
}

.compras-status-pill.status-recusada,
.compras-status-pill.status-recusado,
.compras-status-pill.status-cancelado,
.compras-status-pill.status-inativo {
  background: rgba(239, 68, 68, .10);
  color: #991b1b;
  border-color: rgba(239, 68, 68, .18);
}

@media (max-width: 1180px) {
  .quote-options-grid,
  .quote-detail-grid {
    grid-template-columns: 1fr;
  }
}

.compras-module .compras-item-grid {
  grid-template-columns: 1.4fr .75fr .95fr .55fr .95fr;
}

@media (max-width: 760px) {
  .compras-module .compras-item-grid {
    grid-template-columns: 1fr;
  }
}


/* Compras: página inicial deve mostrar somente os cards. As funções abrem sob demanda. */
.compras-module .compras-section-card {
  display: none;
}

.compras-module .compras-section-card.is-active {
  display: block;
}

.compras-section-backbar {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 14px;
}

/* Compras em páginas individuais */
.compras-module.compras-subpage .compras-section-card {
  display: block;
}

.compras-sc-item-grid {
  grid-template-columns: 1.6fr .8fr .55fr !important;
}

.quote-items-price-box {
  display: grid;
  gap: 10px;
}

.quote-item-price-row {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) 150px 110px;
  gap: 10px;
  align-items: end;
  padding: 10px;
  border: 1px solid rgba(147, 197, 253, .28);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
}

.quote-item-price-row strong,
.quote-item-price-row span {
  display: block;
}

.quote-item-price-row [data-role="quoteItemSubtotal"] {
  text-align: right;
  color: #075985;
}

.quote-detail-items {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 6px;
  color: var(--text);
}

@media (max-width: 760px) {
  .compras-sc-item-grid,
  .quote-item-price-row {
    grid-template-columns: 1fr !important;
  }

  .quote-item-price-row [data-role="quoteItemSubtotal"] {
    text-align: left;
  }
}

/* Compras avançado: desmembramento, comparativo, alçada e recebimento parcial */
.quote-item-price-row-advanced {
  grid-template-columns: minmax(210px, 1.3fr) 92px 120px 150px 110px;
}

.inline-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  font-weight: 700;
  color: var(--text);
}

.inline-check input {
  width: auto;
  min-width: auto;
}

.compras-comparativo-box {
  grid-column: 1 / -1;
  padding: 14px;
  border: 1px solid rgba(37, 99, 235, .16);
  border-radius: 18px;
  background: rgba(239, 246, 255, .85);
  margin-bottom: 14px;
}

.compras-comparativo-box h3 {
  margin: 0 0 10px;
  color: #1e3a8a;
}

.quote-item-list {
  display: grid;
  gap: 8px;
  margin: 10px 0 14px;
  padding-left: 18px;
}

.quote-item-approval-line {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 8px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 12px;
  background: rgba(255,255,255,.72);
}

.quote-item-approval-line strong,
.quote-item-approval-line span {
  display: block;
}

.pedido-itens-resumo {
  display: grid;
  gap: 10px;
}

.status-parcialmente-aprovada,
.status-cotacao-parcial,
.status-pedido-parcial-gerado,
.status-parcialmente-entregue {
  background: #fff7ed !important;
  color: #9a3412 !important;
  border-color: #fed7aa !important;
}

.status-aguardando-aprovacao-do-gestor,
.status-aguardando-aprovacao-da-diretoria {
  background: #fef2f2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
}

@media (max-width: 760px) {
  .quote-item-price-row-advanced,
  .quote-item-approval-line {
    grid-template-columns: 1fr !important;
  }
}

/* Correções Compras: cards de cotação sem sobreposição e tabelas com scroll */
.compras-module .table-shell {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  border-radius: 18px;
  border: 1px solid rgba(147, 197, 253, 0.28);
  background: #ffffff;
}

.compras-module .table-shell .data-table,
.compras-module .table-shell .compras-table {
  width: max-content;
  min-width: 1120px;
}

.compras-module .table-shell th,
.compras-module .table-shell td {
  white-space: nowrap;
  vertical-align: top;
}

.compras-module .table-shell td .muted-text,
.compras-module .table-shell td .table-actions {
  white-space: normal;
}

.compras-subpage .quote-options-grid {
  grid-template-columns: 1fr;
}

.compras-subpage .quote-option-card,
.compras-subpage .quote-detail-card {
  min-width: 0;
  overflow: hidden;
}

.compras-subpage .quote-item-price-row-advanced {
  grid-template-columns: minmax(220px, 1.4fr) 95px minmax(120px, .55fr) minmax(150px, .75fr) 120px;
}

.quote-item-protected {
  background: rgba(236, 253, 245, .78) !important;
  border-color: rgba(16, 185, 129, .32) !important;
}

.status-cotado,
.status-cotado-parcialmente,
.status-em-cotacao,
.status-em-analise {
  background: rgba(14, 165, 233, .10) !important;
  color: #075985 !important;
  border-color: rgba(14, 165, 233, .20) !important;
}

.status-aprovado,
.status-aprovado-parcialmente {
  background: rgba(16, 185, 129, .10) !important;
  color: #065f46 !important;
  border-color: rgba(16, 185, 129, .20) !important;
}

@media (max-width: 920px) {
  .compras-subpage .quote-item-price-row-advanced {
    grid-template-columns: 1fr !important;
  }

  .compras-module .table-shell .data-table,
  .compras-module .table-shell .compras-table {
    min-width: 980px;
  }
}

/* Compras: filtros e PDFs das listas */
.compras-filter-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr)) auto;
  gap: 10px;
  align-items: center;
  margin: 14px 0 16px;
}

.compras-filter-bar .btn {
  white-space: nowrap;
}

.compras-module .table-search {
  min-height: 42px;
}

@media (max-width: 1180px) {
  .compras-filter-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .compras-filter-bar {
    grid-template-columns: 1fr;
  }
}

/* Compras: filtros avançados e tabelas gerenciais */
.compras-filter-bar-wide {
  grid-template-columns: repeat(4, minmax(160px, 1fr));
}

.compras-filter-bar-wide .btn {
  min-height: 42px;
}

.compras-module .table-shell .compras-table-xl {
  min-width: 1680px;
}

.compras-module .table-search[type="date"] {
  color: #0f172a;
}

@media (max-width: 1180px) {
  .compras-filter-bar-wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .compras-filter-bar-wide {
    grid-template-columns: 1fr;
  }
}


/* Ajuste global: cards com tamanho padronizado mesmo quando algumas permissões ocultam módulos */
.dashboard-main-grid,
.submodule-grid,
.module-grid,
.grid {
  align-items: stretch;
}

.submodule-grid,
.module-grid,
.grid {
  grid-template-columns: repeat(auto-fill, minmax(260px, 300px));
  justify-content: center;
}

.submodule-card,
.module-card,
.nav-card,
.registro-option-card {
  justify-self: center;
  width: 100%;
  min-height: 260px;
  height: 100%;
  display: grid;
  grid-template-rows: 1fr auto;
  align-content: stretch;
}

.dashboard-main-grid .area-card {
  min-height: 390px;
  height: 100%;
}

.submodule-card .btn,
.module-card .btn,
.nav-card .btn,
.registro-option-card .btn,
.area-card .btn {
  align-self: end;
}

input[type="file"] {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 11px 12px;
  background: rgba(255,255,255,0.08);
  color: var(--text);
}

@media (max-width: 720px) {
  .submodule-grid,
  .module-grid,
  .grid {
    grid-template-columns: 1fr;
  }

  .submodule-card,
  .module-card,
  .nav-card,
  .registro-option-card {
    min-height: 220px;
  }
}

.compras-warning-box{
  border:1px solid rgba(220,38,38,.22);
  background:linear-gradient(135deg, rgba(254,242,242,.98), rgba(255,247,237,.96));
  border-radius:18px;
  padding:16px;
  margin:0 0 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.compras-warning-box strong{color:#991b1b;font-size:1rem;display:block;margin-bottom:4px}
.compras-warning-box p{margin:0;color:#7f1d1d;max-width:760px}

/* === RCorps branding === */
.rcorps-brand-strip {
  margin-bottom: 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(37, 99, 235, 0.18);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(239,246,255,0.96));
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
}
.rcorps-brand-block {
  display: inline-flex;
  align-items: center;
  gap: 0.95rem;
  min-width: 0;
}
.rcorps-brand-block-compact {
  margin-right: 1rem;
  flex-shrink: 0;
}
.rcorps-brand-logo {
  display: block;
  width: 150px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
.rcorps-brand-block-compact .rcorps-brand-logo {
  width: 132px;
}
.rcorps-brand-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.rcorps-brand-copy strong {
  font-size: 1.05rem;
  line-height: 1.1;
  color: #0f172a;
  letter-spacing: 0.02em;
}
.rcorps-brand-copy span {
  font-size: 0.82rem;
  color: #475569;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.topbar-inner {
  gap: 1rem;
}
.topbar-inner .rcorps-brand-block {
  flex: 0 0 auto;
}
@media (max-width: 900px) {
  .rcorps-brand-logo,
  .rcorps-brand-block-compact .rcorps-brand-logo {
    width: 118px;
  }
  .rcorps-brand-copy strong { font-size: 0.96rem; }
  .rcorps-brand-copy span { font-size: 0.74rem; }
}

/* === Limpeza operacional das páginas === */
body:not(.login-page) .page-header .muted-text,
body:not(.login-page) .section-heading .muted-text,
body:not(.login-page) .page-hero-mini,
body:not(.login-page) .company-hero,
body:not(.login-page) .compras-hero,
body:not(.login-page) .hero-banner-advanced .hero-copy .muted-text:not(#currentUserLabel),
body:not(.login-page) .info-card {
  display: none !important;
}
body:not(.login-page) .page-header,
body:not(.login-page) .page-header-advanced {
  margin-bottom: 1.2rem !important;
}
body:not(.login-page) .submodule-card,
body:not(.login-page) .area-card {
  justify-content: space-between;
}
body:not(.login-page) .submodule-card h3,
body:not(.login-page) .area-card h2 {
  margin-bottom: 0.25rem;
}

/* === Login RCorps === */
body.login-page {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.70), rgba(0, 10, 28, 0.78)),
    url("assets/login-futurista-bg.png") center center / cover no-repeat fixed;
  color: #f8fafc;
}
body.login-page::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 18%, rgba(56, 189, 248, 0.30), transparent 26%),
    linear-gradient(180deg, rgba(2, 12, 24, 0.16), rgba(2, 12, 24, 0.55));
  opacity: 1;
}
body.login-page::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(56, 189, 248, 0.10), transparent 56%);
  filter: blur(18px);
}
.login-screen {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  width: min(560px, calc(100% - 32px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  justify-items: center;
  gap: 1rem;
  padding: clamp(1.5rem, 4vw, 2.6rem) 0;
}
.login-brand-panel {
  position: relative;
  min-height: 0;
  display: grid;
  place-items: center;
  width: 100%;
}
.login-brand-shell {
  position: relative;
  display: grid;
  justify-items: center;
  gap: .25rem;
  width: 100%;
}
.login-brand-panel::before,
.login-brand-panel::after { display: none; }
.login-logo {
  position: relative;
  z-index: 2;
  width: min(420px, 88vw);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 18px rgba(56, 189, 248, 0.42)) drop-shadow(0 18px 44px rgba(0, 0, 0, 0.55));
}
.login-brand-glow {
  position: absolute;
  z-index: 1;
  top: 8%;
  width: min(320px, 56vw);
  aspect-ratio: 1;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.28);
  filter: blur(64px);
}
.login-brand-tagline {
  margin: -0.4rem 0 0;
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(186, 230, 253, 0.95);
  text-shadow: 0 0 12px rgba(56, 189, 248, 0.35);
}
.login-card {
  position: relative;
  width: min(100%, 460px);
  border-radius: 24px;
  padding: clamp(1.35rem, 4vw, 2rem);
  background: rgba(2, 12, 24, 0.62);
  color: #f8fafc;
  border: 1px solid rgba(56, 189, 248, 0.35);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(255,255,255,0.04);
  backdrop-filter: blur(12px);
}
.login-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(56, 189, 248, 0.5), rgba(255,255,255,0.15));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.login-card-header {
  margin-bottom: 1.25rem;
  text-align: center;
}
.login-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.42rem 0.8rem;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.10);
  color: #7dd3fc;
  border: 1px solid rgba(56, 189, 248, 0.25);
  font-weight: 800;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.login-card h1 {
  margin: 0.95rem 0 0.35rem;
  font-size: clamp(1.9rem, 4vw, 2.5rem);
  letter-spacing: -0.03em;
  color: #eff6ff;
}
.login-intro {
  margin: 0;
  color: rgba(186, 230, 253, 0.86);
  line-height: 1.45;
  font-size: 0.95rem;
}
.login-form {
  display: grid;
  gap: 0.95rem;
}
.login-field label {
  display: block;
  margin-bottom: 0.42rem;
  font-weight: 700;
  color: #dbeafe;
}
.login-field input {
  width: 100%;
  min-height: 50px;
  border-radius: 14px;
  border: 1px solid rgba(56, 189, 248, 0.28);
  background: rgba(2, 6, 23, 0.58);
  color: #f8fafc;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
  font-size: 1rem;
}
.login-field input::placeholder { color: rgba(191, 219, 254, 0.55); }
.login-field input:focus {
  outline: 3px solid rgba(56, 189, 248, 0.16);
  border-color: #38bdf8;
  background: rgba(2, 6, 23, 0.78);
}
.login-submit {
  min-height: 54px;
  border-radius: 16px;
  margin-top: 0.25rem;
  background: linear-gradient(135deg, #0ea5e9, #2563eb 55%, #38bdf8);
  box-shadow: 0 16px 36px rgba(14, 165, 233, 0.30);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
}
.login-page .form-feedback {
  margin-top: 0.2rem;
  color: #dbeafe;
}
@media (max-width: 900px) {
  .login-screen {
    width: min(100% - 24px, 520px);
    gap: 0.75rem;
    padding: 1rem 0 1.8rem;
  }
  .login-brand-panel {
    min-height: 0;
  }
  .login-logo {
    width: min(430px, 88%);
  }
}


/* === Correção: manter descrições completas nos cards === */
body:not(.login-page) .submodule-card .muted-text,
body:not(.login-page) .area-card .muted-text {
  display: block !important;
}
body:not(.login-page) .feature-pills {
  display: flex !important;
}

/* === Compras: Tabela de Preços e cotação automática === */
.module-actions-split {
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.status-vencido {
  background: rgba(245, 158, 11, 0.12);
  color: #92400e;
  border-color: rgba(245, 158, 11, 0.28);
}
.compras-table td strong + .muted-text {
  display: inline-block;
  margin-top: 0.2rem;
}

/* =========================================================
   Ajustes SST Pro — visual, modais e status
   ========================================================= */
:root {
  --sst-navy: #082f49;
  --sst-blue: #0369a1;
  --sst-blue-2: #0ea5e9;
  --sst-cyan: #22d3ee;
  --sst-slate: #0f172a;
  --sst-card: rgba(255,255,255,0.94);
  --sst-line: rgba(14, 165, 233, 0.22);
  --sst-glow: 0 28px 70px rgba(2, 132, 199, 0.16);
}
body {
  background:
    radial-gradient(circle at 12% 8%, rgba(14,165,233,.24), transparent 24%),
    radial-gradient(circle at 88% 6%, rgba(34,211,238,.20), transparent 20%),
    linear-gradient(135deg, #e0f2fe 0%, #f8fafc 42%, #eef8ff 100%) !important;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(115deg, transparent 0%, rgba(255,255,255,.22) 42%, transparent 54%),
    repeating-linear-gradient(90deg, rgba(3,105,161,.035) 0 1px, transparent 1px 84px);
}
.card,
.table-card-elevated,
.page-header-advanced,
.rcorps-brand-strip {
  background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(239,246,255,.92)) !important;
  border: 1px solid rgba(14,165,233,.18) !important;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08), 0 8px 24px rgba(14,165,233,.10) !important;
}
.page-header-advanced {
  padding: 22px 24px !important;
  border-radius: 26px !important;
  align-items: center !important;
  overflow: hidden;
  position: relative;
}
.page-header-advanced::after {
  content: "";
  position: absolute;
  right: -80px;
  top: -90px;
  width: 230px;
  height: 230px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(14,165,233,.22), transparent 66%);
}
.page-header-advanced h1,
.hero-copy h2,
.submodule-card h3,
.area-card h2 {
  color: var(--sst-slate) !important;
}
.submodule-card,
.area-card {
  border-radius: 26px !important;
  overflow: hidden;
  min-height: 230px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
}
.submodule-card::after,
.area-card::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 100%;
  background: linear-gradient(180deg, var(--sst-blue-2), var(--sst-cyan));
  opacity: .88;
}
.submodule-card:hover,
.area-card:hover,
.card:hover {
  transform: translateY(-3px);
  border-color: rgba(14,165,233,.34) !important;
  box-shadow: 0 26px 64px rgba(15,23,42,.12), 0 14px 36px rgba(14,165,233,.16) !important;
}
.btn {
  background: linear-gradient(135deg, #0284c7, #0ea5e9 58%, #22d3ee) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 16px 32px rgba(2,132,199,.20) !important;
}
.btn-secondary {
  background: linear-gradient(180deg, #ffffff, #eff6ff) !important;
  color: #075985 !important;
  border: 1px solid rgba(14,165,233,.22) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.06) !important;
}
.btn-danger {
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
  color: #fff !important;
}
.data-table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
.data-table thead th {
  background: linear-gradient(180deg, #e0f2fe, #eff6ff) !important;
  color: #075985 !important;
  border-bottom: 1px solid rgba(14,165,233,.20) !important;
}
.data-table tbody tr:hover td {
  background: #f0f9ff !important;
}
input,
select,
textarea,
.table-search {
  border-color: rgba(14,165,233,.20) !important;
  border-radius: 14px !important;
}
input:focus,
select:focus,
textarea:focus,
.table-search:focus {
  outline: none !important;
  border-color: rgba(14,165,233,.55) !important;
  box-shadow: 0 0 0 4px rgba(14,165,233,.12) !important;
}

/* Status coloridos — Saúde Ocupacional */
.exam-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.exam-status-badge,
.doc-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .03em;
  text-transform: uppercase;
  border: 1px solid transparent;
  white-space: nowrap;
}
.status-cell {
  display: grid;
  gap: 8px;
  min-width: 150px;
}
.exam-status-select {
  font-weight: 800 !important;
  min-width: 145px;
}
.status-apto,
.status-doc-valido,
.status-renewal-valido {
  background: rgba(22, 163, 74, .14) !important;
  color: #166534 !important;
  border-color: rgba(22, 163, 74, .28) !important;
}
.status-inapto,
.status-doc-vencido,
.status-renewal-vencido {
  background: rgba(220, 38, 38, .14) !important;
  color: #991b1b !important;
  border-color: rgba(220, 38, 38, .28) !important;
}
.status-declinado {
  background: rgba(124, 58, 237, .14) !important;
  color: #5b21b6 !important;
  border-color: rgba(124, 58, 237, .28) !important;
}
.status-aguardando,
.status-renewal-a-vencer {
  background: rgba(245, 158, 11, .16) !important;
  color: #92400e !important;
  border-color: rgba(245, 158, 11, .32) !important;
}
.status-doc-sem-validade,
.status-renewal-sem-vencimento {
  background: rgba(100, 116, 139, .14) !important;
  color: #475569 !important;
  border-color: rgba(100, 116, 139, .26) !important;
}
.exam-schedule-card .exam-status-badge {
  justify-content: space-between;
  gap: 8px;
}
.exam-schedule-card .exam-status-badge strong {
  font-size: 14px;
}

/* Modais sempre na frente e organizados */
body.modal-open {
  overflow: hidden !important;
}
.generic-modal:not([hidden]),
.term-modal:not([hidden]) {
  position: fixed !important;
  inset: 0 !important;
  z-index: 100000 !important;
  display: grid !important;
  place-items: center !important;
  padding: 24px !important;
}
.generic-modal-backdrop[id][hidden],
.term-modal[id][hidden] {
  display: none !important;
}
.generic-modal-backdrop[id]:not([hidden]) {
  position: fixed !important;
  inset: 0 !important;
  z-index: 100000 !important;
  display: grid !important;
  place-items: center !important;
  padding: 24px !important;
  background: rgba(2, 6, 23, .62) !important;
  backdrop-filter: blur(14px) saturate(130%) !important;
}
#collaboratorModal:not([hidden]) { z-index: 100050 !important; }
#addEmployeeDocumentModal:not([hidden]),
#quickDocumentTypeModal:not([hidden]),
#scheduleExamModal:not([hidden]) { z-index: 100200 !important; }
.generic-modal .generic-modal-backdrop,
.term-modal .term-modal-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  background: rgba(2, 6, 23, .62) !important;
  backdrop-filter: blur(14px) saturate(130%) !important;
}
.generic-modal-dialog,
.term-modal-dialog {
  position: relative !important;
  z-index: 2 !important;
  max-height: min(88vh, 900px) !important;
  overflow: auto !important;
  border-radius: 30px !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  background:
    radial-gradient(circle at top right, rgba(14,165,233,.13), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.97)) !important;
  box-shadow: 0 44px 120px rgba(2,6,23,.38), 0 16px 48px rgba(14,165,233,.20) !important;
}
.generic-modal-header,
.term-modal-header {
  border-bottom: 1px solid rgba(14,165,233,.14);
  padding-bottom: 14px;
}

/* Login mais premium */
.login-shell,
.auth-layout {
  position: relative;
}
.auth-card {
  background:
    radial-gradient(circle at top right, rgba(34,211,238,.18), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(239,246,255,.92)) !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  box-shadow: 0 34px 90px rgba(3,105,161,.22) !important;
}
.rcorps-brand-logo {
  filter: drop-shadow(0 12px 22px rgba(2,132,199,.12));
}

/* === Ajustes finais: notificações, confirmação e modais acima de tudo === */
.admin-notifications {
  z-index: 350000 !important;
}
.admin-notifications.is-open .admin-notification-panel,
.admin-notification-panel:not([hidden]) {
  position: fixed !important;
  top: 86px !important;
  right: 24px !important;
  z-index: 350000 !important;
  width: min(440px, calc(100vw - 32px)) !important;
  max-height: min(76vh, 620px) !important;
  overflow: hidden !important;
  box-shadow: 0 38px 110px rgba(2, 6, 23, .42), 0 0 0 9999px rgba(2, 6, 23, .12) !important;
}
.center-success-toast {
  z-index: 420000 !important;
  position: fixed !important;
  inset: 50% auto auto 50% !important;
}
.generic-modal:not([hidden]),
.term-modal:not([hidden]),
#collaboratorModal:not([hidden]),
#addEmployeeDocumentModal:not([hidden]),
#quickDocumentTypeModal:not([hidden]),
#scheduleExamModal:not([hidden]) {
  z-index: 300000 !important;
}
.generic-modal-dialog,
.term-modal-dialog {
  z-index: 300010 !important;
}
.form-feedback,
.notification-item,
.admin-notification-panel {
  isolation: isolate;
}

/* Ajustes de logo da empresa e cadastros operacionais */
.company-logo-preview-card {
  min-height: 118px;
  border: 1px dashed rgba(37, 99, 235, 0.28);
  border-radius: 18px;
  padding: 1rem;
  background: linear-gradient(135deg, rgba(248, 250, 252, 0.96), rgba(239, 246, 255, 0.92));
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.7rem;
}
.company-logo-preview-card span {
  font-size: 0.78rem;
  font-weight: 800;
  color: #475569;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.company-logo-preview-card img {
  max-width: 180px;
  max-height: 74px;
  object-fit: contain;
  border-radius: 12px;
  background: #fff;
  padding: 0.45rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
}
.company-logo-thumb {
  width: 84px;
  height: 42px;
  object-fit: contain;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.24);
  padding: 0.25rem;
}
.nucleos-obras-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 1100px) {
  .nucleos-obras-grid { grid-template-columns: 1fr; }
}
.health-due-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0.35rem 0.65rem;
  font-weight: 800;
  font-size: 0.76rem;
  border: 1px solid rgba(37, 99, 235, 0.14);
  background: #eff6ff;
  color: #1d4ed8;
  white-space: nowrap;
}
.health-due-pill.vencido {
  background: #fef2f2;
  color: #b91c1c;
  border-color: rgba(239, 68, 68, 0.24);
}
.health-due-pill.alerta {
  background: #fff7ed;
  color: #c2410c;
  border-color: rgba(249, 115, 22, 0.26);
}

/* Programas Ocupacionais */
.occupational-programs-page .program-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 12px;
  margin: 14px 0 18px;
}
.status-program-valido {
  background: rgba(22, 163, 74, .14) !important;
  color: #166534 !important;
  border-color: rgba(22, 163, 74, .28) !important;
}
.status-program-a-vencer {
  background: rgba(245, 158, 11, .16) !important;
  color: #92400e !important;
  border-color: rgba(245, 158, 11, .32) !important;
}
.status-program-vencido {
  background: rgba(220, 38, 38, .14) !important;
  color: #991b1b !important;
  border-color: rgba(220, 38, 38, .28) !important;
}
.status-program-sem-validade {
  background: rgba(100, 116, 139, .14) !important;
  color: #475569 !important;
  border-color: rgba(100, 116, 139, .26) !important;
}
@media (max-width: 820px) {
  .occupational-programs-page .program-summary-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .occupational-programs-page .program-summary-grid { grid-template-columns: 1fr; }
}

/* Mapa tecnológico de empresas, núcleos e obras */
.org-map-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(37, 99, 235, 0.18);
  background:
    radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 30%),
    radial-gradient(circle at bottom right, rgba(14, 165, 233, 0.14), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(241, 247, 255, 0.96));
}

.org-map-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(37,99,235,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37,99,235,0.06) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, black, transparent 88%);
}

.company-map-grid {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1.25rem;
}

.company-map-card {
  position: relative;
  border: 1px solid rgba(37, 99, 235, 0.2);
  border-radius: 26px;
  padding: 1.1rem;
  background: rgba(255,255,255,0.84);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.09);
  overflow: hidden;
}

.company-map-card::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 5.3rem;
  width: 1px;
  height: calc(100% - 6rem);
  background: linear-gradient(to bottom, rgba(37,99,235,0.34), transparent);
  transform: translateX(-50%);
  pointer-events: none;
}

.company-map-header {
  position: relative;
  z-index: 2;
  width: min(520px, 100%);
  margin: 0 auto 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.95rem;
  text-align: left;
  padding: 1rem 1.1rem;
  border-radius: 22px;
  color: #ffffff;
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,0.26), transparent 22%),
    linear-gradient(135deg, #0f3f91, #2563eb 55%, #0891b2);
  box-shadow: 0 16px 38px rgba(37,99,235,0.28);
}

.company-map-header span {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.82;
}

.company-map-header strong {
  display: block;
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  line-height: 1.2;
}

.company-map-logo {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  font-weight: 900;
  letter-spacing: 0.04em;
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.26);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.24);
}

.company-map-pulse {
  position: absolute;
  width: 94px;
  height: 94px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.22);
  animation: orgPulse 2.4s ease-out infinite;
}

.nucleo-orbit-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.nucleo-network-card {
  position: relative;
  min-height: 270px;
  padding: 1.25rem;
  border-radius: 24px;
  border: 1px solid rgba(37,99,235,0.16);
  background:
    radial-gradient(circle at center, rgba(37,99,235,0.09), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,0.94), rgba(246,249,255,0.9));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), 0 12px 26px rgba(15,23,42,0.06);
  overflow: hidden;
}

.nucleo-network-card::before,
.nucleo-network-card::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.nucleo-network-card::before {
  width: 200px;
  height: 200px;
  border: 1px dashed rgba(37,99,235,0.24);
}

.nucleo-network-card::after {
  width: 116px;
  height: 116px;
  border: 1px solid rgba(14,165,233,0.26);
  box-shadow: 0 0 34px rgba(37,99,235,0.12);
}

.nucleo-center-node {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 132px;
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.2rem;
  text-align: center;
  padding: 0.9rem;
  border-radius: 28px;
  color: #0f172a;
  background: rgba(255,255,255,0.96);
  border: 1px solid rgba(37,99,235,0.24);
  box-shadow: 0 18px 42px rgba(37,99,235,0.16);
  transform: translate(-50%, -50%);
}

.nucleo-center-node span,
.nucleo-center-node small {
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.nucleo-center-node strong {
  color: #0f3f91;
  font-size: 1.05rem;
  line-height: 1.12;
}

.obra-orbit-cloud {
  position: absolute;
  inset: 1rem;
  z-index: 3;
  pointer-events: none;
}

.obra-orbit-node {
  --node-index: 0;
  position: absolute;
  max-width: 120px;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.48rem 0.58rem;
  border-radius: 999px;
  color: #0f172a;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.15;
  background: rgba(255,255,255,0.94);
  border: 1px solid rgba(14,165,233,0.26);
  box-shadow: 0 10px 22px rgba(15,23,42,0.09);
  pointer-events: auto;
}

.obra-orbit-node i {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 50%;
  background: #0ea5e9;
  box-shadow: 0 0 0 4px rgba(14,165,233,0.13);
}

.obra-orbit-node:nth-child(1) { top: 4%; left: 50%; transform: translateX(-50%); }
.obra-orbit-node:nth-child(2) { top: 20%; right: 4%; }
.obra-orbit-node:nth-child(3) { bottom: 20%; right: 5%; }
.obra-orbit-node:nth-child(4) { bottom: 4%; left: 50%; transform: translateX(-50%); }
.obra-orbit-node:nth-child(5) { bottom: 20%; left: 5%; }
.obra-orbit-node:nth-child(6) { top: 20%; left: 4%; }
.obra-orbit-node:nth-child(n+7) {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  transform: none;
  margin: 0.25rem;
}

.obra-orbit-cloud:has(.obra-orbit-node:nth-child(7)) {
  position: relative;
  inset: auto;
  min-height: 230px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  flex-wrap: wrap;
  padding-top: 8.6rem;
}

.empty-node {
  left: 50% !important;
  bottom: 1rem !important;
  top: auto !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  color: #64748b;
  background: rgba(248,250,252,0.96);
}

.tech-empty-state {
  display: grid;
  gap: 0.35rem;
  text-align: center;
}

@keyframes orgPulse {
  0% { transform: scale(0.82); opacity: 0.85; }
  100% { transform: scale(1.32); opacity: 0; }
}

@media (max-width: 720px) {
  .company-map-header { flex-direction: column; text-align: center; }
  .nucleo-network-card { min-height: 320px; }
  .obra-orbit-node { max-width: 108px; font-size: 0.72rem; }
}

.system-reset-toast {
  position: fixed;
  left: 50%;
  bottom: 2rem;
  z-index: 999999;
  max-width: min(560px, calc(100vw - 2rem));
  padding: 0.95rem 1.15rem;
  border-radius: 18px;
  color: #0f172a;
  font-weight: 800;
  background: rgba(255,255,255,0.96);
  border: 1px solid rgba(37,99,235,0.22);
  box-shadow: 0 24px 65px rgba(15,23,42,0.22);
  transform: translate(-50%, 22px);
  opacity: 0;
  transition: 0.28s ease;
}
.system-reset-toast.is-visible { transform: translate(-50%, 0); opacity: 1; }
.system-reset-toast.success { border-color: rgba(22,163,74,0.38); box-shadow: 0 24px 65px rgba(22,163,74,0.18); }
.system-reset-toast.warning { border-color: rgba(245,158,11,0.42); box-shadow: 0 24px 65px rgba(245,158,11,0.18); }

/* =========================================================
   PWA — instalação Android/iOS na tela de login
   ========================================================= */
.login-install-panel {
  margin-top: 1.1rem;
  padding: 1rem;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(239, 246, 255, 0.96), rgba(224, 242, 254, 0.92));
  border: 1px solid rgba(37, 99, 235, 0.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.78), 0 18px 44px rgba(15, 23, 42, 0.08);
  display: grid;
  gap: 0.9rem;
}

.login-install-copy {
  display: grid;
  gap: 0.28rem;
}

.login-install-copy strong {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #0f2747;
  font-size: 1rem;
}

.login-install-copy strong::before {
  content: "▣";
  width: 24px;
  height: 24px;
  border-radius: 9px;
  display: inline-grid;
  place-items: center;
  color: #ffffff;
  font-size: 0.72rem;
  background: linear-gradient(135deg, #0f3f8a, #38bdf8);
  box-shadow: 0 10px 24px rgba(37,99,235,0.26);
}

.login-install-copy span {
  color: #475569;
  font-size: 0.9rem;
  line-height: 1.45;
}

.login-install-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.pwa-install-btn {
  min-height: 48px;
  border-radius: 15px;
}

.pwa-install-btn:disabled {
  opacity: 0.62;
  cursor: default;
}

.pwa-modal-open {
  overflow: hidden !important;
}

.pwa-install-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.pwa-install-modal.is-visible {
  display: flex;
}

.pwa-install-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, 0.68);
  backdrop-filter: blur(10px);
}

.pwa-install-dialog {
  position: relative;
  z-index: 1;
  width: min(540px, 100%);
  border-radius: 28px;
  padding: clamp(1.35rem, 3vw, 2rem);
  color: #0f172a;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98), rgba(240,249,255,0.96));
  border: 1px solid rgba(186, 230, 253, 0.85);
  box-shadow: 0 34px 90px rgba(2, 6, 23, 0.42);
  overflow: hidden;
}

.pwa-install-dialog::before {
  content: "";
  position: absolute;
  inset: -45% -20% auto;
  height: 70%;
  background: radial-gradient(circle, rgba(56,189,248,0.24), transparent 62%);
  pointer-events: none;
}

.pwa-install-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 14px;
  cursor: pointer;
  color: #0f2747;
  font-size: 1.35rem;
  font-weight: 900;
  background: rgba(255,255,255,0.82);
  box-shadow: 0 12px 28px rgba(15,23,42,0.10);
}

.pwa-install-dialog-head,
.pwa-install-steps {
  position: relative;
  z-index: 1;
}

.pwa-install-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.42rem 0.7rem;
  border-radius: 999px;
  color: #075985;
  background: rgba(224, 242, 254, 0.9);
  border: 1px solid rgba(14, 165, 233, 0.26);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pwa-install-dialog h2 {
  margin: 0.9rem 0 0.45rem;
  color: #0f2747;
  font-size: clamp(1.65rem, 5vw, 2.2rem);
}

.pwa-install-dialog p {
  margin-bottom: 1.15rem;
  color: #475569;
  line-height: 1.55;
}

.pwa-install-steps ol {
  margin: 0;
  padding-left: 1.15rem;
  display: grid;
  gap: 0.72rem;
}

.pwa-install-steps li {
  padding-left: 0.2rem;
  color: #1e293b;
  line-height: 1.55;
}

.pwa-toast {
  position: fixed;
  left: 50%;
  bottom: 1.4rem;
  z-index: 2147483647;
  width: min(520px, calc(100vw - 2rem));
  transform: translate(-50%, 24px);
  opacity: 0;
  pointer-events: none;
  padding: 0.95rem 1.1rem;
  border-radius: 18px;
  color: #0f172a;
  font-weight: 800;
  text-align: center;
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(14,165,233,0.26);
  box-shadow: 0 24px 65px rgba(15,23,42,0.24);
  transition: 0.24s ease;
}

.pwa-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

.pwa-toast.success {
  border-color: rgba(22,163,74,0.36);
  box-shadow: 0 24px 65px rgba(22,163,74,0.18);
}

.pwa-toast.warning {
  border-color: rgba(245,158,11,0.44);
  box-shadow: 0 24px 65px rgba(245,158,11,0.18);
}

@media (max-width: 640px) {
  .login-install-actions {
    grid-template-columns: 1fr;
  }

  .pwa-install-modal {
    align-items: flex-end;
    padding: 0.75rem;
  }

  .pwa-install-dialog {
    border-radius: 24px;
  }
}


/* === Termos de EPI: layout jurídico e assinatura mobile === */
.term-inline-signature {
  width: 150px;
  max-width: 100%;
  height: 42px;
  object-fit: contain;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  padding: 3px;
}

.term-actions-stack {
  grid-template-columns: 1fr 1fr !important;
  align-items: stretch !important;
}
.term-actions-stack .signature-clear-action,
.term-actions-stack #downloadReceiptBtn,
.term-actions-stack #shareReceiptBtn,
.term-actions-stack #termStatus {
  grid-column: 1 / -1;
}

.term-modal:not([hidden]) {
  z-index: 500000 !important;
}
.term-modal-dialog {
  z-index: 500010 !important;
}
.term-modal .term-modal-backdrop {
  z-index: 500000 !important;
}
.term-modal .term-modal-dialog {
  position: relative !important;
}

@media (max-width: 840px) {
  body.signature-mobile-landscape-mode {
    overflow: hidden !important;
  }
  body.signature-mobile-landscape-mode .term-modal:not([hidden]) {
    padding: 0 !important;
    place-items: center !important;
    overflow: hidden !important;
  }
  body.signature-mobile-landscape-mode .term-modal-header {
    display: none !important;
  }
  body.signature-mobile-landscape-mode .term-modal-dialog {
    width: calc(100dvw - 14px) !important;
    height: calc(100dvh - 14px) !important;
    max-width: none !important;
    max-height: none !important;
    overflow: hidden !important;
    border-radius: 20px !important;
    padding: 12px !important;
    display: flex !important;
    flex-direction: column !important;
  }
  body.signature-mobile-landscape-mode .term-modal-grid,
  body.signature-mobile-landscape-mode .term-modal-grid-signature-only {
    flex: 1 1 auto !important;
    display: flex !important;
    min-height: 0 !important;
    width: 100% !important;
  }
  body.signature-mobile-landscape-mode .term-signature-panel,
  body.signature-mobile-landscape-mode .signature-only-card {
    max-width: none !important;
    width: 100% !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto auto !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  body.signature-mobile-landscape-mode .signature-only-message {
    gap: 2px !important;
  }
  body.signature-mobile-landscape-mode .signature-only-message .soft-tag,
  body.signature-mobile-landscape-mode .signature-only-message p,
  body.signature-mobile-landscape-mode .term-signature-panel > div:not(.signature-only-message):not(.signature-canvas-shell):not(.term-actions-stack) {
    display: none !important;
  }
  body.signature-mobile-landscape-mode .signature-only-message h3 {
    margin: 0 !important;
    font-size: 1rem !important;
    text-align: center !important;
  }
  body.signature-mobile-landscape-mode .signature-canvas-shell {
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 16px !important;
  }
  body.signature-mobile-landscape-mode #termSignatureCanvas,
  body.signature-mobile-landscape-mode .signature-canvas-shell canvas {
    height: 100% !important;
    min-height: 0 !important;
  }
  body.signature-mobile-landscape-mode .term-actions-stack {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  body.signature-mobile-landscape-mode .term-actions-stack .signature-clear-action {
    display: none !important;
  }
  body.signature-mobile-landscape-mode #downloadReceiptBtn,
  body.signature-mobile-landscape-mode #shareReceiptBtn {
    grid-column: 1 / -1 !important;
  }
  body.signature-mobile-landscape-mode #termStatus {
    margin: 0 !important;
    padding: 8px 10px !important;
    font-size: .78rem !important;
    line-height: 1.25 !important;
  }
}

@media (max-width: 840px) and (orientation: portrait) {
  body.signature-mobile-landscape-mode .term-modal-dialog {
    width: calc(100dvh - 14px) !important;
    height: calc(100dvw - 14px) !important;
    transform: rotate(90deg) !important;
    transform-origin: center center !important;
  }
}

/* === Ajuste: assinatura mobile em pé, tela cheia e campo destacado === */
@media (max-width: 840px) {
  body.signature-mobile-fullscreen-mode {
    overflow: hidden !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal:not([hidden]) {
    padding: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    overflow: hidden !important;
    z-index: 900000 !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-backdrop {
    background: linear-gradient(135deg, rgba(2, 6, 23, .92), rgba(15, 76, 129, .78)) !important;
    backdrop-filter: blur(10px) !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-dialog {
    width: 100dvw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    border-radius: 0 !important;
    border: 0 !important;
    padding: 14px !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    gap: 10px !important;
    background: linear-gradient(180deg, #f8fbff 0%, #eaf4ff 100%) !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-header {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 3px !important;
    padding: 6px 4px 0 !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-header .soft-tag {
    width: fit-content !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-header h2 {
    margin: 3px 0 0 !important;
    font-size: 1.05rem !important;
    line-height: 1.1 !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-header p {
    display: none !important;
  }

  body.signature-mobile-fullscreen-mode #cancelTermBtn {
    display: none !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-grid,
  body.signature-mobile-fullscreen-mode .term-modal-grid-signature-only {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }

  body.signature-mobile-fullscreen-mode .term-signature-panel,
  body.signature-mobile-fullscreen-mode .signature-only-card {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 12px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(37, 99, 235, .22) !important;
    background: rgba(255, 255, 255, .96) !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto auto !important;
    gap: 10px !important;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .22) !important;
  }

  body.signature-mobile-fullscreen-mode .signature-only-message {
    text-align: center !important;
    gap: 4px !important;
    padding: 0 4px !important;
  }

  body.signature-mobile-fullscreen-mode .signature-only-message h3 {
    margin: 0 !important;
    font-size: 1.1rem !important;
    color: #0f172a !important;
  }

  body.signature-mobile-fullscreen-mode .signature-only-message p,
  body.signature-mobile-fullscreen-mode .signature-only-card > div:not(.signature-only-message):not(.signature-canvas-shell):not(.photo-evidence-shell):not(.term-actions-stack):not(.term-preview-hidden) {
    display: none !important;
  }

  body.signature-mobile-fullscreen-mode .signature-canvas-shell {
    height: 100% !important;
    min-height: 360px !important;
    border-radius: 24px !important;
    border: 3px solid rgba(37, 99, 235, .72) !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, .97), rgba(255, 255, 255, 1)),
      repeating-linear-gradient(0deg, rgba(148, 163, 184, .18) 0 1px, transparent 1px 42px) !important;
    box-shadow: inset 0 0 0 4px rgba(59, 130, 246, .08), 0 18px 45px rgba(37, 99, 235, .18) !important;
  }

  body.signature-mobile-fullscreen-mode .photo-evidence-shell {
    width: calc(100% + 12px) !important;
    max-width: calc(100vw - 8px) !important;
    height: clamp(220px, 34dvh, 300px) !important;
    min-height: 220px !important;
    max-height: 300px !important;
    margin-left: -6px !important;
    margin-right: -6px !important;
    border-radius: 22px !important;
    border: 3px solid rgba(37, 99, 235, .28) !important;
    background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%) !important;
    box-shadow: 0 18px 45px rgba(37, 99, 235, .16) !important;
    overflow: hidden !important;
  }

  body.signature-mobile-fullscreen-mode .photo-evidence-shell video,
  body.signature-mobile-fullscreen-mode .photo-evidence-shell img {
    width: 100% !important;
    height: 100% !important;
    min-height: 220px !important;
    max-height: 300px !important;
    object-fit: cover !important;
    display: block !important;
    background: #0f172a !important;
  }

  body.signature-mobile-fullscreen-mode #termSignatureCanvas,
  body.signature-mobile-fullscreen-mode .signature-canvas-shell canvas {
    width: 100% !important;
    height: 100% !important;
    min-height: 360px !important;
    touch-action: none !important;
  }

  body.signature-mobile-fullscreen-mode .term-actions-stack {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  body.signature-mobile-fullscreen-mode .term-actions-stack .signature-clear-action {
    display: none !important;
  }

  body.signature-mobile-fullscreen-mode #confirmSignatureBtn,
  body.signature-mobile-fullscreen-mode #forceCloseTermBtn {
    min-height: 50px !important;
    font-size: 1rem !important;
    border-radius: 16px !important;
  }

  body.signature-mobile-fullscreen-mode #downloadReceiptBtn,
  body.signature-mobile-fullscreen-mode #shareReceiptBtn {
    grid-column: 1 / -1 !important;
  }

  body.signature-mobile-fullscreen-mode #termStatus {
    grid-column: 1 / -1 !important;
    margin: 0 !important;
    padding: 9px 10px !important;
    font-size: .82rem !important;
    line-height: 1.25 !important;
    text-align: center !important;
  }
}

@media (max-width: 420px) {
  body.signature-mobile-fullscreen-mode .signature-canvas-shell,
  body.signature-mobile-fullscreen-mode #termSignatureCanvas,
  body.signature-mobile-fullscreen-mode .signature-canvas-shell canvas {
    min-height: 330px !important;
  }
}

/* === Ajuste final Renan: assinatura mobile mais larga, sem crescer para cima === */
@media (max-width: 840px) {
  body.signature-mobile-fullscreen-mode .term-modal:not([hidden]) {
    z-index: 1200000 !important;
  }

  body.signature-mobile-fullscreen-mode .term-modal-dialog {
    padding: 12px 6px !important;
    grid-template-rows: auto auto !important;
  }

  body.signature-mobile-fullscreen-mode .term-signature-panel,
  body.signature-mobile-fullscreen-mode .signature-only-card {
    padding: 10px 6px !important;
    grid-template-rows: auto auto auto auto !important;
    align-content: start !important;
    gap: 10px !important;
  }

  body.signature-mobile-fullscreen-mode .signature-canvas-shell {
    width: calc(100% + 12px) !important;
    max-width: calc(100vw - 8px) !important;
    height: clamp(220px, 34dvh, 260px) !important;
    min-height: 220px !important;
    max-height: 260px !important;
    margin-left: -6px !important;
    margin-right: -6px !important;
    border-radius: 22px !important;
  }

  body.signature-mobile-fullscreen-mode .photo-evidence-shell {
    width: calc(100% + 12px) !important;
    max-width: calc(100vw - 8px) !important;
    height: clamp(220px, 34dvh, 260px) !important;
    min-height: 220px !important;
    max-height: 260px !important;
    margin-left: -6px !important;
    margin-right: -6px !important;
    border-radius: 22px !important;
  }

  body.signature-mobile-fullscreen-mode .photo-evidence-shell video,
  body.signature-mobile-fullscreen-mode .photo-evidence-shell img {
    height: clamp(220px, 34dvh, 260px) !important;
    min-height: 220px !important;
    max-height: 260px !important;
  }

  body.signature-mobile-fullscreen-mode #termSignatureCanvas,
  body.signature-mobile-fullscreen-mode .signature-canvas-shell canvas {
    width: 100% !important;
    height: clamp(220px, 34dvh, 260px) !important;
    min-height: 220px !important;
    max-height: 260px !important;
  }

  body.signature-mobile-fullscreen-mode .term-actions-stack {
    width: 100% !important;
  }

  body.signature-mobile-fullscreen-mode #termStatus {
    position: relative !important;
    z-index: 2 !important;
  }
}

@media (max-width: 420px) {
  body.signature-mobile-fullscreen-mode .signature-canvas-shell,
  body.signature-mobile-fullscreen-mode #termSignatureCanvas,
  body.signature-mobile-fullscreen-mode .signature-canvas-shell canvas {
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
  }
}

@media (max-width: 420px) {
  body.signature-mobile-fullscreen-mode .photo-evidence-shell,
  body.signature-mobile-fullscreen-mode .photo-evidence-shell video,
  body.signature-mobile-fullscreen-mode .photo-evidence-shell img {
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
  }
}

/* Confirmação da entrega sempre acima de qualquer modal/tela cheia */
.center-success-toast,
#centerSuccessToast {
  z-index: 1600000 !important;
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  inset: 50% auto auto 50% !important;
  transform: translate(-50%, -50%) scale(.96) !important;
  pointer-events: none !important;
}
.center-success-toast.is-visible,
#centerSuccessToast.is-visible {
  opacity: 1 !important;
  transform: translate(-50%, -50%) scale(1) !important;
}


/* Botão global para forçar atualização da versão em qualquer aparelho */
.force-refresh-btn {
  position: fixed;
  left: max(18px, env(safe-area-inset-left));
  right: auto;
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 2147483000;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 11px 16px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  background: linear-gradient(135deg, #0f4c81 0%, #1672b7 100%);
  color: #fff;
  box-shadow: 0 18px 38px rgba(15, 76, 129, 0.28), 0 6px 14px rgba(15, 23, 42, 0.16);
  font-weight: 800;
  font-size: 0.88rem;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
}

.force-refresh-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 48px rgba(15, 76, 129, 0.35), 0 8px 18px rgba(15, 23, 42, 0.18);
}

.force-refresh-btn:active {
  transform: translateY(0) scale(0.98);
}

.force-refresh-btn:disabled {
  opacity: 0.78;
  cursor: wait;
}

.force-refresh-icon {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.17);
  font-size: 1.1rem;
  line-height: 1;
}

.force-refresh-btn.is-loading .force-refresh-icon {
  animation: rcorpsSpin 0.9s linear infinite;
}

@keyframes rcorpsSpin {
  to { transform: rotate(360deg); }
}

@media (max-width: 720px) {
  .force-refresh-btn {
    left: max(12px, env(safe-area-inset-left));
    right: auto;
    bottom: max(12px, env(safe-area-inset-bottom));
    min-height: 42px;
    padding: 10px 12px;
    font-size: 0.78rem;
  }

  .force-refresh-label {
    max-width: 82px;
    line-height: 1.05;
  }
}


/* Auditoria de termos assinados */

.audit-lock-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0.34rem 0.62rem;
  border-radius: 999px;
  background: rgba(15, 64, 145, 0.1);
  color: #0f4091;
  border: 1px solid rgba(15, 64, 145, 0.24);
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
}
.audit-lock-chip::before { content: "🔒"; font-size: 0.75rem; }

@media (max-width: 640px) {
  body.login-page { background-position: center top; }
  .login-screen { width: min(100% - 20px, 460px); }
  .login-logo { width: min(360px, 92vw); }
  .login-brand-tagline { font-size: .82rem; letter-spacing: .12em; }
  .login-card { border-radius: 20px; padding: 1.1rem; }
  .login-card h1 { font-size: 1.7rem; }
  .login-intro { font-size: .9rem; }
  .login-install-actions { grid-template-columns: 1fr; }
}

/* Usuários e Permissões — grupos recolhíveis e senha oculta */
#userAccessList.access-check-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.access-base {
  border: 1px solid #bfd1e8;
  border-radius: 16px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(15, 39, 71, 0.06);
}

.access-base[open] {
  border-color: #79a9df;
  box-shadow: 0 12px 28px rgba(15, 61, 117, 0.10);
}

.access-base.has-selection {
  border-color: #8bb5e5;
}

.access-base-summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  min-height: 68px;
  padding: 13px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: linear-gradient(135deg, #f8fbff, #eef5ff);
}

.access-base-summary::-webkit-details-marker {
  display: none;
}

.access-base-summary:hover,
.access-base-summary:focus-visible {
  background: #eaf3ff;
}

.access-base-summary:focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.18);
  outline-offset: -3px;
}

.access-base-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.access-base-copy strong {
  color: #0f2747;
  font-size: 1rem;
  font-weight: 850;
}

.access-base-copy small {
  color: #60728d;
  font-size: 0.82rem;
  line-height: 1.35;
}

.access-base-meta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.access-base-count {
  min-width: 48px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #e3eefc;
  color: #174f8f;
  border: 1px solid #bfd5ef;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 850;
}

.access-base.has-selection .access-base-count {
  background: #dbeafe;
  color: #0f3d75;
  border-color: #93bce9;
}

.access-base-chevron {
  color: #164b85;
  font-size: 1.15rem;
  line-height: 1;
  transition: transform 0.18s ease;
}

.access-base[open] .access-base-chevron {
  transform: rotate(180deg);
}

.access-base-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
  border-top: 1px solid #d9e5f3;
  background: #ffffff;
}

.password-mask {
  display: inline-flex;
  align-items: center;
  letter-spacing: 0.16em;
  font-size: 1rem;
  font-weight: 900;
  color: #334155;
  white-space: nowrap;
}

@media (max-width: 780px) {
  .access-base-options {
    grid-template-columns: 1fr;
  }

  .access-base-summary {
    min-height: 62px;
    padding: 12px;
  }

  .access-base-copy small {
    display: none;
  }
}

@media (max-width: 480px) {
  .access-control-panel {
    padding: 12px !important;
  }

  .access-base-summary {
    gap: 8px;
  }

  .access-base-copy strong {
    font-size: 0.94rem;
  }

  .access-base-count {
    min-width: 44px;
    padding: 4px 7px;
  }
}


/* Usuários e Permissões — correção final de largura e quebra dos títulos */
.access-control-panel,
.access-base,
.access-base-options,
.access-check-option,
.access-check-option > span {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.access-control-panel {
  container-type: inline-size;
}

.access-base-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.access-check-option {
  width: 100%;
  min-height: 64px;
  align-items: center;
  overflow: hidden;
  padding: 10px 12px;
}

.access-check-option > span {
  display: block;
  flex: 1 1 auto;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
  line-height: 1.22;
  font-size: clamp(0.86rem, 1.6vw, 0.98rem);
}

@container (max-width: 520px) {
  .access-base-options {
    grid-template-columns: 1fr;
  }

  .access-check-option {
    min-height: 54px;
  }
}

@media (max-width: 640px) {
  .access-base-options {
    grid-template-columns: 1fr !important;
  }

  .access-check-option > span {
    font-size: 0.94rem;
  }
}


/* Exclusão completa de empresa */
.company-delete-dialog {
  width: min(640px, calc(100vw - 28px));
  max-height: min(88vh, 760px);
  overflow: auto;
}
.company-delete-warning {
  display: grid;
  gap: 10px;
  padding: 18px;
  border: 1px solid rgba(220, 38, 38, .22);
  border-radius: 18px;
  background: rgba(254, 242, 242, .92);
  color: #7f1d1d;
}
.company-delete-warning p { margin: 0; color: #7f1d1d; }
.company-delete-details { display: grid; gap: 6px; color: #334155; font-size: .94rem; }
.company-delete-details span { display: block; }
.company-delete-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 18px;
}
.company-delete-footnote { margin: 12px 0 0; font-size: .86rem; }
@media (max-width: 620px) {
  .company-delete-actions { grid-template-columns: 1fr; }
  .company-delete-dialog { width: calc(100vw - 18px); border-radius: 20px !important; }
}

/* Colaboradores — filtros e exportação */
.employee-table-tools {
  display: grid;
  grid-template-columns: minmax(190px, 240px) minmax(240px, 1fr) auto;
  gap: 10px;
  width: min(100%, 780px);
}
.employee-table-tools select,
.employee-table-tools .table-search {
  width: 100%;
  min-width: 0;
  color: #0f2747;
}
.employee-table-tools .btn { white-space: nowrap; }
@media (max-width: 900px) {
  .employee-table-tools { grid-template-columns: 1fr; width: 100%; }
  .employee-table-tools .btn,
  .employee-table-tools select,
  .employee-table-tools .table-search { width: 100% !important; }
}


/* Logo cadastrada da empresa no mapa de Núcleos e Obras */
.company-map-header.has-company-logo {
  width: min(620px, 100%);
  min-height: 112px;
  padding: 0.8rem 1.15rem;
  color: #0f172a;
  background: #ffffff;
  border: 1px solid rgba(37, 99, 235, 0.20);
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.12);
}

.company-map-header.has-company-logo .company-map-pulse {
  display: none;
}

.company-map-logo.company-map-logo-image {
  width: min(230px, 42%);
  height: 86px;
  flex: 0 1 230px;
  padding: 0.45rem 0.7rem;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid rgba(148, 163, 184, 0.24);
  box-shadow: none;
}

.company-map-logo-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.company-map-header.has-company-logo .company-map-company-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.company-map-header.has-company-logo span {
  color: #64748b;
  opacity: 1;
}

.company-map-header.has-company-logo strong {
  color: #0f172a;
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  .company-map-header.has-company-logo {
    min-height: 0;
    gap: 0.65rem;
    padding: 0.75rem;
  }

  .company-map-logo.company-map-logo-image {
    width: min(250px, 92%);
    height: 76px;
    flex-basis: auto;
  }
}


/* Mapa de Núcleos e Obras — cabeçalho somente com a logo */
.company-map-card::after {
  top: 7.2rem;
  height: calc(100% - 7.8rem);
}

.company-map-header,
.company-map-header.has-company-logo {
  width: min(560px, 100%);
  height: 118px;
  min-height: 118px;
  margin: 0 auto 1.35rem;
  padding: 0.8rem 1rem;
  display: grid;
  place-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  background: #ffffff;
  border: 3px solid #2563eb;
  border-radius: 28px;
  box-shadow:
    0 18px 42px rgba(37, 99, 235, 0.18),
    inset 0 0 0 1px rgba(255, 255, 255, 0.9);
}

.company-map-header .company-map-pulse,
.company-map-header.has-company-logo .company-map-pulse {
  display: none;
}

.company-map-logo.company-map-logo-image {
  width: min(300px, 74%);
  height: 74px;
  flex: 0 1 300px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.company-map-logo-image img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.company-map-logo-fallback {
  width: 82px;
  height: 82px;
  flex: 0 0 82px;
  border-radius: 22px;
  color: #ffffff;
  background: linear-gradient(135deg, #0f3f91, #2563eb 60%, #0891b2);
  border: 3px solid #2563eb;
  box-shadow: 0 12px 28px rgba(37, 99, 235, 0.24);
  font-size: 1.2rem;
}

@media (max-width: 720px) {
  .company-map-card::after {
    top: 6rem;
    height: calc(100% - 6.4rem);
  }

  .company-map-header,
  .company-map-header.has-company-logo {
    width: 100%;
    height: 92px;
    min-height: 92px;
    padding: 0.55rem 0.75rem;
    border-width: 2px;
    border-radius: 22px;
  }

  .company-map-logo.company-map-logo-image {
    width: min(240px, 88%);
    height: 58px;
    flex-basis: auto;
  }
}


/* Ajuste final — logo centralizada no mapa de Núcleos e Obras */
.company-map-header,
.company-map-header.has-company-logo {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

.company-map-header.has-company-logo .company-map-logo,
.company-map-header .company-map-logo.company-map-logo-image {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  margin: 0 auto !important;
  width: min(460px, 90%) !important;
  max-width: 460px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  flex: 0 1 auto !important;
  overflow: visible !important;
}

.company-map-header.has-company-logo .company-map-logo img,
.company-map-logo.company-map-logo-image img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 96px !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

.company-map-header.has-company-logo > *:not(.company-map-logo):not(.company-map-logo-image):not(.company-map-logo-fallback),
.company-map-header > *:not(.company-map-logo):not(.company-map-logo-image):not(.company-map-logo-fallback) {
  display: none !important;
}

@media (max-width: 720px) {
  .company-map-header,
  .company-map-header.has-company-logo {
    height: 88px !important;
    min-height: 88px !important;
    padding: 0.5rem 0.75rem !important;
  }

  .company-map-header.has-company-logo .company-map-logo,
  .company-map-header .company-map-logo.company-map-logo-image {
    width: min(320px, 92%) !important;
    max-width: 320px !important;
  }

  .company-map-header.has-company-logo .company-map-logo img,
  .company-map-logo.company-map-logo-image img {
    max-height: 72px !important;
  }
}


/* Formulários compactos de renomeação — Núcleos e Obras */
.compact-rename-card .section-heading { margin-bottom: .75rem; }
.compact-rename-card .advanced-form { gap: .72rem; }
.compact-rename-card .module-actions { margin-top: .15rem; }
.compact-rename-card .form-feedback { min-height: 0; }


/* Colaboradores — cabeçalhos classificadores e novas colunas */
.employee-table thead th {
  white-space: nowrap;
}
.employee-table .table-sort-btn {
  width: 100%;
  justify-content: space-between;
  text-align: left;
  white-space: nowrap;
}
.employee-table .sort-indicator {
  flex: 0 0 auto;
  min-width: 1em;
  text-align: center;
}
.employee-table td {
  vertical-align: middle;
}
@media (max-width: 720px) {
  .employee-table .table-sort-btn {
    min-height: 36px;
    font-size: 0.82rem;
  }
}

/* Inativação segura de núcleos e obras */
.structure-change-summary {
  padding: 0.95rem 1rem;
  border: 1px solid rgba(37, 99, 235, 0.22);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(239, 246, 255, 0.96), rgba(248, 250, 252, 0.96));
  color: #1e3a5f;
  line-height: 1.55;
}

.structure-change-summary strong {
  color: #0f2747;
}

.structure-change-summary span {
  color: #52657f;
  font-size: 0.92rem;
}

/* Gestão de Colaboradores — ações e histórico SST */
.collaborator-card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.65rem;
  margin-top: auto;
}

.collaborator-card-actions .btn {
  width: 100%;
  min-width: 0;
}

.employee-history-dialog {
  max-width: 900px;
  max-height: min(88vh, 920px);
  overflow-y: auto;
}

.employee-history-status {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0.25rem 0 1.35rem;
}

.employee-history-status > div {
  padding: 0.9rem 1rem;
  border: 1px solid rgba(37, 99, 235, 0.16);
  border-radius: 16px;
  background: linear-gradient(145deg, #ffffff, #f4f8ff);
  box-shadow: 0 8px 22px rgba(15, 39, 71, 0.06);
}

.employee-history-status span,
.employee-history-status strong {
  display: block;
}

.employee-history-status span {
  margin-bottom: 0.25rem;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.employee-history-status strong {
  color: #0f2747;
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.sst-timeline {
  position: relative;
  display: grid;
  gap: 0;
  padding: 0.25rem 0 0.5rem;
}

.sst-timeline::before {
  content: "";
  position: absolute;
  top: 1.35rem;
  bottom: 1.35rem;
  left: 23px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(to bottom, #2563eb, #0ea5e9 55%, #cbd5e1);
}

.sst-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 1rem;
  padding: 0 0 1.15rem;
}

.sst-timeline-marker {
  position: relative;
  z-index: 2;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 4px solid #ffffff;
  border-radius: 50%;
  color: #ffffff;
  background: linear-gradient(135deg, #174ea6, #2563eb 58%, #0891b2);
  box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25);
  font-weight: 900;
}

.sst-event-termination .sst-timeline-marker {
  background: linear-gradient(135deg, #7f1d1d, #dc2626);
}

.sst-event-mudanca-nucleo .sst-timeline-marker,
.sst-event-mudanca-obra .sst-timeline-marker {
  background: linear-gradient(135deg, #075985, #0891b2);
}

.sst-timeline-content {
  min-width: 0;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 26px rgba(15, 39, 71, 0.07);
}

.sst-timeline-content time {
  display: inline-block;
  margin-bottom: 0.3rem;
  color: #2563eb;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sst-timeline-content h3 {
  margin: 0 0 0.35rem;
  color: #0f2747;
  font-size: 1.05rem;
}

.sst-timeline-content p {
  margin: 0;
  color: #52657f;
  line-height: 1.5;
}

.sst-timeline-location {
  display: inline-block;
  max-width: 100%;
  margin-top: 0.65rem;
  padding: 0.38rem 0.6rem;
  border-radius: 10px;
  color: #164e63;
  background: #ecfeff;
  font-size: 0.82rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  .collaborator-card-actions,
  .employee-history-status {
    grid-template-columns: 1fr;
  }

  .employee-history-dialog {
    max-height: 92vh;
  }

  .sst-timeline::before {
    left: 18px;
  }

  .sst-timeline-item {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 0.7rem;
  }

  .sst-timeline-marker {
    width: 38px;
    height: 38px;
    border-width: 3px;
    font-size: 0.8rem;
  }

  .sst-timeline-content {
    padding: 0.8rem;
  }
}

/* Cadastro de EPIs — validade do C.A e alerta diário */
.epi-form-actions {
  flex-wrap: wrap;
}

.ca-expiry-alert-dialog {
  width: min(760px, calc(100vw - 28px)) !important;
}

.ca-expiry-alert-header {
  align-items: center;
}

.ca-expiry-alert-counter {
  min-width: 116px;
  padding: 14px 16px;
  border-radius: 20px;
  text-align: center;
  border: 1px solid rgba(245, 158, 11, 0.28);
  background: linear-gradient(180deg, rgba(255, 251, 235, 0.98), rgba(254, 243, 199, 0.9));
  box-shadow: 0 12px 28px rgba(180, 83, 9, 0.12);
}

.ca-expiry-alert-counter strong,
.ca-expiry-alert-counter span {
  display: block;
}

.ca-expiry-alert-counter strong {
  color: #9a3412;
  font-size: 1.65rem;
  line-height: 1;
}

.ca-expiry-alert-counter span {
  margin-top: 6px;
  color: #7c2d12;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ca-expiry-alert-list {
  display: grid;
  gap: 10px;
  max-height: min(48vh, 430px);
  overflow: auto;
  padding-right: 4px;
}

.ca-expiry-alert-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(14, 165, 233, 0.18);
  background: rgba(255, 255, 255, 0.88);
}

.ca-expiry-alert-item > div {
  min-width: 0;
}

.ca-expiry-alert-item strong,
.ca-expiry-alert-item span {
  display: block;
}

.ca-expiry-alert-item strong {
  color: #0f2747;
  overflow-wrap: anywhere;
}

.ca-expiry-alert-item > div > span {
  margin-top: 3px;
  color: #64748b;
  font-size: 0.82rem;
}

.ca-expiry-alert-item.is-expired {
  border-color: rgba(220, 38, 38, 0.24);
  background: linear-gradient(180deg, rgba(254, 242, 242, 0.98), rgba(255, 255, 255, 0.92));
}

.ca-expiry-alert-item.is-near {
  border-color: rgba(245, 158, 11, 0.25);
  background: linear-gradient(180deg, rgba(255, 251, 235, 0.98), rgba(255, 255, 255, 0.92));
}

.ca-expiry-alert-status {
  padding: 8px 11px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 900;
  white-space: nowrap;
}

.is-expired .ca-expiry-alert-status {
  color: #991b1b;
  background: #fee2e2;
  border: 1px solid #fecaca;
}

.is-near .ca-expiry-alert-status {
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.ca-expiry-alert-actions {
  justify-content: center;
}

.ca-expiry-alert-actions .btn {
  min-width: 220px;
}

.ca-expiry-alert-note {
  margin: -4px 0 0;
  text-align: center;
  font-size: 0.82rem;
}

@media (max-width: 720px) {
  .ca-expiry-alert-modal {
    padding: 12px !important;
  }

  .ca-expiry-alert-dialog {
    padding: 18px !important;
    border-radius: 24px !important;
  }

  .ca-expiry-alert-header,
  .ca-expiry-alert-item {
    grid-template-columns: 1fr;
  }

  .ca-expiry-alert-counter {
    width: 100%;
  }

  .ca-expiry-alert-status {
    width: fit-content;
  }

  .ca-expiry-alert-actions .btn {
    width: 100%;
    min-width: 0;
  }
}

/* Movimentações por Núcleo — busca por empresa e núcleo */
.registro-toolbar-grid-company {
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto;
}

@media (max-width: 1100px) {
  .registro-toolbar-grid-company {
    grid-template-columns: 1fr;
  }

  .registro-toolbar-grid-company .registro-toolbar-actions,
  .registro-toolbar-grid-company .registro-toolbar-actions .btn {
    width: 100%;
  }
}


/* Movimentações por Núcleo — autocomplete, filtros e ações */
.registro-item-row .row-autocomplete-shell { position: relative; }
.registro-item-row .epi-autocomplete-results {
  z-index: 80;
  top: calc(100% + 6px);
  background: #ffffff;
  border: 1px solid rgba(37, 99, 235, 0.24);
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.18);
}
.registro-item-row .autocomplete-option {
  color: #162033;
  background: #f8fbff;
  border-color: rgba(37, 99, 235, 0.16);
}
.registro-item-row .autocomplete-option:hover {
  background: #eef6ff;
  border-color: rgba(37, 99, 235, 0.38);
}
.registro-item-row .autocomplete-option small,
.registro-item-row .autocomplete-empty { color: #52627a; }

.history-filter-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(170px, 1fr) minmax(170px, 1fr) auto;
  gap: 12px;
  align-items: end;
  padding: 14px;
  border: 1px solid rgba(37, 99, 235, 0.16);
  border-radius: 18px;
  background: rgba(248, 251, 255, 0.9);
}
.history-filter-grid label { display: block; margin-bottom: 6px; font-weight: 700; }
.history-period-fields > div { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; }
.history-period-fields span { color: var(--muted); font-weight: 700; }
.history-clear-filter { white-space: nowrap; }
.registro-history-actions,
.registro-submit-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.registro-card-actions-bar { gap: 12px; flex-wrap: wrap; }
.registro-transfer-doc-grid { margin-top: 4px; }

@media (max-width: 980px) {
  .history-filter-grid { grid-template-columns: 1fr 1fr; }
  .history-clear-filter { width: 100%; }
}
@media (max-width: 640px) {
  .history-filter-grid { grid-template-columns: 1fr; }
  .history-period-fields > div { grid-template-columns: 1fr; }
  .history-period-fields span { display: none; }
  .registro-history-actions,
  .registro-submit-actions { width: 100%; }
  .registro-history-actions .btn,
  .registro-submit-actions .btn { flex: 1 1 auto; }
}


/* Correção de layout — filtros e cards dos históricos de movimentação */
.registro-cards-layout,
.registro-cards-panel,
.history-filter-grid,
.registro-card-stack,
.registro-card,
.registro-items-summary,
.registro-item-pill {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.registro-cards-panel {
  width: 100% !important;
  overflow: hidden !important;
}

.history-filter-grid {
  width: 100% !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: end !important;
}

.history-filter-grid > * {
  min-width: 0 !important;
  max-width: 100% !important;
}

.history-filter-grid input,
.history-filter-grid select,
.history-filter-grid button {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.history-period-fields {
  grid-column: 1 / -1 !important;
  min-width: 0 !important;
}

.history-period-fields > div {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: center !important;
  min-width: 0 !important;
}

.history-period-fields > div input {
  min-width: 0 !important;
  width: 100% !important;
}

.history-clear-filter {
  grid-column: 1 / -1 !important;
  justify-self: end !important;
  width: auto !important;
  min-width: 150px !important;
}

.registro-card-stack {
  width: 100% !important;
  overflow: hidden !important;
}

.registro-card {
  width: 100% !important;
  overflow: hidden !important;
}

.registro-card > *,
.registro-card-head,
.registro-card-meta,
.registro-card-actions-bar,
.registro-history-actions,
.registro-items-summary,
.registro-item-pill {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.registro-card-meta > span,
.registro-card-head strong,
.registro-card strong,
.registro-card span,
.registro-item-pill strong,
.registro-item-pill span {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

.registro-item-pill {
  width: 100% !important;
  overflow: hidden !important;
}

@media (max-width: 700px) {
  .history-filter-grid {
    grid-template-columns: 1fr !important;
  }

  .history-period-fields,
  .history-clear-filter {
    grid-column: 1 !important;
  }

  .history-period-fields > div {
    grid-template-columns: 1fr !important;
  }

  .history-period-fields > div > span {
    display: none !important;
  }

  .history-clear-filter {
    width: 100% !important;
    min-width: 0 !important;
  }

  .registro-card-actions-bar,
  .registro-history-actions {
    width: 100% !important;
  }

  .registro-history-actions .btn {
    flex: 1 1 140px !important;
    width: auto !important;
  }
}

/* Usuários e Permissões: rolagem da tabela no computador e por toque no celular */
.users-table-scroll {
  width: 100%;
  max-width: 100%;
  max-height: min(640px, 70vh);
  overflow: auto !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-x pan-y;
  scrollbar-gutter: stable;
  border-radius: 16px;
  border: 1px solid rgba(14, 165, 233, 0.22);
  background: #ffffff;
}

.users-table-scroll .data-table {
  width: 100%;
  min-width: 920px;
  margin: 0;
}

.users-table-scroll .data-table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
}

.users-table-scroll:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.28);
  outline-offset: 3px;
}

.users-table-scroll {
  scrollbar-width: thin;
  scrollbar-color: #0f6aa8 #eaf5fc;
}

.users-table-scroll::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

.users-table-scroll::-webkit-scrollbar-track {
  background: #eaf5fc;
  border-radius: 999px;
}

.users-table-scroll::-webkit-scrollbar-thumb {
  background: #0f6aa8;
  border: 3px solid #eaf5fc;
  border-radius: 999px;
}

.users-table-scroll::-webkit-scrollbar-thumb:hover {
  background: #0b4f7d;
}

@media (max-width: 700px) {
  .users-table-scroll {
    max-height: 65vh;
    border-radius: 14px;
  }

  .users-table-scroll .data-table {
    min-width: 860px;
  }
}


/* Estoque por Núcleo — empresa, período e detalhamento de movimentações */
.stock-period-filter {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(147, 197, 253, 0.32);
  border-radius: 16px;
  background: rgba(239, 246, 255, 0.7);
}

.stock-period-label {
  color: var(--text);
  font-weight: 800;
}

.stock-period-grid {
  gap: 12px;
}

.stock-period-filter .field-helper {
  margin: 0;
  line-height: 1.5;
}

.stock-modal-dialog {
  width: min(760px, calc(100vw - 24px));
  max-height: min(880px, calc(100vh - 24px));
  overflow-y: auto;
}

.stock-recipient-list {
  align-content: start;
}

.stock-movement-section {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(147, 197, 253, 0.3);
  border-radius: 18px;
  background: rgba(248, 252, 255, 0.9);
}

.stock-movement-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.stock-movement-section-header > div {
  display: grid;
  gap: 5px;
}

.stock-movement-section-header h3,
.stock-movement-section-header .soft-tag {
  margin: 0;
}

.stock-movement-total {
  white-space: nowrap;
  padding: 8px 12px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid rgba(147, 197, 253, 0.34);
}

.stock-movement-items {
  display: grid;
  gap: 10px;
}

.stock-movement-item {
  grid-template-columns: minmax(0, 1fr) auto;
}

.stock-movement-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.stock-movement-copy strong,
.stock-movement-copy span,
.stock-movement-copy small {
  overflow-wrap: anywhere;
}

.stock-movement-copy small {
  color: var(--muted);
  font-weight: 700;
}

.stock-movement-quantity {
  align-self: center;
  min-width: 58px;
  padding: 9px 11px;
  border-radius: 12px;
  text-align: center;
  font-size: 1rem;
  background: #ffffff;
  border: 1px solid rgba(147, 197, 253, 0.34);
}

.stock-movement-quantity-entry {
  color: #047857;
}

.stock-movement-quantity-exit {
  color: #b91c1c;
}

@media (max-width: 720px) {
  .stock-period-grid,
  .stock-movement-item {
    grid-template-columns: 1fr;
  }

  .stock-movement-quantity {
    justify-self: stretch;
  }
}

/* =========================================================
   Correção de camadas — notificações sempre atrás dos modais
   ========================================================= */
.admin-notifications {
  z-index: 250000 !important;
}

.admin-notifications.is-open .admin-notification-panel,
.admin-notification-panel:not([hidden]) {
  z-index: 250000 !important;
}

.generic-modal:not([hidden]),
.term-modal:not([hidden]),
.generic-modal-backdrop[id]:not([hidden]),
.pwa-install-modal.is-visible,
#collaboratorModal:not([hidden]),
#employeeHistoryModal:not([hidden]),
#employeeTermsModal:not([hidden]),
#addEmployeeDocumentModal:not([hidden]),
#quickDocumentTypeModal:not([hidden]),
#scheduleExamModal:not([hidden]),
#programModal:not([hidden]),
#caExpiryAlertModal:not([hidden]) {
  z-index: 500000 !important;
}

/* Oculta o sino enquanto qualquer modal estiver aberto.
   O seletor por classe cobre o fluxo normal; :has() funciona como
   proteção adicional para telas antigas que não aplicam modal-open. */
body.modal-open .admin-notifications,
body.modal-open .admin-notifications-floating-host,
body:has(.generic-modal:not([hidden])) .admin-notifications,
body:has(.term-modal:not([hidden])) .admin-notifications,
body:has(.generic-modal-backdrop[id]:not([hidden])) .admin-notifications,
body:has(.pwa-install-modal.is-visible) .admin-notifications {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* =========================================================
   Controle global de sessão — botão Sair e confirmação
   ========================================================= */
.global-logout-btn {
  min-height: 40px;
  padding: 9px 16px;
  margin-left: 8px;
  border-color: rgba(239, 68, 68, 0.28) !important;
  color: #b91c1c !important;
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  cursor: pointer;
  touch-action: manipulation;
}

.global-logout-btn:hover,
.global-logout-btn:focus-visible {
  color: #ffffff !important;
  background: #dc2626 !important;
  border-color: #dc2626 !important;
}

.global-logout-floating {
  position: fixed;
  top: max(14px, env(safe-area-inset-top));
  right: max(14px, env(safe-area-inset-right));
  z-index: 240000;
  margin: 0;
}

.logout-confirm-modal[hidden] {
  display: none !important;
}

.logout-confirm-modal {
  position: fixed;
  inset: 0;
  z-index: 900000 !important;
  display: grid;
  place-items: center;
  padding: 20px;
  isolation: isolate;
}

.logout-confirm-backdrop {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(15, 23, 42, 0.64);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.logout-confirm-dialog {
  width: min(440px, 100%);
  padding: 26px;
  border: 1px solid rgba(147, 197, 253, 0.5);
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.32);
  text-align: center;
}

.logout-confirm-dialog h2 {
  margin: 12px 0 8px;
  color: #0f172a;
}

.logout-confirm-dialog > p:not(.form-feedback) {
  margin: 0;
  color: #52657d;
  line-height: 1.55;
}

.logout-confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 24px;
}

.logout-confirm-actions .btn {
  min-height: 46px;
}

body.logout-confirmation-open {
  overflow: hidden;
}

body.logout-confirmation-open .admin-notifications,
body.logout-confirmation-open .admin-notifications-floating-host,
body.logout-confirmation-open .rcorps-help-button,
body.logout-confirmation-open .pwa-install-button {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 640px) {
  .global-logout-btn {
    min-height: 38px;
    padding: 8px 13px;
    margin-left: 6px;
  }

  .logout-confirm-modal {
    padding: 14px;
  }

  .logout-confirm-dialog {
    padding: 22px 18px;
    border-radius: 18px;
  }

  .logout-confirm-actions {
    grid-template-columns: 1fr;
  }
}

@media print {
  .global-logout-btn,
  .logout-confirm-modal {
    display: none !important;
  }
}

/* =========================================================
   Indicadores gerenciais — gráficos de pizza por empresa
   ========================================================= */
.area-card-indicadores {
  background:
    radial-gradient(circle at 88% 12%, rgba(14, 165, 233, .16), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(239,248,255,.96));
}

.indicators-page-shell {
  padding-bottom: 56px;
}

.indicator-company-card,
.indicator-list-card {
  display: grid;
  gap: 20px;
}

.indicator-company-field {
  width: min(520px, 100%);
}

.indicator-table-wrap {
  max-height: 610px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(147, 197, 253, .34);
  border-radius: 22px;
  background: rgba(255,255,255,.84);
}

.indicator-table {
  min-width: 780px;
}

.indicator-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #e9f5ff;
}

.indicator-table th:last-child,
.indicator-table td:last-child {
  width: 130px;
  text-align: center;
}

.indicator-table td:first-child {
  min-width: 255px;
}

.indicator-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 30px;
  margin-right: 10px;
  border-radius: 999px;
  background: rgba(14, 165, 233, .12);
  border: 1px solid rgba(14, 165, 233, .25);
  color: #075985;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
}

.indicator-access-btn {
  min-width: 104px;
}

.indicator-modal-dialog {
  width: min(1160px, calc(100vw - 32px)) !important;
  max-height: calc(100vh - 32px) !important;
  overflow: auto !important;
  gap: 22px !important;
}

.indicator-modal-header {
  align-items: start;
}

.indicator-modal-company {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-height: 40px;
  padding: 9px 14px;
  border-radius: 14px;
  background: #eff8ff;
  border: 1px solid rgba(14, 165, 233, .25);
  color: #0f4c81;
  font-weight: 900;
}

.indicator-chart-layout {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(390px, .95fr) minmax(340px, 1.05fr);
  gap: 22px;
  align-items: stretch;
  padding: 22px;
  overflow: hidden;
  border: 1px solid rgba(35, 211, 255, .24);
  border-radius: 30px;
  background:
    radial-gradient(circle at 16% 12%, rgba(22, 217, 255, .18), transparent 32%),
    radial-gradient(circle at 86% 80%, rgba(124, 92, 255, .18), transparent 36%),
    linear-gradient(145deg, #061221 0%, #08192c 52%, #071424 100%);
  box-shadow:
    0 28px 70px rgba(2, 8, 23, .28),
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 70px rgba(22, 217, 255, .025);
}

.indicator-chart-layout::before,
.indicator-chart-layout::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
}

.indicator-chart-layout::before {
  inset: 0;
  opacity: .18;
  background-image:
    linear-gradient(rgba(99, 179, 237, .18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(99, 179, 237, .18) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.9), transparent 92%);
}

.indicator-chart-layout::after {
  width: 260px;
  height: 260px;
  right: -110px;
  top: -120px;
  border-radius: 50%;
  border: 1px solid rgba(22, 217, 255, .16);
  box-shadow: 0 0 80px rgba(22, 217, 255, .12);
}

.indicator-chart-panel,
.indicator-legend-panel {
  position: relative;
  min-width: 0;
  border: 1px solid rgba(120, 205, 255, .14);
  border-radius: 24px;
  background: linear-gradient(160deg, rgba(9, 31, 53, .82), rgba(5, 18, 33, .9));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.055),
    0 16px 38px rgba(0,0,0,.2);
  backdrop-filter: blur(12px);
}

.indicator-chart-panel {
  min-height: 440px;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: hidden;
}

.indicator-chart-panel::before,
.indicator-chart-panel::after {
  content: "";
  position: absolute;
  width: 42px;
  height: 42px;
  pointer-events: none;
}

.indicator-chart-panel::before {
  top: 14px;
  left: 14px;
  border-top: 2px solid rgba(22, 217, 255, .62);
  border-left: 2px solid rgba(22, 217, 255, .62);
}

.indicator-chart-panel::after {
  right: 14px;
  bottom: 14px;
  border-right: 2px solid rgba(124, 92, 255, .62);
  border-bottom: 2px solid rgba(124, 92, 255, .62);
}

.indicator-pie-shell {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  width: min(390px, 74vw);
  aspect-ratio: 1;
}

.indicator-chart-grid {
  position: absolute;
  inset: 7%;
  border-radius: 50%;
  opacity: .28;
  background:
    linear-gradient(rgba(22, 217, 255, .18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22, 217, 255, .18) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: radial-gradient(circle, #000 0 58%, transparent 76%);
  animation: indicator-grid-pulse 4s ease-in-out infinite;
}

.indicator-orbit {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.indicator-orbit-one {
  inset: 1.5%;
  border: 1px dashed rgba(22, 217, 255, .32);
  box-shadow: 0 0 34px rgba(22, 217, 255, .07);
  animation: indicator-orbit-spin 22s linear infinite;
}

.indicator-orbit-one::before,
.indicator-orbit-two::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #16d9ff;
  box-shadow: 0 0 14px #16d9ff, 0 0 28px rgba(22,217,255,.65);
}

.indicator-orbit-two {
  inset: 12%;
  border: 1px solid rgba(124, 92, 255, .23);
  animation: indicator-orbit-spin 16s linear infinite reverse;
}

.indicator-orbit-two::before {
  top: auto;
  left: auto;
  right: -3px;
  bottom: 28%;
  width: 6px;
  height: 6px;
  background: #7c5cff;
  box-shadow: 0 0 12px #7c5cff, 0 0 24px rgba(124,92,255,.65);
}

.indicator-pie {
  position: relative;
  z-index: 4;
  width: 88%;
  height: 88%;
  overflow: visible;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.3));
}

.indicator-ring-track {
  fill: none;
  stroke: rgba(133, 179, 214, .1);
  stroke-width: 54;
}

.indicator-ring-guide {
  fill: none;
  stroke: rgba(139, 213, 255, .24);
  stroke-width: 1;
  stroke-dasharray: 4 8;
  transform-origin: center;
}

.indicator-ring-guide-outer {
  animation: indicator-guide-spin 30s linear infinite;
}

.indicator-ring-guide-inner {
  stroke: rgba(124, 92, 255, .3);
  stroke-dasharray: 2 7;
  animation: indicator-guide-spin 20s linear infinite reverse;
}

.indicator-segment {
  cursor: pointer;
  stroke: rgba(255,255,255,.3);
  stroke-width: 1;
  transform-box: view-box;
  transform-origin: center;
  opacity: 0;
  animation: indicator-segment-enter .7s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay: var(--segment-delay, 0ms);
  transition: opacity .24s ease, transform .24s ease, filter .24s ease;
  outline: none;
}

.indicator-segment:hover,
.indicator-segment:focus,
.indicator-segment.is-active {
  opacity: 1;
  transform: scale(1.035);
  filter: brightness(1.18) saturate(1.18) drop-shadow(0 0 12px rgba(22, 217, 255, .42));
}

.indicator-segment.is-muted {
  opacity: .42 !important;
  filter: saturate(.72) brightness(.92);
}

.indicator-pie-center {
  position: absolute;
  z-index: 7;
  left: 50%;
  top: 50%;
  width: 43%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 5px;
  padding: 14px;
  border-radius: 50%;
  text-align: center;
  pointer-events: none;
  background:
    radial-gradient(circle at 45% 34%, rgba(25, 74, 112, .95), rgba(4, 17, 31, .98) 68%),
    #071626;
  border: 1px solid rgba(22, 217, 255, .3);
  box-shadow:
    inset 0 0 24px rgba(22, 217, 255, .09),
    0 0 0 8px rgba(7, 30, 50, .74),
    0 0 42px rgba(22, 217, 255, .16);
}

.indicator-live-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #eef8ff !important;
  font-size: clamp(.52rem, 1.2vw, .66rem);
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-shadow: 0 0 12px rgba(22, 217, 255, .24);
}

.indicator-live-status i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #00e6a8;
  box-shadow: 0 0 12px rgba(0,230,168,.9);
  animation: indicator-live-pulse 1.8s ease-in-out infinite;
}

.indicator-pie-center strong {
  max-width: 100%;
  color: #ffffff !important;
  font-size: clamp(1.18rem, 3vw, 2rem);
  line-height: 1;
  letter-spacing: -.04em;
  overflow-wrap: anywhere;
  text-shadow: 0 0 18px rgba(22, 217, 255, .28);
}

.indicator-pie-center > span:last-child {
  color: #e6f4ff !important;
  font-size: clamp(.62rem, 1.4vw, .78rem);
  font-weight: 800;
  text-shadow: 0 0 10px rgba(22, 217, 255, .18);
}

.indicator-chart-tooltip {
  position: absolute;
  z-index: 20;
  min-width: 150px;
  max-width: 240px;
  padding: 9px 12px;
  transform: translate(-50%, -115%);
  border: 1px solid rgba(22, 217, 255, .32);
  border-radius: 12px;
  background: rgba(2, 12, 24, .94);
  box-shadow: 0 12px 30px rgba(0,0,0,.34), 0 0 24px rgba(22,217,255,.1);
  color: #dff8ff;
  font-size: .76rem;
  font-weight: 800;
  text-align: center;
  pointer-events: none;
  backdrop-filter: blur(10px);
}

.indicator-empty-chart {
  max-width: 430px;
  display: grid;
  gap: 8px;
  text-align: center;
  color: #d5ebff;
}

.indicator-empty-chart strong {
  color: #eff9ff;
  font-size: 1.15rem;
}

.indicator-legend-panel {
  min-height: 440px;
  padding: 24px;
  display: grid;
  align-content: start;
  gap: 12px;
  overflow: hidden;
}

.indicator-legend-panel::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, #16d9ff, #7c5cff, transparent);
  opacity: .75;
}

.indicator-legend-panel h3 {
  margin: 0;
  color: #ffffff;
  font-size: 1.12rem;
  letter-spacing: .01em;
  text-shadow: 0 0 16px rgba(22, 217, 255, .12);
}

.indicator-legend-panel > .muted-text {
  color: #d8ecff !important;
  line-height: 1.5;
}

.indicator-legend {
  display: grid;
  gap: 10px;
  margin-top: 6px;
  max-height: 350px;
  overflow: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(22,217,255,.34) transparent;
}

.indicator-legend-item {
  position: relative;
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px 13px 10px;
  border-radius: 16px;
  border: 1px solid rgba(132, 188, 226, .13);
  background: linear-gradient(135deg, rgba(17, 48, 73, .66), rgba(7, 25, 43, .78));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  cursor: default;
  outline: none;
  transition: transform .22s ease, border-color .22s ease, background .22s ease, opacity .22s ease;
}

.indicator-legend-item:hover,
.indicator-legend-item:focus,
.indicator-legend-item.is-active {
  transform: translateX(4px);
  border-color: rgba(22, 217, 255, .42);
  background: linear-gradient(135deg, rgba(18, 63, 92, .8), rgba(10, 31, 53, .92));
  box-shadow: 0 9px 24px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.055);
}

.indicator-legend-item.is-muted {
  opacity: .68;
}

.indicator-legend-color {
  width: 12px;
  height: 34px;
  border-radius: 999px;
  box-shadow: 0 0 13px var(--legend-color);
}

.indicator-legend-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.indicator-legend-copy strong {
  color: #f4fbff !important;
  overflow-wrap: anywhere;
  font-size: .96rem;
  text-shadow: 0 0 12px rgba(22, 217, 255, .10);
}

.indicator-legend-copy span {
  color: #e3f2ff !important;
  font-size: .82rem;
  font-weight: 800;
}

.indicator-legend-percentage {
  color: #ffffff !important;
  font-size: .94rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 16px rgba(22,217,255,.2);
}

.indicator-legend-meter {
  grid-column: 2 / -1;
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(132, 188, 226, .12);
}

.indicator-legend-meter i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--legend-color);
  box-shadow: 0 0 12px var(--legend-color);
  animation: indicator-meter-enter .8s cubic-bezier(.2,.8,.2,1) both;
}

.indicator-legend-empty {
  padding: 18px;
  border-radius: 16px;
  border: 1px solid rgba(132, 188, 226, .14);
  background: rgba(8, 27, 45, .7);
  color: #d8ecff;
  text-align: center;
  font-weight: 700;
}

.indicator-chart-layout,
.indicator-chart-layout p,
.indicator-chart-layout span,
.indicator-chart-layout small,
.indicator-chart-layout strong,
.indicator-chart-layout h3 {
  color: #eef8ff;
}

.indicator-chart-layout .muted-text {
  color: #d8ecff !important;
}


.indicator-pie-center,
.indicator-pie-center * {
  color: #eef8ff !important;
}

.indicator-pie-center strong {
  color: #ffffff !important;
}

.indicator-legend-item,
.indicator-legend-item * {
  color: #eef8ff;
}

.indicator-legend-percentage {
  color: #ffffff !important;
}

.indicator-modal-actions {
  justify-content: flex-end;
}

@keyframes indicator-segment-enter {
  from { opacity: 0; transform: scale(.88) rotate(-3deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}

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

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

@keyframes indicator-grid-pulse {
  0%, 100% { opacity: .18; transform: scale(.98); }
  50% { opacity: .34; transform: scale(1.02); }
}

@keyframes indicator-live-pulse {
  0%, 100% { opacity: .55; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.18); }
}

@keyframes indicator-meter-enter {
  from { transform: scaleX(0); transform-origin: left; }
  to { transform: scaleX(1); transform-origin: left; }
}

@media (prefers-reduced-motion: reduce) {
  .indicator-orbit,
  .indicator-ring-guide,
  .indicator-chart-grid,
  .indicator-live-status i,
  .indicator-segment,
  .indicator-legend-meter i {
    animation: none !important;
  }
}

@media (max-width: 920px) {
  .indicator-chart-layout {
    grid-template-columns: 1fr;
  }

  .indicator-chart-panel,
  .indicator-legend-panel {
    min-height: auto;
  }

  .indicator-pie-shell {
    width: min(350px, 76vw);
  }

  .indicator-legend {
    max-height: none;
  }
}

@media (max-width: 620px) {
  .indicator-modal-dialog {
    width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    padding: 16px !important;
    border-radius: 22px !important;
  }

  .indicator-modal-header {
    grid-template-columns: 1fr;
  }

  .indicator-modal-header .btn {
    width: 100%;
  }

  .indicator-chart-layout {
    padding: 12px;
    border-radius: 22px;
    gap: 12px;
  }

  .indicator-chart-panel,
  .indicator-legend-panel {
    padding: 16px;
    border-radius: 18px;
  }

  .indicator-chart-panel {
    min-height: 310px;
  }

  .indicator-pie-shell {
    width: min(270px, 72vw);
  }

  .indicator-live-status {
    letter-spacing: .04em;
  }

  .indicator-legend-item {
    grid-template-columns: 10px minmax(0, 1fr) auto;
    padding: 11px;
  }

  .indicator-legend-color {
    width: 9px;
    height: 31px;
  }
}


/* Controles globais fixos: atualizar à esquerda e ajuda à direita */
.force-refresh-btn {
  position: fixed !important;
  left: max(18px, env(safe-area-inset-left)) !important;
  right: auto !important;
  bottom: max(18px, env(safe-area-inset-bottom)) !important;
  top: auto !important;
  z-index: 2147482900 !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.rcorps-help-button {
  position: fixed !important;
  right: max(18px, env(safe-area-inset-right)) !important;
  left: auto !important;
  bottom: max(18px, env(safe-area-inset-bottom)) !important;
  top: auto !important;
  z-index: 2147482900 !important;
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, #166534 0%, #16a34a 52%, #22c55e 100%) !important;
  border-color: rgba(255, 255, 255, .28) !important;
}

@media (max-width: 720px) {
  .force-refresh-btn {
    left: max(12px, env(safe-area-inset-left)) !important;
    right: auto !important;
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
    top: auto !important;
    min-height: 46px !important;
    padding: 10px 12px !important;
  }

  .rcorps-help-button {
    position: fixed !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    left: auto !important;
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
    top: auto !important;
    width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 0 !important;
    border-radius: 999px !important;
  }
}

body.modal-open .force-refresh-btn,
body.modal-open .rcorps-help-button,
body.notifications-open .force-refresh-btn,
body.notifications-open .rcorps-help-button {
  visibility: hidden !important;
  pointer-events: none !important;
}
.signature-link-result{margin-top:16px;padding:16px;border:1px solid rgba(14,165,233,.25);border-radius:18px;background:rgba(239,248,255,.8)}.signature-link-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.public-signature-page{min-height:100vh}.public-signature-shell{max-width:820px;padding-top:28px;padding-bottom:28px}.public-signature-card{display:grid;gap:24px}.public-signature-brand{display:flex;gap:18px;align-items:center}.public-signature-brand img{width:82px;height:auto}.public-signature-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-signature-summary>div,.public-epi-item{padding:14px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.76)}.public-signature-summary span,.public-epi-item span{display:block;color:var(--muted);font-size:.85rem}.public-epi-list{display:grid;gap:12px}.public-epi-list>div{display:grid;gap:10px}.public-signature-done{text-align:center;padding:30px}.success-icon{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-size:2.5rem;font-weight:900}@media(max-width:640px){.signature-link-copy-row,.public-signature-summary{grid-template-columns:1fr}.public-signature-brand{align-items:flex-start}.public-signature-brand img{width:58px}}

/* Assinatura remota — toque estável no celular */
.public-signature-page .signature-canvas-shell {
  position: relative;
  width: 100%;
  min-height: 220px;
  overscroll-behavior: contain;
  -webkit-user-select: none;
  user-select: none;
}

#publicSignatureCanvas {
  display: block;
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  background: #ffffff;
  cursor: crosshair;
  touch-action: none !important;
  -ms-touch-action: none;
  overscroll-behavior: contain;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

@media (max-width: 640px) {
  .public-signature-page .signature-canvas-shell {
    min-height: 260px !important;
  }

  #publicSignatureCanvas {
    height: 260px !important;
    min-height: 260px !important;
  }
}


/* Multisseleção acessível para usuários e gestores */
.native-multiselect-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.smart-multiselect {
  min-height: 180px;
  border: 1px solid rgba(14, 165, 233, .28);
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.smart-multiselect-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(14,165,233,.18);
  background: rgba(239,248,255,.95);
  color: #0f4c81;
  font-size: .8rem;
  font-weight: 900;
}
.smart-multiselect-toolbar > div { display:flex; gap:6px; flex-wrap:wrap; }
.smart-multiselect-toolbar button {
  border: 1px solid rgba(14,165,233,.25);
  border-radius: 999px;
  padding: 5px 9px;
  background: #fff;
  color: #075985;
  font-size: .72rem;
  font-weight: 900;
  cursor: pointer;
}
.smart-multiselect-options {
  display: grid;
  gap: 7px;
  max-height: 250px;
  overflow: auto;
  padding: 10px;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.smart-multiselect-option {
  display: grid;
  grid-template-columns: 22px minmax(0,1fr);
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 12px;
  background: #fff;
  color: #0f172a;
  font-weight: 800;
  cursor: pointer;
  user-select: none;
  transition: .18s ease;
}
.smart-multiselect-option:hover { border-color: rgba(14,165,233,.42); background:#f4fbff; }
.smart-multiselect-option.is-selected { border-color:#0ea5e9; background:#eaf7ff; box-shadow:0 0 0 2px rgba(14,165,233,.08); }
.smart-multiselect-option.is-disabled { opacity:.55; cursor:not-allowed; background:#f8fafc; }
.smart-multiselect-option input { position:absolute; opacity:0; pointer-events:none; }
.smart-multiselect-check {
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:7px;
  border:2px solid #94a3b8;
  color:transparent;
  background:#fff;
  font-size:.78rem;
}
.smart-multiselect-option.is-selected .smart-multiselect-check { border-color:#0ea5e9; background:#0ea5e9; color:#fff; }
.smart-multiselect-empty { padding:28px 16px; text-align:center; color:#64748b; font-weight:800; }
@media (max-width: 700px) {
  .smart-multiselect { min-height: 150px; }
  .smart-multiselect-options { max-height: 220px; }
  .smart-multiselect-toolbar { align-items:flex-start; flex-direction:column; }
  .smart-multiselect-option { min-height: 46px; font-size:.92rem; }
}


/* Usuários e gestores: formulário completo primeiro; tabela ao final da página */
.users-layout-grid.users-layout-stack {
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start;
}

.users-layout-grid.users-layout-stack > .form-card-elevated,
.users-layout-grid.users-layout-stack > .table-card-elevated {
  width: 100%;
  min-width: 0;
}

.users-layout-grid.users-layout-stack > .table-card-elevated {
  margin-top: 2px;
}


/* Correção de estabilidade dos formulários de usuários e gestores */
.users-layout-grid.users-layout-stack > .form-card-elevated {
  min-height: 0 !important;
  height: auto !important;
  overflow: visible !important;
  contain: none !important;
  content-visibility: visible !important;
}

#managerForm,
#usersForm {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 1 !important;
  min-height: 0 !important;
  height: auto !important;
}

#managerNucleosPicker,
#managerObrasPicker,
#userObrasPicker {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.smart-multiselect-options {
  position: relative;
  min-height: 0;
  scrollbar-gutter: stable;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.smart-multiselect-option {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}


/* Cadastro de EPI: formulário legível e filtro com autopreenchimento */
.epi-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}

.epi-form-grid .epi-name-field,
.epi-form-grid .epi-validity-field {
  grid-column: 1 / -1;
}

.epi-form-grid input {
  width: 100%;
  min-width: 0;
}

.epi-validity-field input {
  min-width: 170px;
  font-variant-numeric: tabular-nums;
}

.epi-search-filter {
  width: min(360px, 100%);
  min-width: 260px;
}

.epi-search-filter label {
  display: block;
  margin-bottom: 6px;
  font-size: .82rem;
  font-weight: 800;
  color: var(--muted);
}

.epi-search-filter input {
  width: 100%;
}

.epi-filter-results {
  z-index: 70;
}

@media (max-width: 760px) {
  .epi-form-grid {
    grid-template-columns: 1fr;
  }
  .epi-form-grid .epi-name-field,
  .epi-form-grid .epi-validity-field {
    grid-column: auto;
  }
  .epi-search-filter {
    width: 100%;
    min-width: 0;
  }
}


/* Ajustes de layout e cabeçalhos — 23/07/2026 */
.stock-filter-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch !important;
}

.stock-filter-layout > .form-card-elevated,
.stock-filter-layout > .stock-results-card {
  width: 100% !important;
  min-width: 0 !important;
}

/* Padronização visual de todos os cabeçalhos de tabelas do sistema. */
table thead th,
.data-table thead th,
.table-wrapper table thead th,
.employee-table thead th,
.indicator-table thead th,
.term-items-table thead th,
.users-table-scroll .data-table thead th {
  background: #0f3f73 !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}

table thead th *,
.data-table thead th *,
.table-wrapper table thead th *,
.employee-table thead th *,
.indicator-table thead th *,
.term-items-table thead th *,
.users-table-scroll .data-table thead th * {
  color: #ffffff !important;
}

table thead .table-sort-btn,
.data-table thead .table-sort-btn,
.employee-table thead .table-sort-btn {
  color: #ffffff !important;
}


@media (min-width: 901px) {
  #stockFilterForm {
    display: grid !important;
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) minmax(360px, 1.6fr) auto !important;
    align-items: end !important;
    gap: 16px !important;
  }

  #stockFilterForm > .module-actions {
    margin: 0 !important;
    align-self: end !important;
  }

  #stockFilterForm > .form-feedback {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 900px) {
  #stockFilterForm {
    grid-template-columns: 1fr !important;
  }
}


/* Refresh visual dos indicadores */
.indicator-list-card {
  gap: 24px;
}

.indicator-visual-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.indicator-summary-chip {
  padding: 18px 20px;
  border-radius: 22px;
  border: 1px solid rgba(14, 116, 144, .16);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,249,255,.94)),
    radial-gradient(circle at top right, rgba(14,165,233,.12), transparent 34%);
  box-shadow: 0 14px 28px rgba(15, 23, 42, .05);
}

.indicator-summary-chip strong {
  display: block;
  color: #0f172a;
  font-size: 1.05rem;
  margin-bottom: 6px;
}

.indicator-summary-chip span {
  color: #4b5563;
  font-size: .95rem;
  line-height: 1.5;
}

.indicator-summary-chip-secondary {
  background:
    linear-gradient(180deg, rgba(242,248,255,.98), rgba(234,244,255,.96)),
    radial-gradient(circle at bottom left, rgba(59,130,246,.12), transparent 38%);
}

.indicator-grid-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

.indicator-card-item {
  position: relative;
  display: grid;
  gap: 16px;
  min-height: 220px;
  padding: 22px;
  border-radius: 26px;
  border: 1px solid rgba(147, 197, 253, .34);
  background:
    radial-gradient(circle at top right, rgba(14,165,233,.12), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(241,248,255,.96));
  box-shadow: 0 18px 34px rgba(15, 23, 42, .07);
  overflow: hidden;
}

.indicator-card-item::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: linear-gradient(90deg, #0ea5e9, #2563eb, #6d28d9);
}

.indicator-card-top,
.indicator-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.indicator-card-group {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(14, 165, 233, .08);
  border: 1px solid rgba(14, 165, 233, .18);
  color: #0f4c81;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.indicator-card-body {
  display: grid;
  gap: 10px;
  align-content: start;
}

.indicator-card-body h3 {
  margin: 0;
  font-size: 1.42rem;
  line-height: 1.2;
  color: #0f172a;
}

.indicator-card-body p {
  margin: 0;
  color: #475569;
  font-size: .98rem;
  line-height: 1.6;
}

.indicator-card-hint {
  color: #0f4c81;
  font-size: .88rem;
  font-weight: 700;
}

.indicator-access-btn {
  min-width: 118px;
  box-shadow: 0 12px 24px rgba(14, 165, 233, .2);
}

@media (max-width: 720px) {
  .indicator-card-item {
    min-height: auto;
    padding: 18px;
    border-radius: 22px;
  }

  .indicator-card-top,
  .indicator-card-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .indicator-access-btn {
    width: 100%;
  }
}


/* Ajustes finais — estoque compacto e filtros de consumo por escopo */
.stock-filter-card-compact {
  min-height: 0 !important;
  height: auto !important;
  padding: 22px 26px !important;
  align-content: start !important;
}

.stock-filter-card-compact .section-heading {
  margin-bottom: 14px !important;
}

#stockFilterForm.stock-filter-form-compact {
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(210px, 1.2fr) minmax(210px, 1.2fr) minmax(155px, .75fr) minmax(155px, .75fr) auto !important;
  gap: 14px !important;
  align-items: end !important;
}

#stockFilterForm.stock-filter-form-compact > div {
  min-width: 0 !important;
}

#stockFilterForm.stock-filter-form-compact .stock-filter-actions {
  margin: 0 !important;
  align-self: end !important;
}

#stockFilterForm.stock-filter-form-compact .stock-filter-actions .btn {
  min-height: 50px;
  white-space: nowrap;
}

.stock-filter-helper,
#stockFilterForm.stock-filter-form-compact > .form-feedback {
  grid-column: 1 / -1 !important;
  margin: 0 !important;
}

.registro-transfer-motive {
  display: grid;
  gap: 7px;
}

.registro-transfer-motive textarea {
  min-height: 92px;
  resize: vertical;
}

.consumo-filter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(200px, 1fr)) repeat(2, minmax(155px, .72fr));
  gap: 16px;
  align-items: end;
}

.consumo-filter-grid > div {
  min-width: 0;
}

.optional-label {
  color: #64748b;
  font-size: .78em;
  font-weight: 700;
}

@media (max-width: 1120px) {
  #stockFilterForm.stock-filter-form-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #stockFilterForm.stock-filter-form-compact .stock-filter-actions,
  .stock-filter-helper,
  #stockFilterForm.stock-filter-form-compact > .form-feedback {
    grid-column: 1 / -1 !important;
  }

  .consumo-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .stock-filter-card-compact {
    padding: 18px !important;
  }

  #stockFilterForm.stock-filter-form-compact,
  .consumo-filter-grid {
    grid-template-columns: 1fr !important;
  }

  #stockFilterForm.stock-filter-form-compact .stock-filter-actions,
  .stock-filter-helper,
  #stockFilterForm.stock-filter-form-compact > .form-feedback {
    grid-column: auto !important;
  }

  #stockFilterForm.stock-filter-form-compact .stock-filter-actions .btn,
  #consumoMainFilterForm .module-actions .btn {
    width: 100%;
  }
}

/* Consumo mensal: cards de centro de custo com leitura limpa e responsiva. */
.consumo-cost-center-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

.consumo-cost-center-card {
  display: grid;
  grid-template-rows: auto auto auto;
  gap: 18px;
  min-height: 250px;
  padding: 22px;
  overflow: hidden;
}

.consumo-card-header {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
}

.consumo-company-chip {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  padding: 6px 10px;
  border-radius: 999px;
  background: #e8f3ff;
  border: 1px solid #bfdcff;
  color: #0f4c81;
  font-size: .74rem;
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: .03em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.consumo-cost-center-card h3 {
  margin: 0;
  color: #0f172a;
  font-size: 1.12rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.consumo-period-total {
  display: grid;
  gap: 5px;
  align-content: center;
  padding: 15px 16px;
  border-radius: 16px;
  background: #eff6ff;
  border: 1px solid #cfe3fa;
}

.consumo-period-total span {
  color: #64748b;
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.consumo-period-total strong {
  color: #0f4c81;
  font-size: 1.35rem;
  line-height: 1.15;
}

.consumo-cost-center-card .btn {
  align-self: end;
  min-height: 52px;
}

@media (max-width: 680px) {
  .consumo-cost-center-grid {
    grid-template-columns: 1fr;
  }

  .consumo-cost-center-card {
    min-height: 0;
  }
}


/* Entrada manual: empresa da entrada + motivo + documentos fiscais. */
.registro-grid-head-entry {
  display: grid;
  grid-template-columns: minmax(220px, .85fr) minmax(320px, 1.45fr) minmax(180px, .7fr) minmax(180px, .7fr);
  gap: 16px;
  align-items: start;
}

.registro-grid-head-entry > div {
  min-width: 0;
}

.registro-grid-head-entry textarea {
  min-height: 96px;
  resize: vertical;
}

@media (max-width: 1120px) {
  .registro-grid-head-entry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .registro-grid-head-entry {
    grid-template-columns: 1fr;
  }
}

/* === Confirmação fotográfica de entrega — 2026-08-12 === */
.photo-evidence-shell {
  position: relative;
  width: 100%;
  min-height: 320px;
  border-radius: 18px;
  overflow: hidden;
  background: #0f172a;
  border: 1px solid rgba(148, 163, 184, 0.35);
  display: grid;
  place-items: center;
}

.photo-evidence-shell video,
.photo-evidence-shell img {
  width: 100%;
  min-height: 320px;
  max-height: 520px;
  object-fit: cover;
  display: block;
}

.photo-evidence-shell video {
  transform: scaleX(-1);
}

.photo-evidence-shell img[hidden],
.photo-evidence-shell video[hidden] {
  display: none !important;
}

.photo-evidence-shell canvas {
  display: none !important;
}

.public-photo-evidence-shell {
  max-width: 560px;
  margin: 14px auto;
}

.term-photo-note {
  font-size: 0.88rem;
  color: var(--muted, #64748b);
}

@media (max-width: 840px) {
  .photo-evidence-shell,
  .photo-evidence-shell video,
  .photo-evidence-shell img {
    min-height: min(58vh, 430px);
    max-height: 58vh;
  }

  body.signature-mobile-fullscreen-mode .photo-evidence-shell {
    min-height: min(56vh, 460px);
  }
}


/* Entregas Padrão: formulário no topo e tabela abaixo */
.standard-deliveries-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start;
}

.standard-deliveries-layout > .form-card-elevated,
.standard-deliveries-layout > .table-card-elevated {
  width: 100%;
  min-width: 0;
}

.standard-deliveries-layout > .table-card-elevated {
  margin-top: 2px;
}

.standard-deliveries-layout .recebimento-summary-bar {
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.standard-deliveries-layout .recebimento-summary-bar .btn {
  margin-left: auto;
}

.standard-preview-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
}

.standard-preview-summary .mini-stat-box {
  min-width: 0;
}

@media (max-width: 780px) {
  .standard-deliveries-layout .recebimento-summary-bar .btn {
    width: 100%;
    margin-left: 0;
  }
}


/* Entregas Padrão v3 — cadastro horizontal no topo e tabela abaixo */
.standard-deliveries-page-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  width: 100%;
  align-items: start;
}

.standard-delivery-form-card,
.standard-delivery-table-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 !important;
}

.standard-delivery-form-card .advanced-form {
  width: 100%;
}

.standard-delivery-main-fields {
  grid-template-columns: minmax(220px, .55fr) minmax(320px, 1.45fr) !important;
  gap: 18px;
}

.standard-delivery-form-card .registro-items-stack {
  width: 100%;
}

.standard-delivery-form-card .registro-item-row {
  width: 100%;
  padding: 16px 18px;
}

.standard-delivery-form-card .recebimento-item-grid {
  grid-template-columns: minmax(300px, 2fr) minmax(150px, .8fr) minmax(130px, .6fr) auto !important;
  gap: 16px;
  align-items: end;
}

.standard-delivery-form-card .row-inline-actions {
  min-width: 110px;
}

.standard-delivery-form-card .recebimento-summary-bar {
  display: grid !important;
  grid-template-columns: minmax(120px, .45fr) minmax(150px, .55fr) minmax(220px, 1fr) !important;
  align-items: center !important;
  gap: 18px !important;
  width: 100%;
}

.standard-delivery-form-card .recebimento-summary-bar .btn {
  width: min(100%, 320px);
  justify-self: end;
  margin-left: 0 !important;
  min-height: 48px;
}

.standard-delivery-table-card .table-wrap {
  width: 100%;
}

.standard-delivery-table-card .data-table {
  min-width: 860px;
}

.standard-delivery-actions {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 300px;
}

.standard-delivery-actions .btn-table-action {
  white-space: nowrap;
}

@media (max-width: 900px) {
  .standard-delivery-main-fields {
    grid-template-columns: 1fr !important;
  }

  .standard-delivery-form-card .recebimento-item-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .standard-delivery-form-card .row-inline-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

@media (max-width: 640px) {
  .standard-delivery-form-card,
  .standard-delivery-table-card {
    padding: 18px !important;
  }

  .standard-delivery-form-card .recebimento-item-grid,
  .standard-delivery-form-card .recebimento-summary-bar {
    grid-template-columns: 1fr !important;
  }

  .standard-delivery-form-card .recebimento-summary-bar .btn {
    width: 100%;
    justify-self: stretch;
  }

  .standard-delivery-actions {
    min-width: 0;
  }
}


/* === Correção preview fotográfico mobile — 2026-08-20 === */
/*
 * No modo mobile as regras de tela cheia usam display:block !important para
 * dimensionar vídeo e preview. Isso não pode vencer o atributo HTML `hidden`:
 * ao capturar a foto, o vídeo precisa sair do layout para o <img> assumir a área.
 */
.photo-evidence-shell video[hidden],
.photo-evidence-shell img[hidden],
body.signature-mobile-fullscreen-mode .photo-evidence-shell video[hidden],
body.signature-mobile-fullscreen-mode .photo-evidence-shell img[hidden] {
  display: none !important;
  visibility: hidden !important;
}

/* === Seleção de câmera frontal/traseira nas entregas — 2026-08-24 === */
.photo-evidence-shell video[data-camera-facing="environment"] {
  transform: none;
}

.camera-switch-action {
  white-space: nowrap;
}

.camera-public-actions {
  justify-content: center;
}

@media (max-width: 840px) {
  .camera-switch-action {
    min-height: 48px;
  }

  .camera-public-actions .btn {
    flex: 1 1 calc(50% - 8px);
    min-width: 0;
  }
}


/* === Devoluções de materiais e periodicidade de EPI — 2026-08-30 === */
.return-items-list {
  display: grid;
  gap: 16px;
}
.return-item-card {
  padding: 18px;
  border: 1px solid rgba(14, 165, 233, .16);
  box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}
.return-allocation-grid {
  align-items: end;
}
.return-extra-grid {
  margin-top: 12px;
}
.return-extra-grid > div[hidden] {
  display: none !important;
}
.return-extra-grid input {
  margin-top: 8px;
}
@media (max-width: 760px) {
  .return-allocation-grid,
  .return-extra-grid {
    grid-template-columns: 1fr !important;
  }
  .return-item-card .section-heading {
    align-items: flex-start;
  }
}


/* Usuários e Permissões — refinamento de layout 2026-09-08 */
.users-layout-stack .form-card-elevated {
  padding: clamp(18px, 2vw, 26px) !important;
}

.users-layout-stack #usersForm.advanced-form.stack-gap {
  gap: 14px !important;
}

.users-layout-stack #usersForm .form-grid-2 {
  gap: 12px 16px !important;
}

.users-layout-stack .scope-access-panel {
  margin: 0 !important;
  padding: 14px !important;
}

.users-layout-stack .scope-access-panel .field-helper {
  margin: 7px 0 0 !important;
  line-height: 1.35 !important;
}

.users-layout-stack .access-control-panel {
  margin: 0 !important;
  padding: 14px !important;
}

.users-layout-stack .access-control-heading {
  margin-bottom: 6px !important;
  gap: 12px !important;
}

.users-layout-stack .access-control-panel > .muted-text {
  margin: 0 0 10px !important;
  line-height: 1.35 !important;
}

.users-layout-stack #userAccessList.access-check-grid {
  gap: 8px !important;
}

.users-layout-stack .access-base-summary {
  min-height: 58px !important;
  padding: 10px 13px !important;
}

.users-layout-stack .access-base-options {
  gap: 7px !important;
  padding: 10px !important;
}

.users-layout-stack .access-check-option {
  min-height: 52px !important;
  padding: 8px 10px !important;
}

.users-layout-stack .module-actions {
  justify-content: flex-end !important;
  gap: 10px !important;
  margin-top: 0 !important;
}

.users-layout-stack .module-actions #usersSubmitBtn {
  min-width: 180px;
}

.users-layout-stack #usersFeedback {
  margin-top: 0 !important;
}

.users-layout-stack .table-card-elevated {
  margin-top: 2px;
}

@media (max-width: 720px) {
  .users-layout-stack .module-actions {
    justify-content: stretch !important;
  }
  .users-layout-stack .module-actions #usersSubmitBtn,
  .users-layout-stack .module-actions #usersCancelEditBtn {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* Usuários e Permissões — revisão completa das permissões 2026-09-08 */
.users-layout-stack .form-card-elevated {
  padding: clamp(20px, 2.3vw, 30px) !important;
}

.users-layout-stack #usersForm {
  gap: 18px !important;
}

.user-account-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  align-items: end;
}

.user-config-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(14, 165, 233, .16);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(239,248,255,.9), rgba(248,251,255,.98));
}

.user-config-summary > div {
  min-width: 0;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(148, 188, 229, .34);
}

.user-config-summary span {
  display: block;
  margin-bottom: 3px;
  color: #64748b;
  font-size: .76rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.user-config-summary strong {
  display: block;
  color: #0f2747;
  font-size: .94rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.users-layout-stack .user-scope-panel {
  padding: 16px !important;
  border-radius: 18px !important;
  background: #fbfdff !important;
}

.users-layout-stack .access-control-panel {
  padding: 18px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(14, 165, 233, .20) !important;
  background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%) !important;
}

.users-layout-stack .access-control-heading {
  align-items: flex-start !important;
  margin-bottom: 12px !important;
}

.users-layout-stack .access-control-heading h3 {
  margin-bottom: 5px !important;
}

.access-control-intro {
  max-width: 900px;
  margin: 0 !important;
}

.permission-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
  padding: 8px 11px;
  border-radius: 12px;
  background: rgba(255,255,255,.72);
  color: #64748b;
  font-size: .78rem;
  line-height: 1.3;
}

.permission-legend > span:first-child {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #174f8f;
  font-weight: 800;
}

.permission-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #0ea5e9;
  box-shadow: 0 0 0 4px rgba(14,165,233,.10);
}

#userAccessList.permission-modules-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 12px !important;
}

.permission-module-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #c9dcef;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 39, 71, .055);
}

.permission-module-card.has-selection {
  border-color: #8dbce9;
}

.permission-module-card.is-complete {
  border-color: #55a7df;
  box-shadow: 0 10px 26px rgba(14, 165, 233, .09);
}

.permission-module-card[data-access-base="indicadores"] {
  grid-column: 1 / -1;
}

.permission-module-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 15px;
  border-bottom: 1px solid #dce8f4;
  background: linear-gradient(135deg, #f7fbff, #eef6ff);
}

.permission-module-title {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.permission-module-kicker {
  color: #0b72b4;
  font-size: .67rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.permission-module-title strong {
  color: #102946;
  font-size: 1rem;
  line-height: 1.2;
}

.permission-module-title small {
  color: #64748b;
  font-size: .76rem;
  line-height: 1.3;
}

.permission-module-actions {
  flex: 0 0 auto;
  display: grid;
  justify-items: end;
  gap: 6px;
}

.permission-group-toggle {
  border: 0;
  padding: 0;
  background: transparent;
  color: #0879b8;
  font: inherit;
  font-size: .73rem;
  font-weight: 850;
  cursor: pointer;
}

.permission-group-toggle:hover,
.permission-group-toggle:focus-visible {
  text-decoration: underline;
  outline: none;
}

.permission-page-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  padding: 11px;
}

.permission-page-option {
  position: relative;
  min-width: 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid #d9e5f1;
  border-radius: 12px;
  background: #fbfdff;
  color: #23344d;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.permission-page-option:hover {
  border-color: #8bc7eb;
  background: #f2faff;
}

.permission-page-option:has(input:checked) {
  border-color: #59b4e5;
  background: #eaf8ff;
  box-shadow: inset 0 0 0 1px rgba(14,165,233,.08);
}

.permission-page-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.permission-checkmark {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  border: 1px solid #b8cce1;
  background: #fff;
  color: transparent;
  font-size: .82rem;
  font-weight: 950;
}

.permission-page-option:has(input:checked) .permission-checkmark {
  border-color: #0ea5e9;
  background: #0ea5e9;
  color: #fff;
}

.permission-page-option:focus-within {
  outline: 3px solid rgba(14,165,233,.13);
  outline-offset: 1px;
}

.permission-page-name {
  min-width: 0;
  font-size: .86rem;
  font-weight: 760;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.users-layout-stack .module-actions {
  padding-top: 2px;
  border-top: 0;
}

.users-layout-stack .module-actions #usersSubmitBtn {
  min-width: 210px;
  min-height: 50px;
}

@media (max-width: 1180px) {
  .user-account-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .user-config-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  #userAccessList.permission-modules-grid {
    grid-template-columns: 1fr !important;
  }
  .permission-module-card[data-access-base="indicadores"] {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .user-account-fields,
  .user-config-summary,
  .permission-page-list {
    grid-template-columns: 1fr !important;
  }
  .permission-module-header,
  .permission-legend {
    align-items: stretch;
    flex-direction: column;
  }
  .permission-module-actions {
    grid-template-columns: auto 1fr;
    align-items: center;
    justify-items: start;
  }
  .users-layout-stack .access-control-panel {
    padding: 12px !important;
  }
}


/* Gestores e Estoques — permissões completas e layout refinado 2026-09-08 */
.manager-modern-form {
  gap: 18px !important;
}
.manager-account-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: 14px;
  align-items: end;
}
.manager-config-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(14,165,233,.16);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(239,248,255,.9), rgba(248,251,255,.98));
}
.manager-config-summary > div {
  min-width: 0;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(148,188,229,.34);
}
.manager-config-summary span {
  display: block;
  margin-bottom: 3px;
  color: #64748b;
  font-size: .76rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.manager-config-summary strong {
  display: block;
  color: #0f2747;
  font-size: .94rem;
  line-height: 1.25;
}
.manager-scope-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}
.manager-scope-block {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(148,188,229,.34);
  border-radius: 18px;
  background: #fbfdff;
}
.manager-scope-block .smart-multiselect {
  min-height: 145px;
}
.manager-scope-block .smart-multiselect-options {
  max-height: 180px;
}
.manager-scope-block .field-helper {
  margin: 8px 2px 0 !important;
  font-size: .78rem;
  line-height: 1.35;
}
.manager-access-panel {
  padding: 18px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(14,165,233,.20) !important;
  background: linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%) !important;
}
#managerAccessList.permission-modules-grid {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
  gap: 12px !important;
}
#managerAccessList .permission-module-card[data-access-base="indicadores"] {
  grid-column: 1 / -1;
}
.manager-actions {
  justify-content: flex-end !important;
  padding-top: 2px !important;
}
.manager-actions #managerSubmit {
  min-width: 210px;
  min-height: 50px;
}
@media (max-width: 1180px) {
  .manager-config-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .manager-scope-grid { grid-template-columns: 1fr 1fr; }
  .manager-scope-grid .manager-scope-block:first-child { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  #managerAccessList.permission-modules-grid { grid-template-columns: 1fr !important; }
  #managerAccessList .permission-module-card[data-access-base="indicadores"] { grid-column: auto; }
  .manager-scope-grid { grid-template-columns: 1fr; }
  .manager-scope-grid .manager-scope-block:first-child { grid-column: auto; }
}
@media (max-width: 640px) {
  .manager-account-fields,
  .manager-config-summary,
  .manager-scope-grid { grid-template-columns: 1fr !important; }
  .manager-actions { justify-content: stretch !important; }
  .manager-actions .btn { width: 100%; }
  .manager-access-panel { padding: 12px !important; }
}


/* Empresas — layout horizontal refinado 2026-09-08 */
.company-layout.company-layout-stacked {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 22px !important;
  align-items: start !important;
}

.company-layout-stacked > .form-card-elevated,
.company-layout-stacked > .table-card-elevated {
  width: 100% !important;
  min-width: 0 !important;
}

.company-layout-stacked .form-card-elevated {
  padding: clamp(22px, 2.3vw, 30px) !important;
}

.company-layout-stacked #companyForm {
  gap: 16px !important;
}

.company-form-main-grid {
  display: grid;
  grid-template-columns: minmax(210px, .72fr) minmax(300px, 1.25fr) minmax(280px, .95fr) minmax(280px, .95fr);
  gap: 16px;
  align-items: stretch;
}

.company-form-main-grid > div {
  min-width: 0;
}

.company-form-main-grid input:not([type="file"]) {
  min-height: 52px;
}

.company-logo-upload-field {
  display: grid;
  align-content: start;
  gap: 8px;
}

.company-logo-upload-field input[type="file"] {
  width: 100%;
  min-height: 52px;
  padding: 7px 8px;
  border: 1px solid rgba(14, 165, 233, .24);
  border-radius: 15px;
  background: rgba(255,255,255,.98);
  color: #475569;
  font: inherit;
  font-size: .88rem;
  cursor: pointer;
}

.company-logo-upload-field input[type="file"]::file-selector-button {
  min-height: 36px;
  margin-right: 10px;
  padding: 7px 12px;
  border: 1px solid rgba(14, 165, 233, .22);
  border-radius: 10px;
  background: linear-gradient(135deg, #f0f9ff, #e5f5ff);
  color: #0f4c81;
  font-weight: 800;
  cursor: pointer;
}

.company-logo-preview-card.company-logo-preview-inline {
  min-height: 96px;
  padding: 12px 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 118px;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 8px 12px;
  border-style: solid;
}

.company-logo-preview-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.company-logo-preview-copy span {
  margin: 0;
}

.company-logo-preview-copy small {
  color: #64748b;
  font-size: .76rem;
  line-height: 1.3;
}

.company-logo-preview-media {
  grid-row: 1 / span 2;
  grid-column: 2;
  width: 118px;
  height: 70px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(148, 188, 229, .35);
  border-radius: 12px;
  background: #fff;
}

.company-logo-preview-media img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  padding: 6px;
  border: 0;
  border-radius: 0;
  object-fit: contain;
}

.company-logo-preview-media:has(img:not([hidden])) .company-logo-empty-state {
  display: none;
}

.company-logo-empty-state {
  color: #94a3b8;
  font-size: .78rem;
  font-weight: 750;
}

.company-logo-preview-inline #clearCompanyLogoBtn {
  justify-self: start;
  min-width: 0;
  padding: 7px 10px;
  font-size: .78rem;
}

.company-form-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
}

.company-form-footer #companyFeedback {
  margin: 0 !important;
}

.company-form-actions {
  justify-content: flex-end !important;
  margin: 0 !important;
}

.company-form-actions #saveCompanyBtn {
  min-width: 190px;
  min-height: 50px;
}

.company-layout-stacked .table-card-elevated {
  padding: clamp(22px, 2.3vw, 30px) !important;
}

.company-layout-stacked .section-heading-table {
  gap: 18px;
}

.company-layout-stacked .table-tools {
  margin-left: auto;
}

.company-layout-stacked #companySearch {
  width: min(360px, 40vw);
  min-height: 48px;
  color: #0f172a;
}

.company-layout-stacked .table-wrap {
  overflow-x: auto;
}

.company-layout-stacked .data-table {
  min-width: 720px;
}

.company-layout-stacked .data-table th:nth-child(1),
.company-layout-stacked .data-table td:nth-child(1) { width: 22%; }
.company-layout-stacked .data-table th:nth-child(2),
.company-layout-stacked .data-table td:nth-child(2) { width: 28%; }
.company-layout-stacked .data-table th:nth-child(3),
.company-layout-stacked .data-table td:nth-child(3) { width: 14%; }
.company-layout-stacked .data-table th:nth-child(4),
.company-layout-stacked .data-table td:nth-child(4) { width: 18%; }
.company-layout-stacked .data-table th:nth-child(5),
.company-layout-stacked .data-table td:nth-child(5) { width: 18%; }

@media (max-width: 1240px) {
  .company-form-main-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .company-form-main-grid,
  .company-form-footer {
    grid-template-columns: 1fr;
  }

  .company-logo-preview-card.company-logo-preview-inline {
    grid-template-columns: minmax(0, 1fr) 96px;
  }

  .company-logo-preview-media {
    width: 96px;
    height: 64px;
  }

  .company-form-actions,
  .company-form-actions #saveCompanyBtn {
    width: 100%;
    min-width: 0;
  }

  .company-layout-stacked .section-heading-table {
    align-items: stretch;
    flex-direction: column;
  }

  .company-layout-stacked .table-tools,
  .company-layout-stacked #companySearch {
    width: 100%;
    max-width: none;
    margin-left: 0;
  }
}


/* Estoques e Centros de Custo — workspace por operação */
.structure-workspace-card {
  padding: 1.4rem;
  display: grid;
  gap: 1.15rem;
  overflow: visible;
}
.structure-workspace-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(148,163,184,.22);
}
.structure-workspace-head h2 { margin: .35rem 0 .2rem; }
.structure-tab-nav {
  display: inline-grid;
  grid-template-columns: repeat(4, minmax(112px, 1fr));
  gap: .5rem;
  padding: .4rem;
  border-radius: 18px;
  background: rgba(239,246,255,.86);
  border: 1px solid rgba(37,99,235,.14);
}
.structure-tab-btn {
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  color: #0f3f72;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
  transition: .18s ease;
}
.structure-tab-btn:hover { background: rgba(255,255,255,.72); }
.structure-tab-btn.is-active {
  color: #fff;
  background: linear-gradient(135deg, #0f4c81, #0ea5e9);
  box-shadow: 0 10px 24px rgba(14,165,233,.18);
}
.structure-tab-panel { display: none; }
.structure-tab-panel.is-active { display: grid; gap: 1rem; }
.structure-panel-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  padding: .15rem .1rem;
}
.structure-panel-heading h3 { margin: .25rem 0 0; font-size: 1.35rem; }
.structure-panel-heading > p { max-width: 620px; margin: 0; text-align: right; }
.structure-form-grid {
  display: grid;
  gap: 1rem;
}
.structure-form-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.structure-form-card {
  min-width: 0;
  padding: 1.2rem;
  border-radius: 24px;
  border: 1px solid rgba(37,99,235,.16);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,251,255,.96));
  box-shadow: 0 16px 38px rgba(15,23,42,.07);
}
.structure-compact-form { gap: .72rem !important; }
.structure-compact-form select[multiple] {
  min-height: 106px;
  max-height: 126px;
}
.structure-actions-right { justify-content: flex-end !important; }
.structure-horizontal-form {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr));
  align-items: end;
  gap: .9rem;
}
.structure-horizontal-form .module-actions { margin: 0; }
.structure-horizontal-form .structure-form-wide { grid-column: 1 / -1; margin: 0; }
.structure-transfer-card { padding: 1.3rem; }
.structure-danger-card {
  border-color: rgba(239,68,68,.18);
  background: linear-gradient(180deg, #fff, #fffafa);
}
.structure-danger-heading .soft-tag { border-color: rgba(239,68,68,.22); color: #b91c1c; }

@media (max-width: 1080px) {
  .structure-workspace-head { align-items: stretch; flex-direction: column; }
  .structure-tab-nav { width: 100%; }
  .structure-form-grid-2 { grid-template-columns: 1fr; }
  .structure-panel-heading { align-items: flex-start; flex-direction: column; }
  .structure-panel-heading > p { text-align: left; }
  .structure-horizontal-form { grid-template-columns: 1fr; }
  .structure-horizontal-form .structure-form-wide { grid-column: auto; }
}
@media (max-width: 640px) {
  .structure-workspace-card { padding: .9rem; }
  .structure-tab-nav { grid-template-columns: repeat(2, 1fr); }
  .structure-tab-btn { min-height: 42px; padding: .6rem .7rem; }
  .structure-form-card { padding: .9rem; border-radius: 20px; }
  .structure-form-card .form-grid-2 { grid-template-columns: 1fr !important; }
}


/* === Colaboradores: layout horizontal e filtros completos (2026-09-08) === */
.employee-management-stack {
  display: grid;
  gap: 20px;
}
.employee-registration-card,
.employee-import-compact {
  width: 100%;
}
.employee-registration-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: end;
}
.employee-registration-grid > div,
.employee-registration-grid > p { min-width: 0; }
.employee-registration-grid .employee-name-field { grid-column: span 2; }
.employee-form-guidance {
  grid-column: span 2;
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(37, 99, 235, .18);
  border-radius: 16px;
  background: rgba(239, 246, 255, .78);
  color: #334155;
  min-height: 52px;
}
.employee-form-guidance strong { color: #0f2747; font-size: .92rem; }
.employee-form-guidance span { font-size: .86rem; line-height: 1.35; }
.employee-save-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  grid-column: span 2;
}
.employee-form-feedback { grid-column: 1 / -1; margin: 0 !important; }
.employee-registration-grid .field-helper { display: none; }

.employee-import-compact {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.7fr);
  gap: 18px 22px;
  align-items: center;
}
.employee-import-heading { display: grid; gap: 8px; align-content: center; }
.employee-import-heading h2 { margin: 4px 0 0; }
.employee-import-heading p { margin: 0; line-height: 1.45; }
.employee-import-body {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(360px, 1.25fr);
  gap: 14px;
  align-items: stretch;
}
.employee-upload-box { min-height: 86px; align-content: center; padding: 14px 16px; }
.employee-import-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: stretch;
}
.employee-import-actions .btn { min-width: 0; width: 100%; }
.employee-import-feedback { grid-column: 1 / -1; margin: 0 !important; }

.employee-table-tools {
  width: 100% !important;
  grid-template-columns: minmax(150px, .8fr) minmax(150px, .8fr) minmax(170px, .95fr) minmax(135px, .65fr) minmax(260px, 1.4fr) auto !important;
  gap: 10px !important;
  align-items: center;
}
.employee-delete-summary {
  padding: 10px 14px !important;
  margin: 12px 0 !important;
  font-size: .9rem;
  line-height: 1.35;
}
.employee-table { min-width: 1180px; }
.employee-table th:nth-child(5),
.employee-table td:nth-child(5) { min-width: 175px; max-width: 220px; }
.employee-table th:nth-child(7),
.employee-table td:nth-child(7) { min-width: 145px; }
.employee-table th:nth-child(9),
.employee-table td:nth-child(9) { min-width: 145px; }
.employee-table th:last-child,
.employee-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  min-width: 150px;
  background: rgba(255,255,255,.98);
  box-shadow: -10px 0 18px rgba(15, 23, 42, .06);
}
.employee-table thead th:last-child {
  z-index: 5;
  background: #174c82;
}
.employee-table tbody tr:nth-child(even) td:last-child { background: #f8fbff; }
.employee-table .table-actions { flex-wrap: nowrap; }

@media (max-width: 1180px) {
  .employee-registration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-registration-grid .employee-name-field { grid-column: span 1; }
  .employee-form-guidance, .employee-save-actions { grid-column: span 1; }
  .employee-import-compact { grid-template-columns: 1fr; }
  .employee-import-body { grid-template-columns: minmax(240px, 1fr) minmax(0, 1.4fr); }
  .employee-table-tools { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .employee-table-tools .table-search { grid-column: span 2; }
}
@media (max-width: 720px) {
  .employee-registration-grid,
  .employee-import-body,
  .employee-import-actions,
  .employee-table-tools { grid-template-columns: 1fr !important; }
  .employee-registration-grid .employee-name-field,
  .employee-form-guidance,
  .employee-save-actions,
  .employee-table-tools .table-search { grid-column: 1 !important; }
  .employee-save-actions { justify-content: stretch; }
  .employee-save-actions .btn { width: 100%; }
  .employee-table-tools .btn,
  .employee-table-tools select,
  .employee-table-tools .table-search { width: 100% !important; }
}


/* === EPIs: cadastro horizontal, métricas e filtros — 08/09/2026 === */
.epi-catalog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
}

.epi-catalog-form-card,
.epi-catalog-table-card {
  width: 100%;
  min-width: 0;
}

.epi-catalog-form-grid {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) minmax(120px, .8fr) minmax(120px, .8fr) minmax(170px, 1.05fr) minmax(190px, 1.2fr);
  gap: 16px;
  align-items: end;
}

.epi-catalog-form-grid > div,
.epi-catalog-form-grid input,
.epi-catalog-form-grid select {
  min-width: 0;
  width: 100%;
}

.epi-catalog-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
}

.epi-catalog-form-footer .form-feedback {
  flex: 1 1 360px;
  margin: 0;
}

.epi-catalog-form-footer .epi-form-actions {
  flex: 0 0 auto;
  justify-content: flex-end;
  margin: 0;
}

.epi-catalog-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.epi-catalog-metrics .mini-stat-box {
  min-height: 92px;
}

.epi-catalog-filters {
  display: grid;
  grid-template-columns: minmax(280px, 1.6fr) minmax(210px, 1fr) minmax(190px, .9fr);
  gap: 14px;
  align-items: end;
  margin-bottom: 18px;
}

.epi-catalog-filters > div,
.epi-catalog-filters input,
.epi-catalog-filters select,
.epi-catalog-filters .epi-search-filter {
  width: 100%;
  min-width: 0;
}

.epi-catalog-filters label {
  display: block;
  margin-bottom: 6px;
  font-size: .82rem;
  font-weight: 800;
  color: var(--muted);
}

.epi-catalog-table {
  min-width: 980px;
  table-layout: fixed;
}

.epi-catalog-table th:nth-child(1), .epi-catalog-table td:nth-child(1) { width: 18%; }
.epi-catalog-table th:nth-child(2), .epi-catalog-table td:nth-child(2) { width: 9%; }
.epi-catalog-table th:nth-child(3), .epi-catalog-table td:nth-child(3) { width: 10%; }
.epi-catalog-table th:nth-child(4), .epi-catalog-table td:nth-child(4) { width: 18%; }
.epi-catalog-table th:nth-child(5), .epi-catalog-table td:nth-child(5) { width: 15%; }
.epi-catalog-table th:nth-child(6), .epi-catalog-table td:nth-child(6) { width: 18%; }
.epi-catalog-table th:nth-child(7), .epi-catalog-table td:nth-child(7) { width: 12%; }

.epi-catalog-table td:first-child {
  white-space: normal;
  overflow-wrap: anywhere;
}

.epi-ca-validity {
  display: grid;
  gap: 5px;
}

.epi-ca-status {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.15;
  background: #eff6ff;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.epi-ca-status.is-valid { background: #ecfdf5; color: #166534; border-color: #bbf7d0; }
.epi-ca-status.is-near { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.epi-ca-status.is-expired { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.epi-ca-status.is-unknown { background: #f8fafc; color: #64748b; border-color: #e2e8f0; }

.epi-catalog-table th:last-child,
.epi-catalog-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  background: #fff;
  box-shadow: -10px 0 18px rgba(15, 23, 42, .04);
}

.epi-catalog-table thead th:last-child {
  z-index: 5;
  background: #184f86;
}

.epi-table-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
}

.epi-table-actions .btn-table-action {
  min-width: 76px;
  padding: 9px 11px;
}

@media (max-width: 1180px) {
  .epi-catalog-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .epi-catalog-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .epi-catalog-filters { grid-template-columns: 1fr 1fr; }
  .epi-catalog-filters .epi-search-filter { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .epi-catalog-form-grid,
  .epi-catalog-metrics,
  .epi-catalog-filters {
    grid-template-columns: 1fr;
  }
  .epi-catalog-filters .epi-search-filter { grid-column: auto; }
  .epi-catalog-form-footer {
    align-items: stretch;
    flex-direction: column;
  }
  .epi-catalog-form-footer .epi-form-actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
  }
  .epi-catalog-form-footer .epi-form-actions .btn,
  .epi-catalog-form-footer .epi-form-actions label.btn {
    width: 100%;
  }
}


/* === Ferramentas: cadastro horizontal, métricas e filtros — 08/09/2026 === */
.tool-catalog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
}
.tool-catalog-form-card,
.tool-catalog-table-card { width: 100%; min-width: 0; }
.tool-catalog-form-grid {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) minmax(320px, 2fr) minmax(150px, .7fr);
  gap: 16px;
  align-items: end;
}
.tool-catalog-form-grid > div,
.tool-catalog-form-grid input { min-width: 0; width: 100%; }
.tool-catalog-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
}
.tool-catalog-form-footer .form-feedback { flex: 1 1 360px; margin: 0; }
.tool-catalog-form-footer .tool-form-actions { flex: 0 0 auto; justify-content: flex-end; margin: 0; }
.tool-catalog-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.tool-catalog-metrics .mini-stat-box { min-height: 92px; }
.tool-catalog-filters {
  display: grid;
  grid-template-columns: minmax(300px, 1.8fr) minmax(220px, .8fr);
  gap: 14px;
  align-items: end;
  margin-bottom: 18px;
}
.tool-catalog-filters > div,
.tool-catalog-filters input,
.tool-catalog-filters select,
.tool-catalog-filters .tool-search-filter { width: 100%; min-width: 0; }
.tool-catalog-filters label {
  display: block;
  margin-bottom: 6px;
  font-size: .82rem;
  font-weight: 800;
  color: var(--muted);
}
.tool-catalog-table { min-width: 900px; table-layout: fixed; }
.tool-catalog-table th:nth-child(1), .tool-catalog-table td:nth-child(1) { width: 22%; }
.tool-catalog-table th:nth-child(2), .tool-catalog-table td:nth-child(2) { width: 30%; }
.tool-catalog-table th:nth-child(3), .tool-catalog-table td:nth-child(3) { width: 13%; }
.tool-catalog-table th:nth-child(4), .tool-catalog-table td:nth-child(4) { width: 22%; }
.tool-catalog-table th:nth-child(5), .tool-catalog-table td:nth-child(5) { width: 13%; }
.tool-catalog-table td:first-child,
.tool-catalog-table td:nth-child(2) { white-space: normal; overflow-wrap: anywhere; }
.tool-catalog-table th:last-child,
.tool-catalog-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  background: #fff;
  box-shadow: -10px 0 18px rgba(15, 23, 42, .04);
}
.tool-catalog-table thead th:last-child { z-index: 5; background: #184f86; }
.tool-table-actions { display: flex; flex-wrap: nowrap; gap: 8px; }
.tool-table-actions .btn-table-action { min-width: 76px; padding: 9px 11px; }
@media (max-width: 1100px) {
  .tool-catalog-form-grid { grid-template-columns: 1fr 1fr; }
  .tool-catalog-form-grid .tool-observation-field { grid-column: 1 / -1; }
  .tool-catalog-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .tool-catalog-form-grid,
  .tool-catalog-metrics,
  .tool-catalog-filters { grid-template-columns: 1fr; }
  .tool-catalog-form-grid .tool-observation-field { grid-column: auto; }
  .tool-catalog-form-footer { align-items: stretch; flex-direction: column; }
  .tool-catalog-form-footer .tool-form-actions { width: 100%; display: grid; grid-template-columns: 1fr; }
  .tool-catalog-form-footer .tool-form-actions .btn,
  .tool-catalog-form-footer .tool-form-actions label.btn,
  .tool-catalog-form-footer .tool-form-actions a.btn { width: 100%; }
}


/* Entregas Padrão v4 — resumo, filtros e ações compactas */
.standard-delivery-add-item {
  min-width: 150px;
  white-space: nowrap;
}
.standard-delivery-hint {
  padding-block: 10px !important;
  margin-top: 0 !important;
}
.standard-delivery-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 4px 0 16px;
}
.standard-delivery-metrics .mini-stat-box {
  min-height: 88px;
}
.standard-delivery-filters {
  display: grid;
  grid-template-columns: minmax(280px, 1.6fr) minmax(220px, .7fr);
  gap: 14px;
  align-items: end;
  margin-bottom: 16px;
}
.standard-delivery-filters > div,
.standard-delivery-filters input,
.standard-delivery-filters select,
.standard-delivery-filters .epi-search-filter {
  width: 100%;
  min-width: 0;
}
.standard-delivery-filters label {
  display: block;
  margin-bottom: 7px;
  font-weight: 800;
}
.standard-delivery-table {
  min-width: 980px !important;
  table-layout: fixed;
}
.standard-delivery-table th:nth-child(1), .standard-delivery-table td:nth-child(1) { width: 22%; }
.standard-delivery-table th:nth-child(2), .standard-delivery-table td:nth-child(2) { width: 11%; }
.standard-delivery-table th:nth-child(3), .standard-delivery-table td:nth-child(3) { width: 40%; }
.standard-delivery-table th:nth-child(4), .standard-delivery-table td:nth-child(4) { width: 10%; }
.standard-delivery-table th:nth-child(5), .standard-delivery-table td:nth-child(5) { width: 17%; }
.standard-delivery-table td:nth-child(1),
.standard-delivery-table td:nth-child(3) {
  white-space: normal;
  overflow-wrap: anywhere;
}
.standard-delivery-table th:last-child,
.standard-delivery-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  background: #fff;
  box-shadow: -10px 0 18px rgba(15, 76, 129, .06);
}
.standard-delivery-table thead th:last-child {
  z-index: 5;
  background: #184f86;
}
.standard-delivery-actions {
  min-width: 0 !important;
  display: flex !important;
  flex-wrap: wrap;
  gap: 7px;
}
.standard-delivery-actions .btn-table-action {
  padding-inline: 13px;
}
@media (max-width: 900px) {
  .standard-delivery-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .standard-delivery-filters { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .standard-delivery-metrics,
  .standard-delivery-filters { grid-template-columns: 1fr; }
  .standard-delivery-add-item { width: 100%; }
}


/* === Grupos de Troca de EPI - refinamento visual 2026-09-08 === */
.replacement-group-picker-toolbar {
  gap: 12px;
  min-height: 58px;
}
.replacement-group-picker-counts {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.replacement-group-picker-counts strong { color: #0f4c81; }
.replacement-group-picker-counts span { color: #64748b; font-size: .88rem; font-weight: 700; }
.replacement-group-picker-actions { margin-left: auto; }
.replacement-group-picker-search {
  padding: 10px 12px 2px;
  background: #f8fbff;
}
.replacement-group-picker-search input {
  width: 100%;
  min-height: 44px;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  padding: 0 14px;
  background: #fff;
  font: inherit;
}
.replacement-group-picker-options {
  max-height: 250px !important;
  padding-top: 8px;
}
.replacement-group-search-empty {
  padding: 16px !important;
}
.replacement-group-form-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid #cfe3fb;
  border-radius: 18px;
  background: linear-gradient(135deg, #f8fbff, #eff8ff);
}
.replacement-group-selection-summary {
  min-width: 120px;
  display: grid;
  gap: 2px;
}
.replacement-group-selection-summary span { color: #64748b; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.replacement-group-selection-summary strong { color: #0f4c81; font-size: 1.35rem; }
.replacement-group-form-footer .module-actions { margin: 0; }
.replacement-group-form-footer .btn { min-width: 190px; }
.replacement-group-feedback { margin-top: 0 !important; }
.replacement-group-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 8px 0 18px;
}
.replacement-group-stats .mini-stat-box {
  min-height: 86px;
  justify-content: center;
}
.replacement-group-table-tools {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(210px, .38fr);
  gap: 14px;
  align-items: end;
  margin-bottom: 16px;
}
.replacement-group-table-tools label {
  display: block;
  font-weight: 800;
  margin-bottom: 7px;
  color: #0f2747;
}
.replacement-group-table-tools input,
.replacement-group-table-tools select {
  width: 100%;
}
.replacement-groups-table th:nth-child(1) { width: 19%; }
.replacement-groups-table th:nth-child(2) { width: 28%; }
.replacement-groups-table th:nth-child(3) { width: 39%; }
.replacement-groups-table th:nth-child(4) { width: 14%; }
.replacement-group-linked-list { line-height: 1.5; }
.replacement-groups-table .sticky-actions-cell,
.replacement-groups-table thead .th-actions {
  position: sticky;
  right: 0;
  z-index: 2;
  background: inherit;
}
.replacement-groups-table thead .th-actions { background: #174a80; z-index: 4; }
.replacement-groups-table tbody tr:nth-child(odd) .sticky-actions-cell { background: #fff; }
.replacement-groups-table tbody tr:nth-child(even) .sticky-actions-cell { background: #f8fbff; }
@media (max-width: 840px) {
  .replacement-group-stats { grid-template-columns: 1fr; }
  .replacement-group-table-tools { grid-template-columns: 1fr; }
  .replacement-group-form-footer { align-items: stretch; flex-direction: column; }
  .replacement-group-form-footer .module-actions,
  .replacement-group-form-footer .btn { width: 100%; }
  .replacement-group-picker-actions { margin-left: 0; width: 100%; }
  .replacement-group-picker-actions button { flex: 1; }
}

/* Gestão de EPIs — organização por blocos funcionais (2026-09-08) */
.epi-hub-page {
  gap: 26px;
}

.epi-hub-page .page-header h1 {
  margin-top: 10px;
}

.epi-hub-section {
  display: grid;
  gap: 16px;
}

.epi-hub-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding: 0 4px;
}

.epi-hub-section-heading > div {
  display: grid;
  gap: 7px;
}

.epi-hub-section-heading h2 {
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  color: #0f172a;
}

.epi-hub-section-heading > p {
  margin: 0 0 3px;
  max-width: 520px;
  color: var(--muted);
  text-align: right;
}

.epi-hub-grid {
  display: grid;
  gap: 18px;
}

.epi-hub-grid-operation {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.epi-hub-grid-pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.epi-hub-card {
  min-height: 188px;
  padding: 24px;
  gap: 16px;
}

.epi-hub-card h3 {
  margin-bottom: 8px;
  font-size: 1.08rem;
}

.epi-hub-card .muted-text {
  margin: 0;
  line-height: 1.48;
}

.epi-hub-card .btn {
  margin-top: 4px;
}

.epi-hub-card-wide {
  min-height: 174px;
}

@media (max-width: 1100px) {
  .epi-hub-grid-operation {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .epi-hub-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .epi-hub-section-heading > p {
    text-align: left;
  }

  .epi-hub-grid-operation,
  .epi-hub-grid-pair {
    grid-template-columns: 1fr;
  }

  .epi-hub-card,
  .epi-hub-card-wide {
    min-height: auto;
    padding: 20px;
  }
}


/* Movimentações por Estoque — layout compacto 2026-09-08 */
.registro-toolbar-card {
  gap: 12px;
}
.registro-toolbar-card .section-heading {
  margin-bottom: 2px;
}
.registro-toolbar-grid-company {
  grid-template-columns: minmax(190px, 1.1fr) minmax(220px, 1.1fr) minmax(150px, .62fr) auto !important;
  gap: 12px !important;
  align-items: end !important;
}
.registro-toolbar-grid-company .registro-toolbar-actions {
  align-self: end;
}
.registro-toolbar-grid-company .registro-toolbar-actions .btn {
  min-width: 118px;
}
.registro-toolbar-card .form-feedback,
.registro-toolbar-card .result-highlight {
  margin: 0;
}

.movement-quick-card {
  gap: 12px !important;
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}
.movement-quick-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.movement-quick-header h2 {
  margin: 5px 0 2px;
}
.movement-quick-header p {
  margin: 0;
}
.movement-quick-toggle {
  flex: 0 0 auto;
  white-space: nowrap;
}
.movement-quick-form {
  padding-top: 14px;
  border-top: 1px solid rgba(37, 99, 235, .12);
}
.movement-quick-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
}
.movement-quick-footer .form-feedback {
  margin: 0;
}
.movement-quick-footer .btn {
  min-width: 150px;
}

.registro-option-grid {
  gap: 16px !important;
}
.registro-option-card {
  min-height: 168px !important;
  gap: 12px !important;
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}
.registro-option-card h2 {
  margin: 5px 0 6px;
}
.registro-option-card p {
  margin: 0;
  line-height: 1.5;
}
.registro-option-card .btn {
  min-height: 48px;
}

.registro-cards-layout {
  gap: 16px !important;
}
.movement-history-panel {
  gap: 14px !important;
}
.movement-history-panel .section-heading {
  margin-bottom: 0;
}
.movement-history-panel .section-heading h2 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 5px;
}
.movement-history-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 9px;
  border-radius: 999px;
  color: #0f4c81;
  background: rgba(14, 165, 233, .09);
  border: 1px solid rgba(37, 99, 235, .18);
  font-size: .82rem;
  font-weight: 900;
}
.movement-history-filter {
  padding: 12px !important;
  gap: 10px !important;
  border-radius: 16px !important;
}
.movement-history-filter .history-period-fields {
  grid-column: auto !important;
}
.movement-history-filter-entry {
  grid-template-columns: minmax(250px, 1.3fr) minmax(150px, .9fr) minmax(150px, .9fr) auto !important;
}
.movement-history-filter-transfer {
  grid-template-columns: minmax(260px, 1.4fr) minmax(200px, 1fr) auto !important;
}
.movement-history-filter .history-clear-filter {
  grid-column: auto !important;
  justify-self: stretch !important;
  width: auto !important;
  min-width: 125px !important;
}
.movement-history-filter .history-period-fields > div {
  gap: 6px !important;
}
.movement-history-panel .empty-state-card {
  padding: 18px !important;
}

@media (max-width: 1180px) {
  .registro-toolbar-grid-company,
  .movement-history-filter-entry,
  .movement-history-filter-transfer {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .registro-toolbar-grid-company .registro-toolbar-actions,
  .movement-history-filter .history-clear-filter {
    width: 100% !important;
  }
}

@media (max-width: 720px) {
  .registro-toolbar-grid-company,
  .movement-history-filter-entry,
  .movement-history-filter-transfer {
    grid-template-columns: 1fr !important;
  }
  .movement-quick-header,
  .movement-quick-footer {
    grid-template-columns: 1fr !important;
    display: grid !important;
  }
  .movement-quick-toggle,
  .movement-quick-footer .btn,
  .registro-toolbar-grid-company .registro-toolbar-actions .btn {
    width: 100% !important;
  }
  .movement-history-filter .history-period-fields {
    grid-column: 1 !important;
  }
}

/* === RCorps navigation shell v64: sidebar global === */
:root{--rc-sidebar-open:292px;--rc-sidebar-closed:82px;--rc-sidebar-gap:22px}
body.rc-sidebar-enabled{--rc-sidebar-width:var(--rc-sidebar-open);padding-left:var(--rc-sidebar-width);transition:padding-left .22s ease}
body.rc-sidebar-enabled.rc-sidebar-collapsed{--rc-sidebar-width:var(--rc-sidebar-closed)}
.rc-system-sidebar{position:fixed;inset:0 auto 0 0;width:var(--rc-sidebar-width);z-index:2200;display:flex;flex-direction:column;background:linear-gradient(180deg,#0b3b6d 0%,#0d4f87 46%,#0a365f 100%);border-right:1px solid rgba(255,255,255,.18);box-shadow:18px 0 48px rgba(15,76,129,.18);transition:width .22s ease,transform .22s ease;color:#fff;overflow:hidden}
.rc-sidebar-header{min-height:98px;display:flex;align-items:center;gap:10px;padding:18px 14px 14px;border-bottom:1px solid rgba(255,255,255,.12)}
.rc-sidebar-brand{display:flex;align-items:center;min-width:0;gap:10px;color:#fff;text-decoration:none;flex:1;overflow:hidden}
.rc-sidebar-brand img{width:50px;height:50px;object-fit:contain;border-radius:14px;background:#fff;padding:4px;flex:0 0 auto}
.rc-sidebar-brand span{display:grid;min-width:0;line-height:1.1;white-space:nowrap}
.rc-sidebar-brand strong{font-size:1.05rem;letter-spacing:.02em}.rc-sidebar-brand small{font-size:.72rem;opacity:.72;margin-top:4px}
.rc-sidebar-collapse{width:34px;height:34px;border:1px solid rgba(255,255,255,.24);border-radius:11px;background:rgba(255,255,255,.08);color:#fff;font-size:1.6rem;display:grid;place-items:center;cursor:pointer;flex:0 0 auto;transition:.18s ease}
.rc-sidebar-collapse:hover{background:rgba(255,255,255,.16)}
.rc-sidebar-nav{padding:16px 11px 22px;display:grid;gap:8px;overflow-y:auto;overflow-x:hidden;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}
.rc-sidebar-direct,.rc-sidebar-group-toggle{width:100%;min-height:48px;border:0;border-radius:14px;background:transparent;color:#eaf5ff;display:flex;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;font:inherit;font-weight:800;text-align:left;cursor:pointer;transition:.16s ease;white-space:nowrap}
.rc-sidebar-direct:hover,.rc-sidebar-group-toggle:hover{background:rgba(255,255,255,.1)}
.rc-sidebar-direct.is-active{background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(34,211,238,.18));box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.rc-sidebar-icon{width:28px;height:28px;display:grid;place-items:center;font-size:1.08rem;flex:0 0 28px}
.rc-sidebar-group-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.rc-sidebar-chevron{font-size:1.45rem;transform:rotate(0);transition:transform .18s ease;opacity:.72;margin-left:auto}.rc-sidebar-group.is-open .rc-sidebar-chevron{transform:rotate(90deg)}
.rc-sidebar-submenu{display:grid;gap:3px;max-height:0;overflow:hidden;opacity:.2;transition:max-height .24s ease,opacity .18s ease;padding-left:11px}
.rc-sidebar-group.is-open .rc-sidebar-submenu{max-height:760px;opacity:1;margin-top:4px;margin-bottom:6px}
.rc-sidebar-item{display:flex;align-items:center;gap:9px;min-height:38px;padding:8px 9px 8px 17px;border-radius:11px;color:rgba(237,248,255,.86);text-decoration:none;font-size:.86rem;font-weight:650;line-height:1.18;transition:.15s ease}
.rc-sidebar-item:hover{background:rgba(255,255,255,.08);color:#fff}.rc-sidebar-item.is-active{background:rgba(255,255,255,.14);color:#fff;font-weight:850}
.rc-sidebar-dot{width:6px;height:6px;border-radius:99px;background:#56dfff;box-shadow:0 0 0 4px rgba(86,223,255,.09);flex:0 0 auto}
.rc-sidebar-footer{display:grid;gap:10px;padding:14px;border-top:1px solid rgba(255,255,255,.12);background:rgba(3,29,55,.18)}
.rc-sidebar-user{display:flex;align-items:center;gap:9px;min-width:0;color:#fff;font-size:.83rem;font-weight:700}.rc-sidebar-user>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-sidebar-user-avatar{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#159ee5,#26cee6);display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.rc-sidebar-logout{min-height:40px;border-radius:11px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;font-weight:850;cursor:pointer}.rc-sidebar-logout:hover{background:rgba(239,68,68,.25)}
body.rc-sidebar-collapsed .rc-sidebar-brand span,body.rc-sidebar-collapsed .rc-sidebar-group-label,body.rc-sidebar-collapsed .rc-sidebar-chevron,body.rc-sidebar-collapsed .rc-sidebar-item-label,body.rc-sidebar-collapsed .rc-sidebar-user>span:last-child,body.rc-sidebar-collapsed .rc-sidebar-logout{display:none}
body.rc-sidebar-collapsed .rc-sidebar-header{padding-left:15px;padding-right:15px;justify-content:center;flex-wrap:wrap;align-content:center}
body.rc-sidebar-collapsed .rc-sidebar-brand{flex:0 0 50px}body.rc-sidebar-collapsed .rc-sidebar-collapse{width:50px;height:28px;font-size:1.3rem;transform:rotate(180deg)}
body.rc-sidebar-collapsed .rc-sidebar-direct,body.rc-sidebar-collapsed .rc-sidebar-group-toggle{justify-content:center;padding-left:8px;padding-right:8px}
body.rc-sidebar-collapsed .rc-sidebar-submenu{display:none!important}body.rc-sidebar-collapsed .rc-sidebar-user{justify-content:center}
.rc-sidebar-mobile-toggle{display:none;position:fixed;left:14px;top:14px;width:46px;height:46px;border:0;border-radius:14px;background:#0f4c81;color:#fff;font-size:1.3rem;z-index:2300;box-shadow:0 12px 30px rgba(15,76,129,.28);cursor:pointer}.rc-sidebar-overlay{display:none}
body.rc-sidebar-enabled .rcorps-brand-strip{display:none!important}
body.rc-sidebar-enabled .page-shell,body.rc-sidebar-enabled .dashboard-shell{padding-top:24px}
body.rc-sidebar-enabled .page-header .topbar-actions>a[href*="dashboard"],body.rc-sidebar-enabled .page-header .topbar-actions>a[href*="cadastros.html"],body.rc-sidebar-enabled .page-header .topbar-actions>a[href*="estoque-hub.html"],body.rc-sidebar-enabled .page-header>a[href*="dashboard"],body.rc-sidebar-enabled .page-header>a[href*="cadastros.html"],body.rc-sidebar-enabled .page-header>a[href*="estoque-hub.html"],body.rc-sidebar-enabled .page-header .global-logout-btn,body.rc-sidebar-enabled .page-header-advanced .global-logout-btn,body.rc-sidebar-enabled .topbar .global-logout-btn{display:none!important}
body.rc-sidebar-enabled .page-header,body.rc-sidebar-enabled .page-header-advanced{margin-top:0}

@media(max-width:900px){
 body.rc-sidebar-enabled,body.rc-sidebar-enabled.rc-sidebar-collapsed{padding-left:0;--rc-sidebar-width:min(88vw,310px)}
 .rc-system-sidebar{transform:translateX(-104%);width:min(88vw,310px)}body.rc-sidebar-mobile-open .rc-system-sidebar{transform:translateX(0)}
 .rc-sidebar-mobile-toggle{display:grid;place-items:center}body.rc-sidebar-mobile-open .rc-sidebar-mobile-toggle{opacity:0;pointer-events:none}
 .rc-sidebar-overlay{display:block;position:fixed;inset:0;border:0;background:rgba(2,18,34,.48);backdrop-filter:blur(3px);z-index:2150;opacity:0;pointer-events:none;transition:.18s ease}body.rc-sidebar-mobile-open .rc-sidebar-overlay{opacity:1;pointer-events:auto}
 body.rc-sidebar-collapsed .rc-sidebar-brand span,body.rc-sidebar-collapsed .rc-sidebar-group-label,body.rc-sidebar-collapsed .rc-sidebar-chevron,body.rc-sidebar-collapsed .rc-sidebar-item-label,body.rc-sidebar-collapsed .rc-sidebar-user>span:last-child,body.rc-sidebar-collapsed .rc-sidebar-logout{display:initial}
 body.rc-sidebar-collapsed .rc-sidebar-header{padding:18px 14px 14px;justify-content:initial;flex-wrap:nowrap}body.rc-sidebar-collapsed .rc-sidebar-brand{flex:1}body.rc-sidebar-collapsed .rc-sidebar-collapse{display:none}body.rc-sidebar-collapsed .rc-sidebar-submenu{display:grid!important}
 .rc-sidebar-collapse{display:none}
 body.rc-sidebar-enabled .page-shell,body.rc-sidebar-enabled .dashboard-shell{padding-top:70px}
}

/* === Dashboard gerencial v64 === */
.dashboard-analytics-shell{display:grid;gap:22px;padding-bottom:34px}
.dashboard-command-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 30px}
.dashboard-command-header h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1;margin:8px 0 10px}.dashboard-header-side{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.dashboard-live-badge{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(14,165,233,.22);border-radius:14px;background:rgba(239,248,255,.78);font-weight:800;color:#0f4c81}.dashboard-live-badge i{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.1)}
.dashboard-scope-card{padding:24px 28px;display:grid;gap:18px}.dashboard-scope-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.dashboard-scope-head h2{margin:6px 0 4px}.dashboard-scope-current{display:grid;gap:3px;min-width:230px;padding:13px 16px;border-radius:15px;background:linear-gradient(135deg,rgba(15,76,129,.07),rgba(34,211,238,.08));border:1px solid rgba(15,76,129,.12)}.dashboard-scope-current span{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.dashboard-scope-current strong{color:#0f4c81}
.dashboard-scope-controls{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:16px;align-items:end}.dashboard-scope-controls label{display:block;font-weight:800;margin-bottom:7px}.dashboard-scope-controls .form-feedback{margin:0}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.dashboard-kpi-card{min-height:118px;padding:18px;border-radius:20px;background:linear-gradient(150deg,rgba(255,255,255,.97),rgba(238,248,255,.94));border:1px solid rgba(14,165,233,.16);box-shadow:0 14px 34px rgba(15,76,129,.09);display:grid;align-content:center;gap:5px}.dashboard-kpi-card strong{font-size:clamp(1.35rem,2.4vw,2.1rem);color:#0f4c81;line-height:1}.dashboard-kpi-card span{font-size:.8rem;font-weight:750;color:var(--muted)}
.dashboard-all-indicators{display:grid;gap:26px}.dashboard-indicator-group{display:grid;gap:13px}.dashboard-indicator-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-indicator-group-head>strong{font-size:.82rem;color:var(--muted)}
.dashboard-indicator-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-indicator-card{position:relative;padding:20px;border-radius:22px;background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(240,249,255,.95));border:1px solid rgba(14,165,233,.16);box-shadow:0 14px 36px rgba(15,76,129,.08);display:grid;gap:14px;min-height:310px;overflow:hidden}.dashboard-indicator-card::after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-55px;top:-55px;background:radial-gradient(circle,rgba(34,211,238,.12),transparent 68%);pointer-events:none}.dashboard-indicator-card-head h3{margin:0 0 6px;font-size:1.05rem}.dashboard-indicator-card-head p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.42;min-height:2.35em}.dashboard-indicator-visual{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px;min-height:170px}.dashboard-mini-chart{width:150px;height:150px;position:relative;display:grid;place-items:center}.dashboard-mini-chart svg{width:150px;height:150px;filter:drop-shadow(0 8px 16px rgba(15,76,129,.12))}.dashboard-mini-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.dashboard-mini-center strong{font-size:1rem;color:#0f4c81;max-width:82px;overflow:hidden;text-overflow:ellipsis}.dashboard-mini-center span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.dashboard-mini-empty{width:150px;height:150px;border-radius:50%;border:14px solid rgba(148,163,184,.14);display:grid;place-items:center;color:var(--muted);font-weight:800;font-size:.8rem}.dashboard-mini-legend{display:grid;gap:8px;min-width:0}.dashboard-mini-legend>div{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:7px;align-items:center;font-size:.75rem}.dashboard-mini-legend i{width:9px;height:9px;border-radius:3px}.dashboard-mini-legend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334155}.dashboard-mini-legend strong{font-size:.75rem;color:#0f172a}.dashboard-mini-legend small,.dashboard-mini-legend-empty{font-size:.7rem;color:var(--muted)}.dashboard-indicator-highlight{display:flex;align-items:baseline;gap:7px;padding-top:10px;border-top:1px solid rgba(148,163,184,.18)}.dashboard-indicator-highlight strong{font-size:1.25rem;color:#0f4c81}.dashboard-indicator-highlight span{font-size:.75rem;color:var(--muted);font-weight:700}.dashboard-inline-empty,.dashboard-no-indicators{padding:30px;text-align:center}
@media(max-width:1280px){.dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-indicator-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-command-header,.dashboard-scope-head{align-items:flex-start;flex-direction:column}.dashboard-header-side{justify-content:flex-start}.dashboard-scope-controls{grid-template-columns:1fr}.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-indicator-card-grid{grid-template-columns:1fr}.dashboard-indicator-visual{grid-template-columns:130px minmax(0,1fr)}.dashboard-mini-chart,.dashboard-mini-chart svg,.dashboard-mini-empty{width:130px;height:130px}.dashboard-scope-current{width:100%}}
@media(max-width:430px){.dashboard-kpi-grid{grid-template-columns:1fr}.dashboard-indicator-visual{grid-template-columns:1fr;justify-items:center}.dashboard-mini-legend{width:100%}}

/* === Ajuste v65: sidebar mais compacto + gráficos dashboard mais tecnológicos === */
:root{
  --rc-sidebar-open:272px;
  --rc-sidebar-closed:74px;
  --rc-sidebar-gap:16px;
}
body.rc-sidebar-enabled{padding-left:var(--rc-sidebar-width)}
.rc-system-sidebar{box-shadow:14px 0 40px rgba(15,76,129,.16)}
.rc-sidebar-header{min-height:76px;gap:9px;padding:14px 12px 12px}
.rc-sidebar-brand{gap:9px}
.rc-sidebar-brand img{width:44px;height:44px;border-radius:12px;padding:3px}
.rc-sidebar-brand strong{font-size:1rem}
.rc-sidebar-brand small{font-size:.68rem;margin-top:2px}
.rc-sidebar-collapse{width:30px;height:30px;border-radius:10px;font-size:1.25rem}
.rc-sidebar-nav{padding:10px 8px 14px;gap:4px}
.rc-sidebar-direct,.rc-sidebar-group-toggle{min-height:40px;padding:8px 10px;gap:10px;border-radius:13px;font-size:.98rem}
.rc-sidebar-icon{width:24px;height:24px;flex:0 0 24px;font-size:1rem}
.rc-sidebar-chevron{font-size:1.2rem}
.rc-sidebar-submenu{gap:2px;padding-left:8px}
.rc-sidebar-group.is-open .rc-sidebar-submenu{margin-top:2px;margin-bottom:4px}
.rc-sidebar-item{min-height:32px;padding:6px 8px 6px 14px;border-radius:10px;font-size:.82rem;gap:8px}
.rc-sidebar-dot{width:5px;height:5px;box-shadow:0 0 0 3px rgba(86,223,255,.08)}
.rc-sidebar-footer{gap:8px;padding:10px 12px}
.rc-sidebar-user{font-size:.79rem;gap:8px}
.rc-sidebar-user-avatar{width:28px;height:28px;border-radius:9px}
.rc-sidebar-logout{min-height:36px;border-radius:10px;font-size:.9rem}
body.rc-sidebar-collapsed .rc-sidebar-header{padding-left:12px;padding-right:12px}
body.rc-sidebar-collapsed .rc-sidebar-brand{flex:0 0 44px}
body.rc-sidebar-collapsed .rc-sidebar-collapse{width:44px;height:26px;font-size:1.1rem}
body.rc-sidebar-collapsed .rc-sidebar-direct,body.rc-sidebar-collapsed .rc-sidebar-group-toggle{padding-left:6px;padding-right:6px}

.dashboard-indicator-card{gap:12px;min-height:320px}
.dashboard-indicator-visual{
  position:relative;
  grid-template-columns:170px minmax(0,1fr);
  align-items:center;
  gap:16px;
  min-height:190px;
  padding:18px;
  border-radius:24px;
  border:1px solid rgba(120,205,255,.14);
  background:linear-gradient(160deg,rgba(9,31,53,.9),rgba(5,18,33,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 34px rgba(0,0,0,.16);
  overflow:hidden;
  isolation:isolate;
}
.dashboard-indicator-visual::before,.dashboard-indicator-visual::after{
  content:"";
  position:absolute;
  width:34px;
  height:34px;
  pointer-events:none;
  opacity:.84;
}
.dashboard-indicator-visual::before{top:12px;left:12px;border-top:2px solid rgba(22,217,255,.55);border-left:2px solid rgba(22,217,255,.55)}
.dashboard-indicator-visual::after{right:12px;bottom:12px;border-right:2px solid rgba(124,92,255,.55);border-bottom:2px solid rgba(124,92,255,.55)}
.dashboard-mini-shell{position:relative;display:grid;place-items:center;width:160px;height:160px;isolation:isolate}
.dashboard-mini-shell.is-empty{width:160px;height:160px}
.dashboard-mini-grid{position:absolute;inset:12%;border-radius:50%;opacity:.28;background:linear-gradient(rgba(22,217,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(22,217,255,.18) 1px,transparent 1px);background-size:18px 18px;mask-image:radial-gradient(circle,#000 0 58%,transparent 76%);animation:dashboard-mini-grid-pulse 4s ease-in-out infinite}
.dashboard-mini-orbit{position:absolute;border-radius:50%;pointer-events:none}
.dashboard-mini-orbit-one{inset:4%;border:1px dashed rgba(22,217,255,.28);box-shadow:0 0 24px rgba(22,217,255,.06);animation:dashboard-mini-orbit-spin 20s linear infinite}
.dashboard-mini-orbit-one::before,.dashboard-mini-orbit-two::before{content:"";position:absolute;top:50%;left:-3px;width:6px;height:6px;border-radius:50%;background:#16d9ff;box-shadow:0 0 12px #16d9ff,0 0 22px rgba(22,217,255,.48)}
.dashboard-mini-orbit-two{inset:15%;border:1px solid rgba(124,92,255,.22);animation:dashboard-mini-orbit-spin 15s linear infinite reverse}
.dashboard-mini-orbit-two::before{top:auto;left:auto;right:-3px;bottom:28%;width:5px;height:5px;background:#7c5cff;box-shadow:0 0 10px #7c5cff,0 0 20px rgba(124,92,255,.46)}
.dashboard-mini-chart{position:relative;z-index:2;width:150px;height:150px;display:grid;place-items:center}
.dashboard-mini-chart svg{width:150px;height:150px;overflow:visible;filter:drop-shadow(0 14px 26px rgba(0,0,0,.28))}
.dashboard-mini-track{fill:none;stroke:rgba(133,179,214,.1);stroke-width:26}
.dashboard-mini-guide{fill:none;stroke:rgba(139,213,255,.2);stroke-width:1;stroke-dasharray:4 7;transform-origin:center}
.dashboard-mini-guide-inner{stroke:rgba(124,92,255,.26);stroke-dasharray:2 6}
.dashboard-mini-guide-outer{animation:dashboard-mini-orbit-spin 26s linear infinite}
.dashboard-mini-guide-inner{animation:dashboard-mini-orbit-spin 18s linear infinite reverse}
.dashboard-mini-segment{stroke:rgba(255,255,255,.24);stroke-width:1;opacity:0;animation:dashboard-mini-segment-enter .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:var(--mini-segment-delay,0ms);transform-origin:center;transform-box:view-box}
.dashboard-mini-center{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:3px;text-align:center;padding:12px;pointer-events:none}
.dashboard-mini-center::before{content:"";position:absolute;left:50%;top:50%;width:72px;height:72px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 45% 34%,rgba(25,74,112,.95),rgba(4,17,31,.98) 68%),#071626;border:1px solid rgba(22,217,255,.28);box-shadow:inset 0 0 18px rgba(22,217,255,.09),0 0 0 6px rgba(7,30,50,.72),0 0 28px rgba(22,217,255,.14);z-index:-1}
.dashboard-mini-status{display:inline-flex;align-items:center;gap:5px;font-size:.52rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#eff8ff;text-shadow:0 0 10px rgba(22,217,255,.24)}
.dashboard-mini-status i{width:5px;height:5px;border-radius:50%;background:#00e6a8;box-shadow:0 0 10px rgba(0,230,168,.9);animation:dashboard-mini-live-pulse 1.8s ease-in-out infinite}
.dashboard-mini-center strong{font-size:1.05rem;color:#fff;line-height:1;letter-spacing:-.04em;text-shadow:0 0 14px rgba(22,217,255,.26);max-width:80px;overflow-wrap:anywhere}
.dashboard-mini-center span:last-child{font-size:.64rem;color:#e6f4ff;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.dashboard-mini-empty{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;color:#d8ebff;font-weight:800;font-size:.8rem;background:radial-gradient(circle at 50% 40%,rgba(23,74,110,.62),rgba(5,18,33,.96) 72%);border:1px solid rgba(120,205,255,.18);box-shadow:inset 0 0 18px rgba(22,217,255,.06),0 0 28px rgba(22,217,255,.08)}
.dashboard-mini-legend{display:grid;gap:10px;min-width:0}
.dashboard-mini-legend-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;border-radius:15px;border:1px solid rgba(132,188,226,.12);background:linear-gradient(135deg,rgba(17,48,73,.6),rgba(7,25,43,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.dashboard-mini-legend-item i{width:10px;height:34px;border-radius:999px;box-shadow:0 0 0 4px rgba(255,255,255,.02),0 0 14px var(--mini-legend-color, rgba(22,217,255,.25))}
.dashboard-mini-legend-copy{display:grid;gap:4px;min-width:0}
.dashboard-mini-legend-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eef7ff;font-size:.8rem;font-weight:800}
.dashboard-mini-legend-copy small{font-size:.72rem;color:#bfdcff;font-weight:700}
.dashboard-mini-legend-copy em{display:block;height:4px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;font-style:normal;margin-top:2px}
.dashboard-mini-legend-copy em b{display:block;height:100%;border-radius:inherit;box-shadow:0 0 12px currentColor}
.dashboard-mini-legend-item strong{font-size:.8rem;color:#fff;white-space:nowrap}
.dashboard-mini-more,.dashboard-mini-legend-empty{font-size:.74rem;color:#d1e6f8}
.dashboard-indicator-card-head h3{margin-bottom:4px}
.dashboard-indicator-card-head p,.dashboard-indicator-highlight span{color:#52667d}
.dashboard-indicator-highlight{padding-top:9px}
@keyframes dashboard-mini-orbit-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes dashboard-mini-grid-pulse{0%,100%{opacity:.24;transform:scale(1)}50%{opacity:.38;transform:scale(1.02)}}
@keyframes dashboard-mini-segment-enter{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes dashboard-mini-live-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}
@media(max-width:980px){
  .dashboard-indicator-visual{grid-template-columns:150px minmax(0,1fr)}
  .dashboard-mini-shell,.dashboard-mini-shell.is-empty{width:148px;height:148px}
}
@media(max-width:760px){
  .dashboard-indicator-visual{grid-template-columns:1fr;justify-items:center;padding:16px}
  .dashboard-mini-legend{width:100%}
}


/* === Ajustes finos menu lateral + dashboard indicadores expandidos v3 === */
:root{--rc-sidebar-open:262px;--rc-sidebar-closed:74px;--rc-sidebar-gap:14px}
.rc-sidebar-header{min-height:76px;padding:14px 12px 12px;gap:8px}
.rc-sidebar-brand{gap:9px}
.rc-sidebar-brand img{width:42px;height:42px;border-radius:12px;padding:3px}
.rc-sidebar-brand strong{font-size:.98rem}.rc-sidebar-brand small{font-size:.68rem;margin-top:3px}
.rc-sidebar-collapse{width:32px;height:32px;border-radius:10px;font-size:1.4rem}
.rc-sidebar-nav{padding:12px 8px 16px;gap:4px}
.rc-sidebar-direct,.rc-sidebar-group-toggle{min-height:42px;padding:8px 10px;border-radius:12px;gap:10px;font-size:.96rem}
.rc-sidebar-icon{width:24px;height:24px;flex:0 0 24px;font-size:1rem}
.rc-sidebar-submenu{padding-left:8px;gap:2px}
.rc-sidebar-group.is-open .rc-sidebar-submenu{margin-top:3px;margin-bottom:5px}
.rc-sidebar-item{min-height:34px;padding:7px 8px 7px 14px;border-radius:10px;font-size:.82rem}
.rc-sidebar-footer{gap:8px;padding:10px}
.rc-sidebar-user{font-size:.79rem}.rc-sidebar-user-avatar{width:30px;height:30px;border-radius:9px}
.rc-sidebar-logout{min-height:36px;border-radius:10px;font-size:.92rem}
body.rc-sidebar-collapsed .rc-sidebar-collapse{width:42px;height:26px;font-size:1.15rem}

.dashboard-indicator-card{min-height:338px}
.dashboard-indicator-card-head p{min-height:auto}
.dashboard-indicator-visual{position:relative;grid-template-columns:170px minmax(0,1fr);gap:14px;align-items:center;min-height:182px;padding:16px 18px 18px;border-radius:26px;border:1px solid rgba(79,188,255,.12);background:linear-gradient(145deg,rgba(5,19,34,.97),rgba(8,30,52,.94) 55%,rgba(6,20,35,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 12px 28px rgba(2,8,23,.12);overflow:hidden}
.dashboard-indicator-visual::before,.dashboard-indicator-visual::after{content:"";position:absolute;pointer-events:none}
.dashboard-indicator-visual::before{left:16px;top:16px;width:42px;height:42px;border-top:2px solid rgba(22,217,255,.62);border-left:2px solid rgba(22,217,255,.62);opacity:.85}
.dashboard-indicator-visual::after{right:16px;bottom:16px;width:42px;height:42px;border-right:2px solid rgba(124,92,255,.62);border-bottom:2px solid rgba(124,92,255,.62);opacity:.85}
.dashboard-mini-shell,.dashboard-mini-shell.is-empty{width:164px;height:164px}
.dashboard-mini-chart,.dashboard-mini-chart svg,.dashboard-mini-empty{width:160px;height:160px}
.dashboard-mini-chart{z-index:1}
.dashboard-mini-center strong,.dashboard-mini-center span,.dashboard-mini-status{color:#fff!important}
.dashboard-mini-center::before{width:76px;height:76px}
.dashboard-mini-legend{position:relative;z-index:1;align-self:stretch}
.dashboard-mini-legend-item{grid-template-columns:10px minmax(0,1fr) auto;align-items:flex-start;padding:12px 12px 10px}
.dashboard-mini-legend-copy span{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.18;display:block;word-break:break-word}
.dashboard-mini-legend-copy small{line-height:1.12}
.dashboard-mini-legend-item strong{padding-top:2px;align-self:flex-start}
.dashboard-chart-expand{position:absolute;right:14px;bottom:14px;z-index:2;width:28px;height:28px;border:1px solid rgba(110,210,255,.32);border-radius:8px;background:rgba(6,22,38,.86);color:#eaf7ff;font-size:1rem;font-weight:800;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 22px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.03);transition:transform .16s ease, background .16s ease, border-color .16s ease}
.dashboard-chart-expand:hover{transform:scale(1.05);background:rgba(10,33,56,.96);border-color:rgba(110,210,255,.54)}
.dashboard-chart-expand:focus-visible{outline:2px solid rgba(22,217,255,.5);outline-offset:2px}

.indicator-modal-dialog{position:relative}
.indicator-modal-close-icon{min-width:40px!important;width:40px;height:40px;padding:0!important;border-radius:12px!important;font-size:1.1rem!important;display:grid;place-items:center}

@media(max-width:1280px){.dashboard-indicator-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-indicator-visual{grid-template-columns:1fr;justify-items:center}.dashboard-mini-legend{width:100%}.dashboard-chart-expand{right:12px;bottom:12px}}


/* === Dashboard v4: compactação real do menu + gráficos fluidos sem quebra === */
/* O grande espaçamento vinha do grid esticando as linhas para ocupar toda a altura. */
.rc-sidebar-nav{
  display:grid;
  grid-auto-rows:max-content;
  align-content:start;
  justify-content:stretch;
  gap:2px;
  padding:8px 7px 12px;
}
.rc-sidebar-direct,.rc-sidebar-group-toggle{
  min-height:38px;
  padding:7px 9px;
  gap:9px;
  border-radius:11px;
  font-size:.94rem;
}
.rc-sidebar-group{align-self:start}
.rc-sidebar-group.is-open .rc-sidebar-submenu{margin-top:2px;margin-bottom:3px}
.rc-sidebar-submenu{grid-auto-rows:max-content;align-content:start;gap:1px;padding-left:6px}
.rc-sidebar-item{min-height:31px;padding:6px 7px 6px 13px;font-size:.8rem}
.rc-sidebar-header{min-height:68px;padding:10px 10px 9px}
.rc-sidebar-brand img{width:40px;height:40px}
.rc-sidebar-footer{padding:8px 9px;gap:6px}
.rc-sidebar-logout{min-height:33px}

/* Cards se ajustam ao conteúdo e quebram de linha quando não couberem mais. */
.dashboard-indicator-card-grid{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:16px;
}
.dashboard-indicator-card{
  flex:1 1 500px;
  width:auto;
  min-width:min(100%,500px);
  max-width:100%;
}
.dashboard-indicator-visual{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  gap:16px;
  width:100%;
  min-width:0;
}
.dashboard-mini-shell,.dashboard-mini-shell.is-empty{
  flex:0 0 164px;
}
.dashboard-mini-legend{
  flex:1 0 auto;
  min-width:max-content;
  max-width:100%;
}
.dashboard-mini-legend-item{
  min-width:max-content;
  grid-template-columns:10px max-content auto;
  align-items:center;
  column-gap:9px;
}
.dashboard-mini-legend-copy{
  min-width:max-content;
}
.dashboard-mini-legend-copy span,
.dashboard-mini-legend-copy small,
.dashboard-mini-legend-item strong,
.dashboard-mini-more,
.dashboard-mini-center strong,
.dashboard-mini-center span{
  color:#fff!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:normal!important;
}
.dashboard-mini-legend-copy span{display:block;line-height:1.08}
.dashboard-mini-legend-copy small{display:block;line-height:1.08}
.dashboard-mini-legend-copy em{min-width:64px}
.dashboard-mini-center{gap:2px}
.dashboard-mini-center strong{font-size:1.12rem;max-width:none}
.dashboard-mini-center span:last-child{font-size:.64rem}
.dashboard-mini-status{display:none!important}

/* Mantém o botão de expansão discreto e sempre disponível. */
.dashboard-chart-expand{
  width:26px;
  height:26px;
  right:10px;
  bottom:10px;
  border-radius:7px;
  font-size:.9rem;
}

/* Se a legenda exigir mais largura, o card cresce; se não couber, desce para a próxima fileira. */
@media(min-width:761px){
  .dashboard-indicator-card{max-width:100%}
}
@media(max-width:760px){
  .dashboard-indicator-card{flex-basis:100%;min-width:100%}
  .dashboard-indicator-visual{flex-direction:column;align-items:center}
  .dashboard-mini-legend{width:100%;min-width:0}
  .dashboard-mini-legend-item{min-width:0;grid-template-columns:10px minmax(0,1fr) auto}
  .dashboard-mini-legend-copy{min-width:0}
  .dashboard-mini-legend-copy span,.dashboard-mini-legend-copy small{white-space:normal!important}
}


/* === Dashboard v5: painel enxuto e contínuo === */
body[data-indicator-dashboard="true"] .global-logout-btn,
body[data-indicator-dashboard="true"] .global-logout-floating{
  display:none!important;
}
body[data-indicator-dashboard="true"] .dashboard-shell{
  padding-top:14px!important;
  padding-bottom:22px!important;
}
body[data-indicator-dashboard="true"] .dashboard-analytics-shell{
  display:grid;
  gap:12px;
}
.dashboard-command-header-compact{
  min-height:96px;
  padding:18px 22px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
}
.dashboard-command-header-compact h1{
  margin:0;
  font-size:clamp(2rem,3.6vw,3.4rem);
  line-height:1;
  letter-spacing:-.04em;
}
.dashboard-command-header-compact .soft-tag,
.dashboard-command-header-compact #currentUserLabel,
.dashboard-command-header-compact .dashboard-header-side{
  display:none!important;
}
.dashboard-bell{
  width:42px;
  height:42px;
  padding:0;
  display:grid;
  place-items:center;
  border:1px solid rgba(14,165,233,.22);
  border-radius:13px;
  background:rgba(255,255,255,.78);
  font-size:1.05rem;
  cursor:pointer;
}
.dashboard-company-filter{
  padding:14px 18px!important;
  min-height:0!important;
}
.dashboard-company-filter-field{
  width:min(420px,100%);
  display:grid;
  gap:6px;
}
.dashboard-company-filter-field label{
  margin:0;
  font-size:.8rem;
  font-weight:900;
  color:#163b62;
}
.dashboard-company-filter-field select{
  min-height:44px;
}
.dashboard-scope-head,
.dashboard-scope-current,
.dashboard-scope-controls .form-feedback,
#indicatorCompanyFeedback{
  display:none!important;
}
.dashboard-kpi-grid{
  gap:10px!important;
  margin:0!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
}
.dashboard-kpi-card{
  min-height:92px!important;
  padding:15px 16px!important;
  border-radius:18px!important;
}
.dashboard-kpi-card strong{
  font-size:clamp(1.45rem,2.1vw,2rem)!important;
  line-height:1!important;
}
.dashboard-kpi-card span{
  margin-top:6px!important;
  font-size:.73rem!important;
}
.dashboard-all-indicators{
  margin:0!important;
  padding:0!important;
}
.dashboard-indicator-card-grid-flat{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:stretch!important;
  gap:12px!important;
}
.dashboard-indicator-card-compact{
  flex:1 1 500px!important;
  min-width:min(100%,500px)!important;
  max-width:100%!important;
  min-height:0!important;
  padding:14px!important;
  gap:10px!important;
  border-radius:20px!important;
}
.dashboard-indicator-card-compact::after{
  display:none!important;
}
.dashboard-indicator-card-compact .dashboard-indicator-card-head{
  min-height:0!important;
  padding:0 2px!important;
}
.dashboard-indicator-card-compact .dashboard-indicator-card-head h3{
  margin:0!important;
  font-size:1rem!important;
  line-height:1.2!important;
}
.dashboard-indicator-card-compact .dashboard-indicator-card-head p{
  display:none!important;
}
.dashboard-indicator-card-compact .dashboard-indicator-visual{
  min-height:176px!important;
  padding:14px 16px 16px!important;
  border-radius:22px!important;
}
.dashboard-indicator-group,
.dashboard-indicator-group-head{
  display:contents!important;
}
.dashboard-indicator-group-head{
  margin:0!important;
  padding:0!important;
  min-height:0!important;
}
.dashboard-indicator-group-head>*{
  display:none!important;
}
.dashboard-indicator-highlight{
  display:none!important;
}
.dashboard-chart-expand{
  width:24px!important;
  height:24px!important;
  right:9px!important;
  bottom:9px!important;
  font-size:.82rem!important;
}
.dashboard-mini-empty{
  width:142px!important;
  height:142px!important;
  border-width:1px!important;
}
body[data-indicator-dashboard="true"] .footer-note{
  display:none!important;
}
@media(max-width:1280px){
  .dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .dashboard-command-header-compact{min-height:76px;padding:14px 16px!important}
  .dashboard-command-header-compact h1{font-size:2rem}
  .dashboard-company-filter{padding:12px 14px!important}
  .dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .dashboard-kpi-card{min-height:80px!important;padding:12px!important}
  .dashboard-indicator-card-compact{flex-basis:100%!important;min-width:100%!important;padding:12px!important}
}
@media(max-width:430px){
  .dashboard-kpi-grid{grid-template-columns:1fr 1fr!important}
}


/* === Sidebar utilities v67: Atualizar sistema + Ajuda dentro do menu lateral === */
.rc-sidebar-utilities{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  width:100%;
  min-width:0;
}
.rc-sidebar-utility-slot{display:block;min-width:0;width:100%}
.rc-sidebar-utilities .force-refresh-btn,
.rc-sidebar-utilities .rcorps-help-button{
  position:static !important;
  inset:auto !important;
  z-index:auto !important;
  transform:none !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  min-height:38px !important;
  height:auto !important;
  margin:0 !important;
  padding:8px 10px !important;
  border-radius:10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  box-shadow:none !important;
  font-size:.82rem !important;
  font-weight:850 !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  visibility:visible !important;
  opacity:1 !important;
}
.rc-sidebar-utilities .force-refresh-btn{
  color:#f3f9ff !important;
  background:rgba(255,255,255,.07) !important;
  border:1px solid rgba(147,197,253,.32) !important;
}
.rc-sidebar-utilities .force-refresh-btn:hover{
  background:rgba(96,165,250,.16) !important;
  border-color:rgba(147,197,253,.56) !important;
}
.rc-sidebar-utilities .rcorps-help-button{
  color:#ffffff !important;
  background:linear-gradient(135deg,rgba(22,101,52,.78),rgba(22,163,74,.82)) !important;
  border:1.5px solid #22c55e !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 0 0 1px rgba(34,197,94,.08) !important;
  text-decoration:none !important;
}
.rc-sidebar-utilities .rcorps-help-button:hover{
  background:linear-gradient(135deg,rgba(22,101,52,.96),rgba(22,163,74,.98)) !important;
  border-color:#4ade80 !important;
}
.rc-sidebar-utilities .force-refresh-icon,
.rc-sidebar-utilities .rcorps-help-button-icon{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  flex:0 0 24px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:8px !important;
  font-size:.95rem !important;
  background:rgba(255,255,255,.10) !important;
}
.rc-sidebar-utilities .force-refresh-label,
.rc-sidebar-utilities .rcorps-help-button-text{
  position:static !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
  clip:auto !important;
  white-space:nowrap !important;
  display:inline-flex !important;
  min-height:0 !important;
}
body.rc-sidebar-collapsed .rc-sidebar-utilities{
  gap:6px;
}
body.rc-sidebar-collapsed .rc-sidebar-utilities .force-refresh-btn,
body.rc-sidebar-collapsed .rc-sidebar-utilities .rcorps-help-button{
  width:44px !important;
  min-width:44px !important;
  height:38px !important;
  min-height:38px !important;
  padding:6px !important;
  justify-content:center !important;
  margin-inline:auto !important;
}
body.rc-sidebar-collapsed .rc-sidebar-utilities .force-refresh-label,
body.rc-sidebar-collapsed .rc-sidebar-utilities .rcorps-help-button-text{
  display:none !important;
}
body.rc-sidebar-collapsed .rc-sidebar-footer{padding-left:8px;padding-right:8px}
@media(max-width:900px){
  body.rc-sidebar-collapsed .rc-sidebar-utilities .force-refresh-btn,
  body.rc-sidebar-collapsed .rc-sidebar-utilities .rcorps-help-button{
    width:100% !important;
    min-width:0 !important;
    height:auto !important;
    min-height:38px !important;
    padding:8px 10px !important;
    justify-content:flex-start !important;
  }
  body.rc-sidebar-collapsed .rc-sidebar-utilities .force-refresh-label,
  body.rc-sidebar-collapsed .rc-sidebar-utilities .rcorps-help-button-text{display:inline-flex !important}
}


/* === Correção mobile v68: sidebar + dashboard sem corte no celular === */
html,body{
  max-width:100%;
  overflow-x:hidden;
}

@media(max-width:900px){
  html,body{
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  body.rc-sidebar-enabled,
  body.rc-sidebar-enabled.rc-sidebar-collapsed{
    padding-left:0!important;
    margin:0!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    --rc-sidebar-width:min(86vw,290px)!important;
  }
  #protectedContent,
  body.rc-sidebar-enabled .container,
  body.rc-sidebar-enabled .page-shell,
  body.rc-sidebar-enabled .dashboard-shell,
  body.rc-sidebar-enabled .dashboard-analytics-shell,
  body.rc-sidebar-enabled .advanced-page-shell,
  body.rc-sidebar-enabled .dashboard-all-indicators,
  body.rc-sidebar-enabled .dashboard-indicator-card-grid-flat{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  body.rc-sidebar-enabled .container{
    width:calc(100% - 24px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .rc-system-sidebar{
    width:min(86vw,290px)!important;
    max-width:290px!important;
  }
  .rc-sidebar-mobile-toggle{
    display:grid!important;
    place-items:center!important;
    left:12px!important;
    top:12px!important;
    width:44px!important;
    height:44px!important;
    border-radius:14px!important;
  }
  body.rc-sidebar-enabled .page-shell,
  body.rc-sidebar-enabled .dashboard-shell{
    padding-top:70px!important;
    padding-bottom:18px!important;
  }
  body[data-indicator-dashboard="true"] .dashboard-analytics-shell{
    gap:10px!important;
  }
  .dashboard-command-header-compact{
    min-height:auto!important;
    padding:14px 14px 16px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;
    gap:12px!important;
  }
  .dashboard-command-header-compact h1{
    margin:0!important;
    font-size:clamp(1.85rem,10vw,2.45rem)!important;
    line-height:.96!important;
    word-break:break-word!important;
  }
  .dashboard-bell{
    width:40px!important;
    height:40px!important;
    border-radius:12px!important;
  }
  .dashboard-company-filter{
    padding:12px 14px!important;
  }
  .dashboard-company-filter-field,
  .dashboard-company-filter-field select{
    width:100%!important;
    max-width:100%!important;
  }
  .dashboard-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .dashboard-kpi-card{
    min-width:0!important;
    min-height:78px!important;
    padding:12px!important;
  }
  .dashboard-kpi-card strong{
    font-size:clamp(1.3rem,8vw,1.9rem)!important;
  }
  .dashboard-kpi-card span{
    font-size:.72rem!important;
  }
  .dashboard-all-indicators{
    display:block!important;
  }
  .dashboard-indicator-card-grid-flat{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .dashboard-indicator-card-compact{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:12px!important;
    border-radius:18px!important;
  }
  .dashboard-indicator-card-compact .dashboard-indicator-card-head{
    padding:0!important;
  }
  .dashboard-indicator-card-compact .dashboard-indicator-card-head h3{
    font-size:1rem!important;
    line-height:1.2!important;
    padding-right:30px!important;
  }
  .dashboard-indicator-card-compact .dashboard-indicator-visual{
    display:grid!important;
    grid-template-columns:1fr!important;
    justify-items:center!important;
    align-items:center!important;
    min-height:auto!important;
    gap:12px!important;
    padding:12px!important;
  }
  .dashboard-mini-chart{
    width:min(100%,150px)!important;
    height:auto!important;
    aspect-ratio:1/1!important;
  }
  .dashboard-mini-chart svg{
    width:100%!important;
    height:100%!important;
  }
  .dashboard-mini-empty{
    width:132px!important;
    height:132px!important;
  }
  .dashboard-mini-center strong{
    max-width:none!important;
    font-size:1.05rem!important;
  }
  .dashboard-mini-legend{
    width:100%!important;
    min-width:0!important;
    gap:8px!important;
  }
  .dashboard-mini-legend>div,
  .dashboard-mini-legend-item{
    width:100%!important;
    min-width:0!important;
    grid-template-columns:10px minmax(0,1fr) auto!important;
    align-items:center!important;
  }
  .dashboard-mini-legend span,
  .dashboard-mini-legend-copy span{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:unset!important;
    word-break:break-word!important;
  }
  .dashboard-mini-legend strong,
  .dashboard-mini-legend-copy em{
    white-space:nowrap!important;
  }
  .dashboard-chart-expand{
    width:26px!important;
    height:26px!important;
    right:10px!important;
    bottom:10px!important;
  }
  .page-header,
  .page-header-advanced{
    display:grid!important;
    gap:12px!important;
  }
  .advanced-form,
  .grid,
  .module-grid,
  .submodule-grid{
    grid-template-columns:1fr!important;
  }
  .rc-sidebar-footer{
    padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;
  }
  .rc-sidebar-utilities .force-refresh-btn,
  .rc-sidebar-utilities .rcorps-help-button{
    min-height:40px!important;
    font-size:.8rem!important;
  }
}

@media(max-width:560px){
  .dashboard-kpi-grid{
    grid-template-columns:1fr!important;
  }
  .dashboard-command-header-compact{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
}


/* === Ajustes Renan 2026-09-17: ocultar entrega mobile + notificações responsivas === */
.submodule-card:has(a[href="operador-entrega.html"]),
.area-card:has(a[href*="operador-entrega.html"]),
.permission-item[data-page-id="operador-entrega"],
.permission-option[data-page-id="operador-entrega"] {
  display: none !important;
}

@media (max-width: 900px) {
  .admin-notifications {
    position: static !important;
  }

  .admin-notifications.is-open .admin-notification-panel,
  .admin-notification-panel:not([hidden]) {
    position: fixed !important;
    top: 96px !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(72vh, calc(100dvh - 120px)) !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    box-shadow: 0 24px 80px rgba(2, 6, 23, 0.24), 0 0 0 9999px rgba(2, 6, 23, 0.12) !important;
  }

  .admin-notification-panel-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
    padding: 16px 16px 12px !important;
  }

  .admin-notification-panel-head > div {
    min-width: 0 !important;
  }

  .admin-notification-panel-head h3 {
    margin-top: 6px !important;
    font-size: 1.05rem !important;
    line-height: 1.15 !important;
    word-break: break-word !important;
  }

  .admin-notification-count {
    white-space: normal !important;
    line-height: 1.3 !important;
    font-size: 0.95rem !important;
  }

  .admin-notification-list {
    padding: 12px !important;
    gap: 10px !important;
    max-height: calc(min(72vh, calc(100dvh - 120px)) - 94px) !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .notification-item,
  .notification-empty-state {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  .notification-item-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
  }

  .notification-item-head strong,
  .notification-item p,
  .notification-empty-state span {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .notification-type-tag {
    justify-self: start !important;
    max-width: 100% !important;
  }
}


/* === Ajustes Renan 2026-09-17: sino flutuante + notificações mobile sem corte === */
.admin-notifications-floating-host {
  position: fixed !important;
  top: 28px !important;
  right: 32px !important;
  z-index: 240000 !important;
  display: inline-flex !important;
  align-items: center !important;
}

.admin-notifications-floating-host .admin-notification-bell {
  position: relative !important;
}

.admin-notifications-floating-host .admin-notification-panel {
  position: fixed !important;
  top: 86px !important;
  right: 24px !important;
  width: min(440px, calc(100vw - 32px)) !important;
  max-height: min(76vh, 620px) !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  z-index: 240001 !important;
}

.admin-notifications-floating-host .admin-notification-list {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

body.rc-sidebar-mobile-open .admin-notifications-floating-host {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 900px) {
  .admin-notifications-floating-host {
    top: calc(env(safe-area-inset-top, 0px) + 92px) !important;
    right: 14px !important;
    left: auto !important;
  }

  .admin-notifications-floating-host .admin-notification-bell {
    width: 48px !important;
    height: 48px !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 30px rgba(15, 76, 129, 0.22) !important;
  }

  .admin-notifications-floating-host .admin-notification-panel {
    top: calc(env(safe-area-inset-top, 0px) + 84px) !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(74dvh, calc(100dvh - 104px)) !important;
    border-radius: 26px !important;
    box-shadow: 0 24px 90px rgba(2, 6, 23, 0.28), 0 0 0 9999px rgba(2, 6, 23, 0.16) !important;
  }

  .admin-notifications-floating-host .admin-notification-panel-head {
    padding: 18px 18px 12px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
  }

  .admin-notifications-floating-host .admin-notification-panel-head > div,
  .admin-notifications-floating-host .notification-item-head > div {
    min-width: 0 !important;
  }

  .admin-notifications-floating-host .admin-notification-panel-head h3 {
    margin: 6px 0 0 !important;
    font-size: 1.8rem !important;
    line-height: 1.05 !important;
  }

  .admin-notifications-floating-host .admin-notification-count {
    font-size: 0.98rem !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  .admin-notifications-floating-host .admin-notification-list {
    padding: 12px !important;
    gap: 10px !important;
  }

  .admin-notifications-floating-host .notification-item,
  .admin-notifications-floating-host .notification-empty-state {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  .admin-notifications-floating-host .notification-item-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
  }

  .admin-notifications-floating-host .notification-item-head strong,
  .admin-notifications-floating-host .notification-item p,
  .admin-notifications-floating-host .notification-empty-state,
  .admin-notifications-floating-host .notification-type-tag {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .admin-notifications-floating-host .notification-type-tag {
    justify-self: start !important;
    max-width: 100% !important;
  }
}


/* === Correção notificações v69: painel inicia fechado e abre somente pelo sino === */
.admin-notifications-floating-host .admin-notification-panel[hidden],
.admin-notifications .admin-notification-panel[hidden] {
  display: none !important;
}

@media (max-width: 900px) {
  .admin-notifications-floating-host .admin-notification-panel[hidden],
  .admin-notifications .admin-notification-panel[hidden] {
    display: none !important;
  }
}
