:root {
  --bg: #0f172a;
  --panel: rgba(15, 23, 42, 0.76);
  --card: rgba(255, 255, 255, 0.08);
  --border: rgba(255, 255, 255, 0.14);
  --text: #f8fafc;
  --muted: #cbd5e1;
  --muted-2: #94a3b8;
  --primary: #38bdf8;
  --primary-dark: #0284c7;
  --success: #26d3a2;
  --danger: #ff6575;
  --shadow: 0 24px 80px rgba(0, 0, 0, 0.35);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(56, 189, 248, 0.22), transparent 34rem),
    radial-gradient(circle at bottom right, rgba(38, 211, 162, 0.16), transparent 28rem),
    var(--bg);
}

.hidden { display: none !important; }

.boot {
  min-height: 100vh;
  display: grid;
  place-items: center;
  gap: 16px;
  align-content: center;
}

.loader {
  width: 42px;
  height: 42px;
  border: 4px solid rgba(255,255,255,.18);
  border-top-color: var(--primary);
  border-radius: 999px;
  animation: spin 1s linear infinite;
}

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

.login-layout {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(360px, 0.85fr);
}

.login-hero,
.login-panel,
.main-content,
.sidebar { padding: clamp(24px, 4vw, 56px); }

.login-hero {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.brand-row { display: flex; align-items: center; gap: 16px; }
.brand-row.compact { margin-bottom: 34px; }

.brand-mark {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--primary), var(--success));
  color: #06111f;
  font-weight: 900;
  font-size: 1.5rem;
  box-shadow: var(--shadow);
}

.eyebrow {
  margin: 0 0 6px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.72rem;
  color: var(--primary);
  font-weight: 800;
}

h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(1.25rem, 2vw, 1.8rem); }
h2 { font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1; margin-bottom: 18px; }
h3 { font-size: 1.35rem; margin-bottom: 10px; }
p { color: var(--muted); line-height: 1.65; }

.hero-copy { max-width: 680px; margin: 56px 0; }

.pill {
  display: inline-flex;
  margin-bottom: 18px;
  padding: 8px 12px;
  border: 1px solid rgba(56, 189, 248, 0.35);
  border-radius: 999px;
  color: #bae6fd;
  background: rgba(56, 189, 248, 0.09);
  font-weight: 800;
}

.login-panel {
  display: flex;
  align-items: center;
  background: rgba(15, 23, 42, 0.42);
}

.card {
  border: 1px solid var(--border);
  background: var(--card);
  backdrop-filter: blur(20px);
  box-shadow: var(--shadow);
  border-radius: 28px;
  padding: clamp(22px, 3vw, 34px);
}

.login-card { width: 100%; max-width: 520px; margin: 0 auto; }
.card-header { margin-bottom: 24px; }
.card-header p:last-child { margin-bottom: 0; }
.form { display: grid; gap: 18px; }

label { display: grid; gap: 8px; color: var(--muted); font-weight: 700; }

input, select, textarea {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 16px;
  padding: 14px 16px;
  color: var(--text);
  background: rgba(2, 6, 23, 0.42);
  outline: none;
}

input[readonly] { opacity: .85; cursor: not-allowed; }
select option { color: #111827; }

input:focus, select:focus, textarea:focus {
  border-color: rgba(56, 189, 248, 0.75);
  box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.12);
}

button { border: 0; border-radius: 16px; min-height: 48px; padding: 0 18px; cursor: pointer; font-weight: 900; }
button:disabled { cursor: wait; opacity: 0.68; }

.primary-button { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: #06111f; }
.ghost-button { color: var(--text); background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.16); }
.message { min-height: 26px; margin-top: 18px; color: var(--danger); }

.app-layout { min-height: 100vh; display: grid; grid-template-columns: 290px 1fr; }
.sidebar { display: flex; flex-direction: column; border-right: 1px solid var(--border); background: rgba(2, 6, 23, 0.35); }
.menu { display: grid; gap: 10px; }
.menu-item { color: var(--muted); background: transparent; border: 1px solid transparent; text-align: left; }
.menu-item.active, .menu-item:hover { color: var(--text); background: rgba(255,255,255,.1); border-color: var(--border); }
.logout { margin-top: auto; }

.topbar { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 24px; }
.topbar h2 { font-size: clamp(2rem, 4vw, 3rem); }
.topbar p { margin-bottom: 0; }

.user-topbar { display: flex; align-items: center; gap: 16px; }
.user-avatar { width: 64px; height: 64px; flex: 0 0 64px; overflow: hidden; border-radius: 22px; border: 1px solid var(--border); background: linear-gradient(135deg, rgba(56, 189, 248, 0.22), rgba(38, 211, 162, 0.18)); }
.user-avatar img { width: 100%; height: 100%; object-fit: cover; display: none; }
.user-avatar span { width: 100%; height: 100%; display: grid; place-items: center; color: var(--text); font-size: 1.5rem; font-weight: 900; }

.section { display: none; }
.active-section { display: block; }
.grid { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr); gap: 22px; }

pre { min-height: 280px; max-height: 520px; margin: 0; overflow: auto; white-space: pre-wrap; word-break: break-word; border-radius: 18px; padding: 18px; color: #dbeafe; background: rgba(2, 6, 23, 0.55); border: 1px solid rgba(255, 255, 255, 0.1); }

.report-header-card { margin-bottom: 22px; }
.report-header-info { display: flex; align-items: center; gap: 18px; }
.avatar-preview { position: relative; width: 76px; height: 76px; flex: 0 0 76px; overflow: hidden; border-radius: 24px; border: 1px solid var(--border); background: linear-gradient(135deg, rgba(56, 189, 248, 0.22), rgba(38, 211, 162, 0.18)); }
.avatar-preview img { width: 100%; height: 100%; object-fit: cover; display: none; }
.avatar-preview span { width: 100%; height: 100%; display: grid; place-items: center; color: var(--text); font-size: 1.8rem; font-weight: 900; }
.report-grid { margin-bottom: 22px; }
.total-card { display: flex; align-items: center; }
.total-content { width: 100%; display: grid; gap: 24px; }
.total-content strong { display: block; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; color: var(--success); }
.table-card { margin-bottom: 22px; }
.table-header { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-bottom: 18px; }
.table-wrapper { width: 100%; overflow-x: auto; }
.result-table { width: 100%; min-width: 1100px; border-collapse: collapse; }
.result-table th, .result-table td { padding: 14px 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); text-align: left; color: var(--muted); white-space: nowrap; }
.result-table th { color: var(--text); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; background: rgba(2, 6, 23, 0.28); }
.result-table tr:hover td { background: rgba(255, 255, 255, 0.04); }
.result-table .total-row td { color: var(--text); font-weight: 900; background: rgba(38, 211, 162, 0.08); }
.debug-card { margin-top: 22px; }

@media (max-width: 980px) { .login-layout, .app-layout { grid-template-columns: 1fr; } .sidebar { border-right: 0; border-bottom: 1px solid var(--border); } .grid { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .report-header-info, .user-topbar { align-items: flex-start; flex-direction: column; } .total-content strong { font-size: 2rem; } }
@media (max-width: 560px) { .login-hero, .login-panel, .main-content, .sidebar { padding: 22px; } .topbar { flex-direction: column; } .ghost-button { width: 100%; } }

.is-hidden {
  display: none !important;
}

.global-filters-block select[multiple] {
  min-height: 132px;
  padding: 10px;
}

.global-filters-block select[multiple] option {
  padding: 8px 10px;
  border-radius: 10px;
  margin-bottom: 4px;
}

.global-filters-block select[multiple] option:checked {
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  color: #06111f;
  font-weight: 900;
}

.checkbox-filter {
  display: grid;
  gap: 10px;
}

.checkbox-filter-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
}

.mini-button {
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  color: var(--text);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 0.75rem;
}

.checkbox-list {
  display: grid;
  gap: 8px;
  max-height: 220px;
  overflow: auto;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(2, 6, 23, 0.28);
}

.checkbox-list.loading {
  color: var(--muted-2);
}

.checkbox-option {
  display: flex;
  align-items: center;
  grid-template-columns: none;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
}

.checkbox-option:hover {
  background: rgba(255, 255, 255, 0.08);
}

.checkbox-option input {
  width: 18px;
  height: 18px;
  padding: 0;
  accent-color: var(--primary);
  flex: 0 0 auto;
}

.checkbox-option span {
  line-height: 1.35;
}

/* Dropdown fechado para filtros com checkbox */
.checkbox-filter .checkbox-list {
  display: none;
}

.checkbox-filter.open .checkbox-list {
  display: grid;
}

.checkbox-filter-header {
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(2, 6, 23, 0.28);
  cursor: pointer;
  user-select: none;
}

.checkbox-filter-header::after {
  content: '▾';
  color: var(--primary);
  font-size: 0.95rem;
  transition: transform 0.18s ease;
}

.checkbox-filter.open .checkbox-filter-header::after {
  transform: rotate(180deg);
}

.checkbox-filter-header:focus {
  outline: none;
  border-color: rgba(56, 189, 248, 0.75);
  box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.12);
}

/* Cards de comparativo PBM dentro do Total Geral */
.pbm-comparison-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(130px, 1fr));
  gap: 12px;
  margin-top: 4px;
}

.pbm-mini-card {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 18px;
  background: #0f172a;
}

.pbm-mini-card span {
  color: var(--muted-2);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pbm-mini-value {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.pbm-mini-value strong {
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1;
}

.pbm-mini-value i {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.pbm-mini-value svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.pbm-mini-card.up .pbm-mini-value,
.pbm-mini-card.up small {
  color: var(--success);
}

.pbm-mini-card.down .pbm-mini-value,
.pbm-mini-card.down small {
  color: var(--danger);
}

.pbm-mini-card.neutral .pbm-mini-value,
.pbm-mini-card.neutral small {
  color: var(--muted-2);
}

.pbm-mini-card small {
  font-size: 0.78rem;
  font-weight: 800;
}

@media (max-width: 560px) {
  .pbm-comparison-cards {
    grid-template-columns: 1fr;
  }
}

/* Restauracao do layout dos filtros e date range picker */
.main-content > #globalFiltersBlock {
  width: 100%;
  margin: -8px 0 24px;
  display: grid;
  grid-template-columns: minmax(170px, 190px) minmax(170px, 190px) minmax(140px, 160px) minmax(320px, 380px);
  gap: 12px;
  align-items: start;
  justify-content: start;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 22px;
  background: #111827;
  box-shadow: 0 14px 45px rgba(0, 0, 0, 0.28);
}

.main-content > #globalFiltersBlock .filter-block-title {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 0;
}

.filter-header-text,
.date-filter-title {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.filter-header-text strong,
.date-filter-title strong {
  color: var(--text);
  font-size: 0.82rem;
  line-height: 1.15;
}

.filter-header-text span,
.date-filter-title span {
  color: var(--muted-2);
  font-size: 0.78rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.global-filters-block .checkbox-filter {
  position: relative;
  min-width: 0;
}

.global-filters-block .checkbox-filter-header,
.date-filter-card {
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 16px;
  background: #0f172a;
}

.global-filters-block .checkbox-filter-header {
  cursor: pointer;
}

.global-filters-block .checkbox-filter.open .checkbox-list {
  position: absolute;
  z-index: 90;
  top: calc(100% + 8px);
  left: 0;
  right: auto;
  width: min(360px, 86vw);
  display: grid;
  max-height: 280px;
  background: #0f172a;
  box-shadow: var(--shadow);
}

.checkbox-actions {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  padding-bottom: 6px;
  background: #0f172a;
}

.date-filter-card {
  position: relative;
  display: grid;
  gap: 10px;
}

.date-range-trigger {
  width: 100%;
  min-height: 58px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}

.date-range-trigger .date-filter-title {
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 16px;
  background: #0f172a;
}

.date-range-trigger .date-filter-title::after {
  content: '▾';
  position: absolute;
  right: 14px;
  top: 18px;
  color: var(--primary);
  font-size: 0.95rem;
  transition: transform 0.18s ease;
}

.date-filter-card.open .date-range-trigger .date-filter-title::after {
  transform: rotate(180deg);
}

.date-range-picker {
  display: none;
  position: absolute;
  z-index: 100;
  top: calc(100% + 8px);
  right: 0;
  width: min(720px, 86vw);
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 20px;
  background: #0f172a;
  box-shadow: var(--shadow);
}

.date-filter-card.open .date-range-picker {
  display: grid;
  gap: 14px;
}

.date-picker-toolbar,
.date-picker-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.date-picker-toolbar strong {
  color: var(--text);
  font-size: 0.95rem;
}

.date-calendars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.date-calendar {
  display: grid;
  gap: 10px;
}

.date-calendar-title {
  color: var(--text);
  font-weight: 900;
  text-transform: capitalize;
  text-align: center;
}

.date-weekdays,
.date-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}

.date-weekdays span {
  color: var(--muted-2);
  font-size: 0.7rem;
  font-weight: 900;
  text-align: center;
}

.date-day {
  min-height: 34px;
  padding: 0;
  border-radius: 10px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid transparent;
  font-size: 0.82rem;
}

.date-day.empty {
  background: transparent;
  border: 0;
}

.date-day:hover {
  color: var(--text);
  border-color: rgba(56, 189, 248, 0.35);
  background: rgba(56, 189, 248, 0.12);
}

.date-day.in-range {
  color: var(--text);
  background: rgba(56, 189, 248, 0.18);
}

.date-day.selected {
  color: #06111f;
  background: linear-gradient(135deg, var(--primary), var(--success));
  font-weight: 900;
}

.date-range-hidden {
  display: none !important;
}

.pbm-mini-card em {
  color: var(--muted);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 800;
}

@media (max-width: 1180px) {
  .main-content > #globalFiltersBlock {
    grid-template-columns: repeat(2, minmax(170px, 1fr));
  }
}

@media (max-width: 720px) {
  .main-content > #globalFiltersBlock {
    grid-template-columns: 1fr;
  }

  .global-filters-block .checkbox-filter.open .checkbox-list,
  .date-range-picker {
    position: static;
    width: 100%;
    box-shadow: none;
  }

  .date-calendars {
    grid-template-columns: 1fr;
  }
}

