/* LeaderPlan · portal · estilos próprios do projeto
   Regra do design system: só variáveis --lp-* (sem HEX soltos) e nada de redefinir tokens.
   Importa apenas core/leaderplan.css (fontes + tokens + componentes). */
@import url("core/leaderplan.css");

body { min-height: 100vh; min-height: 100dvh; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
button { font-family: inherit; }
[hidden] { display: none !important; }

/* ============================ LOGIN ============================ */
.lg { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(380px, .75fr); min-height: 100vh; min-height: 100dvh; }
.lg__vitrine { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between; gap: var(--lp-s-6);
  padding: clamp(24px, 4vw, 56px) 0 clamp(24px, 3vw, 40px); background: var(--lp-preto) url("assets/texturas/capa-blueprint.jpg") center / cover no-repeat; }
.lg__vitrine::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(13,13,13,.94) 0%, rgba(13,13,13,.72) 55%, rgba(13,13,13,.5) 100%); }
.lg__vitrine .lp-pontos { top: 22px; right: 22px; }
.lg__topo, .lg__texto { padding-inline: clamp(20px, 4vw, 56px); }
.lg__topo img { height: 30px; width: auto; }
.lg__texto { max-width: 720px; }
.lg__texto h1 { font-size: clamp(2rem, 1.2rem + 3.2vw, 3.6rem); margin: var(--lp-s-4) 0 var(--lp-s-4); max-width: 14ch; }
.lg__texto h1 .lp-destaque { color: var(--lp-verde); font-size: 1.12em; display: inline-block; transform: rotate(-2deg); font-weight: 400; }
.lg__texto p { color: var(--lp-texto-suave); font-size: var(--lp-fs-md); max-width: 56ch; margin: 0; }
.lg__pilares { display: flex; flex-wrap: wrap; gap: var(--lp-s-2); margin-top: var(--lp-s-5); }
.lg__pilares span { display: inline-flex; align-items: center; gap: .5em; padding: .45em .9em; border: 1px solid var(--lp-borda-forte); border-radius: 99px; font-size: var(--lp-fs-xs); font-weight: 600; letter-spacing: .04em; color: var(--lp-texto); }
.lg__pilares svg { color: var(--lp-verde); width: 1.1em; height: 1.1em; }

/* faixa de cartões que passa de lado a lado (pausa com o mouse, respeita "reduzir movimento") */
.faixa { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.faixa__trilho { display: flex; gap: var(--lp-s-4); width: max-content; animation: faixa-anda var(--dur, 60s) linear infinite; }
.faixa:hover .faixa__trilho, .faixa:focus-within .faixa__trilho, .faixa.is-pausa .faixa__trilho { animation-play-state: paused; }
@keyframes faixa-anda { to { transform: translateX(calc(-50% - var(--lp-s-2))); } }
.cartao { flex: none; width: 240px; height: clamp(230px, 32vh, 300px); border-radius: var(--lp-raio-lg); overflow: hidden; position: relative; border: 1px solid var(--lp-borda-cor); background: var(--lp-superficie); color: var(--lp-texto); }
.cartao--foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.cartao--foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(13,13,13,.85)); }
.cartao--foto figcaption { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 1; font-size: var(--lp-fs-sm); font-weight: 600; line-height: 1.3; }
.cartao--foto figcaption b { display: block; font-size: var(--lp-fs-xs); letter-spacing: .12em; text-transform: uppercase; color: var(--lp-verde); margin-bottom: 2px; }
.cartao--texto { padding: 22px 20px; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px;
  background: var(--lp-n-900) url("assets/texturas/capa-blueprint.jpg") center / 520px auto; background-blend-mode: soft-light; }
.cartao--texto .ic { margin-bottom: auto; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--lp-verde-10); color: var(--lp-verde); border: 1px solid var(--lp-verde-20); }
.cartao--texto .ic svg { width: 22px; height: 22px; }
.cartao--texto b { font-size: var(--lp-fs-xs); letter-spacing: .12em; text-transform: uppercase; color: var(--lp-verde); }
.cartao--texto h3 { margin: 0; font-size: var(--lp-fs-lg); line-height: 1.2; }
.cartao--texto p { margin: 0; font-size: var(--lp-fs-sm); color: var(--lp-texto-suave); }
.cartao--verde { background: var(--lp-verde); color: var(--lp-preto); border: 0; }
.cartao--verde b, .cartao--verde p { color: var(--lp-preto); }
.cartao--verde .ic { background: rgba(13,13,13,.12); color: var(--lp-preto); border-color: rgba(13,13,13,.2); }
.lg__rodape-vitrine { padding-inline: clamp(20px, 4vw, 56px); font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); letter-spacing: .1em; text-transform: uppercase; }

.lg__painel { display: grid; place-items: center; padding: clamp(20px, 4vw, 48px); background: var(--lp-bg-alt); position: relative; }
.lg__caixa { width: min(100%, 420px); }
.lg__caixa .lp-logo-mobile { display: none; }
.lg__abas { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: 12px; margin-bottom: var(--lp-s-5); }
.lg__abas button { min-height: 42px; border: 0; border-radius: 9px; background: transparent; color: var(--lp-texto-suave); font-weight: 700; font-size: var(--lp-fs-sm); cursor: pointer; letter-spacing: .02em; }
.lg__abas button[aria-selected="true"] { background: var(--lp-verde); color: var(--lp-sobre-verde); }
.lg__abas button:not([aria-selected="true"]):hover { color: var(--lp-texto); }
.lg__form { display: grid; gap: var(--lp-s-4); }
.lg__form h2 { font-size: var(--lp-fs-xl); margin: 0; }
.lg__form .sub { color: var(--lp-texto-suave); font-size: var(--lp-fs-sm); margin: -8px 0 4px; }
.lg__form .linha2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lp-s-3); }
.campo-senha { position: relative; }
.campo-senha .lp-input { padding-right: 52px; }
.campo-senha button { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 44px; height: 40px; border: 0; background: transparent; color: var(--lp-texto-suave); cursor: pointer; border-radius: 8px; }
.campo-senha button:hover { color: var(--lp-texto); background: var(--lp-verde-10); }
.msg { padding: 12px 14px; border-radius: var(--lp-raio); font-size: var(--lp-fs-sm); border: 1px solid var(--lp-borda-cor); background: var(--lp-superficie); }
.msg--erro { border-color: var(--lp-erro); color: var(--lp-texto); border-left: 3px solid var(--lp-erro); }
.msg--ok { border-left: 3px solid var(--lp-verde); }
.msg--aviso { border-left: 3px solid var(--lp-alerta); }
.lg__links { display: flex; justify-content: space-between; gap: var(--lp-s-3); font-size: var(--lp-fs-sm); }
.lg__links button { background: none; border: 0; padding: 0; color: var(--lp-texto-suave); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; font-size: inherit; }
.lg__links button:hover { color: var(--lp-texto); }
.lg__nota { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); text-align: center; margin-top: var(--lp-s-5); }
.isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (max-height: 900px) and (min-width: 901px) { .lg__pilares { display: none; } .lg__texto h1 { margin-block: var(--lp-s-3); } }
@media (max-width: 900px) {
  .lg { grid-template-columns: 1fr; }
  .lg__vitrine { padding-top: 20px; gap: var(--lp-s-5); }
  .lg__texto h1 { max-width: none; }
  .lg__texto p { font-size: var(--lp-fs-base); }
  .lg__pilares { display: none; }
  .cartao { width: 200px; height: 236px; }
  .lg__painel { align-items: start; padding-top: var(--lp-s-6); }
  .lg__rodape-vitrine { display: none; }
}
@media (max-width: 480px) {
  .lg__form .linha2 { grid-template-columns: 1fr; }
  .lg__texto h1 { font-size: 1.9rem; }
}
@media (prefers-reduced-motion: reduce) { .faixa__trilho { animation: none; } .faixa { overflow-x: auto; } }

/* ============================ APP ============================ */
.ap { --pt-lat: 252px; display: grid; grid-template-columns: var(--pt-lat) minmax(0, 1fr); min-height: 100vh; min-height: 100dvh; background: linear-gradient(90deg, var(--lp-preto) var(--pt-lat), transparent var(--pt-lat)); transition: grid-template-columns .22s var(--lp-ease); }
.ap.is-recolhido { --pt-lat: 72px; }
.ap__lateral { background: var(--lp-preto); color: var(--lp-claro); border-right: 1px solid rgba(255,255,255,.08); padding: var(--lp-s-5) var(--lp-s-4); display: flex; flex-direction: column; gap: var(--lp-s-6); position: sticky; top: 0; height: 100vh; height: 100dvh; overflow-y: auto; }
.ap__lateral .lp-logo img { height: 26px; }
.ap__menu { display: grid; gap: 2px; }
.ap__menu a, .ap__menu button { display: flex; align-items: center; gap: var(--lp-s-3); padding: 11px 12px; border-radius: var(--lp-raio); color: #A8A8A8; text-decoration: none; font-size: var(--lp-fs-sm); font-weight: 600; border: 0; background: none; cursor: pointer; width: 100%; text-align: left; }
.ap__menu svg { width: 18px; height: 18px; }
.ap__menu a:hover, .ap__menu button:hover { background: rgba(255,255,255,.05); color: #fff; }
.ap__menu a[aria-current="page"] { background: var(--lp-verde-10); color: var(--lp-verde); box-shadow: inset 2px 0 0 var(--lp-verde); }
.ap__menu .grupo { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: #6B6B6B; padding: 14px 12px 6px; }
.ap__menu .grupo:first-child { padding-top: 0; }
.ap__menu .badge { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--lp-verde); color: var(--lp-preto); font-size: 11px; font-weight: 800; display: grid; place-items: center; }
.ap__eu { margin-top: auto; display: grid; gap: 10px; padding-top: var(--lp-s-4); border-top: 1px solid rgba(255,255,255,.08); }
.ap__eu .quem { display: flex; align-items: center; gap: 10px; min-width: 0; }
.avatar { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--lp-verde); color: var(--lp-preto); display: grid; place-items: center; font-weight: 800; font-size: 13px; }
.ap__eu .nome { font-size: var(--lp-fs-sm); font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap__eu .papel { font-size: 11px; color: #8F8F8F; text-transform: uppercase; letter-spacing: .08em; }
.ap__principal { min-width: 0; display: flex; flex-direction: column; }
.ap__topo { display: flex; align-items: center; justify-content: space-between; gap: var(--lp-s-4); padding: var(--lp-s-4) clamp(16px, 3vw, 40px); border-bottom: 1px solid var(--lp-borda-cor); background: var(--lp-bg-alt); position: sticky; top: 0; z-index: 20; min-height: 72px; }
.ap__topo h1 { font-size: var(--lp-fs-xl); margin: 0; letter-spacing: -.01em; }
.ap__topo .lp-sobretitulo { margin-bottom: 2px; }
.ap__conteudo { padding: clamp(16px, 3vw, 40px); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lp-s-5); align-content: start; flex: 1; }
.ap__movel { display: none; }

.vivo { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 99px; font-size: var(--lp-fs-xs); font-weight: 700; letter-spacing: .04em; background: var(--lp-superficie-2); border: 1px solid var(--lp-borda-cor); color: var(--lp-texto-suave); white-space: nowrap; }
.vivo i { width: 8px; height: 8px; border-radius: 50%; background: var(--lp-texto-fraco); }
.vivo[data-e="aovivo"] { color: var(--lp-destaque); background: var(--lp-verde-10); border-color: var(--lp-verde-20); }
.vivo[data-e="aovivo"] i { background: var(--lp-verde); animation: pulso 2s ease-out infinite; }
.vivo[data-e="offline"], .vivo[data-e="reconectando"] { color: var(--lp-texto); background: rgba(227,160,8,.14); border-color: var(--lp-alerta); }
.vivo[data-e="offline"] i, .vivo[data-e="reconectando"] i { background: var(--lp-alerta); }
@keyframes pulso { 0% { box-shadow: 0 0 0 0 rgba(97,191,54,.55); } 70%, 100% { box-shadow: 0 0 0 7px rgba(97,191,54,0); } }
@media (prefers-reduced-motion: reduce) { .vivo[data-e="aovivo"] i { animation: none; } }

.cab-ferr { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--lp-s-4); flex-wrap: wrap; }
.cab-ferr h2 { margin: 0; font-size: var(--lp-fs-xl); }
.cab-ferr p { margin: 4px 0 0; color: var(--lp-texto-suave); font-size: var(--lp-fs-sm); max-width: 70ch; }
.acoes { display: flex; gap: var(--lp-s-2); flex-wrap: wrap; }
.btn-ic { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--lp-raio); border: 1px solid var(--lp-borda-forte); background: var(--lp-superficie); color: var(--lp-texto); cursor: pointer; }
.btn-ic:hover { border-color: var(--lp-verde); color: var(--lp-destaque); }

.kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lp-s-4); }
@media (min-width: 1240px) { .kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.kpis .lp-kpi { padding: var(--lp-s-4); }
.kpis .lp-kpi__valor { font-size: clamp(1.2rem, .95rem + .6vw, 1.5rem); white-space: nowrap; }
.kpis .lp-kpi small { display: block; color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); margin-top: 2px; }
.kpi--alerta .lp-kpi__valor { color: var(--pt-erro); }

