:root {
  --portal-navy: #00142d;
  --portal-orange: #f5820a;
  --portal-blue: #1769aa;
  --portal-ink: #16283d;
  --portal-muted: #617188;
  --portal-line: #e2e9f1;
  --portal-bg: #f4f7fb;
}

body.portal-page { background: var(--portal-bg); color: var(--portal-ink); }
.portal-page .site-header { position: relative; background: var(--portal-navy) !important; }
.portal-page .site-footer { margin-top: 2rem; }
.portal-content { min-height: calc(100vh - 180px); padding: 3rem 0 1rem; }
.portal-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 1.5rem; }
.portal-kicker, .card-eyebrow, .demo-label { color: var(--portal-orange); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.portal-heading h1 { margin: .35rem 0 .5rem; color: var(--portal-navy); font-size: clamp(1.8rem, 4vw, 2.7rem); }
.portal-heading p { margin: 0; color: var(--portal-muted); }
.portal-context { min-width: 150px; padding: .9rem 1rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: #fff; text-align: right; }
.portal-context span, .portal-context strong { display: block; }
.portal-context span { color: var(--portal-muted); font-size: .75rem; }
.portal-context strong { margin-top: .2rem; color: var(--portal-navy); }
.demo-switcher, .portal-card { min-width: 0; border: 1px solid var(--portal-line); border-radius: 1rem; background: #fff; box-shadow: 0 8px 24px rgba(0, 20, 45, .04); }
.demo-switcher { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; padding: 1rem 1.25rem; }
.demo-switcher small { display: block; color: var(--portal-muted); }
.demo-switcher select { min-width: 220px; padding: .65rem .8rem; border: 1px solid #cbd7e5; border-radius: .5rem; color: var(--portal-ink); background: #fff; }
.foreman-summary { display: grid; grid-template-columns: 1fr minmax(240px, .7fr); gap: 1.25rem; margin-bottom: 1.5rem; padding: 1.25rem; border: 1px solid var(--portal-line); border-left: 4px solid var(--portal-orange); border-radius: 1rem; background: #fff; box-shadow: 0 8px 24px rgba(0, 20, 45, .04); }
.foreman-summary h2 { margin: .35rem 0 .45rem; color: var(--portal-navy); font-size: 1.35rem; }
.foreman-summary p { margin: 0; color: var(--portal-muted); }
.foreman-team { padding-left: 1.25rem; border-left: 1px solid var(--portal-line); }
.foreman-team > span, .foreman-team > strong { display: block; }
.foreman-team > span { color: var(--portal-muted); font-size: .8rem; }
.foreman-team > strong { margin: .2rem 0 .65rem; color: var(--portal-navy); }
.foreman-team ul { display: grid; gap: .55rem; max-height: 180px; margin: 0; padding: 0; overflow-y: auto; list-style: none; }
.foreman-team li { padding-top: .55rem; border-top: 1px solid var(--portal-line); font-size: .85rem; }
.foreman-team li:first-child { padding-top: 0; border-top: 0; }
.foreman-team li a { display: block; margin: -.3rem -.4rem; padding: .3rem .4rem; border-radius: .4rem; color: var(--portal-ink); text-decoration: none; transition: background-color .15s ease; }
.foreman-team li a:hover, .foreman-team li a:focus-visible { background: rgba(245, 130, 10, .1); }
.foreman-team li a:hover strong, .foreman-team li a:focus-visible strong { color: var(--issell-orange); }
.foreman-team small { display: block; margin-top: .15rem; color: var(--portal-muted); }
.portal-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.portal-stats .stat-card { display: flex; flex-direction: column; justify-content: flex-start; padding: 1.1rem 1.2rem; border: 2px solid transparent; border-radius: 1rem; background: var(--portal-navy); color: #fff; text-align: left; cursor: pointer; transition: transform .15s, border-color .15s; }
.portal-stats .stat-card:focus-visible { border-color: rgba(245, 130, 13, .55); outline: none; }
/* Só em mouse: no celular o toque deixava a borda de hover presa no cartão. */
@media (hover: hover) { .portal-stats .stat-card:hover { border-color: rgba(245, 130, 13, .55); transform: translateY(-2px); } }
.portal-stats .stat-card.is-active { border-color: var(--portal-orange); box-shadow: 0 0 0 3px rgba(245, 130, 13, .25); }
.portal-stats .stat-card:disabled { cursor: default; transform: none; border-color: transparent; }
.stat-progress { display: block; height: 5px; margin-top: auto; border-radius: 999px; background: rgba(255, 255, 255, .14); overflow: hidden; }
.stat-progress[hidden] { display: none; }
.stat-progress b { display: block; height: 100%; min-width: 4px; border-radius: inherit; background: #3fbf7f; transition: width .4s; }
.stat-card-launch small { margin-bottom: .55rem; }
.stat-filter-chip { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .75rem; border: 1px solid var(--portal-orange); border-radius: 999px; color: var(--portal-navy); background: #fff4e8; font-size: .8rem; font-weight: 700; cursor: pointer; }
.portal-stats span, .portal-stats small { display: block; color: #d6e2ef; font-size: .8rem; }
.portal-stats strong { display: block; margin: .35rem 0; font-size: 1.9rem; }
.portal-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, .75fr); align-items: start; gap: 1.25rem; }
.portal-card { padding: 1.35rem; }
.portal-side { display: flex; flex-direction: column; gap: 1.25rem; }
.card-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.card-heading h2, .portal-card h2 { margin: .35rem 0 0; color: var(--portal-navy); font-size: 1.2rem; }
.portal-button { display: inline-block; border: 0; border-radius: .5rem; padding: .7rem 1rem; font-weight: 700; text-decoration: none; }
.portal-button-primary { color: #fff; background: var(--portal-orange); }
.portal-button-primary:hover, .portal-button-primary:focus-visible { background: #d96800; }
.table-responsive { overflow-x: auto; }
.portal-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.portal-table th { padding: .65rem .5rem; color: var(--portal-muted); font-size: .72rem; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
.portal-table td { padding: .85rem .5rem; border-top: 1px solid var(--portal-line); vertical-align: middle; }
.portal-table strong, .portal-table small { display: block; }
.portal-table small { margin-top: .15rem; color: var(--portal-muted); }
.status-badge { display: inline-block; padding: .3rem .55rem; border-radius: 2rem; font-size: .72rem; font-weight: 700; }
.status-pending { color: #8b5515; background: #fff2d9; }
.status-approved { color: #17613b; background: #def5e8; }
.status-denied { color: #8b2930; background: #fde5e6; }
.table-action { border: 0; color: var(--portal-blue); background: transparent; font-size: .8rem; font-weight: 700; }
.portal-card-alert { border-left: 4px solid var(--portal-orange); }
.portal-card-alert p { margin: 1rem 0 0; color: var(--portal-muted); font-size: .9rem; line-height: 1.55; }
.shortcut-list { display: grid; gap: .65rem; margin-top: 1rem; }
.shortcut-item { display: flex; align-items: center; gap: .7rem; padding: .75rem; border: 1px solid var(--portal-line); border-radius: .6rem; color: var(--portal-ink); text-decoration: none; font-size: .88rem; font-weight: 700; }
.shortcut-item:hover, .shortcut-item:focus-visible { border-color: var(--portal-orange); color: var(--portal-orange); }
.shortcut-icon { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .45rem; color: #fff; background: var(--portal-navy); font-size: .8rem; }
.activity-list { display: grid; gap: 1rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.activity-list li { display: flex; gap: .7rem; align-items: flex-start; }
.activity-list strong, .activity-list small { display: block; }
.activity-list strong { font-size: .85rem; }
.activity-list small { margin-top: .15rem; color: var(--portal-muted); font-size: .75rem; }
.activity-dot { flex: 0 0 .55rem; width: .55rem; height: .55rem; margin-top: .3rem; border-radius: 50%; background: #9aacbf; }
.activity-dot.is-success { background: #2c9b62; }
.activity-dot.is-warning { background: var(--portal-orange); }
.empty-state { margin: 1rem 0 0; color: var(--portal-muted); }
@media (max-width: 900px) {
  .portal-stats { grid-template-columns: repeat(2, 1fr); }
  .portal-stats .stat-card:last-child { grid-column: span 2; }
  /* Cartão largo: número à direita, título e "por lançar" à esquerda, barra embaixo — mais baixo e sem espaço vazio. */
  .portal-stats .stat-card-launch { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "title num" "note num" "detail num" "bar bar"; align-items: center; column-gap: 1rem; }
  .stat-card-launch span { grid-area: title; }
  .stat-card-launch strong { grid-area: num; margin: 0; }
  .stat-card-launch small { grid-area: note; margin: .2rem 0 0; }
  /* Cada linha pequena na sua área: antes as duas caíam em "note" e ficavam uma por cima da outra. */
  .stat-card-launch small.stat-detail { grid-area: detail; margin: .45rem 0 0; }
  .stat-card-launch .stat-progress { grid-area: bar; margin-top: .7rem; }
  .portal-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .portal-content { padding-top: 2rem; }
  .portal-heading, .demo-switcher { align-items: stretch; flex-direction: column; }
  .portal-context { text-align: left; }
  .demo-switcher select { width: 100%; }
  .foreman-summary { grid-template-columns: 1fr; }
  .foreman-team { padding-top: 1rem; padding-left: 0; border-top: 1px solid var(--portal-line); border-left: 0; }
  .portal-stats { gap: .7rem; }
  .portal-stats .stat-card { padding: .85rem .75rem; border-radius: .85rem; }
  .portal-stats .stat-card-launch strong { font-size: 1.9rem; }
  .portal-stats span, .portal-stats small { font-size: .74rem; }
  .portal-stats strong { font-size: 1.5rem; }
  .card-heading { align-items: flex-start; flex-direction: column; }
  .portal-button { width: 100%; text-align: center; }
  .table-responsive { overflow-x: visible; }
  .portal-table thead { display: none; }
  .portal-table, .portal-table tbody, .portal-table tr, .portal-table td { display: block; width: 100%; }
  .portal-table tr { margin-bottom: .9rem; padding: .9rem; border: 1px solid var(--portal-line); border-radius: .75rem; }
  .portal-table tr:last-child { margin-bottom: 0; }
  .portal-table td { padding: .35rem 0; border-top: 0; }
  .portal-table td[data-label]::before { display: block; margin-bottom: .15rem; color: var(--portal-muted); font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; content: attr(data-label); }
  .portal-table td.text-end { text-align: left !important; }
}
.gate-confirm-btn { padding:.5rem .75rem; border:1px solid #1e7d4b; border-radius:.45rem; color:#fff; background:#1e7d4b; font-size:.78rem; font-weight:700; cursor:pointer; }.gate-confirm-btn:hover { background:#17613b; }
/* Ações da tabela do painel inicial (todos os perfis) */
.row-actions { display:flex; flex-wrap:wrap; gap:.4rem; justify-content:flex-end; align-items:center; }
.row-actions button,.row-actions .table-action { padding:.5rem .7rem; border-radius:.45rem; font-size:.78rem; font-weight:700; line-height:1.2; cursor:pointer; text-decoration:none; }
.row-yes-btn { border:1px solid #4caa76; color:#17613b; background:#effbf4; }
.row-no-btn { border:1px solid #e0a2a6; color:#8b2930; background:#fff5f5; }
.row-delete-btn { border:1px solid #d7c2c4; color:#8b2930; background:#fff; }
/* "Assinar com digital" (leitor Hamster DX): ação própria do DP, com ícone de digital; não confundir com Autorizar (verde). */
.row-bio-btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; border:1px solid #00142d; color:#fff; background:#00142d; white-space:nowrap; }
.row-bio-btn:hover:not(:disabled) { background:#1769aa; border-color:#1769aa; }
.row-bio-btn::before { content:""; flex:none; width:1.05rem; height:1.05rem; background:currentColor; -webkit-mask:var(--fingerprint-icon) center / contain no-repeat; mask:var(--fingerprint-icon) center / contain no-repeat; }
:root { --fingerprint-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4'/%3E%3Cpath d='M14 13.12c0 2.38 0 6.38-1 8.88'/%3E%3Cpath d='M17.29 21.02c.12-.6.43-2.3.5-3.02'/%3E%3Cpath d='M2 12a10 10 0 0 1 18-6'/%3E%3Cpath d='M2 16h.01'/%3E%3Cpath d='M21.8 16c.2-2 .131-5.354 0-6'/%3E%3Cpath d='M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2'/%3E%3Cpath d='M8.65 22c.21-.66.45-1.32.57-2'/%3E%3Cpath d='M9 6.8a6 6 0 0 1 9 5.2v2'/%3E%3C/svg%3E"); }
.row-launched { display:block; margin-top:.3rem; color:#17613b; font-weight:700; }
@media (max-width:760px) { .row-actions { justify-content:flex-start; }.row-actions button,.row-actions .table-action { flex:1 1 calc(50% - .4rem); text-align:center; } }
/* Lixeira do painel inicial */
.records-toolbar { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 .8rem; }
.toolbar-btn { padding:.5rem .8rem; border:1px solid #cfd9e5; border-radius:.5rem; color:#16283d; background:#fff; font-size:.8rem; font-weight:700; cursor:pointer; }
.toolbar-btn:hover:not(:disabled) { background:#f2f6fb; }
.toolbar-btn:disabled { opacity:.45; cursor:default; }
.toolbar-danger { border-color:#e0a2a6; color:#8b2930; background:#fff5f5; }
.trash-notice { margin:0 0 .8rem; padding:.75rem .9rem; border-left:4px solid #1769aa; border-radius:.4rem; color:#33475b; background:#eef5fb; font-size:.85rem; }
.trash-notice-danger { border-left-color:#c62835; color:#7a1f27; background:#fdeeee; }
@media (max-width:760px) { .toolbar-btn { flex:1 1 100%; } }
/* Resumo das assinaturas na linha da liberação */
.sig-chips { display:flex; flex-wrap:wrap; gap:.25rem; margin-top:.4rem; }
.sig-chip { display:inline-block; padding:.15rem .5rem; border-radius:2rem; border:1px solid transparent; font-size:.68rem; font-weight:600; line-height:1.35; white-space:normal; }
.sig-chip b { font-weight:800; }
.sig-yes { color:#17613b; background:#def5e8; border-color:#b6e2c8; }
.sig-no { color:#8b2930; background:#fdeaea; border-color:#f1c4c7; }
.sig-info { color:#0b4a7a; background:#e3f0fb; border-color:#bcd9f0; }
.sig-wait { color:#617188; background:#f1f4f8; border-color:#dde4ec; font-weight:500; }
.sig-off { color:#8a5a00; background:#fdf5e4; border-color:#f0dcae; font-weight:500; }
.sig-chip[title] { cursor:help; }

/* ===== Visual das liberações no celular: cartão enxuto ===== */
.portal-table small.row-meta { display:none; }
/* Tabela apertada (ex.: janela média com o painel de atalhos ao lado): em vez de cortar a coluna de ações,
   "Frente" e depois "Horário" saem da tabela e vão para baixo do nome (linha "Equipe local · 07:00"). */
.table-responsive { container-type:inline-size; }
@container (max-width:640px) {
  .portal-table thead th:nth-child(2), .portal-table td.col-frente { display:none; }
  .portal-table .col-who small.row-meta { display:block; margin-top:.1rem; color:var(--portal-muted); font-size:.74rem; font-weight:600; }
}
@container (max-width:560px) {
  .portal-table thead th:nth-child(3), .portal-table td.col-horario { display:none; }
}
/* Data e hora em que a liberação foi criada (aparece sempre, também no computador). */
.portal-table .col-who small.row-created { display:flex; align-items:center; gap:.3rem; width:fit-content; margin-top:.4rem; padding:.2rem .55rem; border:1px solid #f5cf9f; border-radius:.4rem; color:#8a4300; background:#fff3e2; font-size:.74rem; font-weight:700; line-height:1.3; white-space:nowrap; }
.portal-table .col-who small.row-created::before { content:""; flex:none; width:.85rem; height:.85rem; background:currentColor; -webkit-mask:var(--clock-icon) center / contain no-repeat; mask:var(--clock-icon) center / contain no-repeat; }
:root { --clock-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
@media (max-width:760px) {
  .portal-table tr { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:.6rem; row-gap:.15rem; padding:.85rem .9rem; }
  .portal-table td { padding:0; width:auto; }
  .portal-table td[data-label]::before { display:none; }
  .portal-table td.col-status { grid-column:1 / -1; grid-row:1; display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .5rem; margin-bottom:.45rem; text-align:left; }
  .portal-table td.col-who { grid-column:1 / -1; grid-row:2; }
  .portal-table td.col-frente, .portal-table td.col-horario { display:none; }
  .portal-table td.col-actions { width:auto; grid-column:1 / -1; grid-row:3; margin-top:.6rem; padding-top:.65rem; border-top:1px solid var(--portal-line); }
  .col-who strong { font-size:1rem; line-height:1.25; }
  .col-who .row-who { display:block; margin-top:.1rem; font-size:.74rem; }
  .portal-table .col-who small.row-meta { display:block; margin-top:.05rem; color:var(--portal-muted); font-size:.74rem; font-weight:600; }
  .col-status .status-badge { display:inline-block; padding:.3rem .65rem; font-size:.72rem; line-height:1.25; text-align:center; }
  .col-status .row-launched { display:inline-block; margin:0; font-size:.7rem; }
  /* assinaturas: uma linha por etapa, com bolinha de cor, em vez de vários "comprimidos" */
  .sig-chips { display:grid; grid-template-columns:1fr; gap:.15rem; margin-top:.55rem; padding:.5rem .6rem; border-radius:.55rem; background:#f6f8fb; }
  .sig-chip { position:relative; display:block; padding:0 0 0 .95rem; border:0; border-radius:0; background:transparent !important; font-size:.72rem; font-weight:500; line-height:1.4; }
  .sig-chip::before { content:""; position:absolute; left:0; top:.4em; width:.55rem; height:.55rem; border-radius:50%; background:#c2ccd8; }
  .sig-yes::before { background:#1e9e5a; }.sig-no::before { background:#d33a46; }.sig-info::before { background:#1769aa; }.sig-off::before { background:#d99a1e; }
  .sig-yes { color:#17613b; }.sig-no { color:#8b2930; }.sig-info { color:#0b4a7a; }.sig-wait { color:#7b8798; }.sig-off { color:#8a5a00; }
  /* ações: decisão em destaque (grade de 2), secundárias em uma faixa menor embaixo */
  .portal-table td.row-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
  .row-actions button, .row-actions .table-action { min-height:2.5rem; padding:.45rem .5rem; font-size:.78rem; }
  .row-actions .release-view-btn, .row-actions .row-delete-btn { min-height:2.2rem; font-size:.72rem; font-weight:600; }
  .row-actions .row-delete-btn { border-color:#e2e6ec; color:#7a5a5d; }
  .row-actions > :only-child { grid-column:1 / -1; }
  .row-actions button[data-row-action="refuse"] { grid-column:1 / -1; order:3; }
  .row-actions .release-view-btn { order:5; }.row-actions .row-delete-btn { order:6; }
  .row-actions .table-action { order:4; }
  .row-actions .gate-confirm-btn { grid-column:1 / -1; min-height:2.8rem; font-size:.85rem; }
  .row-actions .row-bio-btn { grid-column:1 / -1; min-height:2.8rem; font-size:.85rem; }
}
/* Botões de ação do topo da lista (ex.: "Equipes" ao lado de "Nova liberação") */
.card-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.portal-button-secondary { color:#1769aa; background:#fff; border:1px solid #1769aa; }
.portal-button-secondary:hover, .portal-button-secondary:focus-visible { background:#eaf3fb; }
.portal-button[hidden] { display:none; }
@media (max-width:600px) { .card-actions { flex-direction:column-reverse; width:100%; } }

.portal-subtle-link { display:inline-block; margin-top:.35rem; font-size:.82rem; font-weight:600; color:var(--portal-muted, #617188); text-decoration:none; border-bottom:1px dotted currentColor; }
.portal-subtle-link:hover { color:#1769aa; }

/* Paginação das listas (js/core/pagination.js): "Exibindo de 1 até 10 de 212 registros" + páginas. */
.pager { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.6rem 1rem; margin-top:.9rem; padding-top:.8rem; border-top:1px solid var(--portal-line); color:var(--portal-muted); font-size:.8rem; }
.pager[hidden] { display:none; }
.pager-info { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .9rem; }
.pager-size-label { display:inline-flex; align-items:center; gap:.35rem; margin:0; }
.pager-size { padding:.25rem .4rem; border:1px solid var(--portal-line); border-radius:.4rem; color:#16283d; background:#fff; font-size:.8rem; }
.pager-buttons { display:flex; flex-wrap:wrap; gap:.25rem; }
.pager-btn { min-width:2.1rem; padding:.35rem .6rem; border:1px solid var(--portal-line); border-radius:.4rem; color:#1769aa; background:#fff; font-size:.8rem; font-weight:700; cursor:pointer; }
.pager-btn:hover:not(:disabled) { border-color:#1769aa; background:#f2f8fd; }
.pager-btn.is-current { border-color:#00142d; color:#fff; background:#00142d; cursor:default; }
.pager-btn:disabled:not(.is-current) { opacity:.45; cursor:default; }
@media (max-width:600px) { .pager { flex-direction:column; align-items:stretch; } .pager-buttons { justify-content:center; } }

/* ===== Barra de filtros por perfil (js/core/filter-bar.js): Situação · Período · Ordenar · Limpar filtros ===== */
.filter-bar { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin: .6rem 0 0; font-size: .82rem; }
.filter-bar[hidden], .date-filter[hidden], .sort-filter[hidden], .filter-bar-clear[hidden] { display: none !important; }
.filter-bar-field { display: inline-flex; align-items: center; gap: .35rem; color: #5b6678; font-weight: 600; }
.filter-bar-select { max-width: 100%; padding: .4rem .55rem; border: 1px solid #c9d3e0; border-radius: .45rem; font-size: .82rem; color: #16283d; background: #fff; cursor: pointer; }
.filter-bar-select:focus-visible { outline: 2px solid rgba(245, 130, 13, .55); outline-offset: 1px; }
.filter-bar-range { position: absolute; left: 0; bottom: 0; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.filter-bar-clear { padding: .4rem .2rem; border: 0; background: none; color: #1769aa; font-size: .8rem; font-weight: 700; text-decoration: underline; cursor: pointer; }
@media (max-width: 575.98px) {
  .filter-bar { display: grid; grid-template-columns: 1fr; gap: .45rem; }
  .filter-bar-field { justify-content: space-between; }
  .filter-bar-select { flex: 1; max-width: 70%; }
}
/* Calendário de intervalo (flatpickr) nas cores do portal */
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange,
.flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover { background: #f5820d; border-color: #f5820d; }
.flatpickr-day.inRange { background: #fff1e0; border-color: #fff1e0; box-shadow: -5px 0 0 #fff1e0, 5px 0 0 #fff1e0; }

/* Detalhe embaixo do número dos cartões (de onde vem o número: individuais/coletivas, mais antiga, saídas). */
.portal-stats small.stat-detail { margin-top: .45rem; padding-top: .45rem; border-top: 1px solid rgba(255, 255, 255, .12); color: #a9bbd0; font-size: .72rem; line-height: 1.45; }
.portal-stats small.stat-detail:empty { display: none; }
.stat-card-launch small.stat-detail { margin-bottom: .55rem; }

/* Caixa "Concluídas" (ao lado da Lixeira): liberações com todas as assinaturas, fora das pendências. */
.toolbar-done { border-color:#b6e2c8; color:#17613b; background:#f1fbf5; }
.toolbar-done:hover:not(:disabled) { background:#def5e8; }
.toolbar-count { display:inline-flex; align-items:center; padding:.5rem .2rem; color:#17613b; font-size:.85rem; font-weight:800; }
.done-notice { border-left-color:#1e9e5a; color:#1f4b33; background:#eefaf3; }
.row-concluded { display:block; margin-top:.3rem; color:#17613b; font-size:.75rem; font-weight:800; }
@media (max-width:760px) { .col-status .row-concluded { display:inline-block; margin:0 0 0 .35rem; font-size:.7rem; } }

/* Fileira "Aguardando por engenheiro" (um cartão por engenheiro de destino, abaixo dos cartões do dia) */
.portal-stats.portal-stats-engineers { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin-top: -.5rem; }
.portal-stats.portal-stats-engineers[hidden] { display: none; }
.portal-stats .stat-card-engineer { background: #0b2a52; }
.portal-stats .stat-card-engineer .stat-engineer-name { display: block; margin-top: .1rem; color: #fff; font-size: .95rem; font-weight: 700; }
.portal-stats .stat-card-engineer strong { margin: .3rem 0 0; font-size: 1.7rem; }
@media (max-width: 900px) {
  .portal-stats.portal-stats-engineers { grid-template-columns: repeat(2, 1fr); }
  .portal-stats.portal-stats-engineers .stat-card:last-child { grid-column: auto; }
}

/* Motivo da liberação individual: tipo (Tarefa/Particular), texto escrito e movimentação. */
.portal-table .col-who small.row-reason { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .45rem; margin-top:.3rem; color:var(--portal-ink, #10213a); font-size:.78rem; font-weight:600; line-height:1.35; }
.portal-table .col-who small.row-reason .row-movement { flex-basis:100%; color:var(--portal-muted); font-size:.74rem; font-weight:500; }
.portal-table .col-who small.row-reason .row-movement b { font-weight:700; }
.reason-tag { display:inline-block; padding:.1rem .45rem; border-radius:.35rem; font-size:.68rem; font-weight:800; letter-spacing:.02em; text-transform:uppercase; }
.reason-tarefa { color:#7a5200; background:#fdefc4; }
.reason-particular { color:#5b2d9e; background:#efe6fb; }
/* "Batida do ponto: 07:00" embaixo do engenheiro, quando a coluna "Horário" não aparece (celular / tabela apertada). */
.portal-table .col-who small.row-clock { display:none; color:var(--portal-muted); font-size:.74rem; font-weight:500; }
.portal-table .col-who small.row-clock b { color:var(--portal-ink); font-weight:700; }
@container (max-width:560px) { .portal-table .col-who small.row-clock { display:block; margin-top:.05rem; } }
@media (max-width:760px) { .portal-table .col-who small.row-clock { display:block; margin-top:.05rem; } }
/* "Data da liberação: 10/10/2026" (a data escolhida no pedido), sempre visível. */
.portal-table .col-who small.row-date { display:block; margin-top:.05rem; color:var(--portal-muted); font-size:.74rem; font-weight:500; }
.portal-table .col-who small.row-date b { color:var(--portal-ink); font-weight:700; }
/* Celular: linha laranja separando os dados da liberação do "Criada" (fica embaixo da linha que vem antes dele). */
@media (max-width:760px) {
  .portal-table td.col-who > small:has(+ small.row-created)::after { content:""; display:block; height:2px; margin-top:.6rem; border-radius:2px; background:var(--portal-orange); }
  .portal-table td.col-who small.row-created { margin-top:.6rem; }
}
.demo-switcher { flex-wrap: wrap; }
.demo-switcher #admin-person-select { flex: 1 1 100%; }
.demo-switcher #admin-person-select[hidden] { display: none; }
/* Encarregado, estagiário, analista e segurança: cartões de informação da obra, sem clique para filtrar. */
body.info-only .portal-stats .stat-card:not([data-stat="team"]), body.info-only [data-engineer-filter], body.info-only .dash-station-btn { cursor: default; }
body.info-only .portal-stats .stat-card:not([data-stat="team"]):hover, body.info-only [data-engineer-filter]:hover { transform: none; }

/* Cartões dos engenheiros divididos (Individuais | Coletivas): um por linha no celular; no computador, largos o
   bastante para as duas partes caberem lado a lado. */
.portal-stats.portal-stats-engineers { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .portal-stats.portal-stats-engineers { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); } }
