/*!
 * SIGMFE — camada de design sobre o Jobick (Tailwind).
 * Usa exclusivamente os tokens do tema (--primary, --card, --text, --border…),
 * herdando automaticamente modo escuro e a cor primária color_2 (#6610f2).
 * Prefixo "sg-" (BEM) evita colisão com utilitários do template.
 * Sem estilos inline: compatível com CSP style-src 'self'.
 */

:root {
    --sg-raio: 0.75rem;
    --sg-raio-sm: 0.5rem;
    --sg-sombra: 0 2px 10px -3px rgba(0, 0, 0, 0.09);
    --sg-sombra-elevada: 0 18px 50px -12px rgba(30, 20, 70, 0.28);
    --sg-transicao: 160ms cubic-bezier(0.4, 0, 0.2, 1);
    --sg-espaco: 1rem;
    --sg-fonte-mono: ui-monospace, SFMono-Regular, "Cascadia Mono", Menlo, Consolas, monospace;
    --sg-sucesso: var(--success, #2bc155);
    --sg-perigo: var(--danger, #f72b50);
    --sg-aviso: var(--warning, #ffb800);
    --sg-info: var(--info, #3b95ee);
    --sg-neutro: #8a8fa3;
}

/* ------------------------------------------------------------- Base/a11y */
[hidden] { display: none !important; }
[x-cloak] { display: none !important; }
.sg-pular { position: absolute; left: -9999px; top: 0; z-index: 100000; background: var(--primary); color: #fff; padding: .6rem 1rem; border-radius: 0 0 var(--sg-raio-sm) 0; }
.sg-pular:focus { left: 0; }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.sg-mono { font-family: var(--sg-fonte-mono); font-size: .85em; }
.sg-muted { color: var(--text); opacity: .75; }
.sg-link { background: none; border: 0; padding: 0; color: var(--primary); cursor: pointer; font: inherit; }
.sg-link:hover { text-decoration: underline; }

/* ------------------------------------------------------------- Marca */
.sg-logo-abbr { width: 52px; height: 52px; }
.sg-marca { display: flex; flex-direction: column; line-height: 1.1; margin-left: .75rem; }
.sg-marca strong { font-size: 1.35rem; color: var(--text-dark); letter-spacing: .5px; }
.sg-marca small { font-size: .72rem; color: var(--text); text-transform: uppercase; letter-spacing: 1.2px; }
.sg-avatar { width: 2.8rem; height: 2.8rem; border-radius: var(--sg-raio-sm); background: var(--rgba-primary-1); color: var(--primary); display: inline-flex; align-items: center; justify-content: center; font-weight: 600; margin-right: .8rem; flex-shrink: 0; }

/* ------------------------------------------------------- Título de página */
.sg-titulo-pagina { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: flex-end; background: var(--card); border-radius: var(--sg-raio); box-shadow: var(--sg-sombra); padding: 1.1rem 1.5rem; margin-bottom: 1.5rem; }
.sg-titulo-pagina__titulo { font-size: 1.45rem; margin: .25rem 0 0; color: var(--text-dark); font-weight: 600; }
.sg-titulo-pagina__subtitulo { margin: .2rem 0 0; color: var(--text); font-size: .92rem; }
.sg-titulo-pagina__acoes { display: flex; flex-wrap: wrap; gap: .5rem; }
.sg-trilha { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .82rem; color: var(--text); margin: 0; padding: 0; list-style: none; }
.sg-trilha li + li::before { content: "/"; margin-right: .4rem; color: var(--primary); }
.sg-trilha a { color: var(--text); }
.sg-trilha a:hover { color: var(--primary); }

/* ------------------------------------------------------------- Botões */
.sg-botao { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: var(--sg-raio-sm); padding: .62rem 1.1rem; font-size: .9rem; font-weight: 500; line-height: 1.2; border: 1px solid transparent; cursor: pointer; transition: background-color var(--sg-transicao), border-color var(--sg-transicao), color var(--sg-transicao), box-shadow var(--sg-transicao); white-space: nowrap; text-decoration: none; }
.sg-botao:disabled, .sg-botao[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.sg-botao--primario { background: var(--primary); color: #fff; border-color: var(--primary); }
.sg-botao--primario:hover:not(:disabled) { background: var(--primary-hover); border-color: var(--primary-hover); color: #fff; }
.sg-botao--secundario { background: var(--rgba-primary-1); color: var(--primary); border-color: transparent; }
.sg-botao--secundario:hover:not(:disabled) { background: var(--rgba-primary-2); }
.sg-botao--fantasma { background: transparent; color: var(--text-dark); border-color: var(--border); }
.sg-botao--fantasma:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
.sg-botao--perigo { background: var(--sg-perigo); color: #fff; border-color: var(--sg-perigo); }
.sg-botao--perigo:hover:not(:disabled) { filter: brightness(.92); }
.sg-botao--sucesso { background: var(--sg-sucesso); color: #fff; border-color: var(--sg-sucesso); }
.sg-botao--pequeno { padding: .38rem .7rem; font-size: .8rem; }
.sg-botao--icone { padding: .5rem; width: 2.25rem; height: 2.25rem; }
.sg-botao--bloco { width: 100%; }
.sg-botao.is-carregando { position: relative; color: transparent !important; pointer-events: none; }
.sg-botao.is-carregando::after { content: ""; position: absolute; width: 1.1rem; height: 1.1rem; border: 2px solid rgba(255, 255, 255, .6); border-top-color: #fff; border-radius: 50%; animation: sg-giro .7s linear infinite; }
.sg-botao--secundario.is-carregando::after, .sg-botao--fantasma.is-carregando::after { border-color: var(--rgba-primary-3); border-top-color: var(--primary); }
@keyframes sg-giro { to { transform: rotate(360deg); } }

/* ------------------------------------------------------- Formulários */
.sg-form { display: flex; flex-direction: column; gap: 1rem; }
.sg-form__acoes { display: flex; justify-content: flex-end; gap: .6rem; flex-wrap: wrap; margin-top: .5rem; }
.sg-campo { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.sg-campo > label, .sg-campo__rotulo { font-size: .85rem; font-weight: 500; color: var(--text-dark); }
.sg-campo__rotulo .sg-obrigatorio, .sg-campo > label .sg-obrigatorio { color: var(--sg-perigo); margin-left: .15rem; }
.sg-campo--checkbox label { display: flex; align-items: flex-start; gap: .55rem; font-weight: 400; cursor: pointer; }
.sg-campo--checkbox input { margin-top: .2rem; accent-color: var(--primary); width: 1.05rem; height: 1.05rem; }
.sg-campo--inteira { grid-column: 1 / -1; }
.sg-input { width: 100%; min-height: 2.75rem; padding: .55rem .9rem; border-radius: var(--sg-raio-sm); border: 1px solid var(--border); background: var(--card); color: var(--text-dark); font-size: .92rem; transition: border-color var(--sg-transicao), box-shadow var(--sg-transicao); }
textarea.sg-input { min-height: 6rem; resize: vertical; line-height: 1.5; }
select.sg-input { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--text) 50%), linear-gradient(135deg, var(--text) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 2.2rem; }
.sg-input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--rgba-primary-1); outline: none; }
.sg-input.is-invalido, .sg-input[aria-invalid="true"] { border-color: var(--sg-perigo); }
.sg-erro-campo { color: var(--sg-perigo); font-size: .8rem; }
.sg-ajuda { color: var(--text); font-size: .78rem; opacity: .85; }
.sg-input-grupo { display: flex; }
.sg-input-grupo .sg-input { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.sg-input-grupo__botao { border: 1px solid var(--border); border-left: 0; background: var(--card); color: var(--text); padding: 0 .9rem; border-radius: 0 var(--sg-raio-sm) var(--sg-raio-sm) 0; cursor: pointer; }
.sg-medidor-senha { height: 4px; background: var(--border); border-radius: 4px; overflow: hidden; }
.sg-medidor-senha span { display: block; height: 100%; width: 0; background: var(--sg-perigo); transition: width var(--sg-transicao), background-color var(--sg-transicao); }
.sg-medidor-senha[data-forca="2"] span { width: 50%; background: var(--sg-aviso); }
.sg-medidor-senha[data-forca="3"] span { width: 75%; background: var(--sg-info); }
.sg-medidor-senha[data-forca="4"] span { width: 100%; background: var(--sg-sucesso); }
fieldset.sg-etapa { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; }
fieldset.sg-etapa legend { font-weight: 600; color: var(--text-dark); margin-bottom: .75rem; font-size: 1.05rem; }

/* ------------------------------------------------------------- Grades */
.sg-grade { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .sg-grade--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sg-grade--3, .sg-grade--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sg-grade--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sg-grade--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sg-grade--principal { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.sg-pilha { display: flex; flex-direction: column; gap: 1rem; }
.sg-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.sg-linha--entre { justify-content: space-between; }

/* ------------------------------------------------------------- Cartões */
.sg-cartao { border-radius: var(--sg-raio); overflow: visible; margin-bottom: 1.5rem; }
.sg-cartao__cabecalho { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; padding: 1.1rem 1.5rem; border-bottom: 1px solid var(--border); }
.sg-cartao__titulo { font-size: 1.05rem; font-weight: 600; margin: 0; color: var(--text-dark); display: flex; align-items: center; gap: .55rem; }
.sg-cartao__titulo i { color: var(--primary); }
.sg-cartao__corpo { padding: 1.25rem 1.5rem; }
.sg-cartao__corpo--compacto { padding: 0; }

/* ------------------------------------------------------------- KPIs */
.sg-kpi { background: var(--card); border-radius: var(--sg-raio); box-shadow: var(--sg-sombra); padding: 1.15rem 1.25rem; display: flex; flex-direction: column; gap: .35rem; position: relative; overflow: hidden; min-height: 8.5rem; }
.sg-kpi::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--primary); }
.sg-kpi--sucesso::before { background: var(--sg-sucesso); }
.sg-kpi--aviso::before { background: var(--sg-aviso); }
.sg-kpi--perigo::before { background: var(--sg-perigo); }
.sg-kpi--indisponivel::before { background: var(--sg-neutro); }
.sg-kpi__rotulo { font-size: .8rem; text-transform: uppercase; letter-spacing: .6px; color: var(--text); font-weight: 500; display: flex; justify-content: space-between; gap: .5rem; }
.sg-kpi__valor { font-size: 1.9rem; font-weight: 600; color: var(--text-dark); line-height: 1.1; font-variant-numeric: tabular-nums; }
.sg-kpi__valor small { font-size: .95rem; font-weight: 500; color: var(--text); margin-left: .2rem; }
.sg-kpi__meta { font-size: .76rem; color: var(--text); opacity: .9; }
.sg-kpi__ressalva { font-size: .76rem; color: var(--sg-aviso); display: flex; gap: .35rem; align-items: flex-start; }
.sg-kpi__formula { border: 0; background: none; color: var(--text); cursor: help; padding: 0; opacity: .7; }
.sg-kpi__formula:hover { color: var(--primary); opacity: 1; }

/* ------------------------------------------------------------- Selos */
.sg-selo { display: inline-flex; align-items: center; gap: .3rem; font-size: .74rem; font-weight: 600; line-height: 1.4; padding: .18rem .6rem; border-radius: 999px; background: var(--rgba-primary-1); color: var(--primary); white-space: nowrap; }
.sg-selo--sucesso { background: var(--success-light, #e3f9e9); color: var(--sg-sucesso); }
.sg-selo--perigo { background: var(--danger-light, #fee6ea); color: var(--sg-perigo); }
.sg-selo--aviso { background: var(--warning-light, #fff5dd); color: #b07f00; }
.sg-selo--info { background: var(--info-light, #e1effd); color: var(--sg-info); }
.sg-selo--neutro { background: rgba(138, 143, 163, .14); color: var(--sg-neutro); }
.sg-selo::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.sg-selo--sem-ponto::before { display: none; }
.sg-contador-alerta { display: inline-flex; min-width: 1.6rem; height: 1.6rem; padding: 0 .4rem; align-items: center; justify-content: center; border-radius: 999px; background: var(--danger-light, #fee6ea); color: var(--sg-perigo); font-weight: 700; font-size: .78rem; }
.sg-protocolo { font-family: var(--sg-fonte-mono); font-size: .82rem; color: var(--text-dark); background: var(--rgba-primary-1); padding: .12rem .45rem; border-radius: .35rem; white-space: nowrap; }

/* ----------------------------------------------------------- Tabelas */
.sg-barra-ferramentas { padding: 1rem 1.5rem; border-bottom: 1px solid var(--border); }
.sg-filtros { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; }
.sg-filtros .sg-campo { flex: 1 1 11rem; max-width: 18rem; }
.sg-filtros .sg-campo--busca { flex: 2 1 16rem; max-width: 26rem; }
.sg-filtros__acoes { display: flex; gap: .5rem; margin-left: auto; flex-wrap: wrap; }
.sg-tabela-contenedor { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sg-tabela { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .88rem; min-width: 40rem; }
.sg-tabela th { position: sticky; top: 0; background: var(--card); text-align: left; font-weight: 600; color: var(--text-dark); padding: .85rem 1rem; border-bottom: 1px solid var(--border); white-space: nowrap; font-size: .8rem; text-transform: uppercase; letter-spacing: .4px; z-index: 1; }
.sg-tabela th button { background: none; border: 0; font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; display: inline-flex; gap: .35rem; align-items: center; padding: 0; }
.sg-tabela th button[aria-sort="ascending"]::after { content: "▲"; font-size: .6rem; color: var(--primary); }
.sg-tabela th button[aria-sort="descending"]::after { content: "▼"; font-size: .6rem; color: var(--primary); }
.sg-tabela td { padding: .8rem 1rem; border-bottom: 1px solid var(--border); color: var(--text); vertical-align: middle; }
.sg-tabela tbody tr { transition: background-color var(--sg-transicao); }
.sg-tabela tbody tr:hover { background: var(--rgba-primary-1); }
.sg-tabela tbody tr.is-clicavel { cursor: pointer; }
.sg-tabela td.sg-destaque { color: var(--text-dark); font-weight: 600; }
.sg-tabela td.sg-numero, .sg-tabela th.sg-numero { text-align: right; font-variant-numeric: tabular-nums; }
.sg-tabela td.sg-curto { max-width: 22rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sg-tabela td.sg-acoes-linha { text-align: right; white-space: nowrap; }
.sg-tabela--compacta td, .sg-tabela--compacta th { padding: .55rem .75rem; }
.sg-paginacao { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; font-size: .85rem; color: var(--text); }
.sg-paginacao__botoes { display: flex; gap: .35rem; }
.sg-vazio { text-align: center; padding: 3rem 1.5rem; color: var(--text); }
.sg-vazio i { font-size: 2.2rem; color: var(--rgba-primary-5); display: block; margin-bottom: .75rem; }
.sg-vazio strong { display: block; color: var(--text-dark); margin-bottom: .25rem; }

/* ------------------------------------------------- Ficha (descrição) */
.sg-descricao { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; }
@media (min-width: 768px) { .sg-descricao { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; } }
@media (min-width: 1280px) { .sg-descricao--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sg-descricao__item { display: flex; flex-direction: column; padding: .7rem 0; border-bottom: 1px dashed var(--border); min-width: 0; }
.sg-descricao__item dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .5px; color: var(--text); margin-bottom: .2rem; }
.sg-descricao__item dd { margin: 0; color: var(--text-dark); font-weight: 500; overflow-wrap: anywhere; white-space: pre-line; }
.sg-descricao__item--inteira { grid-column: 1 / -1; }

/* ------------------------------------------------------------ Abas */
.sg-abas { display: flex; gap: .25rem; border-bottom: 1px solid var(--border); margin-bottom: 1.25rem; overflow-x: auto; scrollbar-width: none; }
.sg-abas::-webkit-scrollbar { display: none; }
.sg-aba { background: none; border: 0; border-bottom: 3px solid transparent; padding: .75rem 1rem; color: var(--text); font-weight: 500; cursor: pointer; white-space: nowrap; display: inline-flex; gap: .45rem; align-items: center; font-size: .92rem; }
.sg-aba:hover { color: var(--primary); }
.sg-aba[aria-selected="true"] { color: var(--primary); border-bottom-color: var(--primary); }
.sg-aba__contador { background: var(--rgba-primary-1); color: var(--primary); font-size: .72rem; padding: 0 .45rem; border-radius: 999px; }

/* ---------------------------------------------------------- Alertas */
.sg-alerta { border-radius: var(--sg-raio-sm); padding: .85rem 1rem; font-size: .88rem; background: var(--rgba-primary-1); color: var(--text-dark); border-left: 4px solid var(--primary); display: flex; gap: .6rem; align-items: flex-start; line-height: 1.5; }
.sg-alerta i { margin-top: .15rem; }
.sg-alerta--perigo { background: var(--danger-light, #fee6ea); border-left-color: var(--sg-perigo); }
.sg-alerta--sucesso { background: var(--success-light, #e3f9e9); border-left-color: var(--sg-sucesso); }
.sg-alerta--aviso { background: var(--warning-light, #fff5dd); border-left-color: var(--sg-aviso); }
.sg-alerta--info { background: var(--info-light, #e1effd); border-left-color: var(--sg-info); }
.sg-sem-conexao { margin-bottom: 1rem; padding: .7rem 1rem; border-radius: var(--sg-raio-sm); background: var(--warning-light, #fff5dd); color: #7a5800; font-size: .88rem; display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.sg-indicador-rede { color: var(--sg-sucesso); font-size: .6rem; display: inline-flex; }
.sg-indicador-rede.is-offline { color: var(--sg-perigo); }

/* ------------------------------------------------------------ Toasts */
.sg-toasts { position: fixed; z-index: 100001; right: 1rem; bottom: 1rem; display: flex; flex-direction: column; gap: .6rem; max-width: min(26rem, calc(100vw - 2rem)); }
.sg-toast { background: var(--card); color: var(--text-dark); border-radius: var(--sg-raio-sm); box-shadow: var(--sg-sombra-elevada); padding: .85rem 1rem; display: flex; gap: .7rem; align-items: flex-start; border-left: 4px solid var(--primary); animation: sg-entrar .22s ease-out; font-size: .88rem; }
.sg-toast--sucesso { border-left-color: var(--sg-sucesso); }
.sg-toast--perigo { border-left-color: var(--sg-perigo); }
.sg-toast--aviso { border-left-color: var(--sg-aviso); }
.sg-toast__texto { flex: 1; line-height: 1.45; }
.sg-toast__texto small { display: block; color: var(--text); margin-top: .2rem; font-size: .74rem; }
.sg-toast__fechar { background: none; border: 0; color: var(--text); cursor: pointer; padding: 0 .2rem; }
.sg-toast.is-saindo { opacity: 0; transform: translateY(8px); transition: all .2s ease-in; }
@keyframes sg-entrar { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------ Modal */
.sg-modal-fundo { position: fixed; inset: 0; z-index: 100000; background: rgba(17, 12, 40, .55); display: flex; align-items: flex-start; justify-content: center; padding: 4vh 1rem; overflow-y: auto; animation: sg-fade .15s ease-out; }
@keyframes sg-fade { from { opacity: 0; } to { opacity: 1; } }
.sg-modal { background: var(--card); border-radius: var(--sg-raio); width: 100%; max-width: 44rem; box-shadow: var(--sg-sombra-elevada); animation: sg-entrar .2s ease-out; display: flex; flex-direction: column; max-height: 92vh; }
.sg-modal--largo { max-width: 64rem; }
.sg-modal--estreito { max-width: 30rem; }
.sg-modal__cabecalho { display: flex; justify-content: space-between; align-items: center; padding: 1.1rem 1.5rem; border-bottom: 1px solid var(--border); gap: 1rem; }
.sg-modal__titulo { margin: 0; font-size: 1.1rem; color: var(--text-dark); font-weight: 600; }
.sg-modal__fechar { background: none; border: 0; font-size: 1.25rem; color: var(--text); cursor: pointer; line-height: 1; padding: .25rem; }
.sg-modal__corpo { padding: 1.4rem 1.5rem; overflow-y: auto; }
.sg-modal__rodape { padding: 1rem 1.5rem; border-top: 1px solid var(--border); display: flex; justify-content: flex-end; gap: .6rem; flex-wrap: wrap; }
body.sg-modal-aberto { overflow: hidden; }

/* ----------------------------------------------------------- Esqueletos */
.sg-esqueleto { border-radius: var(--sg-raio); background: linear-gradient(90deg, var(--rgba-primary-1) 0%, rgba(255, 255, 255, .08) 50%, var(--rgba-primary-1) 100%); background-size: 200% 100%; animation: sg-brilho 1.3s ease-in-out infinite; }
.sg-esqueleto--grade { height: 22rem; }
.sg-esqueleto--tabela { height: 18rem; margin: 1rem 1.5rem; }
.sg-esqueleto--ficha { height: 26rem; }
.sg-esqueleto--linha { height: 1rem; margin: .5rem 0; }
@keyframes sg-brilho { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .sg-esqueleto, .sg-toast, .sg-modal, .sg-modal-fundo { animation: none; } }

/* --------------------------------------------------- Linha do tempo */
.sg-tempo { list-style: none; margin: 0; padding: 0; position: relative; }
.sg-tempo::before { content: ""; position: absolute; left: .65rem; top: .4rem; bottom: .4rem; width: 2px; background: var(--border); }
.sg-tempo__item { position: relative; padding: 0 0 1.1rem 2.2rem; }
.sg-tempo__item::before { content: ""; position: absolute; left: .32rem; top: .35rem; width: .75rem; height: .75rem; border-radius: 50%; background: var(--card); border: 2px solid var(--primary); }
.sg-tempo__item--perigo::before { border-color: var(--sg-perigo); }
.sg-tempo__item--sucesso::before { border-color: var(--sg-sucesso); }
.sg-tempo__item--aviso::before { border-color: var(--sg-aviso); }
.sg-tempo__titulo { font-weight: 600; color: var(--text-dark); font-size: .9rem; }
.sg-tempo__meta { font-size: .76rem; color: var(--text); }
.sg-tempo__texto { font-size: .86rem; color: var(--text); margin-top: .2rem; white-space: pre-line; }

/* ---------------------------------------------------- Fluxo (stepper) */
.sg-fluxo { display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 1rem; padding: 0; list-style: none; counter-reset: etapa; }
.sg-fluxo__etapa { flex: 1 1 7rem; position: relative; text-align: center; padding-top: 2.1rem; font-size: .76rem; color: var(--text); counter-increment: etapa; min-width: 6rem; }
.sg-fluxo__etapa::before { content: counter(etapa); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--card); border: 2px solid var(--border); color: var(--text); font-weight: 600; display: flex; align-items: center; justify-content: center; z-index: 1; font-size: .78rem; }
.sg-fluxo__etapa::after { content: ""; position: absolute; top: .82rem; left: 50%; width: 100%; height: 2px; background: var(--border); }
.sg-fluxo__etapa:last-child::after { display: none; }
.sg-fluxo__etapa.is-concluida::before { background: var(--primary); border-color: var(--primary); color: #fff; content: "✓"; }
.sg-fluxo__etapa.is-concluida::after { background: var(--primary); }
.sg-fluxo__etapa.is-atual { color: var(--primary); font-weight: 600; }
.sg-fluxo__etapa.is-atual::before { border-color: var(--primary); color: var(--primary); box-shadow: 0 0 0 4px var(--rgba-primary-1); }
.sg-etapas { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.25rem; flex-wrap: wrap; }
.sg-etapas__item { flex: 1 1 8rem; font-size: .78rem; padding: .5rem .6rem; border-radius: var(--sg-raio-sm); background: var(--rgba-primary-1); color: var(--text); text-align: center; }
.sg-etapas__item.is-ativo { background: var(--primary); color: #fff; font-weight: 600; }
.sg-etapas__item.is-feito { color: var(--primary); }
.sg-lista-requisitos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; font-size: .86rem; }
.sg-lista-requisitos li { display: flex; gap: .5rem; align-items: center; }
.sg-lista-requisitos .fa-circle-check { color: var(--sg-sucesso); }
.sg-lista-requisitos .fa-circle-xmark { color: var(--sg-perigo); }
.sg-lista-requisitos .fa-circle-exclamation { color: var(--sg-aviso); }

/* --------------------------------------------- Checklist (mobile-first) */
.sg-checklist { display: flex; flex-direction: column; gap: .75rem; }
.sg-item-checklist { background: var(--card); border-radius: var(--sg-raio); box-shadow: var(--sg-sombra); padding: 1rem 1.1rem; border-left: 4px solid var(--border); }
.sg-item-checklist--impeditiva { border-left-color: var(--sg-perigo); }
.sg-item-checklist--alta { border-left-color: var(--sg-aviso); }
.sg-item-checklist.is-nc { background: var(--danger-light, #fee6ea); }
.sg-item-checklist__topo { display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start; }
.sg-item-checklist__codigo { font-family: var(--sg-fonte-mono); font-size: .78rem; color: var(--primary); font-weight: 600; }
.sg-item-checklist__descricao { color: var(--text-dark); font-weight: 500; margin: .15rem 0 .5rem; line-height: 1.45; }
.sg-item-checklist__orientacao { font-size: .78rem; color: var(--text); margin-bottom: .6rem; }
.sg-respostas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.sg-resposta { border: 2px solid var(--border); background: var(--card); color: var(--text-dark); border-radius: var(--sg-raio-sm); min-height: 3rem; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: .4rem; font-size: .95rem; transition: all var(--sg-transicao); }
.sg-resposta:disabled { opacity: .45; cursor: not-allowed; }
.sg-resposta[aria-pressed="true"][data-valor="C"] { background: var(--sg-sucesso); border-color: var(--sg-sucesso); color: #fff; }
.sg-resposta[aria-pressed="true"][data-valor="NC"] { background: var(--sg-perigo); border-color: var(--sg-perigo); color: #fff; }
.sg-resposta[aria-pressed="true"][data-valor="NA"] { background: var(--sg-neutro); border-color: var(--sg-neutro); color: #fff; }
.sg-item-checklist__detalhe { margin-top: .75rem; display: flex; flex-direction: column; gap: .6rem; }
.sg-progresso { height: .5rem; border-radius: 999px; background: var(--rgba-primary-1); overflow: hidden; }
.sg-progresso__barra { height: 100%; width: 0; background: var(--primary); transition: width .25s ease; }
.sg-progresso__barra[data-pct] { width: 0; }
.sg-barra-fixa { position: sticky; bottom: 0; z-index: 5; background: var(--card); border-top: 1px solid var(--border); padding: .85rem 1rem; display: flex; gap: .75rem; align-items: center; justify-content: space-between; flex-wrap: wrap; border-radius: var(--sg-raio) var(--sg-raio) 0 0; box-shadow: 0 -6px 18px -10px rgba(0, 0, 0, .2); }
.sg-veredito { border-radius: var(--sg-raio); padding: 1.5rem; text-align: center; }
.sg-veredito i { font-size: 2.6rem; display: block; margin-bottom: .6rem; }
.sg-veredito--apto { background: var(--success-light, #e3f9e9); color: var(--sg-sucesso); }
.sg-veredito--inapto { background: var(--danger-light, #fee6ea); color: var(--sg-perigo); }
.sg-veredito strong { display: block; font-size: 1.3rem; margin-bottom: .3rem; }

/* ------------------------------------------------- Painel / gráficos */
.sg-grafico { position: relative; min-height: 16rem; }
.sg-grafico canvas { width: 100% !important; }
.sg-lista-acoes { list-style: none; margin: 0; padding: 0; }
.sg-lista-acoes li { display: flex; gap: .75rem; align-items: center; padding: .75rem 0; border-bottom: 1px solid var(--border); }
.sg-lista-acoes li:last-child { border-bottom: 0; }
.sg-lista-acoes__icone { width: 2.3rem; height: 2.3rem; border-radius: var(--sg-raio-sm); background: var(--rgba-primary-1); color: var(--primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sg-lista-acoes__icone--perigo { background: var(--danger-light, #fee6ea); color: var(--sg-perigo); }
.sg-lista-acoes__icone--aviso { background: var(--warning-light, #fff5dd); color: #b07f00; }
.sg-lista-acoes__texto { flex: 1; font-size: .88rem; color: var(--text-dark); }
.sg-atualizado { font-size: .76rem; color: var(--text); display: inline-flex; gap: .35rem; align-items: center; }
.sg-barras { display: flex; flex-direction: column; gap: .55rem; }
.sg-barras__item { display: grid; grid-template-columns: minmax(6rem, 10rem) 1fr auto; gap: .6rem; align-items: center; font-size: .82rem; }
.sg-barras__trilho { height: .55rem; border-radius: 999px; background: var(--rgba-primary-1); overflow: hidden; }
.sg-barras__preenchimento { height: 100%; background: var(--primary); border-radius: 999px; }
.sg-calendario-dias { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.4rem, 1fr)); gap: .5rem; }
.sg-dia { border-radius: var(--sg-raio-sm); padding: .55rem; border: 1px solid var(--border); font-size: .76rem; text-align: center; background: var(--card); }
.sg-dia strong { display: block; font-size: .95rem; color: var(--text-dark); }
.sg-dia--deficit { background: var(--danger-light, #fee6ea); border-color: var(--sg-perigo); }
.sg-dia--ok { background: var(--success-light, #e3f9e9); border-color: transparent; }
.sg-dia--sem-demanda { opacity: .55; }

/* -------------------------------------------- Larguras de barra (sem inline) */
.sg-w-0 { width: 0; } .sg-w-5 { width: 5%; } .sg-w-10 { width: 10%; } .sg-w-15 { width: 15%; } .sg-w-20 { width: 20%; } .sg-w-25 { width: 25%; }
.sg-w-30 { width: 30%; } .sg-w-35 { width: 35%; } .sg-w-40 { width: 40%; } .sg-w-45 { width: 45%; } .sg-w-50 { width: 50%; } .sg-w-55 { width: 55%; }
.sg-w-60 { width: 60%; } .sg-w-65 { width: 65%; } .sg-w-70 { width: 70%; } .sg-w-75 { width: 75%; } .sg-w-80 { width: 80%; } .sg-w-85 { width: 85%; }
.sg-w-90 { width: 90%; } .sg-w-95 { width: 95%; } .sg-w-100 { width: 100%; }

/* --------------------------------------------- Notificações (cabeçalho) */
.sg-notificacoes { position: relative; }
.sg-sino { background: none; border: 0; cursor: pointer; }
.sg-painel-notificacoes { position: absolute; top: 100%; right: 0; width: min(24rem, calc(100vw - 1.5rem)); border-radius: var(--sg-raio); box-shadow: var(--sg-sombra-elevada); z-index: 50; overflow: hidden; }
.sg-painel-notificacoes__topo { display: flex; justify-content: space-between; align-items: center; padding: .9rem 1rem; border-bottom: 1px solid var(--border); font-size: .9rem; }
.sg-painel-notificacoes__lista { list-style: none; margin: 0; padding: 0; max-height: 24rem; overflow-y: auto; }
.sg-painel-notificacoes__lista li a, .sg-painel-notificacoes__lista li > div { display: block; padding: .8rem 1rem; border-bottom: 1px solid var(--border); color: var(--text-dark); font-size: .84rem; }
.sg-painel-notificacoes__lista li.is-nao-lida a { background: var(--rgba-primary-1); }
.sg-painel-notificacoes__lista small { display: block; color: var(--text); font-size: .74rem; margin-top: .2rem; }
.sg-painel-notificacoes__rodape { display: block; text-align: center; padding: .75rem; font-size: .84rem; color: var(--primary); }
.sg-busca-global { position: relative; margin-left: 2rem; }
.sg-busca-resultados { position: absolute; top: calc(100% + .35rem); left: 0; right: 0; background: var(--card); border-radius: var(--sg-raio-sm); box-shadow: var(--sg-sombra-elevada); z-index: 40; padding: .4rem 0; max-height: 22rem; overflow-y: auto; }
.sg-busca-resultados a { display: flex; gap: .6rem; padding: .55rem 1rem; color: var(--text-dark); font-size: .86rem; align-items: center; }
.sg-busca-resultados a:hover, .sg-busca-resultados a:focus { background: var(--rgba-primary-1); }
.sg-busca-resultados__grupo { font-size: .7rem; text-transform: uppercase; letter-spacing: .6px; color: var(--text); padding: .45rem 1rem .2rem; }

/* ---------------------------------------------------------- Acesso */
body.sg-acesso { min-height: 100vh; background: radial-gradient(1200px 600px at 10% 0%, var(--rgba-primary-2), transparent 60%), var(--body-bg); }
.sg-acesso__container { min-height: 100vh; display: grid; grid-template-columns: 1fr; align-items: center; gap: 2rem; max-width: 72rem; margin: 0 auto; padding: 2rem 1rem; }
@media (min-width: 960px) { .sg-acesso__container { grid-template-columns: 1fr 1fr; padding: 2rem; } }
.sg-acesso__marca { display: none; color: var(--text-dark); }
@media (min-width: 960px) { .sg-acesso__marca { display: block; } }
.sg-acesso__marca h2 { font-size: 2.4rem; margin: 1rem 0 .3rem; letter-spacing: 1px; color: var(--primary); }
.sg-acesso__marca p { font-size: 1.05rem; color: var(--text); max-width: 26rem; }
.sg-acesso__marca ul { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; flex-direction: column; gap: .9rem; }
.sg-acesso__marca li { display: flex; gap: .75rem; align-items: center; color: var(--text-dark); }
.sg-acesso__marca li i { width: 2.2rem; height: 2.2rem; border-radius: var(--sg-raio-sm); background: var(--rgba-primary-1); color: var(--primary); display: inline-flex; align-items: center; justify-content: center; }
.sg-acesso__cartao { padding: 2rem; border-radius: 1rem; box-shadow: var(--sg-sombra-elevada); width: 100%; max-width: 34rem; justify-self: center; }
.sg-acesso__titulo { font-size: 1.5rem; margin: 0 0 .4rem; color: var(--text-dark); }
.sg-acesso__texto { color: var(--text); margin: 0 0 1.5rem; }
.sg-acesso__links { text-align: center; font-size: .88rem; margin: .5rem 0 0; }
.sg-acesso__rodape { font-size: .76rem; color: var(--text); margin-top: 1.5rem; text-align: center; }

/* ---------------------------------------------------------- Impressão */
@media print {
    .dlabnav, .header, .nav-header, .footer, .sg-titulo-pagina__acoes, .sg-barra-ferramentas, .sg-paginacao, .sg-toasts, .sg-barra-fixa { display: none !important; }
    .content-body { margin: 0 !important; padding: 0 !important; }
    .sg-cartao, .sg-kpi { box-shadow: none; border: 1px solid #ddd; }
}

/* ---------------------------------------------------------- Responsivo */
@media (max-width: 767px) {
    .sg-titulo-pagina { padding: 1rem; margin-bottom: 1rem; }
    .sg-titulo-pagina__titulo { font-size: 1.2rem; }
    .sg-cartao__cabecalho, .sg-cartao__corpo, .sg-barra-ferramentas, .sg-paginacao { padding-left: 1rem; padding-right: 1rem; }
    .sg-filtros .sg-campo { max-width: none; }
    .sg-modal-fundo { padding: 0; align-items: flex-end; }
    .sg-modal { border-radius: 1rem 1rem 0 0; max-height: 94vh; }
    .sg-kpi__valor { font-size: 1.6rem; }
}

/* ---- Árvore de sistemas, acessibilidade e utilitários de página ---- */
.sg-arvore, .sg-arvore ul { list-style: none; margin: 0; padding-left: 1.1rem; border-left: 1px dashed var(--border); }
.sg-arvore { padding-left: .4rem; border-left: 0; }
.sg-arvore li { padding: .25rem 0 .25rem .4rem; font-size: .88rem; color: var(--text); }
.sg-arvore strong { color: var(--text-dark); font-weight: 600; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sg-secao { margin-top: 1.25rem; }
.sg-resultado-consulta { white-space: pre-wrap; line-height: 1.55; font-size: .9rem; color: var(--text-dark); }
.sg-lista-simples { margin: 0; padding-left: 1.1rem; font-size: .88rem; color: var(--text); }
.sg-lista-simples li + li { margin-top: .25rem; }
.sg-medidor-senha[data-forca="1"] span { width: 25%; }
.sg-tempo__item.is-nao-lida .sg-tempo__titulo { font-weight: 700; }
.sg-grade + .sg-alerta, .sg-grade + .sg-grade { margin-top: 1rem; }
.sg-alerta + .sg-abas, .sg-grade + .sg-abas { margin-top: 1.25rem; }
.sg-alerta ul.sg-lista-simples { margin-top: .35rem; }