/* barra de filtros */
.filtros { display: flex; flex-wrap: wrap; gap: var(--lp-s-2); align-items: center; }
.filtros .busca { flex: 1 1 240px; position: relative; min-width: 200px; }
.filtros .busca svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--lp-texto-fraco); pointer-events: none; }
.filtros .busca .lp-input { padding-left: 40px; min-height: 42px; }
.fdrop { position: relative; }
.fdrop > button { min-height: 42px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; border-radius: var(--lp-raio); border: 1px solid var(--lp-borda-forte); background: var(--lp-superficie); color: var(--lp-texto); font-size: var(--lp-fs-sm); font-weight: 600; cursor: pointer; white-space: nowrap; }
.fdrop > button:hover { border-color: var(--lp-verde); }
.fdrop > button .n { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--lp-verde); color: var(--lp-preto); font-size: 11px; font-weight: 800; display: grid; place-items: center; }
.fdrop > button svg { width: 14px; height: 14px; opacity: .6; }
.fdrop__painel { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; width: 290px; max-width: calc(100vw - 32px); background: var(--lp-superficie); border: 1px solid var(--lp-borda-forte); border-radius: var(--lp-raio-lg); box-shadow: var(--lp-sombra-3); padding: 10px; display: none; }
.fdrop.is-aberto .fdrop__painel { display: block; }
.fdrop__painel .lp-input { min-height: 38px; font-size: var(--lp-fs-sm); }
.fdrop__lista { max-height: 260px; overflow-y: auto; margin: 8px 0; display: grid; gap: 1px; }
.fdrop__lista label { display: flex; align-items: center; gap: 10px; padding: 8px 8px; border-radius: 6px; cursor: pointer; font-size: var(--lp-fs-sm); }
.fdrop__lista label:hover { background: var(--lp-verde-10); }
.fdrop__lista input { accent-color: var(--lp-verde); width: 17px; height: 17px; flex: none; }
.fdrop__lista .t { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.fdrop__lista .c { color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); font-variant-numeric: tabular-nums; }
.fdrop__rodape { display: flex; justify-content: space-between; align-items: center; }
.fdrop__rodape button { background: none; border: 0; cursor: pointer; font-size: var(--lp-fs-xs); font-weight: 700; color: var(--lp-destaque); padding: 6px 4px; }
.fdrop__vazio { padding: 10px; color: var(--lp-texto-fraco); font-size: var(--lp-fs-sm); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips .lp-tag { cursor: pointer; }
.chips .lp-tag:hover { border-color: var(--lp-erro); }
.contagem { font-size: var(--lp-fs-sm); color: var(--lp-texto-suave); }

/* tabela de pendências */
.pt { width: 100%; border-collapse: collapse; font-size: var(--lp-fs-sm); }
.pt th { text-align: left; font-size: var(--lp-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--lp-texto-fraco); padding: 12px 12px; border-bottom: 1px solid var(--lp-borda-forte); white-space: nowrap; background: var(--lp-superficie-2); position: sticky; top: 0; z-index: 2; cursor: pointer; user-select: none; }
.pt th[aria-sort] { color: var(--lp-texto); }
.pt th.num, .pt td.num { text-align: right; font-variant-numeric: tabular-nums; }
.pt td { padding: 10px 12px; border-bottom: 1px solid var(--lp-borda-cor); vertical-align: top; }
.pt tbody tr { cursor: pointer; }
.pt tbody tr:hover { background: var(--lp-verde-10); }
.pt .desc { max-width: 340px; min-width: 220px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pt .num-pend { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pt .fraco { color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); }
.pt input.cel { width: 86px; min-height: 34px; padding: 4px 8px; text-align: right; border: 1px solid transparent; border-radius: 6px; background: transparent; font: inherit; color: var(--lp-texto); font-variant-numeric: tabular-nums; }
.pt input.cel:hover { border-color: var(--lp-borda-forte); background: var(--lp-superficie); }
.pt input.cel:focus { outline: none; border-color: var(--lp-verde); box-shadow: 0 0 0 3px var(--lp-verde-20); background: var(--lp-superficie); }
.pt input.cel.calc { color: var(--lp-texto-fraco); font-style: italic; }
.pt input.cel[disabled] { opacity: 1; }
.pt tfoot td { font-weight: 700; background: var(--lp-superficie-2); position: sticky; bottom: 0; }
.tabela-rolagem { max-height: 68vh; overflow: auto; border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-superficie); }

.cat { display: inline-flex; align-items: center; gap: 6px; font-size: var(--lp-fs-xs); font-weight: 700; white-space: nowrap; }
.cat::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.cat--A { color: var(--pt-erro); }
.cat--B { color: var(--pt-alerta); }
.cat--RNC { color: var(--lp-texto); }
.cat--RNC::before { border-radius: 2px; background: var(--lp-texto); }
.cat--x { color: var(--lp-texto-fraco); }
.stt { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: var(--lp-fs-xs); font-weight: 700; letter-spacing: .03em; border: 1px solid var(--lp-borda-forte); color: var(--lp-texto-suave); white-space: nowrap; background: var(--lp-superficie); }
.stt--ABERTA { color: var(--lp-texto); }
.stt--EM-ANDAMENTO { background: rgba(227,160,8,.14); border-color: var(--lp-alerta); color: var(--lp-texto); }
.stt--ORCADA { background: var(--lp-verde-10); border-color: var(--lp-verde-20); color: var(--lp-destaque); }
.stt--SANEADA { background: var(--lp-verde); border-color: var(--lp-verde); color: var(--lp-preto); }
.stt--CANCELADA { opacity: .6; text-decoration: line-through; }
.prazo--vencido { color: var(--pt-erro); font-weight: 700; }

/* cartões (celular) */
.cards { display: none; gap: var(--lp-s-3); }
.pc { background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 14px; display: grid; gap: 8px; cursor: pointer; }
.pc:active { border-color: var(--lp-verde); }
.pc__topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.pc__desc { font-size: var(--lp-fs-sm); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; margin: 0; }
.pc__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); }
.pc__val { display: flex; justify-content: space-between; font-size: var(--lp-fs-sm); font-weight: 700; font-variant-numeric: tabular-nums; }

/* resumo por disciplina */
.resumo { display: grid; gap: 10px; }
.resumo__linha { display: grid; grid-template-columns: minmax(110px, 1.2fr) 2fr 70px 80px 110px; gap: 12px; align-items: center; font-size: var(--lp-fs-sm); }
.resumo__linha .barra { height: 10px; border-radius: 99px; background: var(--lp-superficie-2); overflow: hidden; }
.resumo__linha .barra span { display: block; height: 100%; background: var(--lp-verde); border-radius: inherit; }
.resumo__linha .n { text-align: right; font-variant-numeric: tabular-nums; }
.resumo__linha.cab { font-size: var(--lp-fs-xs); text-transform: uppercase; letter-spacing: .07em; font-weight: 700; color: var(--lp-texto-fraco); }
.resumo__linha.total { border-top: 1px solid var(--lp-borda-forte); padding-top: 10px; font-weight: 800; }
.secao-titulo { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: var(--lp-s-4); }
.secao-titulo h3 { margin: 0; font-size: var(--lp-fs-lg); }
.param { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: var(--lp-fs-sm); }
.param .lp-input { width: 130px; min-height: 38px; text-align: right; }

/* painel lateral de edição */
.gaveta-fundo { position: fixed; inset: 0; background: rgba(13,13,13,.55); z-index: 90; display: none; }
.gaveta-fundo.is-aberto { display: block; }
.gaveta { position: fixed; z-index: 91; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); background: var(--lp-bg-alt); border-left: 1px solid var(--lp-borda-forte); box-shadow: var(--lp-sombra-3); display: none; flex-direction: column; }
.gaveta.is-aberto { display: flex; }
.gaveta__cab { padding: 16px 20px; border-bottom: 1px solid var(--lp-borda-cor); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gaveta__cab h3 { margin: 0; font-size: var(--lp-fs-lg); }
.gaveta__corpo { padding: 20px; overflow-y: auto; overflow-x: hidden; flex: 1; display: grid; gap: var(--lp-s-4); align-content: start; }
.gaveta__rodape { padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--lp-borda-cor); display: flex; gap: 8px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.gaveta .grade2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lp-s-3); align-items: start; }
.gaveta .lp-input, .gaveta .lp-textarea, .gaveta .lp-select { min-height: 42px; }
.gaveta .lp-textarea { min-height: 84px; }
.gaveta__bloco { padding: 14px; border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-superficie); display: grid; gap: var(--lp-s-3); }
.gaveta__bloco h4 { margin: 0; font-size: var(--lp-fs-sm); text-transform: uppercase; letter-spacing: .1em; color: var(--lp-texto-fraco); }
.leitura { font-size: var(--lp-fs-sm); line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.leitura-rotulo { font-size: var(--lp-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--lp-texto-fraco); margin-bottom: 2px; }
.carimbo { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); }

/* janelas (modal) */
.modal-fundo { position: fixed; inset: 0; z-index: 100; background: rgba(13,13,13,.6); display: none; place-items: center; padding: 16px; overflow-y: auto; }
.modal-fundo.is-aberto { display: grid; }
.modal { width: min(520px, 100%); background: var(--lp-bg-alt); border: 1px solid var(--lp-borda-forte); border-radius: var(--lp-raio-lg); box-shadow: var(--lp-sombra-3); padding: 22px; display: grid; gap: var(--lp-s-4); margin: auto; }
.modal h3 { margin: 0; }
.modal .grade2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lp-s-3); }
.modal .acoes-fim { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.cred { font-family: var(--lp-font-mono); font-size: var(--lp-fs-sm); background: var(--lp-superficie-2); border: 1px dashed var(--lp-borda-forte); border-radius: var(--lp-raio); padding: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }

/* avisos flutuantes */
.toasts { position: fixed; z-index: 120; right: 16px; bottom: 16px; display: grid; gap: 8px; max-width: min(380px, calc(100vw - 32px)); }
.toast { padding: 12px 16px; border-radius: var(--lp-raio); background: var(--lp-preto); color: var(--lp-claro); border-left: 3px solid var(--lp-verde); font-size: var(--lp-fs-sm); box-shadow: var(--lp-sombra-3); animation: entra .2s var(--lp-ease); }
.toast--erro { border-left-color: var(--lp-erro); }
@keyframes entra { from { opacity: 0; transform: translateY(8px); } }

/* início */
.boas-vindas { position: relative; overflow: hidden; border-radius: var(--lp-raio-lg); padding: clamp(20px, 3vw, 36px); background: var(--lp-preto) url("assets/texturas/capa-blueprint.jpg") center / cover; color: var(--lp-claro); isolation: isolate; border: 1px solid var(--lp-borda-cor); }
.boas-vindas::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(13,13,13,.94), rgba(13,13,13,.55)); }
.boas-vindas h2 { font-size: var(--lp-fs-2xl); margin: 8px 0; max-width: 18ch; color: var(--lp-claro); }
.boas-vindas p { color: #BDBDBD; margin: 0; max-width: 52ch; }
.ferramentas { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--lp-s-4); }
.ferr { display: grid; gap: 10px; padding: var(--lp-s-5); border-radius: var(--lp-raio-lg); border: 1px solid var(--lp-borda-cor); background: var(--lp-superficie); color: inherit; text-decoration: none; transition: border-color var(--lp-dur) var(--lp-ease), transform var(--lp-dur) var(--lp-ease); }
a.ferr:hover { border-color: var(--lp-verde); transform: translateY(-2px); }
.ferr .ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--lp-verde-10); color: var(--lp-destaque); border: 1px solid var(--lp-verde-20); }
.ferr h3 { margin: 0; font-size: var(--lp-fs-lg); }
.ferr p { margin: 0; font-size: var(--lp-fs-sm); color: var(--lp-texto-suave); }
.ferr .rod { display: flex; justify-content: space-between; align-items: center; font-size: var(--lp-fs-xs); font-weight: 700; color: var(--lp-texto-fraco); }
.ferr--breve { border-style: dashed; background: transparent; }
.ferr--breve .ic { background: var(--lp-superficie-2); border-color: var(--lp-borda-cor); color: var(--lp-texto-fraco); }

/* usuários */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--lp-borda-cor); }
.abas button { background: none; border: 0; padding: 12px 16px; font-weight: 700; font-size: var(--lp-fs-sm); color: var(--lp-texto-suave); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -1px; display: inline-flex; gap: 8px; align-items: center; }
.abas button[aria-selected="true"] { color: var(--lp-texto); border-bottom-color: var(--lp-verde); }
.abas .badge { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--lp-verde); color: var(--lp-preto); font-size: 11px; font-weight: 800; display: grid; place-items: center; }
.lp-select { appearance: auto; }
.tabela-u select { min-width: 150px; }
.tabela-u select, .tabela-u input[type=date] { min-height: 36px; padding: 4px 8px; font-size: var(--lp-fs-sm); }
.tabela-u td { vertical-align: middle; }
.tabela-u .btns { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.tabela-u .sub { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); }
.vazio { padding: var(--lp-s-7) var(--lp-s-5); text-align: center; color: var(--lp-texto-suave); border: 1px dashed var(--lp-borda-forte); border-radius: var(--lp-raio-lg); }

/* ---------- celular ---------- */
@media (max-width: 900px) {
  .ap { grid-template-columns: 1fr; background: none; padding-bottom: 68px; }
  .ap__lateral { display: none; }
  .ap__topo { min-height: 60px; padding: 10px 16px; }
  .ap__topo .lp-sobretitulo { display: none; }
  .ap__topo h1 { font-size: var(--lp-fs-md); }
  .ap__topo .logo-m { display: block; height: 22px; width: auto; }
  .ap__movel { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; position: fixed; z-index: 60; left: 0; right: 0; bottom: 0; background: var(--lp-preto); border-top: 1px solid rgba(255,255,255,.12); padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); }
  .ap__movel a, .ap__movel button { display: grid; justify-items: center; gap: 2px; padding: 6px 4px; border: 0; background: none; color: #8F8F8F; font-size: 11px; font-weight: 700; text-decoration: none; cursor: pointer; border-radius: 8px; position: relative; }
  .ap__movel svg { width: 22px; height: 22px; }
  .ap__movel a[aria-current="page"] { color: var(--lp-verde); }
  .ap__movel .badge { position: absolute; top: 2px; right: calc(50% - 22px); min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: var(--lp-verde); color: var(--lp-preto); font-size: 10px; font-weight: 800; display: grid; place-items: center; }
  .tabela-rolagem { display: none; }
  .cards { display: grid; }
  .resumo__linha { grid-template-columns: 1fr 60px 100px; }
  .resumo__linha .barra, .resumo__linha .n.hh { display: none; }
  .gaveta { width: 100vw; border-left: 0; }
  .gaveta .grade2, .modal .grade2 { grid-template-columns: 1fr; }
  .toasts { bottom: 84px; }
  .tabela-u-wrap .lp-tabela thead { display: none; }
}
@media (min-width: 901px) { .ap__topo .logo-m { display: none; } }
@media (max-width: 560px) {
  .kpis { grid-template-columns: repeat(2, 1fr); gap: var(--lp-s-3); }
  .kpis .lp-kpi { padding: 12px 14px; }
  .fdrop__painel { position: fixed; left: 8px; right: 8px; top: auto; bottom: 76px; width: auto; max-width: none; }
  .filtros .fdrop { flex: 0 0 auto; }
}
@media print { .ap__lateral, .ap__movel, .ap__topo, .filtros, .acoes { display: none !important; } .ap { display: block; background: none; } }