/* Modulo Vitaminas */
.vitaminas-section {
  display: none;
}

.vitaminas-section.active-section {
  display: block;
}

.vitaminas-card {
  padding: 0;
  overflow: hidden;
}

.vitaminas-header {
  padding: 24px 28px 10px;
  margin-bottom: 0;
}

.vit-tabs,
.vit-subtabs {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  padding: 0 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(56, 189, 248, 0.12);
}

.vit-tabs {
  min-height: 58px;
}

.vit-subtabs {
  min-height: 54px;
  margin: 0 18px;
  padding: 0;
  background: transparent;
}

.vit-tab,
.vit-subtab {
  position: relative;
  min-height: 48px;
  padding: 0 14px;
  border-radius: 10px 10px 0 0;
  color: var(--muted-2);
  background: transparent;
  white-space: nowrap;
  font-weight: 900;
}

.vit-tab.active,
.vit-subtab.active {
  color: #15803d;
  background: rgba(255, 255, 255, 0.18);
}

.vit-tab.active::after,
.vit-subtab.active::after {
  content: '';
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 0;
  height: 3px;
  border-radius: 999px 999px 0 0;
  background: #3b82f6;
}

.vit-tab-panel,
.vit-subpanel {
  display: none;
}

.vit-tab-panel.active,
.vit-subpanel.active {
  display: block;
}

.vit-tab-panel {
  padding: 18px;
}

.vit-placeholder {
  min-height: 180px;
  display: grid;
  place-items: center;
  border: 1px dashed rgba(59, 130, 246, 0.7);
  border-radius: 18px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.04);
  font-weight: 900;
}

@media (max-width: 720px) {
  .vitaminas-header {
    padding: 22px;
  }

  .vit-tabs,
  .vit-subtabs {
    padding-inline: 12px;
  }

  .vit-tab,
  .vit-subtab {
    padding-inline: 10px;
    font-size: 0.86rem;
  }
}

/* Ajuste visual das abas Vitaminas: selecionado branco e icones como no modelo */
.vit-tab,
.vit-subtab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.vit-tab::before,
.vit-subtab::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: currentColor;
  font-size: 1rem;
  line-height: 1;
  opacity: 0.95;
}

.vit-tab.active,
.vit-subtab.active {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.16);
}

.vit-tab:not(.active),
.vit-subtab:not(.active) {
  color: var(--muted-2);
}

.vit-tab[data-vit-tab="lista-participantes"]::before {
  content: '☷';
}

.vit-tab[data-vit-tab="vitaminas"]::before {
  content: '🔗';
}

.vit-tab[data-vit-tab="plus-vitaminas"]::before {
  content: '⌘';
}

.vit-tab[data-vit-tab="plus-eticos"]::before {
  content: '♙';
}

.vit-tab[data-vit-tab="brincos"]::before {
  content: '◇';
}

.vit-subtab[data-vit-subtab="lista-vitaminas-participantes"]::before {
  content: '☷';
}

.vit-subtab[data-vit-subtab="lista-plus-eticos"]::before {
  content: '♙';
}

.vit-subtab[data-vit-subtab="plus-eticos-total-acumulado"]::before {
  content: '▣';
}

.vit-subtab[data-vit-subtab="plus-eticos-individual-data"]::before {
  content: '⌕';
}

.vit-subtab[data-vit-subtab="brincos-total-valido"]::before {
  content: '▣';
}

.vit-subtab[data-vit-subtab="brincos-auditoria-validos"]::before {
  content: '⌕';
}

.vit-subtab[data-vit-subtab="brincos-auditoria-invalidos"]::before {
  content: '⌕';
}

/* Paginação das tabelas */
.table-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: 12px 0 22px;
}

.table-pagination button {
  min-height: 36px;
  padding: 0 12px;
  border-radius: 12px;
  color: var(--text);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  font-size: 0.82rem;
}

.table-pagination button.active {
  color: #06111f;
  background: linear-gradient(135deg, var(--primary), var(--success));
  border-color: transparent;
}

.table-pagination button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.table-pagination span {
  color: var(--muted-2);
  font-size: 0.82rem;
  font-weight: 800;
}


/* Administrativo: filtro Atendente, tabela de totais e modal */
.admin-total-card {
  margin-bottom: 22px;
}

.admin-total-table {
  min-width: 860px;
}

.admin-total-row {
  cursor: pointer;
}

.admin-total-row:hover td {
  background: rgba(56, 189, 248, 0.08);
}

.admin-attendant-cell,
.admin-modal-attendant {
  display: flex;
  align-items: center;
  gap: 12px;
}

.admin-attendant-avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: linear-gradient(135deg, rgba(56, 189, 248, 0.22), rgba(38, 211, 162, 0.18));
}

.admin-attendant-avatar img,
.admin-attendant-avatar span {
  width: 100%;
  height: 100%;
}

.admin-attendant-avatar img {
  display: block;
  object-fit: cover;
}

.admin-attendant-avatar span {
  display: grid;
  place-items: center;
  color: var(--text);
  font-weight: 900;
}

.admin-modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.admin-modal.open {
  display: flex;
}

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

.admin-modal-card {
  position: relative;
  z-index: 1;
  width: min(560px, 94vw);
  border: 1px solid var(--border);
  border-radius: 24px;
  background: #0f172a;
  box-shadow: var(--shadow);
  padding: 22px;
}

.admin-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.admin-modal-header h3 {
  margin: 0;
}

.admin-modal-body {
  display: grid;
  gap: 16px;
}

.admin-modal-body p {
  margin-bottom: 0;
}

.admin-modal-attendant strong,
.admin-modal-attendant span {
  display: block;
}

.admin-modal-attendant span {
  color: var(--muted-2);
  font-size: 0.85rem;
  font-weight: 800;
}

@media (min-width: 1181px) {
  .main-content > #globalFiltersBlock {
    grid-template-columns: minmax(170px, 190px) minmax(170px, 190px) minmax(140px, 160px) minmax(320px, 380px) minmax(170px, 210px);
  }
}

/* Administrativo: detalhamento de créditos no modal */
.admin-modal-card {
  width: min(1380px, 96vw);
  max-height: 92vh;
  overflow: hidden;
}

.admin-modal-body {
  max-height: calc(92vh - 116px);
  overflow: auto;
}

.admin-modal-grid {
  display: grid;
  grid-template-columns: minmax(210px, 0.7fr) minmax(260px, 0.9fr) minmax(520px, 1.8fr);
  gap: 18px;
  align-items: start;
}

.admin-modal-summary,
.admin-credit-panel,
.admin-credit-detail-panel {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  background: rgba(2, 6, 23, 0.28);
  padding: 16px;
}

.admin-modal-summary {
  display: grid;
  gap: 16px;
}

.admin-debit-placeholder {
  display: grid;
  gap: 6px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px dashed rgba(255, 255, 255, 0.18);
}

.admin-debit-placeholder strong,
.admin-panel-title h4,
.admin-detail-title h4 {
  margin: 0;
  color: var(--text);
}

.admin-debit-placeholder span,
.admin-panel-title small,
.admin-detail-title small {
  color: var(--muted-2);
  font-size: 0.82rem;
  font-weight: 800;
}

.admin-credit-panel,
.admin-credit-list {
  display: grid;
  gap: 12px;
}

.admin-credit-row {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  text-align: left;
}

.admin-credit-row:hover:not(:disabled),
.admin-credit-row.active {
  color: var(--text);
  border-color: rgba(56, 189, 248, 0.52);
  background: rgba(56, 189, 248, 0.13);
}

.admin-credit-row:disabled {
  cursor: default;
  opacity: 1;
}

.admin-credit-row.is-total {
  color: var(--success);
  background: rgba(38, 211, 162, 0.09);
}

.admin-credit-row span,
.admin-credit-row strong,
.admin-credit-row small,
.admin-credit-row b {
  display: block;
}

.admin-credit-row strong {
  color: inherit;
  font-size: 0.92rem;
}

.admin-credit-row small {
  color: var(--muted-2);
  font-size: 0.74rem;
  margin-top: 3px;
}

.admin-credit-row b {
  color: var(--text);
  font-size: 1rem;
  white-space: nowrap;
}

.admin-credit-detail-panel {
  min-width: 0;
}

.admin-detail-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.admin-detail-table-wrapper {
  max-height: 58vh;
  overflow: auto;
}

.admin-credit-detail-table {
  min-width: 980px;
}

.admin-credit-detail-table th,
.admin-credit-detail-table td {
  font-size: 0.82rem;
}

@media (max-width: 1180px) {
  .admin-modal-grid {
    grid-template-columns: 1fr;
  }

  .admin-modal-card {
    overflow: auto;
  }

  .admin-modal-body,
  .admin-detail-table-wrapper {
    max-height: none;
  }
}

/* Administrativo: modal mais amplo para detalhamentos */
.admin-modal {
  padding: 10px;
}

.admin-modal-card {
  width: min(1760px, 99vw);
  max-height: 98vh;
  min-height: 88vh;
  padding: 24px;
}

.admin-modal-body {
  max-height: calc(98vh - 108px);
}

.admin-modal-grid {
  grid-template-columns: minmax(230px, 0.55fr) minmax(290px, 0.7fr) minmax(760px, 2.15fr);
  min-height: calc(88vh - 150px);
}

.admin-credit-detail-panel {
  min-height: calc(88vh - 150px);
}

.admin-detail-table-wrapper {
  max-height: calc(88vh - 235px);
}

.admin-credit-detail-table {
  min-width: 1180px;
}

/* Débitos: cadastro de classes de despesas */
.debitos-card {
  margin-bottom: 22px;
}

.debitos-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 14px;
  margin: 8px 0 24px;
}

.debitos-info-card {
  display: grid;
  gap: 8px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: rgba(2, 6, 23, 0.28);
}

.debitos-info-card strong {
  color: var(--text);
}

.debitos-info-card span {
  color: var(--muted-2);
  font-size: 0.88rem;
  font-weight: 800;
}

.debitos-table-subheader {
  margin-top: 8px;
}

.debitos-classes-table {
  min-width: 820px;
}

.debitos-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.debitos-status.active {
  color: var(--success);
  background: rgba(38, 211, 162, 0.1);
}

.debitos-status.inactive {
  color: var(--muted-2);
  background: rgba(255, 255, 255, 0.08);
}

.debitos-edit-button {
  min-width: 76px;
}

.debitos-modal {
  position: fixed;
  inset: 0;
  z-index: 320;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.debitos-modal.open {
  display: flex;
}

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

.debitos-modal-card {
  position: relative;
  z-index: 1;
  width: min(620px, 96vw);
  border: 1px solid var(--border);
  border-radius: 24px;
  background: #0f172a;
  box-shadow: var(--shadow);
  padding: 24px;
}

.debitos-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.debitos-modal-header h3 {
  margin: 0;
}

.debitos-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.debitos-classe-form textarea {
  resize: vertical;
  min-height: 110px;
}

@media (max-width: 720px) {
  .debitos-info-grid {
    grid-template-columns: 1fr;
  }

  .debitos-modal-actions {
    flex-direction: column;
  }
}

/* Débitos: lançamento de despesas e busca de produtos */
.debitos-form-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(220px, 1.2fr) minmax(140px, 0.7fr) minmax(120px, 0.6fr) minmax(140px, 0.7fr);
  gap: 14px;
}

.debitos-header-actions,
.debitos-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
}

.debitos-produtos-area {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  background: rgba(2, 6, 23, 0.28);
}

.debitos-produtos-draft-table,
.debitos-lancamentos-table {
  min-width: 1040px;
}

.debitos-total-line {
  margin: 0;
  text-align: right;
  color: var(--muted);
  font-weight: 900;
}

.debitos-total-line strong {
  color: var(--success);
}

.produto-debito-card {
  width: min(1280px, 98vw);
  max-height: 94vh;
  overflow: auto;
}

.produto-search-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  gap: 14px;
  align-items: end;
  margin-bottom: 16px;
}

.produto-status-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(2, 6, 23, 0.28);
}

.produto-status-toggle label {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 0.86rem;
  white-space: nowrap;
}

.produto-status-toggle input {
  width: 16px;
  height: 16px;
  padding: 0;
  accent-color: var(--primary);
}

.produto-result-wrapper {
  max-height: 52vh;
  overflow: auto;
}

.produto-debito-table {
  min-width: 1120px;
}

.produto-debito-row {
  cursor: pointer;
}

.produto-debito-row:hover td {
  background: rgba(56, 189, 248, 0.08);
}

.produto-include-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(120px, 0.4fr) minmax(220px, 0.7fr) auto;
  gap: 14px;
  align-items: end;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

#produtoDebitoSelected {
  min-height: 50px;
  display: flex;
  align-items: center;
  color: var(--muted);
  font-weight: 800;
}

.debitos-motivos-wrapper {
  margin-top: 18px;
  max-height: 260px;
  overflow: auto;
}

.debitos-motivos-table {
  min-width: 420px;
}

@media (max-width: 1180px) {
  .debitos-form-grid,
  .produto-search-grid,
  .produto-include-grid {
    grid-template-columns: 1fr;
  }

  .debitos-header-actions,
  .debitos-form-actions {
    justify-content: stretch;
  }

  .debitos-header-actions button,
  .debitos-form-actions button {
    width: 100%;
  }
}

/* Débitos: destaque do produto selecionado na busca */
.produto-debito-row.selected td {
  color: var(--text);
  background: rgba(56, 189, 248, 0.16) !important;
  box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.42);
}

/* Débitos: submenus Lançamentos / Configuração */
.debitos-shell-card {
  padding: 0;
  overflow: hidden;
}

.debitos-header {
  padding: 24px 28px 10px;
  margin-bottom: 0;
}

.debitos-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  min-height: 58px;
  padding: 0 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(56, 189, 248, 0.12);
}

.debitos-tab {
  position: relative;
  min-height: 48px;
  padding: 0 16px;
  border-radius: 10px 10px 0 0;
  color: var(--muted-2);
  background: transparent;
  white-space: nowrap;
  font-weight: 900;
}

