:root {
  color-scheme: light;

  /* Tokens visuais AppDelta (identidade institucional moderna) */
  --app-navy: #183b56;
  --app-navy-deep: #0f2a43;
  --app-blue: #276678;
  --app-green: #1f7a4d;
  --app-bg: #eef3f7;
  --app-surface: #ffffff;
  --app-text: #172331;
  --app-text-muted: #647383;
  --app-border: #d7e0e8;
  --app-radius-sm: 6px;
  --app-radius-md: 10px;
  --app-shadow-sm: 0 1px 3px rgba(23, 35, 49, 0.08);

  /* Aliases de compatibilidade com os componentes atuais */
  --bg: var(--app-bg);
  --surface: var(--app-surface);
  --surface-2: #f6f9fb;
  --ink: var(--app-text);
  --muted: var(--app-text-muted);
  --line: var(--app-border);
  --line-strong: #bac8d4;
  --brand: var(--app-navy);
  --brand-2: var(--app-blue);
  --accent: #b8562b;
  --ok: var(--app-green);
  --danger: #b83434;
  --info: #1f65a7;
  --warn: #9a6415;
  --shadow: 0 12px 28px rgba(23, 35, 49, 0.08);
  --radius: 8px;
  --focus: 0 0 0 3px rgba(39, 102, 120, 0.24);

  /* ==========================================================================
     PADRÃO ÚNICO DE STATUS (rotas Marcação e Exceções)
     Aguardando/Aguarde → AMARELO · Em andamento/Sua vez → VERDE ·
     Encerrado/Concluído/Cancelado → VERMELHO
     Todas as badges, flags, chips e indicadores de fase reutilizam estes tokens.
     ========================================================================== */
  --status-aguardando-bg: #fef3c7;
  --status-aguardando-borda: #fde68a;
  --status-aguardando-cor: #92400e;
  --status-andamento-bg: #dcfce7;
  --status-andamento-borda: #86efac;
  --status-andamento-cor: #15803d;
  --status-encerrado-bg: #fee2e2;
  --status-encerrado-borda: #fca5a5;
  --status-encerrado-cor: #991b1b;

  /* ==========================================================================
     CORES DOS PLANTÕES (mesma identidade de PLANTAO_CORES / plantao-contexto.js)
     usadas no destaque dos dias do plantão corrente nos DatePickers.
     ========================================================================== */
  --plantao-alfa-bg: #fef9c3;
  --plantao-alfa-borda: #fde047;
  --plantao-alfa-cor: #854d0e;
  --plantao-bravo-bg: #fee2e2;
  --plantao-bravo-borda: #fca5a5;
  --plantao-bravo-cor: #991b1b;
  --plantao-charlie-bg: #eff6ff;
  --plantao-charlie-borda: #bfdbfe;
  --plantao-charlie-cor: #1e40af;
  --plantao-delta-bg: #ecfdf5;
  --plantao-delta-borda: #86efac;
  --plantao-delta-cor: #166534;
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--bg);
}

body {
  margin: 0;
  color: var(--ink);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
}

button,
input,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
a:focus-visible {
  outline: none;
  box-shadow: var(--focus);
}

.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 20;
  transform: translateY(-180%);
  border-radius: 6px;
  background: var(--brand);
  color: #fff;
  padding: 0.65rem 0.85rem;
}

.skip-link:focus {
  transform: translateY(0);
}

.app-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.app-kicker {
  margin: 0 0 0.1rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0;
}

.view-tab,
.btn {
  min-height: 2.35rem;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 0.45rem 0.8rem;
  font-weight: 650;
}

.view-tab.is-active {
  border-color: var(--brand-2);
  background: var(--brand-2);
  color: #fff;
}

.app-main {
  flex: 1;
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 1rem clamp(1rem, 4vw, 2.5rem) 2rem;
}

.module-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
  margin-bottom: 1rem;
}

.module-heading p {
  margin: 0;
  color: var(--muted);
}

.module-heading h2 {
  margin: 0 0 0.1rem;
  font-size: clamp(1.45rem, 3vw, 2rem);
  line-height: 1.15;
}

.view-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 23%);
  gap: 1rem;
  align-items: start;
}

.section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.section-title h3 {
  margin: 0;
  font-size: 1.05rem;
}

.muted {
  color: var(--muted);
}

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

.quarter,
.side-panel,
.table-panel,
.admin-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.quarter {
  overflow: hidden;
}

.quarter-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid var(--line);
  background: var(--surface-2);
}

.quarter-header h4 {
  margin: 0;
  font-size: 0.95rem;
}

.demo-label {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.responsive-table {
  width: 100%;
  overflow-x: auto;
}

table {
  width: 100%;
  border-collapse: collapse;
  min-width: 560px;
}

th,
td {
  border-bottom: 1px solid var(--line);
  padding: 0.62rem 0.7rem;
  text-align: left;
  vertical-align: top;
}

th {
  color: #405365;
  font-size: 0.76rem;
  text-transform: uppercase;
}

tr:last-child td {
  border-bottom: 0;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  min-width: 14rem;
}

.chip,
.badge,
.period-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 700;
}

.chip {
  min-height: 1.55rem;
  padding: 0.18rem 0.5rem;
  background: #e8eef2;
  color: #293b4a;
  font-size: 0.78rem;
}

.period-mark {
  width: 1.45rem;
  height: 1.45rem;
  color: #fff;
  font-size: 0.78rem;
}

.period-1 {
  background: var(--ok);
}

.period-2 {
  background: var(--danger);
}

.period-3 {
  background: var(--info);
}

.side-panel {
  position: sticky;
  top: 1rem;
  padding: 0.9rem;
}

.side-panel h3 {
  margin: 0 0 0.8rem;
  font-size: 1rem;
}

.summary-list {
  display: grid;
  gap: 0.5rem;
  margin: 0 0 0.85rem;
}

.summary-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: 0.45rem;
}

.summary-row dt {
  color: var(--muted);
}

.summary-row dd {
  margin: 0;
  font-weight: 750;
  text-align: right;
}

.booking-list {
  display: grid;
  gap: 0.45rem;
  margin: 0 0 0.8rem;
  padding: 0;
  list-style: none;
}

.booking-item {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 0.55rem;
  background: var(--surface-2);
}

.booking-item strong {
  display: block;
  font-size: 0.86rem;
}

.booking-item span {
  color: var(--muted);
  font-size: 0.78rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: auto;
}

.btn-primary {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.btn-ghost {
  background: transparent;
}

.full-width {
  width: 100%;
}

.period-form {
  display: grid;
  gap: 0.7rem;
  margin-top: 0.8rem;
  border-top: 1px solid var(--line);
  padding-top: 0.8rem;
}

.period-form[hidden] {
  display: none;
}

.mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}

.mode-switch button {
  min-height: 2.2rem;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  font-weight: 650;
}

.mode-switch button.is-active {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}

.field {
  display: grid;
  gap: 0.25rem;
}

.field label {
  color: #405365;
  font-size: 0.82rem;
  font-weight: 700;
}

.field input,
.field select {
  width: 100%;
  min-height: 2.35rem;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  padding: 0.45rem 0.55rem;
  background: #fff;
  color: var(--ink);
}

.impact-box {
  border: 1px dashed var(--line-strong);
  border-radius: 6px;
  padding: 0.65rem;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 0.85rem;
}

.form-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}

.table-panel,
.admin-panel {
  padding: 0.85rem;
}

.badge {
  min-height: 1.55rem;
  padding: 0.18rem 0.55rem;
  font-size: 0.76rem;
  white-space: nowrap;
}

.badge-neutral {
  background: #e9eef4;
  color: #3c4c5c;
}

.badge-ok {
  background: #dcefe5;
  color: #17643e;
}

.badge-warn {
  background: #f8ead2;
  color: #76500f;
}

.badge-info {
  background: #dcecf9;
  color: #174f83;
}

.admin-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}

.metric {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 0.7rem;
  background: var(--surface-2);
}

.metric span {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
}

.metric strong {
  display: block;
  margin-top: 0.15rem;
  font-size: 1.1rem;
}

.access-panel {
  width: min(100%, 420px);
  margin: clamp(2rem, 8vh, 5rem) auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
  padding: clamp(1rem, 4vw, 1.4rem);
}

.access-panel h2,
.account-panel h2,
.table-panel h2 {
  margin: 0 0 0.3rem;
  font-size: 1.35rem;
}

.stack {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
}

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

.account-grid .feedback,
.account-grid button {
  grid-column: 1 / -1;
}

.field input[readonly] {
  background: var(--surface-2);
  color: var(--muted);
}

.feedback:empty {
  display: none;
}

.alert {
  margin: 0.75rem 0;
  border-radius: 6px;
  padding: 0.65rem 0.75rem;
  font-weight: 650;
}

.alert-error {
  border: 1px solid #efb4b4;
  background: #fff1f1;
  color: var(--danger);
}

.alert-success {
  border: 1px solid #acd9c2;
  background: #eef8f2;
  color: var(--ok);
}

.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.sub-section-title {
  margin-top: 1.4rem;
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}

.inline-form {
  margin: 0 0 1rem;
}

@media (max-width: 1060px) {
  .workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .side-panel {
    position: static;
  }

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

@media (max-width: 760px) {
  .module-heading {
    grid-template-columns: 1fr;
    display: grid;
    align-items: start;
  }

  .view-tabs {
    justify-content: flex-start;
  }

  .quarter-grid,
  .admin-grid,
  .account-grid {
    grid-template-columns: 1fr;
  }

  .view-tab {
    flex: 1 1 100%;
  }

  .module-heading h2 {
    font-size: 1.4rem;
  }

  table {
    min-width: 620px;
  }
}

.pending-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
  border: 1px solid #e6c58c;
  border-radius: 6px;
  background: #fff6e6;
  color: #7a5208;
  padding: 0.6rem 0.8rem;
}

.pending-banner-text {
  flex: 1 1 220px;
  font-weight: 650;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 650;
  white-space: nowrap;
  background: #e9eef4;
  color: #3c4c5c;
}

.status-badge.status-ativo {
  background: #dcefe5;
  color: #17643e;
}

.status-badge.status-pendente {
  background: #f8ead2;
  color: #76500f;
}

.status-badge.status-rejeitado {
  background: #fff1f1;
  color: #a33232;
}

/* ============================================================
   Login definitivo ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Prompt 07A.1
   Ativado somente quando body.app-auth-mode esta presente.
   ============================================================ */

body.app-auth-mode {
  background: var(--app-surface);
}

body.app-auth-mode .app-shell {
  min-height: 100vh;
}

body.app-auth-mode .app-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  min-height: 100vh;
}

.login-screen {
  display: grid;
  grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
  min-height: 100vh;
  background: var(--app-surface);
}

/* ---- Lado institucional (identidade) ---- */

.login-showcase {
  position: relative;
  display: flex;
  overflow: hidden;
  background: linear-gradient(160deg, var(--app-navy) 0%, var(--app-navy-deep) 80%);
  color: #fff;
}

.login-showcase-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.login-showcase-bg .shape {
  position: absolute;
  display: block;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 50%;
}

.login-showcase-bg .shape-1 {
  width: 36rem;
  height: 36rem;
  top: -13rem;
  right: -18rem;
}

.login-showcase-bg .shape-2 {
  width: 24rem;
  height: 24rem;
  bottom: -10rem;
  left: -10rem;
  border-color: rgba(255, 255, 255, 0.09);
}

.login-showcase-bg .shape-3 {
  width: 10rem;
  height: 10rem;
  right: 10%;
  bottom: 16%;
  border: 0;
  background: rgba(255, 255, 255, 0.05);
}

.login-showcase-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(100%, 540px);
  margin: 0 auto;
  padding: clamp(2rem, 6vw, 4.5rem) clamp(1.75rem, 5vw, 4rem);
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.brand-lockup .delta-mark {
  flex: none;
  width: 2.1rem;
  height: 2.1rem;
}

.brand-lockup strong {
  display: block;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.01em;
}

.brand-lockup .brand-sub {
  display: block;
  margin-top: 0.2rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.8rem;
}

.login-message-wrap {
  display: flex;
  align-items: center;
  flex: 1;
  padding: 2.5rem 0;
}

.login-message {
  max-width: 25ch;
  margin: 0;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -0.01em;
}

.login-perks {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.login-perks li {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.9rem;
}

.login-perks .perk-icon {
  flex: none;
  width: 1.2rem;
  height: 1.2rem;
  color: #7fd0a3;
}

/* ---- Lado do formulario ---- */

.login-panel {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--app-surface);
}

.login-panel-inner {
  position: relative;
  top: 1.25vh;
  width: min(calc(100% - 3rem), 400px);
  margin: auto;
  padding: 3rem 0 4rem;
}

.brand-lockup--compact {
  justify-content: center;
  margin-bottom: 2.5rem;
}

.brand-lockup--compact .delta-mark {
  width: 1.7rem;
  height: 1.7rem;
  color: var(--app-navy);
}

.brand-lockup--compact strong {
  color: var(--app-text);
  font-size: 1.15rem;
}

.login-title {
  margin: 0 0 0.4rem;
  color: var(--app-text);
  font-size: 1.8rem;
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: -0.02em;
  text-align: center;
}

.login-subtitle {
  margin: 0 0 1.8rem;
  color: var(--app-text-muted);
  font-size: 0.98rem;
  text-align: center;
}

.login-panel-inner .feedback {
  margin: 0 0 0.9rem;
}

.google-btn-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 44px;
  margin: 0.5rem 0 1rem;
}

.login-google-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
  min-height: 3.05rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
  color: var(--app-text);
  font-size: 0.96rem;
  font-weight: 650;
  box-shadow: var(--app-shadow-sm);
  transition: background-color 120ms ease, border-color 120ms ease;
}

.login-google-btn:hover {
  border-color: var(--line-strong);
  background: var(--surface-2);
}

.login-google-btn:focus-visible {
  outline: 2px solid var(--app-blue);
  outline-offset: 2px;
  box-shadow: var(--focus);
}

.login-google-btn .google-g {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
}

.login-google-btn--mock {
  border-color: var(--app-navy);
  background: var(--app-navy);
  color: #fff;
}

.login-google-btn--mock:hover {
  border-color: var(--app-navy-deep);
  background: var(--app-navy-deep);
}

.login-google-btn--mock:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px rgba(24, 59, 86, 0.35);
}

.login-help {
  margin: 1.9rem 0 0;
  color: var(--app-text-muted);
  font-size: 0.88rem;
  line-height: 1.5;
  text-align: center;
}

.mock-callout {
  margin: 0 0 1.05rem;
  border: 1px solid #e7ddc9;
  border-radius: var(--app-radius-sm);
  background: #f8f4ea;
  color: #7d6f54;
  padding: 0.45rem 0.6rem;
  font-size: 0.78rem;
  line-height: 1.4;
}

.mock-callout strong {
  display: inline;
  font-weight: 700;
  color: #6d5f45;
}

.mock-callout span {
  display: block;
  margin-top: 0.1rem;
}

.login-footer {
  position: absolute;
  right: 0;
  bottom: 1.4rem;
  left: 0;
  color: #93a3b3;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

/* ---- Tablet ---- */

@media (min-width: 761px) and (max-width: 1023px) {
  .login-screen {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }

  .login-message {
    font-size: clamp(1.35rem, 2.6vw, 1.8rem);
  }
}

/* ---- Mobile ---- */

@media (max-width: 760px) {
  .login-screen {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
  }

  .login-showcase {
    min-height: auto;
  }

  .login-showcase-inner {
    width: 100%;
    display: block;
    margin: 0;
    padding: 1.15rem 1.25rem;
  }

  .login-showcase-bg .shape {
    display: none;
  }

  .login-showcase-inner .brand-lockup strong {
    font-size: 1.15rem;
  }

  .login-message-wrap,
  .login-perks {
    display: none;
  }

  .login-panel {
    min-height: 0;
  }

  .login-panel-inner {
    width: min(calc(100% - 2rem), 400px);
    padding: 2.4rem 0 3.6rem;
  }

  .brand-lockup--compact {
    margin-bottom: 2.25rem;
  }

  .login-title {
    font-size: 1.6rem;
  }

  .login-footer {
    bottom: 0.9rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .login-google-btn {
    transition: none;
  }
}

/* ============================================================
   Primeiro acesso definitivo ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Prompt 07A.2
   Reutiliza a mesma identidade visual do Login (classes .login-*).
   ============================================================ */

.auth-flow-screen .login-panel {
  flex-direction: column;
  overflow-y: auto;
}

.auth-flow-screen .login-panel-inner {
  position: static;
  top: auto;
  margin: auto;
  padding: 3rem 0 4rem;
}

.auth-flow-screen .brand-lockup--compact {
  margin-bottom: 2rem;
}

.auth-stepper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin: 0 0 1.7rem;
  padding: 0;
  list-style: none;
}

.auth-step {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  color: var(--app-text-muted);
  font-size: 0.78rem;
  font-weight: 600;
}

.auth-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 50%;
  background: #e9eef4;
  color: var(--app-text-muted);
  font-size: 0.74rem;
  font-weight: 700;
}

.auth-step.is-current {
  color: var(--app-navy);
}

.auth-step.is-current .auth-step-num {
  background: var(--app-navy);
  color: #fff;
}

.auth-step.is-done .auth-step-num {
  background: #e3f1e9;
  color: var(--app-green);
}

.auth-form {
  display: grid;
  gap: 1rem;
}

.auth-form .field {
  gap: 0.3rem;
}

.auth-flow-screen .field label {
  color: #405365;
  font-size: 0.84rem;
  font-weight: 700;
}

.auth-flow-screen .field input {
  min-height: 2.9rem;
  border-color: var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
  color: var(--app-text);
}

.auth-flow-screen .field input::placeholder {
  color: #9aa8b5;
}

.auth-flow-screen .field input:focus-visible {
  outline: none;
  border-color: var(--app-blue);
  box-shadow: var(--focus);
}

.field-hint {
  color: var(--app-text-muted);
  font-size: 0.76rem;
  line-height: 1.4;
}

.auth-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
  border: 1px solid transparent;
  border-radius: var(--app-radius-sm);
  padding: 0.55rem 1rem;
  font-weight: 650;
  cursor: pointer;
}

.auth-btn:focus-visible {
  outline: 2px solid var(--app-blue);
  outline-offset: 2px;
  box-shadow: var(--focus);
}

.auth-btn--primary {
  border-color: var(--app-navy);
  background: var(--app-navy);
  color: #fff;
}

.auth-btn--primary:hover {
  border-color: var(--app-navy-deep);
  background: var(--app-navy-deep);
}

.auth-btn--primary:disabled {
  cursor: wait;
  opacity: 0.72;
}

.auth-btn--secondary {
  border-color: var(--app-border);
  background: var(--app-surface);
  color: var(--app-navy);
}

.auth-btn--secondary:hover {
  border-color: var(--line-strong);
  background: var(--surface-2);
}

.auth-btn--full {
  width: 100%;
}

.auth-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}

.auth-info {
  margin: 0 0 1.1rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
  padding: 0.15rem 0.9rem;
}

.auth-info-row {
  display: grid;
  grid-template-columns: minmax(0, 7.5rem) minmax(0, 1fr);
  align-items: baseline;
  gap: 0.6rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--app-border);
}

.auth-info-row:last-child {
  border-bottom: 0;
}

.auth-info-row dt {
  color: var(--app-text-muted);
  font-size: 0.8rem;
  font-weight: 700;
}

.auth-info-row dd {
  margin: 0;
  font-weight: 650;
  text-align: right;
  overflow-wrap: break-word;
}

.auth-note {
  margin: 0 0 0.4rem;
  color: var(--app-text-muted);
  font-size: 0.9rem;
  text-align: center;
}

.auth-alert .login-subtitle {
  margin-bottom: 0.5rem;
}

.auth-readonly {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--surface-2);
  padding: 0.6rem 0.75rem;
}

.auth-readonly span {
  color: var(--app-text-muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.auth-readonly strong {
  font-size: 0.86rem;
  font-weight: 650;
  overflow-wrap: anywhere;
  text-align: right;
}

@media (max-width: 760px) {
  .auth-flow-screen .login-panel {
    display: block;
  }

  .auth-flow-screen .login-panel-inner {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 0;
    margin: 0 auto;
    padding: 2.4rem 0 3.6rem;
  }

  .auth-step > span:last-child {
    display: none;
  }
}

/* ============================================================
   Toolbar de cenario mock (somente modo mock / desenvolvimento)
   ============================================================ */

.mock-toolbar {
  position: fixed;
  left: 0.75rem;
  bottom: 0.75rem;
  z-index: 60;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  max-width: calc(100vw - 1.5rem);
  border: 1px solid #cfdbe4;
  border-radius: var(--app-radius-sm);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--app-shadow-sm);
  padding: 0.4rem 0.55rem;
}

.mock-toolbar-title {
  margin-right: 0.15rem;
  color: var(--app-navy);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.mock-toolbar button {
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: #fff;
  color: var(--app-text);
  padding: 0.25rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 650;
  cursor: pointer;
}

.mock-toolbar button:hover {
  border-color: var(--line-strong);
  background: var(--surface-2);
}

.mock-toolbar [data-mock-reset] {
  border-color: #d9b98a;
  background: #fff7e8;
  color: #7a5208;
}

.mock-toolbar [data-mock-sair] {
  border-color: #efb4b4;
  background: #fff1f1;
  color: #a33232;
}

/* ============================================================
   App Shell definitivo ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Prompt 07A.3
   Topbar + Sidebar + conteÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºdo de rota (somente usuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio ATIVO)
   ============================================================ */

body.app-internal {
  background: var(--app-bg);
}

body.app-internal .app-shell {
  min-height: 100vh;
}

body.app-internal .app-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.app-frame {
  display: flex;
  flex-direction: column;
  height: 100vh;
  max-height: 100vh;
  overflow: hidden;
  background: var(--app-bg);
}

.topbar {
  display: flex;
  align-items: center;
  min-height: 2.9rem;
  padding: 0 0.9rem 0 0;
  background: #1a4a75;
  color: #fff;
}

.topbar-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 228px;
  flex: none;
  box-sizing: border-box;
  padding: 0.35rem 0.9rem;
  border-right: 1px solid rgba(255, 255, 255, 0.15);
}

.topbar-brand .delta-mark {
  flex: none;
  width: 1.15rem;
  height: 1.15rem;
}

.topbar-brand-text {
  display: flex;
  flex-direction: column;
  gap: 0.22rem;
  min-width: 0;
  line-height: 1;
}

.tb-name {
  font-size: 0.98rem;
  font-weight: 750;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.tb-unit {
  font-size: 0.78rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.1;
}

.tb-unit--locked {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  opacity: 0.92;
  cursor: default;
  user-select: none;
}

.tb-unit-lock {
  font-size: 0.7rem;
  opacity: 0.8;
  display: inline-block;
  line-height: 1;
}

.tb-sub {
  margin-left: 0.3rem;
  padding-left: 0.55rem;
  border-left: 1px solid rgba(255, 255, 255, 0.28);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.72rem;
}

.tb-context-wrapper {
  position: relative;
  display: inline-flex;
}

.tb-unit--dropdown {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-family: inherit;
  color: rgba(255, 255, 255, 0.85);
  text-align: left;
  border-radius: 3px;
}

.tb-unit--dropdown:hover,
.tb-unit--dropdown:focus-visible {
  color: #fff;
  outline: none;
}

.tb-unit-arrow {
  font-size: 0.62rem;
  opacity: 0.85;
  transition: transform 0.15s ease;
  line-height: 1;
}

.tb-unit--dropdown[aria-expanded="true"] .tb-unit-arrow {
  transform: rotate(180deg);
}

.tb-context-menu {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  z-index: 1000;
  min-width: 220px;
  max-width: 320px;
  background: var(--surface, #fff);
  color: var(--text, #1e293b);
  border: 1px solid var(--line, #e2e8f0);
  border-radius: var(--radius, 6px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  padding: 0.35rem 0;
  margin: 0;
  list-style: none;
}

.tb-context-menu-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.45rem 0.75rem;
  border: none;
  background: transparent;
  color: var(--text, #1e293b);
  font-size: 0.82rem;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.15s ease;
  box-sizing: border-box;
}

.tb-context-menu-item:hover,
.tb-context-menu-item:focus-visible {
  background-color: var(--surface-2, #f1f5f9);
  outline: none;
}

.tb-context-menu-item.is-selected {
  font-weight: 700;
  color: var(--primary, #1a4a75);
  background-color: rgba(26, 74, 117, 0.08);
}

.tb-context-menu-item .tb-ctx-sigla {
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.tb-context-menu-item .tb-ctx-nome {
  font-size: 0.75rem;
  color: var(--muted, #64748b);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tb-context-divider {
  height: 1px;
  background-color: var(--line, #e2e8f0);
  margin: 0.25rem 0;
}

.topbar-menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--app-radius-sm);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.topbar-menu-btn svg {
  width: 1.05rem;
  height: 1.05rem;
}

.topbar-user {
  position: relative;
  margin-left: auto;
}

.topbar-user-btn {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  border: 0;
  border-radius: var(--app-radius-sm);
  background: transparent;
  color: #fff;
  padding: 0.25rem 0.5rem;
  cursor: pointer;
}

.topbar-user-btn:hover,
.topbar-user-btn[aria-expanded="true"] {
  background: rgba(255, 255, 255, 0.1);
}

.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #1f66b4;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 750;
}

.user-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.2;
}

.user-meta strong {
  font-size: 0.82rem;
  font-weight: 650;
}

.user-meta small {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.7rem;
}

.user-chev {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.7rem;
}

.user-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 70;
  width: 12rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
  box-shadow: var(--app-shadow-sm);
  padding: 0.3rem;
}

.user-menu[hidden] {
  display: none;
}

.user-menu-item {
  display: block;
  width: 100%;
  border: 0;
  border-radius: var(--app-radius-sm);
  background: transparent;
  color: var(--app-text);
  padding: 0.5rem 0.6rem;
  font-size: 0.86rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.user-menu-item:hover {
  background: var(--surface-2);
}

.app-body {
  display: flex;
  flex: 1;
  min-height: 0;
}

.app-sidebar {
  display: flex;
  flex: none;
  flex-direction: column;
  width: 228px;
  background: #1a4a75;
  color: rgba(255, 255, 255, 0.9);
  overflow: hidden;
}

.sidebar-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.95rem 1rem 0.7rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 1rem;
  font-weight: 800;
}

.sidebar-head .delta-mark {
  flex: none;
  width: 1.3rem;
  height: 1.3rem;
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 0.4rem 0.5rem 0.6rem;
}

.sidebar-module {
  min-height: 0;
  overflow-y: auto;
}

.sidebar-global {
  flex: none;
  margin-top: 0.25rem;
  padding-top: 0.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.sidebar-group {
  margin-top: 0.2rem;
}

.sidebar-group-label {
  display: block;
  padding: 0.45rem 0.55rem 0.2rem;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.sidebar-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  padding: 0.42rem 0.55rem;
  font-size: 0.84rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.sidebar-item .nav-ico {
  flex: none;
  width: 1rem;
  height: 1rem;
}

.sidebar-item:hover {
  background: rgba(255, 255, 255, 0.09);
  color: #fff;
}

.sidebar-item.is-active {
  background: #1f66b4;
  color: #fff;
}

/* Submenu da Sidebar (GestÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o das MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes) */
.sidebar-item-grupo {
  display: flex;
  flex-direction: column;
  margin-top: 0.15rem;
}

.sidebar-subgroup {
  margin-top: 0.35rem;
}

.sidebar-subgroup-label {
  display: block;
  padding: 0.35rem 0.55rem 0.15rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.sidebar-item--pai {
  opacity: 0.92;
  font-weight: 700;
  cursor: default;
}

.sidebar-item-grupo.is-active-parent > .sidebar-item--pai {
  color: #ffffff;
}

.sidebar-subitens {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin-left: 0.65rem;
  padding-left: 0.45rem;
  border-left: 1px solid rgba(255, 255, 255, 0.14);
  margin-top: 0.15rem;
  margin-bottom: 0.25rem;
}

.sidebar-subitem {
  padding: 0.36rem 0.55rem;
  font-size: 0.8rem;
  border-radius: 5px;
  color: rgba(255, 255, 255, 0.78);
}

.sidebar-subitem .nav-ico {
  width: 0.9rem;
  height: 0.9rem;
}

.sidebar-subitem:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.sidebar-subitem.is-active {
  background: #1f66b4;
  color: #ffffff;
  font-weight: 700;
}

.sidebar-footer {
  flex: none;
  margin-top: auto;
  padding: 0.45rem 0.5rem 0.65rem;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.app-sidebar.is-collapsed .sidebar-footer {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.sidebar-item--sair {
  color: rgba(255, 255, 255, 0.75);
}

.sidebar-item--sair:hover {
  background: rgba(239, 68, 68, 0.2);
  color: #fca5a5;
}

.sidebar-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  width: 1.7rem;
  height: 1.7rem;
  margin: 0.45rem 0.55rem 0.15rem auto;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 5px;
  background: transparent;
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
}

.sidebar-toggle:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.sidebar-toggle-ico {
  width: 0.95rem;
  height: 0.95rem;
  transition: transform 150ms ease;
}

.app-sidebar.is-collapsed {
  width: 60px;
}

.app-sidebar.is-collapsed .sidebar-toggle {
  margin-right: auto;
  margin-left: auto;
}

.app-sidebar.is-collapsed .sidebar-toggle-ico {
  transform: rotate(180deg);
}

.app-sidebar.is-collapsed .sidebar-nav {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.app-sidebar.is-collapsed .sidebar-item {
  justify-content: center;
  padding-left: 0.3rem;
  padding-right: 0.3rem;
}

.app-sidebar.is-collapsed .sidebar-group-label,
.app-sidebar.is-collapsed .sidebar-item > span {
  display: none;
}

@media (max-width: 900px) {
  .sidebar-toggle {
    display: none;
  }

  .app-sidebar.is-collapsed {
    width: min(78vw, 280px);
  }

  .app-sidebar.is-collapsed .sidebar-nav {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .app-sidebar.is-collapsed .sidebar-item {
    justify-content: flex-start;
    padding-left: 0.55rem;
    padding-right: 0.55rem;
  }

  .app-sidebar.is-collapsed .sidebar-group-label,
  .app-sidebar.is-collapsed .sidebar-item > span {
    display: block;
  }
}

.route-area {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: var(--app-bg);
}

.route-banner {
  padding: 1rem 1.25rem 0;
}

.route-banner .pending-banner {
  margin-bottom: 0;
}

.route-content {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1.25rem 2rem;
}

.route-placeholder h1 {
  margin: 0 0 0.4rem;
  color: var(--app-text);
  font-size: 1.5rem;
  font-weight: 650;
}

.route-placeholder p {
  margin: 0;
  color: var(--app-text-muted);
}

.drawer-backdrop {
  display: none;
}

@media (max-width: 1024px) {
  .app-sidebar {
    width: 214px;
  }

  .route-banner,
  .route-content {
    padding-right: 1rem;
    padding-left: 1rem;
  }
}

@media (max-width: 900px) {
  .topbar-menu-btn {
    display: inline-flex;
  }

  .app-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 80;
    width: min(78vw, 280px);
    transform: translateX(-105%);
    transition: transform 180ms ease;
  }

  .app-frame.drawer-open .app-sidebar {
    transform: translateX(0);
    box-shadow: 4px 0 18px rgba(15, 42, 67, 0.25);
  }

  .drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 70;
    background: rgba(15, 42, 67, 0.45);
  }

  .app-frame.drawer-open .drawer-backdrop {
    display: block;
  }
}

@media (max-width: 560px) {
  .topbar {
    min-height: 2.7rem;
    padding: 0.4rem 0.6rem;
    gap: 0.5rem;
  }

  .tb-sub {
    display: none;
  }

  .user-meta {
    display: none;
  }

  .route-banner,
  .route-content {
    padding-right: 0.75rem;
    padding-left: 0.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-sidebar {
    transition: none;
  }
}

.topbar-modules {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: 0;
  padding-left: 1.1rem;
  min-width: 0;
}

.topbar-module {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: rgba(255, 255, 255, 0.85);
  padding: 0.32rem 0.1rem;
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
}

.topbar-module.is-active {
  color: #fff;
  font-weight: 700;
}

.topbar-module.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: #7fc2f0;
}

@media (max-width: 900px) {
  .topbar {
    padding-left: 0.5rem;
  }

  .topbar-brand {
    width: auto;
    border-right: none;
    padding: 0.35rem 0.5rem;
  }

  .topbar-modules {
    margin-left: 0.3rem;
    padding-left: 0.5rem;
    gap: 0.25rem;
  }

  .topbar-module {
    font-size: 0.8rem;
    padding: 0.3rem 0.05rem;
  }
}

/* ============================================================
   Rota MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Prompt 07B.1 (estrutura visual)
   ============================================================ */

.ferias-marcacao {
  max-width: 1180px;
  margin: 0 auto;
}

.ferias-page-header h1 {
  margin: 0 0 0.3rem;
  color: var(--app-text);
  font-size: 1.5rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.ferias-page-header p {
  margin: 0;
  color: var(--app-text-muted);
  font-size: 0.9rem;
}

.ferias-topo {
  display: grid;
  grid-template-columns: minmax(130px, 0.9fr) minmax(160px, 1.1fr) minmax(0, 3fr);
  gap: 0.6rem;
  margin: 1rem 0 1.1rem;
  align-items: stretch;
}

.ferias-topo-info,
.ferias-topo-rodada {
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
  box-shadow: var(--app-shadow-sm);
}

.ferias-topo-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  min-height: 58px;
  padding: 0.45rem 0.6rem;
}

.ferias-topo-label {
  color: var(--app-navy);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.ferias-topo-valor {
  color: var(--app-blue);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
}

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

.ferias-topo-rodada {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  padding: 0.4rem 0.55rem;
}

.ferias-topo-rodada--r1 {
  background: #f5fff7;
  border-color: #bfe7cd;
}

.ferias-topo-rodada--r2 {
  background: #fff7f7;
  border-color: #ffc7c7;
}

.ferias-topo-rodada--r3 {
  background: #f7faff;
  border-color: #c5d9ff;
}

.ferias-rodada-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 900;
}

.ferias-rodada-dot--r1 {
  background: #118238;
}

.ferias-rodada-dot--r2 {
  background: #e11717;
}

.ferias-rodada-dot--r3 {
  background: #1f6eea;
}

.ferias-topo-rodada-texto {
  min-width: 0;
}

.ferias-topo-rodada-texto strong {
  display: block;
  overflow: hidden;
  color: var(--app-text);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  line-height: 1.15;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.ferias-topo-rodada-texto span {
  display: block;
  margin-top: 0.15rem;
  color: var(--app-text-muted);
  font-size: 0.74rem;
  font-weight: 700;
}

@media (max-width: 900px) {
  .ferias-topo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ferias-topo-rodadas {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .ferias-topo {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-topo-rodadas {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-topo-valor {
    font-size: 1.35rem;
  }
}

.ferias-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 400px;
  gap: 1rem;
  align-items: stretch;
}

.ferias-plantoes {
  min-width: 0;
  padding: 1rem 1rem 1.25rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-md);
  background: var(--app-surface);
  box-shadow: var(--app-shadow-sm);
}

.ferias-plantoes-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.ferias-plantoes-head h2 {
  margin: 0;
  color: var(--app-text);
  font-size: 1.05rem;
  font-weight: 700;
}

.ferias-periodos-nav {
  display: flex;
  flex-wrap: nowrap;
  margin: 0 0 0.6rem;
  border: 1px solid #d7e1ec;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(23, 35, 49, 0.06);
  overflow: hidden;
}

.ferias-periodos-nav-linha {
  display: contents;
}

/* Em telas menores, trimestres quebram em 2 linhas */
@media (max-width: 1240px) {
  .ferias-periodos-nav {
    flex-direction: column;
  }
  .ferias-periodos-nav-linha {
    display: flex;
    width: 100%;
  }
  .ferias-periodos-nav-linha--1 {
    border-bottom: 1px solid #eef1f5;
  }
}

.ferias-periodos-nav--flutuante {
  position: fixed;
  display: none;
  z-index: 70;
  margin: 0;
  box-shadow: 0 10px 24px rgba(23, 35, 49, 0.16);
}

.ferias-periodos-nav--flutuante.is-visible {
  display: flex;
}

.ferias-layout,
.ferias-calendar-panel,
.ferias-marcacao {
  overflow: visible;
}

.ferias-periodo-btn {
  flex: 1 1 0;
  min-width: 0;
  height: 36px;
  border: 0;
  border-right: 1px solid #eef1f5;
  background: transparent;
  color: #5e6f82;
  padding: 0 0.5rem;
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  text-align: center;
}

.ferias-periodo-btn:last-child,
.ferias-periodos-nav-linha .ferias-periodo-btn:last-child {
  border-right: 0;
}

.ferias-periodo-btn:hover {
  background: #f4f8fc;
  color: #0d2670;
}

.ferias-periodo-btn.is-active {
  background: #0f67d8;
  color: #fff;
  font-weight: 800;
}

[data-ancora-trimestre] {
  scroll-margin-top: 54px;
}

.ferias-tabela-anual {
  margin-top: 0.65rem;
}

.ferias-plantoes-table--anual thead th {
  z-index: auto;
}

.ferias-tabela-anual tbody + tbody {
  border-top: 2px solid var(--app-bg);
}

.ferias-plantoes-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.76rem;
}

.ferias-plantoes-table th {
  height: 24px;
  padding: 0.18rem 0.3rem;
  border-bottom: 1px solid var(--app-border);
  border-right: 1px solid #e9edf3;
  background: #fbfcfe;
  color: #0a1a44;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.ferias-plantoes-table th:last-child {
  border-right: 0;
}

.ferias-plantoes-table td {
  padding: 0.18rem 0.35rem;
  border-bottom: 1px solid #e5eaf2;
  border-right: 1px solid #e5eaf2;
  color: var(--app-text);
  vertical-align: middle;
}

.ferias-plantoes-table td:last-child {
  border-right: 0;
}

.ferias-plantoes-table tbody tr:last-child td {
  border-bottom: 0;
}

.ferias-plantoes-table tbody tr:nth-child(even) td:not(.ferias-plantoes-mes) {
  background: #f8fafc;
}

.ferias-plantoes-table tbody tr.ferias-mes-inicio td {
  border-top: 2px solid #b6c2d2;
}

.ferias-plantoes-table tbody tr:first-child td {
  border-top: 0;
}

.ferias-plantoes-table .is-center {
  text-align: center;
}

.ferias-plantoes-mes {
  background: #fff;
  color: var(--app-navy);
  font-size: 0.95rem;
  font-weight: 900;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  padding: 0.4rem 0.2rem;
}

.ferias-plantoes-mes--ext {
  background: #f7faff;
  color: #1f6eea;
}

.ferias-plantoes-mes-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  line-height: 1.15;
}

.ferias-plantoes-mes-nome {
  font-size: 0.95rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1.1;
}

.ferias-plantoes-mes-ano {
  font-size: 0.72rem;
  font-weight: 700;
  opacity: 0.85;
  letter-spacing: 0.03em;
  line-height: 1;
}

.ferias-plantoes-data {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ferias-servidores-cell {
  min-width: 0;
  color: var(--app-text-muted);
}

.ferias-servidores-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
  min-height: 1.4rem;
}

.ferias-servidores-vazio {
  color: var(--app-text-muted);
}

.ferias-servidor-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  max-width: 100%;
  border: 1px solid var(--app-border);
  border-radius: 4px;
  background: #fff;
  color: var(--app-text);
  padding: 0.04rem 0.45rem 0.04rem 0.1rem;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
}

.ferias-servidor-rodada {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 0.95rem;
  height: 0.95rem;
  border-radius: 50%;
  color: #fff;
  font-size: 0.58rem;
  font-weight: 900;
}

.ferias-servidor-chip--r1 {
  border-color: #9dd8ae;
  background: #f7fff8;
}

.ferias-servidor-chip--r2 {
  border-color: #ffb7b7;
  background: #fff9f9;
}

.ferias-servidor-chip--r3 {
  border-color: #a9c7ff;
  background: #f8fbff;
}

.ferias-servidor-chip--r1 .ferias-servidor-rodada {
  background: #118238;
}

.ferias-servidor-chip--r2 .ferias-servidor-rodada {
  background: #e11717;
}

.ferias-servidor-chip--r3 .ferias-servidor-rodada {
  background: #1f6eea;
}

/* Destaque FORTE para o usuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio logado / simulado (cor cheia, foco total) */
.ferias-servidor-chip.is-proprio {
  font-weight: 800;
  color: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  border-width: 1px;
}

.ferias-servidor-chip--r1.is-proprio {
  background: #118238;
  border-color: #0b5e27;
  color: #ffffff;
}

.ferias-servidor-chip--r1.is-proprio .ferias-servidor-rodada {
  background: #ffffff;
  color: #118238;
}

.ferias-servidor-chip--r2.is-proprio {
  background: #d32f2f;
  border-color: #9a0007;
  color: #ffffff;
}

.ferias-servidor-chip--r2.is-proprio .ferias-servidor-rodada {
  background: #ffffff;
  color: #d32f2f;
}

.ferias-servidor-chip--r3.is-proprio {
  background: #1976d2;
  border-color: #004ba0;
  color: #ffffff;
}

.ferias-servidor-chip--r3.is-proprio .ferias-servidor-rodada {
  background: #ffffff;
  color: #1976d2;
}

/* Visual leve / translÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºcido para os demais servidores */
.ferias-servidor-chip.is-outro {
  font-weight: 600;
  opacity: 0.85;
}

.ferias-servidor-chip--r1.is-outro {
  background: rgba(17, 130, 56, 0.08);
  border-color: rgba(17, 130, 56, 0.28);
  color: #1b5e20;
}

.ferias-servidor-chip--r1.is-outro .ferias-servidor-rodada {
  background: rgba(17, 130, 56, 0.22);
  color: #118238;
}

.ferias-servidor-chip--r2.is-outro {
  background: rgba(225, 23, 23, 0.08);
  border-color: rgba(225, 23, 23, 0.28);
  color: #b71c1c;
}

.ferias-servidor-chip--r2.is-outro .ferias-servidor-rodada {
  background: rgba(225, 23, 23, 0.22);
  color: #d32f2f;
}

.ferias-servidor-chip--r3.is-outro {
  background: rgba(31, 110, 234, 0.08);
  border-color: rgba(31, 110, 234, 0.28);
  color: #0d47a1;
}

.ferias-servidor-chip--r3.is-outro .ferias-servidor-rodada {
  background: rgba(31, 110, 234, 0.22);
  color: #1976d2;
}

/* Chip com estado EXCEDENTE na tabela anual de FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias > MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-servidor-chip.ferias-servidor-chip--excedente,
.ferias-servidor-chip--r1.ferias-servidor-chip--excedente,
.ferias-servidor-chip--r2.ferias-servidor-chip--excedente,
.ferias-servidor-chip--r3.ferias-servidor-chip--excedente {
  background: #fef3c7 !important;
  color: #92400e !important;
  border-color: #f59e0b !important;
  box-shadow: 0 1px 3px rgba(245, 158, 11, 0.18) !important;
  font-weight: 700;
  opacity: 1 !important;
}

.ferias-servidor-chip.ferias-servidor-chip--excedente .ferias-servidor-rodada,
.ferias-servidor-chip--r1.ferias-servidor-chip--excedente .ferias-servidor-rodada,
.ferias-servidor-chip--r2.ferias-servidor-chip--excedente .ferias-servidor-rodada,
.ferias-servidor-chip--r3.ferias-servidor-chip--excedente .ferias-servidor-rodada {
  background: #d97706 !important;
  color: #ffffff !important;
}

.ferias-servidor-chip.ferias-servidor-chip--excedente.is-proprio,
.ferias-servidor-chip--r1.ferias-servidor-chip--excedente.is-proprio,
.ferias-servidor-chip--r2.ferias-servidor-chip--excedente.is-proprio,
.ferias-servidor-chip--r3.ferias-servidor-chip--excedente.is-proprio {
  background: #f59e0b !important;
  color: #ffffff !important;
  border-color: #b45309 !important;
  box-shadow: 0 1px 4px rgba(180, 83, 9, 0.3) !important;
}

.ferias-servidor-chip.ferias-servidor-chip--excedente.is-proprio .ferias-servidor-rodada,
.ferias-servidor-chip--r1.ferias-servidor-chip--excedente.is-proprio .ferias-servidor-rodada,
.ferias-servidor-chip--r2.ferias-servidor-chip--excedente.is-proprio .ferias-servidor-rodada,
.ferias-servidor-chip--r3.ferias-servidor-chip--excedente.is-proprio .ferias-servidor-rodada {
  background: #ffffff !important;
  color: #b45309 !important;
}

/* Banner de alerta de Excedente para o prÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³prio servidor logado/simulado */
.ferias-excedente-banner {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: #dc2626;
  border: 1px solid #b91c1c;
  border-radius: 8px;
  padding: 0.9rem 1.25rem;
  margin-bottom: 1rem;
  width: 100%;
  color: #ffffff;
  box-shadow: 0 4px 6px -1px rgba(220, 38, 38, 0.25), 0 2px 4px -2px rgba(220, 38, 38, 0.15);
  animation: feriasBannerFadeIn 0.2s ease-out;
}

.ferias-excedente-banner-icone {
  flex-shrink: 0;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ferias-excedente-banner-corpo {
  flex: 1;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #ffffff;
}

.ferias-excedente-banner-titulo {
  display: block;
  font-weight: 600;
  color: #ffffff;
}

@keyframes feriasBannerFadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ferias-status--excedente {
  display: inline-flex;
  align-items: center;
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.15rem 0.45rem;
  width: fit-content;
}

.ferias-marcacao-motivo--excedente {
  display: block;
  font-size: 0.72rem;
  color: #d97706;
  font-weight: 600;
  margin-top: 2px;
}

.ferias-servidor-nome {
  overflow-wrap: anywhere;
}

.ferias-plantoes-table th:nth-child(1),
.ferias-plantoes-table td:nth-child(1) {
  width: 54px;
}

.ferias-plantoes-table th:nth-child(2),
.ferias-plantoes-table td:nth-child(2) {
  width: 110px;
  white-space: nowrap;
}

.ferias-plantoes-table th:nth-child(4),
.ferias-plantoes-table td:nth-child(4) {
  width: 58px;
  white-space: nowrap;
}

/* Espaço compartilhado: SERVIDORES expande ocupando todo o espaço restante */
.ferias-plantoes-table th:nth-child(3),
.ferias-plantoes-table td:nth-child(3),
.ferias-plantoes-table--tem-pendencias th:nth-child(3),
.ferias-plantoes-table--tem-pendencias td:nth-child(3) {
  width: auto;
}

/* 1. Mínimo (1 pendência): exatamente a largura do título "PENDÊNCIAS" + padding */
.ferias-plantoes-table--pendencias-1 th:nth-child(5),
.ferias-plantoes-table--pendencias-1 td:nth-child(5) {
  width: 90px;
}

/* 2. Intermediário (2 pendências): largura para 2 chips lado a lado */
.ferias-plantoes-table--pendencias-2 th:nth-child(5),
.ferias-plantoes-table--pendencias-2 td:nth-child(5) {
  width: 170px;
}

/* 3. Máximo (3 ou mais pendências): teto de 3 chips (~250px); acima disso ocorre quebra de linha */
.ferias-plantoes-table--pendencias-3 th:nth-child(5),
.ferias-plantoes-table--pendencias-3 td:nth-child(5) {
  width: 250px;
}

/* Fallback seguro caso tenha pendência sem classe específica */
.ferias-plantoes-table--tem-pendencias:not(.ferias-plantoes-table--pendencias-1):not(.ferias-plantoes-table--pendencias-2):not(.ferias-plantoes-table--pendencias-3) th:nth-child(5),
.ferias-plantoes-table--tem-pendencias:not(.ferias-plantoes-table--pendencias-1):not(.ferias-plantoes-table--pendencias-2):not(.ferias-plantoes-table--pendencias-3) td:nth-child(5) {
  width: 90px;
}

.ferias-pendencias-cell {
  min-width: 0;
  color: var(--app-text-muted);
}

.ferias-pendencias-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
  min-height: 1.4rem;
}

.ferias-pendencias-vazio {
  color: var(--app-text-muted);
}

.ferias-plantoes-total {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ferias-sem-plantao {
  margin: 0.9rem 0 0;
  padding: 1.1rem 1rem;
  border: 1px dashed var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--surface-2);
  color: var(--app-text-muted);
  font-size: 0.9rem;
  text-align: center;
}

.ferias-my-vacations {
  position: sticky;
  top: 0;
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-md);
  background: var(--app-surface);
  box-shadow: var(--app-shadow-sm);
}

.ferias-my-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  border-bottom: 1px solid var(--app-border);
  padding-bottom: 0.6rem;
}

.ferias-my-head h2 {
  margin: 0;
  color: var(--app-text);
  font-size: 1.02rem;
  font-weight: 700;
}

.ferias-my-plantao {
  color: var(--app-text-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ferias-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
  margin-top: 0.85rem;
}

.ferias-stat {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.6rem 0.4rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--surface-2);
  text-align: center;
}

.ferias-stat-value {
  color: var(--app-navy);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.1;
}

.ferias-stat-value span {
  font-size: 0.7rem;
  font-weight: 650;
}

.ferias-stat-label {
  color: var(--app-text-muted);
  font-size: 0.68rem;
  font-weight: 650;
}

.ferias-periods {
  margin-top: 1rem;
  border-top: 1px solid var(--app-border);
  padding-top: 0.7rem;
}

.ferias-periods h3 {
  margin: 0 0 0.4rem;
  color: var(--app-text);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.ferias-periods-empty {
  margin: 0;
  color: var(--app-text-muted);
  font-size: 0.84rem;
}

.ferias-period {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.1rem 0.75rem;
  padding: 0.55rem 0;
  border-top: 1px solid var(--app-border);
  font-size: 0.8rem;
}

.ferias-period-name {
  font-size: 0.8rem;
}

.ferias-period-tag {
  justify-self: end;
  align-self: start;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  background: #e9eef4;
  color: #3c4c5c;
  font-size: 0.68rem;
  font-weight: 700;
}

.ferias-period-dates {
  color: var(--app-text-muted);
  font-size: 0.78rem;
}

.ferias-period-days {
  justify-self: end;
  color: var(--app-text-muted);
  font-size: 0.78rem;
}

@media (max-width: 1100px) {
  .ferias-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-minhas,
  .ferias-lateral,
  .ferias-my-vacations,
  .ferias-nova-marcacao-sticky,
  .ferias-secao--nova-marcacao {
    position: static;
  }
}

@media (max-width: 560px) {
  .ferias-tabela-anual {
    overflow-x: auto;
  }
}

/* ============================================================
   MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â fechamento visual (07B.5) ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â banner e cards
   ============================================================ */

.ferias-calendar-panel {
  min-width: 0;
}

/* Total: neutro atÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â© 3; limite 4; acima de 4 */

.ferias-plantoes-total.is-limit {
  background: #fff4d8;
  color: #9a6415;
}

.ferias-plantoes-total.is-over {
  background: #ffe1e1;
  color: #c22727;
  font-weight: 800;
}

.ferias-total-alert {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.9rem;
  height: 0.9rem;
  margin-left: 0.15rem;
  border-radius: 50%;
  background: #d00000;
  color: #fff;
  font-size: 0.6rem;
  line-height: 1;
}

.ferias-plantoes-total.ferias-plantoes-total--autorizado {
  background: #e6f4ea;
  color: #137333;
  font-weight: 700;
}

.ferias-total-autorizado {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.95rem;
  height: 0.95rem;
  margin-left: 0.25rem;
  border-radius: 50%;
  background: #188038;
  color: #fff;
  font-size: 0.65rem;
  font-weight: bold;
  line-height: 1;
  cursor: help;
  vertical-align: middle;
}

/* ============================================================
   Painel lateral "Minhas fÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias" (07B.5)
   ============================================================ */

.ferias-minhas,
.ferias-lateral {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  align-self: stretch;
}

.ferias-nova-marcacao-sticky {
  position: static;
}

.ferias-lateral-restante {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ferias-resumo {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.ferias-resumo-card {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.45rem 0.3rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--surface-2);
  text-align: center;
}

.ferias-resumo-card strong {
  color: var(--app-navy);
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.1;
}

.ferias-resumo-card span {
  color: var(--app-text-muted);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ferias-resumo-card--saldo {
  border-color: #bbdefb;
  background: #eef6ff;
}

.ferias-resumo-card--saldo strong {
  color: var(--app-blue);
}

.ferias-resumo-periodos {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.35rem;
  padding: 0.3rem 0.5rem;
  border-radius: var(--app-radius-sm);
  background: var(--surface-2);
  color: var(--app-text-muted);
  font-size: 0.72rem;
}

.ferias-resumo-periodos strong {
  color: #0d2670;
  font-weight: 800;
}

.ferias-secao {
  background: #ffffff;
  border: 1px solid #d9e4ef;
  border-radius: 7px;
  box-shadow: 0 1px 3px rgba(23, 35, 49, 0.06);
  padding: 12px 14px;
}

.ferias-secao > h3 {
  margin: 0 0 8px;
  color: #0d2670;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ferias-secao--nova-marcacao {
  position: static;
}

/* Nova marcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o com duas abas */

.ferias-nova-marcacao {
  display: grid;
  gap: 0.6rem;
}

.ferias-marcacao-ja-realizada {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: var(--app-radius-sm, 8px);
  color: #166534;
}

.ferias-marcacao-ja-realizada-icone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #dcfce7;
  color: #15803d;
  flex-shrink: 0;
  margin-top: 2px;
}

.ferias-marcacao-ja-realizada-conteudo {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ferias-marcacao-ja-realizada-titulo {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 700;
  color: #166534;
}

.ferias-marcacao-ja-realizada-sub {
  margin: 0;
  font-size: 0.78rem;
  color: #15803d;
  line-height: 1.35;
}

.ferias-form-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ferias-form-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.3rem;
  padding: 0.2rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--surface-2);
}

.ferias-form-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 0.5rem;
  border-radius: 6px;
  border: 1px solid transparent;
  color: var(--app-text-muted, #475569);
  font-size: 0.78rem;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-form-radio:checked + .ferias-form-tab,
.ferias-form-tab.is-active {
  background: #e8f0fe;
  color: #1a56db;
  border: 1px solid #c7d9f9;
  font-weight: 700;
}

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

.ferias-form-campos[hidden] {
  display: none;
}

.ferias-form-campos--entre {
  display: block;
  width: 100%;
}

.ferias-form-campos .field {
  display: grid;
  gap: 0.15rem;
  position: relative;
}

.ferias-form-campos .field--full {
  width: 100%;
}

.ferias-marcacao-feedback {
  margin: 0.15rem 0 0.25rem;
  font-size: 0.78rem;
  color: #dc2626;
  font-weight: 600;
}

.ferias-form-campos label {
  color: var(--app-text-muted);
  font-size: 0.7rem;
  font-weight: 700;
}

.ferias-form-campos input {
  width: 100%;
  min-height: 42px;
  border: 1px solid #d7e1ec;
  border-radius: 6px;
  background: #ffffff;
  color: var(--app-text);
  padding: 0.4rem 0.5rem;
  font-size: 0.85rem;
}

.ferias-form-acoes {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: 0.4rem;
}

.ferias-form-acoes .btn {
  width: 100%;
}

.ferias-form-acoes .btn-ghost {
  background: #ffffff;
  border: 1px solid #d7e1ec;
  color: #0a1a44;
}

.ferias-form-acoes .btn-primary {
  background: #0f67d8;
  border: 1px solid #0f67d8;
  color: #ffffff;
}

/* Listas de marcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */

.ferias-lista {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ferias-marcacao-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 0.05rem;
  border-top: 1px solid #eef1f5;
}

.ferias-marcacao-item:first-child {
  border-top: 0;
  padding-top: 0.05rem;
}

.ferias-marcacao-item > .ferias-rodada-circulo {
  align-self: center;
  margin-top: 0;
  flex: 0 0 auto;
}

.ferias-marcacao-conteudo {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  flex: 1;
}

.ferias-marcacao-linha-principal {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem 0.45rem;
}

.ferias-marcacao-intervalo,
.ferias-marcacao-datas {
  display: inline-flex;
  align-items: center;
  color: var(--app-text, #0f172a);
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
}

.ferias-marcacao-dias {
  display: inline-block;
  color: var(--app-text-muted, #64748b);
  font-weight: 600;
  font-size: 0.78rem;
  margin-left: 0.45rem;
}

.ferias-marcacao-linha-status {
  display: flex;
  align-items: center;
  min-width: 0;
}

.ferias-marcacao-linha-status .ferias-status {
  height: auto;
  min-height: 20px;
  min-width: 0;
  max-width: 100%;
  padding: 0.15rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  border-radius: 4px;
  line-height: 1.3;
  white-space: normal;
  overflow-wrap: anywhere;
  display: inline-flex;
  align-items: center;
}

.ferias-marcacao-acoes {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  flex: 0 0 auto;
}

.ferias-icone-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid #d7e1ec;
  border-radius: 6px;
  background: #ffffff;
  color: #5e6f82;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-icone-btn:hover {
  background: #f4f8fc;
  color: #0d2670;
}

.ferias-icone-btn svg {
  width: 16px;
  height: 16px;
}

.ferias-icone-btn--danger {
  color: #e33434;
}

.ferias-icone-btn--danger:hover {
  background: #fdecec;
  color: #e33434;
}

.ferias-icone-btn:disabled,
.ferias-btn-reordenar:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
}

/* Setas de reordenaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â controle compacto e discreto:
   ficam imediatamente apÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³s o rÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³tulo da preferÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia, sem fundo forte, sem borda
   visÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­vel e sem competir com Editar/Excluir. */
.ferias-btn-reordenar-compacto {
  width: 20px;
  height: 20px;
  min-width: 20px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #a4b0bd;
}

.ferias-btn-reordenar-compacto svg {
  width: 12px;
  height: 12px;
}

.ferias-btn-reordenar-compacto:hover {
  background: rgba(13, 38, 112, 0.07);
  color: #0d2670;
}

.ferias-btn-reordenar-compacto:disabled {
  opacity: 0.22;
  background: transparent;
  color: #c3ccd6;
}

/* ReforÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§o de especificidade: existem blocos posteriores de `.ferias-icone-btn`
   (30x30 com borda) que, com a mesma especificidade, venceriam a cascata. */
.ferias-marcacao-item .ferias-btn-reordenar-compacto {
  width: 20px;
  height: 20px;
  min-width: 20px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #a4b0bd;
}

.ferias-marcacao-item .ferias-btn-reordenar-compacto svg {
  width: 12px;
  height: 12px;
}

.ferias-marcacao-item .ferias-btn-reordenar-compacto:hover {
  background: rgba(13, 38, 112, 0.07);
  color: #0d2670;
}

.ferias-marcacao-item .ferias-btn-reordenar-compacto:disabled {
  opacity: 0.22;
  background: transparent;
  border: 0;
  color: #c3ccd6;
}

/* Bloco da preferÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia (rÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³tulo ordinal + setas) e linha de datas */
.ferias-marcacao-bloco-preferencia {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}

/* Ocultar legenda textual 'Xª preferência' a partir do encerramento da Fase 1 */
.ferias-marcacao-item--pos-fase1 .ferias-marcacao-pref-rotulo,
.ferias-marcacao-item--fase2 .ferias-marcacao-pref-rotulo,
.ferias-bloco-servidor[data-fase="FASE_2_ORDEM_CHEGADA"] .ferias-marcacao-pref-rotulo,
.ferias-bloco-servidor[data-fase="AJUSTE"] .ferias-marcacao-pref-rotulo,
.ferias-bloco-servidor[data-fase="INTERVALO_FASES"] .ferias-marcacao-pref-rotulo,
.ferias-bloco-servidor[data-fase="GAP_ADMINISTRATIVO"] .ferias-marcacao-pref-rotulo,
.ferias-bloco-servidor[data-fase="ENCERRADO"] .ferias-marcacao-pref-rotulo,
.ferias-minhas[data-fase="FASE_2_ORDEM_CHEGADA"] .ferias-marcacao-pref-rotulo,
.ferias-minhas[data-fase="AJUSTE"] .ferias-marcacao-pref-rotulo,
.ferias-minhas[data-fase="INTERVALO_FASES"] .ferias-marcacao-pref-rotulo,
.ferias-minhas[data-fase="GAP_ADMINISTRATIVO"] .ferias-marcacao-pref-rotulo,
.ferias-minhas[data-fase="ENCERRADO"] .ferias-marcacao-pref-rotulo {
  display: none;
}

.ferias-marcacao-acoes-mover {
  display: inline-flex;
  align-items: center;
  gap: 0.05rem;
  flex: 0 0 auto;
}

.ferias-marcacao-linha-principal {
  align-items: center;
  gap: 0.4rem;
}

.ferias-marcacao-linha-datas {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.4rem;
  min-width: 0;
}

/* CÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­rculos e badges de PreferÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia 1, 2 e 3 */
.ferias-pref-circulo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 50%;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
}

.ferias-pref-circulo--sm {
  width: 1rem;
  height: 1rem;
  font-size: 0.6rem;
}

.ferias-pref-circulo--p1 {
  background: #118238;
}

.ferias-pref-circulo--p2 {
  background: #e11717;
}

.ferias-pref-circulo--p3 {
  background: #1f6eea;
}

.ferias-nova-marcacao-header-pref {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.5rem;
  background: #f1f5f9;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
}

.ferias-nova-marcacao-pref-titulo {
  font-size: 0.78rem;
  font-weight: 700;
  color: #1e293b;
}

.ferias-marcacao-pref-rotulo {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #475569;
  margin-right: 0;
}

.ferias-resumo-status-badge--completo {
  margin-top: 0.45rem;
  padding: 0.4rem 0.6rem;
  border-radius: 6px;
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
  font-size: 0.78rem;
  font-weight: 700;
  text-align: center;
}

/* Banners de Fase Operacional no painel lateral */
.ferias-fase-banner {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
  font-size: 0.8rem;
  line-height: 1.4;
  margin-bottom: 0.5rem;
}

.ferias-fase-banner-icone {
  flex-shrink: 0;
  margin-top: 2px;
}

.ferias-fase-banner-icone svg {
  width: 18px;
  height: 18px;
}

.ferias-fase-banner-texto {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.ferias-fase-banner-texto strong {
  font-size: 0.82rem;
}

.ferias-fase-banner--gap {
  background: var(--status-aguardando-bg);
  border: 1px solid var(--status-aguardando-borda);
  color: var(--status-aguardando-cor);
}

.ferias-fase-banner--ajuste {
  background: var(--status-andamento-bg);
  border: 1px solid var(--status-andamento-borda);
  color: var(--status-andamento-cor);
}

.ferias-fase-banner--aguardando {
  background: var(--status-aguardando-bg);
  border: 1px solid var(--status-aguardando-borda);
  color: var(--status-aguardando-cor);
}

.ferias-fase-banner--encerrado {
  background: var(--status-encerrado-bg);
  border: 1px solid var(--status-encerrado-borda);
  color: var(--status-encerrado-cor);
}

/* Modais e Popovers compactos de FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias (EdiÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o e RemoÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o) */
.ferias-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1rem;
  animation: feriasFadeIn 0.15s ease-out;
}

@keyframes feriasFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.ferias-modal {
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.18), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  width: 100%;
  max-width: 440px;
  display: flex;
  flex-direction: column;
  overflow: visible;
  border: 1px solid #cbd5e1;
  position: relative;
}

.ferias-modal--compacto {
  max-width: 420px;
}

.ferias-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1.25rem 0.75rem;
  border-bottom: 1px solid #f1f5f9;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  background: #ffffff;
  cursor: grab;
  user-select: none;
  touch-action: none;
}

.ferias-modal-header:active {
  cursor: grabbing;
}

.ferias-modal-titulo {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}

.ferias-modal-fechar {
  background: transparent;
  border: none;
  color: #64748b;
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s;
}

.ferias-modal-fechar:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.ferias-modal-corpo {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  position: relative;
  overflow: visible;
}

.ferias-modal-picker-field {
  position: relative;
  z-index: 100;
}

.ferias-modal-info-original,
.ferias-modal-preview-bloco {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #f8fafc;
  padding: 0.6rem 0.85rem;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}

.ferias-modal-rotulo {
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
}

.ferias-modal-valor-original {
  font-size: 0.85rem;
  font-weight: 600;
  color: #334155;
}

.ferias-modal-valor-novo {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f67d8;
}

.ferias-modal-intervalo-destaque {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
  background: #f8fafc;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  text-align: center;
  margin: 0;
}

.ferias-modal-aviso {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
  text-align: center;
}

.ferias-modal-feedback {
  font-size: 0.8rem;
  font-weight: 600;
  color: #dc2626;
  margin: 0;
}

.ferias-modal-acoes {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.6rem;
  padding: 0.85rem 1.25rem;
  background: #f8fafc;
  border-top: 1px solid #f1f5f9;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
  position: relative;
  z-index: 1;
}

.ferias-modal-acoes .btn {
  min-height: 36px;
  padding: 0 1rem;
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: 6px;
}

.ferias-modal-acoes .btn-danger {
  background: #dc2626;
  border: 1px solid #dc2626;
  color: #ffffff;
}

.ferias-modal-acoes .btn-danger:hover {
  background: #b91c1c;
  border-color: #b91c1c;
}

.ferias-modal-acoes .btn-ghost {
  background: #ffffff;
  border: 1px solid #d7e1ec;
  color: #0a1a44;
}

.ferias-modal-acoes .btn-ghost:hover {
  background: #f1f5f9;
}

.ferias-modal-acoes .btn-primary {
  background: #0f67d8;
  border: 1px solid #0f67d8;
  color: #ffffff;
}

.ferias-modal-acoes .btn-primary:hover:not(:disabled) {
  background: #0d59bd;
  border-color: #0d59bd;
}

.ferias-modal-acoes .btn-primary:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.ferias-marcacao-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.4rem;
  margin-top: 0.1rem;
}

.ferias-marcacao-dias {
  color: var(--app-text-muted);
  font-size: 0.78rem;
  white-space: nowrap;
}

.ferias-marcacao-motivo {
  color: #c22727;
  font-size: 0.74rem;
}

.ferias-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  height: 34px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.ferias-status--confirmado {
  background: var(--status-andamento-bg);
  color: var(--status-andamento-cor);
}

.ferias-status--aguardando {
  background: var(--status-aguardando-bg);
  color: var(--status-aguardando-cor);
}

.ferias-status--recusada {
  background: var(--status-encerrado-bg);
  color: var(--status-encerrado-cor);
}

/* Estado de bloqueio (Marcação): mesma família vermelha dos estados encerrados */
.ferias-status--bloqueado {
  background: var(--status-encerrado-bg);
  color: var(--status-encerrado-cor);
}

.ferias-status--ausente {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
}

.ferias-btn-mini {
  border: 1px solid var(--app-border);
  border-radius: 4px;
  background: var(--app-surface);
  color: var(--app-text);
  padding: 0.1rem 0.45rem;
  font-size: 0.7rem;
  cursor: pointer;
}

.ferias-btn-mini:hover {
  background: var(--surface-2);
}

.ferias-btn-mini--danger {
  border-color: #f0c9c9;
  color: #c22727;
}


/* FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias fechadas */

.ferias-lista--fechadas {
  display: grid;
  gap: 0.3rem;
}

.ferias-fechada {
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.05rem;
  border-top: 1px solid #eef1f5;
}

.ferias-fechada:first-child {
  border-top: 0;
}

.ferias-fechada-ordem {
  color: var(--app-text-muted);
  font-size: 0.8rem;
  font-weight: 800;
  text-align: center;
}

.ferias-fechada-periodo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

.ferias-fechada-datas {
  overflow: hidden;
  color: var(--app-text);
  font-size: 0.78rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ferias-fechada-dias {
  color: var(--app-text-muted);
  font-size: 0.76rem;
  font-weight: 700;
  white-space: nowrap;
}

.ferias-fechadas-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.5rem;
  padding: 0.5rem 0.05rem 0.1rem;
  border-top: 1px solid var(--app-border);
  color: var(--app-text-muted);
  font-size: 0.76rem;
}

.ferias-fechadas-total strong {
  color: var(--app-navy);
  font-size: 0.86rem;
}

@media (max-width: 560px) {
  .ferias-marcacao-item {
    gap: 0.5rem;
  }
}

.ferias-minhas-banner {
  position: relative;
  overflow: hidden;
  border-radius: 7px;
  box-shadow: 0 1px 3px rgba(23, 35, 49, 0.06);
}

.ferias-minhas-banner-img {
  display: block;
  width: 100%;
  height: auto;
}

.ferias-minhas-banner-conteudo {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

.ferias-minhas-banner-titulo {
  position: absolute;
  left: 8.8%;
  top: 19%;
  display: inline-flex;
  align-items: center;
  font-size: clamp(0.92rem, 1.9vw, 1.15rem);
  font-weight: 750;
  line-height: 1.15;
  color: #0d2670;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

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

.ferias-fechadas-vazio {
  display: grid;
  gap: 0.2rem;
  margin-top: 0.25rem;
  padding: 0.7rem 0.75rem;
  border: 1px dashed var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--surface-2);
  color: var(--app-text-muted);
  font-size: 0.76rem;
}

.ferias-cfg-badge-status--inexistente {
  background: var(--surface-2);
  color: var(--app-text-muted);
  border-color: var(--app-border);
}

/* Fase operacional da rodada */
.ferias-cfg-fase-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.55rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  background: var(--surface-2);
  color: var(--app-text-muted);
  border: 1px solid var(--app-border);
}

.ferias-cfg-fase-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.ferias-cfg-fase-chip--aguardando {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #475569;
}

.ferias-cfg-fase-chip--periodo_normal,
.ferias-cfg-fase-chip--marcacao_normal,
.ferias-cfg-fase-chip--em-andamento {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
}

.ferias-cfg-fase-chip--tratamento_overbook,
.ferias-cfg-fase-chip--gap-administrativo,
.ferias-cfg-fase-chip--gap_administrativo {
  background: #fffbeb;
  border-color: #fde68a;
  color: #b45309;
}

.ferias-cfg-fase-chip--periodo_ajuste,
.ferias-cfg-fase-chip--ajuste {
  background: #faf5ff;
  border-color: #e9d5ff;
  color: #7e22ce;
}

.ferias-cfg-fase-chip--encerrada,
.ferias-cfg-fase-chip--encerrado {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #64748b;
}

.ferias-cfg-btn-avancar-fase {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0.6rem;
  border-radius: var(--app-radius-sm);
  cursor: pointer;
  white-space: nowrap;
}

.ferias-cfg-alerta-cronograma {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0.5rem 0.75rem 0;
  padding: 0.45rem 0.7rem;
  border-radius: var(--app-radius-sm);
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  font-size: 0.76rem;
}

.ferias-cfg-alerta-ico {
  display: inline-flex;
  font-weight: 700;
}

.ferias-cfg-fase-encerrada {
  font-size: 0.75rem;
  color: var(--app-text-muted);
  font-style: italic;
}

.ferias-fechadas-vazio strong {
  color: var(--app-text);
  font-size: 0.82rem;
}

@media (max-width: 560px) {
  .ferias-form-campos {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-form-acoes {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Ajustes finais do painel (07B.6) */

.ferias-secao > h3 {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ferias-secao-titulo-resumo {
  display: block;
}

.ferias-titulo-icone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 8px;
}

.ferias-titulo-icone svg {
  width: 16px;
  height: 16px;
}

.ferias-titulo-icone--azul {
  background: #e3f0ff;
  color: #0f67d8;
}

.ferias-titulo-icone--navy {
  background: #dde4f2;
  color: #0d2670;
}

.ferias-titulo-icone--verde {
  background: #e9f7ef;
  color: #118a4e;
}

.ferias-rodada-circulo--md {
  width: 32px;
  height: 32px;
  font-size: 0.95rem;
}

.ferias-form-acoes .btn {
  min-height: 40px;
  font-size: 14px;
  font-weight: 600;
}

.ferias-btn-mais {
  font-size: 15px;
  font-weight: 800;
}

.ferias-btn-reset {
  font-size: 14px;
  line-height: 1;
}

.ferias-marcacao-info {
  display: grid;
  gap: 0.05rem;
  min-width: 0;
}

.ferias-marcacao-motivo {
  margin-top: 0.1rem;
  color: #e33434;
  font-size: 0.72rem;
}

.ferias-ico {
  display: block;
  width: 18px;
  height: 18px;
}

.ferias-btn-mais,
.ferias-btn-reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.ferias-card--controle {
  gap: 0.25rem;
  padding-top: 0.6rem;
}

.ferias-ctx-select {
  width: 100%;
  min-height: 34px;
  border: 1px solid #d7e1ec;
  border-radius: 6px;
  background: #ffffff;
  color: #0d2670;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 0 0.4rem;
}










/* ============================================================
   ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (rota) ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â visual do mockup definitivo
   ============================================================ */

.ferias-cons {
  display: block;
  width: 100%;
  max-width: 1380px;
  margin: 0 auto;
}

.ferias-cons-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 1.15rem;
  align-items: start;
}

.ferias-cons-coluna-principal {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.ferias-cons-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
  width: 100%;
}

.ferias-cons-card {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: #ffffff;
  box-shadow: var(--app-shadow-sm);
}

.ferias-cons-card > div {
  min-width: 0;
}

.ferias-cons-card-label {
  display: block;
  color: var(--app-text-muted);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ferias-cons-card-valor-wrap {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.15rem;
}

.ferias-cons-card-ico {
  color: #2563eb;
  display: inline-flex;
  align-items: center;
}

.ferias-cons-card-ico svg {
  width: 16px;
  height: 16px;
}

.ferias-cons-card-valor {
  display: block;
  margin-top: 0.1rem;
  color: var(--app-navy);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
}

.ferias-cons-card-valor small {
  color: var(--app-text-muted);
  font-size: 0.85rem;
  font-weight: 700;
}

.ferias-cons-card-icone,
.ferias-cons-icone-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: 8px;
}

.ferias-cons-card--azul .ferias-cons-card-icone,
.ferias-cons-icone-box--azul {
  background: #e3f0ff;
  color: #0f67d8;
}

.ferias-cons-card--verde .ferias-cons-card-icone {
  background: #e9f7ef;
  color: #118a4e;
}

.ferias-cons-card--ambar .ferias-cons-card-icone {
  background: #fff4df;
  color: #e79514;
}

.ferias-cons-ico {
  display: block;
  width: 17px;
  height: 17px;
}

.ferias-cons-resultado,
.ferias-cons-situacao {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-md);
  background: #ffffff;
  box-shadow: var(--app-shadow-sm);
}

.ferias-cons-resultado-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 0.6rem;
}

.ferias-cons-resultado h2,
.ferias-cons-situacao h2 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: var(--app-navy);
  font-size: 1rem;
  font-weight: 750;
}

.ferias-cons-busca {
  width: 210px;
  max-width: 100%;
  min-height: 34px;
  padding: 0.3rem 0.6rem;
  border: 1px solid #d7e1ec;
  border-radius: 6px;
  background: #ffffff;
  color: var(--app-text);
  font-size: 0.8rem;
}

.ferias-cons-busca::placeholder {
  color: var(--app-text-muted);
}

.ferias-cons-tabela {
  overflow-x: auto;
}

.ferias-cons-tabela table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}

.ferias-cons-tabela th,
.ferias-cons-tabela td {
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid #e7edf3;
  text-align: left;
  vertical-align: middle;
}

.ferias-cons-tabela thead th {
  background: #fbfcfe;
  color: var(--app-navy);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ferias-cons-tabela th.ferias-cons-th-ordem,
.ferias-cons-tabela td.ferias-cons-ordem,
.ferias-cons-th-ordem,
.ferias-cons-ordem {
  width: 44px;
  text-align: center;
  color: var(--app-text-muted);
  font-weight: 700;
}

.ferias-cons-tabela th.ferias-cons-th-situacao,
.ferias-cons-tabela td.ferias-cons-situacao,
.ferias-cons-tabela td.ferias-cons-situacao-celula,
.ferias-cons-th-situacao,
.ferias-cons-situacao-celula {
  text-align: center;
  width: 140px;
}

.ferias-cons-servidor {
  font-weight: 700;
}

.ferias-cons-periodos {
  min-width: 180px;
}

.ferias-cons-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.1rem 0.3rem 0.1rem 0;
  padding: 0.12rem 0.3rem 0.12rem 0.55rem;
  border: 1px solid #dbe3ec;
  border-radius: 999px;
  background: #ffffff;
  color: var(--app-text);
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}

.ferias-cons-chip--excedente {
  background: #fffbeb !important;
  border-color: #f59e0b !important;
  color: #92400e !important;
}

.ferias-cons-chip-tag-exc {
  font-size: 0.62rem;
  font-weight: 700;
  color: #b45309;
  background: #fef3c7;
  border: 1px solid #fde68a;
  border-radius: 4px;
  padding: 0.1rem 0.35rem;
  margin-left: 0.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ferias-cons-rodada {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  color: #ffffff;
  font-size: 0.62rem;
  font-weight: 800;
}

.ferias-cons-rodada--r1 {
  background: #118238;
}

.ferias-cons-rodada--r2 {
  background: #e11717;
}

.ferias-cons-rodada--r3 {
  background: #1f6eea;
}

.ferias-cons-situacao {
  display: grid;
  gap: 0.7rem;
}

.ferias-cons-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 30px;
  padding: 0.1rem 0.7rem;
  border-radius: 8px;
  font-size: 0.76rem;
  font-weight: 700;
  white-space: nowrap;
}

.ferias-cons-badge .ferias-cons-ico {
  width: 15px;
  height: 15px;
}

.ferias-cons-badge--ok {
  background: #e9f7ef;
  color: #087a4c;
}

.ferias-cons-badge--aguardando {
  background: #fff4df;
  color: #b57600;
}

.ferias-cons-badge--nao-iniciado {
  background: #f1f5f9;
  color: #64748b;
}

.ferias-cons-badge--andamento {
  background: #fff4df;
  color: #b57600;
}

.ferias-cons-badge--parcial {
  background: #e8f0fe;
  color: #1a73e8;
}

.ferias-cons-badge--excedente {
  background: #fffbeb;
  color: #b45309;
  border: 1px solid #fde68a;
}

.ferias-cons-tabela tbody tr:nth-child(even) {
  background: #f8fafc;
}

.ferias-cons-tabela tbody tr:hover {
  background: #f1f5f9;
}

.ferias-cons-tabela th.ferias-cons-th-dias,
.ferias-cons-tabela td.ferias-cons-dias,
.ferias-cons-th-dias,
.ferias-cons-dias {
  text-align: center;
  width: 120px;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  white-space: nowrap;
}

.ferias-cons-dias.ferias-cons-total--zero {
  color: #94a3b8;
  font-weight: 600;
}

.ferias-cons-dias.ferias-cons-total--ok {
  color: #087a4c;
}

.ferias-cons-dias.ferias-cons-total--atencao {
  color: #b57600;
}

.ferias-cons-dias.ferias-cons-total--acima,
.ferias-cons-dias.ferias-cons-total--irregular {
  color: #dc2626;
  font-weight: 800;
}

.ferias-cons-texto {
  margin: 0;
  color: var(--app-text-muted);
  font-size: 0.82rem;
}

.ferias-cons-periodo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #cfdff2;
  border-radius: var(--app-radius-sm);
  background: #eef5fc;
}

.ferias-cons-periodo > div {
  min-width: 0;
}

.ferias-cons-periodo-label {
  display: block;
  color: var(--app-text-muted);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ferias-cons-periodo strong {
  display: block;
  margin-top: 0.1rem;
  color: var(--app-text);
  font-size: 0.84rem;
  font-weight: 700;
}

.ferias-cons-fechar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
  min-height: 40px;
  border: 1px solid #0f67d8;
  border-radius: 6px;
  background: #0f67d8;
  color: #ffffff;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-cons-aviso {
  margin: 0;
  color: var(--app-text-muted);
  font-size: 0.76rem;
}

@media (max-width: 1300px) {
  .ferias-cons-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .ferias-cons-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-cons-situacao {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .ferias-cons-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .ferias-cons-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-cons-resultado-topo {
    align-items: flex-start;
  }
}

/* ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â hierarquia vertical e chips percentuais dos cards */

.ferias-cons-card--coluna {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.15rem;
}

.ferias-cons-card--coluna .ferias-cons-card-valor {
  font-size: 1.5rem;
}

.ferias-cons-card-valor-linha {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 0.1rem;
}

.ferias-cons-card-valor-linha .ferias-cons-card-valor {
  display: inline-block;
  margin-top: 0;
}

.ferias-cons-percent {
  display: inline-flex;
  align-items: center;
  padding: 0.06rem 0.5rem;
  border: 1px solid;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
}

.ferias-cons-percent--verde {
  border-color: #bfe7cd;
  background: #e9f7ef;
  color: #087a4c;
}

.ferias-cons-percent--ambar {
  border-color: #f4d39a;
  background: #fff4df;
  color: #b57600;
}

/* ============================================================
   GestÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o das MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes (abas) + ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o
   ============================================================ */

.ferias-gestao {
  display: grid;
  gap: 0.8rem;
}

.ferias-gestao-tabs {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 0.4rem;
  padding: 0.25rem;
  border: 1px solid #d7e1ec;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(23, 35, 49, 0.06);
}

/* ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o isolada ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â  esquerda; Overbook e ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o agrupadas ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â  direita. */
.ferias-gestao-tabs-primaria,
.ferias-gestao-tabs-secundarias {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.ferias-gestao-tabs-secundarias {
  margin-left: auto;
}

.ferias-gestao-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 34px;
  padding: 0 0.9rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #0d2670;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-gestao-tab .ferias-gestao-ico {
  width: 16px;
  height: 16px;
}

.ferias-gestao-tab.is-active {
  background: #0f67d8;
  color: #ffffff;
}

.ferias-gestao-painel {
  min-width: 0;
}

.ferias-gestao-ico {
  display: block;
  width: 17px;
  height: 17px;
}

/* ==========================================================================
   CONFIGURAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O DE FÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â°RIAS (MOCKUP V3) ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â MESTRE-DETALHE
   ========================================================================== */

.ferias-cfg-conteudo {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
}

/* Breadcrumb e cabeÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§alho da pÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡gina */
.ferias-cfg-cabecalho {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-cfg-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.35rem;
  line-height: 1.2;
}

.ferias-cfg-breadcrumb-muted {
  color: #1e293b;
  font-weight: 700;
}

.ferias-cfg-breadcrumb-sep {
  color: #64748b;
  font-weight: 600;
}

.ferias-cfg-breadcrumb-atual {
  color: #0f172a;
  font-weight: 800;
}

.ferias-cfg-subtitulo-pagina {
  margin: 0;
  color: #64748b;
  font-size: 0.875rem;
}

/* Grade principal em duas colunas: Coluna Esquerda (~55%) e Coluna Direita (~45%) */
.ferias-cfg-grade {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.95fr);
  gap: 1.25rem;
  align-items: start;
  width: 100%;
}

/* PainÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©is / Cards */
.ferias-cfg-painel {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.25rem 1.4rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  min-width: 0;
  box-sizing: border-box;
}

.ferias-cfg-painel--formulario {
  width: 100%;
}

.ferias-cfg-painel--lista {
  width: 100%;
  padding: 1.15rem 1.15rem;
}

.ferias-cfg-painel-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.ferias-cfg-titulo-bloco {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ferias-cfg-titulo-linha {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.ferias-cfg-painel-titulo {
  margin: 0;
  color: #0f172a;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.ferias-cfg-painel-desc {
  margin: 0;
  color: #64748b;
  font-size: 0.825rem;
}

/* BotÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o + Novo exercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio */
.ferias-cfg-btn-novo {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
  border: 1px solid #3b82f6;
  border-radius: 8px;
  background: #ffffff;
  color: #2563eb;
  padding: 0.5rem 0.95rem;
  font-size: 0.825rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-cfg-btn-novo:hover {
  background: #eff6ff;
  border-color: #2563eb;
}

/* BotÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o Como funciona? */
.ferias-cfg-btn-ajuda {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  padding: 0.45rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-cfg-btn-ajuda:hover {
  background: #dbeafe;
}

/* Status Pill */
.ferias-cfg-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  width: fit-content;
  max-width: max-content;
  align-self: flex-start;
  justify-self: start;
}

.ferias-cfg-status-neutro {
  display: inline-flex;
  align-items: center;
  color: #64748b;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.35rem 0.5rem;
  width: fit-content;
}

.ferias-cfg-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.ferias-cfg-status-pill--ativo {
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}
.ferias-cfg-status-pill--ativo .ferias-cfg-status-dot {
  background: #10b981;
}

.ferias-cfg-status-pill--inativo {
  background: #fffbeb;
  color: #92400e;
  border: 1px solid #fde68a;
}
.ferias-cfg-status-pill--inativo .ferias-cfg-status-dot {
  background: #f59e0b;
}

.ferias-cfg-status-pill--encerrado {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
}
.ferias-cfg-status-pill--encerrado .ferias-cfg-status-dot {
  background: #64748b;
}

.ferias-cfg-status-pill--novo {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}
.ferias-cfg-status-pill--novo .ferias-cfg-status-dot {
  background: #3b82f6;
}

/* Grid de campos superiores do formulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio (ExercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio, PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o, Status) */
.ferias-cfg-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin-bottom: 1.25rem;
  max-width: 600px;
}

.ferias-cfg-form-campo {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-cfg-form-campo .ferias-cfg-status-pill,
.ferias-cfg-tabela td .ferias-cfg-status-pill {
  width: fit-content;
  max-width: max-content;
}

.ferias-cfg-campo-rotulo {
  color: #475569;
  font-size: 0.75rem;
  font-weight: 700;
}

.ferias-cfg-input-estatico {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 0.4rem 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 0.875rem;
  font-weight: 700;
}

.ferias-cfg-select {
  min-height: 38px;
  padding: 0.4rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #0f172a;
  font-size: 0.85rem;
  font-weight: 600;
}

.ferias-cfg-select:focus {
  outline: 2px solid #3b82f6;
  outline-offset: 1px;
  border-color: #3b82f6;
}

/* Multiselect Dropdown para PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes (ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o - Modo CriaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o) */
.ferias-cfg-multiselect {
  position: relative;
  width: 100%;
}

.ferias-cfg-multiselect-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.4rem 0.65rem;
  min-height: 38px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  color: #0f172a;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ferias-cfg-multiselect-trigger:hover {
  border-color: #94a3b8;
}

.ferias-cfg-multiselect-trigger:focus,
.ferias-cfg-multiselect.is-open .ferias-cfg-multiselect-trigger {
  outline: 2px solid #3b82f6;
  outline-offset: 1px;
  border-color: #3b82f6;
}

.ferias-cfg-multiselect-texto {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #0f172a;
}

.ferias-cfg-multiselect-texto.is-placeholder {
  color: #64748b;
  font-weight: 500;
}

.ferias-cfg-multiselect-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  flex-shrink: 0;
  transition: transform 0.15s ease;
}

.ferias-cfg-multiselect.is-open .ferias-cfg-multiselect-chevron {
  transform: rotate(180deg);
}

.ferias-cfg-multiselect-popover {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 100%;
  min-width: 180px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  padding: 0.35rem 0;
  z-index: 60;
}

.ferias-cfg-multiselect-popover .ferias-cfg-plantoes-chks {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  min-height: auto;
}

.ferias-cfg-multiselect-popover .ferias-cfg-chk-opcao {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.85rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #1e293b;
  cursor: pointer;
  user-select: none;
  background: transparent;
  border: none;
  transition: background-color 0.12s ease;
}

.ferias-cfg-multiselect-popover .ferias-cfg-chk-opcao:hover {
  background: #f8fafc;
  color: #2563eb;
}

.ferias-cfg-multiselect-popover .ferias-cfg-chk-opcao input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #2563eb;
  cursor: pointer;
  margin: 0;
  flex-shrink: 0;
}

/* Rodadas Administrativas - modelo pai/filho dinÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢mico */
.ferias-cfg-rodadas-vazio {
  padding: 1.25rem 1rem;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  text-align: center;
  margin-bottom: 0.85rem;
}

.ferias-cfg-vazio-texto {
  margin: 0;
  color: #64748b;
  font-size: 0.85rem;
  font-weight: 600;
}

.ferias-cfg-adicionar-bloco {
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
}

.ferias-cfg-btn-add-rodada {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.85rem;
  border: 1px dashed #3b82f6;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 0.825rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-cfg-btn-add-rodada:hover {
  background: #dbeafe;
  border-color: #2563eb;
}

.ferias-bloqueio-aviso {
  padding: 0.9rem 1rem;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff7ed;
  color: #9a3412;
  margin-top: 0.5rem;
}

.ferias-bloqueio-texto {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.4;
}

.ferias-cfg-rodadas-lista,
.ferias-rodadas-grid {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: 0.75rem;
}

.ferias-cfg-rodada {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 0.9rem 1rem;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.75rem;
  min-width: 0;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.ferias-cfg-rodada--oculta {
  background: #f8fafc;
  border-color: #e2e8f0;
}

.ferias-cfg-rodada--oculta .ferias-cfg-rodada-titulo {
  color: #64748b;
}

.ferias-cfg-rodada-cabeca {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}

.ferias-cfg-rodada-ident {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.ferias-cfg-rodada-acoes {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-shrink: 0;
}

/* Switch compacto de visibilidade da rodada */
.ferias-cfg-switch-wrap {
  display: inline-flex;
  align-items: center;
}

.ferias-cfg-switch-label {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  user-select: none;
}

.ferias-cfg-switch-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.ferias-cfg-switch-slider {
  position: relative;
  display: inline-block;
  width: 32px;
  height: 18px;
  background-color: #cbd5e1;
  border-radius: 9999px;
  transition: background-color 0.2s ease;
}

.ferias-cfg-switch-slider::before {
  content: "";
  position: absolute;
  height: 12px;
  width: 12px;
  left: 3px;
  bottom: 3px;
  background-color: #ffffff;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease;
}

.ferias-cfg-switch-input:checked + .ferias-cfg-switch-slider {
  background-color: #2563eb;
}

.ferias-cfg-switch-input:checked + .ferias-cfg-switch-slider::before {
  transform: translateX(14px);
}

.ferias-cfg-switch-input:focus-visible + .ferias-cfg-switch-slider {
  box-shadow: 0 0 0 2px #93c5fd;
}

.ferias-cfg-switch-input:disabled + .ferias-cfg-switch-slider {
  opacity: 0.5;
  cursor: not-allowed;
}

.ferias-cfg-switch-texto {
  min-width: 40px;
  text-align: right;
  font-size: 0.75rem;
  font-weight: 700;
  color: #475569;
}

.ferias-cfg-switch-input:checked ~ .ferias-cfg-switch-texto,
.ferias-cfg-switch-label:has(.ferias-cfg-switch-input:checked) .ferias-cfg-switch-texto {
  color: #1e293b;
}

.ferias-cfg-btn-remover-rodada {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid #fca5a5;
  border-radius: 6px;
  background: #ffffff;
  color: #ef4444;
  cursor: pointer;
  padding: 0;
  transition: all 0.15s ease;
}

.ferias-cfg-btn-remover-rodada:hover:not(:disabled) {
  color: #dc2626;
  border-color: #ef4444;
  background: #fef2f2;
}

.ferias-cfg-btn-remover-rodada--desabilitado,
.ferias-cfg-btn-remover-rodada:disabled {
  border-color: #e2e8f0;
  color: #cbd5e1;
  background: #ffffff;
  cursor: not-allowed;
  pointer-events: auto;
}

.ferias-cfg-btn-remover-rodada .ferias-cfg-ico--lixeira {
  width: 15px;
  height: 15px;
}

.ferias-cfg-tooltip-remover {
  display: none;
  position: absolute;
  bottom: calc(100% + 8px);
  right: 0;
  background: #1e293b;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.35rem 0.65rem;
  border-radius: 6px;
  white-space: nowrap;
  pointer-events: none;
  z-index: 30;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.18);
  line-height: 1.2;
}

.ferias-cfg-tooltip-remover::after {
  content: "";
  position: absolute;
  top: 100%;
  right: 12px;
  border-width: 5px;
  border-style: solid;
  border-color: #1e293b transparent transparent transparent;
}

.ferias-cfg-btn-remover-rodada:hover .ferias-cfg-tooltip-remover,
.ferias-cfg-btn-remover-rodada:focus-visible .ferias-cfg-tooltip-remover {
  display: block;
}

.ferias-cfg-rodada-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 800;
  flex-shrink: 0;
}

.ferias-cfg-rodada-badge--r1 { background: #10b981; }
.ferias-cfg-rodada-badge--r2 { background: #ef4444; }
.ferias-cfg-rodada-badge--r3 { background: #2563eb; }

.ferias-cfg-rodada-titulo {
  color: #0f172a;
  font-size: 0.95rem;
  font-weight: 800;
  white-space: nowrap;
}

.ferias-cfg-rodada-corpo,
.ferias-rodada-periodos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.ferias-cfg-periodo-bloco {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  min-height: 105px;
  box-sizing: border-box;
  min-width: 0;
}

.ferias-cfg-periodo-bloco--normal {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}

.ferias-cfg-periodo-bloco--ajuste {
  background: #f0f7ff;
  border: 1px solid #bfdbfe;
}

.ferias-cfg-periodo-topo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 34px;
}

.ferias-cfg-periodo-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  flex-shrink: 0;
}

.ferias-cfg-periodo-ico--normal {
  background: #dcfce7;
  color: #16a34a;
}

.ferias-cfg-periodo-ico--ajuste {
  background: #dbeafe;
  color: #2563eb;
}

.ferias-cfg-periodo-ico .ferias-cfg-ico--calendario {
  width: 15px;
  height: 15px;
}

.ferias-cfg-periodo-textos {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.1rem;
  flex: 1;
  min-width: 0;
}

.ferias-cfg-periodo-titulo {
  color: #0f172a;
  font-size: 0.825rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.ferias-cfg-periodo-sub {
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ferias-cfg-janela-datas {
  position: relative;
  display: block;
  width: 100%;
  margin-top: auto;
}

.ferias-cfg-janela-datas .date-range-picker,
.ferias-cfg-janela-datas .date-range-picker-gatilho {
  width: 100%;
  height: 36px;
  min-height: 36px;
  box-sizing: border-box;
}

.ferias-cfg-input-data:focus {
  outline: 2px solid #3b82f6;
  outline-offset: 1px;
  border-color: #3b82f6;
}

.ferias-cfg-input-data:disabled {
  background: #f8fafc;
  color: #64748b;
  border-color: #e2e8f0;
  cursor: not-allowed;
}

/* Date Range Picker ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â PadrÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o Airline / Booking */
.date-range-picker {
  position: relative;
  width: 100%;
}

.date-range-picker-gatilho {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 36px;
  padding: 0.35rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  color: #0f172a;
  font-size: 0.8rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.date-range-picker-gatilho:hover:not(:disabled) {
  border-color: #94a3b8;
  background-color: #f8fafc;
}

.date-range-picker-gatilho:focus-visible,
.date-range-picker.is-aberto .date-range-picker-gatilho {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16);
  background-color: #ffffff;
}

.date-range-picker.is-disabled .date-range-picker-gatilho,
.date-range-picker-gatilho:disabled {
  background: #f8fafc;
  color: #94a3b8;
  border-color: #e2e8f0;
  cursor: not-allowed;
  pointer-events: none;
}

.ferias-form-tab.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.date-range-picker-icone {
  display: inline-flex;
  align-items: center;
  color: #64748b;
  flex-shrink: 0;
}

.date-range-picker-icone svg {
  width: 16px;
  height: 16px;
}

.date-range-picker-texto {
  color: #0f172a;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.date-range-picker-texto--placeholder {
  color: #94a3b8;
  font-weight: 500;
}

/* Popover do calendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio mensal */
.date-range-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 100;
  width: 300px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.2), 0 6px 12px rgba(15, 23, 42, 0.1);
  padding: 0.95rem;
  user-select: none;
}

.date-range-popover-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.date-range-popover-mes-ano {
  font-size: 0.875rem;
  font-weight: 800;
  color: #0f172a;
}

.date-range-popover-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #ffffff;
  color: #475569;
  cursor: pointer;
  padding: 0;
  transition: all 0.15s ease;
}

.date-range-popover-nav-btn:hover {
  background: #f1f5f9;
  color: #0f172a;
  border-color: #cbd5e1;
}

.date-range-popover-dias-semana {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 0.35rem;
  text-align: center;
}

.date-range-popover-dia-semana {
  font-size: 0.68rem;
  font-weight: 700;
  color: #94a3b8;
  padding: 3px 0;
  text-transform: uppercase;
}

.date-range-popover-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.date-range-popover-dia {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #1e293b;
  border: 0;
  background: transparent;
  border-radius: 6px;
  cursor: pointer;
  padding: 0;
  position: relative;
  transition: background 0.12s ease, color 0.12s ease;
}

.date-range-popover-dia:hover:not(:disabled) {
  background: #f1f5f9;
}

.date-range-popover-dia:disabled,
.date-range-popover-dia.is-disabled {
  color: #cbd5e1 !important;
  background: transparent !important;
  cursor: not-allowed !important;
  opacity: 0.45;
  pointer-events: none;
}

.date-range-popover-nav-btn:disabled,
.date-range-popover-nav-btn.is-disabled {
  color: #cbd5e1 !important;
  cursor: not-allowed !important;
  opacity: 0.35;
  pointer-events: none;
}

.date-range-popover-dia.is-vazio {
  pointer-events: none;
  visibility: hidden;
}

/* Destaque do intervalo */
.date-range-popover-dia.is-in-range {
  background: #dbeafe;
  color: #1e40af;
  border-radius: 0;
}

.date-range-popover-dia.is-start {
  background: #2563eb !important;
  color: #ffffff !important;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
  font-weight: 800;
}

.date-range-popover-dia.is-end {
  background: #2563eb !important;
  color: #ffffff !important;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
  font-weight: 800;
}

.date-range-popover-dia.is-start.is-end {
  border-radius: 6px !important;
}

.date-range-popover-dia.is-in-range-preview {
  background: #e0e7ff;
  color: #1e3a8a;
}

/* Destaque visual discreto das datas de plantão do servidor (sem bloquear a seleção) */
.date-range-popover-dia.is-plantao {
  position: relative;
  font-weight: 700;
  color: #1e40af;
  background-color: #eff6ff;
}

.date-range-popover-dia.is-plantao::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #2563eb;
  pointer-events: none;
}

.date-range-popover-dia.is-plantao:hover:not(:disabled) {
  background-color: #dbeafe;
}

.date-range-popover-dia.is-plantao.is-start,
.date-range-popover-dia.is-plantao.is-end {
  background-color: #2563eb !important;
  color: #ffffff !important;
}

.date-range-popover-dia.is-plantao.is-start::after,
.date-range-popover-dia.is-plantao.is-end::after {
  background-color: #ffffff;
}

.date-range-popover-dia.is-plantao.is-in-range {
  background-color: #dbeafe !important;
  color: #1e40af !important;
}

.date-range-popover-dia.is-plantao:disabled,
.date-range-popover-dia.is-plantao.is-disabled {
  background: transparent !important;
  color: #cbd5e1 !important;
}

.date-range-popover-dia.is-plantao:disabled::after,
.date-range-popover-dia.is-plantao.is-disabled::after {
  display: none;
}

/* ==========================================================================
   DESTAQUE DO PLANTÃO CORRENTE NOS DATEPICKERS (rotas Marcação e Exceções)
   Cores por plantão conforme PLANTAO_CORES (plantao-contexto.js):
   ALFA amarelo · BRAVO vermelho · CHARLIE azul · DELTA verde.
   Apenas visual: não bloqueia dias nem altera a data selecionada.
   ========================================================================== */
.ferias-plantao--alfa .date-range-popover-dia.is-plantao {
  background-color: var(--plantao-alfa-bg);
  color: var(--plantao-alfa-cor);
}
.ferias-plantao--alfa .date-range-popover-dia.is-plantao::after {
  background-color: var(--plantao-alfa-cor);
}
.ferias-plantao--alfa .date-range-popover-dia.is-plantao:hover:not(:disabled) {
  background-color: var(--plantao-alfa-borda);
}

.ferias-plantao--bravo .date-range-popover-dia.is-plantao {
  background-color: var(--plantao-bravo-bg);
  color: var(--plantao-bravo-cor);
}
.ferias-plantao--bravo .date-range-popover-dia.is-plantao::after {
  background-color: var(--plantao-bravo-cor);
}
.ferias-plantao--bravo .date-range-popover-dia.is-plantao:hover:not(:disabled) {
  background-color: var(--plantao-bravo-borda);
}

.ferias-plantao--charlie .date-range-popover-dia.is-plantao {
  background-color: var(--plantao-charlie-bg);
  color: var(--plantao-charlie-cor);
}
.ferias-plantao--charlie .date-range-popover-dia.is-plantao::after {
  background-color: var(--plantao-charlie-cor);
}
.ferias-plantao--charlie .date-range-popover-dia.is-plantao:hover:not(:disabled) {
  background-color: var(--plantao-charlie-borda);
}

.ferias-plantao--delta .date-range-popover-dia.is-plantao {
  background-color: var(--plantao-delta-bg);
  color: var(--plantao-delta-cor);
}
.ferias-plantao--delta .date-range-popover-dia.is-plantao::after {
  background-color: var(--plantao-delta-cor);
}
.ferias-plantao--delta .date-range-popover-dia.is-plantao:hover:not(:disabled) {
  background-color: var(--plantao-delta-borda);
}

/* TematizaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o refinada para o PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo normal (verde suave) */
.ferias-cfg-periodo-bloco--normal .date-range-picker-gatilho:focus-visible,
.ferias-cfg-periodo-bloco--normal .date-range-picker.is-aberto .date-range-picker-gatilho {
  border-color: #16a34a;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.18);
}

.ferias-cfg-periodo-bloco--normal .date-range-popover-dia.is-start,
.ferias-cfg-periodo-bloco--normal .date-range-popover-dia.is-end {
  background: #16a34a !important;
  color: #ffffff !important;
}

.ferias-cfg-periodo-bloco--normal .date-range-popover-dia.is-in-range {
  background: #dcfce7;
  color: #14532d;
}

.ferias-cfg-periodo-bloco--normal .date-range-popover-dia.is-in-range-preview {
  background: #dcfce7;
  color: #14532d;
}

@media (max-width: 480px) {
  .date-range-popover {
    width: 100%;
    min-width: 270px;
    left: 0;
    right: 0;
  }
}

.ferias-cfg-feedback-rodada {
  margin: 0.4rem 0 0;
  color: #dc2626;
  font-size: 0.75rem;
  font-weight: 600;
}

/* Regras da MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-cfg-regras {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.ferias-cfg-secao-titulo {
  margin: 0 0 0.6rem;
  color: #0f172a;
  font-size: 0.925rem;
  font-weight: 800;
}

.ferias-cfg-regras-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.ferias-cfg-regra-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0.75rem 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

.ferias-cfg-regra-nome {
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
}

.ferias-cfg-regra-sub {
  color: #64748b;
  font-size: 0.7rem;
  margin-bottom: 0.35rem;
}

.ferias-cfg-regra-valor {
  color: #0f2a43;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.1;
}

/* RodapÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â© do formulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio e botÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.ferias-cfg-form-rodape {
  display: flex;
  justify-content: flex-end;
  padding-top: 0.75rem;
  border-top: 1px solid #f1f5f9;
}

.ferias-cfg-rodape-acoes {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.ferias-cfg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 38px;
  padding: 0.45rem 1.1rem;
  border-radius: 8px;
  font-size: 0.825rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.ferias-cfg-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.ferias-cfg-btn--salvar {
  border: 1px solid #2563eb;
  background: #2563eb;
  color: #ffffff;
}

.ferias-cfg-btn--salvar:hover:not(:disabled) {
  background: #1d4ed8;
  border-color: #1d4ed8;
}

.ferias-cfg-btn--inativar {
  border: 1px solid #fca5a5;
  background: #ffffff;
  color: #dc2626;
}

.ferias-cfg-btn--inativar:hover {
  background: #fef2f2;
  border-color: #f87171;
}

.ferias-cfg-btn--reativar {
  border: 1px solid #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
}

.ferias-cfg-btn--reativar:hover {
  background: #dbeafe;
}

.ferias-cfg-btn--secundario {
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #334155;
}

.ferias-cfg-btn--secundario:hover {
  background: #f8fafc;
}

.ferias-cfg-btn--perigo {
  border: 1px solid #dc2626;
  background: #dc2626;
  color: #ffffff;
}

.ferias-cfg-btn--perigo:hover {
  background: #b91c1c;
}

.ferias-cfg-btn--primario {
  border: 1px solid #2563eb;
  background: #2563eb;
  color: #ffffff;
}

.ferias-cfg-btn--primario:hover {
  background: #1d4ed8;
}

/* Feedback message */
.ferias-cfg-feedback {
  margin: 0.6rem 0;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 600;
}

.ferias-cfg-feedback--erro {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
}

.ferias-cfg-feedback--sucesso {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}

/* Filtros da Tabela */
.ferias-cfg-filtros {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.85rem;
  width: 100%;
}

.ferias-cfg-filtro-campo {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1 1 80px;
  min-width: 75px;
}

.ferias-cfg-filtro-rotulo {
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ferias-cfg-filtro-select {
  min-height: 34px;
  padding: 0.3rem 0.5rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  color: #0f172a;
  font-size: 0.8rem;
  font-weight: 600;
  width: 100%;
  box-sizing: border-box;
}

.ferias-cfg-filtro-select:disabled {
  background: #f8fafc;
  color: #64748b;
  cursor: not-allowed;
}

.ferias-cfg-btn-limpar {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 34px;
  padding: 0.3rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
  margin-left: auto;
  align-self: flex-end;
}

.ferias-cfg-btn-limpar:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
}

/* Tabela de ExercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cios Cadastrados */
.ferias-cfg-tabela-container {
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  width: 100%;
}

.ferias-cfg-tabela {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  text-align: left;
}

.ferias-cfg-tabela thead th {
  background: #f8fafc;
  color: #475569;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid #e2e8f0;
  white-space: nowrap;
}

.ferias-cfg-tabela tbody td {
  padding: 0.65rem 0.65rem;
  border-bottom: 1px solid #f1f5f9;
  color: #1e293b;
  vertical-align: middle;
  font-size: 0.8rem;
}

.ferias-cfg-tabela-linha {
  cursor: pointer;
  transition: background 0.12s ease;
}

.ferias-cfg-tabela-linha:hover {
  background: #f8fafc;
}

.ferias-cfg-tabela-linha.is-selected {
  background: #eff6ff;
}

.ferias-cfg-tabela-linha.is-selected .ferias-cfg-celula-ano strong {
  color: #2563eb;
}

.ferias-cfg-celula-ano strong {
  color: #0f172a;
}

.ferias-cfg-celula-centro {
  text-align: center;
}

.ferias-cfg-celula-data {
  color: #475569;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ferias-cfg-tabela-vazia {
  text-align: center;
  color: #64748b;
  padding: 1.5rem !important;
}

/* RodapÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â© da tabela */
.ferias-cfg-tabela-rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.85rem;
}

.ferias-cfg-contador {
  color: #64748b;
  font-size: 0.8rem;
}

.ferias-cfg-paginacao {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.ferias-cfg-pag-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  color: #475569;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-cfg-pag-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ferias-cfg-pag-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 700;
}

/* Callout Explicativo */
.ferias-cfg-callout {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin-top: 1.25rem;
  padding: 0.85rem 1rem;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  background: #eff6ff;
}

.ferias-cfg-callout-ico {
  color: #2563eb;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.ferias-cfg-callout-conteudo {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ferias-cfg-callout-titulo {
  color: #1d4ed8;
  font-size: 0.825rem;
  font-weight: 800;
}

.ferias-cfg-callout-texto {
  margin: 0;
  color: #475569;
  font-size: 0.775rem;
  line-height: 1.45;
}

/* Modais */
.ferias-cfg-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 150;
  background: rgba(15, 23, 42, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(2px);
}

.ferias-cfg-modal-backdrop[hidden] {
  display: none;
}

.ferias-cfg-modal {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  width: min(520px, 100%);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ferias-cfg-modal--ajuda {
  width: min(600px, 100%);
}

.ferias-cfg-modal--confirmacao {
  width: min(440px, 100%);
}

.ferias-cfg-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e2e8f0;
}

.ferias-cfg-modal-header h3 {
  margin: 0;
  color: #0f172a;
  font-size: 1.05rem;
  font-weight: 800;
}

.ferias-cfg-modal-fechar {
  border: 0;
  background: transparent;
  color: #64748b;
  font-size: 1.35rem;
  line-height: 1;
  padding: 0.2rem;
  cursor: pointer;
  border-radius: 4px;
}

.ferias-cfg-modal-fechar:hover {
  color: #0f172a;
}

.ferias-cfg-modal-corpo {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.ferias-cfg-modal-desc {
  margin: 0;
  color: #64748b;
  font-size: 0.825rem;
  line-height: 1.45;
}

.ferias-cfg-modal-campo {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-cfg-modal-rotulo {
  color: #334155;
  font-size: 0.775rem;
  font-weight: 700;
}

.ferias-cfg-input {
  min-height: 38px;
  padding: 0.45rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #0f172a;
  font-size: 0.85rem;
}

.ferias-cfg-input:focus {
  outline: 2px solid #3b82f6;
  border-color: #3b82f6;
}

.ferias-cfg-ajuda-texto h4 {
  margin: 0.75rem 0 0.25rem;
  color: #0f172a;
  font-size: 0.875rem;
  font-weight: 800;
}

.ferias-cfg-ajuda-texto h4:first-child {
  margin-top: 0;
}

.ferias-cfg-ajuda-texto p {
  margin: 0;
  color: #475569;
  font-size: 0.8rem;
  line-height: 1.5;
}

.ferias-cfg-modal-rodape {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  padding: 0.85rem 1.25rem;
  border-top: 1px solid #e2e8f0;
  background: #f8fafc;
}

/* ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âcones utilitÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rios */
.ferias-cfg-ico {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

/* Responsividade */
@media (max-width: 1024px) {
  .ferias-cfg-grade {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .ferias-cfg-form-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ferias-cfg-regras-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ferias-cfg-filtros {
    flex-direction: column;
    align-items: stretch;
  }
  .ferias-cfg-btn-limpar {
    margin-left: 0;
  }
}

.ferias-over {
  display: grid;
  gap: 1rem;
}
.ferias-over-cabeca {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.ferias-over-cabeca h2 {
  margin: 0;
  color: var(--app-navy);
  font-size: 1.15rem;
}

.ferias-over-cabeca p {
  margin: 0.25rem 0 0;
  color: var(--app-text-muted);
  font-size: 0.82rem;
}

.ferias-over-contexto {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.ferias-over-chip {
  border: 1px solid #d7e1ec;
  border-radius: 6px;
  background: #ffffff;
  color: #1d2b44;
  font-size: 0.75rem;
  padding: 0.3rem 0.6rem;
  white-space: nowrap;
}

.ferias-over-chip strong {
  color: var(--app-navy);
}

.ferias-over-fases {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
}

.ferias-over-fase {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  min-width: 0;
  padding: 0.6rem;
  border: 1px solid #e2e9f3;
  border-radius: 8px;
  background: #ffffff;
}

.ferias-over-fase.is-atual {
  border-color: #0f67d8;
  background: #f0f6ff;
}

.ferias-over-fase.is-encerrada {
  background: #f7faf5;
}

.ferias-over-fase-num {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #e3eaf5;
  color: #5a6b84;
  font-size: 0.72rem;
  font-weight: 800;
  flex: none;
}

.ferias-over-fase.is-atual .ferias-over-fase-num {
  background: #0f67d8;
  color: #ffffff;
}

.ferias-over-fase strong {
  display: block;
  color: #1d2b44;
  font-size: 0.78rem;
}

.ferias-over-fase small {
  display: block;
  margin-top: 0.15rem;
  color: var(--app-text-muted);
  font-size: 0.68rem;
  line-height: 1.3;
}

.ferias-over-rodada {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 0.9rem;
  border: 1px solid #d7e1ec;
  border-radius: 8px;
  background: #ffffff;
}

.ferias-over-rodada-bola {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 800;
  flex: none;
}

.ferias-over-rodada-bola--1 { background: #188a42; }
.ferias-over-rodada-bola--2 { background: #cf3a35; }
.ferias-over-rodada-bola--3 { background: #2563eb; }

.ferias-over-rodada-info strong {
  display: block;
  color: var(--app-navy);
  font-size: 0.85rem;
}

.ferias-over-rodada-info small {
  color: var(--app-text-muted);
  font-size: 0.7rem;
}

.ferias-over-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 1rem;
  align-items: start;
}

.ferias-over-principal {
  display: grid;
  gap: 0.9rem;
  min-width: 0;
}

.ferias-over-subtabs {
  display: inline-flex;
  gap: 0.3rem;
}

.ferias-over-subtab {
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #5a6b84;
  padding: 0.35rem 0.7rem;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-over-subtab.is-active {
  border-bottom-color: #0f67d8;
  color: #0d2670;
}

.ferias-over-toolbar {
  display: grid;
  gap: 0.6rem;
}

.ferias-over-aviso {
  margin: 0;
  padding: 0.6rem 0.75rem;
  border: 1px solid #d7e1ec;
  border-left: 3px solid #0f67d8;
  border-radius: 6px;
  background: #ffffff;
  color: #1d2b44;
  font-size: 0.78rem;
  line-height: 1.5;
}

.ferias-over-busca {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #5a6b84;
  font-size: 0.72rem;
  font-weight: 700;
}

.ferias-over-busca input {
  border: 1px solid #c7d4e4;
  border-radius: 6px;
  padding: 0.35rem 0.6rem;
  font: inherit;
  background: #ffffff;
}

.ferias-over-tabela,
.ferias-over-detalhe-tabela {
  border: 1px solid #e2e9f3;
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
}

.ferias-over-tabela table,
.ferias-over-detalhe-tabela table {
  width: 100%;
  border-collapse: collapse;
}

.ferias-over-tabela th,
.ferias-over-tabela td,
.ferias-over-detalhe-tabela th,
.ferias-over-detalhe-tabela td {
  padding: 0.5rem 0.6rem;
  border-bottom: 1px solid #edf1f6;
  text-align: left;
  vertical-align: middle;
}

.ferias-over-tabela thead th,
.ferias-over-detalhe-tabela thead th {
  background: #f6f8fb;
  color: #5a6b84;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ferias-over-tabela tbody tr {
  cursor: pointer;
}

.ferias-over-tabela tbody tr:hover {
  background: #f7faff;
}

.ferias-over-tabela .ferias-over-data {
  font-weight: 700;
  color: #0d2670;
  white-space: nowrap;
}

.ferias-over-total {
  display: inline-block;
  border-radius: 999px;
  background: #fdf1e4;
  color: #a4520a;
  font-weight: 800;
  font-size: 0.78rem;
  padding: 0.2rem 0.6rem;
}

.ferias-over-servidores {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.ferias-over-servidor {
  border-radius: 4px;
  padding: 0.1rem 0.4rem;
  font-size: 0.72rem;
  font-weight: 700;
}

.ferias-over-servidor--mantido {
  background: #e7f5ec;
  color: #14693a;
}

.ferias-over-servidor--recusado {
  background: #fdeaea;
  color: #b02a25;
}

.ferias-over-ver {
  border: 1px solid #d7e1ec;
  border-radius: 6px;
  background: #ffffff;
  color: #0d2670;
  padding: 0.25rem 0.6rem;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
}
.ferias-over-detalhe {
  border: 1px solid #d7e1ec;
  border-radius: 8px;
  background: #ffffff;
}

.ferias-over-detalhe-topo {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
}

.ferias-over-detalhe-topo strong {
  color: var(--app-navy);
}

.ferias-over-detalhe-topo span {
  display: block;
  color: var(--app-text-muted);
  font-size: 0.72rem;
  margin-top: 0.15rem;
}

.ferias-over-recolher {
  border: 0;
  background: transparent;
  color: #0d2670;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-over-badge {
  display: inline-block;
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
}

.ferias-over-badge--ok {
  background: #e7f5ec;
  color: #14693a;
}

.ferias-over-badge--recusado {
  background: #fdeaea;
  color: #b02a25;
}

.ferias-over-servidor-nome strong {
  color: #0d2670;
}

.ferias-over-detalhe-acao {
  color: var(--app-text-muted);
}

.ferias-over-excecao {
  display: grid;
  gap: 0.5rem;
  padding: 0.8rem;
  border: 1px solid #e2e9f3;
  border-radius: 8px;
  background: #ffffff;
}

.ferias-over-excecao h3 {
  margin: 0;
  color: var(--app-navy);
  font-size: 0.88rem;
}

.ferias-over-excecao textarea {
  border: 1px solid #c7d4e4;
  border-radius: 6px;
  padding: 0.5rem 0.6rem;
  font: inherit;
  font-size: 0.8rem;
  resize: vertical;
}

.ferias-over-nota {
  margin: 0;
  color: var(--app-text-muted);
  font-size: 0.74rem;
  line-height: 1.5;
}

.ferias-over-acoes {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.ferias-over-btn {
  border: 1px solid #0d2670;
  border-radius: 6px;
  background: #0d2670;
  color: #ffffff;
  padding: 0.4rem 0.9rem;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-over-btn--ghost {
  background: #ffffff;
  color: #0d2670;
}

.ferias-over-btn--confirmar {
  border-color: #188a42;
  background: #188a42;
}

.ferias-over-btn:disabled {
  opacity: 0.6;
  cursor: default;
}

.ferias-over-lateral {
  display: grid;
  gap: 0.9rem;
}

.ferias-over-card {
  display: grid;
  gap: 0.6rem;
  padding: 0.8rem;
  border: 1px solid #e2e9f3;
  border-radius: 8px;
  background: #ffffff;
}

.ferias-over-card h3 {
  margin: 0;
  color: var(--app-navy);
  font-size: 0.9rem;
}

.ferias-over-resumo,
.ferias-over-regras {
  display: grid;
  gap: 0.4rem;
  margin: 0;
}

.ferias-over-resumo div,
.ferias-over-regras div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px dashed #edf1f6;
}

.ferias-over-resumo div:last-child,
.ferias-over-regras div:last-child {
  border-bottom: 0;
}

.ferias-over-resumo dt,
.ferias-over-regras dt {
  color: #1d2b44;
  font-size: 0.76rem;
  font-weight: 600;
}

.ferias-over-resumo dd,
.ferias-over-regras dd {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
}

.ferias-over-valor--alerta { color: #b8860b; }
.ferias-over-valor--ok { color: #188a42; }
.ferias-over-valor--recusado { color: #b02a25; }
.ferias-over-valor--neutro { color: #5a6b84; }

.ferias-over-card p {
  margin: 0;
  color: var(--app-text-muted);
  font-size: 0.74rem;
  line-height: 1.5;
}

.ferias-over-nota--dised {
  margin-top: 0.2rem;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  background: #fdf6ea;
  color: #8a5a12;
}

.ferias-over-resumo-placeholder {
  padding: 1.2rem;
  border: 1px dashed #d7e1ec;
  border-radius: 8px;
  background: #ffffff;
}

.ferias-over-resumo-placeholder h3 {
  margin: 0 0 0.3rem;
  color: var(--app-navy);
}

.ferias-over-resumo-placeholder p {
  margin: 0 0 0.8rem;
  color: var(--app-text-muted);
  font-size: 0.8rem;
}

.ferias-over-resumo-mini {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ferias-over-resumo-mini span {
  border: 1px solid #e2e9f3;
  border-radius: 999px;
  padding: 0.25rem 0.6rem;
  color: #1d2b44;
  font-size: 0.74rem;
}

.ferias-over-resumo-mini strong {
  color: var(--app-navy);
  margin-right: 0.25rem;
}

.ferias-over-sem-resultado {
  margin: 0;
  padding: 0.7rem;
  text-align: center;
  color: var(--app-text-muted);
  font-size: 0.8rem;
}

@media (max-width: 1100px) {
  .ferias-over-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-over-lateral {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .ferias-over-linha {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-over-fases {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .ferias-over-fases,
  .ferias-over-lateral {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-over-tabela {
    overflow-x: auto;
  }
}

@media (max-width: 1300px) {
  .ferias-config-cards,
  .ferias-config-regras {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .ferias-config-cards,
  .ferias-config-regras,
  .ferias-config-linha {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-gestao-tabs {
    display: grid;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 960px) {
  .ferias-config-colunas {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Ajustes visuais do Overbook (fechamento) */
.ferias-gestao-tabs {
  padding: 0.35rem;
  gap: 0.55rem;
}

.ferias-gestao-tab {
  min-height: 42px;
  padding: 0 1.1rem;
  gap: 0.55rem;
  font-size: 0.82rem;
}

.ferias-gestao-tab .ferias-gestao-ico {
  width: 18px;
  height: 18px;
}

.ferias-over-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 6px;
  padding: 0.15rem 0.5rem;
  font-size: 0.74rem;
  font-weight: 800;
  white-space: nowrap;
  cursor: default;
}

.ferias-over-chip[draggable="true"] {
  cursor: grab;
}

.ferias-over-chip[draggable="true"]:hover {
  box-shadow: 0 2px 6px rgba(13, 38, 112, 0.18);
}

.ferias-over-chip--marcado {
  background: #e7f5ec;
  border: 1px solid #bfe7cd;
  color: #14693a;
}

.ferias-over-chip--recusado {
  background: #fdeaea;
  border: 1px solid #f2c3c0;
  color: #b02a25;
}

.ferias-over-vazio {
  color: #97a4b6;
  font-size: 0.8rem;
}

.ferias-over-linha {
  cursor: pointer;
}

.ferias-over-linha:hover,
.ferias-over-linha:focus-visible {
  background: #f2f7ff;
  outline: none;
}

.ferias-over-linha--alerta .ferias-over-total {
  background: #fdeaea;
  color: #b02a25;
}

.ferias-over-linha--ok .ferias-over-total {
  background: #e7f5ec;
  color: #14693a;
}

.ferias-over-cel-servidores,
.ferias-over-cel-recusados {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  align-items: center;
}

.ferias-over-cel-excecao {
  text-align: center;
}

.ferias-over-exc-botao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #c9d8ea;
  border-radius: 6px;
  background: #ffffff;
  color: #0d2670;
  cursor: pointer;
}

.ferias-over-exc-botao .ferias-gestao-ico {
  width: 15px;
  height: 15px;
}

.ferias-over-exc-botao--vazio {
  opacity: 0.35;
  cursor: default;
}

.ferias-over-exc-indicador {
  display: block;
  margin-top: 0.2rem;
  color: #1f6eea;
  font-size: 0.68rem;
  font-weight: 700;
}

.ferias-over-exc-backdrop {
  position: fixed;
  inset: 0;
  z-index: 130;
  display: grid;
  place-items: center;
  background: rgba(10, 28, 66, 0.42);
  padding: 1rem;
}

.ferias-over-exc-backdrop[hidden] {
  display: none;
}

.ferias-over-exc-pop {
  width: min(520px, 100%);
  display: grid;
  gap: 0.7rem;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 50px rgba(8, 25, 70, 0.28);
  padding: 1rem 1.1rem;
}

.ferias-over-exc-pop header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.ferias-over-exc-pop h3 {
  margin: 0;
  color: #0d2670;
  font-size: 1rem;
}

.ferias-over-exc-x {
  border: 0;
  background: transparent;
  color: #1d2b44;
  font-weight: 800;
  cursor: pointer;
}

.ferias-over-exc-aux {
  margin: 0;
  color: #5a6b84;
  font-size: 0.8rem;
  line-height: 1.5;
}

.ferias-over-exc-pop textarea {
  border: 1px solid #c7d4e4;
  border-radius: 6px;
  padding: 0.5rem 0.6rem;
  font: inherit;
  font-size: 0.8rem;
  resize: vertical;
}

.ferias-over-exc-erro {
  margin: 0;
  border-radius: 6px;
  background: #fdeaea;
  color: #b02a25;
  padding: 0.4rem 0.55rem;
  font-size: 0.76rem;
  font-weight: 700;
}

.ferias-over-exc-pop footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

@media (max-width: 900px) {
  .ferias-over-lateral {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .ferias-over-lateral {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-over-tabela {
    overflow-x: auto;
  }
}

/* Overbook ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â operaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o direta na tabela (sem painel filho) */
.ferias-over-chip {
  cursor: grab;
  user-select: none;
}

.ferias-over-chip.is-selecionado {
  box-shadow: 0 0 0 2px #0f67d8;
  background: #dbe9ff;
  border-color: #0f67d8;
}

td[data-over-drop] {
  min-height: 38px;
}

td[data-over-drop].is-drop-over {
  background: #eaf3ff;
  box-shadow: inset 0 0 0 2px #0f67d8;
  border-radius: 6px;
}

.ferias-over-linha--resolvida {
  opacity: 0.88;
}

.ferias-over-linha--resolvida .ferias-over-data,
.ferias-over-linha--resolvida .ferias-over-total {
  color: #14693a;
}

.ferias-over-resolvido {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  margin-top: 0.25rem;
  color: #188a42;
  font-size: 0.68rem;
  font-weight: 800;
}

.ferias-over-resolvido .ferias-gestao-ico {
  width: 12px;
  height: 12px;
}

/* ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â regras e popover definitivo */
.ferias-config-regra-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}

.ferias-config-secao--regras .ferias-config-aux {
  margin-bottom: 0.45rem;
}

.ferias-config-regra-card {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 0.1rem;
  padding: 0.48rem 0.4rem;
  border: 1px solid #e2e9f3;
  border-radius: 8px;
  background: #ffffff;
  text-align: center;
}

.ferias-config-regra-card > span {
  color: #1d2b44;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.ferias-config-regra-card small {
  color: var(--app-text-muted);
  font-size: 0.66rem;
}

.ferias-config-regra-card strong {
  color: #0d2670;
  font-size: 1.6rem;
  line-height: 1;
  margin-top: 0.15rem;
}

.ferias-config-regra-card--editavel strong {
  padding-right: 1.2rem;
}

.ferias-config-limite-editar {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #0f67d8;
  cursor: pointer;
}

.ferias-config-limite-editar .ferias-gestao-ico {
  width: 14px;
  height: 14px;
}

.ferias-config-select {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  min-height: 34px;
  border: 1px solid #c7d4e4;
  border-radius: 6px;
  background: #ffffff;
  padding: 0.35rem 0.6rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1d2b44;
  cursor: pointer;
}

.ferias-config-select::after {
  content: ">";
  color: #0d2670;
  font-size: 0.75rem;
}

.ferias-config-select .ferias-config-lista {
  top: calc(100% + 4px);
}

.ferias-config-pop-fixo {
  color: #0d2670;
  font-size: 1rem;
}

.ferias-config-pop-rodadas {
  display: grid;
  gap: 0.7rem;
}

.ferias-config-pop-rodada {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0.7rem;
  border: 1px solid #e2e9f3;
  border-radius: 8px;
  background: #f8fafc;
}

.ferias-config-pop-rodada legend {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0 0.35rem;
  color: #0d2670;
  font-size: 0.82rem;
  font-weight: 800;
}

.ferias-config-pop-rodada .ferias-config-rodada {
  width: 20px;
  height: 20px;
  font-size: 0.68rem;
}

.ferias-config-janela {
  display: grid;
  grid-template-columns: 130px 1fr 1fr 70px;
  gap: 0.45rem;
  align-items: center;
}

.ferias-config-janela-titulo {
  color: #1d2b44;
  font-size: 0.76rem;
  font-weight: 800;
}

.ferias-config-janela label {
  display: grid;
  gap: 0.15rem;
  color: #5a6b84;
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
}

.ferias-config-janela input {
  border: 1px solid #c7d4e4;
  border-radius: 6px;
  background: #ffffff;
  font: inherit;
  font-size: 0.78rem;
  padding: 0.3rem 0.45rem;
}

.ferias-config-feedback-rodada {
  margin: 0;
  color: #b02a25;
  font-size: 0.76rem;
  font-weight: 700;
}

.ferias-config-feedback {
  margin: 0;
  border-radius: 6px;
  background: #e7f5ec;
  color: #14693a;
  padding: 0.4rem 0.55rem;
  font-size: 0.78rem;
  font-weight: 700;
}

.ferias-config-limite-backdrop {
  position: fixed;
  inset: 0;
  z-index: 125;
  display: grid;
  place-items: center;
  background: rgba(10, 28, 66, 0.4);
  padding: 1rem;
}

.ferias-config-limite-backdrop[hidden] {
  display: none;
}

.ferias-config-limite-pop {
  display: grid;
  gap: 0.6rem;
  width: min(360px, 100%);
  padding: 1rem;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 50px rgba(8, 25, 70, 0.28);
}

.ferias-config-limite-pop h3 {
  margin: 0;
  color: #0d2670;
  font-size: 0.95rem;
}

.ferias-config-limite-pop label {
  display: grid;
  gap: 0.3rem;
  color: #1d2b44;
  font-size: 0.78rem;
  font-weight: 700;
}

.ferias-config-limite-pop input {
  border: 1px solid #c7d4e4;
  border-radius: 6px;
  padding: 0.4rem 0.55rem;
  font: inherit;
}

.ferias-config-limite-pop footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

@media (max-width: 700px) {
  .ferias-config-regra-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-config-janela {
    grid-template-columns: 1fr 1fr;
  }

  .ferias-config-janela-titulo {
    grid-column: 1 / -1;
  }
}

/* Usuários — Rota Administrativa (mockup definitivo) */
.usuarios-rota {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

.usuarios-cabeca {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.usuarios-cabeca-titulos h1 {
  margin: 0;
  color: #0f172a;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.usuarios-cabeca-titulos p {
  margin: 0.25rem 0 0;
  color: #64748b;
  font-size: 0.875rem;
}

.usuarios-ico {
  width: 16px;
  height: 16px;
}

.usuarios-ico-busca {
  width: 16px;
  height: 16px;
  color: #94a3b8;
  flex-shrink: 0;
}

.usuarios-ico-acao {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.usuarios-layout-duplo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 1.25rem;
  align-items: start;
}

.usuarios-col-principal {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.usuarios-col-painel {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* Toolbar & Filters */
.usuarios-toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.usuarios-filtros-linha {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.usuarios-filtros-grupo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.usuarios-filtros-rotulo {
  font-size: 0.775rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.usuarios-filtros-plantoes,
.usuarios-filtros-status {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.usuarios-filtro-plantao,
.usuarios-filtro-status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid #e2e8f0;
  border-radius: 9999px;
  background: #f8fafc;
  color: #475569;
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.usuarios-filtro-plantao:hover,
.usuarios-filtro-status:hover {
  background: #f1f5f9;
  color: #0f172a;
  border-color: #cbd5e1;
}

.usuarios-filtro-plantao.is-active,
.usuarios-filtro-status.is-active {
  background: #0f172a;
  border-color: #0f172a;
  color: #ffffff;
}

.usuarios-filtro-status:hover {
  background: #f1f5f9;
  color: #0f172a;
  border-color: #cbd5e1;
}

.usuarios-filtro-status.is-active {
  background: #0f172a;
  border-color: #0f172a;
  color: #ffffff;
}

.usuarios-filtro-contador {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9999px;
  background: rgba(0, 0, 0, 0.07);
  color: inherit;
  font-size: 0.725rem;
  font-weight: 700;
}

.usuarios-filtro-status.is-active .usuarios-filtro-contador {
  background: rgba(255, 255, 255, 0.22);
  color: #ffffff;
}

.usuarios-filtros-dropdowns {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.usuarios-filtro-unidade,
.usuarios-filtro-perfil,
.usuarios-filtro-plantao {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #475569;
  font-size: 0.8125rem;
  font-weight: 600;
}

.usuarios-filtro-unidade select,
.usuarios-filtro-perfil select,
.usuarios-filtro-plantao select {
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  font: inherit;
  font-size: 0.8125rem;
  padding: 0.35rem 0.65rem;
  color: #1e293b;
  outline: none;
  cursor: pointer;
}

.usuarios-filtro-unidade select {
  min-width: 140px;
}

.usuarios-filtro-perfil select {
  min-width: 180px;
}

.usuarios-busca-linha {
  display: flex;
  width: 100%;
}

.usuarios-busca-input-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0.45rem 0.75rem;
  background: #ffffff;
  box-sizing: border-box;
}

.usuarios-busca-input-wrap:focus-within {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
}

.usuarios-busca-input-wrap input {
  border: none;
  outline: none;
  width: 100%;
  font: inherit;
  font-size: 0.825rem;
  color: #1e293b;
  background: transparent;
}

/* Table */
.usuarios-tabela-container {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow-x: auto;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.usuarios-tabela {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.usuarios-tabela th,
.usuarios-tabela td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.usuarios-tabela thead th {
  background: #f8fafc;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-bottom: 1px solid #e2e8f0;
  white-space: nowrap;
}

.usuarios-linha {
  cursor: pointer;
  transition: background 0.15s ease;
}

.usuarios-linha:hover {
  background: #f8fafc;
}

.usuarios-linha.is-selected {
  background: #eff6ff;
  border-left: 3px solid #2563eb;
}

.usuarios-td-usuario {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 220px;
}

.usuarios-usuario-info {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.usuarios-usuario-nome {
  font-size: 0.875rem;
  font-weight: 700;
  color: #0f172a;
}

.usuarios-usuario-email {
  font-size: 0.75rem;
  color: #64748b;
}

.usuarios-usuario-sub {
  font-size: 0.7rem;
  color: #0284c7;
  font-weight: 600;
}

.usuarios-td-matricula {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  white-space: nowrap;
}

.usuarios-td-unidade {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0f172a;
  white-space: nowrap;
}

.usuarios-td-perfil {
  min-width: 180px;
}

.usuarios-td-plantao {
  white-space: nowrap;
}

.usuarios-perfil-cell {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.usuarios-perfil-nome {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1e293b;
}

.usuarios-perfil-chip-wrap {
  display: flex;
}

/* Plantão Chips */
.usuarios-chip-plantao {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  width: fit-content;
}

.usuarios-chip-plantao--alfa {
  background: #fef9c3;
  color: #854d0e;
  border: 1px solid #fde047;
}

.usuarios-chip-plantao--bravo {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}

.usuarios-chip-plantao--charlie {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #93c5fd;
}

.usuarios-chip-plantao--delta {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}

.usuarios-chip-tag {
  opacity: 0.85;
}

.usuarios-chip-sep {
  opacity: 0.4;
  margin: 0 1px;
}

.usuarios-chip-nome {
  font-weight: 800;
}

.usuarios-td-status {
  white-space: nowrap;
}

.usuarios-td-data {
  font-size: 0.775rem;
  color: #64748b;
  white-space: nowrap;
}

.usuarios-td-acoes {
  white-space: nowrap;
}

/* Avatars */
.usuarios-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  border-radius: 50%;
  background: #0284c7;
  color: #ffffff;
  font-weight: 800;
  user-select: none;
}

.usuarios-avatar--mini {
  width: 38px;
  height: 38px;
  font-size: 0.78rem;
}

.usuarios-avatar--grande {
  width: 64px;
  height: 64px;
  font-size: 1.35rem;
}

.usuarios-avatar-img {
  object-fit: cover;
}

/* Badges */
.usuarios-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding: 0.2rem 0.6rem;
  font-size: 0.725rem;
  font-weight: 700;
}

.usuarios-badge--ativo {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.usuarios-badge--pendente {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
}

.usuarios-badge--inativo {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
}

.usuarios-badge--rejeitado {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}

/* Buttons */
.usuarios-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 0.32rem 0.65rem;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.usuarios-btn--aceitar {
  background: #16a34a;
  border-color: #16a34a;
  color: #ffffff;
}

.usuarios-btn--aceitar:hover {
  background: #15803d;
}

.usuarios-btn--rejeitar {
  background: #dc2626;
  border-color: #dc2626;
  color: #ffffff;
}

.usuarios-btn--rejeitar:hover {
  background: #b91c1c;
}

.usuarios-btn--inativar {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #b91c1c;
}

.usuarios-btn--inativar:hover {
  background: #dc2626;
  border-color: #dc2626;
  color: #ffffff;
}

.usuarios-btn--reativar,
.usuarios-btn--ativar {
  background: #dcfce7;
  border-color: #86efac;
  color: #15803d;
}

.usuarios-btn--reativar:hover,
.usuarios-btn--ativar:hover {
  background: #16a34a;
  border-color: #16a34a;
  color: #ffffff;
}

.usuarios-btn--ghost {
  background: #ffffff;
  border-color: #cbd5e1;
  color: #334155;
}

.usuarios-btn--ghost:hover {
  background: #f8fafc;
  color: #0f172a;
}

.usuarios-btn--full {
  width: 100%;
  padding: 0.55rem 1rem;
  font-size: 0.85rem;
}

.usuarios-btn--flex {
  flex: 1;
  padding: 0.5rem 0.75rem;
}

.usuarios-btn:disabled {
  opacity: 0.55;
  cursor: default;
}

.usuarios-vazio {
  color: #64748b;
  text-align: center;
  font-size: 0.85rem;
  padding: 2rem 1rem !important;
}

/* Pagination */
.usuarios-paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  color: #475569;
  font-size: 0.78rem;
  padding: 0.25rem 0.25rem 0;
}

.usuarios-paginacao-resumo {
  font-weight: 500;
}

.usuarios-paginacao-tamanho {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #64748b;
  font-weight: 600;
}

.usuarios-paginacao select {
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.25rem 0.4rem;
  font: inherit;
  font-size: 0.76rem;
  background: #ffffff;
  color: #1e293b;
}

.usuarios-paginacao-controles {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.usuarios-paginacao-pagina {
  font-weight: 600;
  color: #1e293b;
}

/* Details Side Panel */
.usuarios-painel-dados {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
  display: flex;
  flex-direction: column;
}

.usuarios-painel-dados--vazio {
  padding: 2rem 1rem;
  text-align: center;
}

.usuarios-painel-vazio p {
  margin: 0;
  color: #64748b;
  font-size: 0.85rem;
}

.usuarios-painel-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.875rem 1.125rem;
  border-bottom: 1px solid #f1f5f9;
}

.usuarios-painel-topo h2 {
  margin: 0;
  color: #64748b;
  font-size: 0.775rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.usuarios-painel-perfil {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 1.125rem;
  border-bottom: 1px solid #f1f5f9;
  background: #fafcff;
}

.usuarios-painel-perfil-info {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.usuarios-painel-nome {
  color: #0f172a;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
}

.usuarios-painel-email {
  color: #64748b;
  font-size: 0.8rem;
  word-break: break-all;
}

.usuarios-painel-meta {
  color: #0284c7;
  font-size: 0.75rem;
  font-weight: 600;
}

.usuarios-painel-scroll {
  padding: 1.125rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.usuarios-painel-cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.usuarios-painel-card {
  border: 1px solid #f1f5f9;
  border-radius: 8px;
  background: #ffffff;
  padding: 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.usuarios-painel-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.usuarios-painel-card-titulo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.usuarios-painel-card-titulo h3 {
  margin: 0;
  font-size: 0.725rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #475569;
}

.usuarios-card-ico {
  width: 14px;
  height: 14px;
  color: #64748b;
}

.usuarios-def-grid {
  display: grid;
  gap: 0.45rem;
}

.usuarios-def-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 0.8rem;
  gap: 0.5rem;
  border-bottom: 1px dashed #f1f5f9;
  padding-bottom: 0.35rem;
}

.usuarios-def-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.usuarios-def-label {
  color: #64748b;
  font-weight: 500;
  white-space: nowrap;
}

.usuarios-def-valor {
  color: #0f172a;
  font-weight: 600;
  text-align: right;
  overflow-wrap: anywhere;
}

.usuarios-auth-badge {
  font-size: 0.65rem;
  background: #e0f2fe;
  color: #0369a1;
  padding: 1px 4px;
  border-radius: 4px;
  font-weight: 700;
  margin-left: 0.25rem;
  vertical-align: middle;
}

.usuarios-painel-perfil-op {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.usuarios-perfil-op-nome {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f172a;
}

.usuarios-painel-rodape {
  padding: 0.875rem 1.125rem;
  border-top: 1px solid #f1f5f9;
  background: #ffffff;
}

.usuarios-painel-botoes-grupo {
  display: flex;
  gap: 0.5rem;
}

@media (max-width: 1100px) {
  .usuarios-layout-duplo {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .usuarios-toolbar {
    align-items: flex-start;
  }
  
  .usuarios-filtros-linha {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Meus Dados — Rota Pessoal */
.meusdados {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 680px;
  width: 100%;
  box-sizing: border-box;
  margin: 0 auto;
}

.meusdados-cabeca h1 {
  margin: 0;
  color: #0f172a;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.meusdados-cabeca p {
  margin: 0.35rem 0 0;
  color: #64748b;
  font-size: 0.875rem;
}

.meusdados-loading-panel,
.meusdados-error-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3.5rem 1.5rem;
  text-align: center;
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}

.meusdados-loading-panel h2 {
  font-size: 1.125rem;
  font-weight: 600;
  color: #1e293b;
  margin: 1rem 0 0;
}

/* Card Superior de Resumo do Perfil */
.meusdados-resumo-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
  display: grid;
  grid-template-columns: 1.4fr 1.1fr 1fr;
  align-items: center;
  padding: 1.25rem 1.75rem;
  gap: 1.5rem;
  box-sizing: border-box;
}

.meusdados-resumo-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.meusdados-resumo-col--identidade {
  flex-direction: row;
  align-items: center;
  gap: 1.25rem;
}

.meusdados-resumo-col--perfil {
  border-left: 1px solid #f1f5f9;
  padding-left: 1.5rem;
  gap: 0.5rem;
}

.meusdados-resumo-col--unidade {
  border-left: 1px solid #f1f5f9;
  padding-left: 1.5rem;
  gap: 0.5rem;
}

.meusdados-avatar-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}

.meusdados-avatar-circle {
  position: relative;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: #e2e8f0;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
}

.meusdados-avatar-circle .avatar {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  font-size: 1.5rem;
  font-weight: 700;
  color: #0284c7;
  background: #e0f2fe;
  display: flex;
  align-items: center;
  justify-content: center;
}

.meusdados-foto {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.meusdados-avatar-badge {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 24px;
  height: 24px;
  background: #0284c7;
  border-radius: 50%;
  border: 2px solid #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}

.meusdados-avatar-badge svg {
  width: 13px;
  height: 13px;
}

.meusdados-btn-trocar-foto {
  border: 1px solid #0284c7;
  color: #0284c7;
  background: #ffffff;
  border-radius: 6px;
  padding: 0.28rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.meusdados-btn-trocar-foto:hover {
  background: #f0f9ff;
}

.meusdados-avatar-aviso {
  font-size: 0.68rem;
  color: #94a3b8;
  text-align: center;
  max-width: 140px;
  line-height: 1.3;
}

.meusdados-identidade-info {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.meusdados-nome {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  text-transform: uppercase;
  line-height: 1.3;
}

.meusdados-matricula {
  font-size: 0.8125rem;
  color: #64748b;
  font-weight: 500;
}

.meusdados-resumo-rotulo {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.meusdados-perfil-box {
  background: #f1f5f9;
  padding: 0.45rem 0.85rem;
  border-radius: 6px;
  font-weight: 700;
  font-size: 0.8125rem;
  color: #1e293b;
  text-transform: uppercase;
  width: fit-content;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.meusdados-perfil-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.2rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.meusdados-chip--delta { background: #15803d; color: #ffffff; }
.meusdados-chip--alfa { background: #ca8a04; color: #ffffff; }
.meusdados-chip--bravo { background: #dc2626; color: #ffffff; }
.meusdados-chip--charlie { background: #2563eb; color: #ffffff; }
.meusdados-chip--default { background: #475569; color: #ffffff; }

.meusdados-unidade-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.meusdados-unidade-ico {
  color: #1e293b;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}

.meusdados-unidade-ico svg {
  width: 28px;
  height: 28px;
}

.meusdados-unidade-texto {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.meusdados-unidade-sigla {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  text-transform: uppercase;
}

.meusdados-lotacao-tipo {
  font-size: 0.8125rem;
  color: #64748b;
  font-weight: 500;
}

/* Workspace de Duas Colunas */
.meusdados-workspace {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  align-items: start;
  margin-bottom: 5rem;
  padding-bottom: 2rem;
}

.meusdados-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  box-sizing: border-box;
}

.meusdados-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #f1f5f9;
}

.meusdados-card-header-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.meusdados-card-header h2,
.meusdados-card-header-title h2 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
}

.meusdados-card-header-ico {
  color: #0284c7;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
}

.meusdados-card-header-ico svg {
  width: 18px;
  height: 18px;
}

.meusdados-btn-editar {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #0284c7;
  color: #ffffff;
  border: 1px solid #0284c7;
  border-radius: 6px;
  padding: 0.35rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.meusdados-btn-editar:hover {
  background: #0369a1;
}

.meusdados-btn-editar--salvar {
  background: #059669;
  border-color: #059669;
  color: #ffffff;
}

.meusdados-btn-editar--salvar:hover {
  background: #047857;
  border-color: #047857;
}

.meusdados-btn-editar svg {
  width: 14px;
  height: 14px;
}

/* Seções Internas dos Cards */
.meusdados-secao {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.meusdados-secao-pill {
  background: #f0f7ff;
  color: #0284c7;
  border-radius: 6px;
  padding: 0.4rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.meusdados-pill-ico {
  color: #0284c7;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
}

.meusdados-pill-ico svg {
  width: 14px;
  height: 14px;
}

/* Definições / Listas de Dados Essenciais */
.meusdados-dl-essenciais {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin: 0;
  padding: 0.25rem 0.25rem 0;
}

.meusdados-dl-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 0.8125rem;
}

.meusdados-dl-row dt {
  color: #64748b;
  font-weight: 500;
  margin: 0;
}

.meusdados-dl-row dd {
  color: #0f172a;
  font-weight: 800;
  text-transform: uppercase;
  margin: 0;
  text-align: right;
}

.meusdados-chip-status--ativo {
  background: #dcfce7;
  color: #15803d;
  padding: 0.2rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.78rem;
  font-weight: 700;
}

/* Formulário de Dados Complementares */
.meusdados-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.meusdados-form-grid {
  display: grid;
  gap: 1rem;
  align-items: start;
}

.meusdados-form-grid--2cols {
  grid-template-columns: 1fr 1fr;
}

.meusdados-form-grid--email-tel {
  grid-template-columns: 1.4fr 1fr;
}

.meusdados-form-grid--funcionais {
  grid-template-columns: 1.1fr 2.9fr;
}

.meusdados-form-campo {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.meusdados-form-campo label {
  color: #475569;
  font-size: 0.75rem;
  font-weight: 600;
  margin: 0;
}

.meusdados-form-campo input,
.meusdados-form-campo select {
  height: 38px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.45rem 0.75rem;
  font-size: 0.8125rem;
  color: #1e293b;
  background: #ffffff;
  width: 100%;
  box-sizing: border-box;
  font-family: inherit;
}

.meusdados-input--locked,
.meusdados-select--locked {
  background: #f8fafc !important;
  color: #475569 !important;
  border-color: #e2e8f0 !important;
  cursor: default !important;
}

.meusdados-card--complementares {
  padding-bottom: 2.5rem;
}

.meusdados-form-campo--classe-padrao {
  position: relative;
}

.meusdados-form-campo--classe-padrao select {
  cursor: pointer;
}

.meusdados-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.meusdados-input-wrapper input {
  padding-right: 2.2rem;
}

.meusdados-input-ico {
  position: absolute;
  right: 0.75rem;
  color: #94a3b8;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
}

.meusdados-input-ico--lock {
  color: #64748b;
}

.meusdados-input-ico svg {
  width: 14px;
  height: 14px;
}

/* Botões do Formulário */
.meusdados-form-acoes {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #f1f5f9;
}

.meusdados-form-acoes.is-hidden {
  display: none;
}

.meusdados-btn--cancelar {
  background: #ffffff;
  color: #475569;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.45rem 1.1rem;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.meusdados-btn--cancelar:hover {
  background: #f8fafc;
}

.meusdados-btn--salvar {
  background: #0284c7;
  color: #ffffff;
  border: 1px solid #0284c7;
  border-radius: 6px;
  padding: 0.45rem 1.25rem;
  font-size: 0.8125rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  cursor: pointer;
  transition: all 0.15s ease;
}

.meusdados-btn--salvar:hover {
  background: #0369a1;
}

.meusdados-btn--salvar svg {
  width: 14px;
  height: 14px;
}

.meusdados-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 0.38rem 0.8rem;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}

.meusdados-btn--primary {
  background: #0284c7;
  border-color: #0284c7;
  color: #ffffff;
}

@media (max-width: 700px) {
  .meusdados-resumo-card {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .meusdados-resumo-col--perfil,
  .meusdados-resumo-col--unidade {
    border-left: 0;
    border-top: 1px solid #f1f5f9;
    padding-left: 0;
    padding-top: 1rem;
  }

  .meusdados-workspace {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .meusdados-form-grid--2cols,
  .meusdados-form-grid--email-tel,
  .meusdados-form-grid--funcionais {
    grid-template-columns: 1fr;
  }
}

/* PapÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©is e privilÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©gios */
.papeis {
  display: grid;
  gap: 0.9rem;
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
}

.papeis-cabeca {
  margin: 0;
  padding: 0;
}

.papeis-cabeca h1 {
  margin: 0;
  color: var(--app-navy);
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.2;
}

.papeis-cabeca p {
  margin: 0.25rem 0 0;
  color: var(--app-text-muted);
  font-size: 0.84rem;
}

.papeis-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  width: 100%;
}

.papeis-card {
  display: grid;
  align-content: start;
  gap: 0.15rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-md);
  background: #ffffff;
  box-shadow: var(--app-shadow-sm);
}

.papeis-card-icone {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  margin-bottom: 0.15rem;
}

.papeis-card-icone--servidor { background: #e7f5ec; color: #188a42; }
.papeis-card-icone--gestor { background: #fdf1e4; color: #a4520a; }
.papeis-card-icone--admin { background: #e8eefb; color: #0d2670; }

.papeis-ico {
  width: 18px;
  height: 18px;
}

.papeis-card h2 {
  margin: 0;
  color: #0d2670;
  font-size: 0.95rem;
}

.papeis-card small {
  color: var(--app-text-muted);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.papeis-card p {
  margin: 0.2rem 0 0;
  color: #1d2b44;
  font-size: 0.76rem;
  line-height: 1.35;
}

.papeis-card .papeis-badge {
  margin-top: 0.25rem;
}

.papeis-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  padding: 0.16rem 0.55rem;
  font-size: 0.7rem;
  font-weight: 800;
}

.papeis-badge--escopo { background: #eef3fb; color: #1d4e89; }
.papeis-badge--ativo { background: #e7f5ec; color: #14693a; }
.papeis-badge--sem { background: #e9edf2; color: #5a6b84; }

.papeis-matriz,
.papeis-gestores {
  display: grid;
  gap: 0.65rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-md);
  background: #ffffff;
  box-shadow: var(--app-shadow-sm);
  width: 100%;
}

.papeis-matriz h2,
.papeis-gestores h2 {
  margin: 0;
  color: var(--app-navy);
  font-size: 0.95rem;
}

.papeis-matriz > p,
.papeis-gestores-topo p {
  margin: 0;
  color: var(--app-text-muted);
  font-size: 0.8rem;
}

.papeis-matriz-aviso {
  padding: 0.5rem 0.65rem;
  border-radius: 6px;
  background: #eaf3ff;
  color: #1d4e89;
  font-size: 0.76rem !important;
  line-height: 1.4;
}

.papeis-matriz-tabela,
.papeis-gestores-tabela {
  overflow-x: auto;
  border: 1px solid #e2e9f3;
  border-radius: 8px;
}

.papeis-matriz-tabela table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  min-width: 680px;
}

.papeis-matriz-tabela th:nth-child(1),
.papeis-matriz-tabela td:nth-child(1) {
  width: 46%;
  text-align: left;
}

.papeis-matriz-tabela th:nth-child(2),
.papeis-matriz-tabela td:nth-child(2) {
  width: 16%;
  text-align: center;
}

.papeis-matriz-tabela th:nth-child(3),
.papeis-matriz-tabela td:nth-child(3) {
  width: 19%;
  text-align: left;
}

.papeis-matriz-tabela th:nth-child(4),
.papeis-matriz-tabela td:nth-child(4) {
  width: 19%;
  text-align: left;
}

.papeis-gestores-tabela table {
  width: 100%;
  border-collapse: collapse;
  min-width: 680px;
}

.papeis-matriz-tabela th,
.papeis-matriz-tabela td,
.papeis-gestores-tabela th,
.papeis-gestores-tabela td {
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid #edf1f6;
}

.papeis-matriz-tabela thead th,
.papeis-gestores-tabela thead th {
  background: #f6f8fb;
  color: #5a6b84;
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.papeis-check {
  color: #188a42;
  font-weight: 900;
}

.papeis-sem {
  color: #b6c0cc;
}

.papeis-escopo {
  color: #1d4e89;
  font-size: 0.76rem;
  font-weight: 700;
}

.papeis-gestores-topo {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}

.papeis-btn {
  display: inline-flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 0.34rem 0.75rem;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.papeis-btn--primary { background: #0d2670; border-color: #0d2670; color: #ffffff; }
.papeis-btn--ghost { background: #ffffff; border-color: #d7e1ec; color: #0d2670; }
.papeis-btn--perigo { background: #ffffff; border-color: #f0b9b6; color: #b02a25; }

.papeis-acoes {
  display: flex;
  gap: 0.35rem;
}

.papeis-form {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 0.6rem;
  align-items: end;
  padding: 0.7rem;
  border: 1px solid #e2e9f3;
  border-radius: 8px;
  background: #f8fafc;
}

.papeis-form-campo {
  display: grid;
  gap: 0.25rem;
}

.papeis-form-campo label {
  color: #1d2b44;
  font-size: 0.72rem;
  font-weight: 700;
}

.papeis-form-campo select,
.papeis-form-campo input {
  border: 1px solid #c7d4e4;
  border-radius: 6px;
  background: #ffffff;
  font: inherit;
  font-size: 0.8rem;
  padding: 0.38rem 0.5rem;
}

.papeis-form-acoes {
  display: flex;
  gap: 0.4rem;
}

.papeis-detalhe {
  margin: 0;
  padding: 0.5rem 0.6rem;
  border-radius: 6px;
  background: #f2f7ff;
  color: #1d4e89;
  font-size: 0.78rem;
}

@media (max-width: 900px) {
  .papeis-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .papeis-form {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â lateral direita: RelatÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³rios e InformaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes (visual) */
.ferias-cons-side {
  display: grid;
  gap: 0.9rem;
  min-width: 0;
}

.ferias-cons-bloco {
  display: grid;
  gap: 0.7rem;
  padding: 0.9rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-md);
  background: #ffffff;
  box-shadow: var(--app-shadow-sm);
}

.ferias-cons-bloco h2 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: var(--app-navy);
  font-size: 1rem;
  font-weight: 750;
}

.ferias-cons-botoes {
  display: grid;
  gap: 0.5rem;
}

.ferias-cons-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 38px;
  padding: 0.3rem 0.6rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  width: 100%;
}

.ferias-cons-btn .ferias-cons-ico {
  width: 15px;
  height: 15px;
}

.ferias-cons-btn--primario {
  border: 1px solid #0f67d8;
  background: #0f67d8;
  color: #ffffff;
}

.ferias-cons-btn--secundario {
  border: 1px solid #d7e1ec;
  background: #ffffff;
  color: #0d2670;
}

.ferias-cons-btn:hover {
  border-color: #9db9d4;
  background: #eef4fb;
}

/* AÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes administrativas indisponÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­veis sem exercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio vÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡lido (estado visual). */
.ferias-cons-fechar:disabled,
.ferias-cons-btn:disabled,
.ferias-config-salvar:disabled {
  opacity: 0.55;
  cursor: default;
  pointer-events: none;
}

.ferias-cons-btn:focus-visible {
  outline: 2px solid #1f66b4;
  outline-offset: 2px;
}

.ferias-cons-info-lista {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding-left: 1.1rem;
  color: var(--app-text-muted);
  font-size: 0.8rem;
  line-height: 1.45;
}

/* ==========================================================================
   FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â SuspensÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o TemporÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡ria de MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes
   ========================================================================== */

/* Banner de aviso operacional na pÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡gina MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-suspensao-aviso {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem 0.95rem;
  margin-bottom: 0.85rem;
  border-radius: var(--app-radius-sm);
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  font-size: 0.84rem;
  font-weight: 500;
  line-height: 1.4;
}

.ferias-suspensao-aviso-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-suspensao-aviso-ico svg {
  width: 18px;
  height: 18px;
  color: #d97706;
}

.ferias-suspensao-aviso-texto {
  flex: 1;
}

/* AÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes no topo do formulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio de ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-cfg-topo-acoes {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ferias-cfg-btn-suspensao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 600;
  border-radius: var(--app-radius-sm);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  white-space: nowrap;
}

.ferias-cfg-btn-suspensao--suspender {
  background: #fff5f5;
  border: 1px solid #fca5a5;
  color: #b91c1c;
}

.ferias-cfg-btn-suspensao--suspender:hover {
  background: #fee2e2;
  border-color: #f87171;
}

.ferias-cfg-btn-suspensao--retomar {
  background: #f0fdf4;
  border: 1px solid #86efac;
  color: #15803d;
}

.ferias-cfg-btn-suspensao--retomar:hover {
  background: #dcfce7;
  border-color: #4ade80;
}

/* Modal administrativo de suspensÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (ADMIN) */
.ferias-cfg-modal-overlay--suspensao {
  position: fixed;
  inset: 0;
  background: rgba(15, 42, 67, 0.48);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1rem;
}

.ferias-cfg-modal--suspensao {
  background: var(--app-surface);
  border-radius: var(--app-radius-md);
  box-shadow: 0 16px 36px rgba(15, 42, 67, 0.2);
  width: 100%;
  max-width: 480px;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--app-border);
}

.ferias-cfg-modal-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.35rem;
}

.ferias-cfg-modal-titulo {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--app-navy);
}

.ferias-cfg-modal-fechar {
  background: none;
  border: none;
  font-size: 1.35rem;
  line-height: 1;
  color: var(--app-text-muted);
  cursor: pointer;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
}

.ferias-cfg-modal-fechar:hover {
  background: var(--surface-2);
  color: var(--app-text);
}

.ferias-cfg-modal-desc {
  margin: 0 0 1rem 0;
  font-size: 0.8rem;
  color: var(--app-text-muted);
}

.ferias-cfg-modal-lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.ferias-cfg-modal-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
}

.ferias-cfg-modal-item.is-disabled {
  opacity: 0.6;
  background: var(--surface-2);
}

.ferias-cfg-modal-label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--app-text);
}

.ferias-cfg-modal-item.is-disabled .ferias-cfg-modal-label {
  cursor: not-allowed;
}

.ferias-cfg-badge-status {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
}

.ferias-cfg-badge-status--inexistente {
  background: #f1f5f9;
  color: #64748b;
}

.ferias-cfg-badge-status--inativo {
  background: #fef2f2;
  color: #991b1b;
}

.ferias-cfg-badge-status--encerrado {
  background: #f1f5f9;
  color: #475569;
}

.ferias-cfg-badge-status--suspenso {
  background: #fff1f2;
  color: #be123c;
  border: 1px solid #fecdd3;
}

.ferias-cfg-badge-status--ativo {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.ferias-cfg-modal-rodape {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid var(--app-border);
  padding-top: 0.85rem;
}

/* ==========================================================================
   FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Top Cards Contexto / Rodadas (Mockup Oficial)
   ========================================================================== */

.ferias-cards {
  display: grid;
  grid-template-columns: 140px repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin-bottom: 1.1rem;
  align-items: stretch;
}

.ferias-card {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

/* Coluna de Contexto: 2 cards independentes empilhados verticalmente */
.ferias-cards-col-contexto {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 140px;
  flex: 0 0 140px;
  min-width: 0;
}

.ferias-card--resumo {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 0.45rem 0.8rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  min-width: 0;
}

.ferias-card-resumo-kicker {
  font-size: 0.63rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.15;
  white-space: nowrap;
}

.ferias-card-resumo-val {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.15;
  margin-top: 0.15rem;
  white-space: nowrap;
}

/* Cards das Rodadas ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Largura estÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡vel e padronizada no cenÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio de 3 slots */
.ferias-card-rodada {
  display: flex;
  flex-direction: column;
  padding: 0.75rem 0.85rem;
  gap: 0.65rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  min-width: 0;
  width: 100%;
  max-width: 480px;
}

/* CÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©lula de data clicÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡vel e destaque da data ativa na tabela */
.ferias-plantoes-data {
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.ferias-plantoes-data:hover {
  background-color: #eff6ff;
  color: #1d4ed8;
}

.ferias-plantoes-table tr.is-data-ativa,
.ferias-plantoes-table tr.is-data-ativa .ferias-plantoes-data {
  background-color: #e0f2fe !important;
  color: #0369a1 !important;
  font-weight: 800;
}

/* Popover contextual de Nova MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (Clone do bloco fixo) */
.ferias-popover-contextual {
  position: fixed;
  z-index: 10000;
  width: 340px;
  max-width: calc(100vw - 32px);
  background: #ffffff;
  border: 1px solid #d9e4ef;
  border-radius: 7px;
  box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.18), 0 8px 10px -6px rgba(15, 23, 42, 0.12);
  padding: 12px 14px;
  box-sizing: border-box;
  animation: feriasPopoverFadeIn 0.15s ease-out;
}

@keyframes feriasPopoverFadeIn {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(-4px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.ferias-popover-contextual-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  cursor: grab;
  user-select: none;
}

.ferias-popover-contextual-header:active {
  cursor: grabbing;
}

.ferias-popover-contextual-titulo {
  font-size: 0.82rem;
  font-weight: 800;
  color: #0d2670;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.ferias-popover-contextual-fechar {
  background: transparent;
  border: none;
  color: #94a3b8;
  font-size: 1rem;
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 4px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease, background 0.15s ease;
}

.ferias-popover-contextual-fechar:hover {
  color: #0f172a;
  background: #f1f5f9;
}

#popover-adicionar-periodo-container {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  overflow: visible;
}

.ferias-popover-periodo {
  position: fixed;
  z-index: 9999;
  width: 380px;
  max-width: calc(100vw - 32px);
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 12px 30px -4px rgba(15, 23, 42, 0.25), 0 8px 10px -6px rgba(15, 23, 42, 0.15);
  padding: 12px 14px;
  box-sizing: border-box;
  animation: feriasPopoverFadeIn 0.15s ease-out;
}

.ferias-btn-abrir-popover-periodo {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  padding: 0.55rem 1rem !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
  box-sizing: border-box !important;
}

.ferias-btn-abrir-popover-periodo:not(:disabled) {
  background-color: #2563eb !important;
  border: 1px solid #1d4ed8 !important;
  color: #ffffff !important;
  cursor: pointer !important;
}

.ferias-btn-abrir-popover-periodo:not(:disabled):hover {
  background-color: #1d4ed8 !important;
  border-color: #1e40af !important;
}

.ferias-btn-abrir-popover-periodo:disabled {
  background-color: #e2e8f0 !important;
  border: 1px solid #cbd5e1 !important;
  color: #94a3b8 !important;
  cursor: not-allowed !important;
  opacity: 0.75 !important;
  box-shadow: none !important;
}

.ferias-toggle-saida-btn {
  color: #dc2626 !important;
  transition: all 0.15s ease;
}

.ferias-toggle-saida-btn:hover {
  background-color: #fee2e2 !important;
  color: #b91c1c !important;
}

.ferias-popover-periodo .ferias-nova-marcacao {
  display: grid;
  gap: 0.6rem;
}

.ferias-card-rodada-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 0.5rem;
}

.ferias-card-rodada-ident {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.ferias-rodada-circulo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 0.75rem;
  font-weight: 800;
  color: #ffffff;
  flex-shrink: 0;
}

.ferias-rodada-circulo--r1 { background: #10b981; }
.ferias-rodada-circulo--r2 { background: #ef4444; }
.ferias-rodada-circulo--r3 { background: #2563eb; }

.ferias-card-rodada-titulo {
  font-size: 0.82rem;
  font-weight: 800;
  color: #0f172a;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Status Pill / Badge */
.ferias-rodada-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.55rem;
  border-radius: 9999px;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ferias-rodada-status-badge--em-andamento {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.ferias-rodada-status-badge--encerrada {
  background: #f8fafc;
  color: #64748b;
  border: 1px solid #e2e8f0;
}

.ferias-rodada-status-badge--aguardando {
  background: #f8fafc;
  color: #64748b;
  border: 1px solid #e2e8f0;
}

.ferias-rodada-status-ico {
  flex-shrink: 0;
}

/* Fases da Rodada */
.ferias-card-rodada-fases {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ferias-card-rodada-fase {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.4rem 0.55rem;
  background: #f8fafc;
  border: 1px solid #f1f5f9;
  border-radius: 6px;
}

.ferias-card-fase-ico {
  color: #64748b;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.ferias-card-fase-detalhe {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.ferias-card-fase-nome {
  font-size: 0.72rem;
  font-weight: 700;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ferias-card-fase-datas {
  font-size: 0.68rem;
  color: #64748b;
  font-weight: 500;
  white-space: nowrap;
}

.ferias-card-fase-estado {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  font-weight: 600;
  white-space: nowrap;
}

.ferias-card-fase-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

.ferias-card-fase-estado--em-andamento {
  color: var(--status-andamento-cor);
}
.ferias-card-fase-estado--em-andamento .ferias-card-fase-dot {
  background: var(--status-andamento-cor);
}

.ferias-card-fase-estado--encerrada {
  color: var(--status-encerrado-cor);
}
.ferias-card-fase-estado--encerrada .ferias-card-fase-dot {
  background: var(--status-encerrado-cor);
}

.ferias-card-fase-estado--aguardando {
  color: var(--status-aguardando-cor);
}
.ferias-card-fase-estado--aguardando .ferias-card-fase-dot {
  background: var(--status-aguardando-cor);
}

@media (max-width: 900px) {
  .ferias-cards {
    grid-template-columns: 140px repeat(auto-fit, minmax(220px, 1fr));
  }
}

@media (max-width: 640px) {
  .ferias-cards,
  .pendencias-cards-topo {
    display: flex;
    flex-direction: column;
  }
  .ferias-cards-col-contexto {
    width: 100%;
    flex: 1 1 100%;
  }
  .ferias-card-rodada {
    max-width: 100%;
    flex: 1 1 100%;
    min-width: 0;
  }
}

/* ==========================================================================
   FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Modal de ConfirmaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de PropagaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de Datas
   ========================================================================== */

.ferias-cfg-modal-overlay--propagar {
  position: fixed;
  inset: 0;
  background: rgba(15, 42, 67, 0.48);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1rem;
}

.ferias-cfg-modal--propagar {
  background: var(--app-surface);
  border-radius: var(--app-radius-md);
  box-shadow: 0 16px 36px rgba(15, 42, 67, 0.2);
  width: 100%;
  max-width: 520px;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--app-border);
}

.ferias-cfg-propagar-impacto {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-bottom: 1.25rem;
}

.ferias-cfg-propagar-deslocamento {
  font-size: 0.82rem;
  font-weight: 700;
  color: #0f67d8;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  padding: 0.4rem 0.65rem;
  border-radius: 6px;
}

.ferias-cfg-propagar-lista {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-height: 220px;
  overflow-y: auto;
}

.ferias-cfg-propagar-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 0.78rem;
}

.ferias-cfg-propagar-etapa {
  font-weight: 700;
  color: #1e293b;
  min-width: 140px;
}

.ferias-cfg-propagar-datas {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.74rem;
}

.ferias-cfg-propagar-anterior {
  color: #94a3b8;
  text-decoration: line-through;
}

.ferias-cfg-propagar-seta {
  color: #64748b;
  font-weight: 800;
}

.ferias-cfg-propagar-nova {
  color: #0f172a;
  font-weight: 700;
}

/* ==========================================================================
   PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Identidade CromÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡tica e CÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­rculos Padronizados (AppDelta)
   ALFA: Amarelo | BRAVO: Vermelho | CHARLIE: Azul | DELTA: Verde
   ========================================================================== */

.plantao-circulo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 800;
  color: #ffffff;
  flex-shrink: 0;
  line-height: 1;
}

.plantao-circulo--sm {
  width: 1.35rem;
  height: 1.35rem;
  font-size: 0.72rem;
}

.plantao-circulo--md {
  width: 1.8rem;
  height: 1.8rem;
  font-size: 0.85rem;
}

.plantao-circulo--lg {
  width: 2.2rem;
  height: 2.2rem;
  font-size: 1rem;
}

.plantao-circulo--alfa { background: #eab308; }
.plantao-circulo--bravo { background: #ef4444; }
.plantao-circulo--charlie { background: #2563eb; }
.plantao-circulo--delta { background: #10b981; }
.plantao-circulo--neutro { background: #64748b; }

/* CabeÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§alho de Contexto Compartilhado (Ano-ExercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio e PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o) */
.app-header-contexto {
  display: inline-flex;
  align-items: center;
  gap: 1.25rem;
  padding: 0.6rem 1.15rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

.app-header-contexto-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.app-header-contexto-kicker {
  font-size: 0.64rem;
  font-weight: 800;
  color: #64748b;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.app-header-contexto-valor-wrap {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.app-header-contexto-val {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
}

.app-header-contexto-ico {
  color: #2563eb;
  display: inline-flex;
  align-items: center;
}

.app-header-contexto-ico svg {
  width: 17px;
  height: 17px;
}

.app-header-contexto-divisor {
  width: 1px;
  height: 32px;
  background: #e2e8f0;
}

.app-card-contexto-header {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.app-card-contexto-ico {
  color: #2563eb;
  display: inline-flex;
  align-items: center;
}

.app-card-contexto-ico svg {
  width: 14px;
  height: 14px;
}

.ferias-card-resumo-valor-wrap {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.2rem;
}

.ferias-card-resumo-valor-wrap .ferias-card-resumo-val {
  margin-top: 0;
}

.ferias-card-resumo-ico {
  color: #2563eb;
  display: inline-flex;
  align-items: center;
}

.ferias-card-resumo-ico svg {
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   Rota PendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias (Fiel ao mockup-pendencias.png)
   ========================================================================== */

.ferias-pendencias-page {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
}

.pendencias-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.pendencias-page-titulo-bloco {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.pendencias-page-icone-alerta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #bfdbfe;
  flex-shrink: 0;
}

.pendencias-page-icone-alerta svg {
  width: 24px;
  height: 24px;
}

.pendencias-page-titulo-bloco h1 {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.2;
}

.pendencias-page-titulo-bloco p {
  margin: 0.25rem 0 0;
  font-size: 0.84rem;
  color: #64748b;
}

/* Seletores de Rodadas no topo de PendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias: 3 colunas compactas */
.pendencias-seletores-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.pendencias-card-seletor {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem 1.1rem;
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}

.pendencias-card-seletor:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}

.pendencias-card-seletor.is-active {
  box-shadow: 0 3px 8px rgba(15, 23, 42, 0.08);
}

.pendencias-card-seletor--r1.is-active {
  border-color: #10b981;
  background: #f0fdf4;
}

.pendencias-card-seletor--r2.is-active {
  border-color: #ef4444;
  background: #fef2f2;
}

.pendencias-card-seletor--r3.is-active {
  border-color: #2563eb;
  background: #eff6ff;
}

.pendencias-card-seletor-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.pendencias-card-seletor-ident {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.pendencias-card-seletor-titulo {
  font-size: 0.88rem;
  font-weight: 800;
  color: #0f172a;
}

.pendencias-card-seletor.is-disabled,
.pendencias-card-seletor:disabled {
  opacity: 0.65;
  cursor: not-allowed;
  background: #f8fafc;
  border-color: #e2e8f0;
}

.pendencias-card-seletor.is-disabled:hover,
.pendencias-card-seletor:disabled:hover {
  border-color: #e2e8f0;
  background: #f8fafc;
}

.pendencias-seletor-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0.5rem;
  border-radius: 9999px;
  background: #dcfce7;
  color: #15803d;
  font-size: 0.68rem;
  font-weight: 700;
  border: 1px solid #bbf7d0;
}

.pendencias-seletor-status-badge--inativa {
  background: #f1f5f9;
  color: #64748b;
  border-color: #cbd5e1;
}

.pendencias-card-seletor-datas-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding-top: 0.4rem;
  border-top: 1px solid #eef2f6;
}

.pendencias-seletor-data-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.76rem;
}

.pendencias-seletor-data-rotulo {
  color: #64748b;
  font-weight: 500;
}

.pendencias-seletor-data-valor {
  color: #1e293b;
  font-weight: 700;
}

.pendencias-rodada-circulo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-size: 0.8rem;
  font-weight: 800;
  color: #ffffff;
  flex-shrink: 0;
}

.pendencias-rodada-circulo--r1 { background: #10b981; }
.pendencias-rodada-circulo--r2 { background: #ef4444; }
.pendencias-rodada-circulo--r3 { background: #2563eb; }

.pendencias-card-seletor-info {
  display: flex;
  flex-direction: column;
}

.pendencias-card-seletor-titulo {
  font-size: 0.82rem;
  font-weight: 800;
  color: #0f172a;
}

.pendencias-card-seletor-fase {
  font-size: 0.72rem;
  color: #64748b;
  margin-top: 0.1rem;
}

.pendencias-card-seletor-datas {
  font-size: 0.7rem;
  color: #94a3b8;
  font-weight: 500;
}

/* Card Rodada em Andamento */
.pendencias-card-andamento {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.75rem 1rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
}

.pendencias-card-andamento-topo {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: #15803d;
  font-size: 0.82rem;
  font-weight: 750;
}

.pendencias-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #16a34a;
  flex-shrink: 0;
}

.pendencias-card-andamento-detalhes {
  display: flex;
  flex-direction: column;
  font-size: 0.72rem;
  color: #166534;
}

/* Blocos de Tabelas em PendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias */
.pendencias-conteudo-dinamico {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.pendencias-bloco {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
  overflow: hidden;
}

.pendencias-bloco-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  border-bottom: 1px solid #f1f5f9;
  flex-wrap: wrap;
}

.pendencias-bloco-ident {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.pendencias-bloco-ico-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  flex-shrink: 0;
}

.pendencias-bloco-ico-wrap--amber {
  background: #fef3c7;
  color: #d97706;
}

.pendencias-bloco-ico-wrap--blue {
  background: #eff6ff;
  color: #2563eb;
}

.pendencias-bloco-ico-wrap svg {
  width: 20px;
  height: 20px;
}

.pendencias-bloco-ident h2 {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  color: #0f172a;
}

.pendencias-bloco-ident p {
  margin: 0.2rem 0 0;
  font-size: 0.78rem;
  color: #64748b;
}

.pendencias-indicadores {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.pendencias-indicador {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 0.85rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  min-width: 100px;
}

.pendencias-indicador span {
  font-size: 0.65rem;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.pendencias-indicador strong {
  font-size: 1.15rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
  margin-top: 0.1rem;
}

/* Tabelas */
.pendencias-tabela-container {
  overflow-x: auto;
  width: 100%;
}

.pendencias-tabela {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.pendencias-tabela th {
  background: #f8fafc;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.65rem 1.1rem;
  border-bottom: 1px solid #e2e8f0;
}

.pendencias-tabela td {
  padding: 0.75rem 1.1rem;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.82rem;
  color: #1e293b;
  vertical-align: middle;
}

.pendencias-tabela tr:last-child td {
  border-bottom: 0;
}

.pendencias-td-data {
  white-space: nowrap;
  font-weight: 700;
  color: #0f172a;
}

.pendencias-chips-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.pendencias-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 9999px;
  font-size: 0.74rem;
  font-weight: 600;
  white-space: nowrap;
}

.pendencias-chip[draggable="true"] {
  cursor: grab;
  user-select: none;
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease, background-color 0.12s ease;
}

.pendencias-chip[draggable="true"]:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.pendencias-chip[draggable="true"]:active {
  cursor: grabbing;
}

.pendencias-chip.is-selected {
  outline: 2px solid #2563eb;
  outline-offset: 1px;
  background-color: #dbeafe !important;
  color: #1e40af !important;
  border-color: #93c5fd !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.pendencias-chip.is-dragging {
  opacity: 0.45;
  transform: scale(0.95);
}

.pendencias-dropzone {
  min-height: 34px;
  min-width: 140px;
  padding: 0.25rem 0.4rem;
  border-radius: 8px;
  border: 1px dashed transparent;
  transition: background-color 0.15s ease, border-color 0.15s ease;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.pendencias-dropzone:empty::before,
.pendencias-dropzone-vazia::before {
  content: "—";
  color: #94a3b8;
  font-size: 0.78rem;
  font-style: italic;
  padding-left: 0.2rem;
}

.pendencias-dropzone.is-dragover {
  background-color: #eff6ff !important;
  border-color: #3b82f6 !important;
  border-style: dashed;
}

.pendencias-dropzone--excedentes.is-dragover {
  background-color: #fef2f2 !important;
  border-color: #ef4444 !important;
}

.pendencias-chip--servidor {
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #e2e8f0;
}

.pendencias-chip--mais {
  background: #f1f5f9;
  color: #64748b;
  font-weight: 700;
}

.pendencias-chip--excedente {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fecaca;
  font-weight: 700;
}

.pendencias-chip--pendente {
  background: #f8fafc;
  color: #64748b;
  border: 1px dashed #cbd5e1;
  font-weight: 600;
  font-size: 0.74rem;
}

.pendencias-chip--tipo {
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 0.76rem;
  font-weight: 600;
}

.pendencias-total-limite {
  font-weight: 800;
  font-size: 0.84rem;
}

.pendencias-total-limite--excesso {
  color: #dc2626;
}

.pendencias-total-limite--ok {
  color: #16a34a;
}

/* Accordion de Justificativa por OcorrÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia */
.pendencias-tr-observacao {
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.pendencias-observacao-painel {
  padding: 0.85rem 1.1rem 1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pendencias-observacao-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.pendencias-observacao-label {
  font-size: 0.76rem;
  font-weight: 700;
  color: #475569;
}

.pendencias-observacao-textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.8rem;
  color: #0f172a;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  min-height: 60px;
  resize: vertical;
  font-family: inherit;
  box-sizing: border-box;
}

.pendencias-observacao-textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.pendencias-observacao-acoes {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
}

.pendencias-btn-salvar-obs {
  padding: 0.35rem 0.85rem;
  font-size: 0.76rem;
  font-weight: 700;
  color: #ffffff;
  background: #2563eb;
  border: 1px solid #1d4ed8;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}

.pendencias-btn-salvar-obs:hover {
  background: #1d4ed8;
}

.pendencias-obs-feedback {
  font-size: 0.74rem;
  font-weight: 600;
  color: #16a34a;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  transition: opacity 0.2s;
}

.pendencias-btn-toggle-obs {
  background: transparent;
  border: 0;
  padding: 0.2rem 0.4rem;
  font-size: 0.74rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.2rem;
}

.pendencias-btn-toggle-obs:hover {
  color: #2563eb;
  background: #f1f5f9;
}

.pendencias-btn-toggle-obs svg {
  width: 14px;
  height: 14px;
  transition: transform 0.2s;
}

.pendencias-btn-toggle-obs.is-expanded svg {
  transform: rotate(180deg);
}

.pendencias-td-interessado {
  display: flex;
  flex-direction: column;
}

.pendencias-td-interessado strong {
  color: #0f172a;
  font-weight: 700;
}

.pendencias-td-interessado small {
  color: #64748b;
  font-size: 0.72rem;
}

.pendencias-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.65rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
}

/* Padrão único de status (rotas Marcação e Exceções) para as badges de detalhe */
.pendencias-status-badge--pendente,
.pendencias-status-badge--aguardando,
.pendencias-status-badge--analise,
.pendencias-status-badge--em-analise {
  background: var(--status-aguardando-bg);
  color: var(--status-aguardando-cor);
}

.pendencias-status-badge--autorizada,
.pendencias-status-badge--liberada,
.pendencias-status-badge--ativa,
.pendencias-status-badge--ativo,
.pendencias-status-badge--confirmada,
.pendencias-status-badge--confirmado,
.pendencias-status-badge--executada,
.pendencias-status-badge--realizado,
.pendencias-status-badge--publicado,
.pendencias-status-badge--em-andamento {
  background: var(--status-andamento-bg);
  color: var(--status-andamento-cor);
}

.pendencias-status-badge--cancelado,
.pendencias-status-badge--cancelada,
.pendencias-status-badge--revogada,
.pendencias-status-badge--expirado,
.pendencias-status-badge--expirada,
.pendencias-status-badge--encerrado,
.pendencias-status-badge--encerrada,
.pendencias-status-badge--concluido,
.pendencias-status-badge--concluida,
.pendencias-status-badge--bloqueado,
.pendencias-status-badge--bloqueada {
  background: var(--status-encerrado-bg);
  color: var(--status-encerrado-cor);
}

.pendencias-acoes-wrap {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.pendencias-btn-acao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #ffffff;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s;
}

.pendencias-btn-acao:hover {
  background: #f8fafc;
  color: #0f172a;
  border-color: #cbd5e1;
}

.pendencias-btn-acao svg {
  width: 16px;
  height: 16px;
}

.pendencias-btn-ajustar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.75rem;
  font-size: 0.76rem;
  font-weight: 700;
  color: #ffffff;
  background: #2563eb;
  border: 1px solid #1d4ed8;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  white-space: nowrap;
}

.pendencias-btn-ajustar:hover:not(:disabled) {
  background: #1d4ed8;
  border-color: #1e40af;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.pendencias-btn-ajustar--disabled,
.pendencias-btn-ajustar:disabled {
  background: #f1f5f9;
  color: #94a3b8;
  border-color: #e2e8f0;
  cursor: not-allowed;
  box-shadow: none;
}

/* Modal de Ajuste de Excedentes */
.pendencias-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1rem;
}

.pendencias-modal-card {
  background: #ffffff;
  border-radius: 12px;
  width: 100%;
  max-width: 520px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border: 1px solid #e2e8f0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: pendenciasFadeIn 0.15s ease-out;
}

@keyframes pendenciasFadeIn {
  from { opacity: 0; transform: scale(0.97); }
  to { opacity: 1; transform: scale(1); }
}

.pendencias-modal-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid #f1f5f9;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.pendencias-modal-header h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.25rem 0;
}

.pendencias-modal-header p {
  font-size: 0.8rem;
  color: #64748b;
  margin: 0;
}

.pendencias-modal-fechar {
  background: transparent;
  border: none;
  font-size: 1.25rem;
  color: #94a3b8;
  cursor: pointer;
  padding: 0.25rem;
  line-height: 1;
  border-radius: 4px;
}

.pendencias-modal-fechar:hover {
  color: #0f172a;
  background: #f1f5f9;
}

.pendencias-modal-body {
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-height: 60vh;
  overflow-y: auto;
}

.pendencias-modal-info-box {
  background: #eff6ff;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  font-size: 0.8rem;
  color: #1e40af;
  line-height: 1.4;
}

.pendencias-modal-lista-servidores {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pendencias-modal-servidor-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.65rem 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.15s;
}

.pendencias-modal-servidor-item:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
}

.pendencias-modal-servidor-item.is-selected {
  background: #fef2f2;
  border-color: #fca5a5;
}

.pendencias-modal-servidor-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.pendencias-modal-servidor-left input[type="checkbox"],
.pendencias-modal-servidor-left input[type="radio"] {
  width: 16px;
  height: 16px;
  accent-color: #dc2626;
  cursor: pointer;
}

.pendencias-modal-servidor-detalhes {
  display: flex;
  flex-direction: column;
}

.pendencias-modal-servidor-nome {
  font-size: 0.84rem;
  font-weight: 700;
  color: #0f172a;
}

.pendencias-modal-servidor-sub {
  font-size: 0.72rem;
  color: #64748b;
}

.pendencias-modal-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid #f1f5f9;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.pendencias-modal-status-selecao {
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
}

.pendencias-modal-botoes {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.pendencias-modal-btn-cancelar {
  padding: 0.45rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #475569;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  cursor: pointer;
}

.pendencias-modal-btn-cancelar:hover {
  background: #f1f5f9;
}

.pendencias-modal-btn-confirmar {
  padding: 0.45rem 1rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #ffffff;
  background: #dc2626;
  border: 1px solid #b91c1c;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}

.pendencias-modal-btn-confirmar:hover:not(:disabled) {
  background: #b91c1c;
}

.pendencias-modal-btn-confirmar:disabled {
  background: #cbd5e1;
  border-color: #94a3b8;
  color: #64748b;
  cursor: not-allowed;
}

.pendencias-modal-btn-salvar-excecao {
  padding: 0.45rem 1rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #ffffff;
  background: #2563eb;
  border: 1px solid #1d4ed8;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}

.pendencias-modal-btn-salvar-excecao:hover:not(:disabled) {
  background: #1d4ed8;
}

.pendencias-modal-btn-salvar-excecao:disabled {
  background: #cbd5e1;
  border-color: #94a3b8;
  color: #64748b;
  cursor: not-allowed;
}

.pendencias-btn-add-excecao {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #2563eb;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  white-space: nowrap;
}

.pendencias-btn-add-excecao:hover {
  background: #dbeafe;
  color: #1d4ed8;
  border-color: #93c5fd;
}

.pendencias-form-grupo {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.pendencias-form-label {
  font-size: 0.76rem;
  font-weight: 700;
  color: #334155;
}

.pendencias-form-input,
.pendencias-form-select,
.pendencias-form-textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.82rem;
  color: #0f172a;
  background: #ffffff;
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color 0.15s;
}

.pendencias-form-input:focus,
.pendencias-form-select:focus,
.pendencias-form-textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.pendencias-form-textarea {
  min-height: 80px;
  resize: vertical;
}

.pendencias-form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

/* RodapÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â© com InformaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes de AtualizaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.pendencias-rodape-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.5rem 0.25rem;
  color: #64748b;
  font-size: 0.76rem;
  flex-wrap: wrap;
}

.pendencias-rodape-aviso {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.pendencias-rodape-aviso svg {
  width: 16px;
  height: 16px;
  color: #2563eb;
}

.pendencias-rodape-atualizacao {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.pendencias-btn-recarregar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  color: #64748b;
  cursor: pointer;
  padding: 0.15rem;
}

.pendencias-btn-recarregar:hover {
  color: #0f172a;
}

.pendencias-btn-recarregar svg {
  width: 15px;
  height: 15px;
}

/* ==========================================================================
   Responsividade Estrutural Padronizada do AppDelta
   ========================================================================== */

.app-main {
  width: 100%;
  max-width: 1560px;
  margin: 0 auto;
  padding: 1.25rem clamp(1rem, 2.5vw, 2.25rem) 2.5rem;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  .ferias-cons-layout {
    grid-template-columns: 1fr;
  }
  .ferias-cons-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .pendencias-seletores-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .ferias-cons-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pendencias-seletores-grid {
    grid-template-columns: 1fr;
  }
  .pendencias-page-header {
    flex-direction: column;
    align-items: stretch;
  }
  .app-header-contexto {
    margin-left: 0;
    justify-content: space-between;
  }
}

/* ==========================================================================
   Rota AdministraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de UsuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rios ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Layout Fiel ao mockup-usuarios-v2.png
   ========================================================================== */

.usuarios-rota {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  box-sizing: border-box;
}

.usuarios-cabeca {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.1rem;
  flex-wrap: wrap;
}

.usuarios-cabeca-titulos h1 {
  margin: 0 0 0.2rem;
  color: #0f172a;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.usuarios-cabeca-titulos p {
  margin: 0;
  color: #64748b;
  font-size: 0.88rem;
}

/* BotÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes da rota UsuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rios */
.usuarios-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.35rem 0.75rem;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s ease;
  line-height: 1.25;
  white-space: nowrap;
}

.usuarios-btn--ghost,
.usuarios-btn--atualizar {
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #334155;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.usuarios-btn--ghost:hover,
.usuarios-btn--atualizar:hover {
  background: #f8fafc;
  color: #0f172a;
  border-color: #94a3b8;
}

.usuarios-ico {
  width: 15px;
  height: 15px;
}

.usuarios-ico-acao {
  width: 13px;
  height: 13px;
}

/* AÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes dependentes de status */
.usuarios-btn--aceitar {
  background: #15803d;
  color: #ffffff;
  border-color: #166534;
  font-weight: 700;
}

.usuarios-btn--aceitar:hover {
  background: #166534;
}

.usuarios-btn--rejeitar {
  background: #ffffff;
  color: #dc2626;
  border-color: #fca5a5;
  font-weight: 600;
}

.usuarios-btn--rejeitar:hover {
  background: #fee2e2;
  border-color: #f87171;
}

.usuarios-btn--inativar {
  background: #ffffff;
  color: #475569;
  border-color: #cbd5e1;
  font-weight: 600;
}

.usuarios-btn--inativar:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.usuarios-btn--reativar,
.usuarios-btn--ativar {
  background: #2563eb;
  color: #ffffff;
  border-color: #1d4ed8;
  font-weight: 650;
}

.usuarios-btn--reativar:hover,
.usuarios-btn--ativar:hover {
  background: #1d4ed8;
}

/* Layout 2 Colunas Desktop */
.usuarios-layout-duplo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 1.25rem;
  align-items: start;
}

.usuarios-col-principal {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.usuarios-col-painel {
  min-width: 0;
}

/* Toolbar com Filtros de Status, PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o e Busca */
.usuarios-toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.85rem 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.usuarios-filtros-linha {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.usuarios-filtros-status {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.usuarios-filtro-status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.32rem 0.65rem;
  border-radius: 9999px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.usuarios-filtro-status:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.usuarios-filtro-contador {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e2e8f0;
  color: #334155;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.05rem 0.4rem;
  border-radius: 9999px;
  min-width: 1rem;
}

.usuarios-filtro-status.is-active {
  background: #0f2a43;
  border-color: #0f2a43;
  color: #ffffff;
}

.usuarios-filtro-status.is-active .usuarios-filtro-contador {
  background: rgba(255, 255, 255, 0.25);
  color: #ffffff;
}

.usuarios-filtro-plantao {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #475569;
}

.usuarios-filtro-plantao select {
  padding: 0.32rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  font-size: 0.8rem;
  color: #1e293b;
  cursor: pointer;
}

.usuarios-busca-linha {
  width: 100%;
}

.usuarios-busca-input-wrap {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
}

.usuarios-ico-busca {
  position: absolute;
  left: 0.75rem;
  width: 16px;
  height: 16px;
  color: #94a3b8;
  pointer-events: none;
}

.usuarios-busca-input-wrap input {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.84rem;
  background: #ffffff;
  color: #0f172a;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  box-sizing: border-box;
}

.usuarios-busca-input-wrap input:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

/* Tabela de UsuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rios */
.usuarios-tabela-container {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.usuarios-tabela {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  text-align: left;
}

.usuarios-tabela th {
  background: #f8fafc;
  color: #475569;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid #e2e8f0;
  border-right: 1px solid #f1f5f9;
  white-space: nowrap;
}

.usuarios-tabela th:last-child {
  border-right: none;
}

.usuarios-tabela td {
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid #f1f5f9;
  border-right: 1px solid #f8fafc;
  color: #1e293b;
  vertical-align: middle;
}

.usuarios-tabela td:last-child {
  border-right: none;
}

.usuarios-linha {
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.usuarios-linha:hover {
  background: #f8fafc;
}

.usuarios-linha.is-selected {
  background: #eff6ff !important;
  box-shadow: inset 3px 0 0 #2563eb;
}

.usuarios-cel-usuario {
  min-width: 160px;
}

.usuarios-usuario-alvo {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.usuarios-usuario-info {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.usuarios-usuario-nome {
  font-size: 0.82rem;
  color: #0f172a;
  font-weight: 700;
}

.usuarios-usuario-papel {
  font-size: 0.7rem;
  color: #64748b;
}

.usuarios-cel-matricula {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.usuarios-cel-plantao {
  font-weight: 600;
  white-space: nowrap;
}

.usuarios-cel-solicitado {
  font-size: 0.76rem;
  color: #64748b;
  white-space: nowrap;
}

.usuarios-cel-acoes {
  white-space: nowrap;
}

.usuarios-row-acoes {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.usuarios-vazio {
  text-align: center;
  color: #64748b;
  padding: 2rem 1rem;
  font-style: italic;
}

/* Avatar */
.usuarios-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 700;
  color: #ffffff;
  flex: none;
  background: #2563eb;
}

.usuarios-avatar--mini {
  width: 32px;
  height: 32px;
  font-size: 0.78rem;
}

.usuarios-avatar--grande {
  width: 48px;
  height: 48px;
  font-size: 1.1rem;
}

/* Status Badges */
.usuarios-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: capitalize;
  white-space: nowrap;
}

.usuarios-badge--pendente {
  background: #fef3c7;
  color: #b45309;
}

.usuarios-badge--ativo {
  background: #dcfce7;
  color: #15803d;
}

.usuarios-badge--inativo {
  background: #f1f5f9;
  color: #64748b;
}

.usuarios-badge--rejeitado {
  background: #fee2e2;
  color: #b91c1c;
}

/* PaginaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.usuarios-paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0.25rem;
  font-size: 0.78rem;
  color: #64748b;
  flex-wrap: wrap;
}

.usuarios-paginacao-tamanho select {
  padding: 0.25rem 0.45rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  background: #ffffff;
  font-size: 0.76rem;
  margin-left: 0.35rem;
}

.usuarios-paginacao-controles {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.usuarios-btn--pag {
  padding: 0.25rem 0.55rem;
  font-size: 0.74rem;
}

.usuarios-paginacao-pagina {
  font-weight: 600;
  color: #1e293b;
}

/* ==========================================================================
   Painel Permanente: Dados do UsuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio (Coluna Direita)
   ========================================================================== */

.usuarios-painel-dados {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.usuarios-painel-topo {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #f1f5f9;
}

.usuarios-painel-topo h2 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
}

.usuarios-painel-perfil {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem;
  border-bottom: 1px solid #f1f5f9;
  background: #f8fafc;
}

.usuarios-painel-perfil-info {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.usuarios-painel-nome {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
}

.usuarios-painel-papel {
  font-size: 0.74rem;
  font-weight: 600;
  color: #2563eb;
}

.usuarios-painel-matricula {
  font-size: 0.74rem;
  color: #64748b;
}

.usuarios-painel-tabs {
  display: flex;
  border-bottom: 1px solid #e2e8f0;
  background: #ffffff;
}

.usuarios-painel-tab {
  flex: 1;
  padding: 0.6rem 0.5rem;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-size: 0.8rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  text-align: center;
  transition: all 0.15s ease;
}

.usuarios-painel-tab:hover {
  color: #0f172a;
  background: #f8fafc;
}

.usuarios-painel-tab.is-active {
  color: #2563eb;
  border-bottom-color: #2563eb;
  font-weight: 700;
}

.usuarios-painel-scroll {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-height: calc(100vh - 220px);
  overflow-y: auto;
}

.usuarios-painel-cards {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.usuarios-painel-card {
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #ffffff;
  padding: 0.75rem 0.85rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}

.usuarios-painel-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.6rem;
  border-bottom: 1px solid #f8fafc;
  padding-bottom: 0.4rem;
}

.usuarios-painel-card-titulo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.usuarios-card-ico {
  width: 15px;
  height: 15px;
  color: #2563eb;
}

.usuarios-painel-card-titulo h3 {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  color: #0f2a43;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.usuarios-btn-editar {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border: none;
  background: transparent;
  color: #2563eb;
  font-size: 0.72rem;
  font-weight: 650;
  cursor: pointer;
  padding: 0.15rem 0.35rem;
  border-radius: 4px;
  transition: all 0.15s ease;
}

.usuarios-btn-editar:hover {
  background: #eff6ff;
}

.usuarios-ico-editar {
  width: 13px;
  height: 13px;
}

.usuarios-def-grid {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.usuarios-def-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.76rem;
}

.usuarios-def-label {
  color: #64748b;
  font-weight: 500;
  flex: 1;
}

.usuarios-def-valor {
  color: #0f172a;
  font-weight: 600;
  text-align: right;
  word-break: break-word;
}

.usuarios-plantao-val-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.usuarios-painel-aviso {
  color: #64748b;
  font-size: 0.8rem;
  font-style: italic;
  margin: 0;
  padding: 0.5rem 0;
}

/* Timeline HistÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³rico */
.usuarios-timeline {
  list-style: none;
  margin: 0;
  padding: 0.5rem 0 0 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  border-left: 2px solid #e2e8f0;
}

.usuarios-timeline-item {
  position: relative;
  padding-left: 0.85rem;
}

.usuarios-timeline-dot {
  position: absolute;
  left: -1.05rem;
  top: 0.25rem;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #2563eb;
  border: 2px solid #ffffff;
}

.usuarios-timeline-corpo {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.usuarios-timeline-titulo {
  font-size: 0.78rem;
  font-weight: 700;
  color: #0f172a;
}

.usuarios-timeline-data {
  font-size: 0.7rem;
  color: #64748b;
}

.usuarios-timeline-desc {
  margin: 0.2rem 0 0;
  font-size: 0.74rem;
  color: #475569;
}

/* Responsividade da rota UsuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rios */
@media (max-width: 1080px) {
  .usuarios-layout-duplo {
    grid-template-columns: 1fr;
  }
  .usuarios-painel-scroll {
    max-height: none;
  }
}

/* ============================================================
   Etapa 1 HomologaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Contexto Global, Popover e Simulador
   ============================================================ */

/* Cards de Contexto Interativos */
.ferias-card--resumo.is-selectable,
.app-header-contexto-item.is-selectable,
.ferias-cons-card.is-selectable {
  cursor: pointer;
  user-select: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.ferias-card--resumo.is-selectable:hover,
.app-header-contexto-item.is-selectable:hover,
.ferias-cons-card.is-selectable:hover {
  border-color: #94a3b8;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.contexto-card-chev {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  opacity: 0.5;
  margin-left: 0.25rem;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.is-selectable:hover .contexto-card-chev {
  opacity: 1;
  transform: translateY(1px);
  color: #1e293b;
}

/* Popover Ancorado */
.contexto-popover {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.15), 0 8px 10px -6px rgba(15, 23, 42, 0.1);
  padding: 0.35rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  animation: contextoPopoverFadeIn 0.12s ease-out;
}

@keyframes contextoPopoverFadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.contexto-popover-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: none;
  background: transparent;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #1e293b;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
}

.contexto-popover-item:hover,
.contexto-popover-item:focus-visible {
  background: #f1f5f9;
  color: #0f172a;
  outline: none;
}

.contexto-popover-item.is-selected {
  background: #eff6ff;
  color: #1d4ed8;
}

.contexto-popover-item-ico {
  display: inline-flex;
  align-items: center;
  color: #64748b;
}

.contexto-popover-item-rotulo {
  flex: 1;
}

.contexto-popover-check {
  font-weight: 700;
  color: #2563eb;
  font-size: 0.85rem;
}

.contexto-popover-vazio {
  padding: 0.6rem 0.75rem;
  font-size: 0.8rem;
  color: #64748b;
  text-align: center;
}

/* Barra de SimulaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de UsuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio na Rota MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-simulador-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0.6rem 0.9rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  margin-bottom: 0.85rem;
}

.ferias-simulador-seletor-bloco {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.ferias-simulador-rotulo {
  font-size: 0.78rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ferias-simulador-select {
  padding: 0.35rem 0.65rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #0f172a;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  min-width: 180px;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ferias-simulador-select:hover:not(:disabled) {
  border-color: #94a3b8;
}

.ferias-simulador-select:focus-visible {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.ferias-simulador-select:disabled {
  background: #f1f5f9;
  color: #94a3b8;
  cursor: not-allowed;
}

.ferias-simulador-gestor-bloco {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  color: #475569;
}

.ferias-simulador-gestor-rotulo {
  font-weight: 500;
}

.ferias-simulador-gestor-nome {
  font-weight: 700;
  color: #0f172a;
}

/* Dropdown Multiselect de PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes no Modo CriaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o em ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-cfg-multiselect {
  position: relative;
  width: 100%;
}

.ferias-cfg-multiselect-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.45rem 0.65rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: #0f172a;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ferias-cfg-multiselect-trigger:hover {
  border-color: #94a3b8;
}

.ferias-cfg-multiselect-trigger:focus-visible,
.ferias-cfg-multiselect.is-open .ferias-cfg-multiselect-trigger {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-cfg-multiselect-texto {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ferias-cfg-multiselect-texto.is-placeholder {
  color: #94a3b8;
  font-weight: 400;
}

.ferias-cfg-multiselect-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  transition: transform 0.15s ease;
}

.ferias-cfg-multiselect.is-open .ferias-cfg-multiselect-chevron {
  transform: rotate(180deg);
}

.ferias-cfg-multiselect-popover {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  z-index: 50;
  padding: 0.3rem 0;
  min-width: 180px;
}

.ferias-cfg-plantoes-chks {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}

.ferias-cfg-chk-opcao {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.75rem;
  font-size: 0.83rem;
  color: #1e293b;
  cursor: pointer;
  user-select: none;
  transition: background 0.1s ease;
}

.ferias-cfg-chk-opcao:hover:not(.is-disabled) {
  background: #f8fafc;
}

.ferias-cfg-chk-opcao input[type="checkbox"] {
  cursor: pointer;
  accent-color: #2563eb;
  margin: 0;
  width: 14px;
  height: 14px;
}

.ferias-cfg-chk-opcao.is-disabled {
  color: #94a3b8;
  cursor: not-allowed;
  background: transparent;
  pointer-events: none;
}

.ferias-cfg-chk-opcao.is-disabled input[type="checkbox"] {
  cursor: not-allowed;
  opacity: 0.55;
  pointer-events: none;
}

.ferias-cfg-chk-tag {
  margin-left: auto;
  font-size: 0.7rem;
  font-weight: 500;
  color: #94a3b8;
  background: #f1f5f9;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
}

.ferias-cfg-feedback--info {
  background: #f0f9ff;
  color: #0369a1;
  border: 1px solid #bae6fd;
}

/* Toast / Snackbar de Feedback na ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias */
.ferias-cfg-toast {
  position: fixed;
  bottom: 1.75rem;
  right: 1.75rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.7rem 1.1rem;
  border-radius: 8px;
  font-size: 0.86rem;
  font-weight: 600;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.06);
  z-index: 9999;
  opacity: 0;
  transform: translateY(12px) scale(0.98);
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease;
  max-width: 90vw;
}

.ferias-cfg-toast.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.ferias-cfg-toast--sucesso {
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}

.ferias-cfg-toast--erro {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

.ferias-cfg-toast--info {
  background: #f0f9ff;
  color: #0369a1;
  border: 1px solid #bae6fd;
}

.ferias-cfg-toast-ico-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-cfg-toast-ico {
  width: 1.1rem;
  height: 1.1rem;
  display: block;
}

.ferias-cfg-toast-texto {
  line-height: 1.35;
}

.ferias-cfg-toast-fechar {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0 0 0 0.5rem;
  font-size: 1.15rem;
  line-height: 1;
  color: currentColor;
  opacity: 0.65;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.15s ease;
}

.ferias-cfg-toast-fechar:hover {
  opacity: 1;
}

/* ==========================================================================
   FÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â°RIAS: PENDÃƒÆ’Ã†â€™Ãƒâ€¦Ã‚Â NCIAS & FLUXO DE EXCEDENTES (DESIGN SYSTEM, ABAS E CHIPS)
   ========================================================================== */

.ferias-pendencias-page {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

/* Cards superiores no padrÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.pendencias-cards-topo {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-bottom: 0.25rem;
  align-items: stretch;
  width: 100%;
}

.pendencias-cards-topo .ferias-cards-col-contexto {
  width: 140px;
  flex: 0 0 140px;
  min-width: 0;
}

.pendencias-cards-topo .ferias-card-rodada {
  flex: 1 1 260px;
  min-width: 240px;
  max-width: 480px;
}

/* Quando hÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡ apenas 1 card de rodada no topo: limita a largura para conforto visual */
.pendencias-cards-topo > .ferias-card-rodada:nth-child(2):last-child {
  max-width: 380px;
}

/* Abas de NavegaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o tipo Navegador */
.pendencias-tabs-nav {
  display: flex;
  align-items: flex-end;
  gap: 0.35rem;
  margin-top: 0.5rem;
  margin-bottom: -1px;
  padding-left: 0.5rem;
  position: relative;
  z-index: 3;
}

.pendencias-tab-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.65rem;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: #64748b;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-bottom: 1px solid #cbd5e1;
  border-radius: 8px 8px 0 0;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
  position: relative;
  outline: none;
  user-select: none;
}

.pendencias-tab-btn:hover:not(.is-active) {
  color: #1e293b;
  background: #e2e8f0;
  border-color: #94a3b8;
}

.pendencias-tab-btn:focus-visible {
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
  z-index: 5;
}

.pendencias-tab-btn.is-active {
  color: #0f172a;
  font-weight: 800;
  background: #ffffff;
  border-color: #cbd5e1;
  border-top: 3px solid #2563eb;
  border-bottom: 1px solid #ffffff;
  padding-top: calc(0.65rem - 2px);
  box-shadow: 0 -2px 6px rgba(15, 23, 42, 0.04);
  z-index: 4;
}

/* Painel de ConteÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºdo Integrado ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â  Aba Ativa */
.pendencias-tab-painel {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 0 10px 10px 10px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
  position: relative;
  z-index: 1;
}

.excecoes-ativa .pendencias-tab-painel {
  border-radius: 10px;
}

.pendencias-tab-painel .ferias-excecoes-card-v2 {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

/* Bloco de IdentificaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o Superior do Painel */
.pendencias-bloco-ident-topo {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}

.pendencias-bloco-ico-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  flex-shrink: 0;
}

.pendencias-bloco-ico-wrap--amber {
  background: #fffbeb;
  color: #d97706;
  border: 1px solid #fef3c7;
}

.pendencias-bloco-ico-wrap--blue {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #dbeafe;
}

.pendencias-bloco-textos {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.pendencias-bloco-titulo {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}

.pendencias-bloco-subtitulo {
  margin: 0;
  font-size: 0.8rem;
  color: #64748b;
  line-height: 1.4;
}

/* Tabela de OcorrÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias e ExceÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.pendencias-tabela-container {
  overflow-x: auto;
}

.pendencias-tabela {
  width: 100%;
  border-collapse: collapse;
}

.pendencias-tabela thead th {
  background: #f8fafc;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid #e2e8f0;
  white-space: nowrap;
  text-align: left;
}

.pendencias-tabela thead th:nth-child(3),
.pendencias-tabela thead th:nth-child(5) {
  text-align: center;
}

.pendencias-tabela tbody td {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.pendencias-td-data {
  white-space: nowrap;
  font-size: 0.88rem;
  font-weight: 800;
  color: #0f172a;
}

.pendencias-td-servidores,
.pendencias-td-excedentes {
  padding: 0.45rem 0.5rem;
}

.pendencias-td-limite {
  text-align: center;
  white-space: nowrap;
  padding: 0.6rem 0.5rem;
}

.pendencias-td-obs {
  text-align: center;
  white-space: nowrap;
  padding: 0.6rem 0.5rem;
  width: 48px;
}

.pendencias-tabela-vazia {
  text-align: center;
  color: #64748b;
  padding: 2.5rem 1rem !important;
  font-style: italic;
  font-size: 0.85rem;
}

/* Chips da coluna SERVIDORES - PadrÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o visual MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (Verde suave ativo) */
.pendencias-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 1.65rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.4;
  cursor: grab;
  user-select: none;
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  color: #166534;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease, background 0.12s ease;
  white-space: nowrap;
}

.pendencias-chip:hover {
  border-color: #86efac;
  box-shadow: 0 2px 6px rgba(22, 101, 52, 0.12);
  transform: translateY(-1px);
}

.pendencias-chip:active {
  cursor: grabbing;
}

.pendencias-chip .period-mark {
  width: 1.25rem;
  height: 1.25rem;
  font-size: 0.7rem;
  font-weight: 800;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  background: #10b981;
  flex-shrink: 0;
}

/* Chip da coluna EXCEDENTES - Destaque ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢mbar/amarelo suave com identidade da rodada */
.pendencias-chip--excedente {
  background: #fef3c7;
  color: #92400e;
  border-color: #fcd34d;
  box-shadow: 0 1px 3px rgba(245, 158, 11, 0.12);
}

.pendencias-chip--excedente:hover {
  border-color: #f59e0b;
  background: #fde68a;
  box-shadow: 0 2px 6px rgba(245, 158, 11, 0.18);
}

.pendencias-chip--excedente .period-mark {
  background: #10b981;
}

/* SeleÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o MÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºltipla com CTRL */
.pendencias-chip.is-selected {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.35) !important;
  transform: translateY(-1px);
}

.pendencias-chip.is-dragging {
  opacity: 0.45;
  cursor: grabbing !important;
}

.pendencias-chips-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  min-height: 2.1rem;
}

.pendencias-dropzone {
  min-height: 2.1rem;
  padding: 0.25rem 0.4rem;
  border-radius: 6px;
  border: 1.5px dashed transparent;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.pendencias-dropzone-vazia {
  border-color: #e2e8f0;
  background: #f8fafc;
  min-width: 90px;
}

.pendencias-dropzone.is-dragover {
  border-color: #2563eb !important;
  background: #eff6ff !important;
}

/* Indicador TOTAL / LIMITE */
.pendencias-total-limite {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
}

.pendencias-total-limite--excesso {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
}

.pendencias-total-limite--ok {
  background: #f0fdf4;
  color: #16a34a;
  border: 1px solid #bbf7d0;
}

/* BotÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o "..." na coluna OBS. */
.pendencias-btn-obs-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.55rem;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #475569;
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: -1px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s ease;
}

.pendencias-btn-obs-trigger:hover {
  border-color: #94a3b8;
  background: #f1f5f9;
  color: #0f172a;
}

.pendencias-btn-obs-trigger.is-active {
  border-color: #2563eb;
  background: #eff6ff;
  color: #1d4ed8;
}

.pendencias-btn-obs-trigger.has-obs {
  border-color: #86efac;
  background: #f0fdf4;
  color: #15803d;
}

/* Accordion de ObservaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.pendencias-tr-observacao td {
  background: #f8fafc;
  padding: 0.75rem 1rem !important;
  border-bottom: 1px solid #e2e8f0;
}

.pendencias-observacao-painel {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pendencias-observacao-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.pendencias-observacao-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: #334155;
}

.pendencias-obs-feedback {
  font-size: 0.75rem;
  font-weight: 600;
  color: #16a34a;
  background: #dcfce7;
  border: 1px solid #bbf7d0;
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
}

.pendencias-observacao-textarea {
  width: 100%;
  min-height: 52px;
  padding: 0.45rem 0.6rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  font-family: inherit;
  font-size: 0.82rem;
  color: #0f172a;
  resize: vertical;
}

.pendencias-observacao-textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.pendencias-observacao-acoes {
  display: flex;
  justify-content: flex-end;
}

.pendencias-btn-salvar-obs {
  background: #183b56;
  color: #ffffff;
  border: none;
  border-radius: 4px;
  padding: 0.35rem 0.75rem;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease;
}

.pendencias-btn-salvar-obs:hover {
  background: #0f2a43;
}

/* ==========================================================================
   EXCEÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¢ES & MARCAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O TARDIA (FÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â°RIAS)
   ========================================================================== */

/* Toolbar superior da aba ExceÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.ferias-excecoes-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.ferias-excecoes-busca-wrap {
  position: relative;
  flex: 1;
  min-width: 260px;
  max-width: 420px;
}

.ferias-excecoes-busca-icone {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: #94a3b8;
  display: inline-flex;
  pointer-events: none;
}

.ferias-excecoes-busca-input {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.25rem;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  font-family: inherit;
  font-size: 0.85rem;
  color: #0f172a;
  background: #ffffff;
  transition: all 0.15s ease;
}

.ferias-excecoes-busca-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-excecoes-filtros-wrap {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.ferias-excecoes-select-filtro {
  padding: 0.45rem 0.75rem;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  color: #1e293b;
  cursor: pointer;
}

.ferias-excecoes-select-filtro:focus {
  outline: none;
  border-color: #2563eb;
}

.ferias-excecoes-total-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border-radius: 6px;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

/* Tabela Global de ExceÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.ferias-excecoes-tabela-limpa {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.ferias-excecoes-tabela-limpa th,
.ferias-excecoes-tabela-limpa td {
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  vertical-align: middle;
}

.ferias-excecoes-tabela-limpa thead th {
  background: #f8fafc;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-top: 1px solid #e2e8f0;
}

.ferias-excecao-tr-clicavel {
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.ferias-excecao-tr-clicavel:hover {
  background-color: #f1f5f9;
}

.ferias-excecao-tr-clicavel.is-revogada {
  opacity: 0.65;
  background: #fafafa;
}

.ferias-excecao-tipo-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  white-space: nowrap;
}

.ferias-excecao-tipo-badge--alteracao {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.ferias-excecao-tipo-badge--bloqueio {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.ferias-excecao-tipo-badge--tardia {
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid #bbf7d0;
}

.ferias-excecao-tag-bloqueio {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.ferias-excecao-periodo-linha {
  display: block;
  font-weight: 600;
  color: #0f172a;
}

.ferias-excecao-data-auth {
  display: flex;
  flex-direction: column;
}

.ferias-excecao-data-hora {
  font-weight: 600;
  color: #334155;
}

/* Modal Wizard Nova ExceÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (3 Passos) */
.ferias-wizard-card {
  width: min(680px, 96vw);
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.22);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ferias-wizard-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.4rem;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.ferias-wizard-header h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}

.ferias-wizard-header-btn-fechar {
  background: transparent;
  border: none;
  font-size: 1.15rem;
  font-weight: 700;
  color: #64748b;
  cursor: pointer;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
}

.ferias-wizard-header-btn-fechar:hover {
  background: #e2e8f0;
  color: #0f172a;
}

.ferias-wizard-stepper {
  display: flex;
  align-items: center;
  padding: 0.9rem 1.4rem;
  background: #ffffff;
  border-bottom: 1px solid #edf2f7;
}

.ferias-wizard-step {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  opacity: 0.45;
  transition: opacity 0.15s ease;
}

.ferias-wizard-step.is-active {
  opacity: 1;
}

.ferias-wizard-step.is-completed {
  opacity: 0.9;
}

.ferias-wizard-step-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #cbd5e1;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
}

.ferias-wizard-step.is-active .ferias-wizard-step-num {
  background: #2563eb;
}

.ferias-wizard-step.is-completed .ferias-wizard-step-num {
  background: #16a34a;
}

.ferias-wizard-step-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: #1e293b;
}

.ferias-wizard-step-linha {
  flex: 1;
  height: 2px;
  background: #e2e8f0;
  margin: 0 0.75rem;
}

.ferias-wizard-corpo {
  padding: 1.4rem;
  overflow-y: auto;
  max-height: calc(85vh - 160px);
}

.ferias-wizard-secao {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.ferias-wizard-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: #334155;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-wizard-select,
.ferias-wizard-input,
.ferias-wizard-textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  font-family: inherit;
  font-size: 0.85rem;
  color: #0f172a;
}

.ferias-wizard-select:focus,
.ferias-wizard-input:focus,
.ferias-wizard-textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-wizard-textarea {
  resize: vertical;
  min-height: 60px;
}

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

.ferias-wizard-acao-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0.85rem 1rem;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s ease;
}

.ferias-wizard-acao-card:hover {
  border-color: #93c5fd;
  background: #f8fafc;
}

.ferias-wizard-acao-card.is-selected {
  border-color: #2563eb;
  background: #eff6ff;
  box-shadow: 0 0 0 1px #2563eb;
}

.ferias-wizard-acao-titulo {
  font-size: 0.85rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.2rem;
}

.ferias-wizard-acao-desc {
  font-size: 0.75rem;
  color: #64748b;
  line-height: 1.35;
}

/* Lista de marcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes a selecionar para alteraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o/bloqueio */
.ferias-wizard-marcacoes-lista {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.ferias-wizard-marcacao-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.85rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  cursor: pointer;
  font-size: 0.82rem;
  color: #1e293b;
  transition: background-color 0.12s ease;
}

.ferias-wizard-marcacao-item:hover {
  background: #f1f5f9;
}

.ferias-wizard-marcacao-item input[type="radio"] {
  accent-color: #2563eb;
}

/* Cards de MÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©tricas (MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o Tardia) */
.ferias-metricas-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.6rem;
}

.ferias-metrica-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.5rem;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.ferias-metrica-num {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
}

.ferias-metrica-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 0.25rem;
}

/* Chips de DuraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o RÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡pida */
.ferias-chips-prazo {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.ferias-chip-prazo {
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  font-size: 0.78rem;
  font-weight: 700;
  color: #334155;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-chip-prazo:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.ferias-chip-prazo.is-selected {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
}

.ferias-prazo-inputs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6rem;
}

/* Lista dinÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢mica de perÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odos especÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­ficos */
.ferias-periodos-especificos-lista {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.ferias-periodo-especifico-card {
  padding: 0.65rem 0.85rem;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.ferias-btn-remover-periodo {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fecaca;
  border-radius: 4px;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-btn-remover-periodo:hover {
  background: #fca5a5;
}

.ferias-btn-adicionar-periodo {
  padding: 0.45rem 0.85rem;
  border-radius: 6px;
  border: 1px dashed #cbd5e1;
  background: #ffffff;
  color: #2563eb;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.ferias-btn-adicionar-periodo:hover {
  background: #eff6ff;
  border-color: #93c5fd;
}

/* RodapÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â© do Wizard */
.ferias-wizard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.4rem;
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
}

.ferias-wizard-footer-acoes {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.ferias-wizard-btn-ghost,
.ferias-wizard-btn-cancelar {
  padding: 0.45rem 0.85rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #475569;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-wizard-btn-ghost:hover,
.ferias-wizard-btn-cancelar:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.ferias-wizard-btn-primario {
  padding: 0.45rem 1.1rem;
  border-radius: 6px;
  border: none;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.ferias-wizard-btn-primario:hover {
  background: #1d4ed8;
}

/* Modal Detalhes / InspeÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de ExceÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-modal-detalhes {
  width: min(560px, 95vw);
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.22);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ferias-detalhes-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.85rem;
}

.ferias-detalhes-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ferias-detalhes-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ferias-detalhes-valor {
  font-size: 0.85rem;
  color: #0f172a;
}

.ferias-detalhes-caixa-texto {
  padding: 0.6rem 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 0.82rem;
  color: #1e293b;
  line-height: 1.4;
}

.ferias-detalhes-btn-revogar {
  padding: 0.45rem 0.85rem;
  border-radius: 6px;
  border: 1px solid #fecaca;
  background: #fee2e2;
  color: #b91c1c;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-detalhes-btn-revogar:hover {
  background: #fca5a5;
}

.ferias-detalhes-btn-fechar {
  padding: 0.45rem 1rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #1e293b;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.ferias-detalhes-btn-fechar:hover {
  background: #f1f5f9;
}

/* Timer Countdown Widget (MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o Tardia) */
.ferias-timer-countdown {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.65rem;
  border-radius: 6px;
  background: #f1f5f9;
  color: #0f172a;
  font-family: monospace;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  border: 1px solid #cbd5e1;
  transition: all 0.2s ease;
}

.ferias-timer-countdown.is-alerta {
  background: #fffbeb;
  border-color: #fde68a;
  color: #b45309;
}

.ferias-timer-countdown.is-critico {
  background: #fef2f2;
  border-color: #fecaca;
  color: #dc2626;
  animation: pulseCritico 1s infinite alternate;
}

.ferias-timer-countdown.is-expired {
  background: #f1f5f9;
  border-color: #e2e8f0;
  color: #94a3b8;
}

@keyframes pulseCritico {
  0% { transform: scale(1); }
  100% { transform: scale(1.03); }
}

/* Banner CrÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­tico de Excedente */
.ferias-excedente-banner {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.9rem 1.25rem;
  border-radius: 8px;
  margin-bottom: 1rem;
  background: #dc2626;
  border: 1px solid #b91c1c;
  color: #ffffff;
  box-shadow: 0 4px 6px -1px rgba(220, 38, 38, 0.25), 0 2px 4px -2px rgba(220, 38, 38, 0.15);
}

.ferias-excedente-banner-icone {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #ffffff;
}

.ferias-excedente-banner-corpo {
  flex: 1;
  min-width: 0;
}

.ferias-excedente-banner-titulo {
  color: #ffffff;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.45;
  display: block;
}

.ferias-marcacao-sublinha-excedente,
.ferias-marcacao-sublinha-ausente {
  display: flex;
  align-items: center;
  margin-top: 0.25rem;
}

.ferias-status--excedente {
  display: inline-flex;
  align-items: center;
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.15rem 0.45rem;
  width: fit-content;
}

.ferias-cons-chip--ausente {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #64748b;
}

/* Banners de ExceÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o na ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Ârea do Servidor */
.ferias-excecao-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1.25rem;
  border-radius: 8px;
  margin-bottom: 1rem;
  font-size: 0.85rem;
}

.ferias-excecao-banner--alteracao {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e40af;
}

.ferias-excecao-banner--bloqueio {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.ferias-excecao-banner--tardia-prazo {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}

.ferias-excecao-banner--tardia-especifica {
  background: #faf5ff;
  border: 1px solid #e9d5ff;
  color: #6b21a8;
}

.ferias-excecao-banner--extraordinaria {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  padding: 0.5rem 0.85rem;
  border-radius: 8px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
  margin-bottom: 0.75rem;
  width: 100%;
  box-sizing: border-box;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-icone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #dcfce7;
  color: #15803d;
  flex-shrink: 0;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-corpo {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  flex: 1;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-linha1 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  line-height: 1.2;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-titulo {
  font-size: 0.86rem;
  font-weight: 700;
  color: #14532d;
  margin: 0;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-linha2 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem 0.55rem;
  font-size: 0.76rem;
  color: #166534;
  line-height: 1.25;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-desc {
  margin: 0;
  color: #15803d;
  font-weight: 500;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-sep {
  color: #86efac;
  font-weight: 700;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-validade {
  color: #166534;
  font-weight: 500;
}

.ferias-excecao-banner--extraordinaria .ferias-excecao-banner-tempo {
  display: inline-flex;
  align-items: center;
  background: #dcfce7;
  padding: 0.1rem 0.45rem;
  border-radius: 12px;
  border: 1px solid #86efac;
  color: #14532d;
  font-weight: 700;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}

.ferias-excecao-banner--sugestao {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  padding: 0.5rem 0.85rem;
  border-radius: 8px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
  margin-bottom: 0.75rem;
  width: 100%;
  box-sizing: border-box;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-icone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #dcfce7;
  color: #15803d;
  flex-shrink: 0;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-corpo {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
  flex: 1;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-linha1 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-titulo {
  font-size: 0.88rem;
  font-weight: 700;
  color: #14532d;
  margin: 0;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-linha2 {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.3rem 0.45rem;
  font-size: 0.78rem;
  color: #166534;
  line-height: 1.3;
  overflow: hidden;
}

.ferias-proposta-periodos-inline {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem 0.55rem;
}

/* Banner inline period display (compact 2-line layout) */
.ferias-banner-inline-rotulo {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #14532d;
  white-space: nowrap;
  margin-right: 0.2rem;
}

.ferias-banner-inline-texto {
  font-size: 0.78rem;
  font-weight: 600;
  color: #166534;
  white-space: nowrap;
}

.ferias-proposta-bloco {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ferias-proposta-rotulo {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.ferias-proposta-bloco--saem .ferias-proposta-rotulo {
  color: #b91c1c;
}

.ferias-proposta-bloco--entram .ferias-proposta-rotulo {
  color: #15803d;
}

.ferias-proposta-chips {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ferias-proposta-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.45rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.3;
}

.ferias-proposta-chip--saem {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
  text-decoration: line-through;
}

.ferias-proposta-chip--entram {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-sep {
  color: #86efac;
  font-weight: 700;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-validade {
  color: #166534;
  font-weight: 500;
}

.ferias-excecao-banner--sugestao [data-contador-proposta] {
  display: inline-flex;
  align-items: center;
  background: #dcfce7;
  padding: 0.1rem 0.45rem;
  border-radius: 12px;
  border: 1px solid #86efac;
  color: #14532d;
  font-weight: 700;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}

.ferias-excecao-banner--sugestao .ferias-excecao-banner-acoes {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
}

/* Alerta de Capacidade / Excedente no formulário lateral de Exceção */
.ferias-excecao-alerta-capacidade {
  margin-top: 0.65rem;
  padding: 0.65rem 0.85rem;
  background: #fffbeb;
  border: 1px solid #f59e0b;
  border-radius: 6px;
  color: #92400e;
  font-size: 0.8rem;
}

.ferias-excecao-alerta-capacidade-header {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.35rem;
}

.ferias-excecao-alerta-capacidade-titulo {
  font-weight: 700;
  color: #b45309;
  letter-spacing: 0.02em;
}

.ferias-excecao-alerta-capacidade-lista {
  margin: 0;
  padding-left: 1.15rem;
  list-style-type: disc;
  line-height: 1.45;
}

.ferias-excecao-alerta-capacidade-item {
  color: #78350f;
  font-weight: 500;
}

/* Modal interno de Confirmação de Publicação com Excesso */
.ferias-modal-confirmacao-excedente-card {
  max-width: 480px;
  width: 90%;
  border-top: 4px solid #f59e0b;
}

.ferias-banner-btn-acao {
  padding: 0.45rem 0.95rem;
  border-radius: 6px;
  border: none;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s ease;
}

.ferias-excecao-banner--alteracao .ferias-banner-btn-acao {
  background: #2563eb;
  color: #ffffff;
}

.ferias-excecao-banner--bloqueio .ferias-banner-btn-acao {
  background: #dc2626;
  color: #ffffff;
}

.ferias-excecao-banner--tardia-prazo .ferias-banner-btn-acao {
  background: #16a34a;
  color: #ffffff;
}

.ferias-excecao-banner--tardia-especifica .ferias-banner-btn-acao {
  background: #9333ea;
  color: #ffffff;
}

.ferias-banner-btn-acao:hover {
  opacity: 0.9;
}

/* Modal de Feedback Universal [ OK ] */
.ferias-modal-feedback-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15, 23, 42, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.ferias-modal-feedback-card {
  width: min(420px, 94vw);
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.25);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.ferias-modal-feedback-titulo {
  font-size: 1.1rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem 0;
}

.ferias-modal-feedback-msg {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.45;
  margin: 0 0 1.25rem 0;
}

.ferias-modal-feedback-btn-ok {
  min-width: 100px;
  padding: 0.5rem 1.4rem;
  border-radius: 6px;
  border: none;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.ferias-modal-feedback-btn-ok:hover {
  background: #1d4ed8;
}

/* ==========================================================================
   ROTA EXCEÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¢ES V2 (Fidelidade estrita ao mockup-excecoes-v2.png)
   ========================================================================== */

/* Layout Responsivo de PendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias (Faixa 1: Topo 100% / Faixa 2: Abas + Lateral) */
.pendencias-topo {
  width: 100%;
  margin-bottom: 1.25rem;
}

.pendencias-topo .pendencias-cards-topo,
.pendencias-topo .ferias-cards {
  width: 100%;
}

.pendencias-area-abas,
.ferias-pendencias-corpo-wrapper {
  width: 100%;
}

.pendencias-area-abas.excecoes-ativa,
.ferias-pendencias-corpo-wrapper.ferias-modo-duas-colunas {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 430px;
  gap: 1.5rem;
  align-items: start;
}

.pendencias-area-abas.excecoes-ativa.ferias-modo-painel-recolhido,
.ferias-pendencias-corpo-wrapper.ferias-modo-duas-colunas.ferias-modo-painel-recolhido {
  grid-template-columns: minmax(0, 1fr) 44px;
  gap: 0.75rem;
}

.pendencias-area-abas.excedentes-ativa,
.ferias-pendencias-corpo-wrapper.ferias-modo-uma-coluna {
  display: block;
  width: 100%;
}

.pendencias-col-esquerda,
.ferias-pendencias-col-esquerda {
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.pendencias-col-direita,
.ferias-pendencias-col-direita {
  min-width: 0;
  width: 100%;
}

.ferias-pendencias-col-direita {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}

.ferias-pendencias-col-direita.is-recolhido {
  width: 44px;
  justify-content: center;
}

.ferias-painel-excecao-toggle {
  width: 34px;
  height: 34px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #475569;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex: 0 0 auto;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ferias-painel-excecao-toggle:hover {
  background: #f8fafc;
  border-color: #94a3b8;
  color: #0f172a;
}

.ferias-painel-excecao-conteudo {
  min-width: 0;
  flex: 1 1 auto;
}

.ferias-pendencias-col-direita.is-recolhido .ferias-painel-excecao-conteudo {
  display: none;
}

/* Respiro entre blocos na Parte 1 do formulário */
.ferias-drawer-parte-1 .ferias-form-group.ferias-drawer-grupo-marcacoes,
.ferias-drawer-parte-1 .ferias-form-group.ferias-drawer-grupo-historico {
  margin-top: 1.25rem !important;
}

/* Lista e Itens do Histórico de Intervenções no Drawer Lateral */
.ferias-drawer-intervencoes-lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 260px;
  overflow-y: auto;
  margin-top: 0.25rem;
}

.ferias-drawer-intervencao-item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.5rem 0.65rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-drawer-intervencao-item:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.ferias-drawer-intervencao-topo {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.ferias-drawer-intervencao-tipo {
  font-size: 0.82rem;
  font-weight: 600;
  color: #1e293b;
}

.ferias-drawer-intervencao-detalhe {
  font-size: 0.78rem;
  color: #475569;
  line-height: 1.3;
}

.ferias-drawer-intervencao-criado-em {
  font-size: 0.72rem;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1100px) {
  .pendencias-area-abas.excecoes-ativa,
  .ferias-pendencias-corpo-wrapper.ferias-modo-duas-colunas {
    grid-template-columns: 1fr;
  }

  .pendencias-area-abas.excecoes-ativa.ferias-modo-painel-recolhido,
  .ferias-pendencias-corpo-wrapper.ferias-modo-duas-colunas.ferias-modo-painel-recolhido {
    grid-template-columns: minmax(0, 1fr) 44px;
  }
}

/* Card Principal da Tabela de ExceÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.ferias-excecoes-card-v2 {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  box-sizing: border-box;
  max-width: 100%;
  overflow-x: hidden;
}

.ferias-excecoes-header-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}

.ferias-excecoes-header-esq {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.ferias-btn-nova-excecao {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #ffffff;
  background-color: #2563eb;
  border: 1px solid #1d4ed8;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
  white-space: nowrap;
}

.ferias-btn-nova-excecao:hover {
  background-color: #1d4ed8;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2);
}

.ferias-excecoes-header-icone {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #eff6ff;
  border: 1px solid #dbeafe;
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-excecoes-header-textos {
  display: flex;
  flex-direction: column;
}

.ferias-excecoes-header-titulo {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ferias-excecoes-header-sub {
  font-size: 0.82rem;
  color: #64748b;
  margin: 0.2rem 0 0 0;
}

/* Tabela de Exceções V2 / Intervenções Extraordinárias */
.intervencoes-table,
.ferias-excecoes-tabela-v2 {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.intervencoes-table th,
.intervencoes-table td,
.ferias-excecoes-tabela-v2 th,
.ferias-excecoes-tabela-v2 td {
  min-width: 0;
  box-sizing: border-box;
}

.intervencoes-table th:nth-child(1),
.ferias-excecoes-tabela-v2 th:nth-child(1) { width: 4%; text-align: center; }
.intervencoes-table th:nth-child(2),
.ferias-excecoes-tabela-v2 th:nth-child(2) { width: 13%; }
.intervencoes-table th:nth-child(3),
.ferias-excecoes-tabela-v2 th:nth-child(3) { width: 20%; }
.intervencoes-table th:nth-child(4),
.ferias-excecoes-tabela-v2 th:nth-child(4) { width: 35%; }
.intervencoes-table th:nth-child(5),
.ferias-excecoes-tabela-v2 th:nth-child(5) { width: 15%; }
.intervencoes-table th:nth-child(6),
.ferias-excecoes-tabela-v2 th:nth-child(6) { width: 13%; }

.intervencoes-table td,
.ferias-excecoes-tabela-v2 td {
  white-space: normal;
  overflow-wrap: anywhere;
}

.ferias-excecoes-tabela-v2 td.resumo,
.intervencoes-table td.resumo {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.35;
}

.ferias-excecoes-tabela-v2 td.ferias-excecoes-td-seq,
.intervencoes-table td.ferias-excecoes-td-seq {
  text-align: center;
}

.ferias-excecoes-tabela-v2 td.ferias-excecoes-td-criado-em,
.intervencoes-table td.ferias-excecoes-td-criado-em {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  color: #475569;
  font-size: 0.82rem;
}

/* Status também não pode empurrar a largura da tabela. */
.ferias-excecoes-tabela-v2 td.ferias-excecoes-td-status,
.intervencoes-table td.ferias-excecoes-td-status {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.ferias-excecoes-tabela-v2 td.ferias-excecoes-td-status .ferias-btn-remover-publicacao,
.intervencoes-table td.ferias-excecoes-td-status .ferias-btn-remover-publicacao,
.ferias-excecoes-tabela-v2 td.ferias-excecoes-td-status .ferias-btn-cancelar-bloqueio,
.intervencoes-table td.ferias-excecoes-td-status .ferias-btn-cancelar-bloqueio {
  display: block;
  margin-left: 0;
  margin-top: 0.35rem;
  max-width: 100%;
  box-sizing: border-box;
  white-space: normal;
  text-align: center;
}

.ferias-excecoes-tabela-v2 .ferias-status-pill,
.intervencoes-table .ferias-status-pill {
  white-space: normal;
}

.ferias-excecoes-tabela-v2 th {
  background: #f8fafc;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.65rem 0.85rem;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
}

.ferias-excecoes-tabela-v2 td {
  padding: 0.8rem 0.85rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.ferias-excecoes-tabela-v2 tr:last-child td {
  border-bottom: none;
}

.ferias-excecoes-tabela-v2 tr:hover td {
  background-color: #f8fafc;
}

.ferias-excecoes-td-seq {
  font-weight: 600;
  color: #64748b;
  text-align: center;
}

.ferias-excecoes-td-servidor {
  vertical-align: middle;
}

.ferias-excecoes-servidor-info {
  display: flex;
  flex-direction: column;
}

.ferias-excecoes-nome-servidor {
  font-size: 0.88rem;
  font-weight: 700;
  color: #0f172a;
}

.ferias-excecoes-mat-servidor {
  font-size: 0.76rem;
  color: #64748b;
  margin-top: 0.1rem;
}

.ferias-excecoes-td-tipo {
  font-size: 0.85rem;
  color: #1e293b;
  font-weight: 500;
}

.ferias-excecoes-td-resumo {
  font-size: 0.82rem;
  color: #475569;
}

/* Pills de Status */
.ferias-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.65rem;
  border-radius: 20px;
  font-size: 0.76rem;
  font-weight: 600;
  white-space: nowrap;
}

/* AGUARDANDO / PENDENTE / EM ANÁLISE → amarelo */
.ferias-status-pill--pendente,
.ferias-status-pill--aguardando,
.ferias-status-pill--analise,
.ferias-status-pill--concessao {
  background: var(--status-aguardando-bg);
  border: 1px solid var(--status-aguardando-borda);
  color: var(--status-aguardando-cor);
}

/* EM ANDAMENTO / ATIVO / CONFIRMADO / REALIZADO / PUBLICADO → verde */
.ferias-status-pill--confirmada,
.ferias-status-pill--confirmado,
.ferias-status-pill--executada,
.ferias-status-pill--realizado,
.ferias-status-pill--publicado,
.ferias-status-pill--ativo,
.ferias-status-pill--ativa,
.ferias-status-pill--em-andamento {
  background: var(--status-andamento-bg);
  border: 1px solid var(--status-andamento-borda);
  color: var(--status-andamento-cor);
}

/* ENCERRADO / CANCELADO / REVOGADA / EXPIRADO / BLOQUEADO → vermelho */
.ferias-status-pill--revogada,
.ferias-status-pill--cancelado,
.ferias-status-pill--cancelada,
.ferias-status-pill--expirado,
.ferias-status-pill--expirada,
.ferias-status-pill--encerrado,
.ferias-status-pill--encerrada,
.ferias-status-pill--concluido,
.ferias-status-pill--concluida,
.ferias-status-pill--bloqueado,
.ferias-status-pill--bloqueada {
  background: var(--status-encerrado-bg);
  border: 1px solid var(--status-encerrado-borda);
  color: var(--status-encerrado-cor);
}

.ferias-btn-remover-publicacao,
.ferias-btn-cancelar-bloqueio {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: transparent;
  border: 1px solid #fecaca;
  color: #dc2626;
  border-radius: 4px;
  padding: 0.2rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  margin-left: 0.5rem;
  transition: all 0.15s ease;
}

.ferias-btn-remover-publicacao:hover,
.ferias-btn-cancelar-bloqueio:hover {
  background: #fee2e2;
  border-color: #f87171;
}

.ferias-pill-ico {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.ferias-excecoes-footer-contagem {
  font-size: 0.8rem;
  color: #64748b;
  margin-top: 1rem;
  padding-top: 0.5rem;
}

/* FormulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio Lateral Fixo */
.ferias-excecao-form-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ferias-form-header {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.ferias-form-circle-plus {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #2563eb;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.25);
}

.ferias-form-header-textos {
  display: flex;
  flex-direction: column;
}

.ferias-form-header-titulo {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ferias-form-header-sub {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0.15rem 0 0 0;
}

.ferias-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  position: relative;
}

.ferias-form-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
}

.ferias-select-icon-wrap {
  position: relative;
  width: 100%;
}

.ferias-select-icon {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
}

.ferias-form-select {
  width: 100%;
  padding: 0.55rem 0.75rem 0.55rem 2.25rem;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  background-color: #ffffff;
  font-family: inherit;
  font-size: 0.85rem;
  color: #0f172a;
  font-weight: 500;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 14px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-form-select:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-form-select option:disabled {
  color: #94a3b8;
  background-color: #f8fafc;
}

/* Callouts de SituaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-alerta-situacao {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
}

.ferias-alerta-situacao--tardio {
  background: #fffbeb;
  border: 1px solid #fef3c7;
}

.ferias-alerta-situacao--regular {
  background: #eff6ff;
  border: 1px solid #dbeafe;
}

.ferias-alerta-situacao--neutro {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.ferias-alerta-icone {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-weight: 700;
  font-size: 0.75rem;
}

.ferias-alerta-situacao--tardio .ferias-alerta-icone {
  background: #f59e0b;
  color: #ffffff;
}

.ferias-alerta-situacao--regular .ferias-alerta-icone {
  background: #2563eb;
  color: #ffffff;
}

.ferias-alerta-situacao--neutro .ferias-alerta-icone {
  background: #64748b;
  color: #ffffff;
}

.ferias-alerta-textos {
  display: flex;
  flex-direction: column;
}

.ferias-alerta-titulo {
  font-size: 0.82rem;
  font-weight: 700;
}

.ferias-alerta-situacao--tardio .ferias-alerta-titulo {
  color: #92400e;
}

.ferias-alerta-situacao--regular .ferias-alerta-titulo {
  color: #1e40af;
}

.ferias-alerta-sub {
  font-size: 0.76rem;
  margin: 0.15rem 0 0 0;
}

.ferias-alerta-situacao--tardio .ferias-alerta-sub {
  color: #b45309;
}

.ferias-alerta-situacao--regular .ferias-alerta-sub {
  color: #3b82f6;
}

.ferias-alerta-situacao--factual {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
}

.ferias-alerta-situacao--factual .ferias-alerta-icone {
  background: #0284c7;
  color: #ffffff;
}

.ferias-alerta-situacao--factual .ferias-alerta-titulo {
  color: #0f172a;
  margin-bottom: 0.35rem;
}

.ferias-situacao-fatos-lista {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.8rem;
  color: #334155;
  line-height: 1.45;
}

.ferias-situacao-fatos-lista strong {
  color: #0f172a;
}

.ferias-situacao-badge-classificacao {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}

.ferias-situacao-badge-classificacao--ausente {
  background: #fee2e2;
  color: #991b1b;
}

.ferias-situacao-badge-classificacao--excedente {
  background: #fef3c7;
  color: #92400e;
}

.ferias-situacao-badge-classificacao--contemplado {
  background: #dcfce7;
  color: #166534;
}

.ferias-situacao-badge-classificacao--nao_iniciado {
  background: #e2e8f0;
  color: #475569;
}

.ferias-form-marcacao-item {
  font-size: 0.8rem;
  color: #334155;
  padding: 0.3rem 0;
  border-bottom: 1px dashed #e2e8f0;
}

.ferias-form-marcacao-item:last-child {
  border-bottom: none;
}

/* MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes do Servidor Checklist */
.ferias-form-marcacoes-box {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.65rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ferias-form-check-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.82rem;
  color: #1e293b;
  cursor: pointer;
}

.ferias-form-check-item input[type="checkbox"],
.ferias-form-check-item input[type="radio"] {
  accent-color: #2563eb;
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.ferias-form-sem-marcacoes {
  font-size: 0.8rem;
  color: #64748b;
  font-style: italic;
}

.ferias-form-total-pill {
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 0.8rem;
  padding: 0.35rem 0.65rem;
  border-radius: 6px;
  font-weight: 600;
  margin-top: 0.25rem;
}

/* SubformulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rios */
.ferias-subform {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding-top: 0.35rem;
}

/* Área dinâmica das intervenções extraordinárias (Sugerir períodos / Bloquear períodos) */
.ferias-subform-secao {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.ferias-subform-secao-titulo {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
}

.ferias-excecao-periodos-lista {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-excecao-periodo-atual,
.ferias-excecao-periodo-proposto {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #ffffff;
  font-size: 0.8rem;
  color: #0f172a;
}

.ferias-excecao-periodo-texto {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.ferias-excecao-periodo-texto small {
  font-size: 0.7rem;
  color: #b91c1c;
}

.ferias-excecao-periodo-atual.is-saida {
  opacity: 0.55;
  background: #fff5f5;
  border-color: #fecaca;
}

.ferias-excecao-periodo-atual.is-saida span {
  text-decoration: line-through;
}

.ferias-excecao-periodo-acoes {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.ferias-excecao-icon-btn {
  width: 26px;
  height: 26px;
  border-radius: 5px;
  color: #64748b;
}

.ferias-excecao-picker-row {
  position: relative;
}

.ferias-excecao-resumo {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--app-border, #e2e8f0);
  border-left: 3px solid #1a56db;
  border-radius: 6px;
  background: #f8fbff;
  font-size: 0.8rem;
  color: #0f172a;
}

.ferias-excecao-resumo.is-empty {
  color: #64748b;
  border-left-color: #cbd5e1;
  background: #f8fafc;
}

.ferias-excecao-resumo-grupo {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.ferias-excecao-resumo-grupo > span {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #b91c1c;
}

.ferias-excecao-resumo-grupo[data-resumo-entram] > span {
  color: #15803d;
}

.ferias-excecao-resumo-resultado {
  font-size: 0.74rem;
  color: #475569;
}

.ferias-excecao-checkbox-lista {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.ferias-excecao-checkbox-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #ffffff;
  font-size: 0.8rem;
  color: #0f172a;
  cursor: pointer;
}

.ferias-excecao-checkbox-item:hover {
  border-color: #c7d9f9;
  background: #f8fbff;
}

.ferias-excecao-checkbox-item.is-selecionado {
  border-color: #c7d9f9;
  background: #f5f8ff;
}

.ferias-excecao-checkbox-item input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #1a56db;
}

.ferias-excecao-avisos {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ferias-excecao-aviso {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  margin: 0;
  padding: 0.4rem 0.55rem;
  border: 1px solid #fde68a;
  border-radius: 6px;
  background: #fffbeb;
  font-size: 0.76rem;
  color: #92400e;
}

.ferias-excecao-aviso svg {
  flex: 0 0 auto;
  margin-top: 1px;
}

.ferias-excecao-previa-local {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid #bbf7d0;
  border-radius: 6px;
  background: #f0fdf4;
  color: #15803d;
  font-size: 0.78rem;
}

.ferias-excecao-previa-local strong {
  display: block;
  font-weight: 700;
}

.ferias-excecao-previa-local span {
  display: block;
  font-size: 0.74rem;
  color: #166534;
}

.ferias-subform-ref-box {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.6rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ferias-subform-ref-box--bloqueio {
  background: #fef2f2;
  border-color: #fecaca;
}

.ferias-subform-ref-label {
  font-size: 0.75rem;
  color: #64748b;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ferias-subform-ref-val {
  font-size: 0.85rem;
  color: #0f172a;
  font-weight: 700;
}

.ferias-date-range-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ferias-date-input-wrap {
  flex: 1;
  position: relative;
}

.ferias-form-input {
  width: 100%;
  padding: 0.45rem 0.65rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  font-family: inherit;
  font-size: 0.82rem;
  color: #0f172a;
}

.ferias-form-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-date-separator {
  font-size: 0.8rem;
  color: #64748b;
  font-weight: 600;
}

.ferias-duracao-tag {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  padding: 0.45rem 0.65rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
}

.ferias-form-textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  font-family: inherit;
  font-size: 0.82rem;
  color: #0f172a;
  resize: vertical;
}

.ferias-form-textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-prazo-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ferias-form-input--num {
  width: 80px;
  text-align: center;
}

.ferias-form-select--unidade {
  width: 110px;
  padding: 0.45rem 0.65rem;
}

.ferias-form-help-text {
  font-size: 0.76rem;
  color: #64748b;
  margin: 0.25rem 0 0 0;
  line-height: 1.4;
}

/* ==========================================================================
   PROGRAMADOR DE VIGÊNCIA / PRAZO (INTERVENÇÕES EXTRAORDINÁRIAS)
   ========================================================================== */
.ferias-programador-prazo {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.ferias-programador-prazo.ferias-prazo-grid-compacto {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 0.75rem;
  margin-bottom: 0.5rem;
}

.ferias-prazo-grid-compacto .ferias-prazo-col {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.ferias-prazo-grid-compacto .ferias-prazo-col .ferias-form-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: #334155;
  margin-bottom: 0.15rem;
  display: block;
}

.ferias-prazo-grid-compacto .ferias-prazo-col-full {
  grid-column: 1 / -1;
  width: 100%;
  box-sizing: border-box;
}

.ferias-prazo-linha-dupla {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  align-items: center;
}

.ferias-prazo-input-data,
.ferias-prazo-input-hora,
.ferias-prazo-select-unidade,
.ferias-prazo-input-duracao {
  width: 100%;
  box-sizing: border-box;
}

.ferias-prazo-duracao-container {
  display: flex;
  align-items: center;
  width: 100%;
}

.ferias-prazo-vigencia-bloco {
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  background: var(--surface-secondary, #f8fafc);
  border: 1px solid var(--border-subtle, #e2e8f0);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-primary, #0f172a);
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ferias-prazo-vigencia-bloco.is-invalido {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}

.ferias-prazo-vigencia-texto {
  display: inline-block;
  letter-spacing: 0.01em;
}

/* Card de PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo Gerado */
.ferias-gerar-periodo-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
}

.ferias-gerar-periodo-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ferias-gerar-periodo-titulo {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.ferias-btn-remover-periodo {
  background: none;
  border: none;
  color: #ef4444;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
}

.ferias-btn-remover-periodo:hover {
  text-decoration: underline;
}

.ferias-btn-adicionar-periodo {
  width: 100%;
  padding: 0.65rem;
  border: 1px dashed #93c5fd;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-btn-adicionar-periodo:hover {
  background: #dbeafe;
  border-color: #3b82f6;
}

.ferias-btn-add-sub {
  font-size: 0.72rem;
  font-weight: 400;
  color: #64748b;
}

/* Callout Inferior Informativo */
.ferias-form-info-callout {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: 0.65rem 0.75rem;
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}

.ferias-form-info-icon {
  color: #2563eb;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.ferias-form-info-texto {
  font-size: 0.78rem;
  color: #1e40af;
  margin: 0;
  line-height: 1.4;
}

.ferias-form-footer-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  margin-top: 0.5rem;
}

.ferias-btn-cancelar {
  padding: 0.5rem 1rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #334155;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}

.ferias-btn-salvar {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 1.25rem;
  border-radius: 6px;
  background: #2563eb;
  color: #ffffff;
  border: none;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
}

.ferias-btn-salvar:hover {
  background: #1d4ed8;
}

/* ============================================================
   ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes de FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Layout e Componentes do Mockup
   ============================================================ */

.ferias-regras-header-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.15rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
  margin-bottom: 0.75rem;
}

.ferias-regras-header-left {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.ferias-regras-header-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #eff6ff;
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-regras-header-icon svg {
  width: 22px;
  height: 22px;
}

.ferias-regras-header-textos {
  display: flex;
  flex-direction: column;
}

.ferias-regras-header-titulo {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ferias-regras-header-sub {
  font-size: 0.82rem;
  color: #64748b;
  margin: 0.2rem 0 0 0;
}

.ferias-regras-header-right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.ferias-regras-header-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}

.ferias-regras-header-status-wrap {
  display: flex;
  align-items: center;
}

.ferias-regras-header-autor {
  font-size: 0.75rem;
  color: #94a3b8;
  white-space: nowrap;
}

.ferias-regras-header-botoes {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* SubnavegaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o Interna */
.ferias-regras-subnav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  border-bottom: 1px solid #e2e8f0;
  margin: 0.75rem 0 1.25rem 0;
  padding: 0 0.25rem;
}

.ferias-regras-subnav-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: transparent;
  border: none;
  padding: 0.65rem 0.25rem;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  position: relative;
  transition: color 0.15s ease;
}

.ferias-regras-subnav-btn:hover {
  color: #1e293b;
}

.ferias-regras-subnav-btn.is-active {
  color: #2563eb;
  font-weight: 700;
}

.ferias-regras-subnav-btn.is-active::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: #2563eb;
  border-radius: 2px;
}

/* AcordeÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.ferias-secao-acordeon {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 1.15rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.ferias-secao-acordeon-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.25rem;
  cursor: pointer;
  background: #ffffff;
  user-select: none;
  transition: background 0.15s ease;
}

.ferias-secao-acordeon-header:hover {
  background: #f8fafc;
}

.ferias-secao-acordeon-info {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.ferias-secao-acordeon-ico {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #f1f5f9;
  color: #475569;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-secao-acordeon-ico--azul {
  background: #eff6ff;
  color: #2563eb;
}

.ferias-secao-acordeon-titulo {
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ferias-secao-acordeon-sub {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0.15rem 0 0 0;
}

.ferias-secao-acordeon-chevron {
  background: transparent;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  transition: transform 0.2s ease, background 0.15s ease;
}

.ferias-secao-acordeon-chevron:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.ferias-secao-acordeon-corpo {
  display: none;
  padding: 0 1.25rem 1.25rem 1.25rem;
}

.ferias-secao-acordeon.is-expanded > .ferias-secao-acordeon-corpo {
  display: block;
}

.ferias-secao-acordeon.is-expanded .ferias-secao-acordeon-chevron {
  transform: rotate(180deg);
}

/* Regras - Blocos Internos */
.ferias-regras-conteudo-interno {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding-top: 0.5rem;
}

.ferias-regras-bloco {
  display: flex;
  flex-direction: column;
}

.ferias-regras-bloco-cabecalho {
  margin-bottom: 0.85rem;
}

.ferias-regras-bloco-titulo {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ferias-regras-bloco-sub {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0.15rem 0 0 0;
}

/* 1. Grid de ParÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢metros Gerais (4 cards lado a lado) */
.ferias-regras-grid-parametros {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.ferias-regras-card-editavel {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1rem 1.15rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 110px;
  transition: all 0.15s ease;
  position: relative;
}

.ferias-regras-card-editavel:hover {
  border-color: #cbd5e1;
  background: #f1f5f9;
}

.ferias-regras-card-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.ferias-regras-card-header {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.ferias-regras-card-titulo {
  font-size: 0.85rem;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.25;
}

.ferias-regras-card-subtitulo {
  font-size: 0.72rem;
  color: #64748b;
}

.ferias-regras-card-conteudo {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.85rem;
}

.ferias-regras-input-box {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0.25rem 0.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ferias-regras-input-box:focus-within {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.ferias-regras-card-input {
  font-family: inherit;
  font-size: 1.5rem;
  font-weight: 800;
  color: #0f172a;
  border: none;
  background: transparent;
  width: 55px;
  text-align: center;
  outline: none;
  padding: 0;
  -moz-appearance: textfield;
}

.ferias-regras-card-input::-webkit-outer-spin-button,
.ferias-regras-card-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ferias-regras-card-unidade {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
}

.ferias-regras-btn-lapis {
  background: transparent;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  padding: 5px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}

.ferias-regras-btn-lapis:hover {
  color: #2563eb;
  background: #e2e8f0;
}

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

/* 2. Limite de PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes no Ano Seguinte */
.ferias-regras-limite-container {
  width: 100%;
}

.ferias-regras-limite-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1.25rem 1.4rem;
  display: flex;
  gap: 1.15rem;
  align-items: flex-start;
}

.ferias-regras-limite-header-ico {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-regras-limite-corpo {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  flex: 1;
  min-width: 0;
}

.ferias-regras-limite-topo {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ferias-regras-limite-titulo {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ferias-regras-limite-sub {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0;
}

.ferias-regras-limite-linha {
  display: grid;
  grid-template-columns: 240px 240px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
}

.ferias-regras-limite-col {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ferias-regras-limite-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: #334155;
  margin: 0;
}

.ferias-regras-toggle-wrap {
  display: flex;
  align-items: center;
}

.ferias-regras-input-com-unidade {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ferias-toggle-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  cursor: pointer;
  user-select: none;
  position: relative;
}

.ferias-toggle-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.ferias-toggle-slider {
  width: 40px;
  height: 22px;
  background: #cbd5e1;
  border-radius: 22px;
  position: relative;
  transition: background 0.2s ease;
}

.ferias-toggle-slider::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 2px;
  top: 2px;
  background: #ffffff;
  border-radius: 50%;
  transition: transform 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.ferias-toggle-switch input:checked + .ferias-toggle-slider {
  background: #2563eb;
}

.ferias-toggle-switch input:checked + .ferias-toggle-slider::before {
  transform: translateX(18px);
}

.ferias-toggle-texto {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
  min-width: 28px;
}

.ferias-regras-limite-info {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: 0.75rem 0.95rem;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}

.ferias-regras-info-ico {
  color: #2563eb;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.ferias-regras-info-texto {
  font-size: 0.78rem;
  color: #1e40af;
  line-height: 1.45;
}

.ferias-regras-info-texto p {
  margin: 0;
}

/* 3. RestriÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes por Intervalos */
.ferias-regras-bloco-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1.15rem 1.25rem;
}

.ferias-regras-bloco-cabecalho--com-acao {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.ferias-regras-bloco-tit-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.ferias-regras-proibicao-ico {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #fee2e2;
  color: #dc2626;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-regras-btn-add-restricao {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #2563eb;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.5rem 0.95rem;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.ferias-regras-btn-add-restricao:hover {
  background: #dbeafe;
  border-color: #93c5fd;
}

.ferias-regras-tabela-wrap {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
  margin-top: 0.85rem;
}

.ferias-regras-tabela {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}

.ferias-regras-tabela th {
  background: #f8fafc;
  color: #64748b;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  padding: 0.65rem 0.85rem;
  text-align: left;
  border-bottom: 1px solid #e2e8f0;
}

.ferias-regras-tabela td {
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid #f1f5f9;
  color: #1e293b;
  vertical-align: middle;
}

.ferias-regras-tabela tr:last-child td {
  border-bottom: none;
}

.ferias-regras-tabela-vazio {
  text-align: center;
  color: #94a3b8;
  font-style: italic;
  padding: 2.25rem 1rem !important;
}

.ferias-regras-comportamento-tag {
  background: #fee2e2;
  color: #991b1b;
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  display: inline-block;
}

.ferias-regras-status-badge {
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.2rem 0.55rem;
  border-radius: 12px;
  display: inline-block;
}

.ferias-regras-status-badge.is-ativo {
  background: #dcfce7;
  color: #166534;
}

.ferias-regras-status-badge.is-inativo {
  background: #f1f5f9;
  color: #64748b;
}

.ferias-regras-acoes-celula {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.ferias-icone-btn {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-icone-btn:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.ferias-icone-btn--editar:hover {
  color: #2563eb;
  background: #eff6ff;
}

.ferias-icone-btn--danger:hover {
  color: #dc2626;
  background: #fef2f2;
}

/* Modal de Restrição */
.ferias-cfg-modal--restricao {
  width: min(520px, 100%);
  overflow: visible;
}

.ferias-cfg-modal--restricao .ferias-cfg-modal-corpo {
  overflow: visible;
}

.ferias-restricao-intervalos-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  margin: 0.25rem 0;
}

.ferias-restricao-intervalo-box {
  position: relative;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ferias-restricao-intervalo-box:last-child .date-range-popover {
  left: auto;
  right: 0;
}

.ferias-restricao-intervalo-tit {
  font-size: 0.8rem;
  font-weight: 700;
  color: #1e293b;
}

.ferias-restricao-range-wrap {
  position: relative;
  width: 100%;
}

.ferias-restricao-range-wrap .date-range-popover {
  z-index: 200;
}

.ferias-restricao-range-wrap .ferias-cfg-range-input {
  width: 100%;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  color: #0f172a;
  padding: 0.45rem 0.65rem;
  box-sizing: border-box;
}

.ferias-restricao-sep {
  color: #94a3b8;
  font-weight: 700;
  margin-top: 1rem;
}

.ferias-restricao-info-banner {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  padding: 0.75rem 0.95rem;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0.35rem 0;
}

.ferias-restricao-info-ico {
  color: #dc2626;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.ferias-restricao-info-texto {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.78rem;
  color: #991b1b;
  line-height: 1.4;
}

.ferias-restricao-status-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.25rem;
}

@media (max-width: 1080px) {
  .ferias-regras-grid-parametros {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ferias-regras-limite-linha {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

@media (max-width: 640px) {
  .ferias-regras-grid-parametros {
    grid-template-columns: minmax(0, 1fr);
  }
  .ferias-restricao-intervalos-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ferias-regras-header-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
  .ferias-regras-header-right {
    width: 100%;
    justify-content: space-between;
  }
}

/* ============================================================
   FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias > ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes: Layout Refinado (Mockup-ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes-Regras)
   ============================================================ */

/* 1. Topo do FormulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio: Ano-ExercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio | PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o | Status | BotÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.ferias-cfg-topo-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1rem 1.35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 0.85rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.ferias-cfg-topo-campos {
  display: flex;
  align-items: flex-end;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.ferias-cfg-topo-campo-box {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-cfg-topo-campo-label {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  color: #64748b;
  letter-spacing: 0.04em;
}

.ferias-cfg-campo-select-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0.35rem 0.65rem;
  height: 38px;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ferias-cfg-campo-select-wrap .ferias-cfg-input-estatico {
  display: none !important;
}

.ferias-cfg-campo-select-wrap:focus-within {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-cfg-campo-icon {
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ferias-cfg-campo-icon svg {
  width: 16px;
  height: 16px;
}

.ferias-cfg-topo-select {
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  color: #0f172a;
  outline: none;
  cursor: pointer;
  padding: 0;
}

.ferias-cfg-topo-select:disabled {
  color: #64748b;
  cursor: default;
}

.ferias-cfg-input-estatico-texto {
  font-size: 0.88rem;
  font-weight: 700;
  color: #0f172a;
}

.ferias-cfg-topo-status-box {
  display: flex;
  align-items: center;
  margin-bottom: 2px;
}

.ferias-cfg-badge-topo {
  display: inline-flex;
  align-items: center;
}

.ferias-cfg-topo-acoes-wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
  width: 195px;
  flex-shrink: 0;
}

.ferias-cfg-btn-novo-topo {
  width: 100%;
  height: 36px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  background: #2563eb;
  border: none;
  border-radius: 6px;
  color: #ffffff;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0 0.85rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s ease;
}

.ferias-cfg-btn-novo-topo:hover {
  background: #1d4ed8;
}

.ferias-cfg-btn-novo-topo svg {
  width: 14px;
  height: 14px;
}

.ferias-cfg-btn--desativar {
  width: 100%;
  height: 36px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0 0.85rem;
  border-radius: 6px;
  border: 1px solid #fca5a5;
  background: #ffffff;
  color: #ef4444;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.ferias-cfg-btn--desativar:hover {
  background: #fef2f2;
  border-color: #f87171;
}

.ferias-cfg-btn--reativar {
  width: 100%;
  height: 36px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0 0.85rem;
  border-radius: 6px;
  border: 1px solid #bbf7d0;
  background: #ffffff;
  color: #16a34a;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.ferias-cfg-btn--reativar:hover {
  background: #f0fdf4;
  border-color: #86efac;
}

.ferias-cfg-aba-rodape {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid #e2e8f0;
}

/* 2. Aba Regras de MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o: 3 Blocos Empilhados (100% largura cada) */
.ferias-regras-conteudo-interno {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  width: 100%;
}

.ferias-regras-bloco-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.15rem 1.35rem;
  width: 100%;
  box-sizing: border-box;
}

.ferias-regras-card-parametros-wrap {
  display: flex;
  flex-direction: column;
}

.ferias-regras-header-ico-azul {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-regras-header-ico-azul svg {
  width: 18px;
  height: 18px;
}

.ferias-regras-grid-parametros-2x2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1rem;
  width: 100%;
}

.ferias-regras-grid-parametros-2x2 .ferias-regras-card-editavel {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.95rem 1.15rem;
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  min-height: auto;
  transition: all 0.15s ease;
}

.ferias-regras-grid-parametros-2x2 .ferias-regras-card-editavel:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.ferias-regras-param-card-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
}

.ferias-regras-param-ico-box {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ferias-regras-param-ico-box svg {
  width: 18px;
  height: 18px;
}

.ferias-regras-param-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.35rem;
  flex: 1;
  min-width: 0;
}

.ferias-regras-param-info .ferias-regras-card-titulo {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.2;
  text-align: center;
}

.ferias-regras-param-info .ferias-regras-card-conteudo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.15rem;
}

.ferias-regras-param-info .ferias-regras-input-box {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.15rem 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 32px;
  box-sizing: border-box;
}

.ferias-regras-param-info .ferias-regras-card-input {
  font-family: inherit;
  font-size: 1.15rem;
  font-weight: 800;
  color: #0f172a;
  border: none;
  background: transparent;
  width: 40px;
  text-align: center;
  outline: none;
  padding: 0;
  -moz-appearance: textfield;
}

.ferias-regras-card-limite-wrap {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.ferias-regras-limite-corpo-compacto {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-top: 0.85rem;
  width: 100%;
}

.ferias-regras-limite-controles-faixa {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  flex-wrap: wrap;
  padding: 0.25rem 0;
}

.ferias-regras-limite-item-grupo {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.ferias-regras-limite-info-callout {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: 0.65rem 0.95rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.82rem;
  color: #1e40af;
  line-height: 1.4;
  width: 100%;
  box-sizing: border-box;
}

.ferias-regras-limite-info-callout p {
  margin: 0;
}

.ferias-regras-restricoes-card {
  width: 100%;
}

.ferias-regras-restricoes-card .ferias-regras-tabela th {
  font-size: 0.72rem;
  padding: 0.65rem 0.85rem;
}

.ferias-regras-restricoes-card .ferias-regras-tabela td {
  font-size: 0.82rem;
  padding: 0.75rem 0.85rem;
}

.ferias-cfg-rodape-acoes {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  justify-content: flex-end;
}

.ferias-cfg-btn--inativar {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: #ffffff;
  border: 1px solid #fca5a5;
  color: #ef4444;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.5rem 1.15rem;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-cfg-btn--inativar:hover {
  background: #fef2f2;
  border-color: #f87171;
}

.ferias-cfg-btn--salvar {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: #2563eb;
  border: none;
  color: #ffffff;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.5rem 1.25rem;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.ferias-cfg-btn--salvar:hover {
  background: #1d4ed8;
}

/* ============================================================
   FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias > ExercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio Anterior (Chips, ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o e Tabela)
   ============================================================ */

/* Chips no Mapa de MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-servidor-chip--anterior {
  background: #111827 !important;
  color: #ffffff !important;
  border: 1px solid #374151 !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.ferias-servidor-chip--anterior .ferias-servidor-nome {
  color: #ffffff !important;
}

.ferias-servidor-rodada--anterior {
  background: #000000 !important;
  color: #ffffff !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  padding: 0.1rem 0.3rem !important;
  min-width: 1.6rem !important;
  border-radius: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

/* Chips em PendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias */
.pendencias-chip--anterior {
  background: #111827 !important;
  color: #ffffff !important;
  border: 1px solid #374151 !important;
  cursor: default !important;
  user-select: none;
}

.pendencias-chip--anterior .pendencias-chip-nome {
  color: #ffffff !important;
}

.period-mark--anterior {
  background: #000000 !important;
  color: #ffffff !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  padding: 0.1rem 0.3rem !important;
  min-width: 1.6rem !important;
  border-radius: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

/* Chips em ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-cons-chip--anterior {
  background: #111827 !important;
  color: #ffffff !important;
  border: 1px solid #374151 !important;
}

.ferias-cons-chip--anterior .ferias-cons-chip-data {
  color: #ffffff !important;
}

.ferias-cons-rodada--anterior {
  background: #000000 !important;
  color: #ffffff !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  padding: 0.1rem 0.3rem !important;
  min-width: 1.6rem !important;
  border-radius: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

/* Painel da Aba ExercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio Anterior na ConfiguraÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-cfg-ea-container {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 0.25rem 0;
}

.ferias-cfg-ea-header {
  margin-bottom: 0.25rem;
}

.ferias-cfg-ea-titulo {
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: 0.04em;
  margin: 0 0 0.35rem 0;
}

.ferias-cfg-ea-subtitulo {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
  line-height: 1.45;
}

/* FormulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio de AdiÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o/EdiÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.ferias-cfg-ea-form-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ferias-cfg-ea-form-header {
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 0.65rem;
}

.ferias-cfg-ea-form-titulo {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
}

.ferias-cfg-ea-form-corpo {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ferias-cfg-ea-form-linha {
  display: flex;
  gap: 1rem;
}

.ferias-cfg-ea-campo {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
}

.ferias-cfg-ea-campo--servidor {
  max-width: 420px;
}

.ferias-cfg-ea-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ferias-cfg-ea-select {
  height: 38px;
  padding: 0 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-family: inherit;
  font-size: 0.85rem;
  color: #1e293b;
  background-color: #ffffff;
  outline: none;
  transition: border-color 0.15s ease;
}

.ferias-cfg-ea-select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

/* FormulÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio de ExercÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cio Anterior (Compacto lado a lado) */
.ferias-cfg-ea-container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ferias-cfg-ea-header {
  margin-bottom: 0.5rem;
}

.ferias-cfg-ea-titulo {
  font-size: 1.15rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.01em;
  margin: 0 0 0.25rem 0;
}

.ferias-cfg-ea-subtitulo {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
}

.ferias-cfg-ea-form-card {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0.85rem 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.ferias-cfg-ea-form-header {
  padding-bottom: 0.45rem;
  margin-bottom: 0.65rem;
  border-bottom: 1px solid #e2e8f0;
}

.ferias-cfg-ea-form-titulo {
  font-size: 0.88rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ferias-cfg-ea-form-linha-dupla {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  align-items: start;
  margin-bottom: 0.65rem;
}

.ferias-cfg-ea-campo {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ferias-cfg-ea-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ferias-cfg-ea-select {
  height: 36px;
  padding: 0 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-family: inherit;
  font-size: 0.82rem;
  color: #1e293b;
  background-color: #ffffff;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ferias-cfg-ea-select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.ferias-cfg-ea-picker-wrapper {
  position: relative;
  width: 100%;
}

.ferias-cfg-ea-picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 36px;
  padding: 0 0.65rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-family: inherit;
  font-size: 0.82rem;
  color: #1e293b;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s ease;
}

.ferias-cfg-ea-picker-trigger:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}

.ferias-cfg-ea-picker-trigger.is-active,
.ferias-cfg-ea-picker-trigger:focus {
  border-color: #2563eb;
  background: #ffffff;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
  outline: none;
}

.ferias-cfg-ea-picker-icon {
  display: inline-flex;
  align-items: center;
  margin-right: 0.45rem;
  color: #64748b;
  flex-shrink: 0;
}

.ferias-cfg-ea-picker-texto {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
}

.ferias-cfg-ea-picker-texto.is-placeholder {
  color: #94a3b8;
  font-weight: 400;
}

.ferias-cfg-ea-picker-chevron {
  display: inline-flex;
  align-items: center;
  margin-left: 0.45rem;
  color: #94a3b8;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.ferias-cfg-ea-picker-trigger.is-active .ferias-cfg-ea-picker-chevron {
  transform: rotate(180deg);
}

/* Popover do calendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio convencional */
.date-range-popover.ferias-cfg-ea-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 310px;
  max-width: calc(100vw - 2rem);
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.18), 0 6px 12px rgba(15, 23, 42, 0.08);
  padding: 0.95rem;
  z-index: 100;
  user-select: none;
}

/* Estados visuais das cÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©lulas de plantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o */
.date-range-popover.ferias-cfg-ea-popover .date-range-popover-dia.is-plantao {
  background: #e0edff;
  color: #1e40af;
  font-weight: 700;
  border-radius: 6px;
  cursor: pointer;
}

.date-range-popover.ferias-cfg-ea-popover .date-range-popover-dia.is-plantao:hover {
  background: #bfdbfe;
  color: #1e3a8a;
}

.date-range-popover.ferias-cfg-ea-popover .date-range-popover-dia.is-plantao.is-selected {
  background: #0066ff !important;
  color: #ffffff !important;
  font-weight: 800;
  border-radius: 6px;
  box-shadow: 0 2px 4px rgba(0, 102, 255, 0.3);
}

.date-range-popover.ferias-cfg-ea-popover .date-range-popover-dia.is-disabled {
  color: #cbd5e1 !important;
  background: transparent !important;
  cursor: not-allowed;
  opacity: 0.45;
  pointer-events: none;
}

.ferias-cfg-ea-popover-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.75rem;
  border-top: 1px solid #f1f5f9;
  margin-top: 0.75rem;
}

.ferias-cfg-ea-popover-resumo {
  color: #64748b;
  font-size: 0.75rem;
  font-weight: 500;
}

.ferias-cfg-ea-popover-btn-limpar {
  background: none;
  border: none;
  color: #2563eb;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
}

.ferias-cfg-ea-popover-btn-limpar:hover {
  background: #eff6ff;
  text-decoration: underline;
}

/* Chips abaixo do campo */
.ferias-cfg-ea-chips-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.35rem;
}

.ferias-cfg-ea-selected-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: #e0edff;
  color: #1e40af;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  border: 1px solid #bfdbfe;
}

.ferias-cfg-ea-chip-remove {
  background: none;
  border: none;
  color: #3b82f6;
  font-size: 0.9rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ferias-cfg-ea-chip-remove:hover {
  color: #ef4444;
}

.ferias-cfg-ea-form-acoes {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.45rem;
}

.ferias-cfg-btn--salvar {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #0066ff;
  border: 1px solid #0052cc;
  color: #ffffff;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  height: 34px;
  padding: 0 0.95rem;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-cfg-btn--salvar:hover {
  background: #0052cc;
}

.ferias-cfg-btn--cancelar {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #475569;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  height: 34px;
  padding: 0 0.95rem;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-cfg-btn--cancelar:hover {
  background: #f8fafc;
  border-color: #94a3b8;
}

.ferias-cfg-btn--cancelar:hover {
  background: #f8fafc;
  border-color: #94a3b8;
}

/* BotÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o + Adicionar servidor (discreto / auto width) */
.ferias-cfg-ea-topo-acoes {
  display: flex;
  justify-content: flex-start;
}

.ferias-cfg-ea-btn-adicionar {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  width: auto;
  background: #eff6ff;
  border: 1px solid #93c5fd;
  color: #1d4ed8;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.45rem 0.9rem;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ferias-cfg-ea-btn-adicionar:hover:not(:disabled) {
  background: #dbeafe;
  border-color: #60a5fa;
  color: #1e40af;
}

.ferias-cfg-ea-btn-adicionar:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Tabela de Servidores Cadastrados */
.ferias-cfg-ea-tabela-wrap {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
}

.ferias-cfg-ea-tabela {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.85rem;
}

.ferias-cfg-ea-tabela th {
  background: #f8fafc;
  color: #475569;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e2e8f0;
}

.ferias-cfg-ea-tabela td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.ferias-cfg-ea-tabela tr:last-child td {
  border-bottom: none;
}

.ferias-cfg-ea-tabela tr:hover td {
  background: #fafafa;
}

.ferias-cfg-ea-td-servidor strong {
  color: #0f172a;
  font-weight: 700;
}

.ferias-cfg-ea-chips-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.ferias-cfg-ea-tabela-chip {
  display: inline-block;
  background: #e0edff;
  color: #1e40af;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.2rem 0.55rem;
  border-radius: 5px;
  border: 1px solid #bfdbfe;
}

.ferias-cfg-ea-td-acoes {
  text-align: right;
  white-space: nowrap;
}

.ferias-icone-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.15s ease;
  margin-left: 0.35rem;
  padding: 0;
}

.ferias-icone-btn--editar {
  color: #334155;
}

.ferias-icone-btn--editar:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.ferias-icone-btn--danger {
  color: #ef4444;
  border-color: #fca5a5;
  background: #fff5f5;
}

.ferias-icone-btn--danger:hover {
  background: #fee2e2;
  border-color: #f87171;
}

.ferias-cfg-ea-empty td {
  text-align: center;
  color: #94a3b8;
  padding: 1.5rem 1rem;
  font-style: italic;
}

@media (max-width: 680px) {
  .ferias-cfg-ea-form-linha-dupla {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
}

@media (max-width: 800px) {
  .ferias-regras-grid-parametros-2x2 {
    grid-template-columns: minmax(0, 1fr);
  }
  .ferias-regras-limite-controles-faixa {
    gap: 1rem;
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==========================================================================
   FÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©rias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  Card de InstruÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de Fase (MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o)
   ========================================================================== */

.ferias-instrucao-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #0284c7;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  margin-bottom: 0.5rem;
}

.ferias-instrucao-card-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #0284c7;
  flex-shrink: 0;
}

.ferias-instrucao-card-ico svg {
  width: 20px;
  height: 20px;
}

.ferias-instrucao-card-texto {
  font-size: 0.84rem;
  color: #334155;
  font-weight: 500;
  line-height: 1.45;
}

/* ==========================================================================
   Férias — Drawer Lateral da Fila de Ajuste (Sobreposto / Primeira Versão)
   ========================================================================== */

/* Camada transparente: serve apenas para capturar o clique fora e recolher o drawer.
   Sem escurecimento e sem desfoque — a página atrás permanece normal e nítida. */
.ferias-drawer-overlay {
  position: fixed;
  inset: 0;
  background: transparent;
  z-index: 1045;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease-in-out;
}

.ferias-drawer-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.ferias-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 360px;
  max-width: 92vw;
  background: #ffffff;
  border-left: 1px solid #cbd5e1;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
  z-index: 1050;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}

.ferias-drawer.is-open {
  transform: translateX(0);
}

/* Separador discreto na linha principal do item do drawer: 1 · Roberto · 08:00–08:30 */
.ferias-drawer-sep {
  color: #94a3b8;
  font-weight: 400;
  margin: 0 0.15rem;
  user-select: none;
}

/* Card INSTRUÇÕES — Resumo compacto da Fila de Ajuste */
.ferias-instrucao-fila-resumo {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.5rem 0.65rem;
  margin-bottom: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ferias-instrucao-fila-resumo--sua-vez {
  background: #f0fdf4;
  border-color: #bbf7d0;
}

.ferias-instrucao-fila-titulo {
  font-size: 0.74rem;
  font-weight: 800;
  color: #166534;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ferias-instrucao-fila-resumo--proxima-vez .ferias-instrucao-fila-titulo {
  color: #475569;
}

.ferias-instrucao-fila-linha {
  font-size: 0.82rem;
  color: #1e293b;
  font-weight: 600;
  line-height: 1.35;
}

.ferias-instrucao-fila-linha--tempo {
  font-size: 0.76rem;
  color: #15803d;
  font-weight: 700;
}
/* Cabeçalho do drawer compacto */
.ferias-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e2e8f0;
  background: #ffffff;
  flex-shrink: 0;
}

.ferias-drawer-header-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.ferias-drawer-header-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.ferias-drawer-header-titulo-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.ferias-drawer-titulo {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.25;
}

.ferias-drawer-subtitulo {
  font-size: 0.75rem;
  color: #64748b;
  font-weight: 500;
}

.ferias-drawer-status {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.12rem 0.45rem;
  border-radius: 4px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.ferias-drawer-status--aguardando-inicio {
  background: var(--status-aguardando-bg);
  color: var(--status-aguardando-cor);
  border: 1px solid var(--status-aguardando-borda);
}

.ferias-drawer-status--em-andamento {
  background: var(--status-andamento-bg);
  color: var(--status-andamento-cor);
  border: 1px solid var(--status-andamento-borda);
}

.ferias-drawer-status--encerrada {
  background: var(--status-encerrado-bg);
  color: var(--status-encerrado-cor);
  border: 1px solid var(--status-encerrado-borda);
}

.ferias-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 0.75rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* Bloco B — Resumo da Fila (Extremamente compacto de 2 linhas) */
.ferias-drawer-resumo-compacto {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ferias-drawer-resumo-compacto-row {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1.2fr;
  gap: 0.5rem;
  align-items: center;
  text-align: center;
}

.ferias-drawer-resumo-compacto-head .ferias-drawer-resumo-cell {
  font-size: 0.65rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ferias-drawer-resumo-compacto-valores .ferias-drawer-resumo-cell {
  font-size: 0.8rem;
  font-weight: 700;
  color: #0f172a;
}

.ferias-drawer-secao-fila {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ferias-drawer-secao-titulo h3 {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 700;
  color: #1e293b;
}

.ferias-drawer-lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Card de servidor compacto (Exatamente 2 Linhas Visuais) */
.ferias-drawer-item {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.45rem 0.65rem;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.ferias-drawer-item-row1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  line-height: 1.25;
  white-space: nowrap;
}

.ferias-drawer-item-ident {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
  width: 100%;
}

.ferias-drawer-item-ordem {
  font-size: 0.76rem;
  font-weight: 700;
  color: #64748b;
  min-width: 12px;
}

.ferias-drawer-item-nome {
  font-size: 0.82rem;
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
}

.ferias-drawer-item-tempo-bloco {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: auto;
  white-space: nowrap;
}

.ferias-drawer-item-intervalo {
  font-size: 0.76rem;
  font-weight: 600;
  color: #64748b;
  white-space: nowrap;
}

.ferias-drawer-sep--timer {
  color: #94a3b8;
  font-size: 0.72rem;
}

.ferias-drawer-item-timer {
  font-size: 0.74rem;
  font-weight: 800;
  color: #15803d;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  letter-spacing: 0.02em;
}

.ferias-drawer-item-status-wrap {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

.ferias-drawer-item-row2 {
  display: flex;
  align-items: center;
  margin-top: 0.12rem;
  line-height: 1.25;
}

.ferias-drawer-item-acao {
  font-size: 0.70rem;
  color: #475569;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Flags pequenas, compactas e visualmente destacadas na Linha 1 */
.ferias-drawer-flag {
  font-size: 0.62rem;
  font-weight: 700;
  padding: 0.08rem 0.35rem;
  border-radius: 4px;
  white-space: nowrap;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

/* Cores dos status:
   - Aguarde → amarelo
   - Sua vez → verde
   - Feito → vermelho
   - Faltou → vermelho
*/
.ferias-drawer-flag--aguarde,
.ferias-drawer-flag--aguardando {
  background: var(--status-aguardando-bg);
  color: var(--status-aguardando-cor);
  border: 1px solid var(--status-aguardando-borda);
}

.ferias-drawer-flag--sua-vez,
.ferias-drawer-flag--ativo {
  background: var(--status-andamento-bg);
  color: var(--status-andamento-cor);
  border: 1px solid var(--status-andamento-borda);
  font-weight: 800;
}

.ferias-drawer-flag--feito,
.ferias-drawer-flag--concluido {
  background: var(--status-encerrado-bg);
  color: var(--status-encerrado-cor);
  border: 1px solid var(--status-encerrado-borda);
}

.ferias-drawer-flag--faltou,
.ferias-drawer-flag--expirado {
  background: var(--status-encerrado-bg);
  color: var(--status-encerrado-cor);
  border: 1px solid var(--status-encerrado-borda);
}

/* PRIORIZAÇÃO VISUAL: Servidor ativo recebe destaque sutil no card inteiro */
.ferias-drawer-item.is-active,
.ferias-drawer-item.is-sua-vez {
  background: #f0fdf4;
  border: 1.5px solid #86efac;
  box-shadow: 0 1px 3px rgba(22, 101, 52, 0.08);
}

.ferias-drawer-item.is-concluido {
  background: #fafafa;
  opacity: 0.85;
}

.ferias-drawer-item.is-expirado {
  background: #fff5f5;
  border-color: #fed7d7;
}

/* Card INFORMAÇÕES — Espelho do item do servidor logado na fila */
.ferias-instrucao-fila-espelho {
  margin-top: 0.65rem;
  padding: 0.55rem 0.7rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-instrucao-fila-espelho-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.ferias-instrucao-fila-espelho-pos {
  font-size: 0.78rem;
  font-weight: 600;
  color: #1e293b;
}

.ferias-instrucao-fila-espelho-timer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.25rem 0.5rem;
  background: #e0f2fe;
  border: 1px solid #bae6fd;
  border-radius: 4px;
}

.ferias-instrucao-fila-espelho-timer-rotulo {
  font-size: 0.72rem;
  font-weight: 700;
  color: #0369a1;
}

.ferias-instrucao-fila-espelho-timer {
  font-size: 0.88rem;
  font-weight: 800;
  color: #0284c7;
  font-variant-numeric: tabular-nums;
}

.ferias-instrucao-fila-espelho-detalhe {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 0.74rem;
}

.ferias-instrucao-fila-espelho-motivo {
  font-weight: 600;
  color: #334155;
}

.ferias-instrucao-fila-espelho-periodo {
  font-size: 0.71rem;
  color: #64748b;
}

/* Aviso importante compacto */
.ferias-drawer-aviso-importante {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.65rem 0.8rem;
  color: #475569;
  font-size: 0.72rem;
  line-height: 1.4;
}

.ferias-drawer-aviso-importante-topo {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 700;
  color: #334155;
  margin-bottom: 0.3rem;
  font-size: 0.74rem;
}

.ferias-drawer-aviso-importante-regras {
  margin: 0;
  padding-left: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ferias-drawer-alca-container {
  position: fixed;
  right: 0;
  /* Fixada no TOPO, junto ao cabeçalho do drawer: não sobrepõe os cards/conteúdo
     da página (antes ficava centralizada verticalmente, cobrindo a área útil). */
  top: 2.9rem;
  z-index: 1030;
}

.ferias-drawer-alca-btn {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  background: #1e40af;
  color: #ffffff;
  border: 1px solid #1d4ed8;
  border-right: none;
  border-radius: 8px 0 0 8px;
  padding: 0.65rem 0.85rem;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: -3px 4px 14px rgba(30, 64, 175, 0.28);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
}

.ferias-drawer-alca-btn:hover {
  background: #1d4ed8;
  transform: translateX(-3px);
  box-shadow: -4px 6px 18px rgba(30, 64, 175, 0.38);
}

.ferias-drawer-alca-btn.is-sua-vez {
  background: linear-gradient(135deg, #15803d, #16a34a);
  border-color: #15803d;
  box-shadow: -3px 4px 14px rgba(22, 163, 74, 0.35);
}

.ferias-drawer-alca-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ferias-drawer-alca-pulso {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.7);
  animation: feriasPulsoAlca 1.8s infinite;
}

@keyframes feriasPulsoAlca {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(74, 222, 128, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(74, 222, 128, 0);
  }
}

.ferias-drawer-secao-encerrados {
  margin-top: 0.5rem;
  border-top: 1px dashed #cbd5e1;
  padding-top: 0.85rem;
}

.ferias-drawer-secao-titulo--encerrados h3 {
  color: #64748b;
  font-size: 0.84rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ferias-drawer-item.is-concluido {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  opacity: 0.92;
}

.ferias-drawer-item.is-concluido .ferias-drawer-posicao-badge {
  background: #dcfce7;
  color: #166534;
  border-color: #86efac;
}

.ferias-drawer-item.is-expirado {
  background: #fff1f2;
  border: 1px solid #fecdd3;
  opacity: 0.92;
}

.ferias-drawer-item.is-expirado .ferias-drawer-posicao-badge {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fca5a5;
}

.ferias-drawer-item-detalhe-tempo {
  font-size: 0.72rem;
  font-weight: 600;
  color: #15803d;
  white-space: nowrap;
}

.ferias-drawer-item-detalhe-tempo--expirado {
  color: #b91c1c;
}

.ferias-drawer-vazio-bloco {
  padding: 0.85rem;
  text-align: center;
  color: #94a3b8;
  font-size: 0.82rem;
  font-style: italic;
  background: #f8fafc;
  border: 1px dashed #e2e8f0;
  border-radius: 8px;
}

/* ---------------------------------------------------------------------------
   ETAPA 6: FORMULÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â RIO DE AJUSTE ATIVO E MODAL DE CONFIRMAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O IRREVOGÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â VEL
   --------------------------------------------------------------------------- */
.ferias-ajuste-form-card {
  background: #f0fdf4;
  border: 1px solid #86efac;
  border-radius: 8px;
  padding: 0.75rem 0.85rem;
  margin-bottom: 0.85rem;
}

.ferias-ajuste-form-card[data-modo-ajuste="INSERIR"] {
  background: #fefce8;
  border-color: #fde047;
}

.ferias-ajuste-form-topo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.ferias-ajuste-form-titulos {
  display: flex;
  flex-direction: column;
}

.ferias-ajuste-form-titulo {
  font-size: 0.92rem;
  color: #166534;
  font-weight: 700;
  line-height: 1.2;
}

.ferias-ajuste-form-card[data-modo-ajuste="INSERIR"] .ferias-ajuste-form-titulo {
  color: #854d0e;
}

.ferias-ajuste-form-sub {
  font-size: 0.78rem;
  color: #475569;
}

.ferias-ajuste-detalhe-bloco {
  background: #ffffff;
  border: 1px solid #dcfce7;
  border-radius: 6px;
  padding: 0.45rem 0.65rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.82rem;
}

.ferias-ajuste-form-card[data-modo-ajuste="INSERIR"] .ferias-ajuste-detalhe-bloco {
  border-color: #fef08a;
}

.ferias-ajuste-detalhe-rotulo {
  color: #64748b;
  font-weight: 500;
}

.ferias-ajuste-detalhe-valor {
  color: #0f172a;
  font-weight: 600;
}

.ferias-ajuste-detalhe-dias {
  color: #15803d;
  font-weight: 700;
  font-size: 0.78rem;
}

.ferias-ajuste-instrucao-escolha {
  font-size: 0.82rem;
  color: #334155;
  margin-top: 0.5rem;
  margin-bottom: 0;
  line-height: 1.35;
}

.ferias-modal-confirmacao-ajuste {
  max-width: 500px;
  width: 92vw;
}

.ferias-confirmacao-texto-intro {
  font-size: 0.95rem;
  color: #1e293b;
  margin-bottom: 0.75rem;
  line-height: 1.4;
}

.ferias-confirmacao-bloco-periodos {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.75rem 0.85rem;
  margin-bottom: 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.ferias-confirmacao-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.86rem;
  color: #475569;
}

.ferias-confirmacao-linha--novo {
  color: #0f172a;
  padding-top: 0.35rem;
  border-top: 1px dashed #cbd5e1;
}

.ferias-confirmacao-rotulo {
  font-weight: 500;
}

.ferias-confirmacao-valor {
  font-weight: 600;
}

.ferias-confirmacao-valor--destaque {
  color: #1d4ed8;
  font-weight: 700;
  font-size: 0.92rem;
}

.ferias-confirmacao-alertas {
  background: #fefce8;
  border: 1px solid #fde047;
  border-radius: 8px;
  padding: 0.75rem 0.85rem;
  color: #854d0e;
  font-size: 0.82rem;
  line-height: 1.45;
}

.ferias-confirmacao-alertas-titulo {
  display: block;
  font-weight: 700;
  color: #713f12;
  margin-bottom: 0.35rem;
}

.ferias-confirmacao-lista-regras {
  margin: 0;
  padding-left: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

/* ==========================================================================
   Rota MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  composiÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o em DUAS COLUNAS (referÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia visual:
   mockup-marcacao-novo.png)
   - Coluna esquerda: cards Ano/PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o + PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo de MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o + InstruÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes,
     limitados exatamente ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â  largura das abas trimestrais e da tabela anual.
   - Coluna direita: banner do usuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio + Nova marcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o + Resumo + Minhas
     marcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes, ALINHADA AO TOPO da composiÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o.
   ========================================================================== */

.ferias-marcacao-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 400px;
  gap: 1rem;
  align-items: start; /* garante a coluna do usuÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡rio no topo dos cards superiores */
}

.ferias-marcacao-col-esq {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}

/* Faixa superior: Ano/PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o | PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo de MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o | InstruÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes */
.ferias-topo-esquerdo {
  display: grid;
  grid-template-columns: 140px minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: stretch;
  min-width: 0;
}

.ferias-topo-esquerdo.ferias-topo-esquerdo--sem-resumo {
  grid-template-columns: 140px minmax(0, 1fr);
}

/* Os cards de contexto jÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¡ possuem grid prÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³pria internamente; dentro da faixa
   eles passam a ocupar as cÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©lulas da faixa (Ano/PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o + PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo). */
.ferias-topo-esquerdo > .ferias-cards {
  display: contents;
}

.ferias-topo-esquerdo > .ferias-cards > .ferias-cards-col-contexto {
  width: 100%;
  flex: 1 1 auto;
}

.ferias-topo-esquerdo > .ferias-cards > .ferias-card-periodo-marcacao {
  max-width: none;
  min-width: 0;
}

/* O card de instruÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes pertence ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â  MESMA faixa/largura da tabela */
.ferias-topo-esquerdo > .ferias-instrucao-card {
  height: 100%;
  margin-bottom: 0;
}


/* --------------------------------------------------------------------------
   Card PERÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â ODO DE MARCAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  cabeÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§alho centralizado, mais alto, com fundo
   levemente diferenciado e separaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o clara do conteÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºdo
   -------------------------------------------------------------------------- */
.ferias-card-periodo-marcacao {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}

.ferias-card-periodo-marcacao .ferias-card-rodada-topo {
  justify-content: center;
  min-height: 2.3rem;
  padding: 0.6rem 0.85rem;
  background: #eff4fa;
  border-bottom: 1px solid #dbe4ee;
  border-radius: 7px 7px 0 0;
}

.ferias-card-periodo-marcacao .ferias-card-rodada-ident {
  width: 100%;
  justify-content: center;
}

.ferias-card-periodo-marcacao .ferias-card-rodada-titulo {
  font-size: 0.82rem;
  font-weight: 800;
  color: #0d2670;
  text-align: center;
  letter-spacing: 0.07em;
}

.ferias-card-periodo-marcacao .ferias-card-rodada-fases {
  padding: 0.6rem 0.7rem 0.7rem;
  gap: 0.45rem;
}

/* ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â cone alinhado ao topo do texto principal; status ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â  direita e centralizado */
.ferias-card-periodo-marcacao .ferias-card-rodada-fase {
  align-items: flex-start;
  gap: 0.5rem;
}

.ferias-card-periodo-marcacao .ferias-card-fase-ico {
  margin-top: 0.08rem;
  color: #0284c7;
}

.ferias-card-periodo-marcacao .ferias-card-fase-ico svg {
  width: 18px;
  height: 18px;
}

.ferias-card-periodo-marcacao .ferias-card-fase-detalhe {
  gap: 0.05rem;
}

.ferias-card-periodo-marcacao .ferias-card-fase-nome {
  font-size: 0.74rem;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.ferias-card-periodo-marcacao .ferias-card-fase-datas {
  font-size: 0.69rem;
}

.ferias-card-periodo-marcacao .ferias-card-fase-estado {
  align-self: center;
  margin-left: auto;
  flex: 0 0 auto;
}


/* --------------------------------------------------------------------------
   Card INSTRUÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¢ES ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  compacto, dentro da coluna esquerda (largura da tabela)
   -------------------------------------------------------------------------- */
.ferias-instrucao-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.6rem 0.75rem 0.7rem;
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #0284c7;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  margin-bottom: 0;
}

.ferias-instrucao-card-topo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.ferias-instrucao-card-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #0284c7;
  flex-shrink: 0;
}

.ferias-instrucao-card-ico svg {
  width: 16px;
  height: 16px;
}

.ferias-instrucao-card-titulo {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0d2670;
}

.ferias-instrucao-card-texto {
  margin: 0;
  font-size: 0.78rem;
  color: #334155;
  font-weight: 500;
  line-height: 1.4;
}

/* --------------------------------------------------------------------------
   ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  chip de preferÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia com ORDINAL (1ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Âª/2ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Âª/3ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Âª)
   Cores seguem a mesma semÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ntica da rota MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (p1 verde / p2 vermelho /
   p3 azul = #118238 / #e11717 / #1f6eea).
   -------------------------------------------------------------------------- */
.ferias-cons-rodada {
  min-width: 1.3rem;
  width: auto;
  height: 1.15rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  font-size: 0.6rem;
  letter-spacing: 0.01em;
}

/* --------------------------------------------------------------------------
   Responsivo da composição em duas colunas e quando a largura não comporta
   -------------------------------------------------------------------------- */

@media (max-width: 1366px) {
  .ferias-marcacao-layout {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
    gap: 0.85rem;
  }
}

@media (max-width: 1240px) {
  .ferias-topo-esquerdo {
    grid-template-columns: 140px minmax(0, 1fr);
  }
}

.ferias-minhas {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}

@media (max-width: 1100px) {
  .ferias-marcacao-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 900px) {
  .ferias-topo-esquerdo {
    grid-template-columns: 140px minmax(0, 1fr);
  }

  .ferias-topo-esquerdo > .ferias-instrucao-card {
    display: none !important;
  }
}

@media (max-width: 560px) {
  .ferias-topo-esquerdo {
    grid-template-columns: minmax(0, 1fr);
  }

  .ferias-topo-esquerdo > .ferias-cards > .ferias-cards-col-contexto {
    flex-direction: row;
  }
}

/* ==========================================================================
   Cards "PERÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â ODO DE MARCAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O" e "INSTRUÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¢ES" ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  padrÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o visual ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºnico
   Mesma largura, mesma altura, mesmo cabeÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§alho, mesmo corpo.
   ========================================================================== */

/* Larguras pareadas: Ano/PlantÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (140px) + PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo + InstruÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes (1fr cada) */
.ferias-topo-esquerdo {
  grid-template-columns: 140px minmax(0, 1fr) minmax(0, 1fr);
}

.ferias-topo-esquerdo > .ferias-cards > .ferias-card-periodo-marcacao {
  height: 100%;
}

/* CabeÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§alho compartilhado (PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo de MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o + InstruÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes, nas duas rotas) */
.ferias-topo-esquerdo .ferias-card-cabecalho,
.ferias-card-periodo-marcacao .ferias-card-cabecalho {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.3rem;
  padding: 0.6rem 0.85rem;
  background: #eff4fa;
  border-bottom: 1px solid #dbe4ee;
  border-radius: 7px 7px 0 0;
}

.ferias-topo-esquerdo .ferias-card-cabecalho-ident,
.ferias-card-periodo-marcacao .ferias-card-cabecalho-ident {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
  min-width: 0;
}

.ferias-topo-esquerdo .ferias-card-cabecalho-ico,
.ferias-card-periodo-marcacao .ferias-card-cabecalho-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #0284c7;
  flex: 0 0 auto;
}

.ferias-topo-esquerdo .ferias-card-cabecalho-ico svg,
.ferias-card-periodo-marcacao .ferias-card-cabecalho-ico svg {
  width: 16px;
  height: 16px;
}

.ferias-topo-esquerdo .ferias-card-cabecalho-titulo,
.ferias-card-periodo-marcacao .ferias-card-cabecalho-titulo {
  font-size: 0.82rem;
  font-weight: 800;
  color: #0d2670;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  line-height: 1.2;
  text-align: center;
}

/* Corpo compartilhado */
.ferias-topo-esquerdo .ferias-card-corpo,
.ferias-card-periodo-marcacao .ferias-card-corpo {
  padding: 0.6rem 0.7rem 0.7rem;
  min-width: 0;
}

/* --------------------------------------------------------------------------
   Card INSTRUÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¢ES ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  mesmo formato do card PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo de MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o
   -------------------------------------------------------------------------- */
.ferias-instrucao-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  height: 100%;
  min-height: 0;
  padding: 0;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
  overflow: hidden;
  margin-bottom: 0;
}

.ferias-instrucao-card-topo {
  flex: 0 0 auto;
}

.ferias-instrucao-card-corpo {
  flex: 1 1 auto;
}

.ferias-instrucao-lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

/* Bolinha azul escura + texto legÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­vel */
.ferias-instrucao-item {
  position: relative;
  padding-left: 1.05rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: #334155;
  font-weight: 500;
}

.ferias-instrucao-item::before {
  content: "";
  position: absolute;
  left: 0.05rem;
  top: 0.42rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #0d2670;
}


/* ==========================================================================
   ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  card lateral focado no PERÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â ODO DE MARCAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O
   Coluna lateral estreita (300px): perÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â© o elemento principal,
   status fica ABAIXO do perÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo e o botÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de fechamento abaixo do conteÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºdo.
   ========================================================================== */
.ferias-cons-periodo-card {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  min-width: 0;
}

.ferias-cons-periodo-card h2 {
  display: block;
  margin: 0;
  color: var(--app-navy);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

.ferias-cons-periodo-conteudo {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
}

/* Elemento principal do card */
.ferias-cons-periodo-intervalo {
  margin: 0;
  color: var(--app-navy);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.ferias-cons-periodo-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
}

.ferias-cons-periodo-status-label {
  color: var(--app-text-muted);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* ==========================================================================
   FECHAMENTO DO BLOCO ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  DRAG-AND-DROP, SETAS E CORES UNIFICADAS
   Paleta oficial das preferÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias (posiÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ATUAL do perÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo):
   1ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Âª -> verde (#118238) | 2ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Âª -> vermelho (#e11717) | 3ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Âª -> azul (#1f6eea)
   ========================================================================== */

/* --------------------------------------------------------------------------
   Setas de reordenaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o: levemente maiores, mais escuras e um pouco mais
   afastadas do rÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³tulo ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  ainda discretas; disabled visÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­vel porÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©m suavizado.
   -------------------------------------------------------------------------- */
.ferias-marcacao-item .ferias-btn-reordenar-compacto {
  width: 22px;
  height: 22px;
  min-width: 22px;
  color: #7c8794;
}

.ferias-marcacao-item .ferias-btn-reordenar-compacto svg {
  width: 13px;
  height: 13px;
}

.ferias-marcacao-item .ferias-btn-reordenar-compacto:hover {
  background: rgba(13, 38, 112, 0.09);
  color: #0d2670;
}

.ferias-marcacao-item .ferias-btn-reordenar-compacto:disabled {
  opacity: 0.32;
  color: #b6bfc9;
}

.ferias-marcacao-bloco-preferencia {
  gap: 0.5rem;
}

.ferias-marcacao-acoes-mover {
  gap: 0.1rem;
}

/* --------------------------------------------------------------------------
   Drag-and-drop de reordenaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o em Minhas marcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âµes
   -------------------------------------------------------------------------- */
.ferias-marcacao-item[draggable="true"] {
  cursor: grab;
}

.ferias-marcacao-item[draggable="true"]:active {
  cursor: grabbing;
}

/* NÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o arrastar pelos controles (setas/editar/excluir) */
.ferias-marcacao-item button {
  cursor: pointer;
}

.ferias-marcacao-item.is-arrastando {
  opacity: 0.55;
  border-radius: 6px;
  background: #f8fafc;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
}

.ferias-marcacao-item.is-drop-antes {
  box-shadow: inset 0 2px 0 0 #0d2670;
}

.ferias-marcacao-item.is-drop-depois {
  box-shadow: inset 0 -2px 0 0 #0d2670;
}

.ferias-marcacao-item.is-drop-antes,
.ferias-marcacao-item.is-drop-depois {
  background: #f2f7fd;
  border-radius: 6px;
}

/* --------------------------------------------------------------------------
   PendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  o CHIP inteiro reflete a preferÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia atual
   -------------------------------------------------------------------------- */
.pendencias-chip--servidor.pendencias-chip--pref1 {
  background: #eefaf2;
  border: 1px solid #9dd8ae;
  color: #0f5132;
}

.pendencias-chip--servidor.pendencias-chip--pref2 {
  background: #fdf1f1;
  border: 1px solid #f0b3b3;
  color: #7f1d1d;
}

.pendencias-chip--servidor.pendencias-chip--pref3 {
  background: #eff4fe;
  border: 1px solid #b3cdf6;
  color: #1e3a8a;
}

/* Marca ordinal do chip segue a preferÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncia (vence o verde fixo anterior) */
.pendencias-chip--pref1 .period-mark,
.pendencias-chip--pref1.period-mark {
  background: #118238;
}

.pendencias-chip--pref2 .period-mark,
.pendencias-chip--pref2.period-mark {
  background: #e11717;
}

.pendencias-chip--pref3 .period-mark,
.pendencias-chip--pref3.period-mark {
  background: #1f6eea;
}

/* Chips de EXCEDENTES: mesmas regras do chip de servidor (tons light da tabela
   e ordinal visÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­vel com texto na cor cheia) ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  as regras genÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â©ricas
   `.pendencias-chip--prefN` / `.pendencias-chip--prefN .period-mark` acima sÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o a
   ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºnica fonte de verdade; nada de fundo sÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â³lido sobrescrevendo o ordinal. */

/* --------------------------------------------------------------------------
   ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  coluna SituaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (Total / Parcial / ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ) mais compacta
   -------------------------------------------------------------------------- */
.ferias-cons-situacao .ferias-cons-badge {
  min-height: 24px;
  padding: 0.05rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
  border-radius: 6px;
}

.ferias-cons-badge--total {
  background: #e9f7ef;
  color: #087a4c;
}

.ferias-cons-badge--parcial {
  background: #fff4df;
  color: #b57600;
}

.ferias-cons-situacao-vazio {
  display: inline-block;
  color: #94a3b8;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
}

/* ==========================================================================
   AJUSTE FINO ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  chips de PendÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âªncias (light) + card de PerÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo na ConsolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o
   ========================================================================== */

/* --------------------------------------------------------------------------
   PENDÃƒÆ’Ã†â€™Ãƒâ€¦Ã‚Â NCIAS: mesmo esquema de cores da TABELA DE MARCAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O, em tons LIGHT
   (verde light / vermelho light / azul light) para o CHIP INTEIRO ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â
   inclusive os chips da coluna EXCEDENTES.
   Paleta da tabela: r1 #f7fff8/#9dd8ae ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· r2 #fff9f9/#ffb7b7 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· r3 #f8fbff/#a9c7ff
   -------------------------------------------------------------------------- */
.pendencias-chip--servidor.pendencias-chip--pref1 {
  background: #f7fff8;
  border: 1px solid #9dd8ae;
  color: #1b5e20;
}

.pendencias-chip--servidor.pendencias-chip--pref2 {
  background: #fff9f9;
  border: 1px solid #ffb7b7;
  color: #b71c1c;
}

.pendencias-chip--servidor.pendencias-chip--pref3 {
  background: #f8fbff;
  border: 1px solid #a9c7ff;
  color: #0d47a1;
}

.pendencias-chip--servidor.pendencias-chip--pref1:hover {
  background: #eefaf1;
  border-color: #7cc796;
}

.pendencias-chip--servidor.pendencias-chip--pref2:hover {
  background: #fdf0f0;
  border-color: #f19d9d;
}

.pendencias-chip--servidor.pendencias-chip--pref3:hover {
  background: #eef5ff;
  border-color: #8fb4fb;
}

/* Formatação visual unificada de EXCEDENTE em Pendências (mesmo padrão de Marcação e Consolidação) */
.pendencias-chip.pendencias-chip--excedente,
.pendencias-chip.ferias-servidor-chip--excedente,
.pendencias-chip--servidor.pendencias-chip--excedente {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #f59e0b;
  box-shadow: 0 1px 3px rgba(245, 158, 11, 0.18);
  font-weight: 700;
}

.pendencias-chip.pendencias-chip--excedente:hover,
.pendencias-chip.ferias-servidor-chip--excedente:hover,
.pendencias-chip--servidor.pendencias-chip--excedente:hover {
  background: #fde68a;
  border-color: #d97706;
}

.pendencias-chip.pendencias-chip--excedente .pendencias-chip-nome,
.pendencias-chip.ferias-servidor-chip--excedente .pendencias-chip-nome,
.pendencias-chip--servidor.pendencias-chip--excedente .pendencias-chip-nome {
  color: #92400e;
  font-weight: 700;
}

.pendencias-chip.pendencias-chip--excedente .period-mark,
.pendencias-chip.ferias-servidor-chip--excedente .period-mark,
.pendencias-chip--servidor.pendencias-chip--excedente .period-mark {
  background: #d97706;
  color: #ffffff;
}

/* Ordinal do chip: tom LIGHT com texto na cor cheia da preferência */
.pendencias-chip--pref1 .period-mark,
.pendencias-chip--pref1.period-mark {
  background: rgba(17, 130, 56, 0.16);
  color: #118238;
}

.pendencias-chip--pref2 .period-mark,
.pendencias-chip--pref2.period-mark {
  background: rgba(225, 23, 23, 0.16);
  color: #e11717;
}

.pendencias-chip--pref3 .period-mark,
.pendencias-chip--pref3.period-mark {
  background: rgba(31, 110, 234, 0.16);
  color: #1f6eea;
}

/* O nome do servidor acompanha o tom do chip (legibilidade garantida) */
.pendencias-chip--pref1 .pendencias-chip-nome { color: #1b5e20; }
.pendencias-chip--pref2 .pendencias-chip-nome { color: #b71c1c; }
.pendencias-chip--pref3 .pendencias-chip-nome { color: #0d47a1; }

/* --------------------------------------------------------------------------
   CONSOLIDAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O: card lateral = MESMO card "PERÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â ODO DE MARCAÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢O" da rota
   MarcaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o; a ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Âºnica diferenÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§a ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â© o STATUS DA FASE ABAIXO DO PERÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â ODO.
   Embaixo do card fica o botÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o "Fechar consolidaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o".
   -------------------------------------------------------------------------- */
.ferias-cons-bloco-periodo {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}

.ferias-cons-periodo-card {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ferias-cons-periodo-nota {
  margin: 0;
}

/* Status abaixo do perÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­odo (empilha na mesma coluna do texto) */
.ferias-card-periodo-marcacao--lateral .ferias-card-rodada-fase {
  flex-wrap: wrap;
  row-gap: 0.3rem;
}

.ferias-card-periodo-marcacao--lateral .ferias-card-fase-estado {
  flex: 0 0 100%;
  align-self: flex-start;
  margin-left: 1.55rem;
  white-space: normal;
}

.ferias-card-periodo-marcacao--lateral .ferias-card-fase-nome {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.ferias-card-periodo-marcacao--lateral .ferias-card-fase-datas {
  white-space: normal;
}

/* BotÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o de fechamento sempre abaixo do card, ocupando a largura da coluna */
.ferias-cons-bloco-periodo .ferias-cons-fechar {
  margin-top: 0.1rem;
}

/* ==========================================================================
   PENDÃƒÆ’Ã†â€™Ãƒâ€¦Ã‚Â NCIAS ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â  CARD "RESULTADO DO GAP"
   Fronteira explÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­cita entre o quadro PROVISÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…â€œRIO do gestor e o resultado OFICIAL.
   ========================================================================== */
/* ==========================================================================
   PENDÃƒÆ’Ã…Â NCIAS ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â  BARRA DE AÃƒÆ’Ã¢â‚¬Â¡ÃƒÆ’Ã¢â‚¬Â¢ES DA ABA EXCEDENTES
   A tabela de ocorrÃƒÆ’Ã‚Âªncias continua sendo a ferramenta principal de movimentaÃƒÆ’Ã‚Â§ÃƒÆ’Ã‚Â£o.
   ========================================================================== */
.pendencias-acoes-excedentes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.75rem;
  padding: 0.6rem 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.pendencias-acoes-esquerda,
.pendencias-acoes-direita {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.pendencias-acoes-direita {
  margin-left: auto;
}

.pendencias-acoes-resumo {
  margin: 0;
  font-size: 0.7rem;
  color: #64748b;
}

.pendencias-publicacao-status {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.68rem;
  font-weight: 700;
  white-space: nowrap;
}

.pendencias-publicacao-status--provisorio,
.pendencias-publicacao-status--nao-publicado,
.pendencias-publicacao-status--pendente {
  background: var(--status-aguardando-bg);
  border: 1px solid var(--status-aguardando-borda);
  color: var(--status-aguardando-cor);
}

.pendencias-publicacao-status--publicado {
  background: var(--status-andamento-bg);
  border: 1px solid var(--status-andamento-borda);
  color: var(--status-andamento-cor);
}

.pendencias-publicacao-dot {
  font-size: 0.6rem;
  line-height: 1;
}

.pendencias-btn-secundario {
  padding: 0.35rem 0.7rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
}

.pendencias-btn-secundario:hover:not(:disabled) {
  background: #f1f5f9;
}

.pendencias-btn-secundario:disabled {
  background: #f8fafc;
  color: #94a3b8;
  border-color: #e2e8f0;
  cursor: not-allowed;
}

/* Alerta de publicaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o com conflito remanescente (confirmaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â§ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o do gestor) */
.pendencias-alerta-publicacao {
  flex-basis: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin-top: 0.35rem;
  padding: 0.6rem 0.7rem;
  border: 1px solid #fcd34d;
  border-left: 4px solid #f59e0b;
  border-radius: 6px;
  background: #fffbeb;
}

.pendencias-alerta-titulo {
  font-size: 0.78rem;
  font-weight: 800;
  color: #92400e;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.pendencias-alerta-texto,
.pendencias-alerta-orientacao {
  margin: 0;
  font-size: 0.72rem;
  color: #713f12;
}

.pendencias-alerta-acoes {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.2rem;
}


.pendencias-publicacao-aviso,
.pendencias-publicacao-mensagem {
  margin: 0;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.25;
}

.pendencias-publicacao-aviso {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
}

.pendencias-publicacao-mensagem {
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  color: #075985;
}

.pendencias-btn-publicar {
  align-self: flex-start;
  padding: 0.35rem 0.7rem;
  border-radius: 6px;
  border: 1px solid #166534;
  background: #118238;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.pendencias-btn-publicar:hover:not(:disabled) {
  background: #0f6f30;
}

.pendencias-btn-publicar:disabled {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #94a3b8;
  cursor: not-allowed;
}

.ferias-rodada-status-badge--publicado {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.ferias-rodada-status-badge--provisorio {
  background: #fffbeb;
  color: #b45309;
  border: 1px solid #fde68a;
}

/* ==========================================================================
   PENDÃƒÆ’Ã…Â NCIAS ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â  DRAWER DE SUGESTÃƒÆ’Ã¢â‚¬Â¢ES DE AJUSTE (administrativo, preparatÃƒÆ’Ã‚Â³rio)
   NÃƒÆ’Ã‚Â£o confundir com o drawer da fila de ajuste do servidor.
   ========================================================================== */
.pendencias-drawer-sugestoes-gap {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
  max-width: 520px;
  margin-top: 0.75rem;
  margin-left: auto;
  padding: 0.75rem 0.85rem;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #183b56;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--app-shadow-sm);
}

.pendencias-drawer-sugestoes-gap[hidden] {
  display: none !important;
}

.pendencias-drawer-sugestoes-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.pendencias-drawer-sugestoes-titulo {
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #183b56;
}

.pendencias-drawer-sugestoes-fechar {
  border: none;
  background: transparent;
  font-size: 1.1rem;
  line-height: 1;
  color: #64748b;
  cursor: pointer;
}

.pendencias-drawer-sugestoes-corpo {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.pendencias-drawer-sugestoes-texto {
  margin: 0;
  font-size: 0.72rem;
  color: #334155;
}

.pendencias-drawer-sugestoes-vazio {
  margin: 0;
  padding: 0.5rem 0.6rem;
  border: 1px dashed #cbd5e1;
  border-radius: 6px;
  background: #f8fafc;
  font-size: 0.7rem;
  color: #64748b;
}

.pendencias-drawer-sugestoes-nota {
  margin: 0;
  font-size: 0.66rem;
  color: #94a3b8;
}

/* ==========================================================================
   PENDÃƒÆ’Ã…Â NCIAS ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â  ABA AJUSTE (ClassificaÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o para Ajuste)
   ========================================================================== */
.pendencias-ajuste {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.pendencias-ajuste-cabecalho {
  display: flex;
  align-items: center;
}

.pendencias-ajuste-titulo {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #183b56;
  text-transform: uppercase;
}

.pendencias-ajuste-pre-requisito {
  padding: 0.7rem 0.8rem;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  font-size: 0.74rem;
  color: #475569;
}

.pendencias-ajuste-pre-requisito p {
  margin: 0;
}

.pendencias-ajuste-resumo {
  margin: 0;
  font-size: 0.74rem;
  font-weight: 700;
  color: #334155;
}

.pendencias-ajuste-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pendencias-ajuste-vazio {
  margin: 0;
  font-size: 0.72rem;
  color: #64748b;
}

.pendencias-ajuste-tabela {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.72rem;
}

.pendencias-ajuste-tabela th {
  text-align: left;
  padding: 0.35rem 0.45rem;
  border-bottom: 1px solid #e2e8f0;
  color: #64748b;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.pendencias-ajuste-tabela td {
  padding: 0.35rem 0.45rem;
  border-bottom: 1px solid #f1f5f9;
  color: #334155;
}

.pendencias-ajuste-tr-grupo td {
  background: #f1f5f9;
  font-weight: 800;
  color: #183b56;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.pendencias-ajuste-tr-vazia td,
.pendencias-ajuste-td-ordem {
  color: #94a3b8;
}

.pendencias-ajuste-nota {
  margin: 0;
  font-size: 0.66rem;
  color: #94a3b8;
}

/* ==========================================================================
   ABA AJUSTE Ã¢â‚¬â€  CLASSIFICAÃƒâ€¡ÃƒÆ’O, AGENDA E PROGRAMAÃƒâ€¡ÃƒÆ’O/PREVIA
   ========================================================================== */
.pendencias-ajuste-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem;
}

.pendencias-ajuste-cards .pendencias-ajuste-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.pendencias-ajuste-card-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #64748b;
  text-transform: uppercase;
}

.pendencias-ajuste-card-valor {
  font-size: 0.8rem;
  color: #183b56;
}

.pendencias-ajuste-card-nota {
  font-size: 0.64rem;
  color: #94a3b8;
}

.pendencias-ajuste-campos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pendencias-ajuste-campo,
.pendencias-ajuste-check {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  color: #334155;
}

.pendencias-ajuste-campo input[type="time"],
.pendencias-ajuste-campo input[type="number"] {
  padding: 0.2rem 0.3rem;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  font-size: 0.7rem;
  width: 5.4rem;
}

.pendencias-ajuste-status {
  margin-left: auto;
  padding: 0.18rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.66rem;
  font-weight: 700;
}

.pendencias-ajuste-status--provisoria {
  background: var(--status-aguardando-bg);
  border: 1px solid var(--status-aguardando-borda);
  color: var(--status-aguardando-cor);
}

.pendencias-ajuste-status--publicada {
  background: var(--status-andamento-bg);
  border: 1px solid var(--status-andamento-borda);
  color: var(--status-andamento-cor);
}

.pendencias-ajuste-grupos {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.pendencias-ajuste-duas-colunas {
  display: grid;
  grid-template-columns: minmax(0, 65fr) minmax(0, 35fr);
  gap: 0.85rem;
  align-items: start;
}

.pendencias-ajuste-col-esquerda,
.pendencias-ajuste-col-direita {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  min-width: 0;
}

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

.pendencias-ajuste-resumo-item {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #f8fafc;
}

.pendencias-ajuste-resumo-label {
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #64748b;
}

.pendencias-ajuste-resumo-valor {
  font-size: 0.78rem;
  color: #183b56;
}

.pendencias-ajuste-previa-helper {
  margin: 0;
  font-size: 0.64rem;
  color: #94a3b8;
}

@media (max-width: 1180px) {
  .pendencias-ajuste-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pendencias-ajuste-duas-colunas {
    grid-template-columns: minmax(0, 1fr);
  }
}

.pendencias-ajuste-grupo {
  border: 1px solid #e2e8f0;
  border-left: 4px solid #94a3b8;
  border-radius: 8px;
  background: #ffffff;
}

.pendencias-ajuste-grupo--verde { border-left-color: #118238; }
.pendencias-ajuste-grupo--vermelho { border-left-color: #e11717; }
.pendencias-ajuste-grupo--azul { border-left-color: #1f6eea; }
.pendencias-ajuste-grupo--ambar { border-left-color: #d97706; }
.pendencias-ajuste-grupo--cinza { border-left-color: #94a3b8; background: #f8fafc; }

.pendencias-ajuste-grupo-topo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.55rem;
  border-bottom: 1px solid #f1f5f9;
}

.pendencias-ajuste-grupo-titulo {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #183b56;
}

.pendencias-ajuste-grupo-contagem {
  padding: 0.1rem 0.4rem;
  border-radius: 9999px;
  background: #f1f5f9;
  font-size: 0.64rem;
  font-weight: 800;
  color: #475569;
}

.pendencias-ajuste-grupo-nota {
  margin-left: auto;
  font-size: 0.62rem;
  color: #94a3b8;
}

.pendencias-ajuste-grupo-vazio {
  margin: 0;
  padding: 0.45rem 0.55rem;
  font-size: 0.68rem;
  color: #94a3b8;
}

.pendencias-ajuste-lista {
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.pendencias-ajuste-item {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.4rem;
  border: 1px solid #eef2f6;
  border-radius: 6px;
  background: #ffffff;
  font-size: 0.7rem;
  cursor: grab;
}

.pendencias-ajuste-item.is-dragging { opacity: 0.5; }
.pendencias-ajuste-item.is-dragover { border-color: #2563eb; background: #eff6ff; }

.pendencias-ajuste-item-pos {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 9999px;
  background: #183b56;
  color: #ffffff;
  font-size: 0.62rem;
  font-weight: 800;
}

.pendencias-ajuste-item-nome { font-weight: 700; color: #334155; }
.pendencias-ajuste-item-badge,
.pendencias-ajuste-item-dias { font-size: 0.62rem; color: #64748b; }
.pendencias-ajuste-item-periodo { margin-left: auto; font-size: 0.62rem; color: #94a3b8; }
.pendencias-ajuste-item-acoes { display: inline-flex; gap: 0.15rem; }

.pendencias-ajuste-seta {
  width: 1.2rem;
  height: 1.2rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  background: #ffffff;
  color: #334155;
  font-size: 0.66rem;
  line-height: 1;
  cursor: pointer;
}

.pendencias-ajuste-seta:disabled { opacity: 0.35; cursor: not-allowed; }

.pendencias-ajuste-previa {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.6rem 0.7rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
}

.pendencias-ajuste-previa-titulo {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #183b56;
}

.pendencias-ajuste-previa-config { margin: 0; font-size: 0.66rem; color: #64748b; }
.pendencias-ajuste-previa-vazio { margin: 0; font-size: 0.7rem; color: #64748b; }
.pendencias-ajuste-capacidade { margin: 0; font-size: 0.68rem; color: #475569; }
.pendencias-ajuste-capacidade.is-erro { color: #b45309; font-weight: 700; }

.pendencias-ajuste-erros {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.68rem;
  color: #b45309;
}

.pendencias-ajuste-previa-aviso {
  margin: 0;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  border: 1px dashed #fcd34d;
  background: #fffbeb;
  font-size: 0.68rem;
  color: #92400e;
}

.pendencias-ajuste-previa-msg { margin: 0; font-size: 0.68rem; color: #475569; }
.pendencias-ajuste-previa-msg.is-visivel { font-weight: 700; color: #047857; }

/* Badge de status da fila no drawer da rota MarcaÃƒÂ§ÃƒÂ£o */
.ferias-drawer-status {
  display: inline-block;
  margin-top: 0.15rem;
  padding: 0.12rem 0.45rem;
  border-radius: 9999px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ferias-drawer-status--aguardando-inicio { background: var(--status-aguardando-bg); border: 1px solid var(--status-aguardando-borda); color: var(--status-aguardando-cor); }
.ferias-drawer-status--em-andamento { background: var(--status-andamento-bg); border: 1px solid var(--status-andamento-borda); color: var(--status-andamento-cor); }
.ferias-drawer-status--encerrada { background: var(--status-encerrado-bg); border: 1px solid var(--status-encerrado-borda); color: var(--status-encerrado-cor); }

/* ==========================================================================
   PENDENCIAS — TOPO HORIZONTAL COMPACTO (ANO-EXERCICIO | PLANTAO | PERIODO)
   ========================================================================== */
.pendencias-topo {
  margin-bottom: 0.35rem;
}

/* ==========================================================================
   TOPO DE PENDENCIAS — LINHA UNICA (referencia do mockup aprovado)
   [ ANO-EXERCICIO ] [ PLANTAO ] [ PERIODO DE MARCAÇÃO | MARCAÇÃO NORMAL | AJUSTE ]
   ========================================================================== */
.pendencias-topo {
  margin-bottom: 0.35rem;
}

.pendencias-cards-topo {
  display: grid;
  grid-template-columns: 180px 180px minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  width: 100%;
}

/* ANO-EXERCICIO e PLANTAO: mesma altura/geometria do card do periodo
   (icone, circulo do plantao, dropdown e estilo AppDelta preservados). */
.pendencias-cards-topo > .ferias-card--resumo {
  height: 88px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 12px 14px;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  background: #ffffff;
  min-width: 0;
  width: auto;
}

/* CARD HORIZONTAL UNICO: titulo | fase | divisor 1px | fase */
.pendencias-card-periodo {
  height: 88px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr) 1px minmax(0, 1fr);
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  background: #ffffff;
  overflow: hidden;
  min-width: 0;
  max-width: none;
  padding: 0;
  gap: 0;
}

/* Bloco do titulo (coluna esquerda do card) — fundo discreto, sem icone */
.pendencias-periodo-titulo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 28px;
  background: #eef4fb;
  border: none;
  border-radius: 0;
  text-align: center;
  min-width: 0;
}

.pendencias-periodo-titulo-texto {
  display: block;
  text-align: center;
  font-size: 18px;
  line-height: 1.1;
  font-weight: 800;
  color: #0f2a6b;
  /* A largura da coluna (240px - 2x28px) quebra o texto exatamente em
     "PERÍODO DE" / "MARCAÇÃO", como no mockup — sem dividir o markup. */
  white-space: normal;
  overflow-wrap: normal;
  hyphens: none;
}

/* Fases lado a lado (fundo branco), status NA MESMA LINHA da fase */
.pendencias-periodo-fase {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 28px;
  background: #ffffff;
  border: none;
  border-radius: 0;
}

.pendencias-periodo-fase-dados {
  min-width: 0;
}

.pendencias-periodo-fase-nome {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}

.pendencias-periodo-datas {
  margin-top: 5px;
  font-size: 13px;
  color: #64748b;
  white-space: nowrap;
}

.pendencias-periodo-divisor {
  width: 1px;
  height: 36px;
  align-self: center;
  /* Apenas o ESPAÇADOR: o gap horizontal de 2px entre as fases (1px de cada
     lado). A linha divisória é desenhada como BORDA na 2ª fase (ver abaixo). */
  background: transparent;
  margin: 0 1px;
}

/* LINHA DE BORDA que divide os espaços das fases:
   [ Marcação normal ] │ [ Ajuste de excedentes ] */
.pendencias-periodo-divisor ~ .pendencias-periodo-fase {
  border-left: 1px solid #d9e2ec;
}

/* Status das fases */
.pendencias-periodo-estado {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

/* Em andamento = VERDE; Aguardando inicio = neutro/cinza */
.pendencias-periodo-estado--em-andamento { color: #16a34a; }
.pendencias-periodo-estado--encerrada { color: #475569; }
.pendencias-periodo-estado--aguardando { color: #64748b; }

.pendencias-periodo-dot {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: currentColor;
  display: inline-block;
}

@media (max-width: 1200px) {
  .pendencias-cards-topo { grid-template-columns: 150px 150px minmax(0, 1fr); }
  .pendencias-card-periodo { grid-template-columns: 190px minmax(0, 1fr) 1px minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
 * BLINDAGEM DO CARD HORIZONTAL
 * O card e seus blocos são FILHOS DIRETOS (sem wrapper de fases). Estes
 * seletores de alta especificidade garantem o grid horizontal mesmo com
 * qualquer CSS legado de card de período que ainda exista no arquivo.
 * -------------------------------------------------------------------------- */
.pendencias-cards-topo > .pendencias-card-periodo {
  display: grid !important;
  grid-template-columns: 240px minmax(0, 1fr) 1px minmax(0, 1fr) !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  height: 88px !important;
  padding: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: hidden !important;
  gap: 0 !important;
}

.pendencias-cards-topo > .pendencias-card-periodo > .pendencias-periodo-titulo {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: auto !important;
  flex: 0 0 auto !important;
  padding: 0 28px !important;
  background: #eef4fb !important;
}

.pendencias-cards-topo > .pendencias-card-periodo > .pendencias-periodo-fase {
  display: flex !important;
  flex-direction: row !important;
  flex: 1 1 0 !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: auto !important;
  padding: 0 28px !important;
  background: #ffffff !important;
}

.pendencias-cards-topo > .pendencias-card-periodo > .pendencias-periodo-divisor {
  display: block !important;
  width: 1px !important;
  height: 36px !important;
  align-self: center !important;
  background: transparent !important;
  margin: 0 1px !important;
}

/* Linha de borda divisória entre as duas fases (ocupa a altura do card). */
.pendencias-cards-topo > .pendencias-card-periodo > .pendencias-periodo-divisor ~ .pendencias-periodo-fase {
  border-left: 1px solid #d9e2ec !important;
}

@media (max-width: 900px) {
  .pendencias-cards-topo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pendencias-card-periodo {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr);
    height: auto !important;
  }
  .pendencias-periodo-titulo { padding: 10px 16px; }
  .pendencias-periodo-fase { padding: 10px 16px; }
  .pendencias-periodo-divisor { width: 100%; height: 1px; margin: 0 !important; }
  /* Empilhado: a mesma divisória vira linha horizontal. */
  .pendencias-cards-topo > .pendencias-card-periodo > .pendencias-periodo-divisor ~ .pendencias-periodo-fase {
    border-left: none !important;
    border-top: 1px solid #d9e2ec !important;
  }
}

.pendencias-area-abas {
  margin-top: 0.25rem;
}

/* Cabecalho da aba Excedentes com acoes a direita */
.pendencias-bloco-topo-linha {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.pendencias-bloco-acoes {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-left: auto;
  justify-content: flex-end;
}

.pendencias-bloco-acoes .pendencias-publicacao-aviso,
.pendencias-bloco-acoes .pendencias-publicacao-mensagem,
.pendencias-bloco-acoes .pendencias-alerta-publicacao {
  flex-basis: 100%;
  margin-top: 0.25rem;
}

.pendencias-publicacao-status--nao-publicado {
  background: var(--status-aguardando-bg);
  border: 1px solid var(--status-aguardando-borda);
  color: var(--status-aguardando-cor);
}

/* ---------------------------------------------------------------------------
 * ABA AJUSTE (v2) — lista principal à esquerda + COLUNA LATERAL de
 * configurações à direita. Sem card de período (já existe no topo
 * compartilhado) e sem a antiga seção "Programação prévia".
 * ------------------------------------------------------------------------- */
.pendencias-ajuste-item {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr) auto minmax(0, 11rem) 4.2rem 5.6rem auto;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.45rem;
  overflow-wrap: anywhere;
}

.pendencias-ajuste-item-pos {
  font-weight: 800;
  color: #64748b;
  text-align: center;
}

.pendencias-ajuste-item-nome { min-width: 0; font-weight: 700; color: #0f172a; }

.pendencias-ajuste-item-horario {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: #183b56;
  text-align: center;
  white-space: nowrap;
}

.pendencias-ajuste-item-dias,
.pendencias-ajuste-item-periodo { color: #475569; font-size: 0.72rem; }

.pendencias-ajuste-item--fora-da-fila { opacity: 0.75; }

/* Cabeçalho da lista (rótulos das colunas da área principal) */
.pendencias-ajuste-lista-cabecalho { display: none; }

/* COLUNA LATERAL */
.pendencias-ajuste-lateral {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  min-width: 0;
}

.pendencias-ajuste-lateral-bloco {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.6rem 0.7rem;
  background: #ffffff;
  border: 1px solid #dbe4ec;
  border-radius: 8px;
  min-width: 0;
  box-sizing: border-box;
}

.pendencias-ajuste-lateral-titulo {
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #64748b;
  text-transform: uppercase;
}

.pendencias-ajuste-lateral-bloco .pendencias-ajuste-campos { display: flex; gap: 0.5rem; }
.pendencias-ajuste-lateral-bloco .pendencias-ajuste-campo { flex: 1 1 0; min-width: 0; }
.pendencias-ajuste-lateral-bloco input { max-width: 100%; }

.pendencias-ajuste-lateral-bloco--acoes { gap: 0.45rem; }
.pendencias-ajuste-lateral-bloco--acoes .pendencias-btn-publicar,
.pendencias-ajuste-lateral-bloco--acoes .pendencias-btn-secundario { width: 100%; justify-content: center; }

 * (sem overflow horizontal; tabela da prévia nunca invade a borda).
 * ------------------------------------------------------------------------- */
#painel-pendencias-ajuste,
#painel-pendencias-ajuste > *,
.pendencias-ajuste-duas-colunas,
.pendencias-ajuste-col-esquerda,
.pendencias-ajuste-col-direita,
.pendencias-ajuste-cards,
.pendencias-ajuste-card,
.pendencias-ajuste-grupos,
.pendencias-ajuste-grupo,
.pendencias-ajuste-previa {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

#painel-pendencias-ajuste { overflow-x: hidden; }

.pendencias-ajuste-duas-colunas {
  grid-template-columns: minmax(0, 62fr) minmax(320px, 38fr);
}

/* Linhas dos grupos: cabem integralmente, com quebra de texto controlada. */
.pendencias-ajuste-item {
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 0.35rem;
  overflow-wrap: anywhere;
}

.pendencias-ajuste-item-nome,
.pendencias-ajuste-item-periodo { min-width: 0; overflow-wrap: anywhere; }

/* Tabela da prévia: layout fixo → HORÁRIO nunca sai do painel. */
.pendencias-ajuste-previa-tabela {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.pendencias-ajuste-previa-tabela th,
.pendencias-ajuste-previa-tabela td {
  padding: 0.2rem 0.3rem;
  overflow-wrap: anywhere;
}

.pendencias-ajuste-previa-tabela th:nth-child(1),
.pendencias-ajuste-previa-tabela td:nth-child(1) { width: 2.6rem; text-align: center; }

.pendencias-ajuste-previa-tabela th:nth-child(3),
.pendencias-ajuste-previa-tabela td:nth-child(3) { width: 4.6rem; }

.pendencias-ajuste-previa-tabela th:nth-child(4),
.pendencias-ajuste-previa-tabela td:nth-child(4) { width: 4.6rem; }

.pendencias-ajuste-previa-tabela th:nth-child(5),
.pendencias-ajuste-previa-tabela td:nth-child(5) { width: 4.4rem; }

.pendencias-ajuste-resumo-grid { grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }

.pendencias-ajuste-helper { margin: 0.2rem 0 0; line-height: 1.25; }

/* Cards superiores: 4 em uma linha; sem invadir cards vizinhos. */
.pendencias-ajuste-card input,
.pendencias-ajuste-card select { min-width: 0; max-width: 100%; }

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

@media (max-width: 1100px) {
  .pendencias-ajuste-duas-colunas { grid-template-columns: 1fr; }
}

/* Sem itens em EXCEDENTES: nenhum badge de status é exibido (nem 'Quadro
 * provisório', nem 'Não publicado') — apenas os botões do cabeçalho. */
.pendencias-publicacao-status[hidden] { display: none; }

/* Topo de Pendências: linha única em telas largas; quebra só quando não houver
 * mais espaço (evita qualquer aspecto "explodido" ou empilhado sem motivo). */
@media (max-width: 1100px) {
  .pendencias-cards-topo { flex-wrap: wrap; }
}

/* ==========================================================================
   ABA AJUSTE — v2 (mockup-ajuste-v2.png): principal ~70% + lateral ~30%
   ========================================================================== */
.ajuste-v2 {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(270px, .9fr);
  gap: 14px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  align-items: start;
}

.ajuste-v2__principal,
.ajuste-v2__lateral { min-width: 0; }

.ajuste-v2__principal {
  border: 1px solid #d8e2ec;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.ajuste-v2__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px 12px;
}

.ajuste-v2__titulo h2 {
  margin: 0;
  color: #0f172a;
  font-size: 18px;
  line-height: 1.15;
  font-weight: 800;
}

.ajuste-v2__titulo p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.35;
}

.ajuste-v2__status {
  flex: 0 0 auto;
  padding: 5px 10px;
  border: 1px solid #86d7a1;
  border-radius: 999px;
  background: #effcf3;
  color: #15803d;
  font-size: 11px;
  font-weight: 700;
}

.ajuste-v2__status--publicada {
  border-color: #a7f3d0;
  background: #ecfdf5;
  color: #047857;
}

.ajuste-v2__grupos {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 0 14px 14px;
}

.ajuste-grupo {
  min-width: 0;
  border: 1px solid #d8e2ec;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.ajuste-grupo__header {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 800;
}

.ajuste-grupo__contador {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.65);
  font-size: 10px;
  font-weight: 800;
}

.ajuste-grupo__nota {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  opacity: 0.8;
}

.ajuste-grupo--p1 .ajuste-grupo__header { background: #eaf8ee; color: #15803d; }
.ajuste-grupo--p2 .ajuste-grupo__header { background: #fff0f0; color: #c62828; }
.ajuste-grupo--p3 .ajuste-grupo__header { background: #edf5ff; color: #1565c0; }
.ajuste-grupo--omissao .ajuste-grupo__header { background: #fff2dc; color: #a34b00; }
.ajuste-grupo--ausencia .ajuste-grupo__header { background: #edf1f5; color: #334155; }

.ajuste-grupo__cabecalho-colunas {
  display: grid;
  grid-template-columns: 42px minmax(120px, 0.75fr) minmax(220px, 1.45fr) minmax(105px, 0.65fr) 72px;
  gap: 8px;
  align-items: center;
  min-height: 28px;
  padding: 0 12px 0 44px;
  border-top: 1px solid #e5ebf1;
  border-bottom: 1px solid #e5ebf1;
  background: #f8fafc;
  color: #475569;
  font-size: 10px;
  font-weight: 700;
}

.ajuste-item {
  display: grid;
  grid-template-columns: 24px 42px minmax(120px, 0.75fr) minmax(220px, 1.45fr) minmax(105px, 0.65fr) 72px;
  gap: 8px;
  align-items: center;
  min-height: 48px;
  padding: 6px 12px;
  border-bottom: 1px solid #e8eef4;
  box-sizing: border-box;
}

.ajuste-item:last-child { border-bottom: 0; }

.ajuste-item__drag {
  width: 24px;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #475569;
  font-size: 17px;
  cursor: grab;
}

.ajuste-item__ordem {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 28px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  color: #0f172a;
  font-size: 12px;
  font-weight: 700;
}

.ajuste-item__servidor {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 9px;
}

.ajuste-item__avatar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 11px;
  font-weight: 800;
}

.ajuste-item__servidor strong {
  overflow: hidden;
  color: #172033;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 700;
}

.ajuste-item__situacao { min-width: 0; }

.ajuste-item__situacao strong {
  display: block;
  color: #1e293b;
  font-size: 11px;
  line-height: 1.25;
  font-weight: 600;
}

.ajuste-item__situacao span {
  display: block;
  margin-top: 2px;
  color: #64748b;
  font-size: 10px;
  line-height: 1.25;
}

.ajuste-item__acoes {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}

.ajuste-item__acoes button {
  width: 32px;
  height: 30px;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  color: #334155;
  font-size: 14px;
  cursor: pointer;
}

.ajuste-item__acoes button:disabled { opacity: 0.35; cursor: default; }

.ajuste-grupo__vazio {
  margin: 0;
  padding: 10px 12px;
  color: #94a3b8;
  font-size: 11px;
}

/* ---------------- COLUNA LATERAL (mais estreita) ---------------- */
.ajuste-v2__lateral {
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.ajuste-config-card {
  padding: 14px;
  border: 1px solid #d8e2ec;
  border-radius: 9px;
  background: #fff;
  box-sizing: border-box;
  min-width: 0;
}

.ajuste-config-card__header {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
}

.ajuste-config-card__header h3 {
  margin: 0;
  color: #172033;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
}

.ajuste-config-card__icone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  color: #1265e7;
  font-size: 18px;
}

.ajuste-config-card__header--entre { justify-content: space-between; }
.ajuste-config-card__header--entre > div { display: flex; align-items: center; gap: 9px; }

.ajuste-check {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #334155;
  font-size: 10px;
  white-space: nowrap;
}

.ajuste-config-card__campos-duplos {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
}

.ajuste-config-card label { min-width: 0; }

.ajuste-config-card label > span {
  display: block;
  margin-bottom: 5px;
  color: #475569;
  font-size: 10px;
  font-weight: 600;
}

.ajuste-config-card input {
  width: 100%;
  height: 34px;
  padding: 0 9px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  color: #172033;
  font-size: 12px;
  box-sizing: border-box;
}

.ajuste-duracao {
  display: flex;
  align-items: center;
  height: 36px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  overflow: hidden;
}

.ajuste-duracao input { flex: 1; height: 100%; border: 0; }

.ajuste-duracao span { padding: 0 12px; color: #475569; font-size: 11px; }

.ajuste-config-card--resumo dl { margin: 0; }

.ajuste-config-card--resumo dl > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 34px;
  border-bottom: 1px solid #edf2f7;
}

.ajuste-config-card--resumo dl > div:last-child { border-bottom: 0; }

.ajuste-config-card--resumo dt { color: #475569; font-size: 11px; }

.ajuste-config-card--resumo dd {
  margin: 0;
  color: #172033;
  font-size: 11px;
  font-weight: 700;
  text-align: right;
}

.ajuste-config-capacidade { margin: 10px 0 0; color: #64748b; font-size: 10px; }
.ajuste-config-capacidade.is-erro { color: #b91c1c; font-weight: 700; }

.ajuste-config-erros {
  margin: 6px 0 0;
  padding-left: 16px;
  color: #b91c1c;
  font-size: 10px;
}

/* ---------------- AÇÕES (somente 2 botões) ---------------- */
.ajuste-v2__acoes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ajuste-v2__limpar,
.ajuste-v2__publicar {
  width: 100%;
  min-height: 38px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.ajuste-v2__limpar { border: 1px solid #b9c7d8; background: #fff; color: #334155; }

.ajuste-v2__publicar {
  border: 1px solid #1265e7;
  background: #1265e7;
  color: #fff;
}

.ajuste-v2__publicar:disabled {
  border-color: #cad5e2;
  background: #e5ebf2;
  color: #94a3b8;
  cursor: not-allowed;
}

.ajuste-v2__helper {
  margin: 0;
  color: #94a3b8;
  font-size: 10px;
  line-height: 1.3;
  text-align: center;
}

.ajuste-v2__msg { margin: 0; font-size: 11px; color: #475569; }
.ajuste-v2__msg.is-visivel { font-weight: 700; color: #047857; }

@media (max-width: 1100px) {
  .ajuste-v2 { grid-template-columns: minmax(0, 1fr); }
  .ajuste-v2__lateral { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ajuste-v2__acoes { grid-column: 1 / -1; }
}

/* HORARIO PREVISTO + botao Aplicar horario */
.ajuste-item__horario {
  min-width: 0;
  color: #0f2a6b;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-align: left;
  white-space: nowrap;
}

.ajuste-v2__aplicar {
  border: 1px solid #1265e7;
  background: #fff;
  color: #1265e7;
}

.ajuste-v2__aplicar,
.ajuste-v2__limpar,
.ajuste-v2__publicar { width: 100%; min-height: 38px; border-radius: 7px; font-size: 12px; font-weight: 700; }

@media (max-width: 1100px) {
  .ajuste-item { grid-template-columns: 24px 42px minmax(120px, 1fr) minmax(160px, 1.2fr) minmax(95px, auto) 66px; }
}

/* Icones da aba Ajuste (mesmo conjunto do projeto: outline, stroke 2) */
.ajuste-icon {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  color: #1265e7;
  flex: 0 0 auto;
}

.ajuste-item__datas {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ajuste-item__horario {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: #0f2a6b;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ajuste-v2__limpar, .ajuste-v2__publicar, .ajuste-v2__aplicar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

/* ==========================================================================
   Fila de Ajuste — Ações e Botões do Drawer
   ========================================================================== */


.ferias-drawer-header-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  /* Fixa o chevron de recolher no canto superior direito do cabeçalho do drawer */
  margin-left: auto;
  flex-shrink: 0;
}

.ferias-drawer-recolher-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #475569;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  border-radius: 5px;
  transition: all 0.15s;
}

.ferias-drawer-recolher-btn:hover {
  background: #f1f5f9;
  color: #0f172a;
  border-color: #94a3b8;
}

.ferias-drawer-item-col-chevron {
  color: #94a3b8;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  margin-left: 0.15rem;
  flex-shrink: 0;
}

.ferias-drawer-alca-container.is-hidden {
  display: none !important;
}

.ferias-drawer-alca-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
}

/* ==========================================================================
   MENSAGENS CONTEXTUAIS INDIVIDUAIS DO SERVIDOR (Minhas marcações)
   Cada mensagem tem container próprio: 100% da largura, quebra de linha automática,
   altura automática e nunca sobrepõe datas/botões/lápis/lixeira.
   Cores seguem o padrão único de status (amarelo/verde/vermelho).
   ========================================================================== */
.ferias-marcacao-msg-contextual {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0.35rem 0 0.15rem;
  padding: 0.45rem 0.6rem;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  height: auto;
  min-height: 0;
}

.ferias-marcacao-msg-contextual--aguardando {
  background: var(--status-aguardando-bg);
  color: var(--status-aguardando-cor);
  border: 1px solid var(--status-aguardando-borda);
}

.ferias-marcacao-msg-contextual--andamento {
  background: var(--status-andamento-bg);
  color: var(--status-andamento-cor);
  border: 1px solid var(--status-andamento-borda);
}

.ferias-marcacao-msg-contextual--encerrado {
  background: var(--status-encerrado-bg);
  color: var(--status-encerrado-cor);
  border: 1px solid var(--status-encerrado-borda);
}

.ferias-marcacao-msg-texto {
  display: block;
  width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* NOVA MARCAÇÃO — botão único com as dimensões dos botões de "adicionar" já existentes,
   altura reduzida e o MESMO AZUL das abas dos meses (JANEIRO – MARÇO: .ferias-periodo-btn.is-active). */
.ferias-secao--nova-marcacao .ferias-btn-adicionar-periodo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  height: 26px;
  padding: 0 0.75rem;
  border: 1px solid #0f67d8;
  border-radius: 6px;
  background: #0f67d8;
  color: #ffffff;
  font-family: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
  white-space: nowrap;
}

.ferias-secao--nova-marcacao .ferias-btn-adicionar-periodo:hover:not(:disabled) {
  background: #0d59bd;
  border-color: #0d59bd;
}

.ferias-secao--nova-marcacao .ferias-btn-adicionar-periodo:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* CONCLUIR AJUSTE — abaixo de Minhas marcações, somente em SUA VEZ */
.ferias-secao--concluir-ajuste {
  display: flex;
  justify-content: flex-end;
}

.ferias-secao--concluir-ajuste .ferias-btn-concluir-ajuste {
  width: 100%;
}

/* ==========================================================================
   CONFIGURAÇÃO DE FÉRIAS — ABA PRIORIDADES (RANKING & CRITÉRIOS)
   ========================================================================== */

.ferias-prioridades-container {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  width: 100%;
}

.ferias-prioridades-header {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.ferias-prioridades-header-ico-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #2563eb;
  flex-shrink: 0;
}

.ferias-prioridades-header-ico-wrap .ferias-cfg-ico {
  width: 24px;
  height: 24px;
}

.ferias-prioridades-header-texto {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.ferias-prioridades-titulo {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 800;
  color: #0f172a;
}

.ferias-prioridades-subtitulo {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: #475569;
}

.ferias-prioridades-desc {
  margin: 0;
  font-size: 0.78rem;
  color: #64748b;
}

/* Tabela de Ranking */
.ferias-prioridades-tabela-wrap {
  width: 100%;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  overflow: visible;
}

.ferias-prioridades-tabela {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}

.ferias-prioridades-tabela thead th {
  padding: 0.65rem 0.85rem;
  background: #f8fafc;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
}

.ferias-prioridades-tabela tbody td {
  padding: 0.55rem 0.85rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.ferias-prioridades-tabela tbody tr:last-child td {
  border-bottom: 0;
}

.ferias-prioridades-tabela tbody tr:hover {
  background: #fbfcfe;
}

.ferias-prio-linha {
  cursor: default;
  transition: background-color 0.15s ease, opacity 0.15s ease;
}

.ferias-prio-linha.is-dragging {
  opacity: 0.35;
  background: #eff6ff !important;
}

.ferias-prio-linha.is-drag-over-top td {
  border-top: 2px solid #2563eb !important;
}

.ferias-prio-linha.is-drag-over-bottom td {
  border-bottom: 2px solid #2563eb !important;
}

/* Colunas específicas */
.ferias-prio-th-posicao,
.ferias-prio-td-posicao {
  width: 68px;
  min-width: 68px;
  text-align: center;
}

.ferias-prio-posicao-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  color: #64748b;
}

.ferias-prio-grip {
  display: inline-flex;
  align-items: center;
  color: #94a3b8;
  cursor: grab;
  user-select: none;
}

.ferias-prio-grip:active {
  cursor: grabbing;
}

.ferias-prio-grip .ferias-cfg-ico {
  width: 14px;
  height: 14px;
}

.ferias-prio-num {
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  color: #334155;
  font-variant-numeric: tabular-nums;
}

.ferias-prio-th-servidor,
.ferias-prio-td-servidor {
  width: 140px;
  min-width: 120px;
}

.ferias-prio-servidor-nome {
  font-size: 0.84rem;
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
}

.ferias-prio-th-criterios,
.ferias-prio-td-criterios {
  width: auto;
}

.ferias-prio-th-mover,
.ferias-prio-td-mover {
  width: 80px;
  min-width: 80px;
  text-align: center;
}

.ferias-prio-mover-acoes {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.ferias-prio-btn-mover {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  color: #475569;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
}

.ferias-prio-btn-mover .ferias-cfg-ico {
  width: 14px;
  height: 14px;
}

.ferias-prio-btn-mover:hover:not(:disabled) {
  background: #f1f5f9;
  border-color: #94a3b8;
  color: #0f172a;
}

.ferias-prio-btn-mover:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  background: #f8fafc;
}

/* Multiselect de Critérios */
.ferias-prio-multiselect {
  position: relative;
  width: 100%;
}

.ferias-prio-chips-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 36px;
  padding: 0.25rem 0.6rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  user-select: none;
}

.ferias-prio-chips-container:focus,
.ferias-prio-multiselect.is-open .ferias-prio-chips-container {
  border-color: #3b82f6;
  outline: none;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
}

.ferias-prio-chips-lista {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  flex: 1;
}

.ferias-prio-placeholder {
  color: #94a3b8;
  font-size: 0.78rem;
  font-style: italic;
}

.ferias-prio-arrow {
  display: inline-flex;
  align-items: center;
  color: #94a3b8;
  margin-left: 0.4rem;
  flex-shrink: 0;
}

.ferias-prio-arrow .ferias-cfg-ico {
  width: 14px;
  height: 14px;
}

/* Chips de Critérios */
.ferias-prio-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.5rem;
  border-radius: 12px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.ferias-prio-chip--chefe-plantao {
  background: #dbeafe;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.ferias-prio-chip--chefe-vivencia {
  background: #fef9c3;
  color: #854d0e;
  border: 1px solid #fde047;
}

.ferias-prio-chip--filhos-escolar {
  background: #dcfce7;
  color: #15803d;
  border: 1px solid #bbf7d0;
}

.ferias-prio-chip--antiguidade-cargo {
  background: #f3e8ff;
  color: #7e22ce;
  border: 1px solid #e9d5ff;
}

.ferias-prio-chip--mais-idoso {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.ferias-prio-chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  margin-left: 0.15rem;
  color: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  opacity: 0.65;
  transition: opacity 0.12s ease;
}

.ferias-prio-chip-remove:hover {
  opacity: 1;
}

/* Dropdown de opções de critérios */
.ferias-prio-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 50;
  min-width: 230px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
  padding: 0.4rem 0;
}

.ferias-prio-dropdown-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.85rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: #334155;
  cursor: pointer;
  transition: background-color 0.12s ease;
  user-select: none;
}

.ferias-prio-dropdown-item:hover {
  background: #f1f5f9;
}

.ferias-prio-dropdown-item input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #2563eb;
  cursor: pointer;
}

/* Rodapé Prioridades */
.ferias-prioridades-rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e2e8f0;
}

.ferias-prioridades-rodape-esquerda {
  display: flex;
  align-items: center;
}

.ferias-prioridades-contador {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
}

.ferias-prioridades-rodape-direita {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
}

.ferias-prioridades-rodape-direita .ferias-cfg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  height: 34px;
  min-height: 34px;
  padding: 0 0.95rem;
  font-size: 0.78rem;
  font-weight: 700;
  border-radius: 6px;
  box-sizing: border-box;
  white-space: nowrap;
}

.ferias-prioridades-switch-wrap {
  margin-left: 0.5rem;
  padding-left: 0.5rem;
  border-left: 1px solid #e2e8f0;
}

.ferias-prioridades-switch-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  user-select: none;
}

.ferias-prioridades-switch-label.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.ferias-prioridades-switch-texto {
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}

.ferias-prio-empty-row td {
  text-align: center;
  color: #94a3b8;
  font-style: italic;
  padding: 1.5rem !important;
}

/* ==========================================================================
   FÉRIAS — CARD PERÍODO DE MARCAÇÃO (STATUS ABAIXO DAS DATAS)
   ========================================================================== */
.ferias-card-rodada-fases {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 0.75rem 0.9rem;
}

.ferias-card-rodada-fase {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.2rem 0;
}

.ferias-card-fase-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: #eff6ff;
  color: #2563eb;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.ferias-card-fase-detalhe {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1;
  min-width: 0;
}

.ferias-card-fase-nome {
  font-size: 0.75rem;
  font-weight: 800;
  color: #0f172a;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.25;
}

.ferias-card-fase-datas {
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  line-height: 1.25;
}

.ferias-card-fase-estado {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  margin-top: 0.25rem;
  align-self: flex-start;
  line-height: 1.2;
}

.ferias-card-fase-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}

.ferias-card-fase-estado--em-andamento {
  background: var(--status-andamento-bg, #dcfce7);
  border: 1px solid var(--status-andamento-borda, #86efac);
  color: var(--status-andamento-cor, #15803d);
}

.ferias-card-fase-estado--em-andamento .ferias-card-fase-dot {
  background: var(--status-andamento-cor, #15803d);
}

.ferias-card-fase-estado--aguardando {
  background: var(--status-aguardando-bg, #fef3c7);
  border: 1px solid var(--status-aguardando-borda, #fde68a);
  color: var(--status-aguardando-cor, #92400e);
}

.ferias-card-fase-estado--aguardando .ferias-card-fase-dot {
  background: var(--status-aguardando-cor, #92400e);
}

.ferias-card-fase-estado--encerrado,
.ferias-card-fase-estado--encerrada {
  background: var(--status-encerrado-bg, #fee2e2);
  border: 1px solid var(--status-encerrado-borda, #fca5a5);
  color: var(--status-encerrado-cor, #991b1b);
}

.ferias-card-fase-estado--encerrado .ferias-card-fase-dot,
.ferias-card-fase-estado--encerrada .ferias-card-fase-dot {
  background: var(--status-encerrado-cor, #991b1b);
}

/* ==========================================================================
   FÉRIAS — CARD RESUMO COMPACTO DO EXERCÍCIO (3 FAIXAS/BANNERS)
   ========================================================================== */
.ferias-resumo-card-novo {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
}

.ferias-resumo-faixas-corpo {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem 0.9rem;
  box-sizing: border-box;
}

.ferias-resumo-faixa {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0.8rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  gap: 0.75rem;
  box-sizing: border-box;
}

.ferias-resumo-faixa-rotulo {
  font-size: 0.7rem;
  font-weight: 700;
  color: #475569;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ferias-resumo-faixa-valor {
  font-size: 0.84rem;
  font-weight: 800;
  color: #0f172a;
  white-space: nowrap;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--completo {
  background: #f0fdf4;
  border-color: #bbf7d0;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--completo .ferias-resumo-faixa-valor {
  color: #166534;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--incompleto {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--incompleto .ferias-resumo-faixa-valor {
  color: #1d4ed8;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--ausente {
  background: #fef2f2;
  border-color: #fecaca;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--ausente .ferias-resumo-faixa-valor {
  color: #dc2626;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--neutro {
  background: #f8fafc;
  border-color: #e2e8f0;
}

.ferias-resumo-faixa--situacao.ferias-resumo-faixa--neutro .ferias-resumo-faixa-valor {
  color: #64748b;
}

/* ==========================================================================
   FÉRIAS — COLUNA DIREITA (MINHAS MARCAÇÕES RECOLHÍVEL + ORDEM DE PRIORIDADE)
   ========================================================================== */
.ferias-minhas {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: 370px;
  min-width: 340px;
  box-sizing: border-box;
}

/* Bloco do Servidor (Minhas marcações + Férias fechadas) */
.ferias-bloco-servidor {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  display: flex;
  flex-direction: column;
}

.ferias-bloco-servidor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0.95rem;
  background: #ffffff;
  cursor: pointer;
  user-select: none;
  border-bottom: 1px solid #f1f5f9;
  transition: background-color 0.12s ease;
}

.ferias-bloco-servidor-header:hover {
  background: #f8fafc;
}

.ferias-bloco-servidor-titulo {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
  color: #0f172a;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.ferias-bloco-servidor-toggle-ico {
  font-size: 0.9rem;
  font-weight: 700;
  color: #64748b;
  line-height: 1;
}

.ferias-bloco-servidor.is-recolhido .ferias-bloco-servidor-conteudo {
  display: none;
}

.ferias-bloco-servidor.is-recolhido .ferias-bloco-servidor-header {
  border-bottom: none;
}

.ferias-minhas-acoes {
  padding: 0.5rem 0.85rem 0.75rem;
  display: flex;
}

.ferias-btn-adicionar-periodo {
  width: 100%;
  height: 34px;
  font-weight: 700;
  font-size: 0.8rem;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.ferias-btn-adicionar-periodo:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.ferias-bloco-fechadas-wrap {
  padding: 0.65rem 0.85rem 0.85rem;
  border-top: 1px solid #f1f5f9;
  background: #fbfcfe;
}

.ferias-fechadas-subtitulo {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #334155;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.ferias-fechadas-total {
  margin-top: 0.4rem;
  font-size: 0.75rem;
  color: #64748b;
  display: flex;
  justify-content: space-between;
}

.ferias-fechadas-vazio {
  font-size: 0.75rem;
  color: #94a3b8;
  font-style: italic;
  padding: 0.2rem 0;
}

/* ==========================================================================
   FÉRIAS — SEÇÃO FIXA: ORDEM DE PRIORIDADE (NA COLUNA DIREITA)
   ========================================================================== */
.ferias-secao--ordem-prioridade {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  width: 100%;
  box-sizing: border-box;
}

/* Cabeçalho da Seção */
.ferias-drawer-marcacao-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0.95rem 0.45rem;
  background: #ffffff;
  flex-shrink: 0;
  box-sizing: border-box;
}

.ferias-drawer-marcacao-header-left {
  display: flex;
  align-items: center;
  min-width: 0;
}

.ferias-drawer-marcacao-titulo {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.ferias-prioridade-aviso-fase {
  margin: 0 0 2px;
  font-size: 0.72rem;
  line-height: 1.3;
  color: #64748b;
  font-weight: 500;
}

/* Corpo da Seção */
.ferias-drawer-marcacao-body {
  padding: 0.25rem 0.85rem 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  box-sizing: border-box;
}

/* Quadro Explicativo Destacado e Compacto */
.ferias-drawer-marcacao-quadro-regras {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.55rem 0.7rem 0.55rem 0.85rem;
  box-sizing: border-box;
}

.ferias-drawer-marcacao-regras-lista {
  margin: 0;
  padding-left: 0.9rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.71rem;
  line-height: 1.35;
  color: #334155;
}

.ferias-drawer-marcacao-regras-lista li {
  margin: 0;
}

.ferias-drawer-marcacao-regras-lista strong {
  color: #0f172a;
  font-weight: 700;
}

/* GRADE / TABELA DE PRIORIDADES COM RESPIRO HORIZONTAL */
.ferias-drawer-marcacao-grid-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.ferias-drawer-marcacao-grid-header,
.ferias-drawer-marcacao-linha {
  display: grid;
  grid-template-columns: 24px minmax(50px, 1fr) 48px 48px 48px;
  padding-left: 0.35rem;
  padding-right: 0.55rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  align-items: center;
}

.ferias-drawer-marcacao-grid-header {
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

/* Lista de servidores livre para crescer sem barra de rolagem interna */
.ferias-drawer-marcacao-grid-body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.ferias-drawer-marcacao-linha {
  border-bottom: 1px solid #f1f5f9;
  min-height: 38px;
  transition: background-color 0.12s ease;
}

.ferias-drawer-marcacao-linha:last-child {
  border-bottom: none;
}

.ferias-drawer-marcacao-linha:hover {
  background: #f8fafc;
}

/* Células do Cabeçalho */
.ferias-drawer-marcacao-grid-header > div {
  color: #0f172a;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0;
  text-transform: none;
  padding: 0.45rem 0.2rem;
  white-space: nowrap;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}

.ferias-drawer-marcacao-th-num {
  text-align: center;
  padding-left: 0.2rem !important;
  padding-right: 0.2rem !important;
}

.ferias-drawer-marcacao-th-servidor {
  text-align: left !important;
  padding-left: 0.5rem !important;
  padding-right: 0.2rem !important;
}

.ferias-drawer-marcacao-th-pref {
  text-align: center;
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
}

/* Células das Linhas */
.ferias-drawer-marcacao-linha > div {
  padding: 0.35rem 0.2rem;
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.ferias-drawer-marcacao-td-num {
  justify-content: center;
  text-align: center;
  font-weight: 600;
  color: #0f172a;
  font-size: 0.74rem;
  padding-left: 0.2rem !important;
  padding-right: 0.2rem !important;
}

.ferias-drawer-marcacao-td-servidor {
  justify-content: flex-start;
  padding-left: 0.5rem !important;
  padding-right: 0.2rem !important;
  min-width: 0;
  overflow: hidden;
}

.ferias-drawer-marcacao-nome-servidor {
  font-weight: 600;
  color: #0f172a;
  font-size: 0.78rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  min-width: 0;
  max-width: 100%;
}

.ferias-drawer-marcacao-td-pref {
  justify-content: center;
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
  min-width: 0;
}

/* Bolas / Indicadores Circulares nas Colunas MP */
.ferias-drawer-marcacao-dot {
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  user-select: none;
  box-sizing: border-box;
  text-align: center;
  margin: 0 auto;
}

.ferias-drawer-marcacao-dot svg {
  display: block;
  flex-shrink: 0;
}

/* Cores das Bolas */
.ferias-drawer-marcacao-dot--p1 {
  background: #00875a;
  color: #ffffff;
}

.ferias-drawer-marcacao-dot--p2 {
  background: #e11d48;
  color: #ffffff;
}

.ferias-drawer-marcacao-dot--p3 {
  background: #0052cc;
  color: #ffffff;
}

.ferias-drawer-marcacao-dot--excedente {
  background: #ffab00;
  color: #ffffff;
  font-weight: 800;
  font-size: 0.75rem;
}

.ferias-drawer-marcacao-dot--bloqueado {
  background: #5243aa;
  color: #ffffff;
}

.ferias-drawer-marcacao-dot--autorizado {
  font-weight: 800;
  font-size: 0.75rem;
}

.ferias-drawer-marcacao-dot--vazio {
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  color: transparent;
}

.ferias-drawer-marcacao-vazio {
  text-align: center;
  color: #94a3b8;
  font-style: italic;
  padding: 1.25rem !important;
  width: 100%;
  box-sizing: border-box;
  font-size: 0.75rem;
}

/* Legenda Compacta Inferior */
.ferias-drawer-marcacao-legenda-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.15rem;
  padding: 0.45rem 0.15rem 0.15rem;
  box-sizing: border-box;
  border-top: 1px solid #f1f5f9;
}

.ferias-drawer-marcacao-legenda-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  text-align: center;
  min-width: 0;
  flex: 1;
}

.ferias-drawer-marcacao-legenda-item .ferias-drawer-marcacao-dot {
  width: 22px;
  height: 22px;
  min-width: 22px;
  min-height: 22px;
  font-size: 0.64rem;
}

.ferias-drawer-marcacao-legenda-rotulo {
  font-size: 0.62rem;
  color: #475569;
  font-weight: 600;
  line-height: 1.15;
  white-space: nowrap;
}

/* Rodapé */
.ferias-drawer-marcacao-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0.85rem;
  border-top: 1px solid #e2e8f0;
  background: #ffffff;
  flex-shrink: 0;
}

.ferias-drawer-marcacao-contador {
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
}

/* ==========================================================================
   NOVA ABA AJUSTE DE FÉRIAS (RESULTADO DA FASE 01 — MOCKUP-AJUSTE-V3.PNG)
   ========================================================================== */
.ferias-ajuste-fase01 {
  display: block;
  width: 100%;
  margin-top: 0.5rem;
  font-family: inherit;
  color: #1e293b;
}

.ferias-ajuste-grid {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 1.25rem;
  align-items: start;
}

@media (max-width: 1080px) {
  .ferias-ajuste-grid {
    grid-template-columns: 1fr;
  }
}

/* Tabela Principal */
.ferias-ajuste-tabela-container {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--app-shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.05));
}

.ferias-ajuste-tabela {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.86rem;
}

.ferias-ajuste-tabela thead th {
  background: #f8fafc;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e2e8f0;
}

.ferias-ajuste-th--num,
.ferias-ajuste-td--num {
  width: 40px;
  text-align: center;
  color: #94a3b8;
  font-weight: 600;
}

.ferias-ajuste-th--servidor,
.ferias-ajuste-td--servidor {
  min-width: 180px;
}

.ferias-ajuste-th--dias,
.ferias-ajuste-td--dias {
  width: 70px;
  text-align: center;
  font-weight: 600;
  color: #1e293b;
}

.ferias-ajuste-th--situacao,
.ferias-ajuste-td--situacao {
  width: 120px;
  text-align: center;
}

.ferias-ajuste-th--pendencia,
.ferias-ajuste-td--pendencia {
  min-width: 200px;
}

.ferias-ajuste-tabela tbody td {
  padding: 0.65rem 1rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.ferias-ajuste-tr {
  background: #ffffff;
  transition: background-color 0.15s ease;
}

.ferias-ajuste-tr:hover {
  background: #f8fafc;
}

/* Destaque visual da linha com pendência (mockup v3) */
.ferias-ajuste-tr--pendencia {
  background: #fff5f5 !important;
}

.ferias-ajuste-tr--pendencia:hover {
  background: #fee2e2 !important;
}

.ferias-ajuste-servidor-info {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.ferias-ajuste-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #e2e8f0;
  color: #334155;
  font-size: 0.75rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}

.ferias-ajuste-nome {
  font-weight: 600;
  color: #1e293b;
  font-size: 0.88rem;
}

/* Badges de Situação (pill) */
.ferias-ajuste-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 0.65rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
}

.ferias-ajuste-badge--completo {
  background: #ecfdf5;
  color: #059669;
  border: 1px solid #a7f3d0;
}

.ferias-ajuste-badge--incompleto {
  background: #fffbeb;
  color: #d97706;
  border: 1px solid #fde68a;
}

.ferias-ajuste-badge--ausente {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
}

/* Tags de Pendência */
.ferias-ajuste-pendencias-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}

.ferias-ajuste-pend-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  font-weight: 500;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
}

.ferias-ajuste-pend-tag--ausente {
  color: #dc2626;
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.ferias-ajuste-pend-tag--incompleto {
  color: #d97706;
  background: #fffbeb;
  border: 1px solid #fde68a;
}

.ferias-ajuste-pend-tag--excedente {
  color: #9333ea;
  background: #faf5ff;
  border: 1px solid #e9d5ff;
}

.ferias-ajuste-pend-tag--bloqueado {
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fca5a5;
}

.ferias-ajuste-pend-icon {
  font-weight: 800;
}

.ferias-ajuste-pend-svg {
  flex-shrink: 0;
}

.ferias-ajuste-pend-vazio {
  color: #94a3b8;
  font-weight: 500;
}

/* Rodapé e Legenda da Tabela */
.ferias-ajuste-rodape {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem;
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
  font-size: 0.78rem;
  color: #64748b;
}

.ferias-ajuste-rodape-info {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ferias-ajuste-rodape-contagem {
  font-weight: 600;
  color: #334155;
}

.ferias-ajuste-legenda {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.ferias-ajuste-legenda-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.ferias-ajuste-legenda-box--pendencia {
  display: inline-block;
  width: 12px;
  height: 12px;
  background: #fff5f5;
  border: 1px solid #fca5a5;
  border-radius: 2px;
}

.ferias-ajuste-legenda-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.ferias-ajuste-legenda-dot--completo {
  background: #10b981;
}

.ferias-ajuste-legenda-dot--incompleto {
  background: #f59e0b;
}

.ferias-ajuste-legenda-dot--ausente {
  background: #ef4444;
}

/* Painel Lateral / Cards */
.ferias-ajuste-lateral {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.ferias-ajuste-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.85rem 1rem;
  box-shadow: var(--app-shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.05));
}

.ferias-ajuste-card-header {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
  color: #1e293b;
}

.ferias-ajuste-card-ico {
  color: #64748b;
  flex-shrink: 0;
}

.ferias-ajuste-card-titulo {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.ferias-ajuste-card-desc {
  font-size: 0.74rem;
  color: #64748b;
  margin-top: 0.45rem;
  line-height: 1.3;
}

/* Switch Visibilidade */
.ferias-ajuste-visibilidade-controle {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.ferias-ajuste-switch {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 22px;
  flex-shrink: 0;
  cursor: pointer;
}

.ferias-ajuste-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.ferias-ajuste-switch-slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #cbd5e1;
  transition: 0.2s ease;
  border-radius: 22px;
}

.ferias-ajuste-switch-slider:before {
  position: absolute;
  content: "";
  height: 16px;
  width: 16px;
  left: 3px;
  bottom: 3px;
  background-color: #ffffff;
  transition: 0.2s ease;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

.ferias-ajuste-switch input:checked + .ferias-ajuste-switch-slider {
  background-color: #10b981;
}

.ferias-ajuste-switch input:checked + .ferias-ajuste-switch-slider:before {
  transform: translateX(16px);
}

.ferias-ajuste-visibilidade-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: #1e293b;
}

/* Filtros */
.ferias-ajuste-filtros-lista {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ferias-ajuste-filtro-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.8rem;
  color: #475569;
  padding: 0.2rem 0;
  cursor: default;
}

.ferias-ajuste-filtro-item input[type="checkbox"] {
  accent-color: #183b56;
  margin-right: 0.45rem;
}

.ferias-ajuste-filtro-count {
  background: #f1f5f9;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.1rem 0.45rem;
  border-radius: 9999px;
}

/* Resumo */
.ferias-ajuste-resumo-lista {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.8rem;
}

.ferias-ajuste-resumo-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #475569;
  padding: 0.15rem 0;
}

.ferias-ajuste-resumo-linha strong {
  font-weight: 600;
  color: #1e293b;
}

.ferias-ajuste-resumo-linha--pendencia strong {
  color: #dc2626;
}

.ferias-ajuste-resumo-linha--completo strong {
  color: #059669;
}

.ferias-ajuste-resumo-linha--incompleto strong {
  color: #d97706;
}

.ferias-ajuste-resumo-linha--ausente strong {
  color: #dc2626;
}

/* Botões de Ação */
.ferias-ajuste-acoes-botoes {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ferias-ajuste-btn-publicar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.6rem 1rem;
  background: #183b56;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(24, 59, 86, 0.2);
  transition: background-color 0.15s ease;
}

.ferias-ajuste-btn-publicar:hover {
  background: #0f273b;
}

.ferias-ajuste-btn-exportar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.5rem 1rem;
  background: #ffffff;
  color: #334155;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.ferias-ajuste-btn-exportar:hover {
  background: #f8fafc;
}

.ferias-ajuste-publicado-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid #e2e8f0;
}

.ferias-ajuste-publicado-badge {
  color: #059669;
  font-weight: 700;
  font-size: 0.78rem;
}

.ferias-ajuste-publicado-info small {
  color: #64748b;
  font-size: 0.72rem;
}

/* ============================================================
   RECURSO "VER TABELA DE MARCAÇÃO" — FORMULÁRIO DE INTERVENÇÃO
   ============================================================ */

.ferias-ver-tabela-wrap {
  width: 100%;
}

.ferias-btn-ver-tabela-marcacao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.5rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  background-color: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  text-decoration: none;
}

.ferias-btn-ver-tabela-marcacao:hover {
  background-color: #e2e8f0;
  border-color: #94a3b8;
  color: #0f172a;
}

.ferias-btn-ver-tabela-marcacao:active {
  background-color: #cbd5e1;
}

#btn-drawer-voltar-parte1 {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #334155 !important;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.4rem 0.75rem !important;
  background-color: #f1f5f9 !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 6px;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

#btn-drawer-voltar-parte1:hover {
  background-color: #e2e8f0 !important;
  border-color: #94a3b8 !important;
  color: #0f172a !important;
}

#btn-drawer-voltar-parte1:active {
  background-color: #cbd5e1 !important;
}

.ferias-btn-ver-tabela-marcacao svg {
  flex-shrink: 0;
  stroke: currentColor;
}

/* Modo Consulta de Intervenção sobre a página Marcação */
.ferias-marcacao.is-modo-consulta-intervencao,
[data-modo-consulta-intervencao="true"] {
  /* Marcação em modo somente leitura */
}

[data-modo-consulta-intervencao="true"] .ferias-plantoes-data {
  cursor: default !important;
}

[data-modo-consulta-intervencao="true"] [data-btn-adicionar-periodo-popover],
[data-modo-consulta-intervencao="true"] .ferias-btn-nova-marcacao,
[data-modo-consulta-intervencao="true"] .ferias-acao-editar,
[data-modo-consulta-intervencao="true"] .ferias-acao-excluir {
  pointer-events: none !important;
  opacity: 0.35 !important;
  cursor: not-allowed !important;
}

.ferias-minhas--consulta-intervencao {
  position: relative;
}

.ferias-painel-intervencao-wrap {
  position: sticky;
  top: 1rem;
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  z-index: 20;
}

/* ==========================================================================
   ÁREA DE CADASTRO ADMINISTRATIVO (MOCKUP OFICIAL)
   ========================================================================== */
.cadastro-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

.cadastro-layout {
  display: flex;
  gap: 10px; /* Gap de 10px entre a primeira sidebar e a segunda */
  height: calc(100vh - 72px);
  overflow: hidden;
  background-color: var(--app-bg, #f0f4f8);
  padding: 0;
  box-sizing: border-box;
}

/* Segunda Sidebar Contextual */
.cadastro-sidebar {
  width: 236px;
  background: #1a4a75;
  color: #ffffff;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  overflow: hidden;
  transition: width 0.2s ease-in-out;
  box-shadow: 0 2px 8px rgba(11, 37, 69, 0.12);
}

.cadastro-sidebar.is-recolhida {
  width: 44px;
  padding: 0.4rem 0.2rem;
  align-items: center;
}

.cadastro-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0.85rem 0.5rem 0.95rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.cadastro-sidebar.is-recolhida .cadastro-sidebar-header {
  padding: 0.35rem 0;
  border-bottom: none;
  justify-content: center;
  width: 100%;
}

.cadastro-sidebar-title {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
  text-transform: uppercase;
}

.cadastro-toggle-btn {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #ffffff;
  border-radius: 4px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: all 0.15s ease;
}

.cadastro-toggle-btn:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.35);
}

.cadastro-sidebar-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 0.5rem 0.55rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

/* Seções e itens verticais compactos do menu secundário */
.cadastro-nav-section {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.cadastro-section-title {
  display: block;
  padding: 0.4rem 0.5rem 0.15rem;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cadastro-section-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: transparent;
  border: none;
  padding: 0.35rem 0.5rem 0.15rem;
  cursor: pointer;
  text-align: left;
  border-radius: 4px;
  transition: background 0.12s ease;
}

.cadastro-section-toggle:hover {
  background: rgba(255, 255, 255, 0.06);
}

.cadastro-section-toggle .cadastro-section-title {
  padding: 0;
  cursor: pointer;
}

.cad-sec-chev {
  display: inline-flex;
  align-items: center;
  color: rgba(255, 255, 255, 0.5);
}

.cad-sec-chev svg {
  width: 13px;
  height: 13px;
}

.cadastro-section-body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin-top: 0.1rem;
}

.cadastro-section-body[hidden] {
  display: none !important;
}

.cadastro-section-body--dimensoes {
  padding-left: 0.4rem;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
  margin-left: 0.45rem;
  margin-top: 0.2rem;
}

.cadastro-nav-link {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  padding: 0.35rem 0.55rem;
  font-size: 0.82rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  transition: all 0.12s ease;
}

.cadastro-nav-link:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.cadastro-nav-link.is-active {
  background: #0066cc;
  color: #ffffff;
  font-weight: 600;
}

.cadastro-nav-link--sub {
  font-size: 0.77rem;
  padding: 0.28rem 0.5rem 0.28rem 0.65rem;
  color: rgba(255, 255, 255, 0.72);
}

.cadastro-nav-link--sub:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.06);
}

.cadastro-nav-link--sub.is-active {
  background: #0066cc;
  color: #ffffff;
  font-weight: 600;
}

.cad-nav-dot {
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  flex-shrink: 0;
}

.cadastro-nav-link.is-active .cad-nav-dot {
  background: #ffffff;
}

/* Plantão Context Selector */
.cadastro-plantao-contexto {
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 5px;
  padding: 0.5rem 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 0.25rem;
}

.cad-ctx-label {
  font-size: 0.58rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cad-ctx-select-wrap {
  position: relative;
  width: 100%;
}

.cad-ctx-select {
  width: 100%;
  background: #0e3052;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  border-radius: 4px;
  font-size: 0.73rem;
  font-weight: 600;
  padding: 0.3rem 0.45rem;
  cursor: pointer;
  outline: none;
  box-sizing: border-box;
}

/* Workspace / Conteúdo Principal */
.cadastro-workspace {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem 1.5rem 2rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.cadastro-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  color: #64748b;
  font-weight: 500;
}

.cad-bc-sep {
  color: #94a3b8;
  font-size: 0.75rem;
}

.cad-bc-current {
  color: #0f172a;
  font-weight: 600;
}

.cadastro-workspace-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.25rem;
}

.cadastro-workspace-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
  line-height: 1.2;
}

.cadastro-workspace-subtitle {
  font-size: 0.875rem;
  color: #64748b;
  margin: 0.25rem 0 0 0;
}

/* Botões do Cadastro */
.cad-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0.5625rem 1.125rem;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s ease;
  line-height: 1.25;
}

.cad-btn--primary {
  background-color: #0066cc;
  color: #ffffff;
  border-color: #0066cc;
  box-shadow: 0 1px 3px rgba(0, 102, 204, 0.25);
}

.cad-btn--primary:hover {
  background-color: #0052a3;
  border-color: #0052a3;
}

.cad-btn--secondary {
  background-color: #ffffff;
  color: #1e293b;
  border-color: #cbd5e1;
}

.cad-btn--secondary:hover {
  background-color: #f8fafc;
  border-color: #94a3b8;
}

.cad-btn--ghost {
  background-color: #ffffff;
  color: #475569;
  border-color: #cbd5e1;
}

.cad-btn--ghost:hover {
  background-color: #f1f5f9;
  color: #0f172a;
}

.cad-btn--full {
  width: 100%;
}

/* Grid com as duas colunas: Formulário à esquerda + Tabela à direita com larguras mín/máx controladas */
.cadastro-workspace-grid {
  display: grid;
  grid-template-columns: minmax(420px, 560px) minmax(500px, 1fr);
  gap: 1.25rem;
  align-items: start;
  width: 100%;
}

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

/* Cards do Workspace */
.cadastro-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
  overflow: hidden;
}

.cadastro-card--table {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.cadastro-card-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid #f1f5f9;
  background-color: #fafbfc;
}

.cad-search-box {
  position: relative;
  flex: 1;
  min-width: 180px;
}

.cad-search-ico {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  color: #94a3b8;
  pointer-events: none;
}

.cad-search-box input {
  width: 100%;
  padding: 0.45rem 0.75rem 0.45rem 2.25rem;
  font-size: 0.8125rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  outline: none;
  background-color: #ffffff;
  color: #0f172a;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  box-sizing: border-box;
}

.cad-search-box input:focus {
  border-color: #0066cc;
  box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
}

.cad-filters-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.cad-filter-select-wrap {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.cad-filter-select-wrap label {
  font-size: 0.72rem;
  font-weight: 600;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.cad-filter-select-wrap select {
  font-size: 0.78rem;
  padding: 0.38rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background-color: #ffffff;
  color: #0f172a;
  outline: none;
  cursor: pointer;
}

.cad-table-count {
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
  margin-left: 0.25rem;
  white-space: nowrap;
}

/* Tabela do Cadastro */
.cadastro-table-wrapper {
  overflow-x: auto;
  overflow-y: auto;
  max-height: calc(100vh - 240px);
}

.cadastro-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
  text-align: left;
}

.cadastro-table thead {
  background-color: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.cadastro-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background-color: #f8fafc;
  padding: 0.65rem 0.85rem;
  font-weight: 700;
  color: #475569;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid #e2e8f0;
  white-space: nowrap;
}

.cad-sort-ico {
  font-size: 0.6875rem;
  color: #94a3b8;
  margin-left: 0.25rem;
}

.cad-tr {
  border-bottom: 1px solid #f1f5f9;
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.cad-tr:hover {
  background-color: #f8fafc;
}

.cad-tr.is-selected {
  background-color: #eff6ff;
  border-left: 3px solid #0066cc;
}

.cadastro-table td {
  padding: 0.65rem 0.85rem;
  color: #334155;
  vertical-align: middle;
  font-size: 0.8rem;
}

.cad-td-mat {
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
}

.cad-td-nome {
  font-weight: 600;
  color: #0f172a;
}

.cad-td-subnome {
  display: block;
  font-size: 0.7rem;
  font-weight: 400;
  color: #64748b;
  margin-top: 0.1rem;
}

/* Badges de Situação */
.cad-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  padding: 0.2rem 0.55rem;
  border-radius: 9999px;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.cad-badge-ico {
  width: 10px;
  height: 10px;
}

.cad-badge--ativo {
  background-color: #dcfce7;
  color: #15803d;
  border: 1px solid #bbf7d0;
}

.cad-badge--inativo {
  background-color: #fef3c7;
  color: #b45309;
  border: 1px solid #fde68a;
}

.cad-badge--pendente {
  background-color: #e0f2fe;
  color: #0369a1;
  border: 1px solid #bae6fd;
}

/* Rodapé da Tabela */
.cadastro-table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.65rem 1.25rem;
  border-top: 1px solid #f1f5f9;
  font-size: 0.75rem;
  color: #64748b;
  background-color: #fafbfc;
}

.cad-pagination {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.cad-page-btn {
  min-width: 26px;
  height: 26px;
  padding: 0 0.35rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  color: #475569;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
}

.cad-page-btn.is-active {
  background: #0066cc;
  color: #ffffff;
  border-color: #0066cc;
}

.cad-page-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Card de Formulário / Detalhes (Painel Esquerdo) */
.cadastro-card--form {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.cadastro-form-header {
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 0.75rem;
}

.cadastro-form-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.cad-form-chev {
  color: #0066cc;
  font-weight: 800;
}

.cadastro-form-subtitle {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0.2rem 0 0 0;
}

.cadastro-form-body {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

/* Títulos das 3 Seções do Formulário */
.cad-form-section-title {
  font-size: 0.68rem;
  font-weight: 800;
  color: #1a4a75;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.35rem 0.5rem;
  background-color: #f0f7ff;
  border-left: 3px solid #0066cc;
  border-radius: 0 4px 4px 0;
  margin-top: 0.35rem;
  margin-bottom: 0.15rem;
}

/* Cabeçalho de Seção com Ação Alinhada */
.cad-form-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  background-color: #f0f7ff;
  border-left: 3px solid #0066cc;
  border-radius: 0 4px 4px 0;
  padding: 0.25rem 0.5rem;
  margin-top: 0.5rem;
  margin-bottom: 0.25rem;
}

.cad-form-section-header .cad-form-section-title {
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
}

.cad-form-section-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

/* Botões Outline do Formulário */
.cad-btn-outline-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.24rem 0.55rem;
  min-height: 24px;
  border-radius: 5px;
  background-color: #ffffff;
  border: 1px solid #0066cc;
  color: #0066cc;
  cursor: pointer;
  transition: all 0.15s ease;
  line-height: 1;
  white-space: nowrap;
}

.cad-btn-outline-primary:hover:not(:disabled) {
  background-color: #f0f7ff;
  border-color: #0052a3;
  color: #0052a3;
}

.cad-btn-outline-primary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  border-color: #cbd5e1;
  color: #94a3b8;
  background-color: #f8fafc;
}

.cad-btn-outline-danger {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.24rem 0.55rem;
  min-height: 24px;
  border-radius: 5px;
  background-color: #ffffff;
  border: 1px solid #ef4444;
  color: #dc2626;
  cursor: pointer;
  transition: all 0.15s ease;
  line-height: 1;
  white-space: nowrap;
}

.cad-btn-outline-danger:hover:not(:disabled) {
  background-color: #fef2f2;
  border-color: #dc2626;
}

.cad-btn-outline-danger:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  border-color: #cbd5e1;
  color: #94a3b8;
  background-color: #f8fafc;
}

.cad-btn-outline-success {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.24rem 0.55rem;
  min-height: 24px;
  border-radius: 5px;
  background-color: #ffffff;
  border: 1px solid #16a34a;
  color: #16a34a;
  cursor: pointer;
  transition: all 0.15s ease;
  line-height: 1;
  white-space: nowrap;
}

.cad-btn-outline-success:hover:not(:disabled) {
  background-color: #f0fdf4;
  border-color: #15803d;
}

.cad-btn-primary-sm {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.35rem 0.85rem;
  border-radius: 4px;
  background-color: #0066cc;
  border: 1px solid #0066cc;
  color: #ffffff;
  cursor: pointer;
  transition: all 0.15s ease;
  line-height: 1;
}

.cad-btn-primary-sm:hover {
  background-color: #0052a3;
  border-color: #0052a3;
}

/* Wrapper de Input de Data com Ícone */
.cad-input-date-wrap {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.cad-input-date-wrap input {
  padding-right: 2rem !important;
}

.cad-input-calendar-ico {
  position: absolute;
  right: 0.55rem;
  color: #94a3b8;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cad-input-calendar-ico svg,
.cad-input-calendar-ico .cad-ico {
  width: 13px;
  height: 13px;
}

/* Container e Banners de Lotações */
.cad-lotacoes-container {
  margin-top: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.cad-lotacoes-main-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #f0f7ff;
  border-left: 3px solid #0066cc;
  border-radius: 0 4px 4px 0;
  padding: 0.35rem 0.5rem;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.15s ease;
}

.cad-lotacoes-main-banner:hover {
  background-color: #e6f1fc;
}

.cad-lotacoes-main-title {
  font-size: 0.68rem;
  font-weight: 800;
  color: #1a4a75;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.cad-lotacoes-chevron {
  display: inline-flex;
  align-items: center;
  color: #0066cc;
  transition: transform 0.2s ease;
}

.cad-lotacoes-chevron svg {
  width: 13px;
  height: 13px;
}

.cad-lotacoes-chevron.is-open {
  transform: rotate(180deg);
}

/* Accordions de Lotação */
.cad-lotacao-accordion {
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background-color: #f8fafc;
  overflow: hidden;
}

.cad-lotacao-accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.4rem 0.6rem;
  background-color: #f8fafc;
}

.cad-lotacao-header-left {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  user-select: none;
  flex: 1;
}

.cad-accordion-arrow {
  display: inline-flex;
  align-items: center;
  color: #64748b;
  transition: transform 0.2s ease;
}

.cad-accordion-arrow svg {
  width: 12px;
  height: 12px;
}

.cad-accordion-arrow.is-open {
  transform: rotate(90deg);
}

.cad-lotacao-accordion-title {
  font-size: 0.7rem;
  font-weight: 700;
  color: #1e293b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.cad-lotacao-header-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.cad-lotacao-accordion-body {
  padding: 0.65rem 0.6rem 0.55rem;
  background-color: #ffffff;
  border-top: 1px solid #e2e8f0;
}

/* Popover Modal para Mudar de Unidade */
.cad-popover-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background-color: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  animation: cadFadeIn 0.15s ease-out;
}

.cad-popover-card {
  background-color: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  width: 100%;
  max-width: 440px;
  overflow: hidden;
  animation: cadScaleIn 0.15s ease-out;
}

.cad-popover-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  background-color: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.cad-popover-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f172a;
}

.cad-popover-close-btn {
  background: transparent;
  border: none;
  color: #64748b;
  cursor: pointer;
  padding: 0.2rem;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.12s ease;
}

.cad-popover-close-btn:hover {
  color: #0f172a;
  background-color: #e2e8f0;
}

.cad-popover-close-btn svg {
  width: 14px;
  height: 14px;
}

.cad-popover-body {
  padding: 1rem;
}

.cad-popover-callout {
  background-color: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 6px;
  padding: 0.55rem 0.75rem;
  margin-top: 0.85rem;
  font-size: 0.75rem;
  color: #1e40af;
  line-height: 1.4;
}

.cad-popover-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background-color: #f8fafc;
  border-top: 1px solid #e2e8f0;
}

@keyframes cadFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes cadScaleIn {
  from { transform: scale(0.95); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

/* Blocos / Accordions de Lotação Legados */
.cad-lotacao-block {
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background-color: #f8fafc;
  padding: 0.75rem;
  margin-top: 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cad-lotacao-block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid #e2e8f0;
}

.cad-lotacao-block-title {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.7rem;
  font-weight: 700;
  color: #1e293b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.cad-status-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.62rem;
  font-weight: 700;
  padding: 0.12rem 0.4rem;
  border-radius: 9999px;
  text-transform: uppercase;
  line-height: 1;
}

.cad-status-badge--ativo {
  background-color: #dcfce7;
  color: #15803d;
}

.cad-status-badge--inativo {
  background-color: #f1f5f9;
  color: #64748b;
}

.cad-btn-secondary-sm {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.25rem 0.55rem;
  border-radius: 4px;
  background-color: #ffffff;
  border: 1px solid #cbd5e1;
  color: #334155;
  cursor: pointer;
  transition: all 0.15s ease;
  line-height: 1;
}

.cad-btn-secondary-sm:hover {
  background-color: #f1f5f9;
  border-color: #94a3b8;
}

.cad-btn-danger-sm {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.25rem 0.55rem;
  border-radius: 4px;
  background-color: #fef2f2;
  border: 1px solid #fecaca;
  color: #dc2626;
  cursor: pointer;
  transition: all 0.15s ease;
  line-height: 1;
}

.cad-btn-danger-sm:hover {
  background-color: #fee2e2;
  border-color: #f87171;
}

.cad-crud-actions--servidores {
  grid-template-columns: 1fr;
  margin-top: 0.75rem;
}

.cad-form-row {
  display: grid;
  gap: 0.65rem;
}

.cad-form-row--2cols {
  grid-template-columns: 1fr 1fr;
}

.cad-form-row--sigla-nome {
  grid-template-columns: 1fr 2fr;
}

.cad-form-row--3cols {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cad-form-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.cad-form-field label {
  font-size: 0.72rem;
  font-weight: 600;
  color: #334155;
}

.cad-req {
  color: #dc2626;
}

.cad-form-field input[type="text"],
.cad-form-field input[type="date"],
.cad-form-field input[type="time"],
.cad-form-field textarea,
.cad-form-field select {
  width: 100%;
  padding: 0.42rem 0.65rem;
  font-size: 0.8rem;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background-color: #ffffff;
  color: #0f172a;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  box-sizing: border-box;
}

.cad-form-field textarea {
  resize: vertical;
  min-height: 54px;
}

.cad-form-row--horarios-dias {
  display: grid;
  grid-template-columns: 120px 120px 1fr;
  gap: 0.6rem;
  align-items: flex-end;
}

@media (max-width: 600px) {
  .cad-form-row--horarios-dias {
    grid-template-columns: 1fr 1fr;
  }
  .cad-form-field--dias {
    grid-column: span 2;
  }
}

.cad-form-field--time input[type="time"] {
  max-width: 100%;
}

.cad-dias-semana-group {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: nowrap;
}

.cad-form-field--dias .cad-dia-checkbox {
  flex: 1;
  white-space: nowrap;
  padding: 0.38rem 0.5rem;
  font-size: 0.78rem;
  justify-content: center;
}

.cad-dia-checkbox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  background-color: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  padding: 0.45rem 0.85rem;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  color: #334155;
  transition: all 0.15s ease;
  user-select: none;
}

.cad-dia-checkbox:hover {
  background-color: #f1f5f9;
  border-color: #94a3b8;
}

.cad-dia-checkbox input[type="checkbox"] {
  width: 12px;
  height: 12px;
  margin: 0;
  cursor: pointer;
  accent-color: #0066cc;
}

.cad-dia-checkbox:has(input[type="checkbox"]:checked) {
  background-color: #eff6ff;
  border-color: #0066cc;
  color: #0066cc;
}

/* Barra de Ações CRUD do Formulário (Compacta) */
.cad-crud-actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.35rem;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid #f1f5f9;
}

.cad-crud-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.28rem 0.45rem;
  min-height: 26px;
  border-radius: 4px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s ease;
  line-height: 1;
}

.cad-crud-btn svg,
.cad-crud-btn .cad-ico {
  width: 12px;
  height: 12px;
}

.cad-crud-btn--novo {
  background-color: #f1f5f9;
  color: #1e293b;
  border-color: #cbd5e1;
}

.cad-crud-btn--novo:hover {
  background-color: #e2e8f0;
  color: #0f172a;
}

.cad-crud-btn--gravar {
  background-color: #0066cc;
  color: #ffffff;
  border-color: #0066cc;
}

.cad-crud-btn--gravar:hover {
  background-color: #0052a3;
}

.cad-crud-btn--status {
  background-color: #ffffff;
  color: #dc2626;
  border-color: #fecaca;
}

.cad-crud-btn--status:hover {
  background-color: #fef2f2;
}

/* Estado vazio da tabela de cadastro */
.cad-empty-msg {
  text-align: center;
  padding: 2.5rem 1.5rem !important;
  color: #64748b;
}

.cad-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
}

.cad-empty-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cad-empty-svg {
  width: 22px;
  height: 22px;
}

.cad-empty-state p {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 500;
  color: #64748b;
}

.cad-alert {
  padding: 0.625rem 1rem;
  border-radius: 6px;
  font-size: 0.8125rem;
  font-weight: 500;
}

.cad-alert--success {
  background-color: #dcfce7;
  color: #15803d;
  border: 1px solid #bbf7d0;
}

/* Dropdown Seletor de Contexto no Topbar Brand para ADMIN */
.tb-context-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.tb-unit--dropdown {
  cursor: pointer;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  padding: 0.1rem 0.35rem;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: inherit;
  font: inherit;
  line-height: inherit;
  transition: all 0.15s ease;
}

.tb-unit--dropdown:hover,
.tb-unit--dropdown[aria-expanded="true"] {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.45);
}

.tb-unit-arrow {
  font-size: 0.7rem;
  opacity: 0.85;
}

.tb-context-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 220px;
  max-width: 320px;
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.15), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  padding: 0.35rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  max-height: 340px;
  overflow-y: auto;
}

.tb-context-menu[hidden] {
  display: none;
}

.tb-context-menu-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  width: 100%;
  padding: 0.45rem 0.65rem;
  background: transparent;
  border: none;
  border-radius: 4px;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.tb-context-menu-item:hover {
  background-color: #f1f5f9;
}

.tb-context-menu-item.is-selected {
  background-color: #eff6ff;
  border-left: 3px solid #0066cc;
}

.tb-ctx-sigla {
  font-size: 0.82rem;
  font-weight: 700;
  color: #0f172a;
}

.tb-ctx-nome {
  font-size: 0.72rem;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* =========================================================
 * Repetir para Unidades & Relação Pai -> Filhos
 * ========================================================= */
.cad-crud-btn--repetir {
  background-color: #f1f5f9;
  color: #1a4a75;
  border: 1px solid #cbd5e1;
}

.cad-crud-btn--repetir:hover:not(:disabled) {
  background-color: #e2e8f0;
  border-color: #94a3b8;
}

.cad-popover-card--repetir {
  max-width: 480px;
  width: 92vw;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
}

.cad-repetir-desc {
  font-size: 0.82rem;
  color: #475569;
  margin: 0 0 0.75rem 0;
  line-height: 1.45;
}

.cad-repetir-unidades-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  max-height: 380px;
  overflow-y: auto;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.5rem;
  background-color: #f8fafc;
}

.cad-repetir-unit-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem 0.55rem;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.82rem;
  user-select: none;
  transition: background-color 0.12s ease;
}

.cad-repetir-unit-item:hover {
  background-color: rgba(26, 74, 117, 0.08);
}

.cad-repetir-unit-item input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  cursor: pointer;
  accent-color: #1a4a75;
}

.cad-repetir-unit-sigla {
  font-weight: 700;
  color: #1a4a75;
  min-width: 65px;
}

.cad-repetir-unit-nome {
  color: #334155;
  font-size: 0.78rem;
}

.cad-repetir-resultado {
  margin-top: 0.85rem;
}

.cad-filhos-section {
  margin-top: 1.15rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e2e8f0;
  width: 100%;
  box-sizing: border-box;
}

.cad-filhos-empty {
  font-size: 0.78rem;
  color: #64748b;
  font-style: italic;
  margin: 0.5rem 0 0 0;
}

.cad-filhos-table-wrap {
  margin-top: 0.5rem;
  max-height: 240px;
  overflow-y: auto;
  overflow-x: hidden;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background-color: #ffffff;
}

.cad-filhos-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.76rem;
  table-layout: auto;
}

.cad-filhos-table th {
  background-color: #f8fafc;
  padding: 0.35rem 0.5rem;
  text-align: left;
  font-weight: 600;
  color: #475569;
  border-bottom: 1px solid #e2e8f0;
  white-space: nowrap;
}

.cad-filhos-table td {
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid #f1f5f9;
  color: #1e293b;
  white-space: nowrap;
}

.cad-filhos-table tr:last-child td {
  border-bottom: none;
}

.cad-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 4px;
  color: #94a3b8;
  cursor: pointer;
  transition: all 0.15s ease;
}

.cad-btn-icon .cad-ico {
  width: 14px;
  height: 14px;
}

.cad-btn-icon--trash:disabled,
.cad-btn-icon:disabled {
  color: #cbd5e1;
  background-color: transparent;
  cursor: not-allowed;
  opacity: 0.45;
  pointer-events: none;
  border: none;
}

.cad-servidor-info-row {
  margin-top: 0.35rem;
  margin-bottom: 0.85rem;
  padding: 0.35rem 0.65rem;
  background-color: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  font-size: 0.8125rem;
  color: #475569;
  line-height: 1.4;
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.cad-servidor-info-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cad-form-field input[readonly],
.cad-input--readonly {
  background-color: #f1f5f9 !important;
  color: #64748b !important;
  cursor: not-allowed !important;
  border-color: #cbd5e1 !important;
}

.cad-servidor-historico-info {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.cad-field-with-btn {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.cad-field-with-btn select {
  flex: 1;
}

.cad-btn-remover-servidor {
  padding: 0.35rem 0.65rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #ef4444;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 4px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.cad-btn-remover-servidor:hover {
  background: #fee2e2;
  border-color: #fca5a5;
}

/* Cabeçalho do Workspace com Seletor Compacto de Unidade na Mesma Linha */
.cadastro-workspace-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  gap: 1rem;
}

.cadastro-workspace-header-left {
  display: flex;
  flex-direction: column;
}

.cad-header-unidade-contexto {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #ffffff;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
}

.cad-header-unidade-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #64748b;
  text-transform: uppercase;
  margin: 0;
  white-space: nowrap;
}

.cad-header-unidade-select {
  height: 32px;
  padding: 0.25rem 1.75rem 0.25rem 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1e293b;
  background-color: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  cursor: pointer;
  transition: all 0.15s ease;
  min-width: 130px;
}

.cad-header-unidade-select:hover,
.cad-header-unidade-select:focus {
  border-color: #3b82f6;
  outline: none;
  background-color: #ffffff;
}

.cad-header-unidade-static {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0.25rem 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1e293b;
  background-color: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  white-space: nowrap;
}

/* Blocos de Composição da Chefia */
.cad-chefia-blocos-container {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
  width: 100%;
  box-sizing: border-box;
}

.cad-chefia-pos-bloco {
  display: flex;
  flex-direction: column;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.65rem 0.75rem;
}

.cad-chefia-pos-header,
.cad-chefia-pos-row {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) 95px 95px 85px 36px;
  gap: 0.5rem;
  align-items: center;
}

.cad-chefia-pos-header {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #64748b;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
  min-height: 18px;
}

.cad-chefia-pos-header .cad-chefia-label-pos {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  text-transform: none;
  letter-spacing: normal;
}

.cad-chefia-col-srv select {
  width: 100%;
  box-sizing: border-box;
}

.cad-chefia-col-dt {
  font-size: 0.8125rem;
  color: #475569;
  text-align: center;
  white-space: nowrap;
}

.cad-chefia-col-st {
  text-align: center;
  white-space: nowrap;
}

.cad-chefia-col-act {
  display: flex;
  justify-content: center;
  align-items: center;
}

.cad-btn-remover-servidor-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid transparent;
  color: #ef4444;
  border-radius: 4px;
  padding: 0.3rem;
  cursor: pointer;
  transition: all 0.15s ease;
}

.cad-btn-remover-servidor-icon:hover {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #b91c1c;
}

.cad-btn-remover-servidor-icon svg {
  width: 15px;
  height: 15px;
}

/* ==========================================================================
   FORMULÁRIO DE SERVIDORES — FIDELIDADE AO MOCKUP-CADSERVIDOR.PNG
   ========================================================================== */
.cadastro-workspace-grid--servidor {
  display: grid;
  grid-template-columns: minmax(580px, 760px) minmax(420px, 1fr);
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 1280px) {
  .cadastro-workspace-grid--servidor {
    grid-template-columns: minmax(520px, 1fr) minmax(380px, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 1024px) {
  .cadastro-workspace-grid--servidor {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.cadastro-workspace-header--servidor {
  display: grid;
  grid-template-columns: minmax(580px, 760px) minmax(420px, 1fr);
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}

@media (max-width: 1280px) {
  .cadastro-workspace-header--servidor {
    grid-template-columns: minmax(520px, 1fr) minmax(380px, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 1024px) {
  .cadastro-workspace-header--servidor {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.cad-srv-header-form-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
}

.cadastro-workspace-header-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.cad-btn-novo-servidor-top {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: #ffffff;
  color: #0b63e5;
  border: 1.5px solid #0b63e5;
  border-radius: 6px;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.cad-btn-novo-servidor-top:hover {
  background: #eff6ff;
  border-color: #0951bd;
  color: #0951bd;
}

.cad-btn-novo-servidor-top svg {
  width: 16px;
  height: 16px;
}

/* Card do Painel de Formulário de Servidores */
.cad-srv-form-panel {
  padding: 1.25rem 1.5rem;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

/* Card de Status do Servidor */
.cad-srv-status-card {
  display: inline-flex;
  align-items: center;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.4rem 0.85rem;
  gap: 0.85rem;
  width: fit-content;
}

.cad-srv-status-col {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.cad-srv-status-label {
  font-size: 0.6875rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cad-srv-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.15rem 0.6rem;
  border-radius: 9999px;
  line-height: 1.2;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s ease;
}

.cad-srv-status-badge--ativo {
  background: #dcfce7;
  color: #15803d;
  border-color: #bbf7d0;
}

.cad-srv-status-badge--inativo {
  background: #fee2e2;
  color: #b91c1c;
  border-color: #fecaca;
}

.cad-srv-status-val {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1e293b;
}

.cad-srv-status-divider {
  width: 1px;
  height: 28px;
  background: #e2e8f0;
}

/* Abas de Navegação do Formulário (100% largura disponível) */
.cad-srv-tabs-bar {
  display: flex;
  width: 100%;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.cad-srv-tab-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.65rem 1rem;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  background: #ffffff;
  color: #475569;
  border: 1px solid #cbd5e1;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}

.cad-srv-tab-btn:hover:not(.is-active) {
  background: #f8fafc;
  color: #1e293b;
}

.cad-srv-tab-btn.is-active {
  background: #0b63e5;
  color: #ffffff;
  border-color: #0b63e5;
  box-shadow: 0 1px 3px rgba(11, 99, 229, 0.2);
}

.cad-tab-ico {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cad-srv-tab-pane.is-hidden {
  display: none !important;
}

.cad-srv-tab-pane.is-active {
  display: block;
}

/* Seções do Formulário de Servidor (Banners) */
.cad-srv-section-box {
  margin-bottom: 1.25rem;
}

.cad-srv-section-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #eef6ff;
  border-radius: 6px;
  padding: 0.5rem 0.85rem;
  margin-bottom: 0.85rem;
}

.cad-srv-sec-ico {
  color: #0b63e5;
  display: inline-flex;
  align-items: center;
}

.cad-srv-sec-ico svg {
  width: 16px;
  height: 16px;
}

.cad-srv-sec-title {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0b63e5;
  letter-spacing: 0.01em;
}

/* Layouts de Linhas de Formulário de Identificação */
.cad-form-row--nome-completo-curto {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 0.75rem;
}

@media (max-width: 640px) {
  .cad-form-row--nome-completo-curto {
    grid-template-columns: 1fr;
  }
}

.cad-form-row--3cols {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.75rem;
}

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

/* Campos Somente Leitura (Dados Complementares) */
.cad-srv-read-row {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.cad-srv-read-row--2cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

@media (max-width: 640px) {
  .cad-srv-read-row--2cols {
    grid-template-columns: 1fr;
  }
}

.cad-srv-read-row--email-tel {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 1rem;
}

@media (max-width: 640px) {
  .cad-srv-read-row--email-tel {
    grid-template-columns: 1fr;
  }
}

.cad-srv-read-row--3cols {
  display: grid;
  grid-template-columns: 0.6fr 1.8fr 0.6fr;
  gap: 0.75rem;
}

@media (max-width: 640px) {
  .cad-srv-read-row--3cols {
    grid-template-columns: 1fr;
  }
}

.cad-srv-read-row--4cols {
  display: grid;
  grid-template-columns: 1.2fr 1.2fr 0.6fr 1fr;
  gap: 0.75rem;
}

@media (max-width: 768px) {
  .cad-srv-read-row--4cols {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 480px) {
  .cad-srv-read-row--4cols {
    grid-template-columns: 1fr;
  }
}

.cad-srv-read-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.cad-srv-read-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
  text-transform: none;
  white-space: nowrap;
}

.cad-srv-read-value {
  padding: 0.55rem 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  color: #1e293b;
  min-height: 2.375rem;
  display: flex;
  align-items: center;
  word-break: break-word;
}

/* Ações do Rodapé do Formulário */
.cad-srv-footer-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1.25rem;
  border-top: 1px solid #e2e8f0;
  margin-top: 1.25rem;
}

.cad-srv-footer-actions .cad-btn-secondary {
  background: #ffffff;
  color: #475569;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.55rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.cad-srv-footer-actions .cad-btn-secondary:hover {
  background: #f1f5f9;
  color: #1e293b;
}

.cad-srv-footer-actions .cad-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: #0b63e5;
  color: #ffffff;
  border: 1px solid #0b63e5;
  border-radius: 6px;
  padding: 0.55rem 1.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.cad-srv-footer-actions .cad-btn-primary:hover {
  background: #0951bd;
  border-color: #0951bd;
}

.cad-srv-footer-actions .cad-btn-primary svg {
  width: 16px;
  height: 16px;
}

/* Botões de Status (Inativar / Reativar) no Rodapé de Servidores */
.cad-btn-status {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border-radius: 6px;
  padding: 0.55rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  border: 1px solid transparent;
}

.cad-btn-status svg {
  width: 16px;
  height: 16px;
}

.cad-btn-status--inativar {
  background: #dc2626;
  color: #ffffff;
  border-color: #dc2626;
}

.cad-btn-status--inativar:hover {
  background: #b91c1c;
  border-color: #b91c1c;
}

.cad-btn-status--reativar {
  background: #16a34a;
  color: #ffffff;
  border-color: #16a34a;
}

.cad-btn-status--reativar:hover {
  background: #15803d;
  border-color: #15803d;
}

.cad-srv-footer-right-buttons {
  display: flex;
  gap: 0.6rem;
  align-items: center;
}

/* =========================================================
 * BANNER DE PERFIL OPERACIONAL DO SERVIDOR
 * ========================================================= */
.cad-srv-banner-perfil {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}

.cad-srv-banner-title-box {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.55rem 0.95rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
  letter-spacing: 0.02em;
}

.cad-srv-banner-label {
  color: #64748b;
  font-weight: 700;
  font-size: 0.8rem;
}

.cad-srv-banner-nome {
  color: #0f172a;
  font-weight: 800;
  font-size: 0.84rem;
}

.cad-srv-banner-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.85rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.cad-srv-chip-divider {
  opacity: 0.5;
}

/* ALFA = amarelo */
.cad-srv-chip--alfa {
  background: #fef9c3;
  color: #854d0e;
  border: 1px solid #fde047;
}

/* BRAVO = vermelho */
.cad-srv-chip--bravo {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}

/* CHARLIE = azul */
.cad-srv-chip--charlie {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #93c5fd;
}

/* DELTA = verde */
.cad-srv-chip--delta {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}

.cad-srv-chip--default {
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #cbd5e1;
}

/* =========================================================
 * MEUS DADOS - ESTILOS E SCROLL VERTICAL NO SELECT DE CLASSE/PADRÃO
 * ========================================================= */
.meusdados {
  max-width: 1440px;
  margin: 0 auto;
  padding: 1.5rem 1rem;
}

.meusdados-card--complementares {
  padding-bottom: 3.5rem;
  position: relative;
}

.meusdados-form-campo--classe-padrao {
  position: relative;
}

.meusdados-form-campo--classe-padrao select,
#meusdados-classe-padrao {
  max-height: 240px;
  overflow-y: auto;
  scroll-behavior: smooth;
  cursor: pointer;
}

.meusdados-form-campo--classe-padrao select option {
  padding: 0.5rem 0.75rem;
  font-size: 0.9rem;
}

.usuarios-filtro-unidade select {
  min-width: 140px;
}

.usuarios-filtro-perfil select {
  min-width: 180px;
}

/* =========================================================
 * PAPÉIS E PRIVILÉGIOS — INTERFACE DEFINITIVA (MOCKUP OFICIAL)
 * ========================================================= */
.papeis-rota-container {
  max-width: 1540px;
  margin: 0 auto;
  padding: 1.25rem 1rem;
}

.papeis-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 1.5rem;
  align-items: start;
}

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

.papeis-workspace {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}

/* Cabeçalho do Workspace */
.papeis-cabecalho-topo {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.25rem;
}

.papeis-cabecalho-icone-box {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #1e3a8a;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 4px rgba(30, 58, 138, 0.2);
}

.papeis-cabecalho-svg {
  width: 28px;
  height: 28px;
}

.papeis-cabecalho-textos h1 {
  margin: 0;
  font-size: 1.65rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
}

.papeis-cabecalho-textos p {
  margin: 0.2rem 0 0 0;
  font-size: 0.92rem;
  color: #64748b;
}

/* Tabs de Navegação */
.papeis-tabs-navegacao {
  display: flex;
  gap: 1.75rem;
  border-bottom: 2px solid #e2e8f0;
  margin-bottom: 0.25rem;
}

.papeis-tab-btn {
  background: none;
  border: none;
  padding: 0.65rem 0.25rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #64748b;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  position: relative;
  transition: all 0.15s ease;
}

.papeis-tab-btn:hover {
  color: #1e293b;
}

.papeis-tab-btn.is-active {
  color: #2563eb;
  border-bottom: 2px solid #2563eb;
  margin-bottom: -2px;
}

.papeis-tab-svg {
  width: 18px;
  height: 18px;
}

/* Card: Módulo Selecionado */
.papeis-card-modulo-selecionado {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.15rem 1.35rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  flex-wrap: wrap;
}

.papeis-modulo-icone-card {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  flex-shrink: 0;
}

.papeis-modulo-svg-branco {
  width: 28px;
  height: 28px;
}

.papeis-modulo-info-textos {
  flex: 1;
  min-width: 200px;
}

.papeis-modulo-linha-titulo h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
}

.papeis-modulo-subtitulo {
  margin: 0.15rem 0 0.45rem 0;
  font-size: 0.86rem;
  color: #64748b;
}

.papeis-modulo-tags-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #64748b;
}

.papeis-chip-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.6rem;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.papeis-chip-badge--local {
  background: #dbeafe;
  color: #1e40af;
}

.papeis-chip-badge--global {
  background: #e0e7ff;
  color: #3730a3;
}

.papeis-chip-badge--unidade {
  background: #dcfce7;
  color: #166534;
}

.papeis-modulo-box-informativo {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.6rem 0.95rem;
  font-size: 0.8rem;
  color: #475569;
  max-width: 280px;
  line-height: 1.35;
}

.papeis-btn-link-info {
  background: none;
  border: none;
  color: #2563eb;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem;
}

.papeis-btn-info-svg {
  width: 16px;
  height: 16px;
}

/* Blocos de Seção */
.papeis-secao-bloco {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.35rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.papeis-secao-cabeca {
  margin-bottom: 1rem;
}

.papeis-secao-cabeca--com-acao {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}

.papeis-secao-icone-titulo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.25rem;
}

.papeis-secao-svg-azul {
  width: 20px;
  height: 20px;
  color: #2563eb;
}

.papeis-secao-cabeca h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}

.papeis-secao-desc {
  margin: 0.15rem 0 0 0;
  font-size: 0.84rem;
  color: #64748b;
}

/* Multisseleção de Perfis Operacionais */
.papeis-multiselect-container {
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.papeis-chips-input-wrapper {
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0.5rem 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #ffffff;
  min-height: 42px;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  user-select: none;
}

.papeis-chips-input-wrapper:hover,
.papeis-chips-input-wrapper.is-open {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
}

.papeis-chips-input-wrapper.is-open .papeis-arrow-svg {
  transform: rotate(180deg);
}

.papeis-perfis-popover-menu {
  position: absolute;
  top: 48px;
  left: 0;
  width: 100%;
  max-width: 480px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  z-index: 100;
  padding: 0.45rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  max-height: 240px;
  overflow-y: auto;
  animation: papeisFadeIn 0.12s ease-out;
}

.papeis-perfis-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 0.65rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.84rem;
  color: #1e293b;
  transition: background 0.12s ease;
  user-select: none;
}

.papeis-perfis-item:hover {
  background: #f1f5f9;
}

.papeis-perfis-checkbox {
  width: 16px;
  height: 16px;
  accent-color: #2563eb;
  cursor: pointer;
}

.papeis-perfis-chips-abaixo {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.2rem;
}

.papeis-chip-selecionado {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1d4ed8;
  padding: 0.25rem 0.6rem;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
}

.papeis-chip-remover {
  background: none;
  border: none;
  color: #3b82f6;
  font-size: 1.1rem;
  cursor: pointer;
  padding: 0;
  line-height: 1;
}

.papeis-chip-remover:hover {
  color: #1d4ed8;
}

.papeis-multiselect-arrow {
  color: #64748b;
  display: flex;
  align-items: center;
}

.papeis-arrow-svg {
  width: 18px;
  height: 18px;
  transition: transform 0.15s ease;
}

/* Dropdown de Servidor na Tabela de Gestores */
.papeis-select-servidor {
  width: 100%;
  padding: 0.45rem 0.6rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #0f172a;
  background-color: #ffffff;
  cursor: pointer;
  transition: border-color 0.15s ease;
}

.papeis-select-servidor:focus {
  border-color: #2563eb;
  outline: none;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.papeis-select-papel,
.papeis-select-tipo {
  padding: 0.35rem 0.55rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #334155;
  background-color: #ffffff;
  cursor: pointer;
}

.papeis-td-escopo-conteudo {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.papeis-badge-escopo {
  display: inline-block;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  color: #334155;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 600;
}

/* Botões de Ação de Bloco */
.papeis-btn-copiar-privilegios {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  color: #2563eb;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: all 0.15s ease;
}

.papeis-btn-copiar-privilegios:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.papeis-arrow-mini-svg {
  width: 14px;
  height: 14px;
}

.papeis-btn-adicionar-gestor {
  background: #2563eb;
  border: 1px solid #1d4ed8;
  border-radius: 8px;
  color: #ffffff;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 0.55rem 1rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
  transition: all 0.15s ease;
}

.papeis-btn-adicionar-gestor:hover {
  background: #1d4ed8;
}

.papeis-btn-ico-plus {
  width: 16px;
  height: 16px;
}

/* Tabelas do Módulo */
.papeis-tabela-container {
  width: 100%;
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  margin-top: 0.75rem;
}

.papeis-tabela {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
  background: #ffffff;
}

.papeis-tabela thead th {
  background: #f8fafc;
  color: #475569;
  font-weight: 700;
  font-size: 0.8rem;
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
}

.papeis-tabela tbody td {
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.papeis-tabela tbody tr:hover {
  background: #f8fafc;
}

.papeis-th-com-icone {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.84rem;
  font-weight: 800;
  color: #1e293b;
}

.papeis-th-svg {
  width: 16px;
  height: 16px;
}

.papeis-th-sub {
  display: block;
  font-size: 0.74rem;
  font-weight: normal;
  color: #64748b;
  margin-top: 0.15rem;
}

.papeis-td-index {
  color: #64748b;
  font-weight: 600;
  text-align: center;
}

.papeis-td-rota strong {
  color: #0f172a;
}

.papeis-td-desc {
  color: #64748b;
  font-size: 0.83rem;
}

/* Células de Visualizar / Intervir com Dropdown Interativo */
.papeis-td-privilegio {
  position: relative;
  width: 190px;
  min-width: 190px;
  max-width: 190px;
  box-sizing: border-box;
}

.papeis-dropdown-chips {
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.25rem 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #ffffff;
  min-height: 38px;
  box-sizing: border-box;
  width: 100%;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  user-select: none;
}

.papeis-dropdown-chips:hover,
.papeis-dropdown-chips.is-open {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
}

.papeis-chips-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
  min-height: 24px;
}

.papeis-mini-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-size: 0.76rem;
  font-weight: 700;
}

.papeis-mini-chip--todos {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.papeis-mini-chip--admin {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.papeis-mini-chip--gestor {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.papeis-mini-chip--usuario {
  background: #f3e8ff;
  color: #6b21a8;
  border: 1px solid #e9d5ff;
}

.papeis-mini-chip--exceto {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

.papeis-chip-del {
  background: none;
  border: none;
  font-size: 0.95rem;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  opacity: 0.6;
}

.papeis-chip-del:hover {
  opacity: 1;
}

.papeis-chips-chevron {
  color: #94a3b8;
  display: flex;
  align-items: center;
  margin-left: 0.35rem;
}

.papeis-arrow-micro {
  width: 14px;
  height: 14px;
  transition: transform 0.15s ease;
}

.papeis-dropdown-chips.is-open .papeis-arrow-micro {
  transform: rotate(180deg);
}

/* Popover Flutuante de Multisseleção de Papéis */
.papeis-popover-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 180px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  z-index: 100;
  padding: 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  animation: papeisFadeIn 0.12s ease-out;
}

@keyframes papeisFadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.papeis-popover-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.6rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.82rem;
  color: #1e293b;
  transition: background 0.12s ease;
  user-select: none;
}

.papeis-popover-item:hover {
  background: #f1f5f9;
}

.papeis-popover-checkbox {
  width: 16px;
  height: 16px;
  accent-color: #2563eb;
  cursor: pointer;
}

.papeis-perfis-vazio {
  padding: 0.85rem 1rem;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  color: #64748b;
  font-size: 0.85rem;
  font-style: italic;
}

/* Botão Salvar Alterações */
.papeis-acoes-salvar-linha {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
}

.papeis-btn-salvar {
  background: #2563eb;
  border: 1px solid #1d4ed8;
  border-radius: 8px;
  color: #ffffff;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.6rem 1.25rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
  transition: all 0.15s ease;
}

.papeis-btn-salvar:hover {
  background: #1d4ed8;
}

.papeis-btn-ico {
  width: 18px;
  height: 18px;
}

/* Tabela de Gestores */
.papeis-servidor-wrapper {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.papeis-avatar-mini {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #3b82f6;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.papeis-servidor-dados {
  display: flex;
  flex-direction: column;
}

.papeis-servidor-nome {
  font-weight: 700;
  color: #0f172a;
}

.papeis-servidor-mat {
  font-size: 0.76rem;
  color: #64748b;
}

.papeis-chip-papel {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
}

.papeis-chip-papel--gestor {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.papeis-chip-papel--admin {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.papeis-chip-papel--usuario {
  background: #f3e8ff;
  color: #6b21a8;
  border: 1px solid #e9d5ff;
}

.papeis-chip-papel--todos {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.papeis-chip-papel--exceto {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

/* Coluna ESCOPO */
.papeis-th-escopo-macro {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.papeis-th-escopo-subcolunas {
  display: grid;
  grid-template-columns: 140px 90px 140px 100px;
  gap: 0.5rem;
  font-size: 0.74rem;
  font-weight: 700;
  color: #475569;
}

.papeis-escopo-grid {
  display: grid;
  grid-template-columns: 140px 90px 140px 100px;
  gap: 0.5rem;
  align-items: center;
}

.papeis-escopo-chip-perfil {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  border-radius: 4px;
  padding: 0.2rem 0.45rem;
  font-size: 0.76rem;
  font-weight: 700;
  text-align: center;
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.papeis-escopo-badge-modulo {
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  padding: 0.2rem 0.45rem;
  font-size: 0.76rem;
  font-weight: 700;
  text-align: center;
  display: inline-block;
}

.papeis-escopo-texto-setor {
  color: #334155;
  font-size: 0.8rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.papeis-escopo-texto-posto {
  color: #64748b;
  font-size: 0.8rem;
}

/* Tipo */
.papeis-chip-tipo {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
}

.papeis-chip-tipo--titular {
  background: #dbeafe;
  color: #1e40af;
}

.papeis-chip-tipo--substituto {
  background: #fef9c3;
  color: #854d0e;
}

.papeis-chip-tipo--delegado {
  background: #f3e8ff;
  color: #6b21a8;
}

/* Co-titular */
.papeis-th-cotitular {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.papeis-info-micro {
  width: 14px;
  height: 14px;
  color: #3b82f6;
}

.papeis-checkbox-label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.papeis-checkbox {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #2563eb;
}

.papeis-traco {
  color: #94a3b8;
  font-weight: 700;
}

/* Ações */
.papeis-btn-acao {
  background: none;
  border: none;
  padding: 0.35rem;
  cursor: pointer;
  color: #64748b;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}

.papeis-btn-acao:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.papeis-acao-svg {
  width: 16px;
  height: 16px;
}

.papeis-acao-svg--red {
  color: #ef4444;
}

.papeis-btn-acao--delete:hover .papeis-acao-svg--red {
  color: #dc2626;
}

/* Formulário Card de Gestor */
.papeis-form-card {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1rem;
}

.papeis-form-card h4 {
  margin: 0 0 0.85rem 0;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
}

.papeis-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.papeis-form-campo label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: #475569;
  margin-bottom: 0.35rem;
}

.papeis-form-campo select,
.papeis-form-campo input {
  width: 100%;
  padding: 0.45rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 0.85rem;
  background: #ffffff;
}

.papeis-form-acoes {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.papeis-btn-ghost {
  background: none;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.45rem 0.85rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #475569;
  cursor: pointer;
}

/* 2. SIDEBAR DIREITA: SELEÇÃO DE MÓDULOS */
.papeis-sidebar-modulos {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.15rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.papeis-sidebar-cabeca {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #f1f5f9;
}

.papeis-sidebar-svg-header {
  width: 20px;
  height: 20px;
  color: #1e3a8a;
}

.papeis-sidebar-cabeca h2 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}

.papeis-sidebar-lista-modulos {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.papeis-modulo-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
  border-left: 3px solid transparent;
}

.papeis-modulo-item:hover {
  background: #f8fafc;
}

.papeis-modulo-item.is-selected {
  background: #eff6ff;
  border-left: 3px solid #2563eb;
}

.papeis-modulo-item-icone {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  flex-shrink: 0;
}

.papeis-modulo-mini-svg {
  width: 18px;
  height: 18px;
}

.papeis-modulo-item-textos {
  display: flex;
  flex-direction: column;
}

.papeis-modulo-item-nome {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1e293b;
}

.papeis-modulo-item.is-selected .papeis-modulo-item-nome {
  color: #1d4ed8;
  font-weight: 800;
}

.papeis-modulo-item-desc {
  font-size: 0.76rem;
  color: #64748b;
}

/* Cards Inferiores da Sidebar */
.papeis-sidebar-card-info {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.85rem;
}

.papeis-sidebar-card-header {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
}

.papeis-sidebar-card-svg {
  width: 16px;
  height: 16px;
  color: #1e3a8a;
}

.papeis-sidebar-card-header h4 {
  margin: 0;
  font-size: 0.86rem;
  font-weight: 800;
  color: #0f172a;
}

.papeis-lista-papeis-guia {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.papeis-lista-papeis-guia li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.papeis-lista-papeis-guia small {
  font-size: 0.74rem;
  color: #475569;
}

.papeis-sidebar-modulo-resumo {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.45rem;
}

.papeis-sidebar-modulo-icone-badge {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  flex-shrink: 0;
}

.papeis-sidebar-modulo-detalhes strong {
  font-size: 0.88rem;
  color: #0f172a;
  display: block;
}

.papeis-sidebar-modulo-tags {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.15rem;
}

.papeis-tag-mini {
  font-size: 0.72rem;
  color: #64748b;
}

.papeis-sidebar-modulo-descricao-longa {
  margin: 0.35rem 0 0 0;
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.35;
}

/* Administradores */
.papeis-admin-nome-travado {
  font-weight: 700;
  color: #0f172a;
}

.papeis-badge-abrangencia {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
}

.papeis-badge-abrangencia--global {
  background: #e0e7ff;
  color: #3730a3;
  border: 1px solid #c7d2fe;
}

.papeis-badge-abrangencia--unidade {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.papeis-tr-novo-admin {
  background: #f8fafc;
}

/* ==========================================================================
   CONFIGURAÇÃO DE PRIORIDADES — CHIPS E TABELA AUTOMÁTICA
   ========================================================================== */
.ferias-prioridades-container {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.ferias-prioridades-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: #f8fafc;
  border: 1px solid var(--app-border, #e2e8f0);
  border-radius: var(--app-radius-md, 8px);
}

.ferias-prioridades-header-ico-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  flex-shrink: 0;
}

.ferias-prioridades-titulo {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
}

.ferias-prioridades-subtitulo {
  margin: 0.25rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: #334155;
}

.ferias-prioridades-desc {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  color: #64748b;
}

.ferias-prioridades-tabela-wrap {
  overflow-x: auto;
  border: 1px solid var(--app-border, #e2e8f0);
  border-radius: var(--app-radius-md, 8px);
  background: #ffffff;
}

.ferias-prioridades-tabela {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.88rem;
}

.ferias-prioridades-tabela th {
  background: #f8fafc;
  padding: 0.75rem 1rem;
  font-weight: 700;
  color: #475569;
  border-bottom: 1px solid var(--app-border, #e2e8f0);
}

.ferias-prioridades-tabela td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--app-border, #f1f5f9);
  vertical-align: middle;
}

.ferias-prio-td-posicao {
  width: 60px;
  text-align: center;
}

.ferias-prio-posicao-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: #f1f5f9;
  font-weight: 800;
  color: #1e293b;
  font-size: 0.88rem;
}

.ferias-prio-servidor-info {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.ferias-prio-servidor-nome {
  font-size: 0.9rem;
  font-weight: 600;
  color: #0f172a;
}

.ferias-prio-servidor-mat {
  font-size: 0.75rem;
  color: #64748b;
}

.ferias-prio-chips-lista {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}

.ferias-prio-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.65rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
}

.ferias-prio-chip--chefia {
  background: #dbeafe;
  color: #1e40af;
  border-color: #bfdbfe;
  font-weight: 700;
}

.ferias-prio-chip--posto {
  background: #fef3c7;
  color: #92400e;
  border-color: #fde68a;
  font-weight: 700;
}

.ferias-prio-chip--posse {
  background: #ecfdf5;
  color: #065f46;
  border-color: #a7f3d0;
}

.ferias-prio-chip--classe {
  background: #f3e8ff;
  color: #6b21a8;
  border-color: #e9d5ff;
}

.ferias-prio-chip--neutro {
  background: #f1f5f9;
  color: #64748b;
  border-color: #e2e8f0;
  font-style: italic;
}

.ferias-prioridades-rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 0.75rem 0;
}

.ferias-prioridades-contador {
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
}

.ferias-prioridades-rodape-direita {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}