/* usuários e pedidos no celular: cada linha vira um cartão */
@media (max-width: 900px) {
  .tabela-u-wrap { overflow: visible; border: 0; background: none; }
  .tabela-u, .tabela-u tbody, .tabela-u tr, .tabela-u td { display: block; width: 100%; }
  .tabela-u tr { background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 12px 14px; margin-bottom: 10px; }
  .tabela-u td { padding: 6px 0; border: 0; }
  .tabela-u tbody tr:hover { background: var(--lp-superficie); }
  .tabela-u .btns { justify-content: flex-start; }
  .tabela-u select, .tabela-u input[type=date] { width: 100%; }
}
@media (max-width: 560px) {
  .cab-ferr p, .param .carimbo { display: none; }
}


/* ============ Acessibilidade por tema (contraste mínimo AA 4,5:1 para texto pequeno) ============
   O design system define os temas claro, grafite e escuro. As cores de status e o texto fraco do sistema não passam em AA
   nos fundos de cada tema; aqui entram variações só para TEXTO. Bordas e preenchimentos seguem a paleta oficial. */
:root, [data-tema="claro"] { --pt-erro: #B3261E; --pt-alerta: #8A5A00; --lp-texto-fraco: #5C5C5C; --lp-destaque: #34701A; }
[data-tema="escuro"] { --pt-erro: #FF8F86; --pt-alerta: #E3A008; --lp-texto-fraco: #A6A6A6; --lp-destaque: var(--lp-verde); }
[data-tema="grafite"] { --pt-erro: #FF9A92; --pt-alerta: #F0B323; --lp-texto-fraco: #B4B4B4; --lp-destaque: #6FCF48; }
.lp-status--erro, .lp-kpi__delta--neg { color: var(--pt-erro); }
.lp-status--alerta { color: var(--pt-alerta); }
.msg--erro, .toast--erro { border-left-color: var(--pt-erro); }
[data-tema="escuro"] .stt--ORCADA, [data-tema="grafite"] .stt--ORCADA { color: var(--lp-destaque); }
[data-tema="escuro"] .ap__topo, [data-tema="grafite"] .ap__topo { box-shadow: 0 1px 0 rgba(255,255,255,.04); }
[data-tema="escuro"] .gaveta-fundo, [data-tema="escuro"] .modal-fundo { background: rgba(0,0,0,.7); }
[data-tema="escuro"] .ap, [data-tema="grafite"] .ap { background: linear-gradient(90deg, var(--lp-preto) var(--pt-lat), transparent var(--pt-lat)); }
@media (max-width: 900px) { [data-tema] .ap { background: none; } }

/* ============ Menu lateral recolhível ============ */
.ap__lateral { transition: padding .22s var(--lp-ease); overflow-x: hidden; }
.ap__lateral .topo-lat { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; }
.ap__lateral .logo-simb { display: none; height: 30px; width: auto; }
.ap__lateral .bt-recolher { flex: none; width: 34px; height: 34px; border-radius: var(--lp-raio); border: 1px solid rgba(255,255,255,.14); background: transparent; color: #A8A8A8; cursor: pointer; display: grid; place-items: center; }
.ap__lateral .bt-recolher:hover { color: #fff; border-color: var(--lp-verde); }
.ap__lateral .bt-recolher svg { width: 18px; height: 18px; transition: transform .22s var(--lp-ease); }
.ap.is-recolhido .bt-recolher svg { transform: rotate(180deg); }
.ap.is-recolhido .ap__lateral { padding-inline: 10px; align-items: center; }
.ap.is-recolhido .topo-lat { flex-direction: column; gap: 14px; }
.ap.is-recolhido .logo-comp { display: none; }
.ap.is-recolhido .logo-simb { display: block; }
.ap.is-recolhido .ap__menu { width: 100%; }
.ap.is-recolhido .ap__menu .t, .ap.is-recolhido .ap__menu .grupo, .ap.is-recolhido .ap__eu .nome, .ap.is-recolhido .ap__eu .papel { display: none; }
.ap.is-recolhido .ap__menu a, .ap.is-recolhido .ap__menu button { justify-content: center; padding-inline: 0; position: relative; }
.ap.is-recolhido .ap__menu .badge { position: absolute; top: 2px; right: 6px; margin: 0; min-width: 16px; height: 16px; font-size: 10px; padding: 0 4px; }
.ap.is-recolhido .ap__eu { width: 100%; justify-items: center; }
.ap.is-recolhido .ap__eu .quem { justify-content: center; }
@media (max-width: 900px) { .bt-recolher { display: none; } }
@media (prefers-reduced-motion: reduce) { .ap, .ap__lateral, .bt-recolher svg { transition: none; } }

/* ============ Foto de perfil e aparência ============ */
.avatar { overflow: hidden; background-size: cover; background-position: center; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar--g { width: 84px; height: 84px; font-size: 26px; }
.perfil-foto { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.perfil-foto .acoes { gap: 8px; }
.modal--larga { width: min(620px, 100%); }
.modal .sec { display: grid; gap: var(--lp-s-3); padding-top: var(--lp-s-4); border-top: 1px solid var(--lp-borda-cor); }
.modal .sec:first-of-type { border-top: 0; padding-top: 0; }
.modal .sec > h4 { margin: 0; font-size: var(--lp-fs-sm); text-transform: uppercase; letter-spacing: .1em; color: var(--lp-texto-fraco); }
.temas { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--lp-s-3); }
.tema-op { cursor: pointer; border: 2px solid var(--lp-borda-forte); border-radius: var(--lp-raio-lg); padding: 8px; background: var(--lp-superficie); color: var(--lp-texto); font: inherit; text-align: left; display: grid; gap: 8px; }
.tema-op[aria-pressed="true"] { border-color: var(--lp-verde); box-shadow: 0 0 0 3px var(--lp-verde-20); }
.tema-op .amostra { height: 54px; border-radius: 8px; padding: 8px; display: grid; gap: 5px; align-content: center; border: 1px solid rgba(128,128,128,.35); }
.tema-op .amostra i { display: block; height: 6px; border-radius: 3px; }
.tema-op .amostra i:nth-child(1) { width: 60%; } .tema-op .amostra i:nth-child(2) { width: 85%; opacity: .6; }
.tema-op .amostra b { display: block; width: 30%; height: 8px; border-radius: 3px; background: var(--lp-verde); }
.tema-op strong { font-size: var(--lp-fs-sm); }
.tema-op small { color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); margin-top: -6px; }
.tm-claro { background: var(--lp-claro); } .tm-claro i { background: var(--lp-preto); }
.tm-grafite { background: var(--lp-grafite); } .tm-grafite i { background: var(--lp-claro); }
.tm-escuro { background: var(--lp-preto); } .tm-escuro i { background: var(--lp-claro); }
.tema-bt { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 99px; border: 1px solid var(--lp-borda-forte); background: var(--lp-superficie); color: var(--lp-texto); cursor: pointer; }
.tema-bt:hover { border-color: var(--lp-verde); }
@media (max-width: 560px) { .temas { grid-template-columns: 1fr; } .tema-op { grid-template-columns: 84px 1fr; align-items: center; } .tema-op small { grid-column: 2; } }

.avatar--mini { width: 26px; height: 26px; font-size: 10px; }
.ap__movel .avatar--mini { margin: 0 auto; }

/* ============ Pendências: abas, painel, curva S, cronograma, equipe ============ */
.abas-ferr { margin: -4px 0 var(--lp-s-4); overflow-x: auto; scrollbar-width: none; }
.abas-ferr::-webkit-scrollbar { display: none; }
.abas-ferr button { white-space: nowrap; }
.pn-aba { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lp-s-5); }
.obs-lin { margin-top: 4px; font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); max-width: 340px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc .obs-lin { max-width: none; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.clic { cursor: pointer; }
.chk { display: inline-flex; align-items: center; gap: 8px; font-size: var(--lp-fs-sm); font-weight: 600; cursor: pointer; }
.chk input { accent-color: var(--lp-verde); width: 18px; height: 18px; }

.ind { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: var(--lp-s-4); }
.ind .lp-kpi { display: grid; gap: 8px; align-content: start; }
.ind .lp-kpi__valor { font-size: clamp(1.25rem, 1rem + .7vw, 1.65rem); margin-top: 0; }
.ind .lp-kpi small { color: var(--lp-texto-suave); font-size: var(--lp-fs-xs); }
.ind .de { font-size: .55em; font-weight: 600; color: var(--lp-texto-suave); letter-spacing: 0; }
.lp-progresso > span { background: var(--lp-destaque); }
.lp-progresso.estouro > span { background: var(--pt-erro); }
.lp-progresso { background: var(--lp-borda-forte); }
.grade-pa { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: var(--lp-s-5); }
.leg { display: flex; gap: 14px; flex-wrap: wrap; font-size: var(--lp-fs-xs); font-weight: 700; }
.lgd { display: inline-flex; align-items: center; gap: 7px; }
.lgd::before { content: ""; width: 22px; height: 0; border-top: 3px solid var(--lp-texto); }
.lgd--id::before { border-top: 2px dotted var(--lp-texto-fraco); }
.lgd--pr::before { border-top: 3px dashed var(--lp-texto); }
.lgd--re::before { border-top: 4px solid var(--lp-destaque); }
.lgd--prev::before { border-top: 8px solid var(--lp-verde-medio); width: 14px; }
.lgd--gasto::before { border-top: 8px solid var(--lp-destaque); width: 14px; }

/* curva S */
.curva { position: relative; }
.cv { width: 100%; height: auto; overflow: visible; touch-action: pan-y; }
.cv-g { stroke: var(--lp-borda-cor); stroke-width: 1; }
.cv-t { fill: var(--lp-texto-fraco); font: 600 11px var(--lp-font-base); }
.cv-h { stroke: var(--lp-texto-fraco); stroke-width: 1; stroke-dasharray: 2 4; }
.cv-guia { stroke: var(--lp-texto); stroke-width: 1; opacity: .5; }
.cv-id { fill: none; stroke: var(--lp-texto-fraco); stroke-width: 2; stroke-dasharray: 1 5; stroke-linecap: round; }
.cv-pr { fill: none; stroke: var(--lp-texto); stroke-width: 2.5; stroke-dasharray: 8 6; }
.cv-re { fill: none; stroke: var(--lp-destaque); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.cv-pt { fill: var(--lp-destaque); stroke: var(--lp-bg-alt); stroke-width: 2; }
.cv-l { font: 700 12px var(--lp-font-base); }
.cv-l--id { fill: var(--lp-texto-fraco); } .cv-l--pr { fill: var(--lp-texto); } .cv-l--re { fill: var(--lp-destaque); }
.cv--est .cv-t { font-size: 12px; } .cv--est .cv-l { font-size: 13px; }
/* cronograma no celular: tudo cabe na largura, descrição em cima da barra */
@media (max-width: 760px) {
  #gt .gt-wrap { overflow: hidden; max-height: none; }
  .gt .gt-trk { overflow: hidden; }
  .gt .gt-cab { position: static; }
  .gt .gt-row { grid-template-columns: minmax(0, 1fr); }
  .gt .gt-lab { position: static; border-right: 0; padding: 8px 10px 0; }
  .gt-lab span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .gt-cab .gt-lab { display: none; }
  .gt-trk { min-height: 34px; margin: 0 8px; }
  .gt-mes { font-size: 10px; transform: none; padding-left: 3px; }
  .gt-bar i { display: none; }
}
/* tabela vira cartões no celular (sem rolagem lateral) */
@media (max-width: 760px) {
  .tab-cartoes, .tab-cartoes tbody { display: block; width: 100%; }
  .tab-cartoes thead { display: none; }
  .tab-cartoes tr { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; padding: 12px 4px; border-bottom: 1px solid var(--lp-borda-cor); }
  .tab-cartoes tr:last-child { border-bottom: 0; }
  .tab-cartoes td { display: block; padding: 0; border: 0; max-width: none !important; }
  .tab-cartoes .tc-n { grid-column: 1; font-size: var(--lp-fs-md, 1rem); }
  .tab-cartoes .tc-st { grid-column: 2; grid-row: 1; justify-self: end; }
  .tab-cartoes .tc-d { grid-column: 1 / -1; }
  .tab-cartoes .tc-d .desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .tab-cartoes .tc-f, .tab-cartoes .tc-s { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
  .tab-cartoes .tc-f::before, .tab-cartoes .tc-s::before { content: attr(data-r); color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }
  .tab-cartoes .tc-f::before, .tab-cartoes .tc-s::before { white-space: nowrap; margin-right: auto; }
  .tab-cartoes .tc-f .carimbo { order: 1; width: 100%; text-align: right; margin: 0; }
  .tab-cartoes .tc-f { flex-wrap: wrap; }
}
.cv-dica { position: absolute; z-index: 5; min-width: 170px; padding: 10px 12px; border-radius: var(--lp-raio); background: var(--lp-preto); color: var(--lp-claro); border: 1px solid rgba(255,255,255,.18); font-size: 12px; line-height: 1.5; pointer-events: none; box-shadow: var(--lp-sombra-2); }

/* situação */
.sgbar { display: flex; gap: 3px; height: 44px; border-radius: 10px; overflow: hidden; }
.sg { border: 0; min-width: 28px; display: grid; place-items: center; font: 800 14px var(--lp-font-base); cursor: pointer; color: var(--lp-preto); }
.sg--ABERTA { background: var(--lp-texto-fraco); color: var(--lp-bg-alt); }
.sg--EM-ANDAMENTO { background: var(--pt-alerta); color: var(--lp-bg-alt); }
.sg--ORCADA { background: var(--lp-verde-claro); }
.sg--SANEADA { background: var(--lp-verde); }
.sg--CANCELADA { background: var(--lp-borda-forte); color: var(--lp-texto); }
.sglist { list-style: none; margin: var(--lp-s-4) 0 0; padding: 0; display: grid; gap: 2px; }
.sglist button { width: 100%; display: grid; grid-template-columns: 16px 1fr auto 46px; gap: 10px; align-items: center; padding: 8px 6px; border: 0; background: none; border-radius: 8px; color: var(--lp-texto); font: 600 var(--lp-fs-sm) var(--lp-font-base); cursor: pointer; text-align: left; }
.sglist button:hover { background: var(--lp-verde-10); }
.sglist i { width: 12px; height: 12px; border-radius: 3px; }
.sglist em { font-style: normal; color: var(--lp-texto-suave); text-align: right; font-variant-numeric: tabular-nums; }
.pt-ABERTA { background: var(--lp-texto-fraco); } .pt-EM-ANDAMENTO { background: var(--pt-alerta); } .pt-ORCADA { background: var(--lp-verde-claro); } .pt-SANEADA { background: var(--lp-verde); } .pt-CANCELADA { background: var(--lp-borda-forte); }
.cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: var(--lp-s-4); padding-top: var(--lp-s-4); border-top: 1px solid var(--lp-borda-cor); }
.cats div { display: grid; gap: 2px; }
.cats span { font-size: var(--lp-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--lp-texto-suave); }
.cats strong { font-size: var(--lp-fs-xl); line-height: 1.1; }
.cats small { color: var(--lp-texto-suave); }

/* HH por disciplina */
.hd { display: grid; gap: 4px; margin-bottom: 14px; }
.hd-n { display: flex; justify-content: space-between; gap: 10px; font-size: var(--lp-fs-sm); }
.hd-n span { color: var(--lp-texto-suave); font-variant-numeric: tabular-nums; white-space: nowrap; }
.hd-b { height: 9px; border-radius: 99px; background: var(--lp-superficie-2); overflow: hidden; }
.hd-b span { display: block; height: 100%; border-radius: inherit; }
.b-prev { background: var(--lp-verde-medio); } .b-gasto { background: var(--lp-destaque); } .b-estouro { background: var(--pt-erro); }

/* cronograma */
.gt-wrap { overflow: auto; border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-superficie); max-height: 74vh; }
.gt { position: relative; }
.gt-row { display: grid; grid-template-columns: 190px minmax(0, 1fr); border-bottom: 1px solid var(--lp-borda-cor); cursor: pointer; }
.gt-row:hover { background: var(--lp-verde-10); }
.gt-cab { position: sticky; top: 0; z-index: 3; background: var(--lp-superficie-2); cursor: default; }
.gt-cab:hover { background: var(--lp-superficie-2); }
.gt-lab { position: sticky; left: 0; z-index: 2; padding: 8px 10px; font-size: var(--lp-fs-xs); display: flex; gap: 6px; align-items: baseline; overflow: hidden; border-right: 1px solid var(--lp-borda-cor); background-color: var(--lp-superficie); }
.gt-cab .gt-lab { background-color: var(--lp-superficie-2); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--lp-texto-fraco); }
.gt-lab span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--lp-texto-suave); }
.gt-trk { position: relative; min-height: 38px; }
.gt-cab .gt-trk { min-height: 32px; }
.gt-mes { position: absolute; top: 8px; transform: translateX(4px); font-size: 11px; font-weight: 700; color: var(--lp-texto-fraco); border-left: 1px solid var(--lp-borda-forte); padding-left: 4px; height: 100%; }
.gt-hoje { position: absolute; top: 0; bottom: 0; width: 0; border-left: 2px dashed var(--pt-erro); z-index: 1; pointer-events: none; }
.gt-hoje b { position: absolute; top: 6px; left: 4px; font-size: 10px; color: var(--pt-erro); }
.gt-bar { position: absolute; top: 7px; height: 16px; border-radius: 5px; background: var(--lp-verde-10); border: 2px solid var(--lp-destaque); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.gt-bar i { font-style: normal; font-size: 10px; font-weight: 700; color: var(--lp-texto); white-space: nowrap; padding: 0 4px; }
.gt-bar--atraso { border-color: var(--pt-erro); background: rgba(214,69,69,.14); }
.gt-real { position: absolute; top: 25px; height: 6px; border-radius: 3px; background: var(--lp-destaque); }

/* equipe e valores */
.fn-nova { display: grid; grid-template-columns: minmax(180px, 2fr) minmax(140px, 1fr) auto; gap: var(--lp-s-3); align-items: end; }
.fn-tab .lp-input { min-height: 38px; }
.fn-tab .num-in { text-align: right; max-width: 150px; margin-left: auto; }
.eq { display: grid; gap: var(--lp-s-3); }
.eq-lin { display: grid; grid-template-columns: minmax(0, 2fr) 66px 76px minmax(84px, 1.1fr) 36px; gap: 8px; align-items: end; padding: 10px; border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio); background: var(--lp-superficie-2); }
.eq-lin .lp-input { min-height: 40px; padding-inline: 8px; min-width: 0; width: 100%; }
.gaveta__bloco, .gaveta .lp-campo { min-width: 0; }
.eq-n { display: grid; gap: 2px; font-size: 11px; font-weight: 700; color: var(--lp-texto-suave); text-transform: uppercase; letter-spacing: .05em; }
.eq-t { display: grid; font-size: var(--lp-fs-xs); text-align: right; line-height: 1.3; }
.eq-t b { font-size: var(--lp-fs-sm); } .eq-t small { color: var(--lp-texto-suave); }
.eq-tot { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: var(--lp-raio); background: var(--lp-verde-10); border: 1px solid var(--lp-verde-20); font-size: var(--lp-fs-sm); }
.g-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: 8px; }
.gr { padding: 10px 12px; border-radius: var(--lp-raio); border: 1px solid var(--lp-borda-cor); background: var(--lp-superficie); display: grid; gap: 2px; }
.gr span { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--lp-texto-suave); }
.gr strong { font-size: var(--lp-fs-base); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.gr--neg strong { color: var(--pt-erro); }

@media (max-width: 900px) {
  .fn-nova { grid-template-columns: 1fr 1fr; } .fn-nova .lp-btn { grid-column: 1 / -1; }
  .eq-lin { grid-template-columns: 1fr 1fr; } .eq-lin .eq-f { grid-column: 1 / -1; } .eq-t { text-align: left; } .eq-lin .eq-del { justify-self: end; }
  .gt-row { grid-template-columns: 130px minmax(0, 1fr); }
  .fn-tab td[data-l]::before { content: attr(data-l); display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--lp-texto-suave); }
  .fn-tab .num-in { max-width: none; } .fn-tab td.num { text-align: left; } .fn-tab tfoot, .fn-tab tfoot tr, .fn-tab tfoot td { display: block; text-align: left; border: 0; }
  .cats { grid-template-columns: 1fr; }
}