.debitos-tab.active {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.16);
}

.debitos-tab.active::after {
  content: '';
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 0;
  height: 3px;
  border-radius: 999px 999px 0 0;
  background: var(--primary);
}

.debitos-tab-panel {
  display: none;
  padding: 18px;
}

.debitos-tab-panel.active {
  display: block;
}

.debitos-inner-card {
  padding: 22px;
  margin-bottom: 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.04);
}

.debitos-inner-card:last-child {
  margin-bottom: 0;
}

@media (max-width: 720px) {
  .debitos-header {
    padding: 22px;
  }

  .debitos-tabs {
    padding-inline: 12px;
  }

  .debitos-tab {
    padding-inline: 12px;
    font-size: 0.86rem;
  }

  .debitos-tab-panel {
    padding: 12px;
  }
}

/* Débitos: filtros de status em Classes e Motivos */
.debitos-status-filter,
.debitos-motivos-toolbar {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.debitos-status-filter label,
.debitos-motivos-toolbar label {
  min-width: 160px;
  font-size: 0.78rem;
}

.debitos-status-filter select,
.debitos-motivos-toolbar select {
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 12px;
}

.debitos-status-filter small,
.debitos-motivos-toolbar small {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  color: var(--muted-2);
  font-weight: 800;
}

.debitos-motivos-toolbar {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

@media (max-width: 720px) {
  .debitos-status-filter,
  .debitos-motivos-toolbar {
    justify-content: stretch;
  }

  .debitos-status-filter label,
  .debitos-motivos-toolbar label {
    width: 100%;
  }
}

/* Débitos: detalhes do lançamento e edição inline de produtos */
.debito-lancamento-row {
  cursor: pointer;
}

.debito-lancamento-row:hover td {
  background: rgba(56, 189, 248, 0.08);
}

.debito-detalhe-card {
  width: min(1180px, 96vw);
  max-height: 92vh;
  overflow: auto;
}

.debito-detalhe-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.debito-detalhe-summary div {
  display: grid;
  gap: 6px;
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
}

.debito-detalhe-summary span {
  color: var(--muted-2);
  font-size: 0.74rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.debito-detalhe-summary strong {
  color: var(--text);
}

.debito-detalhe-observacao {
  margin: 0 0 18px;
}

.debito-detalhe-products-header {
  margin-top: 10px;
}

.debito-detalhe-produtos-table {
  min-width: 860px;
}

.debitos-inline-input,
.debitos-inline-select {
  min-width: 96px;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 12px;
}

.debitos-inline-select {
  min-width: 170px;
}

@media (max-width: 920px) {
  .debito-detalhe-summary {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }
}

@media (max-width: 560px) {
  .debito-detalhe-summary {
    grid-template-columns: 1fr;
  }
}

/* Débitos: agrupamento por funcionário */
.debito-lancamento-detail-list {
  display: grid;
  gap: 18px;
  margin-top: 14px;
}

.debito-lancamento-detail-card {
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.04);
}

.debito-lancamento-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}

.debito-lancamento-detail-head div {
  display: grid;
  gap: 4px;
}

.debito-lancamento-detail-head span {
  color: var(--muted-2);
  font-size: 0.84rem;
  font-weight: 800;
}

.debitos-lancamentos-table tbody tr td small {
  color: var(--muted-2);
  font-weight: 800;
}

@media (max-width: 720px) {
  .debito-lancamento-detail-head {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Débitos: modal compacto com uma linha por produto */
.debito-detalhe-summary.compact {
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  margin-bottom: 12px;
}

.debito-detail-filter-bar {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) 140px 120px 120px minmax(180px, 1.2fr) auto auto;
  gap: 10px;
  align-items: end;
  margin: 12px 0 14px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.04);
}

.debito-detail-filter-bar label {
  font-size: 0.74rem;
  font-weight: 900;
  color: var(--muted-2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.debito-detail-filter-bar input,
.debito-detail-filter-bar select {
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 12px;
}

.debito-detail-filter-bar small {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  color: var(--muted-2);
  font-weight: 900;
  white-space: nowrap;
}

.debito-flat-wrapper {
  max-height: 56vh;
  overflow: auto;
}

.debito-flat-table {
  min-width: 1040px;
}

.debito-flat-table th,
.debito-flat-table td {
  padding-top: 9px;
  padding-bottom: 9px;
  vertical-align: middle;
}

.debito-flat-table td small {
  color: var(--muted-2);
  font-weight: 800;
}

.debito-flat-table td:last-child {
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .debito-detail-filter-bar {
    grid-template-columns: repeat(3, minmax(140px, 1fr));
  }
}

@media (max-width: 720px) {
  .debito-detail-filter-bar,
  .debito-detalhe-summary.compact {
    grid-template-columns: 1fr;
  }

  .debito-detail-filter-bar small {
    justify-content: flex-start;
  }
}

/* Débitos: totais por filtro e painel administrativo */
.debito-filter-totals {
  display: grid;
  grid-template-columns: minmax(180px, 0.75fr) minmax(260px, 1.2fr) minmax(260px, 1.2fr);
  gap: 12px;
  margin: 12px 0 14px;
}

.debito-filter-total-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.045);
}

.debito-filter-total-card > b {
  color: var(--muted-2);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.debito-filter-total-card.total strong {
  font-size: 1.3rem;
}

.debito-filter-total-card div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.debito-filter-total-card span {
  display: inline-grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-weight: 800;
}

.debito-filter-total-card span b {
  color: var(--muted-2);
  font-size: 0.72rem;
}

.debito-detalhe-card {
  width: min(1500px, 98vw);
  min-height: 78vh;
}

.debito-flat-wrapper {
  max-height: 68vh;
}

.debito-flat-table {
  min-width: 1280px;
}

.admin-debit-panel {
  display: grid;
  gap: 12px;
  padding: 16px;
  border-radius: 18px;
  background: rgba(248, 113, 113, 0.08);
  border: 1px solid rgba(248, 113, 113, 0.18);
}

.admin-debit-list {
  display: grid;
  gap: 10px;
}

.admin-debit-row {
  background: rgba(127, 29, 29, 0.14);
}

.admin-debit-row:hover {
  border-color: rgba(248, 113, 113, 0.45);
}

.admin-debit-empty {
  color: var(--muted-2);
  font-weight: 800;
  padding: 10px 0;
}

.admin-credit-detail-table td small {
  color: var(--muted-2);
  font-weight: 800;
}

@media (max-width: 1060px) {
  .debito-filter-totals {
    grid-template-columns: 1fr;
  }
}

/* Ajuste final: modal atendente mais largo e cards de débitos compactos */
#adminAttendantModal .admin-modal-card {
  width: min(1680px, 98.5vw);
}

#adminAttendantModal .admin-modal-grid {
  grid-template-columns: minmax(260px, 0.75fr) minmax(300px, 0.8fr) minmax(720px, 2.05fr);
  gap: 16px;
}

#adminAttendantModal .admin-modal-summary,
#adminAttendantModal .admin-credit-panel,
#adminAttendantModal .admin-credit-detail-panel {
  padding: 12px;
}

#adminAttendantModal .admin-debit-panel {
  gap: 8px;
  padding: 12px;
  border-radius: 16px;
}

#adminAttendantModal .admin-debit-list {
  gap: 8px;
}

.admin-debit-total-card {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 14px;
  color: var(--text);
  background: rgba(248, 113, 113, 0.13);
  border: 1px solid rgba(248, 113, 113, 0.26);
}

.admin-debit-total-card span {
  color: var(--muted-2);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-debit-total-card strong {
  font-size: 1.05rem;
  color: var(--text);
  white-space: nowrap;
}

#adminAttendantModal .admin-debit-row {
  min-height: 48px;
  padding: 8px 10px;
  border-radius: 14px;
  gap: 10px;
}

#adminAttendantModal .admin-debit-row strong {
  font-size: 0.9rem;
  line-height: 1.15;
}

#adminAttendantModal .admin-debit-row small {
  font-size: 0.72rem;
  line-height: 1.15;
}

#adminAttendantModal .admin-debit-row b {
  font-size: 0.95rem;
  white-space: nowrap;
}

@media (max-width: 1380px) {
  #adminAttendantModal .admin-modal-grid {
    grid-template-columns: minmax(240px, 0.8fr) minmax(280px, 0.85fr) minmax(560px, 1.7fr);
  }
}

@media (max-width: 1080px) {
  #adminAttendantModal .admin-modal-grid {
    grid-template-columns: 1fr;
  }
}

/* Ajuste: débito total no final e modal do atendente ainda mais largo */
#adminAttendantModal .admin-modal-card {
  width: min(1880px, 99.2vw);
}

#adminAttendantModal .admin-modal-grid {
  grid-template-columns: minmax(300px, 0.8fr) minmax(320px, 0.82fr) minmax(820px, 2.25fr);
}

#adminAttendantModal .admin-debit-total-card {
  margin-top: 4px;
  order: 99;
}

@media (max-width: 1500px) {
  #adminAttendantModal .admin-modal-grid {
    grid-template-columns: minmax(280px, 0.8fr) minmax(300px, 0.85fr) minmax(680px, 1.9fr);
  }
}

/* Administrativo: valor total em verde, cabeçalho com atendente e alinhamento */
.admin-total-pay-value {
  color: #22c55e !important;
  font-weight: 900;
}

.admin-debit-total-value {
  color: #ff6575 !important;
}

.admin-copy-pay-button {
  min-height: 34px;
}

#adminAttendantModal .admin-modal-header {
  align-items: center;
  gap: 16px;
}

.admin-modal-header-content {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.admin-modal-title-attendant {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px 6px 6px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.admin-modal-title-attendant strong,
.admin-modal-title-attendant span {
  display: block;
  white-space: nowrap;
}

.admin-modal-title-attendant span {
  color: var(--muted-2);
  font-size: 0.78rem;
  font-weight: 800;
}

.admin-modal-header-content h3 {
  margin: 0;
  white-space: nowrap;
}

#adminAttendantModal .admin-modal-summary,
#adminAttendantModal .admin-credit-panel {
  align-self: start;
}

#adminAttendantModal .admin-modal-summary {
  gap: 0;
}

@media (max-width: 720px) {
  .admin-modal-header-content {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .admin-modal-title-attendant strong,
  .admin-modal-title-attendant span,
  .admin-modal-header-content h3 {
    white-space: normal;
  }
}

/* Responsivo geral: web e mobile */
html {
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

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

input,
select,
textarea,
button {
  font-size: 16px;
}

.table-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.result-table {
  min-width: 720px;
}

@media (max-width: 860px) {
  .app-layout {
    display: block;
  }

  .sidebar {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: 14px;
  }

  .menu {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }

  .menu-item {
    flex: 0 0 auto;
    white-space: nowrap;
    min-height: 42px;
  }

  .main-content {
    padding: 16px;
  }

  .card,
  .debitos-inner-card,
  .tarefas-card {
    border-radius: 18px;
  }

  .table-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .debitos-form-grid,
  .produto-search-grid,
  .produto-include-grid,
  .tarefas-form-grid,
  .tarefas-config-grid,
  .global-filters-block {
    grid-template-columns: 1fr !important;
  }

  .debitos-tabs,
  .vit-tabs,
  .vit-subtabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    justify-content: flex-start;
  }

  .debitos-tab,
  .vit-tab,
  .vit-subtab {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .debitos-modal-card,
  .produto-debito-card,
  .debito-detalhe-card,
  #adminAttendantModal .admin-modal-card {
    width: 96vw !important;
    max-height: 92vh;
    overflow: auto;
  }
}

@media (max-width: 560px) {
  .main-content,
  .sidebar {
    padding: 12px;
  }

  .card-header h3,
  .table-header h3 {
    font-size: 1.1rem;
  }

  .ghost-button,
  .primary-button,
  .mini-button {
    min-height: 42px;
  }

  .debitos-form-actions,
  .tarefas-actions,
  .debitos-modal-actions {
    flex-direction: column;
  }

  .debitos-form-actions button,
  .tarefas-actions button,
  .debitos-modal-actions button {
    width: 100%;
  }
}

/* Tarefas */
.tarefas-card {
  display: grid;
  gap: 18px;
}

.tarefas-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.75fr) minmax(520px, 1.5fr);
  gap: 18px;
  align-items: start;
}

.tarefas-form-panel,
.tarefas-board-panel,
.tarefas-config-panel {
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  background: rgba(2, 6, 23, 0.28);
}

.tarefas-form-grid,
.tarefas-custom-fields,
.tarefas-config-grid {
  display: grid;
  gap: 12px;
}

.tarefas-form-grid {
  grid-template-columns: repeat(3, minmax(120px, 1fr));
}

.tarefas-custom-fields {
  grid-template-columns: repeat(2, minmax(120px, 1fr));
}

.tarefas-actions,
.tarefas-config-inputs {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.tarefas-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 14px;
  align-items: start;
}

