@media (max-width: 900px) {
  html, body { overflow-x: hidden; max-width: 100%; }
  .main, .content, .card, section, article { min-width: 0; }
  img, video, iframe { max-width: 100%; height: auto; }
  h1, h2, h3, p, td, th, strong, span, a { overflow-wrap: anywhere; }
  input, select, textarea { font-size: 16px !important; }
  button, .ghost, .primary, .yellow { min-height: 40px; }
  .table, .content table, #content table { display: block; width: 100%; overflow-x: auto; white-space: nowrap; border-radius: 14px; }
  .table th, .table td, .content table th, .content table td { padding: 11px 12px; font-size: 13px; }
  .sidebar { flex-direction: row; align-items: center; gap: 6px; padding: 6px 8px; }
  #menu { flex: 1; overflow-x: auto; }
  .menu-btn { min-width: 84px; }
  #btnSair { width: auto !important; margin: 0 !important; flex-shrink: 0; padding: 10px !important; font-size: 11px !important; border-top: 0 !important; border-left: 1px solid rgba(255,255,255,.14) !important; opacity: .85 !important; text-align: center !important; }
}
@media (max-width: 720px) {
  .page-head { flex-direction: column; align-items: stretch; gap: 12px; margin-bottom: 16px; }
  .page-head h1 { font-size: 22px; }
  .page-head p { font-size: 13px; }
  .page-head > div { width: 100%; }
  .page-head > div:last-child { display: flex; flex-wrap: wrap; gap: 8px; }
  .page-head > div:last-child > .primary, .page-head > div:last-child > .ghost, .page-head > div:last-child > .yellow { flex: 1; min-width: 130px; }
  .page-head input { width: 100%; min-width: 0; margin-right: 0 !important; }
  .dashboard-shell { gap: 14px; max-width: 100%; overflow-x: hidden; }
  .dashboard-shell * { min-width: 0; }
  .dash-header { flex-direction: column; align-items: stretch; gap: 14px; padding: 16px; border-radius: 18px; }
  .dash-header__brand img { width: 42px; height: 42px; }
  .dash-header__brand h1 { font-size: 19px; margin: 4px 0 2px; }
  .dash-header__brand p { font-size: 12px; line-height: 1.4; }
  .dash-header__meta { flex-direction: column; align-items: stretch; gap: 10px; width: 100%; }
  .dash-pill-box { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .dash-filter { justify-content: space-between; padding: 9px 12px; border-radius: 12px; font-size: 12px; }
  .dash-filter select { flex: 1; text-align: right; }
  .dash-grid { gap: 12px; }
  .dash-grid--metrics { grid-template-columns: 1fr 1fr !important; }
  .dash-metric { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; min-height: 0; border-radius: 16px; }
  .dash-metric__icon { width: 38px; height: 38px; font-size: 18px; border-radius: 12px; }
  .dash-metric__title { font-size: 10px; letter-spacing: .04em; }
  .dash-metric__value { font-size: 21px; }
  .dash-card { padding: 16px; border-radius: 18px; }
  .dash-card__header { flex-direction: column; gap: 4px; margin-bottom: 12px; }
  .dash-card__header h3 { font-size: 16px; }
  .dash-progress-panel__top strong { font-size: 26px; }
  .dash-mini-bars__row { grid-template-columns: 1fr auto !important; grid-template-areas: "rotulo valor" "barra barra"; gap: 6px 10px; padding: 11px 12px; }
  .dash-mini-bars__row > *:nth-child(1) { grid-area: rotulo; }
  .dash-mini-bars__row > *:nth-child(2) { grid-area: barra; }
  .dash-mini-bars__row > *:nth-child(3) { grid-area: valor; text-align: right; }
  .dash-row, .dash-list__item, .dash-ranking__item, .dash-activity { padding: 11px 12px; gap: 8px; align-items: flex-start; }
  .dash-pill { font-size: 11px; padding: 6px 10px; white-space: nowrap; flex-shrink: 0; }
  .dash-mini-kpis { grid-template-columns: 1fr 1fr !important; gap: 8px; }
  .dash-donut { width: 90px; height: 90px; }
  .dash-actions { grid-template-columns: 1fr !important; gap: 8px; }
}
@media (max-width: 720px) {
  .folders-grid { grid-template-columns: 1fr !important; gap: 12px; margin-top: 12px; }
  .folder-card { padding: 14px; }
  .folder-items { grid-template-columns: 1fr !important; }
  .library-row { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px; }
  .library-row__main h2 { white-space: normal; font-size: 14px; line-height: 1.35; }
  .library-row__main .muted { white-space: normal; font-size: 11.5px; }
  .library-row__actions { flex-wrap: wrap; }
  .library-row__actions .ghost { flex: 1; min-width: 74px; text-align: center; padding: 9px 8px; font-size: 12px; }
  .calendar-summary { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px; }
  .calendar-nav { width: 100%; justify-content: space-between; }
  .calendar-toolbar { width: 100%; flex-direction: column; align-items: stretch; gap: 8px; }
  .calendar-toolbar .dash-filter { width: 100%; }
  .calendar-toggle { width: 100%; }
  .calendar-toggle .ghost { flex: 1; text-align: center; }
  .assessment-grid, .assessment-summary { grid-template-columns: 1fr !important; }
  .assessment-card__actions { flex-direction: column; }
  .assessment-card__actions .primary, .assessment-card__actions .ghost { width: 100%; min-width: 0; text-align: center; }
  .modal { width: 94vw; max-height: 88vh; overflow-y: auto; padding: 18px; border-radius: 18px; }
  .modal-head h2 { font-size: 17px; }
  .modal-form__row { grid-template-columns: 1fr; }
  .modal-form__actions { flex-direction: column; }
  .modal-form__actions .primary, .modal-form__actions .ghost { width: 100%; }
  .chat-box { height: 48vh; padding: 14px; }
  .form-row { grid-template-columns: 1fr; gap: 8px; }
  .form-row .primary { width: 100%; }
  .ai-float { right: 14px; bottom: 92px; width: 54px; height: 54px; font-size: 24px; }
}
@media (max-width: 380px) {
  .dash-grid--metrics { grid-template-columns: 1fr !important; }
  .dash-mini-kpis { grid-template-columns: 1fr !important; }
  .dash-pill-box { grid-template-columns: 1fr; }
  .page-head h1 { font-size: 20px; }
}

.event.ev-continuo, .week-event.ev-continuo,
.event.ev-inicial, .week-event.ev-inicial {
  background: rgba(255, 183, 3, .2);
  border-left-color: #ff9f1c;
}
.event--last.ev-inicial, .week-event--last.ev-inicial {
  background: rgba(239, 18, 29, .24) !important;
  border-left-color: #ef121d !important;
}
.event--last.ev-continuo, .week-event--last.ev-continuo {
  background: rgba(56, 189, 248, .28) !important;
  border-left-color: #0ea5e9 !important;
}
.ev-continuo .ev-btn-avaliar { background: #0ea5e9; }
.ev-continuo .ev-btn-avaliar:hover { background: #38bdf8; }

#papRodapePDF { display: none; }
@media print {
  #papRodapePDF {
    display: block !important; visibility: visible !important;
    position: absolute !important; left: 0 !important; top: 194mm !important;
    width: 100% !important; font-size: 8pt !important; color: #111 !important;
    border-top: 1px solid #888 !important; padding-top: 2mm !important;
  }
  #papRodapePDF * { visibility: visible !important; color: #111 !important; }
  .pap-rodape-linha { display: flex !important; justify-content: space-between !important; gap: 6mm !important; margin-bottom: 1.5mm !important; }
  .pap-rodape-legenda { margin-bottom: 3mm !important; }
  .pap-rodape-assin { display: flex !important; justify-content: space-around !important; gap: 20mm !important; margin-top: 6mm !important; text-align: center !important; }
  .pap-rodape-assin > div { flex: 1 !important; border-top: 1px solid #333 !important; padding-top: 1mm !important; font-size: 7.5pt !important; }
  .calendar-grid .event { border-left-width: 3px !important; }
  .calendar-grid .event.ev-inicial, .calendar-grid .event.ev-continuo {
    background: rgba(255,183,3,.25) !important; border-left-color: #ff9f1c !important;
  }
  .calendar-grid .event--last.ev-inicial {
    background: rgba(239,18,29,.25) !important; border-left-color: #ef121d !important;
  }
  .calendar-grid .event--last.ev-continuo {
    background: rgba(14,165,233,.25) !important; border-left-color: #0ea5e9 !important;
  }
}

.day-evs .event:nth-child(n+4) { display: none; }

@media print {
  .day-evs .event { display: block !important; }
  .event.more { display: none !important; }
  .calendar-grid .day { overflow: visible !important; }
  .calendar-grid .day-evs { display: block !important; }
  .calendar-grid.pap-d2 .event, .calendar-grid.pap-d2 .event * { font-size: 7.5pt !important; }
  .calendar-grid.pap-d3 .event, .calendar-grid.pap-d3 .event * { font-size: 6.6pt !important; }
  .calendar-grid.pap-d4 .event, .calendar-grid.pap-d4 .event * { font-size: 5.9pt !important; }
  .calendar-grid.pap-d6 .event, .calendar-grid.pap-d6 .event * { font-size: 5.1pt !important; }
  .calendar-grid.pap-d8 .event, .calendar-grid.pap-d8 .event * { font-size: 4.4pt !important; }
  .calendar-grid.pap-d3 .event { padding: .7mm !important; margin-top: .7mm !important; }
  .calendar-grid.pap-d4 .event { padding: .55mm !important; margin-top: .55mm !important; }
  .calendar-grid.pap-d6 .event { padding: .45mm !important; margin-top: .4mm !important; }
  .calendar-grid.pap-d8 .event { padding: .35mm !important; margin-top: .3mm !important; }
  .calendar-grid.pap-d6 .event, .calendar-grid.pap-d8 .event { line-height: 1.05 !important; }
  .calendar-grid.pap-d8 .day > strong { font-size: 6pt !important; }
}

@media print {
  .pap-oculto { display: none !important; }
  .pap-mostrar {
    display: block !important; position: static !important;
    width: auto !important; max-width: none !important; height: auto !important;
    margin: 0 !important; padding: 0 !important;
    border: 0 !important; box-shadow: none !important;
    background: #fff !important; overflow: visible !important;
    float: none !important; transform: none !important;
  }
  html, body { background: #fff !important; color: #111 !important; height: auto !important; }
  .calendar-shell, .calendar-shell * { color: #111 !important; box-shadow: none !important; visibility: visible !important; }
  .calendar-shell button, .calendar-toolbar, .calendar-toggle, .calendar-nav,
  .no-print, .ev-actions, .ev-month-actions, .ev-btn-avaliar, .ai-float { display: none !important; }
  .calendar-summary { display: block !important; background: none !important; border: 0 !important; padding: 0 0 3mm 0 !important; margin: 0 !important; }
  .calendar-summary h3 { display: block !important; text-align: center !important; font-size: 15pt !important; font-weight: 700 !important; margin: 0 !important; }
  .calendar-summary > div:not(:first-child) { display: none !important; }
  .calendar-grid {
    display: grid !important; grid-template-columns: repeat(7, 1fr) !important;
    grid-auto-rows: minmax(24mm, auto) !important; gap: 1.5mm !important;
    width: 100% !important; height: auto !important; page-break-inside: auto !important;
  }
  .calendar-grid .day-name {
    display: block !important; grid-row: 1 !important; font-size: 10pt !important;
    font-weight: 700 !important; text-align: center !important; padding: 1mm 0 !important;
    border: 0 !important; border-bottom: 1px solid #888 !important; min-height: 0 !important; background: #fff !important;
  }
  .calendar-grid .day {
    border: 1px solid #c2c2c2 !important; border-radius: 1.5mm !important; padding: 1.2mm !important;
    min-height: 0 !important; overflow: visible !important; background: #fff !important; page-break-inside: avoid !important;
  }
  .calendar-grid .day.empty { border-color: #e6e6e6 !important; }
  .calendar-grid .day > strong { font-size: 8pt !important; }
  .week-plan { display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 2mm !important; width: 100% !important; }
  .week-day-card { border: 1px solid #c2c2c2 !important; border-radius: 2mm !important; padding: 1.5mm !important; background: #fff !important; page-break-inside: avoid !important; min-height: 0 !important; }
  .week-plan, .week-plan * { font-size: 7pt !important; line-height: 1.25 !important; }
  .week-event { padding: 1mm !important; margin-top: 1mm !important; }
  .plan-list { width: 100% !important; display: block !important; }
  .plan-list, .plan-list * { font-size: 9pt !important; }
  .plan-list__head, .plan-list__row { page-break-inside: avoid !important; border-color: #c2c2c2 !important; background: #fff !important; }
  .plan-list__head { border-bottom: 1px solid #888 !important; font-weight: 700 !important; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

@media print {
  .calendar-summary .tag, .page-head { display: none !important; }
  .plan-list .tag, .plan-list__row .tag {
    background: #f0f0f0 !important; color: #111 !important;
    border: 1px solid #999 !important; padding: .5mm 1.5mm !important;
    border-radius: 1mm !important; font-size: 7.5pt !important;
  }
  .week-plan { width: 100% !important; }
  .week-day-card { width: auto !important; min-width: 0 !important; }
  .pap-encaixe {
    transform-origin: top left !important;
    page-break-inside: avoid !important;
    page-break-after: avoid !important;
  }
}

@media print {
  .calendar-shell, .pap-encaixe { zoom: 1 !important; transform: none !important; }
  .calendar-shell {
    display: flex !important; flex-direction: column !important;
    width: 100% !important; max-width: none !important;
    height: 191mm !important; overflow: hidden !important;
    padding: 0 !important; margin: 0 !important;
  }
  .calendar-shell.pap-retrato { height: 278mm !important; }
  .calendar-summary {
    flex: 0 0 auto !important; padding: 0 0 2.5mm 0 !important; margin: 0 !important;
    border: 0 !important; background: none !important;
  }
  .calendar-summary h3 { font-size: 16pt !important; text-align: center !important; margin: 0 !important; }
  .calendar-grid {
    flex: 1 1 auto !important; min-height: 0 !important; height: auto !important;
    display: grid !important; grid-template-columns: repeat(7, 1fr) !important;
    grid-template-rows: 6.5mm !important; grid-auto-rows: 1fr !important;
    gap: 1.2mm !important; position: static !important; width: 100% !important;
  }
  .calendar-grid .day-name { font-size: 9pt !important; font-weight: 700 !important; padding: 0 0 1mm 0 !important; border-bottom: 1.2px solid #555 !important; }
  .calendar-grid .day {
    display: flex !important; flex-direction: column !important;
    min-height: 0 !important; overflow: hidden !important;
    border: .8px solid #b8b8b8 !important; border-radius: 1.2mm !important; padding: 1mm !important;
  }
  .calendar-grid .day > strong { flex: 0 0 auto !important; font-size: 8pt !important; color: #555 !important; margin-bottom: .6mm !important; }
  .calendar-grid .day-evs { flex: 1 1 auto !important; min-height: 0 !important; overflow: hidden !important; }
  .calendar-grid .event { margin: 0 0 .8mm 0 !important; padding: .8mm 1mm !important; border-radius: .8mm !important; border-left-width: 2.5px !important; }
  .week-plan {
    flex: 1 1 auto !important; min-height: 0 !important; display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important; gap: 1.5mm !important; align-content: stretch !important;
  }
  .week-day-card {
    display: flex !important; flex-direction: column !important; min-height: 0 !important;
    overflow: hidden !important; border: .8px solid #b8b8b8 !important; border-radius: 1.5mm !important; padding: 1.2mm !important;
  }
  .plan-list { flex: 1 1 auto !important; min-height: 0 !important; }
  #papRodapePDF {
    flex: 0 0 auto !important; position: static !important;
    margin: 2.5mm 0 0 0 !important; padding: 1.5mm 0 0 0 !important;
    border-top: 1px solid #666 !important; width: 100% !important;
  }
}

.ev-area {
  display: block; opacity: .82; font-size: .92em; line-height: 1.15;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.event > div > strong, .week-event strong { display: block; line-height: 1.15; }

@media print {
  .calendar-grid .ev-area {
    display: block !important; white-space: nowrap !important;
    overflow: hidden !important; text-overflow: ellipsis !important;
    font-size: .9em !important; opacity: 1 !important; color: #333 !important;
  }
  .calendar-grid .event > div > strong { font-size: 1em !important; }
}

@media (max-width: 820px) {
  .fch-linha {
    grid-template-columns: 42px 1fr 24px !important;
    grid-template-areas: "ava id seta" "num1 num2 num3" !important;
    row-gap: 12px !important; column-gap: 12px !important; padding: 14px !important;
  }
  .fch-ava { grid-area: ava; }
  .fch-id { grid-area: id; }
  .fch-seta { grid-area: seta; align-self: center; }
  .fch-linha .fch-num:nth-of-type(1) { grid-area: num1; }
  .fch-linha .fch-num:nth-of-type(2) { grid-area: num2; }
  .fch-linha .fch-num:nth-of-type(3) { grid-area: num3; }
  .fch-linha .fch-num {
    text-align: center !important; background: rgba(255,255,255,.045);
    border-radius: 9px; padding: 7px 4px;
  }
  .fch-num b { font-size: 16px !important; }
  .fch-num span { font-size: 10.5px !important; }
  .ind-linha {
    grid-template-columns: 30px 44px 1fr !important;
    grid-template-areas: "pos ava id" "n1 n2 n3" "evo evo evo" "chip chip chip" "avis avis avis" !important;
    row-gap: 11px !important; column-gap: 11px !important;
  }
  .ind-linha__pos { grid-area: pos; align-self: center; }
  .ind-linha__ava { grid-area: ava; }
  .ind-linha__id { grid-area: id; align-self: center; }
  .ind-linha .ind-linha__num:nth-of-type(1) { grid-area: n1; }
  .ind-linha .ind-linha__num:nth-of-type(2) { grid-area: n2; }
  .ind-linha .ind-linha__num:nth-of-type(3) { grid-area: n3; }
  .ind-linha__evo { grid-area: evo; }
  .ind-linha__chips { grid-area: chip; }
  .ind-linha__aviso { grid-area: avis; }
  .ind-linha .ind-linha__num {
    text-align: center !important; background: rgba(255,255,255,.045);
    border-radius: 9px; padding: 7px 4px;
  }
  .ind-linha__num b { font-size: 14px !important; }
  .rk-linha {
    grid-template-columns: 30px 40px 1fr 62px !important;
    grid-template-areas: "pos ava id nota" "bar bar bar bar" !important;
    row-gap: 10px !important; column-gap: 11px !important;
  }
  .rk-linha__pos { grid-area: pos; align-self: center; }
  .rk-linha__ava { grid-area: ava; }
  .rk-linha__id { grid-area: id; align-self: center; }
  .rk-linha__nota { grid-area: nota; align-self: center; }
  .rk-linha__barra { grid-area: bar; }
  .ev-btn-avaliar { padding: 9px 8px !important; font-size: 12px !important; }
  .ev-act-btn, .ev-month-btn {
    min-width: 34px !important; min-height: 34px !important;
    padding: 7px 9px !important; font-size: 13px !important;
  }
  .fch-del {
    min-width: 38px !important; min-height: 38px !important;
    padding: 6px 10px !important; font-size: 18px !important; opacity: .6;
  }
  .selo-inativo { font-size: 10.5px !important; }
  .ind-chip, .rk-destaque small { font-size: 11px !important; }
  .ficha-filtro { flex: 1 1 46% !important; min-width: 0 !important; }
  .ficha-filtro select { width: 100% !important; }
}
@media (max-width: 400px) {
  .fch-num b { font-size: 15px !important; }
  .ind-linha__id h3, .fch-id strong, .rk-linha__id strong { font-size: 13.5px !important; }
  .ficha-filtro { flex: 1 1 100% !important; }
}

/* =====================================================================
   Cartões do Desempenho reorganizados.
   Antes: ícone à esquerda e rótulo, número e detalhe empilhados à
   direita — o número colava no texto ("Colaboradores33 avaliações").
   Agora: número em destaque no topo, rótulo abaixo, detalhe separado
   por uma linha divisória.
   ===================================================================== */
.dash-metric {
  display: flex !important; flex-direction: column !important;
  align-items: stretch !important; gap: 0 !important;
  min-height: 0 !important; padding: 16px 18px 14px !important;
}
.dash-metric__topo {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-bottom: 10px;
}
.dash-metric__icon {
  width: 38px !important; height: 38px !important; border-radius: 12px !important;
  font-size: 18px !important; flex: 0 0 auto;
}
.dash-metric__value {
  font-size: 30px !important; font-weight: 800 !important;
  line-height: 1 !important; letter-spacing: -.5px;
}
.dash-metric__title {
  display: block; font-size: 11.5px !important; line-height: 1.3;
  text-transform: none !important; letter-spacing: 0 !important;
  color: var(--text) !important; font-weight: 600; opacity: .9;
}
.dash-metric__delta {
  display: block; margin-top: 8px; padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.07);
  font-size: 11px !important; line-height: 1.35; opacity: .62;
}
.dash-metric.positive .dash-metric__value { color: #7ddba3; }
.dash-metric.warning  .dash-metric__value { color: #e0a23a; }

@media (max-width: 720px) {
  .dash-metric { padding: 13px 14px 12px !important; }
  .dash-metric__topo { margin-bottom: 8px; }
  .dash-metric__icon { width: 32px !important; height: 32px !important; font-size: 15px !important; }
  .dash-metric__value { font-size: 25px !important; }
  .dash-metric__title { font-size: 11px !important; }
  .dash-metric__delta { font-size: 10.5px !important; margin-top: 7px; padding-top: 7px; }
}

/* Cartões do Desempenho: fontes maiores e cor na tendência */
.dash-metric__value { font-size: 34px !important; }
.dash-metric__title { font-size: 13.5px !important; font-weight: 600 !important; opacity: 1 !important; }
.dash-metric__delta { font-size: 12.5px !important; opacity: .75 !important; }
.dash-metric__icon { width: 42px !important; height: 42px !important; font-size: 20px !important; }
.dash-metric__delta.sobe  { color: #7ddba3 !important; opacity: 1 !important; }
.dash-metric__delta.desce { color: #e0a23a !important; opacity: 1 !important; }

@media (max-width: 720px) {
  .dash-metric__value { font-size: 28px !important; }
  .dash-metric__title { font-size: 12.5px !important; }
  .dash-metric__delta { font-size: 11.5px !important; }
  .dash-metric__icon { width: 36px !important; height: 36px !important; font-size: 17px !important; }
}

/* Queda em vermelho, alta em verde */
.dash-metric__delta.desce {
  color: #ef5350 !important; opacity: 1 !important; font-weight: 600;
}
.dash-metric__delta.sobe {
  color: #4ade80 !important; opacity: 1 !important; font-weight: 600;
}
.ind-tend.desce { background: rgba(239,83,80,.16) !important; color: #ef5350 !important; }

.dash-metric.critico { border-color: rgba(239,83,80,.35) !important; }
.dash-metric.critico .dash-metric__value { color: #ef5350 !important; }
.dash-metric.warning { border-color: rgba(224,162,58,.32) !important; }
.dash-metric.warning .dash-metric__value { color: #e0a23a !important; }
.dash-metric.positive { border-color: rgba(58,167,109,.32) !important; }
.dash-metric.positive .dash-metric__value { color: #4ade80 !important; }
.dash-metric.neutro .dash-metric__value { color: var(--text) !important; }


/* PLANO DE CHAO NO CELULAR
   A tabela de ausencias tem tres colunas e os campos nasciam com largura
   propria: em 360px o nome empurrava o motivo para fora. Largura fixa,
   box-sizing e min-width:0 mantem tudo dentro da tela. */
@media (max-width: 700px) {
  .pc-table--faltantes { table-layout: fixed; width: 100%; }
  .pc-table--faltantes th, .pc-table--faltantes td { padding: 6px 4px; }
  .pc-table--faltantes th:nth-child(3),
  .pc-table--faltantes td:nth-child(3) { width: 34px; }
  .pc-table--faltantes input,
  .pc-table--faltantes select {
    width: 100%; min-width: 0; box-sizing: border-box; font-size: 13px;
  }
  .pc-grid-3 { grid-template-columns: 1fr; }
  .pc-subcard__head { flex-wrap: wrap; gap: 8px; }
  .pc-subcard__head button { width: auto; }
}

/* AUSENCIAS NO CELULAR EM CARTOES
   Tres colunas nao cabem em 360px, e largura fixa nao resolve quando a
   regra base da .pc-table impoe largura minima. Abaixo de 820px cada
   ausencia deixa de ser linha de tabela e vira um cartao empilhado:
   rotulo em cima, campo ocupando a largura toda, remover no canto. */
@media (max-width: 820px) {

  .card .pc-subcard .pc-subcard__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
  }
  .card .pc-subcard .pc-subcard__head > div { flex: 1 1 100%; min-width: 0; }
  .card .pc-subcard .pc-subcard__head > button { flex: 0 0 auto; width: 100%; }

  table.pc-table.pc-table--faltantes {
    display: block;
    width: 100%;
    min-width: 0;
    border: 0;
    border-collapse: separate;
  }
  table.pc-table.pc-table--faltantes thead { display: none; }
  table.pc-table.pc-table--faltantes tbody,
  table.pc-table.pc-table--faltantes tr,
  table.pc-table.pc-table--faltantes td {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  table.pc-table.pc-table--faltantes tr {
    position: relative;
    margin: 0 0 10px;
    padding: 10px 46px 10px 10px;
    border: 1px solid var(--line, #36363d);
    border-radius: 12px;
    background: rgba(255, 255, 255, .03);
  }
  table.pc-table.pc-table--faltantes td {
    padding: 4px 0;
    border: 0;
  }
  table.pc-table.pc-table--faltantes td:nth-child(1)::before {
    content: 'Nome';
  }
  table.pc-table.pc-table--faltantes td:nth-child(2)::before {
    content: 'Motivo';
  }
  table.pc-table.pc-table--faltantes td:nth-child(1)::before,
  table.pc-table.pc-table--faltantes td:nth-child(2)::before {
    display: block;
    margin-bottom: 3px;
    font-size: 11px;
    letter-spacing: .02em;
    opacity: .7;
  }
  table.pc-table.pc-table--faltantes td:nth-child(3) {
    position: absolute;
    top: 8px;
    right: 8px;
    width: auto;
    padding: 0;
  }
  table.pc-table.pc-table--faltantes input,
  table.pc-table.pc-table--faltantes select {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-size: 14px;
    padding: 9px 10px;
  }
  table.pc-table.pc-table--faltantes .pc-remover {
    width: 30px;
    height: 30px;
    padding: 0;
    line-height: 1;
  }
}

/* ACOES DE RESULTADO EM CARTOES
   O texto da acao e longo e um select fechado do navegador nunca cresce
   nem quebra linha. Cada acao virou um cartao com radio, ocupando a
   largura inteira do bloco e quebrando quantas linhas precisar. */
.pc-funcao--resultado {
  grid-template-columns: 1fr;
  gap: 8px;
}

.pc-funcao--resultado .pc-funcao__rotulo {
  text-align: left;
}

.pc-funcao__opcoes {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  min-width: 0;
}

.pc-acao-opcao {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1px solid var(--line, #36363d);
  border-radius: 12px;
  background: rgba(255, 255, 255, .03);
  cursor: pointer;
}

.pc-acao-opcao input {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  min-width: 0;
  margin: 2px 0 0;
  accent-color: var(--red, #ef121d);
}

.pc-acao-opcao__texto {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13.5px;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.pc-acao-opcao--ativa {
  border-color: var(--red, #ef121d);
  background: rgba(239, 18, 29, .10);
}

.pc-acao-vazio {
  margin: 0;
}

@media (max-width: 820px) {
  .pc-acao-opcao { padding: 11px 12px; }
  .pc-acao-opcao__texto { font-size: 14px; }
}

/* PROCESSO DE TOMADA DE DECISOES
   Bloco de consulta: quatro etapas numeradas com uma linha de ajuda em
   cada, e a ordem de prioridade em faixas, da mais critica para a menos. */
.pc-decisoes__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.pc-decisoes__head h3 { margin: 0; }

.pc-decisoes__head .pc-tag {
  flex: 0 0 auto;
  align-self: flex-start;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

.pc-decisoes__head p {
  margin: 4px 0 0;
  font-size: 12.5px;
  line-height: 1.45;
}

.pc-decisoes__etapas {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.pc-etapa {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line, #36363d);
  border-radius: 14px;
  background: rgba(255, 255, 255, .04);
}

.pc-etapa__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--red, #ef121d);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.pc-etapa__nome {
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: .02em;
}

.pc-etapa__ajuda {
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted, #9a9aa5);
  overflow-wrap: anywhere;
}

.pc-decisoes__rot {
  margin: 20px 0 10px;
  color: var(--muted, #9a9aa5);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pc-decisoes__prioridades {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pc-prio {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--line, #36363d);
  border-left: 3px solid var(--red, #ef121d);
  border-radius: 12px;
  background: rgba(255, 255, 255, .03);
}

.pc-prio--2 { border-left-color: rgba(239, 18, 29, .70); }
.pc-prio--3 { border-left-color: rgba(239, 18, 29, .45); }
.pc-prio--4 { border-left-color: rgba(239, 18, 29, .25); }

.pc-prio__num {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 1px solid var(--line, #36363d);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  color: var(--muted, #9a9aa5);
}

.pc-prio__texto {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13.5px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

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

@media (max-width: 520px) {
  .pc-decisoes__etapas { grid-template-columns: 1fr; }
  .pc-etapa { flex-direction: row; align-items: flex-start; flex-wrap: wrap; }
  .pc-etapa__nome { flex: 1 1 auto; }
  .pc-etapa__ajuda { flex: 1 1 100%; }
}