.plano-t { white-space: nowrap; }
.pt td .plano-t + .fraco { white-space: nowrap; }


/* lema da marca, com a barra vertical verde usada nos criativos */
.lg__texto .lg__lema { border-left: 3px solid var(--lp-verde); padding-left: 14px; margin: 0 0 var(--lp-s-4); color: var(--lp-texto); font-weight: 700; font-size: var(--lp-fs-lg); line-height: 1.3; max-width: 30ch; }

.fn-prev { margin: 0; padding-left: 18px; display: grid; gap: 4px; font-size: var(--lp-fs-sm); }

/* ============ Tutorial ============ */
.tut-ov { position: fixed; inset: 0; z-index: 150; background: rgba(13,13,13,.72); display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; transition: opacity .22s; }
.tut-ov.on { opacity: 1; }
.tut { width: min(1100px, 100%, max(360px, calc((100dvh - 440px) * 1.7778))); max-height: 100%; overflow: auto; display: flex; flex-direction: column; background: var(--lp-bg-alt); color: var(--lp-texto); border: 1px solid var(--lp-borda-forte); border-radius: var(--lp-raio-lg); box-shadow: var(--lp-sombra-3); transform: translateY(12px); transition: transform .25s var(--lp-ease); }
.tut-ov.on .tut { transform: none; }
.tut-h { background: var(--lp-preto); color: var(--lp-claro); padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 3px solid var(--lp-verde); }
.tut-ey { font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--lp-verde); font-weight: 700; }
.tut-ti { font-size: var(--lp-fs-lg); font-weight: 800; margin-top: 2px; }
.tut-x { background: none; border: 1px solid rgba(255,255,255,.25); color: #D6D6D6; border-radius: 8px; padding: 7px 12px; font: 700 11px var(--lp-font-base); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.tut-x:hover { color: #fff; border-color: var(--lp-verde); }
.tut-secs { display: flex; gap: 4px; padding: 8px 14px 0; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--lp-borda-cor); }
.tut-secs button { border: 0; background: none; padding: 9px 12px; font: 700 var(--lp-fs-sm) var(--lp-font-base); color: var(--lp-texto-suave); cursor: pointer; border-bottom: 3px solid transparent; white-space: nowrap; margin-bottom: -1px; }
.tut-secs button[aria-selected="true"] { color: var(--lp-texto); border-bottom-color: var(--lp-verde); }
.tut-st { position: relative; background: var(--lp-preto); overflow: hidden; aspect-ratio: 1440 / 810; flex: none; }
.tut-st img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top left; opacity: 0; transition: opacity .3s; }
.tut-st img.on { opacity: 1; }
.tut-sp { position: absolute; border: 3px solid var(--lp-verde); border-radius: 10px; box-shadow: 0 0 0 9999px rgba(13,13,13,.5); transition: all .4s cubic-bezier(.4,.1,.2,1); pointer-events: none; }
.tut-sp::after { content: ""; position: absolute; inset: -8px; border: 2px solid rgba(97,191,54,.6); border-radius: 14px; animation: tutp 1.6s ease-out infinite; }
@keyframes tutp { 0% { opacity: 1; transform: scale(.98); } 100% { opacity: 0; transform: scale(1.05); } }
.tut-sp.none { box-shadow: none; border-color: transparent; } .tut-sp.none::after { display: none; }
.tut-num { position: absolute; left: 12px; top: 10px; z-index: 2; background: var(--lp-verde); color: var(--lp-preto); font: 800 12px var(--lp-font-base); letter-spacing: .06em; padding: 4px 9px; border-radius: 6px; }
.tut-b { padding: 16px 22px 18px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; }
.tut-txt { min-height: 150px; }
.tut-tag { font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--lp-destaque); font-weight: 800; }
.tut-b h3 { margin: 4px 0 0; font-size: var(--lp-fs-xl); line-height: 1.15; }
.tut-b p { margin: 8px 0 0; font-size: var(--lp-fs-sm); line-height: 1.6; color: var(--lp-texto-suave); max-width: 66ch; }
.tut-b p b { color: var(--lp-texto); }
.tut-nav { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.tut-dots { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; max-width: 280px; }
.tut-dots button { width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; background: var(--lp-borda-forte); cursor: pointer; transition: all .2s; }
.tut-dots button.on { background: var(--lp-verde); width: 22px; border-radius: 5px; }
.tut-arr { display: flex; gap: 8px; }
.tut-arr button { border-radius: 8px; padding: 10px 18px; font: 700 12px var(--lp-font-base); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; border: 1px solid var(--lp-borda-forte); background: var(--lp-superficie); color: var(--lp-texto); }
.tut-arr button:disabled { opacity: .35; cursor: default; }
.tut-arr .nx { background: var(--lp-verde); border-color: var(--lp-verde); color: var(--lp-preto); }
.tut-f { border-top: 1px solid var(--lp-borda-cor); padding: 10px 22px 12px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); }
.tut-f label { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; }
.tut-f input { accent-color: var(--lp-verde); width: 16px; height: 16px; }
@media (max-width: 760px) { .tut { width: 100%; } .tut-b { grid-template-columns: 1fr; } .tut-nav { align-items: stretch; } .tut-dots { justify-content: center; max-width: none; } .tut-arr button { flex: 1; } .tut-txt { min-height: 0; } .tut-b h3 { font-size: var(--lp-fs-lg); } .tut-f span { display: none; } }
@media (prefers-reduced-motion: reduce) { .tut-ov, .tut, .tut-st img, .tut-sp { transition: none; } .tut-sp::after { animation: none; } }

/* ===== base multiprojeto ===== */
.barra-projeto { display: flex; align-items: center; gap: 12px; padding: 8px clamp(16px, 3vw, 40px); border-bottom: 1px solid var(--lp-borda-cor); background: var(--lp-superficie-2); }
.barra-projeto[hidden] { display: none; }
.barra-projeto__rot { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--lp-texto-suave); flex: none; }
.barra-projeto .fdrop__painel { width: 340px; }
.barra-projeto .fdrop > button { min-height: 38px; max-width: min(70vw, 460px); }
.fdrop--um > button { justify-content: space-between; min-width: 180px; }
.fdrop__txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.fdrop__txt--vazio { font-weight: 500; color: var(--lp-texto-fraco); }
.fdrop--um .fdrop__lista label.is-on { background: var(--lp-verde-10); }
.fdrop--um .fdrop__lista .t small { display: block; color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); }
.fdrop--um .fdrop__lista input[type=radio] { accent-color: var(--lp-verde); }
@media (max-width: 900px) { .barra-projeto { position: sticky; top: max(59px, calc(var(--h-topo, 60px) - 1px)); z-index: 19; padding: 8px 16px; } .barra-projeto .fdrop { flex: 1; min-width: 0; } .barra-projeto .fdrop > button { width: 100%; max-width: none; } }