.tarefas-column {
  min-height: 220px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.tarefas-column header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 2px solid var(--status-color, #38bdf8);
}

.tarefas-column header small {
  color: var(--muted-2);
  font-weight: 900;
}

.tarefas-cards {
  display: grid;
  gap: 12px;
  padding: 12px;
}

.tarefa-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 16px;
  background: rgba(15, 23, 42, 0.62);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.tarefa-card-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.tarefa-card-head > span {
  border: 1px solid var(--status-color, #38bdf8);
  color: var(--status-color, #38bdf8);
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 0.73rem;
  font-weight: 900;
  white-space: nowrap;
}

.tarefa-card p,
.tarefas-muted {
  color: var(--muted-2);
  margin: 0;
}

.tarefa-meta {
  display: grid;
  gap: 4px;
  color: var(--muted-2);
  font-size: 0.84rem;
}

.tarefa-meta b {
  color: var(--text);
}

.tarefa-card-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.tarefa-card-actions select {
  min-width: 150px;
}

.tarefas-fotos-preview,
.tarefa-card-photos {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.tarefa-photo-chip {
  display: grid;
  gap: 6px;
  width: 92px;
}

.tarefa-photo-chip img,
.tarefa-card-photos img {
  width: 86px;
  height: 86px;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.tarefas-config-grid {
  grid-template-columns: repeat(2, minmax(260px, 1fr));
}

.tarefas-status-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  margin-right: 8px;
}

@media (max-width: 1180px) {
  .tarefas-layout,
  .tarefas-config-grid {
    grid-template-columns: 1fr;
  }

  .tarefas-board {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 720px) {
  .tarefas-board {
    display: flex;
    overflow-x: auto;
    gap: 12px;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
  }

  .tarefas-column {
    min-width: 82vw;
  }

  .tarefas-custom-fields {
    grid-template-columns: 1fr;
  }

  .tarefas-config-inputs input,
  .tarefas-config-inputs select,
  .tarefas-config-inputs button {
    width: 100%;
  }
}

/* Filtro de tipo de funcionário */
.employee-type-filter {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.employee-type-filter .filter-header-text {
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 16px;
  background: #0f172a;
}

.employee-type-filter select {
  min-height: 58px;
  padding: 10px 12px;
  border-radius: 16px;
  background: #0f172a;
}

@media (min-width: 1181px) {
  .main-content > #globalFiltersBlock {
    grid-template-columns: minmax(160px, 185px) minmax(160px, 185px) minmax(130px, 150px) minmax(290px, 350px) minmax(170px, 210px) minmax(180px, 230px);
  }
}

/* Débitos: Lançamentos Crediário */
.debitos-crediario-table {
min-width: 920px;
}

.debito-crediario-row {
cursor: pointer;
}

.debito-crediario-row:hover td {
background: rgba(56, 189, 248, 0.08);
}

.debito-crediario-detail-card {
width: min(1540px, 98vw);
max-height: 94vh;
overflow: auto;
}

.debito-crediario-wrapper {
max-height: 68vh;
overflow: auto;
}

.debito-crediario-detail-table {
min-width: 1180px;
}

.debito-crediario-detail-table td small,
.debitos-crediario-table td small {
color: var(--muted-2);
font-weight: 800;
}

.debito-crediario-summary strong {
color: var(--text);
}

.debito-crediario-summary div:last-child strong {
color: var(--success);
}

@media (max-width: 860px) {
.debito-crediario-detail-card {
width: 96vw !important;
max-height: 92vh;
}

.debito-crediario-wrapper {
max-height: none;
}
}


/* Débitos: NFe Baixa */
.nfe-baixa-table {
  min-width: 980px;
}

.nfe-baixa-row {
  cursor: pointer;
}

.nfe-baixa-row:hover td {
  background: rgba(56, 189, 248, 0.08);
}

.nfe-baixa-modal-card {
  width: min(1480px, 98vw);
  max-height: 94vh;
  overflow: auto;
}

.nfe-baixa-note-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.nfe-baixa-note-summary div {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
}

.nfe-baixa-note-summary span {
  color: var(--muted-2);
  font-size: 0.74rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.nfe-baixa-note-summary strong {
  color: var(--text);
  word-break: break-word;
}

.nfe-baixa-modal-wrapper {
  max-height: 62vh;
  overflow: auto;
}

.nfe-baixa-items-table {
  min-width: 1180px;
}

@media (max-width: 860px) {
  .nfe-baixa-note-summary {
    grid-template-columns: 1fr;
  }
}

/* Parametrização do sistema */
.parametrizacao-card {
  padding: 0;
  overflow: hidden;
}

.parametrizacao-header {
  padding: 24px 28px 10px;
  margin-bottom: 0;
}

.param-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  min-height: 58px;
  padding: 0 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(56, 189, 248, 0.12);
}

.param-tab {
  position: relative;
  min-height: 48px;
  padding: 0 16px;
  border-radius: 10px 10px 0 0;
  color: var(--muted-2);
  background: transparent;
  white-space: nowrap;
  font-weight: 900;
}

.param-tab.active {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.16);
}

.param-tab.active::after {
  content: '';
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 0;
  height: 3px;
  border-radius: 999px 999px 0 0;
  background: var(--primary);
}

.param-tab-panel {
  display: none;
  padding: 18px;
}

.param-tab-panel.active {
  display: block;
}

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

.param-actions {
  display: grid;
  gap: 8px;
  justify-items: end;
}

.param-actions small,
#paramPessoalSaveMessage {
  color: var(--muted-2);
  font-weight: 800;
}

.param-actions small.success,
#paramPessoalSaveMessage.success {
  color: var(--success);
}

.param-actions small.error,
#paramPessoalSaveMessage.error {
  color: var(--danger);
}

.param-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(420px, 1.4fr);
  gap: 18px;
  align-items: start;
}

.param-list-card,
.param-detail-card {
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  background: rgba(2, 6, 23, 0.28);
}

.param-user-list {
  display: grid;
  gap: 8px;
  max-height: 62vh;
  overflow: auto;
  padding-right: 4px;
}

.param-user-list > span,
.param-empty-detail {
  display: grid;
  min-height: 180px;
  place-items: center;
  color: var(--muted-2);
  font-weight: 800;
  text-align: center;
}

.param-user-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 64px;
  padding: 12px 14px;
  border-radius: 16px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  text-align: left;
}

.param-user-row:hover,
.param-user-row.active {
  color: var(--text);
  border-color: rgba(56, 189, 248, 0.52);
  background: rgba(56, 189, 248, 0.13);
}

.param-user-row span,
.param-user-row strong,
.param-user-row small {
  display: block;
}

.param-user-row small {
  margin-top: 4px;
  color: var(--muted-2);
  font-size: 0.76rem;
  font-weight: 800;
}

.param-user-row em,
.param-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.param-user-row em.linked,
.param-badge.linked {
  color: var(--success);
  background: rgba(38, 211, 162, 0.1);
}

.param-user-row em.unlinked,
.param-badge.unlinked {
  color: var(--primary);
  background: rgba(56, 189, 248, 0.1);
}

.param-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.param-detail-head h3 {
  margin-bottom: 6px;
}

.param-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 14px;
}

.param-attrs {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
}

.param-attrs div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
}

.param-attrs b {
  color: var(--text);
}

.param-form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.supabase-setor-filter {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.supabase-setor-filter .filter-header-text {
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 16px;
  background: #0f172a;
}

.supabase-setor-filter select {
  min-height: 58px;
  padding: 10px 12px;
  border-radius: 16px;
  background: #0f172a;
}

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

  .param-toolbar,
  .param-detail-head,
  .param-form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .param-actions {
    justify-items: stretch;
  }
}