.proj-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--lp-s-4); }
.proj-card { display: grid; gap: 14px; padding: var(--lp-s-5); border-radius: var(--lp-raio-lg); border: 1px solid var(--lp-borda-cor); background: var(--lp-superficie); cursor: pointer; transition: border-color .15s, transform .15s; }
.proj-card:hover, .proj-card:focus-visible { border-color: var(--lp-verde); transform: translateY(-2px); outline: none; }
.proj-card--mudo { opacity: .72; }
.proj-mods { display: flex; flex-wrap: wrap; gap: 6px; }
.sem-modulo { display: none !important; }
.rd-lin { display: grid; grid-template-columns: minmax(120px, 1.2fr) 2fr auto; gap: 10px; align-items: center; margin: 6px 0; } .rd-lin strong { min-width: 64px; text-align: right; }
.pg-item { background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-left: 4px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 12px 14px; margin: 8px 0; display: grid; gap: 8px; } .pg-item.is-ok { border-left-color: var(--lp-verde); }
.pg-item__t { display: grid; gap: 2px; } .pg-item__g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; align-items: end; } .pg-item__d { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .pg-item__d[hidden] { display: none; } .pg-item__c { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; padding-top: 8px; border-top: 1px dashed var(--lp-borda-cor); font-size: var(--lp-fs-sm); }
@media (max-width: 640px) { .pg-item__g { grid-template-columns: 1fr 1fr; } .pg-item__d { grid-template-columns: 1fr; } }
.rd-barra { height: 10px; border-radius: 99px; background: var(--lp-borda-cor); overflow: hidden; } .rd-barra span { display: block; height: 100%; border-radius: 99px; }
@media (max-width: 640px) { .rd-lin { grid-template-columns: 1fr auto; } .rd-lin .rd-barra { grid-column: 1 / -1; order: 3; } }
.pj-mods { display: grid; gap: 8px; margin: 6px 0 4px; }
.pj-mod { display: flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 500; }
.proj-card header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.proj-card h4 { margin: 2px 0 0; font-size: var(--lp-fs-lg); line-height: 1.25; overflow-wrap: anywhere; }
.proj-cli { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--lp-texto-suave); }
.proj-st { flex: none; padding: 4px 10px; border-radius: 99px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; border: 1px solid transparent; }
.proj-st--ok { background: var(--lp-verde-10); color: var(--lp-destaque); border-color: var(--lp-verde-20); }
.proj-st--atencao { background: rgba(224,160,32,.16); color: var(--pt-alerta); border-color: rgba(224,160,32,.4); }
.proj-st--atrasado { background: rgba(214,69,69,.14); color: var(--pt-erro); border-color: rgba(214,69,69,.4); }
.proj-st--vazio, .proj-st--mudo { background: var(--lp-superficie-2); color: var(--lp-texto-suave); border-color: var(--lp-borda-cor); }
.proj-barra__t { display: flex; justify-content: space-between; gap: 8px; font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); margin-bottom: 8px; }
.proj-barra__t b { color: var(--lp-texto); }
.proj-vazio { margin: 0; font-size: var(--lp-fs-sm); color: var(--lp-texto-fraco); }
.proj-nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.proj-nums > div { padding: 8px 10px; border-radius: var(--lp-raio); background: var(--lp-superficie-2); display: grid; gap: 2px; }
.proj-nums strong { font-size: var(--lp-fs-lg); font-variant-numeric: tabular-nums; }
.proj-nums small { font-size: 11px; color: var(--lp-texto-suave); }
.proj-nums .is-alerta strong { color: var(--pt-erro); }
.proj-card footer { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); }
.proj-abrir { font-weight: 800; color: var(--lp-destaque); }

/* tela de projetos e clientes */
.pj-cli { border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-superficie); overflow: hidden; }
.pj-cli__cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; background: var(--lp-superficie-2); border-bottom: 1px solid var(--lp-borda-cor); }
.pj-cli__cab h3 { margin: 0; font-size: var(--lp-fs-lg); }
.pj-cli__cab small { color: var(--lp-texto-suave); }
.pj-lista { display: grid; }
.pj-lin { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; align-items: center; padding: 12px 18px; border-bottom: 1px solid var(--lp-borda-cor); }
.pj-lin:last-child { border-bottom: 0; }
.pj-lin h4 { margin: 0; font-size: var(--lp-fs-base); overflow-wrap: anywhere; }
.pj-lin small { color: var(--lp-texto-suave); }
.pj-lin .btns { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.pj-vazio { padding: 14px 18px; color: var(--lp-texto-fraco); font-size: var(--lp-fs-sm); }
@media (max-width: 560px) { .pj-lin { grid-template-columns: 1fr; } .pj-lin .btns { justify-content: flex-start; } }

/* ===== fundo com grafismos da marca (malha blueprint, grade de pontos verdes e arcos), atrás dos cartões ===== */
.ap__principal { position: relative; isolation: isolate; --fd-linha: rgba(13, 13, 13, .055); --fd-ponto: .34; --fd-arco-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='760' height='760' viewBox='0 0 760 760' fill='none' stroke='%2361BF36' stroke-opacity='.62' stroke-width='1.4'%3E%3Ccircle cx='760' cy='760' r='300'/%3E%3Ccircle cx='760' cy='760' r='420' stroke-dasharray='6 10'/%3E%3Ccircle cx='760' cy='760' r='540'/%3E%3C/svg%3E"); }
[data-tema="escuro"] .ap__principal, [data-tema="grafite"] .ap__principal { --fd-linha: rgba(255, 255, 255, .045); --fd-ponto: .5; --fd-arco-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='760' height='760' viewBox='0 0 760 760' fill='none' stroke='%2361BF36' stroke-opacity='.8' stroke-width='1.4'%3E%3Ccircle cx='760' cy='760' r='300'/%3E%3Ccircle cx='760' cy='760' r='420' stroke-dasharray='6 10'/%3E%3Ccircle cx='760' cy='760' r='540'/%3E%3C/svg%3E"); }
.ap__principal::before {
  content: ""; position: fixed; z-index: -1; pointer-events: none; top: 0; right: 0; bottom: 0; left: var(--pt-lat);
  background-image:
    var(--fd-arco-img),
    linear-gradient(var(--fd-linha) 1px, transparent 1px),
    linear-gradient(90deg, var(--fd-linha) 1px, transparent 1px);
  background-repeat: no-repeat, repeat, repeat; background-size: 760px 760px, 48px 48px, 48px 48px; background-position: right bottom, -1px -1px, -1px -1px;
  -webkit-mask-image: linear-gradient(160deg, #000 0%, rgba(0,0,0,.55) 45%, #000 100%); mask-image: linear-gradient(160deg, #000 0%, rgba(0,0,0,.55) 45%, #000 100%);
}
.ap__principal::after { /* grade de pontos no canto superior direito, abaixo do cabeçalho */
  content: ""; position: fixed; z-index: -1; pointer-events: none; top: 52vh; right: clamp(16px, 3vw, 40px); width: 160px; height: 96px; opacity: var(--fd-ponto);
  background-image: radial-gradient(var(--lp-verde) 1.5px, transparent 1.7px); background-size: 16px 16px;
}
@media (max-width: 900px) { .ap__principal::before { left: 0; background-size: 440px 440px, 40px 40px, 40px 40px; } .ap__principal::after { top: 58vh; width: 96px; height: 72px; } }
@media print { .ap__principal::before, .ap__principal::after { display: none; } }

/* ===== grafismos mais presentes: aparecem também por trás do cabeçalho e dos cartões (que ficam levemente translúcidos) ===== */
.ap__principal { --fd-linha: rgba(13, 13, 13, .09); --fd-ponto: .6; }
[data-tema="escuro"] .ap__principal, [data-tema="grafite"] .ap__principal { --fd-linha: rgba(255, 255, 255, .075); --fd-ponto: .75; }
.ap__principal::before { background-size: 840px 840px, 48px 48px, 48px 48px; -webkit-mask-image: none; mask-image: none; }
.ap__principal::after { top: 46vh; width: 192px; height: 112px; }
@supports (background: color-mix(in srgb, red 50%, transparent)) {
  .ap__topo { background: color-mix(in srgb, var(--lp-bg-alt) 80%, transparent); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
  .lp-card, .lp-kpi, .proj-card, .ferr, .pj-cli { background-color: color-mix(in srgb, var(--lp-superficie) 91%, transparent); }
}
.ap__topo::after { /* pontos verdes sempre visíveis no cabeçalho */
  content: ""; position: absolute; z-index: -1; pointer-events: none; right: 300px; top: 12px; width: 112px; height: 48px; opacity: var(--fd-ponto);
  background-image: radial-gradient(var(--lp-verde) 1.5px, transparent 1.7px); background-size: 16px 16px;
}
@media (max-width: 900px) { .ap__topo::after { right: 150px; top: 8px; width: 64px; height: 40px; } .ap__principal::before { background-size: 520px 520px, 40px 40px, 40px 40px; } .ap__principal::after { top: 40vh; } }

/* ---------- Planejamento (look-ahead de 6 semanas, plano semanal, PPC) ---------- */
.lk-nav { display: flex; gap: 8px; }
.lk-tab th.lk-sem { text-align: center; white-space: nowrap; }
.lk-tab th.lk-sem span { display: block; font-weight: 500; font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); }
.lk-tab .lk-hoje { background: color-mix(in srgb, var(--lp-verde) 12%, transparent); }
.lk-tab .lk-passada { background: color-mix(in srgb, var(--lp-texto) 4%, transparent); }
.lk-tab td.lk-cel { text-align: center; padding: 6px 4px; }
.lk-ativ { min-width: 240px; }
.lk-cod { font-family: var(--lp-font-mono); font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); }
.lk-rs { min-width: 230px; }
.lk-chips { display: flex; gap: 4px; flex-wrap: wrap; }
.lk-r { border: 1px dashed var(--lp-borda-forte); background: transparent; color: var(--lp-texto-suave); border-radius: 6px; padding: 3px 7px; font-size: var(--lp-fs-xs); font-weight: 700; cursor: pointer; min-width: 40px; }
.lk-r[data-v="ok"] { border: 1px solid var(--lp-verde); background: color-mix(in srgb, var(--lp-verde) 18%, transparent); color: var(--lp-texto); }
.lk-r[data-v="pend"] { border: 1px solid var(--pt-erro, var(--lp-erro)); background: color-mix(in srgb, var(--lp-erro) 14%, transparent); color: var(--pt-erro, var(--lp-erro)); }
.lk-r:disabled, .lk-c:disabled { cursor: default; }
.lk-c { width: 32px; height: 32px; border-radius: 8px; border: 1px dashed var(--lp-borda-forte); background: transparent; color: var(--lp-texto); font-weight: 800; font-size: var(--lp-fs-xs); cursor: pointer; display: inline-grid; place-items: center; }
.lk-c[data-s="p"] { border: 2px solid var(--lp-verde); background: color-mix(in srgb, var(--lp-verde) 12%, transparent); }
.lk-c[data-s="c"] { border: 2px solid var(--lp-verde); background: var(--lp-verde); color: var(--lp-preto); }
.lk-c .lp-ico { width: 18px; height: 18px; }
.lk-ok { color: var(--lp-verde-texto, var(--lp-verde)); }
.lk-at { color: var(--pt-alerta, var(--lp-alerta)); }
.lk-ruim { color: var(--pt-erro, var(--lp-erro)); }
.lk-tab tfoot td { border-top: 2px solid var(--lp-borda-forte); }
.lk-resumo { display: grid; gap: 8px; padding: var(--lp-s-4); margin-bottom: var(--lp-s-4); }
.lk-barra { display: grid; grid-template-columns: minmax(120px, 220px) 1fr 32px; gap: 10px; align-items: center; font-size: var(--lp-fs-sm); }
.lk-bw { background: var(--lp-superficie-2); border-radius: 99px; height: 10px; overflow: hidden; }
.lk-bw span { display: block; height: 100%; background: var(--lp-verde); border-radius: 99px; }
.lk-bn { text-align: right; font-weight: 700; }

/* ======================= Gestão LPS ======================= */
.lps-ok { color: var(--lp-destaque); font-weight: 700; } .lps-at { color: var(--pt-alerta); font-weight: 700; } .lps-ruim { color: var(--pt-erro); font-weight: 700; }
.lps-chip { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: var(--lp-fs-xs); font-weight: 700; letter-spacing: .02em; border: 1px solid var(--lp-borda-forte); color: var(--lp-texto-suave); white-space: nowrap; background: var(--lp-superficie); line-height: 1.35; }
.lps-chip--ok { background: var(--lp-verde-10); border-color: var(--lp-verde-20); color: var(--lp-destaque); }
.lps-chip--at { background: rgba(227, 160, 8, .14); border-color: rgba(227, 160, 8, .4); color: var(--pt-alerta); }
.lps-chip--ruim { background: rgba(192, 57, 43, .12); border-color: rgba(192, 57, 43, .4); color: var(--pt-erro); }
.lps-ind { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin-bottom: var(--lp-s-5); }
.lps-kpi--ok .lp-kpi__valor { color: var(--lp-destaque); } .lps-kpi--at .lp-kpi__valor { color: var(--pt-alerta); } .lps-kpi--ruim .lp-kpi__valor { color: var(--pt-erro); }
.lps-kpi small { display: block; color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); margin-top: 4px; line-height: 1.5; }
.lps-grade2 { margin-bottom: var(--lp-s-5); }
.lps-filtros { margin-bottom: var(--lp-s-4); }
.lps-sel-semana { min-width: 240px; }
.lps-graf { width: 100%; height: auto; display: block; }
.lps-graf .g-grade { stroke: var(--lp-borda-cor); stroke-width: 1; }
.lps-graf .g-eixo { fill: var(--lp-texto-fraco); font-size: 11px; font-family: inherit; }
.lps-graf .g-linha { fill: none; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.lps-graf .g-trac { stroke-dasharray: 6 5; stroke-width: 2; }
.lps-leg { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); }
.lps-leg__i { display: inline-flex; align-items: center; gap: 6px; } .lps-leg__c { width: 18px; height: 4px; border-radius: 2px; display: inline-block; } .lps-leg__c--trac { height: 0; border-top: 3px dashed; background: none !important; border-color: var(--pt-erro); }
.lps-tab { max-height: none; margin-bottom: var(--lp-s-4); }
.lps-tabela td, .lps-tabela th { padding: 10px 12px; } .lps-tabela td.ctr, .lps-tabela th.ctr { text-align: center; } .lps-tabela td.acao { white-space: nowrap; text-align: right; }
.lps-tabela .sub { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); margin-top: 2px; font-weight: 400; max-width: 46ch; }
.lps-tabela tr.lps-venc td:first-child { box-shadow: inset 3px 0 0 var(--pt-erro); }
.lps-bloco { margin-bottom: var(--lp-s-5); }
.lps-qtd { width: 92px; min-height: 34px; text-align: right; padding: 4px 8px; }
.lps-motivo { text-decoration: underline dotted; }
.lps-vazio { text-align: center; padding: 48px var(--lp-s-5); display: grid; gap: 12px; justify-items: center; } .lps-vazio p { max-width: 60ch; color: var(--lp-texto-suave); margin: 0; }
.lps-form__grade { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; } .lps-campo { display: grid; gap: 4px; align-content: start; min-width: 0; } .lps-campo--inteira { grid-column: 1 / -1; }
.lps-campo label { font-size: var(--lp-fs-xs); font-weight: 700; color: var(--lp-texto-suave); } .lps-campo .lp-input { width: 100%; } .lps-ro { padding: 10px 12px; border-radius: var(--lp-raio); background: var(--lp-superficie-2); color: var(--lp-texto-suave); }
.modal__rod { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; flex-wrap: wrap; } .modal__cab { margin-bottom: 12px; }
#modal:has(.lps-form) { width: min(720px, 100%); max-height: 92vh; overflow: auto; }
.lps-drop { display: grid; gap: 6px; justify-items: center; padding: 34px 20px; border: 2px dashed var(--lp-borda-forte); border-radius: var(--lp-raio-lg); cursor: pointer; text-align: center; transition: border-color .15s, background .15s; }
.lps-drop:hover, .lps-drop.is-arrasta { border-color: var(--lp-verde); background: var(--lp-verde-10); } .lps-drop svg { width: 28px; height: 28px; color: var(--lp-destaque); }
.lps-up { margin-bottom: var(--lp-s-5); } .lps-av { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: var(--lp-fs-sm); } .lps-av--g { color: var(--pt-erro); }
.lps-confirma { display: flex; gap: 10px; margin: var(--lp-s-4) 0; flex-wrap: wrap; }
#im-prev .lp-card { margin-bottom: var(--lp-s-5); }
/* matriz de prontidão */
.lps-matriz td, .lps-matriz th { padding: 8px 6px; } .lps-matriz th.ctr { font-size: 10px; }
.pr-c { width: 36px; height: 28px; border-radius: 6px; border: 1px solid var(--lp-borda-forte); background: var(--lp-superficie); color: var(--lp-texto-suave); font: 700 11px inherit; cursor: pointer; padding: 0; }
.pr-c--v { border-style: dashed; } .pr-c--s { background: var(--lp-verde-10); border-color: var(--lp-verde); color: var(--lp-destaque); } .pr-c--n { background: rgba(192, 57, 43, .14); border-color: var(--pt-erro); color: var(--pt-erro); } .pr-c--na { background: var(--lp-superficie-2); }
.pr-c:disabled { cursor: default; }
/* cronograma */
.lps-crono td { padding: 6px 10px; } .lps-crono .cr-nome { white-space: nowrap; min-width: 280px; max-width: 420px; overflow: hidden; text-overflow: ellipsis; } .lps-crono tr.cr-res td { font-weight: 700; background: var(--lp-superficie-2); }
.cr-tog { width: 20px; height: 20px; margin-right: 6px; border: 1px solid var(--lp-borda-forte); border-radius: 4px; background: var(--lp-superficie); color: var(--lp-texto); cursor: pointer; line-height: 1; padding: 0; font-weight: 700; } .cr-tog--v { border-color: transparent; background: none; display: inline-block; cursor: default; vertical-align: middle; }
.cr-gantt { min-width: 520px; width: 46%; padding: 0 !important; } .cr-meses { position: relative; height: 16px; } .cr-meses span { position: absolute; top: 0; font-size: 10px; font-weight: 700; color: var(--lp-texto-fraco); text-transform: none; letter-spacing: 0; }
.cr-trk { position: relative; height: 22px; } .cr-bar { position: absolute; top: 5px; height: 12px; border-radius: 3px; background: var(--lp-borda-forte); overflow: hidden; } .cr-bar--res { top: 8px; height: 6px; background: var(--lp-texto-fraco); } .cr-bar__real { display: block; height: 100%; background: var(--lp-verde); }
.cr-hoje { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--pt-erro); opacity: .7; }
/* linha de balanço */
.ldb-wrap { max-height: 70vh; } .ldb { border-collapse: separate; border-spacing: 0; font-size: 11px; } .ldb th, .ldb td { padding: 0; }
.ldb-f { position: sticky; left: 0; z-index: 2; background: var(--lp-superficie); min-width: 210px; max-width: 260px; padding: 6px 10px !important; text-align: left; font-weight: 600; white-space: nowrap; border-right: 1px solid var(--lp-borda-forte); border-bottom: 1px solid var(--lp-borda-cor); }
.ldb thead tr:first-child th { position: sticky; top: 0; z-index: 3; background: var(--lp-superficie-2); } .ldb thead tr:nth-child(2) th { position: sticky; top: 26px; z-index: 3; background: var(--lp-superficie-2); } .ldb thead .ldb-f { z-index: 4; }
.ldb-s { min-width: 24px; height: 24px; font-weight: 700; color: var(--lp-texto-fraco); vertical-align: bottom; text-align: center; position: relative; } .ldb-s span { display: block; } .ldb-m { position: absolute; top: 2px; left: 2px; font-size: 10px; color: var(--lp-texto); white-space: nowrap; }
.ldb-c { min-width: 24px; height: 28px; border-bottom: 1px solid var(--lp-borda-cor); border-right: 1px solid var(--lp-borda-cor); } .ldb-hoje { box-shadow: inset 2px 0 0 var(--pt-erro), inset -2px 0 0 var(--pt-erro); }
.ldb-gf { background: var(--lp-superficie-2) !important; font-weight: 700; } .ldb-gband { background: var(--lp-superficie-2); border-bottom: 1px solid var(--lp-borda-cor); } .ldb-mes { text-align: left; padding: 4px 6px !important; font-size: 11px; color: var(--lp-texto); border-left: 1px solid var(--lp-borda-cor); } .ldb-q { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
@media (max-width: 900px) {
  .tabela-rolagem.lps-tab { display: block; } .lps-form__grade { grid-template-columns: 1fr; } .lps-sel-semana { min-width: 0; width: 100%; }
  .lps-ind { grid-template-columns: repeat(2, 1fr); } .cr-gantt { display: none; }
}

/* Gestão LPS: guia de importação e densidade (compacta é o padrão; "confortável" devolve o espaçamento largo) */
.lps-guia { border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-superficie); margin: var(--lp-s-3) 0 var(--lp-s-4); }
.lps-guia summary { cursor: pointer; padding: 10px 14px; font-weight: 700; font-size: var(--lp-fs-sm); display: flex; align-items: center; gap: 8px; list-style: none; color: var(--lp-texto-suave); }
.lps-guia summary::-webkit-details-marker { display: none; } .lps-guia[open] summary { color: var(--lp-texto); border-bottom: 1px solid var(--lp-borda-cor); }
.lps-guia__corpo { padding: 12px 14px 14px; display: grid; gap: 8px; font-size: var(--lp-fs-sm); } .lps-guia__corpo p { margin: 0; max-width: 90ch; line-height: 1.55; } .lps-guia__bt { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.lps-dens { margin-left: auto; align-self: center; flex: none; } .lps-dens button { padding: 6px 10px !important; font-size: var(--lp-fs-xs) !important; border-bottom: 0 !important; border: 1px solid var(--lp-borda-forte) !important; border-radius: 99px; margin-left: 4px; }
.lps-dens button[aria-pressed="true"] { background: var(--lp-verde-10); border-color: var(--lp-verde) !important; color: var(--lp-destaque) !important; }
html:not([data-dens="confortavel"]) .lps-tabela td, html:not([data-dens="confortavel"]) .lps-tabela th { padding: 6px 10px; font-size: .8125rem; }
html:not([data-dens="confortavel"]) .lps-tabela th { font-size: .6875rem; }
html:not([data-dens="confortavel"]) .lps-ind { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--lp-s-3); }
html:not([data-dens="confortavel"]) .lps-ind .lp-kpi { padding: 12px 14px; gap: 4px; } html:not([data-dens="confortavel"]) .lps-ind .lp-kpi__valor { font-size: 1.3rem; } html:not([data-dens="confortavel"]) .lps-ind .lp-kpi__rotulo { font-size: .6875rem; }
html:not([data-dens="confortavel"]) .lps-bloco, html:not([data-dens="confortavel"]) #lps-aba .lp-card { padding: 14px 16px; }
html:not([data-dens="confortavel"]) .lps-tabela .sub { font-size: .6875rem; } html:not([data-dens="confortavel"]) .lps-chip { padding: 1px 8px; font-size: .6875rem; }
html:not([data-dens="confortavel"]) #lps-aba .cab-ferr h2 { font-size: 1.35rem; } html:not([data-dens="confortavel"]) .lps-ldb-c, html:not([data-dens="confortavel"]) .ldb-c { height: 22px; }
.lps-modelo { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--lp-borda-cor); } .lps-modelo .sub { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); max-width: 70ch; margin-top: 2px; }

.lps-barra { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--lp-borda-cor); margin: -4px 0 var(--lp-s-4); } .lps-barra .abas { flex: 1; min-width: 0; border-bottom: 0; margin: 0; } .lps-barra .lps-dens { margin-left: 0; white-space: nowrap; }
@media (max-width: 700px) { .lps-barra .lps-dens { display: none; } }

/* Tutorial em telas largas: a imagem fica à esquerda e o texto à direita, então o diálogo inteiro cabe na altura da janela (sem rolagem). */
@media (min-width: 761px) {
  .tut { --iw: min(720px, calc((100dvh - 235px) * 1.7778)); width: min(100%, calc(var(--iw) + 400px)); display: grid; grid-template-columns: var(--iw) minmax(0, 1fr); grid-template-rows: auto auto auto auto; overflow: hidden; }
  .tut-h, .tut-secs, .tut-f { grid-column: 1 / -1; } .tut-secs { padding-top: 4px; }
  .tut-st { grid-column: 1; grid-row: 3; } .tut-st img { object-fit: cover; }
  .tut-b { grid-column: 2; grid-row: 3; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; padding: 14px 18px; min-height: 0; max-height: calc(var(--iw) / 1.7778); overflow: auto; align-items: stretch; }
  .tut-txt { min-height: 0; } .tut-b h3 { font-size: var(--lp-fs-lg); } .tut-b p { max-width: none; font-size: 13px; line-height: 1.55; }
  .tut-nav { align-items: stretch; } .tut-dots { justify-content: flex-start; max-width: none; }
}

/* Janela que passa da borda da tela: usa só a parte visível */
.tut-ov { height: var(--visivel, 100dvh); bottom: auto; }
@media (min-width: 761px) { .tut { --iw: min(720px, calc((var(--visivel, 100dvh) - 235px) * 1.7778)); } }
.ap__conteudo { padding-bottom: calc(var(--lp-s-8, 48px) + var(--oculto, 0px)); }
/* Tutorial: o texto rola dentro da própria área e nunca passa por cima dos pontos e botões */
@media (min-width: 761px) {
  .tut-b { overflow: hidden; }
  .tut-txt { flex: 1 1 0; min-height: 0; overflow-y: auto; padding-right: 6px; }
  .tut-nav { flex: none; gap: 8px; }
  .tut-dots { gap: 4px; } .tut-dots button { width: 7px; height: 7px; } .tut-dots button.on { width: 18px; }
}
.lps-opcoes { display: grid; gap: 8px; margin-top: 10px; font-size: var(--lp-fs-sm); } .lps-opcoes label { display: flex; gap: 8px; align-items: center; cursor: pointer; } .lps-opcoes input { accent-color: var(--lp-verde); }
.lps-instr { margin-bottom: var(--lp-s-4); } .lps-instr h3 { margin: 0 0 8px; } .lps-instr p, .lps-instr li { max-width: 80ch; line-height: 1.6; }
.lps-fluxo { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; } .lps-fluxo__p { background: var(--lp-superficie-2); border: 1px solid var(--lp-borda-cor); border-radius: 99px; padding: 6px 12px; font-size: var(--lp-fs-sm); } .lps-fluxo__p b { color: var(--lp-destaque); margin-right: 4px; } .lps-fluxo__s { color: var(--lp-texto-fraco); }
.lps-cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; } .lps-cartao { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-superficie); text-decoration: none; color: inherit; } .lps-cartao:hover { border-color: var(--lp-verde); } .lps-cartao span { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); }
.btn-ic--mini { width: 26px; height: 26px; margin-left: 6px; vertical-align: middle; } .ldb-pin { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--lp-borda-forte); background: var(--lp-superficie); color: var(--lp-texto); border-radius: 99px; padding: 5px 12px; font: 600 12px inherit; cursor: pointer; } .ldb-pin.on { border-color: var(--lp-verde); background: var(--lp-verde-10); } .ldb-c--edita { cursor: crosshair; } .ldb-c--edita:hover { outline: 2px solid var(--lp-verde); outline-offset: -2px; }