/* NFe Baixa: observação individual por produto */
.nfe-baixa-observacao-cell {
  min-width: 250px;
  white-space: normal !important;
}
.nfe-baixa-observacao-button.has-note {
  color: var(--success);
  border-color: rgba(38, 211, 162, 0.35);
  background: rgba(38, 211, 162, 0.1);
}
.nfe-baixa-observacao-preview {
  display: block;
  max-width: 280px;
  margin-top: 7px;
  color: var(--muted-2);
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nfe-baixa-observacao-editor {
  display: grid;
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(56, 189, 248, 0.3);
  border-radius: 14px;
  background: #0f172a;
}
.nfe-baixa-observacao-editor textarea {
  min-width: 280px;
  min-height: 100px;
  resize: vertical;
}
.nfe-baixa-observacao-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.nfe-baixa-observacao-actions .primary-button {
  min-height: 36px;
  padding: 0 14px;
  border-radius: 12px;
}

/* Escala de folgas e calendario */
:root{--escala-name-width:260px;--escala-role-width:190px}.escala-shell{padding:0;overflow:hidden}.escala-header{display:flex;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--border)}.escala-header p:last-child{margin:0}.escala-actions,.escala-tabs{display:flex;gap:10px}.escala-tabs{padding:0 18px;background:rgba(56,189,248,.1);border-bottom:1px solid var(--border)}.escala-tabs button{position:relative;border-radius:0;color:var(--muted-2);background:transparent}.escala-tabs button.active{color:#fff}.escala-tabs button.active:after{content:'';position:absolute;left:8px;right:8px;bottom:0;height:3px;background:var(--primary)}.escala-panel{display:none}.escala-panel.active{display:block}.escala-builder,.escala-calendar-filters{display:grid;grid-template-columns:170px 210px minmax(240px,1fr) auto minmax(100px,auto);gap:12px;align-items:end;padding:16px 20px;background:#0f172a;border-bottom:1px solid var(--border)}.escala-builder label,.escala-calendar-filters label{min-width:0;font-size:.76rem}.escala-builder input,.escala-builder select,.escala-calendar-filters input,.escala-calendar-filters select{min-height:46px;padding:9px 11px}.escala-builder>span,.escala-calendar-filters>span{align-self:center;color:var(--muted-2);font-weight:800}.escala-grid-wrapper{width:100%;max-height:calc(100vh - 355px);overflow:auto}.escala-grid{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:.8rem}.escala-grid th,.escala-grid td{height:56px;min-width:60px;padding:6px;border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);text-align:center;background:#111827}.escala-grid thead th{position:sticky;top:0;z-index:10;background:#0b1220}.escala-grid thead small,.escala-grid thead b{display:block}.escala-grid .escala-weekend-6{background:rgba(56,189,248,.105)}.escala-grid .escala-weekend-0{background:rgba(167,139,250,.13)}.escala-grid .escala-weekend-6.morning,.escala-grid .escala-weekend-0.morning{background:rgba(56,189,248,.24)}.escala-name-col{position:sticky!important;left:0;z-index:8!important;width:var(--escala-name-width);min-width:var(--escala-name-width)!important;max-width:var(--escala-name-width);text-align:left!important;background:#0f172a!important}.escala-role-col{position:sticky!important;left:var(--escala-name-width);z-index:7!important;width:var(--escala-role-width);min-width:var(--escala-role-width)!important;max-width:var(--escala-role-width);text-align:left!important;background:#111827!important}.escala-grid thead .escala-name-col,.escala-grid thead .escala-role-col{z-index:14!important}.col-resizer{position:absolute;right:-4px;top:0;width:9px;height:100%;cursor:col-resize}.escala-person{display:inline-flex;align-items:center;gap:9px;max-width:calc(100% - 78px);padding:0;color:var(--text);background:transparent;text-align:left}.escala-person .admin-attendant-avatar{width:36px;height:36px;flex-basis:36px}.escala-person span,.escala-person strong,.escala-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.escala-person small{color:var(--primary);font-size:.68rem}.row-action{min-height:29px;padding:0 7px;margin-left:3px;border-radius:9px;color:var(--muted);background:rgba(255,255,255,.07);font-size:.68rem}.row-action.danger{color:var(--danger)}.escala-role-col select{min-height:38px;padding:6px}.escala-cell{cursor:pointer;font-weight:900}.escala-cell:hover{outline:2px solid var(--primary);outline-offset:-2px}.escala-cell.morning{color:#bae6fd;background:rgba(56,189,248,.18)}.escala-cell.afternoon{color:#ddd6fe;background:rgba(167,139,250,.18)}.escala-cell.off{background:rgba(100,116,139,.3)}.escala-cell.holiday-off{color:#fde68a;background:rgba(245,158,11,.22)}.escala-cell.vacation{color:#bbf7d0;background:rgba(34,197,94,.18)}.escala-cell.leave{color:#fed7aa;background:rgba(249,115,22,.18)}.escala-day-clear{position:absolute;right:3px;top:2px;min-height:20px;padding:0 5px;color:var(--muted-2);background:transparent}.escala-choice{position:fixed;z-index:520;width:220px;display:grid;gap:5px;padding:10px;border:1px solid var(--border);border-radius:16px;background:#0f172a;box-shadow:var(--shadow)}.escala-choice>strong{padding:5px;color:var(--muted-2)}.escala-choice button{min-height:36px;color:var(--muted);background:rgba(255,255,255,.06);text-align:left}.escala-choice button:hover,.escala-choice button.active{color:var(--text);background:rgba(56,189,248,.18)}.escala-calendar-filters{grid-template-columns:220px 180px 190px 1fr}.escala-calendar-week,.escala-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr))}.escala-calendar-week{position:sticky;top:0;z-index:5;background:#0b1220}.escala-calendar-week span{padding:10px;text-align:center;color:var(--muted);font-weight:900}.escala-calendar-week span:first-child{color:#c4b5fd}.escala-calendar-week span:last-child{color:#7dd3fc}.escala-calendar-grid{padding:10px;gap:8px;overflow:auto}.escala-calendar-grid:not(.compact):before{content:'';grid-column:span var(--calendar-offset)}.escala-calendar-grid.compact{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.escala-calendar-day{min-height:150px;padding:10px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.035)}.escala-calendar-day.escala-weekend-6{background:rgba(56,189,248,.09);border-color:rgba(56,189,248,.25)}.escala-calendar-day.escala-weekend-0{background:rgba(167,139,250,.1);border-color:rgba(167,139,250,.26)}.escala-calendar-day>header{display:flex;justify-content:space-between;margin-bottom:9px;color:var(--muted)}.escala-calendar-day>header span{text-transform:capitalize}.escala-calendar-day>header strong{font-size:1.15rem;color:var(--text)}.escala-day-people{display:grid;gap:7px}.escala-day-people .escala-person{max-width:100%;min-height:42px;padding:5px 7px;border-radius:12px;background:rgba(255,255,255,.06)}.escala-day-people .admin-attendant-avatar{width:30px;height:30px;flex-basis:30px}.off-kind{justify-self:end;margin-top:-38px;margin-right:5px;padding:3px 6px;border-radius:8px;color:#e2e8f0;background:rgba(100,116,139,.4);font-size:.65rem;font-weight:900}.off-kind.ffd{color:#fde68a;background:rgba(245,158,11,.2)}.no-off{color:var(--muted-2)}.escala-history-card{width:min(850px,95vw);min-height:0!important}.history-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.history-filters .active{color:#06111f;background:linear-gradient(135deg,var(--primary),var(--success))}@media(max-width:1050px){.escala-builder,.escala-calendar-filters{grid-template-columns:repeat(2,minmax(180px,1fr))}.escala-calendar-week,.escala-calendar-grid{min-width:1050px}}@media(max-width:620px){.escala-header,.escala-actions{flex-direction:column}.escala-builder,.escala-calendar-filters{grid-template-columns:1fr}.escala-actions button{width:100%}}

/* Historico em calendario e aba Trabalhando */
.working-shift{justify-self:end;margin-top:-38px;margin-right:5px;min-width:28px;padding:4px 8px;border-radius:9px;text-align:center;font-size:.7rem;font-weight:900}.working-shift.morning{color:#bae6fd;background:rgba(14,165,233,.25);border:1px solid rgba(56,189,248,.45)}.working-shift.afternoon{color:#ddd6fe;background:rgba(139,92,246,.25);border:1px solid rgba(167,139,250,.45)}
.escala-history-card{width:min(1120px,96vw)!important;max-height:94vh;overflow:auto}.history-calendar{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:16px}.history-calendar-month{padding:14px;border:1px solid var(--border);border-radius:18px;background:rgba(2,6,23,.3)}.history-calendar-month h4{margin:0 0 10px;text-transform:capitalize}.history-week,.history-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.history-week span{padding:5px;color:var(--muted-2);font-size:.68rem;font-weight:900;text-align:center}.history-day{min-height:58px;display:grid;align-content:space-between;padding:6px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.035)}.history-day b{font-size:.72rem}.history-day span{font-size:.68rem;font-weight:900}.history-day.empty{opacity:.45}.history-day.off{background:rgba(100,116,139,.3)}.history-day.holiday-off{color:#fde68a;background:rgba(245,158,11,.22)}.history-day.vacation{color:#bbf7d0;background:rgba(34,197,94,.18)}.history-day.leave{color:#fed7aa;background:rgba(249,115,22,.18)}.history-day.escala-weekend-6{border-left:3px solid #0ea5e9}.history-day.escala-weekend-0{border-left:3px solid #a855f7}.history-empty{grid-column:1/-1;padding:40px;text-align:center;color:var(--muted-2)}@media(max-width:760px){.history-calendar{grid-template-columns:1fr}}

/* Ajustes finais da escala: acao compacta, fins de semana e folga vermelha */
.row-fill-action {
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  margin-left: 4px;
  display: inline-grid;
  place-items: center;
  color: var(--muted);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 9px;
  background: rgba(255, 255, 255, .07);
  font-size: .8rem;
  line-height: 1;
}
.row-fill-action:hover {
  color: #fff;
  border-color: rgba(56, 189, 248, .42);
  background: rgba(56, 189, 248, .16);
}

/* Sabado em azul e domingo em roxo, inclusive cabecalhos e celulas vazias */
.escala-grid th.escala-weekend-6,
.escala-grid td.escala-weekend-6 {
  background-color: rgba(14, 165, 233, .16);
  box-shadow: inset 0 0 0 1px rgba(56, 189, 248, .12);
}
.escala-grid th.escala-weekend-0,
.escala-grid td.escala-weekend-0 {
  background-color: rgba(139, 92, 246, .17);
  box-shadow: inset 0 0 0 1px rgba(167, 139, 250, .13);
}
.escala-grid thead th.escala-weekend-6 {
  color: #bae6fd;
  background: #0c2940;
}
.escala-grid thead th.escala-weekend-0 {
  color: #ddd6fe;
  background: #24163f;
}

/* Folga segue a mesma intensidade visual de Ferias, em vermelho */
.escala-cell.off,
.escala-grid td.escala-weekend-0.off,
.escala-grid td.escala-weekend-6.off {
  color: #fecaca !important;
  background: rgba(239, 68, 68, .18) !important;
  border-color: rgba(248, 113, 113, .28) !important;
  box-shadow: inset 0 0 0 1px rgba(248, 113, 113, .12);
}
.off-kind:not(.ffd) {
  color: #fecaca !important;
  background: rgba(239, 68, 68, .18) !important;
  border: 1px solid rgba(248, 113, 113, .28) !important;
}
.history-day.off {
  color: #fecaca !important;
  background: rgba(239, 68, 68, .18) !important;
  border-color: rgba(248, 113, 113, .28) !important;
}

/* Nova paleta para as colunas de fim de semana */
.escala-grid th.escala-weekend-6,
.escala-grid td.escala-weekend-6 {
  background-color: rgba(20, 184, 166, .11) !important;
  border-left: 1px solid rgba(45, 212, 191, .42) !important;
  border-right: 1px solid rgba(45, 212, 191, .42) !important;
  box-shadow: none !important;
}

.escala-grid th.escala-weekend-0,
.escala-grid td.escala-weekend-0 {
  background-color: rgba(245, 158, 11, .10) !important;
  border-left: 1px solid rgba(251, 191, 36, .42) !important;
  border-right: 1px solid rgba(251, 191, 36, .42) !important;
  box-shadow: none !important;
}

.escala-grid thead th.escala-weekend-6 {
  color: #99f6e4 !important;
  background-color: rgba(13, 148, 136, .24) !important;
}

.escala-grid thead th.escala-weekend-0 {
  color: #fde68a !important;
  background-color: rgba(217, 119, 6, .22) !important;
}

/* Preserva as cores das marcacoes sobre o fim de semana */
.escala-grid td.escala-weekend-6.morning,
.escala-grid td.escala-weekend-0.morning {
  background: rgba(56, 189, 248, .18) !important;
}
.escala-grid td.escala-weekend-6.afternoon,
.escala-grid td.escala-weekend-0.afternoon {
  background: rgba(167, 139, 250, .18) !important;
}
.escala-grid td.escala-weekend-6.vacation,
.escala-grid td.escala-weekend-0.vacation {
  background: rgba(34, 197, 94, .18) !important;
}
.escala-grid td.escala-weekend-6.leave,
.escala-grid td.escala-weekend-0.leave {
  background: rgba(249, 115, 22, .18) !important;
}
.escala-grid td.escala-weekend-6.holiday-off,
.escala-grid td.escala-weekend-0.holiday-off {
  background: rgba(245, 158, 11, .22) !important;
}
.escala-grid td.escala-weekend-6.off,
.escala-grid td.escala-weekend-0.off {
  background: rgba(239, 68, 68, .18) !important;
}

/* Solicitações de folga e conversa */
.solicitacoes-shell{padding:0;overflow:hidden}.solicitacoes-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--border)}.solicitacoes-header small{color:var(--muted-2);font-weight:900}.solicitacoes-layout{display:grid;grid-template-columns:minmax(280px,380px) minmax(460px,1fr);gap:18px;padding:18px}.solicitacao-form,.solicitacao-card{padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(2,6,23,.3)}.solicitacao-form{display:grid;gap:14px;align-self:start;position:sticky;top:16px}.solicitacao-form h4{margin:0}.solicitacoes-list{display:grid;gap:14px}.solicitacao-card{display:grid;gap:14px}.solicitacao-card>header{display:flex;justify-content:space-between;gap:14px}.solicitacao-card h4{margin:5px 0}.solicitacao-card small{color:var(--muted-2)}.solicitacao-type{color:var(--primary);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.solicitacao-status{align-self:start;padding:6px 10px;border-radius:999px;font-size:.72rem;font-weight:900}.solicitacao-status.pendente{color:#fde68a;background:rgba(245,158,11,.16)}.solicitacao-status.aprovada{color:#bbf7d0;background:rgba(34,197,94,.16)}.solicitacao-status.negada{color:#fecaca;background:rgba(239,68,68,.16)}.solicitacao-dates{display:flex;flex-wrap:wrap;gap:8px}.solicitacao-dates span{display:grid;gap:3px;padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.05);color:var(--text)}.solicitacao-dates b{color:var(--muted-2);font-size:.68rem;text-transform:uppercase}.solicitacao-text{margin:0;padding:12px;border-left:3px solid var(--primary);background:rgba(56,189,248,.07);white-space:pre-wrap}.solicitacao-response{display:grid;gap:5px;padding:12px;border:1px solid rgba(38,211,162,.25);border-radius:14px;background:rgba(38,211,162,.08)}.solicitacao-manager-actions{display:flex;gap:10px}.solicitacao-manager-actions button{min-height:38px}.solicitacao-deny{color:#fecaca;border-color:rgba(248,113,113,.35)}.solicitacao-chat{display:grid;gap:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.solicitacao-messages{display:grid;gap:8px;max-height:250px;overflow:auto}.solicitacao-message{display:grid;gap:3px;max-width:82%;padding:9px 11px;border-radius:14px;background:rgba(255,255,255,.07)}.solicitacao-message.mine{justify-self:end;background:rgba(56,189,248,.14)}.solicitacao-message span{white-space:pre-wrap}.solicitacao-message small{font-size:.68rem}.solicitacao-chat form{display:grid;grid-template-columns:1fr auto;gap:8px}.solicitacao-chat input{min-height:42px;padding:9px 12px}.solicitacao-empty,.solicitacao-empty-chat{padding:24px;color:var(--muted-2);text-align:center}.solicitacao-empty-chat{padding:8px}@media(max-width:900px){.solicitacoes-layout{grid-template-columns:1fr}.solicitacao-form{position:static}}@media(max-width:560px){.solicitacoes-header,.solicitacao-card>header,.solicitacao-manager-actions{flex-direction:column}.solicitacao-chat form{grid-template-columns:1fr}.solicitacao-chat form button{width:100%}}
/* =====================================================
   MOBILE APP MODE
   Adicionar no FINAL do style.css
===================================================== */

@media screen and (max-width:768px){

  html,
  body{
    overflow-x:hidden;
  }

  body{
    padding:0;
    margin:0;
  }

  .app-layout{
    display:block !important;
  }

  .main-content{
    padding:14px !important;
    padding-bottom:90px !important;
  }

  /* MENU APP */

  .sidebar{
    position:fixed !important;
    left:0;
    right:0;
    bottom:0;
    top:auto;
    width:100%;
    height:72px;
    z-index:9999;
    padding:8px !important;
    background:#0f172a !important;
    border-top:1px solid rgba(255,255,255,.12);
    border-right:none !important;
  }

  .brand-row.compact{
    display:none !important;
  }

  .logout{
    display:none !important;
  }

  .menu{
    display:flex !important;
    flex-direction:row !important;
    justify-content:space-between;
    align-items:center;
    gap:6px;
    overflow:hidden !important;
  }

  .menu-item{
    flex:1;
    font-size:.72rem;
    min-height:50px;
    padding:8px;
    text-align:center;
  }

  /* TOPBAR */

  .topbar{
    flex-direction:column !important;
    gap:14px !important;
  }

  .topbar h2{
    font-size:1.4rem !important;
  }

  .user-topbar{
    width:100%;
  }

  .user-avatar{
    width:52px;
    height:52px;
    flex-basis:52px;
  }

  /* CARDS */

  .card,
  .debitos-inner-card,
  .param-list-card,
  .param-detail-card,
  .tarefas-form-panel,
  .tarefas-board-panel,
  .tarefas-config-panel{
    padding:16px !important;
    border-radius:16px !important;
  }

  /* FILTROS */

  #globalFiltersBlock{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    padding:12px !important;
  }

  .checkbox-filter,
  .employee-type-filter,
  .supabase-setor-filter{
    width:100%;
  }

  .checkbox-filter-header,
  .employee-type-filter select,
  .supabase-setor-filter select{
    min-height:58px;
  }

  .checkbox-filter.open .checkbox-list{
    position:relative !important;
    width:100% !important;
    max-height:260px;
  }

  /* TABELAS */

  .table-wrapper{
    overflow:auto !important;
    -webkit-overflow-scrolling:touch;
  }

  .result-table,
  .admin-total-table,
  .debitos-lancamentos-table,
  .debitos-produtos-draft-table,
  .debitos-classes-table,
  .produto-debito-table,
  .admin-credit-detail-table{
    min-width:900px !important;
  }

  /* MODAIS */

  .admin-modal-card,
  .debitos-modal-card,
  .produto-debito-card,
  .debito-detalhe-card,
  .nfe-baixa-modal-card,
  .debito-crediario-detail-card{

    width:100vw !important;
    height:100vh !important;

    max-width:none !important;
    max-height:none !important;

    border-radius:0 !important;
    margin:0 !important;
    padding:16px !important;
  }

  .admin-modal,
  .debitos-modal{
    padding:0 !important;
  }

  /* GRIDS */

  .grid,
  .param-grid,
  .debitos-form-grid,
  .produto-search-grid,
  .produto-include-grid,
  .tarefas-form-grid,
  .tarefas-custom-fields,
  .tarefas-config-grid,
  .debitos-info-grid,
  .admin-modal-grid{
    grid-template-columns:1fr !important;
  }

  /* TOTAL */

  .total-content strong{
    font-size:2rem !important;
  }

  .pbm-comparison-cards{
    grid-template-columns:1fr !important;
  }

  /* TAREFAS */

  .tarefas-board{
    display:flex !important;
    overflow-x:auto;
    gap:12px;
    scroll-snap-type:x mandatory;
  }

  .tarefas-column{
    min-width:90vw;
    scroll-snap-align:start;
  }

  /* PARAMETRIZAÇÃO */

  .param-detail-head,
  .param-toolbar{
    flex-direction:column !important;
  }

  .param-form-actions{
    flex-direction:column !important;
  }

  .param-form-actions button{
    width:100%;
  }

  /* BOTÕES TOUCH */

  button,
  input,
  select,
  textarea{
    font-size:16px !important;
  }

  .primary-button,
  .ghost-button,
  .mini-button{
    min-height:48px !important;
  }

  /* CALENDÁRIO */

  .date-range-picker{
    position:fixed !important;
    inset:0;
    width:100vw !important;
    height:100vh !important;
    max-width:none !important;
    border-radius:0 !important;
    overflow:auto !important;
    z-index:10000;
  }

  .date-calendars{
    grid-template-columns:1fr !important;
  }

  /* ESCALA */

  .escala-builder,
  .escala-calendar-filters{
    grid-template-columns:1fr !important;
  }

  .escala-grid-wrapper{
    max-height:none;
  }

  /* LOGIN */

  .login-layout{
    grid-template-columns:1fr !important;
  }

  .login-hero{
    display:none !important;
  }

  .login-panel{
    min-height:100vh;
    padding:16px !important;
  }

  .login-card{
    width:100%;
    max-width:none;
  }

}
/* Calendário de folgas: datas passadas */
.escala-calendar-day.is-past {
  border-color: rgba(239, 68, 68, 0.72) !important;
  background: rgba(127, 29, 29, 0.2) !important;
}
.escala-calendar-day.is-past > header {
  color: #fca5a5 !important;
}
.escala-calendar-day.is-past .escala-person-entry {
  opacity: 0.52 !important;
}

/* Relatórios: restaura os dois cards lado a lado e o tamanho original dos avatares */
#relatoriosSection .report-total-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

#relatoriosSection .day-attendant-avatar {
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  max-width: 48px;
  max-height: 48px;
  overflow: hidden;
  border-radius: 50%;
}