.lps-link { background: none; border: 0; padding: 0; color: var(--lp-destaque); text-decoration: underline; cursor: pointer; font: inherit; }
/* celular: as tabelas largas da Gestão LPS viram cartões (cada célula com o nome da coluna em cima) */
@media (max-width: 600px) {
  .tabela-rolagem.lps-tab:has(.lps-tabela:not(.lps-matriz):not(.lps-crono)) { border: 0; background: none; overflow: visible; }
  .lps-tabela:not(.lps-matriz):not(.lps-crono) thead { display: none; } .lps-tabela:not(.lps-matriz):not(.lps-crono), .lps-tabela:not(.lps-matriz):not(.lps-crono) tbody, .lps-tabela:not(.lps-matriz):not(.lps-crono) tr, .lps-tabela:not(.lps-matriz):not(.lps-crono) td { display: block; width: 100%; }
  .lps-tabela:not(.lps-matriz):not(.lps-crono) tr { background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 10px 12px; margin-bottom: 10px; }
  .lps-tabela:not(.lps-matriz):not(.lps-crono) td { padding: 4px 0 !important; border: 0; text-align: left !important; font-size: .875rem; } .lps-tabela:not(.lps-matriz):not(.lps-crono) td:empty { display: none; }
  .lps-tabela:not(.lps-matriz):not(.lps-crono) td::before { content: attr(data-rot); display: block; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--lp-texto-fraco); font-weight: 700; } .lps-tabela:not(.lps-matriz):not(.lps-crono) td.acao { text-align: right !important; } .lps-tabela:not(.lps-matriz):not(.lps-crono) td.acao::before { display: none; }
  .lps-tabela:not(.lps-matriz):not(.lps-crono) td.ctr { text-align: left !important; }
}

/* ======================= Relatório fotográfico ======================= */
.fx-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.fx-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.fx-card { background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); overflow: hidden; cursor: pointer; display: flex; flex-direction: column; transition: border-color .15s, transform .15s; }
.fx-card:hover, .fx-card:focus-visible { border-color: var(--lp-verde); outline: none; transform: translateY(-1px); } .fx-card.is-sel { border-color: var(--lp-verde); box-shadow: 0 0 0 2px var(--lp-verde); }
.fx-card__img { position: relative; aspect-ratio: 4 / 3; background: #151515; } .fx-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fx-card__chk { position: absolute; top: 8px; left: 8px; width: 24px; height: 24px; border-radius: 50%; border: 2px solid #fff; background: rgba(0, 0, 0, .35); opacity: 0; transition: opacity .15s; } .fx-card:hover .fx-card__chk, .fx-card__chk.on { opacity: 1; } .fx-card__chk.on { background: var(--lp-verde); } .fx-card__chk.on::after { content: ""; position: absolute; left: 7px; top: 3px; width: 6px; height: 11px; border: solid #0D0D0D; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.fx-card__tag { position: absolute; left: 8px; bottom: 8px; background: rgba(0, 0, 0, .65); color: #fff; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; padding: 2px 8px; border-radius: 99px; }
.fx-card__txt { padding: 10px 12px 12px; display: grid; gap: 3px; font-size: var(--lp-fs-sm); } .fx-card__txt span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--lp-texto-suave); line-height: 1.4; } .fx-card__txt small { color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); }
html.fx-aberto { overflow: hidden; }
.fx { position: fixed; inset: 0; z-index: 170; background: rgba(8, 8, 8, .97); color: #f2f2f2; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.fx__topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 14px; padding-top: max(10px, env(safe-area-inset-top)); } .fx__cont { font-weight: 700; font-size: var(--lp-fs-sm); opacity: .85; }
.fx__acoes { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; } .fx__bt { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .06); color: #fff; border-radius: 99px; padding: 8px 14px; font: 600 13px inherit; cursor: pointer; } .fx__bt:hover { border-color: var(--lp-verde); } .fx__bt svg { width: 18px; height: 18px; }
.fx__palco { display: grid; grid-template-columns: 56px minmax(0, 1fr) 56px; align-items: center; min-height: 0; }
.fx__seta { background: none; border: 0; color: #fff; font-size: 52px; line-height: 1; cursor: pointer; opacity: .75; height: 100%; } .fx__seta:hover { opacity: 1; color: var(--lp-verde); }
.fx__img { min-height: 0; height: 100%; display: grid; place-items: center; overflow: hidden; } .fx__img img { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; user-select: none; -webkit-user-drag: none; } .fx__img--zoom { overflow: auto; place-items: start center; } .fx__img--zoom img { max-width: none; max-height: none; width: 180%; cursor: zoom-out; }
.fx__info { padding: 12px 18px 16px; padding-bottom: max(16px, env(safe-area-inset-bottom)); max-height: 30vh; overflow: auto; background: rgba(255, 255, 255, .05); border-top: 1px solid rgba(255, 255, 255, .12); font-size: var(--lp-fs-sm); line-height: 1.5; }
.fx__info p { margin: 4px 0 0; max-width: 100ch; } .fx__tit { font-weight: 700; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .fx__tit a { color: var(--lp-verde); } .fx__sug { color: #d6f0c8; } .fx__meta { opacity: .7; font-size: var(--lp-fs-xs); } .fx__leg { font-style: italic; }
.fx-novas { display: grid; gap: 8px; max-height: 38vh; overflow: auto; } .fx-nova { display: flex; gap: 10px; align-items: center; } .fx-nova img { width: 72px; height: 54px; object-fit: cover; border-radius: 6px; flex: none; background: #151515; } .fx-nova .lp-input { min-height: 38px; }
.fx-mini { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; } .fx-mini__f { padding: 0; border: 1px solid var(--lp-borda-forte); border-radius: 8px; overflow: hidden; width: 84px; height: 64px; cursor: pointer; background: #151515; } .fx-mini__f img { width: 100%; height: 100%; object-fit: cover; display: block; } .fx-mini__bt { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 700px) {
  .fx-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .fx-card__txt { padding: 8px 10px 10px; } .fx-card__chk { opacity: 1; }
  .fx__bt span { display: none; } .fx__bt { padding: 9px 11px; } .fx__palco { grid-template-columns: 34px minmax(0, 1fr) 34px; } .fx__seta { font-size: 38px; } .fx__info { max-height: 38vh; }
  .fx-acoes .lp-btn { flex: 1 1 auto; justify-content: center; }
}

/* janela Novas fotos / Editar foto: espaçamento entre campos */
.modal .lps-form { display: grid; gap: 14px; }
.modal .lps-campo { display: grid; gap: 6px; }
.modal .lps-campo > label { margin: 0; }
.fx-novas { gap: 10px; margin-top: 2px; }

/* Causas de não cumprimento: a lista de opções abre para fora da tabela, sem ficar cortada */
#lk-causas .lp-tabela-wrap { overflow: visible; }
#lk-causas .lp-tabela { table-layout: auto; width: 100%; }
#lk-causas .lp-tabela tbody tr:last-child td { padding-bottom: var(--lp-s-4); }

/* Planejamento: telas ligadas entre si */
.lps-liga { display: flex; gap: 8px; flex-wrap: wrap; align-items: stretch; margin: 0 0 var(--lp-s-4); }
.lps-liga__t { font-size: var(--lp-fs-xs); text-transform: uppercase; letter-spacing: .1em; color: var(--lp-texto-fraco); align-self: center; margin-right: 4px; }
.lps-liga__b { display: grid; gap: 1px; text-align: left; background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 7px 12px; cursor: pointer; color: inherit; font: inherit; }
.lps-liga__b strong { font-size: var(--lp-fs-sm); } .lps-liga__b span { font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); }
.lps-liga__b:hover, .lps-liga__b:focus-visible { border-color: var(--lp-verde); outline: none; }
@media (max-width: 700px) { .lps-liga { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; } .lps-liga__b { flex: none; } .lps-liga__t { display: none; } }

/* SAE: formulário de solicitação de alteração de escopo */
.se-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.se-card { display: grid; gap: 8px; background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 16px; color: inherit; text-decoration: none; }
.se-card:hover, .se-card:focus-visible { border-color: var(--lp-verde); outline: none; }
.se-card__n { font-weight: 800; font-size: var(--lp-fs-lg, 18px); display: flex; gap: 8px; align-items: center; } .se-chip { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 99px; background: rgba(97, 191, 54, .18); color: var(--lp-verde); }
.se-card__o { color: var(--lp-texto-suave); font-size: var(--lp-fs-sm); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.se-card__r { display: flex; justify-content: space-between; align-items: baseline; font-size: var(--lp-fs-sm); color: var(--lp-texto-fraco); } .se-card__r strong { color: var(--lp-texto); font-size: var(--lp-fs-md, 16px); }
.se-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.se-tot { position: sticky; top: 0; z-index: 4; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; background: var(--lp-fundo); padding: 10px 0; margin-bottom: 8px; }
.se-tot__i { background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 8px 12px; display: grid; gap: 2px; } .se-tot__i span { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); text-transform: uppercase; letter-spacing: .06em; } .se-tot__i strong { font-size: var(--lp-fs-md, 16px); } .se-tot__i--g { border-color: var(--lp-verde); }
.se-sec { background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 16px; margin-bottom: 14px; } .se-sec h3 { margin: 0 0 12px; } .se-sec h4 { margin: 16px 0 8px; font-size: var(--lp-fs-sm); text-transform: uppercase; letter-spacing: .08em; color: var(--lp-texto-suave); }
.se-checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px; } .se-chk { display: flex; gap: 8px; align-items: center; font-weight: 600; }
.se-linha { display: grid; grid-template-columns: minmax(180px, 3fr) repeat(3, minmax(90px, 1fr)) minmax(110px, 1.2fr) auto; gap: 8px; align-items: end; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px dashed var(--lp-borda-cor); }
.se-f { display: grid; gap: 3px; min-width: 0; } .se-f label { font-size: var(--lp-fs-xs); color: var(--lp-texto-fraco); } .se-f output { min-height: 40px; display: flex; align-items: center; font-weight: 700; } .se-x { align-self: end; }
.se-form--leitura .lp-input { opacity: .85; }
@media (max-width: 700px) { .se-linha { grid-template-columns: 1fr 1fr; } .se-f--g { grid-column: 1 / -1; } .se-f--t { grid-column: 1 / 2; } .se-x { justify-self: end; } .se-acoes .lp-btn { flex: 1 1 auto; justify-content: center; } }
.se-tot { position: static; background: none; padding: 0 0 6px; }
.se-sec h3 { font-size: var(--lp-fs-lg, 18px); }
.se-sec .lps-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; } .se-sec .lps-campo { display: grid; gap: 6px; align-content: start; } .se-sec .lps-campo--inteira { grid-column: 1 / -1; }
@media (max-width: 700px) { .se-sec .lps-form { grid-template-columns: 1fr; } }

/* menu recolhido: logo e botão de expandir empilhados sem cobrir o primeiro ícone */
.ap.is-recolhido .topo-lat { flex: none; min-height: 0; height: auto; align-items: center; margin-bottom: 26px; }
.ap.is-recolhido .topo-lat .lp-logo { display: grid; place-items: center; }
.ap.is-recolhido .ap__menu { flex: 0 0 auto; min-height: auto; } .ap.is-recolhido .ap__eu { flex: none; }

/* fundo liso (opção em Aparência): some a malha, os pontos e os arcos; os cartões voltam a ser opacos */
[data-fundo="liso"] .ap__principal::before, [data-fundo="liso"] .ap__principal::after, [data-fundo="liso"] .ap__topo::after { display: none; }
[data-fundo="liso"] .ap__topo { background: var(--lp-bg-alt); -webkit-backdrop-filter: none; backdrop-filter: none; }
[data-fundo="liso"] .lp-card, [data-fundo="liso"] .lp-kpi, [data-fundo="liso"] .proj-card, [data-fundo="liso"] .ferr, [data-fundo="liso"] .pj-cli { background-color: var(--lp-superficie); }
.temas.temas--2 { grid-template-columns: repeat(2, 1fr); }
.amostra.fd-detalhes { background-color: #2b2b2b; background-image: radial-gradient(#61BF36 1.2px, transparent 1.4px), linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 10px 10px, 14px 14px, 14px 14px; }
.amostra.fd-liso { background: #2b2b2b; }
.amostra.fd-detalhes i, .amostra.fd-liso i { display: none; }

/* ===== Início: faixa de hora, clima e cotações; indicadores; gráficos; versículo do dia ===== */
.ini-faixa { display: flex; align-items: stretch; background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); overflow: hidden; margin-bottom: var(--lp-s-5); }
.ini-rel { flex: none; display: grid; gap: 1px; padding: 8px 18px; background: var(--lp-preto); color: #fff; border-right: 3px solid var(--lp-verde); min-width: 190px; }
.ini-rel strong { font-size: 22px; font-variant-numeric: tabular-nums; letter-spacing: .02em; } .ini-rel span { font-size: var(--lp-fs-xs); color: #B9B9B9; }
.ini-tick { flex: 1; overflow: hidden; display: flex; align-items: center; position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); }
.ini-trilho { display: flex; width: max-content; animation: ini-rola 70s linear infinite; } .ini-tick:hover .ini-trilho { animation-play-state: paused; }
.ini-bloco { display: flex; align-items: center; white-space: nowrap; flex: none; } .ini-it { padding: 0 6px; font-size: var(--lp-fs-sm); } .ini-it b { font-weight: 700; } .ini-mudo { color: var(--lp-texto-fraco); }
.ini-sep { width: 5px; height: 5px; border-radius: 50%; background: var(--lp-verde); margin: 0 18px; flex: none; }
.ini-alta { color: #2E9E4F; font-style: normal; font-weight: 700; } .ini-baixa { color: #E5484D; font-style: normal; font-weight: 700; }
@keyframes ini-rola { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ini-trilho { animation: none; } .ini-tick { overflow-x: auto; } }
.ini-topo { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--lp-s-5); align-items: stretch; margin-bottom: var(--lp-s-5); }
.ini-saud { background: var(--lp-preto); color: #fff; border-radius: var(--lp-raio-lg); padding: 24px 28px; display: grid; gap: 6px; align-content: center; } .ini-saud h2 { margin: 0; font-size: clamp(24px, 3vw, 34px); color: #fff; } .ini-saud p { margin: 0; color: #C8C8C8; font-size: var(--lp-fs-sm); }
.ini-saud .lp-sobretitulo { color: var(--lp-verde); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ini-verso { margin: 0; background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-left: 4px solid var(--lp-verde); border-radius: var(--lp-raio-lg); padding: 20px 24px; display: grid; gap: 8px; align-content: center; }
.ini-verso__t { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--lp-texto-fraco); } .ini-verso blockquote { margin: 0; font-size: var(--lp-fs-md, 16px); line-height: 1.55; font-style: italic; } .ini-verso figcaption { font-weight: 700; color: var(--lp-verde); } .ini-verso small { color: var(--lp-texto-fraco); font-weight: 400; }
.ini-refl { margin: 6px 0 0; padding-top: 12px; border-top: 1px dashed var(--lp-borda-cor); display: grid; gap: 4px; line-height: 1.5; } .ini-refl b { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--lp-texto-fraco); font-weight: 700; }
.ini-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--lp-s-4); margin-bottom: var(--lp-s-5); } a.ini-kpi { color: inherit; text-decoration: none; } a.ini-kpi:hover { border-color: var(--lp-verde); }
.ini-graficos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lp-s-5); margin-bottom: var(--lp-s-5); } .ini-largo { grid-column: 1 / -1; }
.ini-rosca { display: grid; grid-template-columns: 150px 1fr; gap: 16px; align-items: center; } .ini-rosca svg { width: 150px; height: 150px; } .ini-rosca__n { font-size: 26px; font-weight: 800; fill: var(--lp-texto); } .ini-rosca__t { font-size: 10px; fill: var(--lp-texto-fraco); }
.ini-rosca ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; } .ini-rosca li { display: grid; grid-template-columns: 12px 1fr auto; gap: 8px; align-items: center; font-size: var(--lp-fs-sm); } .ini-rosca li i { width: 12px; height: 12px; border-radius: 3px; }
.ini-barras { display: grid; gap: 9px; } .ini-barra { display: grid; grid-template-columns: minmax(80px, 1fr) 2fr auto; gap: 10px; align-items: center; font-size: var(--lp-fs-sm); } .ini-barra__r { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ini-barra__t { height: 12px; border-radius: 99px; background: color-mix(in srgb, var(--lp-texto) 9%, transparent); overflow: hidden; } .ini-barra__t i { display: block; height: 100%; background: var(--lp-verde); border-radius: 99px; }
.ini-proj { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--lp-s-4); }
.ini-pj { text-align: left; background: var(--lp-superficie); border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 14px 16px; display: grid; gap: 3px; cursor: pointer; color: inherit; font: inherit; } .ini-pj small { color: var(--lp-texto-fraco); } .ini-pj span { font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); }
.ini-pj.is-atual { border-color: var(--lp-verde); box-shadow: 0 0 0 2px var(--lp-verde-20, rgba(97,191,54,.2)); } .ini-pj.is-atual span { color: var(--lp-verde); font-weight: 700; }
@media (max-width: 900px) { .ini-topo, .ini-graficos { grid-template-columns: 1fr; } .ini-rel { min-width: 0; padding: 8px 12px; } .ini-rosca { grid-template-columns: 1fr; justify-items: center; } }
.ini-kpi .lp-kpi__valor { white-space: nowrap; font-size: clamp(20px, 2.1vw, 30px); }

.lps-graf .g-rot { fill: var(--lp-texto); font-size: 10.5px; font-weight: 700; font-family: inherit; paint-order: stroke; stroke: var(--lp-superficie); stroke-width: 3px; stroke-linejoin: round; }
.lps-graf .g-rot--linha { font-size: 10px; }
.lps-graf .g-ponte { stroke-dasharray: 3 5; opacity: .55; stroke-width: 2; }
.lps-nota { margin: 6px 4px 0; font-size: var(--lp-fs-xs); color: var(--lp-texto-suave); } .lps-nota--alerta { color: #B26A00; }

/* cartões e gráficos clicáveis: levam ao dado de origem */
.ir-card, [data-ir] { cursor: pointer; } .ir-card:hover, .ir-card:focus-visible { border-color: var(--lp-verde); outline: none; box-shadow: 0 0 0 2px var(--lp-verde-20, rgba(97, 191, 54, .2)); }
.ir-card > .secao-titulo h3::after { content: "  \203A"; color: var(--lp-verde); font-weight: 800; }
.ini-rosca li[data-ir]:hover, .ini-barra[data-ir]:hover { background: color-mix(in srgb, var(--lp-verde) 10%, transparent); border-radius: 6px; } .ini-rosca li[data-ir], .ini-barra[data-ir] { padding: 2px 4px; margin: -2px -4px; }
.ini-rosca circle[data-ir]:hover { stroke-width: 26; }

.ini-rosca li { grid-template-columns: 12px 1fr auto 42px; } .ini-rosca li em { font-style: normal; color: var(--lp-texto-fraco); font-size: var(--lp-fs-xs); text-align: right; }
.ini-rosca circle[data-ir] { cursor: pointer; transition: stroke-width .15s; }
/* celular: indicadores do Início em 2 colunas e valores menores para caber */
@media (max-width: 700px) { .ini-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .ini-kpi { padding: 12px; } .ini-kpi .lp-kpi__valor { font-size: 22px; } .ini-kpi .lp-kpi__rotulo { font-size: 10px; } .ini-kpi small { font-size: 11px; } }
/* abas do LPS: rolam na horizontal com desvanecido na borda, sem barra de rolagem e sem cortar a última aba contra os botões */
.lps-barra .abas { overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); padding-right: 36px; scroll-behavior: smooth; }
.lps-barra .abas::-webkit-scrollbar { display: none; }
.lps-barra .abas button { flex: none; white-space: nowrap; }
@media (max-width: 700px) { .ini-rel { flex: 0 0 auto; min-width: 0; padding: 6px 10px; } .ini-rel strong { font-size: 17px; } .ini-rel span { font-size: 9.5px; max-width: 120px; line-height: 1.2; } .ini-it { font-size: 12px; } }

/* ---------- Nova programação: passo a passo ---------- */
.cn-passos { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cn-passo { width: 100%; display: flex; gap: 10px; align-items: center; text-align: left; padding: 10px 12px; border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-superficie); color: inherit; cursor: pointer; font: inherit; }
.cn-passo__n { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; border: 2px solid var(--lp-borda-cor); }
.cn-passo__t { display: grid; gap: 2px; min-width: 0; } .cn-passo__t small { color: var(--lp-texto-suave); font-size: 11px; line-height: 1.25; }
.cn-passo.is-atual { border-color: var(--lp-verde); box-shadow: 0 0 0 1px var(--lp-verde) inset; } .cn-passo.is-atual .cn-passo__n { background: var(--lp-verde); border-color: var(--lp-verde); color: var(--lp-preto); }
.cn-passo.is-feito .cn-passo__n { border-color: var(--lp-verde); color: var(--lp-verde); }
.cn-ant { border: 1px dashed var(--lp-borda-cor); border-radius: var(--lp-raio-lg); padding: 10px 12px; margin: 6px 0; } .cn-ant summary { cursor: pointer; }
@media (max-width: 760px) { .cn-passos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cn-passo__t small { display: none; } }

/* sininho de avisos (barra de cima) */
.sino { position: relative; }
.sino__n { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--pt-erro, #d64545); color: #fff; font-size: 11px; font-weight: 800; line-height: 18px; text-align: center; border: 2px solid var(--lp-superficie); box-sizing: content-box; }
.sino__painel { position: absolute; z-index: 60; top: calc(100% + 8px); right: 0; width: min(380px, calc(100vw - 32px)); max-height: min(70vh, 460px); overflow: auto; background: var(--lp-superficie); border: 1px solid var(--lp-borda-forte); border-radius: var(--lp-raio-lg); box-shadow: 0 12px 32px rgba(0, 0, 0, .28); padding: 6px; }
.sino__painel[hidden] { display: none; }
.sino__t { padding: 8px 10px 6px; font-size: var(--lp-fs-xs); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--lp-texto-fraco); }
.sino__i { display: flex; gap: 10px; align-items: flex-start; width: 100%; text-align: left; background: transparent; border: 0; border-radius: 8px; padding: 10px; color: var(--lp-texto); cursor: pointer; font: inherit; }
.sino__i:hover, .sino__i:focus-visible { background: rgba(97, 191, 54, .12); }
.sino__i .sub { display: block; margin-top: 2px; }
.sino__ponto { flex: 0 0 8px; height: 8px; margin-top: 6px; border-radius: 99px; background: transparent; }
.sino__i.is-novo .sino__ponto { background: var(--lp-verde); }
.sino__vazio { padding: 18px 10px; color: var(--lp-texto-fraco); text-align: center; }
@media (max-width: 760px) { .sino__painel { position: fixed; top: 64px; right: 16px; left: 16px; width: auto; } }

.se-sec .lps-form.lps-form--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; } .se-sec .lps-form--2 input[type="time"] { min-width: 0; }
#modal:has(#eq-l) { width: min(640px, 100%); max-height: 92vh; overflow-y: auto; overflow-x: hidden; }

/* ---------- Contrato (consulta ao contrato assinado) ---------- */
.ctr-kpis { margin: var(--lp-s-4) 0; }
.ctr-atalhos { display: flex; flex-wrap: wrap; gap: 6px; margin: var(--lp-s-3) 0 var(--lp-s-4); }
.ctr-atalhos .lps-chip { cursor: pointer; background: none; font-family: inherit; }
.ctr-atalhos .lps-chip:hover { border-color: var(--lp-verde); color: var(--lp-texto); }
.ctr-res-cab { margin: var(--lp-s-3) 0 var(--lp-s-4); color: var(--lp-texto-suave); font-size: var(--lp-fs-sm); }
.ctr-tema { margin-top: var(--lp-s-5); }
.ctr-tema h3 { margin: 0 0 var(--lp-s-2); font-size: var(--lp-fs-lg); }
.ctr-lin { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 3fr) minmax(110px, 160px); gap: var(--lp-s-4); padding: 12px 14px; border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-bg-alt); margin-bottom: 8px; align-items: start; }
.ctr-lin--alerta { border-left: 4px solid var(--pt-alerta); }
.ctr-lin--pg { cursor: pointer; }
.ctr-lin--pg:hover, .ctr-lin--pg:focus-visible { border-color: var(--lp-verde); }
.ctr-r { font-weight: 700; }
.ctr-v { color: var(--lp-texto); line-height: 1.5; }
.ctr-ref { color: var(--lp-texto-suave); font-size: var(--lp-fs-xs); text-align: right; }
.ctr-lin mark, .ctr-pre mark { background: rgba(227, 160, 8, .35); color: inherit; border-radius: 3px; padding: 0 1px; }
.ctr-os { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: var(--lp-s-3) 0; }
.ctr-os label { font-weight: 700; font-size: var(--lp-fs-sm); }
.ctr-os input { max-width: 190px; }
.ctr-cl { border: 1px solid var(--lp-borda-cor); border-radius: var(--lp-raio-lg); background: var(--lp-bg-alt); margin-bottom: 8px; }
.ctr-cl summary { display: flex; gap: 12px; align-items: center; padding: 12px 14px; cursor: pointer; font-weight: 700; }
.ctr-cl summary .sub { margin-left: auto; font-weight: 400; }
.ctr-cn { display: inline-grid; place-items: center; min-width: 28px; height: 28px; border-radius: 99px; background: var(--lp-verde); color: var(--lp-preto); font-size: 13px; }
.ctr-cl p { margin: 0; padding: 10px 14px; border-top: 1px solid var(--lp-borda-cor); line-height: 1.55; }
.ctr-pre { margin: 0; white-space: pre-wrap; word-break: break-word; font: 12.5px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--lp-texto); }
@media (max-width: 760px) {
  .ctr-lin { grid-template-columns: 1fr; gap: 6px; }
  .ctr-ref { text-align: left; }
}

.ctr-cn--cms { min-width: 40px; padding: 0 8px; border-radius: 8px; }
.ctr-crit summary { flex-wrap: wrap; }
.ctr-crit .ctr-pcs { margin-left: auto; display: inline-flex; gap: 4px; flex-wrap: wrap; }
.ctr-crit summary .sub { margin-left: 0; }
.ctr-crit-corpo { padding: 12px 14px; border-top: 1px solid var(--lp-borda-cor); display: grid; gap: 10px; }
.ctr-pcs-txt { margin: 0; padding: 0 !important; border: 0 !important; }
.ctr-crit-corpo .ctr-pre { max-height: 60vh; overflow: auto; }
.ctr-pct { color: var(--lp-destaque); }
.ctr-crit-corpo .lp-btn { justify-self: start; }
.ctr-doc { display: grid; gap: 10px; line-height: 1.55; }
.ctr-cl .ctr-doc p, .ctr-cl .ctr-doc li { margin: 0; padding: 0; border: 0; }
.ctr-doc h4 { margin: 8px 0 0; font-size: var(--lp-fs-md, 1rem); color: var(--lp-destaque); }
.ctr-doc ul { margin: 0; padding-left: 22px; display: grid; gap: 4px; }
.ctr-leg { color: var(--lp-texto-suave); font-size: var(--lp-fs-sm); font-weight: 700; }
.ctr-tab td:first-child { width: 30%; font-weight: 700; vertical-align: top; }
.ctr-tab td { vertical-align: top; line-height: 1.5; }
.ctr-crit-corpo { max-height: none; }
.ctr-etapa { padding: 6px 0; border-top: 1px dashed var(--lp-borda-cor); }
.ctr-etapa:first-child { border-top: 0; padding-top: 0; }
.ctr-etapa .ctr-pct { font-size: 1.1em; }
.ctr-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