#relatoriosSection .day-attendant-avatar img,
#relatoriosSection .day-attendant-avatar span {
  display: block;
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  max-width: 48px;
  max-height: 48px;
  object-fit: cover;
  border-radius: 50%;
}

#relatoriosSection .day-attendant-avatar span {
  display: grid;
  place-items: center;
}

/* Histórico de folgas: observações ao lado direito do calendário */
.history-calendar{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start}
.history-calendars-list{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:16px;min-width:0}
.history-observations{position:sticky;top:0;padding:14px;border:1px solid var(--border);border-radius:18px;background:rgba(2,6,23,.3)}
.history-observations h4{margin:0 0 10px}
.history-observations>div{display:grid;gap:8px;max-height:62vh;overflow:auto}
.history-observations article{display:grid;gap:5px;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.045)}
.history-observations article strong{color:var(--primary);font-size:.8rem}
.history-observations article span{color:var(--muted);line-height:1.4;white-space:pre-wrap;word-break:break-word}
.history-observations p{margin:0;color:var(--muted-2)}
@media(max-width:900px){.history-calendar{grid-template-columns:1fr}.history-calendars-list{grid-template-columns:1fr}.history-observations{position:static}}

/* Trabalhando ADM */
.working-adm-controls{display:grid;grid-template-columns:180px 170px 210px minmax(420px,1fr) auto;gap:12px;align-items:end;padding:16px 20px;background:#0f172a;border-bottom:1px solid var(--border)}
.working-adm-controls fieldset{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:9px 12px;border:1px solid var(--border);border-radius:14px}.working-adm-controls fieldset label{display:flex;align-items:center;gap:4px}.working-adm-controls fieldset input{width:17px;height:17px;padding:0}
.working-adm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;padding:16px}.working-adm-day{min-height:180px;padding:12px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.035)}.working-adm-day>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.working-adm-day>header div{display:flex;align-items:center;gap:8px;text-transform:capitalize}.working-adm-day>header strong{font-size:1.2rem}.working-adm-people{display:grid;gap:8px}.working-adm-ghost{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:7px;border:1px dashed rgba(148,163,184,.46);border-radius:13px;background:rgba(148,163,184,.065);opacity:.78;cursor:pointer}.working-adm-ghost:hover{opacity:1;border-color:var(--primary)}.working-adm-ghost .escala-person{max-width:100%;pointer-events:none}.working-adm-off{min-height:32px;padding:0 9px;border-radius:9px;color:#fecaca;background:rgba(239,68,68,.18)}.working-shift.intermediate{color:#fde68a;background:rgba(245,158,11,.22);border:1px solid rgba(251,191,36,.4)}.escala-cell.intermediate{color:#fde68a;background:rgba(245,158,11,.18)}.escala-tab-refresh{margin:12px 20px 0;margin-left:auto;display:block;min-height:40px}.working-adm-include-menu{max-height:70vh;overflow:auto}.working-adm-empty{grid-column:1/-1;padding:30px;text-align:center;color:var(--muted-2)}
@media(max-width:1100px){.working-adm-controls{grid-template-columns:repeat(2,minmax(180px,1fr))}.working-adm-controls fieldset{grid-column:1/-1}}@media(max-width:620px){.working-adm-controls{grid-template-columns:1fr}.working-adm-controls fieldset{grid-column:auto}.working-adm-grid{grid-template-columns:1fr;padding:10px}}


/* Trabalhando ADM: cards reais da grade e arrastar entre os dias */
.working-adm-person{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:7px;border:1px solid rgba(56,189,248,.24);border-radius:13px;background:rgba(15,23,42,.72);cursor:grab;opacity:1;transition:opacity .16s ease,transform .16s ease,border-color .16s ease,background .16s ease}
.working-adm-person:hover{border-color:rgba(56,189,248,.58);background:rgba(56,189,248,.1)}
.working-adm-person:active{cursor:grabbing}.working-adm-person.is-dragging{opacity:.42;transform:scale(.98)}
.working-adm-person .escala-person{max-width:100%;pointer-events:none}
.working-adm-day.is-drag-over{border-color:var(--primary);background:rgba(56,189,248,.12);box-shadow:inset 0 0 0 2px rgba(56,189,248,.18)}

/* Trabalhando ADM: horario em duas linhas e selecao por listas */
.working-adm-hours{display:grid;gap:1px;justify-items:start;min-width:72px;color:var(--muted);font-size:.72rem;font-weight:900;line-height:1.15;text-align:left}
.working-adm-hours span{display:block;width:100%;text-align:left}
.working-adm-time-picker{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px}
.working-adm-time-picker select{min-height:42px;padding:8px 10px;border-radius:12px;text-align:center;cursor:pointer}
.working-adm-time-picker b{color:var(--muted);text-align:center}

/* Escala de folgas: contador compacto de dias trabalhados ate a proxima folga */
.escala-cell { position: relative; }
.escala-work-sequence {
  position: absolute;
  top: 2px;
  right: 3px;
  min-width: 16px;
  padding: 0 3px;
  color: rgba(248, 250, 252, .82);
  font-size: 11px;
  font-weight: 900;
  line-height: 15px;
  text-align: right;
  pointer-events: none;
}


/* Trabalhando ADM: dias consecutivos compartilham a borda; sequencias vizinhas usam cores contrastantes */
.working-adm-day.working-adm-sequence-0{border-color:#00e5ff}
.working-adm-day.working-adm-sequence-1{border-color:#ff6b00}
.working-adm-day.working-adm-sequence-2{border-color:#b86bff}
.working-adm-day.working-adm-sequence-3{border-color:#76ff03}
.working-adm-day.working-adm-sequence-4{border-color:#ff1744}
.working-adm-day.working-adm-sequence-5{border-color:#ffd600}


/* Calendario de folgas e Trabalhando: horario salvo nos cards */
.escala-person-entry{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 7px;border-radius:12px;background:rgba(255,255,255,.06)}
.escala-person-entry .escala-person{padding:0;background:transparent}
.escala-card-hours{grid-column:1/-1;color:var(--muted-2);font-size:.68rem;font-weight:900;line-height:1.2;padding-left:39px}
.escala-info-badge{position:absolute;right:5px;bottom:5px;width:18px;height:18px;display:grid;place-items:center;border:1px solid rgba(56,189,248,.5);border-radius:50%;color:#bae6fd;background:rgba(14,165,233,.22);font-size:.7rem;font-weight:900;cursor:help}
.escala-day-people .off-kind.off{color:#fecaca!important;background:rgba(239,68,68,.18)!important;border:1px solid rgba(248,113,113,.28)!important}
.escala-day-people .off-kind.holiday-off{color:#fde68a!important;background:rgba(245,158,11,.22)!important;border:1px solid rgba(251,191,36,.32)!important}
.escala-day-people .off-kind.vacation{color:#bbf7d0!important;background:rgba(34,197,94,.18)!important;border:1px solid rgba(74,222,128,.28)!important}
.escala-day-people .off-kind.leave{color:#fed7aa!important;background:rgba(249,115,22,.18)!important;border:1px solid rgba(251,146,60,.28)!important}


/* Trabalhando e Trabalhando ADM: relogio no horario e turno fixo no topo direito */
.escala-clock-icon{display:inline-grid;place-items:center;width:15px;height:15px;flex:0 0 15px;border:1px solid #ef4444;border-radius:50%;color:#fff;background:#ef4444;font-size:10px;font-weight:900;line-height:1}
.escala-card-hours{display:flex;align-items:center;gap:5px}
[data-escala-panel="trabalhando"] .escala-person-entry .working-shift{position:absolute;top:5px;right:5px;margin:0;z-index:2}
[data-escala-panel="trabalhando"] .escala-person-entry{padding-right:43px}
.working-adm-person .working-shift{position:absolute;top:5px;right:5px;margin:0;z-index:2}
.working-adm-person{padding-right:43px}
.working-adm-clock-line{display:flex!important;align-items:center;gap:4px}

/* Modal de cobertura diaria por horario */
.escala-gantt-day-button{border:0;background:transparent;color:inherit;padding:2px 5px;border-radius:7px;cursor:pointer}.escala-gantt-day-button:hover{background:rgba(56,189,248,.16);color:#7dd3fc}.escala-gantt-modal{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:20px}.escala-gantt-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.84);backdrop-filter:blur(5px)}.escala-gantt-dialog{position:relative;width:min(1180px,96vw);max-height:92vh;overflow:hidden;border:1px solid var(--border);border-radius:20px;background:#0f172a;box-shadow:0 30px 90px rgba(0,0,0,.55)}.escala-gantt-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border)}.escala-gantt-dialog h3{margin:3px 0 0}.escala-gantt-axis{display:grid;grid-template-columns:220px minmax(700px,1fr);padding:10px 20px;border-bottom:1px solid var(--border);color:var(--muted-2);font-size:.72rem;font-weight:800}.escala-gantt-axis>div,.escala-gantt-track{position:relative}.escala-gantt-axis>div span{position:absolute;transform:translateX(-50%);white-space:nowrap}.escala-gantt-content{max-height:calc(92vh - 145px);overflow:auto;padding:12px 20px 22px}.escala-gantt-sector{min-width:920px;margin-bottom:16px}.escala-gantt-sector h4{margin:0;padding:9px 12px;color:#7dd3fc;background:rgba(56,189,248,.1);border-radius:10px}.escala-gantt-row{display:grid;grid-template-columns:220px minmax(700px,1fr);align-items:center;min-height:62px;border-bottom:1px solid rgba(255,255,255,.07)}.escala-gantt-person{padding-right:12px;overflow:hidden}.escala-gantt-track{height:42px;background:repeating-linear-gradient(to right,rgba(148,163,184,.16) 0,rgba(148,163,184,.16) 1px,transparent 1px,transparent 7.142857%);border-radius:8px}.escala-gantt-bar{position:absolute;top:5px;height:32px;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:32px;padding:0 9px;overflow:hidden;border:1px solid rgba(125,211,252,.65);border-radius:8px;color:#e0f2fe;background:linear-gradient(90deg,rgba(14,165,233,.82),rgba(37,99,235,.82))}.escala-gantt-bar strong,.escala-gantt-bar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.escala-gantt-bar small{font-size:.68rem}.escala-gantt-empty{padding:35px;text-align:center;color:var(--muted-2)}@media(max-width:760px){.escala-gantt-modal{padding:8px}.escala-gantt-dialog{width:100%;max-height:96vh}.escala-gantt-axis,.escala-gantt-row{grid-template-columns:160px minmax(700px,1fr)}.escala-gantt-content{max-height:calc(96vh - 145px);padding:10px}.escala-gantt-sector{min-width:870px}}

/* Simulador automatico de escala */
.escala-simulator-panel{background:#0b1220;min-height:650px}.escala-simulator-head{display:flex;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,rgba(14,165,233,.12),rgba(99,102,241,.08))}.escala-simulator-head h3{margin:3px 0 5px}.escala-simulator-head p{margin:0;color:var(--muted-2)}.escala-simulator-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.escala-simulator-actions small{width:100%;text-align:right;color:var(--muted-2)}.escala-simulator-layout{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:620px}.escala-simulator-nav{padding:14px;border-right:1px solid var(--border);background:#0f172a}.escala-simulator-nav button{display:block;width:100%;margin-bottom:5px;padding:11px 12px;border:0;border-radius:10px;text-align:left;color:var(--muted-2);background:transparent;cursor:pointer}.escala-simulator-nav button.active,.escala-simulator-nav button:hover{color:#fff;background:rgba(56,189,248,.14)}.escala-simulator-content{min-width:0;padding:20px;overflow:auto}.escala-simulator-content>[data-simulator-page]{display:none}.escala-simulator-content>[data-simulator-page].active{display:block}.escala-simulator-content h4{margin:3px 0 14px}.sim-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}.sim-form-grid label,.sim-full,.sim-employee-fields label{display:grid;gap:6px;color:var(--muted-2);font-size:.76rem}.sim-form-grid input,.sim-form-grid select,.sim-full textarea,.sim-employee-fields input,.sim-employee-fields select,.sim-exception-form input,.sim-exception-form select,.sim-window-row input{min-height:42px}.sim-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;margin:14px 0 18px}.sim-check-grid label,.sim-employee-checks label{display:flex;gap:8px;align-items:center;padding:10px;border:1px solid rgba(148,163,184,.16);border-radius:10px;background:rgba(255,255,255,.025)}.sim-rule-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px;margin-bottom:22px}.sim-rule-cards article{padding:14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.sim-rule-cards article>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.sim-rule-cards label{display:grid;gap:5px;font-size:.72rem;color:var(--muted-2)}.sim-window-row{display:grid;grid-template-columns:minmax(140px,1fr) 120px 120px 85px 85px 40px;gap:8px;margin-bottom:8px}.sim-demand-table{display:grid;grid-template-columns:minmax(170px,1fr) repeat(3,120px);gap:7px;align-items:center;max-width:720px}.sim-demand-table>*{min-height:42px;padding:9px}.sim-demand-table b{text-align:center;color:#7dd3fc}.sim-market-vars{margin-top:25px}.sim-team-tools,.sim-results-head{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:12px}.sim-team-list{display:grid;gap:10px}.sim-employee{padding:12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.sim-employee-main{display:flex;align-items:center;gap:9px}.sim-employee-fields{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:8px;margin-top:10px}.sim-employee-checks{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;font-size:.74rem}.sim-employee-checks label{padding:7px 9px}.sim-exception-form{display:grid;grid-template-columns:1.2fr 145px 180px 1fr 130px auto;gap:8px}.sim-exception-list{display:grid;gap:7px;margin-top:14px}.sim-exception-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid var(--border);border-radius:10px}.sim-priority-list{display:grid;gap:14px;max-width:780px}.sim-priority-list label span{display:flex;justify-content:space-between;margin-bottom:6px}.sim-priority-list input{width:100%}.sim-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.sim-kpis article{padding:13px;border:1px solid var(--border);border-radius:12px;background:rgba(56,189,248,.06)}.sim-kpis span{display:block;color:var(--muted-2);font-size:.72rem}.sim-kpis strong{font-size:1.45rem}.sim-result-grid-wrap{overflow:auto;border:1px solid var(--border);border-radius:13px}.sim-result-grid{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:.72rem}.sim-result-grid th,.sim-result-grid td{padding:5px;border-right:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);text-align:center}.sim-result-grid th:first-child{position:sticky;left:0;z-index:2;min-width:180px;text-align:left;background:#111827}.sim-result-grid th small{display:block;color:var(--muted-2)}.sim-result-grid td button{min-width:38px;min-height:34px;border:1px solid transparent;border-radius:7px;color:#fff;background:#1e293b;cursor:pointer}.sim-result-grid td button.locked{border-color:#fbbf24}.sim-result-grid td button.off{background:rgba(239,68,68,.22)}.sim-result-grid td button.morning{background:rgba(14,165,233,.28)}.sim-result-grid td button.afternoon{background:rgba(99,102,241,.3)}.sim-result-grid td button.intermediate{background:rgba(245,158,11,.28)}.sim-conflicts{margin-top:16px}.sim-conflicts article{display:flex;justify-content:space-between;gap:15px;padding:10px;border-left:3px solid #ef4444;background:rgba(239,68,68,.08);margin-bottom:6px}.sim-success{padding:12px;color:#86efac;background:rgba(34,197,94,.08);border-radius:10px}.sim-empty-result{text-align:center;padding:60px 20px;color:var(--muted-2)}.muted{color:var(--muted-2)}@media(max-width:1000px){.escala-simulator-layout{grid-template-columns:1fr}.escala-simulator-nav{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--border)}.escala-simulator-nav button{min-width:max-content}.sim-employee-fields{grid-template-columns:repeat(3,1fr)}.sim-exception-form{grid-template-columns:1fr 1fr}.sim-kpis{grid-template-columns:1fr 1fr}}@media(max-width:650px){.escala-simulator-head{display:block}.escala-simulator-actions{margin-top:12px;justify-content:flex-start}.escala-simulator-actions small{text-align:left}.escala-simulator-content{padding:12px}.sim-window-row{grid-template-columns:1fr 1fr}.sim-demand-table{grid-template-columns:1fr repeat(3,70px)}.sim-employee-fields{grid-template-columns:1fr 1fr}.sim-exception-form{grid-template-columns:1fr}.sim-kpis{grid-template-columns:1fr 1fr}}
.escala-gantt-lunch{position:absolute;top:0;bottom:0;z-index:2;display:block;background:repeating-linear-gradient(135deg,rgba(15,23,42,.9) 0,rgba(15,23,42,.9) 5px,rgba(251,191,36,.72) 5px,rgba(251,191,36,.72) 9px);border-left:1px solid #fbbf24;border-right:1px solid #fbbf24;pointer-events:auto}

/* Configuracao individual de jornada e escala */
.param-work-defaults{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:16px;border:1px solid var(--border);border-radius:14px;background:rgba(56,189,248,.04)}.param-work-defaults legend{padding:0 8px;font-weight:900;color:#7dd3fc}.param-work-defaults label{display:grid;gap:6px;color:var(--muted-2);font-size:.76rem}.param-work-defaults input,.param-work-defaults select{min-height:42px}

/* Intervalo de almoco no Gantt da jornada padrao */
.escala-gantt-lunch{position:absolute;top:0;bottom:0;z-index:2;display:block;background:repeating-linear-gradient(135deg,rgba(15,23,42,.92) 0,rgba(15,23,42,.92) 5px,rgba(251,191,36,.78) 5px,rgba(251,191,36,.78) 9px);border-left:1px solid #fbbf24;border-right:1px solid #fbbf24}

/* Modal Cobertura por horario ampliado e setores recolhiveis */
.escala-gantt-dialog{width:min(1520px,98vw);max-height:96vh}.escala-gantt-content{max-height:calc(96vh - 150px)}.escala-gantt-axis{grid-template-columns:260px minmax(980px,1fr);font-size:1rem;min-height:42px}.escala-gantt-axis>div span.escala-gantt-hour{font-size:1rem;font-weight:900}.escala-gantt-axis>div span.escala-gantt-hour.edge{font-size:1.22rem;color:#38bdf8}.escala-gantt-axis>div span.escala-gantt-hour.peak{font-size:1.12rem;color:#fbbf24}.escala-gantt-axis>div span.escala-gantt-hour.normal{color:#cbd5e1}.escala-gantt-sector{min-width:1240px}.escala-gantt-sector-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:12px;width:100%;padding:11px 14px;border:0;border-radius:10px;color:#7dd3fc;background:rgba(56,189,248,.1);text-align:left;cursor:pointer}.escala-gantt-sector-toggle:hover{background:rgba(56,189,248,.17)}.escala-gantt-sector-toggle span{font-size:1rem;font-weight:900}.escala-gantt-sector-toggle small{color:var(--muted-2)}.escala-gantt-sector-toggle b{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:#fff;background:rgba(56,189,248,.2);font-size:1.2rem}.escala-gantt-sector-body{display:block}.escala-gantt-sector.collapsed .escala-gantt-sector-body{display:none}.escala-gantt-sector.collapsed{margin-bottom:8px}.escala-gantt-row{grid-template-columns:260px minmax(980px,1fr)}@media(max-width:760px){.escala-gantt-dialog{width:100%;max-height:98vh}.escala-gantt-axis,.escala-gantt-row{grid-template-columns:180px minmax(900px,1fr)}.escala-gantt-sector{min-width:1100px}}

/* Navegacao de data e historico no modal Cobertura por horario */
.escala-gantt-date-navigation{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto}.escala-gantt-date-navigation input{width:148px;min-height:36px;padding:6px 8px}.escala-gantt-person-history{cursor:pointer;border-radius:10px}.escala-gantt-person-history>.escala-person{width:100%;pointer-events:none}.escala-gantt-person-history:hover{background:rgba(56,189,248,.08)}.escala-gantt-person-history:hover .escala-person{color:#7dd3fc}.escala-gantt-person-history:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}@media(max-width:720px){.escala-gantt-date-navigation{flex-wrap:wrap}.escala-gantt-date-navigation input{width:136px}}

/* Aumento somente da fonte do horario dentro da barra do Gantt */
.escala-gantt-bar small{font-size:.88rem}

/* Texto do horario dentro do marcador de almoco, sem alterar suas dimensoes */
.escala-gantt-lunch span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 2px;color:#fff;font-size:.66rem;font-weight:900;line-height:1;white-space:nowrap;text-shadow:0 1px 2px #000;overflow:hidden;pointer-events:none}

/* Maior contraste para o texto do horario de almoco */
.escala-gantt-lunch span{color:#ff3b30;text-shadow:0 0 2px #fff,0 1px 2px #000}

/* Texto azul e um pouco maior no horario de almoco */
.escala-gantt-lunch span{color:#00b7ff;font-size:.74rem;text-shadow:0 0 2px #fff,0 1px 2px #000}

/* Texto branco mantendo o tamanho atual do horario de almoco */
.escala-gantt-lunch span{color:#fff}

/* Escala: selecao multipla nos mesmos drops existentes */
.escala-native-multi-hidden{display:none!important}.escala-builder .escala-checkbox-drop{position:relative;min-width:0}.escala-builder .escala-checkbox-drop .checkbox-filter-header{min-height:46px;padding:9px 11px;background:rgba(2,6,23,.42)}.escala-builder .escala-checkbox-drop.open .checkbox-list{position:absolute;z-index:190;top:calc(100% + 7px);left:0;width:min(360px,86vw);max-height:280px;background:#0f172a;box-shadow:var(--shadow)}@media(max-width:620px){.escala-builder .escala-checkbox-drop.open .checkbox-list{position:static;width:100%;box-shadow:none}}

/* Drops de Função e Colaborador com o mesmo padrão visual do PBM */
.escala-builder .escala-checkbox-drop,
.escala-calendar-filters .escala-checkbox-drop,
.working-adm-controls .escala-checkbox-drop {
  position: relative;
  min-width: 0;
}
.escala-builder .escala-checkbox-drop .checkbox-filter-header,
.escala-calendar-filters .escala-checkbox-drop .checkbox-filter-header,
.working-adm-controls .escala-checkbox-drop .checkbox-filter-header {
  min-height: 46px;
  padding: 9px 11px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 16px;
  background: #0f172a;
}
.escala-builder .escala-checkbox-drop.open .checkbox-list,
.escala-calendar-filters .escala-checkbox-drop.open .checkbox-list,
.working-adm-controls .escala-checkbox-drop.open .checkbox-list {
  position: absolute;
  z-index: 190;
  top: calc(100% + 7px);
  left: 0;
  width: min(360px,86vw);
  max-height: 280px;
  background: #0f172a;
  box-shadow: var(--shadow);
}
@media(max-width:620px){
  .escala-builder .escala-checkbox-drop.open .checkbox-list,
  .escala-calendar-filters .escala-checkbox-drop.open .checkbox-list,
  .working-adm-controls .escala-checkbox-drop.open .checkbox-list {
    position: static;
    width: 100%;
    box-shadow: none;
  }
}


/* Correcao definitiva dos menus drop da escala */
.escala-shell,
.escala-builder,
.escala-calendar-filters,
.working-adm-controls {
  overflow: visible !important;
}
.escala-builder .escala-checkbox-drop,
.escala-calendar-filters .escala-checkbox-drop,
.working-adm-controls .escala-checkbox-drop {
  z-index: 210;
}
.escala-checkbox-drop > .checkbox-list {
  display: none !important;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
.escala-checkbox-drop.open > .checkbox-list {
  display: grid !important;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  z-index: 10020 !important;
}
.escala-checkbox-drop .checkbox-filter-header {
  position: relative;
  z-index: 2;
  cursor: pointer;
  touch-action: manipulation;
}

/* Gerador automatico de escala, modulo isolado do Simulador */
.escala-generator-panel{min-height:620px;background:#0b1220}.generator-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,rgba(38,211,162,.11),rgba(56,189,248,.08))}.generator-head h3{margin:3px 0 5px}.generator-head p{margin-bottom:0}.generator-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.generator-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.35fr);gap:18px;padding:20px}.generator-layout>section{min-width:0;padding:16px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025)}.generator-layout h4{margin:0 0 12px}.generator-config{min-height:560px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5}.generator-layout details{margin-top:16px}.generator-layout summary{cursor:pointer;color:var(--primary);font-weight:900}.generator-layout pre{min-height:180px;margin-top:10px}.generator-summary-table{min-width:760px}.generator-layout #escalaGeneratorStatus{display:block;margin-top:10px;color:var(--muted-2);font-weight:800}@media(max-width:980px){.generator-head{flex-direction:column}.generator-actions{justify-content:flex-start}.generator-layout{grid-template-columns:1fr}.generator-config{min-height:420px}}@media(max-width:620px){.generator-actions,.generator-actions button{width:100%}.generator-layout{padding:10px}.generator-layout>section{padding:12px}}

/* Gerador visual de escala v2 */
.generator-layout-v2{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:680px}.generator-nav{padding:14px;border-right:1px solid var(--border);background:#0f172a}.generator-nav button{display:block;width:100%;min-height:42px;margin-bottom:5px;padding:9px 11px;color:var(--muted-2);background:transparent;text-align:left;border-radius:10px}.generator-nav button.active,.generator-nav button:hover{color:#fff;background:rgba(56,189,248,.15)}.generator-content{min-width:0;padding:20px;overflow:auto}.generator-content h4{margin:0 0 15px}.generator-actions small.success{color:var(--success)}.generator-actions small.error{color:var(--danger)}
.gen-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px}.gen-checks{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0}.gen-check{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.035)}.gen-check input,.gen-day-cards header input,.gen-employee-table input[type=checkbox]{width:18px;height:18px;padding:0}.gen-period{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:15px;border:1px solid rgba(56,189,248,.25);border-radius:14px;background:rgba(56,189,248,.065)}.gen-period b{color:#7dd3fc}
.gen-day-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.gen-day-cards article{padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.026)}.gen-day-cards header{display:flex;align-items:center;justify-content:space-between;gap:10px}.gen-day-cards header label{display:flex;align-items:center;gap:6px;font-size:.72rem}.gen-day-cards article>small{display:block;margin:7px 0;color:var(--success);font-weight:900}.gen-inline{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.gen-inline>*{flex:1;min-width:105px}.gen-type-rules{display:grid;gap:7px;margin:10px 0}.gen-type-rules>div{display:grid;grid-template-columns:minmax(100px,1fr) 75px 75px auto;gap:6px}.gen-type-rules input,.gen-type-rules select{min-height:38px;padding:7px 9px}.gen-card-actions{display:flex;justify-content:space-between;gap:7px;flex-wrap:wrap}
.gen-filters{display:grid;grid-template-columns:minmax(190px,1fr) repeat(3,minmax(130px,.7fr)) auto auto;gap:8px;margin-bottom:12px}.gen-filters input,.gen-filters select{min-height:42px;padding:8px 10px}.gen-employee-table{min-width:1050px}.gen-employee-table input[data-employee-type]{min-width:120px;padding:7px 9px}.gen-restriction-form{display:grid;grid-template-columns:220px 280px minmax(300px,1fr) auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.026)}.gen-restriction-form fieldset{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:8px;border:1px solid var(--border);border-radius:12px}.gen-restriction-form fieldset label{display:flex;align-items:center;gap:5px;font-size:.72rem}.gen-restriction-form fieldset input{width:16px;height:16px;padding:0}.gen-restriction-list{display:grid;gap:8px;margin-top:14px}.gen-restriction-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border-left:3px solid var(--primary);border-radius:10px;background:rgba(56,189,248,.07)}
.gen-weight-list{display:grid;gap:10px}.gen-weight-list label{display:grid;grid-template-columns:minmax(240px,1fr) 150px minmax(180px,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:14px}.gen-weight-list label span,.gen-weight-list label small{display:block}.gen-weight-list label small{color:var(--muted-2)}.gen-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-bottom:14px}.gen-kpis article{padding:12px;border:1px solid var(--border);border-radius:12px}.gen-kpis article.ok{border-color:rgba(38,211,162,.35);background:rgba(38,211,162,.075)}.gen-kpis article.error{border-color:rgba(255,101,117,.4);background:rgba(255,101,117,.08)}.gen-kpis span,.gen-kpis strong{display:block}.gen-diagnostic{padding:15px;border:1px solid var(--border);border-radius:15px}.gen-diagnostic.ok{border-color:rgba(38,211,162,.35)}.gen-diagnostic.error{border-color:rgba(255,101,117,.4)}.gen-diagnostic article{display:grid;gap:4px;margin:7px 0;padding:10px;border-radius:10px;background:rgba(2,6,23,.3)}.gen-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.gen-tests{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}.gen-tests article{display:grid;gap:4px;padding:11px;border:1px solid var(--border);border-radius:12px}.gen-tests article.ok{border-color:rgba(38,211,162,.3)}.gen-tests article.error{border-color:rgba(255,101,117,.4)}
@media(max-width:1050px){.generator-layout-v2{grid-template-columns:1fr}.generator-nav{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--border)}.generator-nav button{min-width:max-content}.gen-filters,.gen-restriction-form{grid-template-columns:repeat(2,minmax(170px,1fr))}.gen-weight-list label{grid-template-columns:1fr 130px}}@media(max-width:650px){.generator-content{padding:12px}.gen-filters,.gen-restriction-form,.gen-weight-list label,.gen-period{grid-template-columns:1fr}.gen-type-rules>div{grid-template-columns:1fr 1fr}.gen-type-rules>div select,.gen-type-rules>div button{grid-column:1/-1}.gen-result-head{flex-direction:column}}

/* Assistente do gerador de escala v3 */
.gen-counter{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:14px;background:rgba(38,211,162,.06)}.gen-counter strong{margin-right:8px}.gen-counter span{padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.07);color:var(--muted);font-size:.78rem;font-weight:900}.gen-day-cards h5,.gen-diagnostic h5{margin:0;color:var(--text);font-size:1rem}.gen-day-cards header select{max-width:150px;min-height:38px;padding:7px 9px}.gen-profile-cards{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:12px}.gen-profile-cards label{display:flex;align-items:center;gap:10px;min-height:86px;padding:16px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025);cursor:pointer}.gen-profile-cards label.active{border-color:var(--primary);background:rgba(56,189,248,.11)}.gen-profile-cards input{width:18px;height:18px;padding:0}.gen-advanced{padding:12px;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:rgba(2,6,23,.25)}.gen-advanced pre{min-height:120px}.gen-diagnostic article strong{color:var(--danger)}.gen-diagnostic.ok article strong{color:var(--success)}.gen-result-head>strong{padding:10px 14px;border-radius:999px;color:#86efac;background:rgba(34,197,94,.12)}.sim-result-grid td button.locked{border-color:#fbbf24;box-shadow:inset 0 0 0 1px #fbbf24}.generator-actions button:disabled{cursor:not-allowed;opacity:.45}@media(max-width:650px){.gen-profile-cards{grid-template-columns:1fr}.gen-result-head>strong{align-self:flex-start}}


/* Gerador: rodizio configuravel entre dois dias */
.gen-linked-coverage{margin-top:18px;padding:16px;border:1px solid rgba(38,211,162,.32);border-radius:16px;background:rgba(38,211,162,.055)}
.gen-linked-coverage>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.gen-linked-coverage h5{margin:0 0 5px;font-size:1rem}
.gen-linked-coverage small{color:var(--muted-2);font-weight:800}
.gen-linked-days{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:12px;border:1px solid var(--border);border-radius:13px}
.gen-linked-days legend{padding:0 7px;color:var(--muted-2);font-size:.78rem;font-weight:900}
.gen-linked-days label{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.04);font-size:.76rem}
.gen-linked-days input{width:17px;height:17px;padding:0}
@media(max-width:650px){.gen-linked-coverage>header{flex-direction:column}.gen-linked-coverage .gen-check{width:100%}}


/* Importacao de escala por arquivo ou texto */
.escala-import-modal{position:fixed;inset:0;z-index:2147483640;display:none;place-items:center;padding:18px}.escala-import-modal.open{display:grid}.escala-import-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.84);backdrop-filter:blur(6px)}.escala-import-dialog{position:relative;width:min(780px,96vw);max-height:94vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--border);border-radius:22px;background:#0f172a;box-shadow:var(--shadow);overflow:hidden}.escala-import-dialog>header,.escala-import-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.escala-import-dialog>footer{justify-content:flex-end;border-top:1px solid var(--border);border-bottom:0}.escala-import-dialog h3{margin:0}.escala-import-body{display:grid;gap:12px;padding:18px;overflow:auto}.escala-import-body textarea{min-height:260px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem!important}.escala-import-separator{display:flex;align-items:center;gap:10px;color:var(--muted-2);font-weight:900}.escala-import-separator:before,.escala-import-separator:after{content:'';height:1px;flex:1;background:var(--border)}.escala-import-message{margin:0;color:var(--muted);font-weight:800}.escala-import-summary{display:flex;flex-wrap:wrap;gap:8px}.escala-import-summary>*{padding:7px 10px;border:1px solid rgba(56,189,248,.24);border-radius:10px;background:rgba(56,189,248,.08);color:var(--muted)}.escala-import-summary strong{color:#7dd3fc}@media(max-width:620px){.escala-import-modal{padding:0}.escala-import-dialog{width:100vw;height:100vh;max-height:none;border-radius:0}.escala-import-dialog>header,.escala-import-dialog>footer{align-items:stretch;flex-direction:column}.escala-import-dialog>footer button{width:100%}}


/* Modal isolado: gerador de prompt para IA */
.escala-prompt-lock{overflow:hidden}.escala-prompt-modal{position:fixed;inset:0;z-index:2147483640;display:none;padding:16px}.escala-prompt-modal.open{display:grid;place-items:center}.escala-prompt-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.86);backdrop-filter:blur(6px)}.escala-prompt-dialog{position:relative;width:min(1500px,98vw);height:min(920px,96vh);display:grid;grid-template-rows:auto 1fr;overflow:hidden;border:1px solid var(--border);border-radius:24px;background:#0b1220;box-shadow:var(--shadow)}.escala-prompt-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--border)}.escala-prompt-dialog>header h3{margin:2px 0 5px}.escala-prompt-dialog>header p:last-child{margin:0}.escala-prompt-body{min-height:0;display:grid;grid-template-columns:220px 1fr}.escala-prompt-nav{display:grid;align-content:start;gap:5px;padding:14px;border-right:1px solid var(--border);background:#0f172a}.escala-prompt-nav button{min-height:42px;padding:9px 11px;color:var(--muted-2);background:transparent;text-align:left;border-radius:10px}.escala-prompt-nav button.active,.escala-prompt-nav button:hover{color:#fff;background:rgba(56,189,248,.15)}.escala-prompt-content{min-width:0;overflow:auto;padding:20px}.escala-prompt-page{display:none}.escala-prompt-page.active{display:block}.escala-prompt-page h4{margin:0 0 15px}.prompt-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.prompt-fieldset{display:flex;gap:18px;flex-wrap:wrap;margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:14px}.prompt-fieldset legend{padding:0 8px;color:#7dd3fc;font-weight:900}.prompt-fieldset label,.prompt-output-options label{display:flex;align-items:center;gap:7px}.prompt-fieldset input,.prompt-rule>input[type=checkbox],.prompt-employee-list input{width:18px;height:18px;padding:0}.prompt-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 9px}.prompt-list-head span{display:flex;gap:7px}.prompt-employee-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;max-height:380px;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:14px}.prompt-employee-list>label{display:flex;align-items:center;gap:9px;padding:10px;border-radius:11px;background:rgba(255,255,255,.04)}.prompt-employee-list strong,.prompt-employee-list small{display:block}.prompt-employee-list small{color:var(--muted-2);margin-top:3px}.prompt-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}.prompt-rule{display:grid;grid-template-columns:20px minmax(0,1fr) 90px;align-items:center;gap:9px;padding:12px;border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.025)}.prompt-rule input[type=number]{min-height:38px;padding:7px 9px}.prompt-coverage{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px}.prompt-coverage article{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.prompt-coverage article>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.prompt-add-rule{display:grid;grid-template-columns:160px 220px 260px minmax(200px,1fr) auto;gap:9px;align-items:end;padding:14px;border:1px solid var(--border);border-radius:14px}.prompt-restriction-list{display:grid;gap:8px;margin:14px 0}.prompt-restriction-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border-left:3px solid var(--primary);border-radius:10px;background:rgba(56,189,248,.07)}.prompt-restriction-list strong,.prompt-restriction-list small{display:block}.prompt-restriction-list small{margin-top:3px;color:var(--muted-2)}.prompt-full{display:grid;gap:7px;margin-top:14px}.prompt-output-options{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.prompt-output-options select{min-width:230px}.prompt-output-options input{width:18px;height:18px;padding:0}.prompt-output{min-height:500px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.48}.prompt-output-actions{display:flex;align-items:center;gap:10px;margin-top:10px}.prompt-output-actions small{color:var(--success);font-weight:900}@media(max-width:1050px){.escala-prompt-body{grid-template-columns:1fr}.escala-prompt-nav{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--border)}.escala-prompt-nav button{min-width:max-content}.prompt-grid,.prompt-coverage{grid-template-columns:repeat(2,1fr)}.prompt-add-rule{grid-template-columns:1fr 1fr}}@media(max-width:650px){.escala-prompt-modal{padding:0}.escala-prompt-dialog{width:100vw;height:100vh;border-radius:0}.escala-prompt-dialog>header{padding:14px}.escala-prompt-content{padding:12px}.prompt-grid,.prompt-coverage,.prompt-add-rule,.prompt-rule-grid{grid-template-columns:1fr}.prompt-rule{grid-template-columns:20px 1fr}.prompt-rule input[type=number]{grid-column:2}.prompt-output{min-height:55vh}.prompt-output-actions{align-items:stretch;flex-direction:column}.prompt-output-actions button{width:100%}}

/* Gerador de prompt: filtro multifuncao e periodo individual */
#promptRole[multiple]{min-height:118px;padding:7px 9px}
.prompt-filter-hint{color:var(--muted-2);font-size:.68rem;font-weight:700;line-height:1.3}
.prompt-employee-list>label{display:grid;grid-template-columns:18px minmax(0,1fr) 68px;align-items:center}
.prompt-employee-list select[data-prompt-period]{min-width:68px;min-height:38px;padding:6px 8px;border-radius:10px;font-weight:900;text-align:center}
@media(max-width:650px){.prompt-employee-list>label{grid-template-columns:18px minmax(0,1fr)}.prompt-employee-list select[data-prompt-period]{grid-column:2;width:100%}}

/* Gerador de prompt: contraste das opções de função */
#promptRole[multiple] option {
  color: var(--text);
  background: #0f172a;
}
#promptRole[multiple] option:checked {
  color: #06111f;
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  font-weight: 900;
}

/* Alteracao obrigatoria de senha no primeiro acesso */
.password-change-layout{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(56,189,248,.22),transparent 34rem),radial-gradient(circle at bottom right,rgba(38,211,162,.16),transparent 28rem),var(--bg)}
.password-change-card{width:min(520px,100%)}
.param-form-actions #paramResetPasswordButton{color:#fecaca;border-color:rgba(248,113,113,.35)}
@media(max-width:560px){.password-change-layout{padding:16px}.param-form-actions #paramResetPasswordButton{width:100%}}

/* Trabalhando ADM: filtros separados sem sobreposicao */
.working-adm-controls{grid-template-columns:minmax(190px,220px) minmax(180px,210px) minmax(220px,260px) minmax(430px,1fr) auto;column-gap:16px;row-gap:12px}
.working-adm-controls>.working-adm-filter,.working-adm-controls>.working-adm-days-filter{min-width:0;width:100%;margin:0}
.working-adm-controls>.working-adm-filter{display:grid;grid-template-rows:auto 46px;gap:7px}
.working-adm-controls>.working-adm-filter input,.working-adm-controls>.working-adm-filter select{width:100%;min-width:0;max-width:100%}
.working-adm-controls>.working-adm-days-filter{align-self:end;min-height:70px}
@media(max-width:1250px){.working-adm-controls{grid-template-columns:repeat(3,minmax(190px,1fr))}.working-adm-controls>.working-adm-days-filter{grid-column:1/-1}}
@media(max-width:760px){.working-adm-controls{grid-template-columns:1fr}.working-adm-controls>.working-adm-days-filter{grid-column:auto}}
/* Escala: FR - Feriado Remunerado, cor exclusiva em magenta */
.escala-cell.paid-holiday,.escala-grid td.escala-weekend-0.paid-holiday,.escala-grid td.escala-weekend-6.paid-holiday{color:#fdf4ff!important;background:rgba(217,70,239,.32)!important;border-color:rgba(232,121,249,.72)!important;box-shadow:inset 0 0 0 1px rgba(240,171,252,.38)!important}
.off-kind.fr,.off-kind.paid-holiday{color:#fdf4ff!important;background:rgba(217,70,239,.32)!important;border:1px solid rgba(232,121,249,.72)!important}
.history-day.paid-holiday{color:#fdf4ff!important;background:rgba(217,70,239,.32)!important;border-color:rgba(232,121,249,.72)!important}
