/* ============================================================================
   Casca de celular -- classes compartilhadas pelas telas que tem um layout
   proprio abaixo de 992px (o corte em que o template esconde o menu lateral).

   Regra: a MESMA pagina .razor tem dois blocos, .desktop-so e .celular-so. Os dois
   usam os mesmos campos, metodos e modais; so a casca muda. A primeira tela
   (financeiro, secao 359) tem o CSS dentro do proprio .razor; as seguintes
   (projetos, tarefas) usam este arquivo.
   ============================================================================ */

.celular-so { display: none; }

@media (max-width: 991.98px) {
    .desktop-so { display: none !important; }
    .celular-so { display: block; margin: -1rem -12px 0; padding-bottom: 96px; background: #f3f5f9; min-height: calc(100vh - 60px); }

    /* cabecalho colorido */
    .cel-topo { padding: 18px 20px 16px; background: var(--tenant-cor, rgb(var(--primary-rgb, 47, 92, 200))); color: var(--tenant-cor-texto, #fff); display: flex; flex-direction: column; gap: 12px; }
    .cel-rotulo { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; opacity: .85; }
    .cel-titulo { font-size: 18px; font-weight: 800; line-height: 1.2; }
    .cel-topo-botao { height: 40px; min-width: 40px; padding: 0 12px; border: 1px solid rgba(255,255,255,.45); border-radius: 20px; background: rgba(255,255,255,.14); color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 6px; }
    .cel-numeros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .cel-numeros > div { padding: 8px 10px; border-radius: 12px; background: rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
    .cel-numeros span { font-size: 11px; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .cel-numeros strong { font-size: 16px; font-variant-numeric: tabular-nums; }
    .cel-busca-topo { height: 44px; padding: 0 14px; border-radius: 12px; background: rgba(255,255,255,.16); display: flex; align-items: center; gap: 10px; color: #fff; }
    .cel-busca-topo input { flex-grow: 1; border: 0; outline: 0; background: transparent; font-size: 14px; color: #fff; min-width: 0; }
    .cel-busca-topo input::placeholder { color: rgba(255,255,255,.7); }

    /* chips de filtro */
    .cel-chips { display: flex; gap: 8px; padding: 12px 16px 4px; overflow-x: auto; scrollbar-width: none; }
    .cel-chips::-webkit-scrollbar { display: none; }
    .cel-chips button { height: 36px; padding: 0 14px; border-radius: 18px; border: 1px solid #d5dae3; background: #fff; color: #1c2333; font-size: 13px; font-weight: 700; white-space: nowrap; flex-shrink: 0; display: flex; align-items: center; gap: 6px; }
    .cel-chips button.ativo { background: rgb(var(--primary-rgb, 47, 92, 200)); border-color: rgb(var(--primary-rgb, 47, 92, 200)); color: #fff; }
    .cel-chips button.vencido { color: #b42318; }
    .cel-chips button.vencido.ativo { background: #b42318; border-color: #b42318; color: #fff; }
    .cel-chips.pequenos { padding-top: 6px; }
    .cel-chips.pequenos button { height: 30px; padding: 0 10px; border: 0; font-size: 12px; font-weight: 800; }
    .cel-bolinha { width: 8px; height: 8px; border-radius: 4px; display: inline-block; flex-shrink: 0; }

    /* abas em faixa rolavel */
    .cel-abas { display: flex; gap: 4px; padding: 6px 16px 0; overflow-x: auto; scrollbar-width: none; background: #fff; border-bottom: 1px solid #e3e7ee; }
    .cel-abas::-webkit-scrollbar { display: none; }
    .cel-abas button { height: 42px; padding: 0 10px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #5b6478; font-size: 13px; font-weight: 700; white-space: nowrap; flex-shrink: 0; }
    .cel-abas button.ativo { color: rgb(var(--primary-rgb, 47, 92, 200)); border-bottom-color: rgb(var(--primary-rgb, 47, 92, 200)); font-weight: 800; }

    /* lista */
    .cel-lista { padding: 12px 16px 0; display: flex; flex-direction: column; gap: 14px; }
    .cel-grupo { display: flex; flex-direction: column; gap: 6px; }
    .cel-grupo-titulo { font-size: 12px; font-weight: 800; color: #5b6478; letter-spacing: .04em; text-transform: uppercase; display: flex; align-items: center; gap: 8px; }
    .cel-grupo-titulo.vencido { color: #b42318; }
    .cel-linha { min-height: 64px; width: 100%; padding: 10px 12px; border-radius: 14px; background: #fff; border: 1px solid #e3e7ee; display: flex; align-items: center; gap: 12px; text-align: left; color: #1c2333; }
    .cel-linha.vencida { border-color: #f3c6c2; }
    .cel-linha.apagada { opacity: .6; }
    .cel-faixa { width: 10px; height: 40px; border-radius: 5px; flex-shrink: 0; }
    .cel-icone { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 15px; background: #eef1f5; color: #5b6478; }
    .cel-texto { flex-grow: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
    .cel-desc { font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .cel-desc.riscada { text-decoration: line-through; }
    .cel-sub { font-size: 12px; color: #5b6478; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .cel-sub.vencido { color: #b42318; }
    .cel-direita { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
    .cel-pill { font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 10px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
    .cel-pill.verde { background: #e6f4ec; color: #146c43; }
    .cel-pill.ambar { background: #fff4e0; color: #8a5a00; }
    .cel-pill.vermelho { background: #fde8e6; color: #b42318; }
    .cel-pill.azul { background: #e3ecfb; color: #1f4fb0; }
    .cel-pill.cinza { background: #eef1f5; color: #5b6478; }
    .cel-avatar { width: 26px; height: 26px; border-radius: 13px; background: #5b6478; color: #fff; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
    .cel-avatar img { width: 100%; height: 100%; object-fit: cover; }
    .cel-avatares { display: flex; align-items: center; }
    .cel-avatares .cel-avatar + .cel-avatar { margin-left: -8px; border: 2px solid #fff; }

    /* cartao de projeto */
    .cel-cartao { width: 100%; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid #e3e7ee; display: flex; flex-direction: column; gap: 10px; text-align: left; color: #1c2333; }
    .cel-cartao.apagado { opacity: .75; }
    .cel-cartao-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
    .cel-cartao-nome { font-size: 16px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .cel-barra { height: 6px; border-radius: 3px; background: #eef1f5; overflow: hidden; }
    .cel-barra > div { height: 6px; background: rgb(var(--primary-rgb, 47, 92, 200)); }
    .cel-barra.verde > div { background: #146c43; }
    .cel-barra.ambar > div { background: #8a5a00; }

    /* cronometro rodando */
    .cel-timer { padding: 12px; border-radius: 14px; background: #1c2333; color: #fff; display: flex; align-items: center; gap: 12px; width: 100%; border: 0; text-align: left; }
    .cel-timer .cel-sub { color: rgba(255,255,255,.8); }
    .cel-timer-botao { width: 40px; height: 40px; border-radius: 20px; border: 0; background: #146c43; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .cel-timer-tempo { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }

    /* botao flutuante e folhas */
    /* bottom 92px: acima da barra de navegacao do template no celular (Dashboard/Customer/
       Supplier/Menu), que cobria o botao; e a esquerda, longe do balao do chat. */
    .cel-fab { position: fixed; left: 20px; right: auto; bottom: 92px; width: 56px; height: 56px; border-radius: 28px; border: 0; background: rgb(var(--primary-rgb, 47, 92, 200)); color: #fff; font-size: 22px; box-shadow: 0 8px 20px rgba(28,35,51,.25); z-index: 1060; display: flex; align-items: center; justify-content: center; }
    .cel-fab.largo { width: auto; padding: 0 20px 0 16px; border-radius: 28px; font-size: 14px; font-weight: 800; gap: 8px; }
    .cel-fundo { position: fixed; inset: 0; background: rgba(28,35,51,.55); z-index: 1065; }
    .cel-folha { position: fixed; left: 0; right: 0; bottom: 0; max-height: 88vh; overflow-y: auto; padding: 10px 20px 28px; border-radius: 24px 24px 0 0; background: #fff; z-index: 1066; }
    .cel-alca { display: block; width: 40px; height: 4px; border-radius: 2px; background: #d5dae3; margin: 0 auto 14px; }
    .cel-acoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 8px; }
    .cel-acoes .btn { height: 48px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
    .cel-campos { border-radius: 14px; border: 1px solid #e3e7ee; display: flex; flex-direction: column; }
    .cel-campos > div { min-height: 48px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #eef1f5; }
    .cel-campos > div:last-child { border-bottom: 0; }
    .cel-campos span { font-size: 13px; color: #5b6478; }
    .cel-campos strong { font-size: 14px; text-align: right; }
    .cel-vazio { padding: 24px 16px; text-align: center; color: #5b6478; font-size: 14px; }

    /* NF-e: barra fixa embaixo (assistente e formulario) e o rascunho como folha */
    .nfe-barra-cel { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1060; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #e3e7ee; display: flex; gap: 8px; align-items: center; }
    /* A barra tambem tem a classe .celular-so, que da min-height de tela inteira e margem
       negativa: sem zerar aqui, a barra fixa virava um painel branco cobrindo a pagina toda
       (assistente de NF-e no celular, 23/09/2026). */
    .nfe-barra-cel { min-height: 0 !important; margin: 0 !important; }
    .nfe-barra-cel .btn { height: 48px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
    .nfe-rascunho-col { display: none; }
    .nfe-rascunho-col.aberto { display: block; position: fixed; left: 0; right: 0; bottom: 0; max-height: 85vh; overflow-y: auto; z-index: 1066; padding: 0; }
    .nfe-rascunho-col.aberto > .card { border-radius: 24px 24px 0 0; border: 0; box-shadow: 0 -8px 30px rgba(28,35,51,.25); }
    .voucher-container { padding: 12px !important; }

    /* lancamento por foto: a camera e o botao grande */
    .foto-cel-camera { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 26px 18px; border-radius: 20px; background: rgb(var(--primary-rgb, 47, 92, 200)); color: #fff; text-align: center; cursor: pointer; box-shadow: 0 10px 24px rgba(28,35,51,.18); margin: 0; }
    .foto-cel-lente { width: 80px; height: 80px; border-radius: 40px; background: rgba(255,255,255,.16); display: flex; align-items: center; justify-content: center; font-size: 34px; }
    .foto-cel-titulo { font-size: 20px; font-weight: 800; }
    .foto-cel-apoio { font-size: 13px; opacity: .85; line-height: 1.4; max-width: 280px; }
    .foto-cel-miniatura { width: 96px; flex-shrink: 0; border-radius: 12px; border: 1px solid #d5dae3; background: #dfe4ec; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; overflow: hidden; margin: 0; cursor: pointer; font-size: 11px; font-weight: 700; color: #5b6478; }
    .foto-cel-miniatura img { width: 100%; height: 96px; object-fit: cover; }

    /* horas: a faixa de dias do mes */
    /* especificidade acima de .cel-chips button, que e a regra generica dos chips */
    .cel-chips .ts-dia-cel { height: 58px; min-width: 48px; border-radius: 12px; border: 0; background: rgba(255,255,255,.14); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; flex-shrink: 0; padding: 0 6px; }
    .cel-chips .ts-dia-cel.ativo { background: #fff; color: rgb(var(--primary-rgb, 47, 92, 200)); border-color: #fff; }
    .ts-dia-cel-nome { font-size: 10px; opacity: .85; }
    .ts-dia-cel-num { font-size: 13px; font-weight: 800; }
    .ts-dia-cel-min { font-size: 10px; font-weight: 800; font-variant-numeric: tabular-nums; }
    .task-page, .container-fluid.py-3:has(.nfe-barra-cel) { padding-bottom: 96px !important; }
}

/* =====================================================================
   Timesheet Report no celular (secao 393). Bloco .celular-so da pagina
   /erp/timesheet-report; prefixo ts-. Tudo aqui so aparece abaixo de 992px
   porque .celular-so e display:none no desktop.
   ===================================================================== */
.ts-pagina { padding: 12px 14px 0; font-family: inherit; color: #1B2559; }
.ts-topo { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.ts-titulo { margin: 0; font-size: 22px; font-weight: 800; flex-grow: 1; letter-spacing: -0.01em; }
.ts-btn-filtros { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; border: 1px solid #1B2559; border-radius: 10px; background: #fff; color: #1B2559; font-weight: 700; font-size: 14px; }
.ts-conta { background: #2F855A; color: #fff; border-radius: 999px; font-size: 11px; padding: 1px 6px; }
.ts-chips { display: flex; gap: 8px; overflow-x: auto; white-space: nowrap; margin-bottom: 10px; padding-bottom: 2px; }
.ts-chip { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border-radius: 999px; background: #fff; border: 1px solid #E5E7EB; font-size: 13px; font-weight: 600; flex-shrink: 0; }
.ts-chip-escuro { background: #1B2559; color: #fff; border-color: #1B2559; font-weight: 700; }
.ts-resumo { background: #fff; border: 1px solid #E5E7EB; border-radius: 16px; padding: 14px 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.ts-resumo > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ts-resumo > div + div { border-left: 1px solid #F0F2F5; padding-left: 10px; }
.ts-rotulo { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B7280; display: flex; align-items: center; gap: 4px; }
.ts-rotulo i { cursor: pointer; }
.ts-valor { font-size: 19px; font-weight: 800; letter-spacing: -0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ts-verde { color: #2F855A; }
.ts-sub { font-size: 12px; color: #6B7280; }
.ts-vazio { text-align: center; color: #6B7280; padding: 40px 0; }
.ts-dia { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B7280; padding: 6px 2px 4px; }
.ts-linha { flex-grow: 1; height: 1px; background: #E5E7EB; }
.ts-cartao { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 12px 14px; display: flex; gap: 12px; align-items: flex-start; margin-bottom: 8px; }
.ts-cartao.ts-marcado { border: 2px solid #2F855A; }
.ts-check { width: 22px; height: 22px; margin-top: 2px; flex-shrink: 0; accent-color: #2F855A; }
.ts-check-vazio { display: inline-block; }
.ts-corpo { display: flex; flex-direction: column; gap: 4px; flex-grow: 1; min-width: 0; }
.ts-cab { display: flex; align-items: center; gap: 8px; }
.ts-nome { font-weight: 800; font-size: 15px; flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ts-pill { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.ts-pill-ok { color: #2F855A; background: #EAF5EF; }
.ts-pill-aberto { color: #B45309; background: #FEF3C7; }
.ts-horas { display: flex; align-items: center; gap: 8px; font-size: 14px; font-variant-numeric: tabular-nums; }
.ts-seta { color: #9AA0A6; }
.ts-badge-horas { margin-left: auto; font-weight: 800; background: #EAF5EF; color: #2F855A; border-radius: 8px; padding: 2px 8px; white-space: nowrap; }
.ts-valores { display: flex; gap: 14px; font-size: 12px; color: #6B7280; flex-wrap: wrap; }
.ts-valores strong { color: #1B2559; }
.ts-editar { color: #6B7280; margin-top: 4px; cursor: pointer; }
.ts-barra { position: fixed; left: 0; right: 0; bottom: 64px; padding: 10px 14px; background: linear-gradient(to top, #f3f5f9 70%, rgba(243,245,249,0)); display: flex; gap: 8px; z-index: 1040; }
.ts-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 46px; padding: 0 14px; border: 0; border-radius: 12px; font-weight: 700; font-size: 14px; flex-grow: 1; }
.ts-btn:disabled { opacity: .5; }
.ts-btn-escuro { background: #1B2559; color: #fff; }
.ts-btn-verde { background: #2F855A; color: #fff; }
.ts-btn-claro { background: #fff; color: #1B2559; border: 1px solid #E5E7EB; }
.ts-btn-grande { height: 50px; font-size: 16px; font-weight: 800; width: 100%; }
.ts-btn-icone { width: 46px; height: 46px; border: 0; border-radius: 12px; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ts-btn-icone:disabled { opacity: .5; }
.ts-vermelho { background: #DC2626; }
.ts-selecao { flex-grow: 1; background: #fff; border: 1px solid #E5E7EB; border-radius: 16px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; box-shadow: 0 -8px 24px rgba(27,37,89,.12); }
.ts-selecao-totais { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 32px; gap: 6px; font-size: 11px; color: #6B7280; align-items: center; }
.ts-selecao-totais > div { display: flex; flex-direction: column; min-width: 0; }
.ts-selecao-totais strong { color: #1B2559; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ts-limpar { width: 32px; height: 32px; border: 0; border-radius: 50%; background: #F0F2F5; color: #1B2559; }
.ts-selecao-acoes { display: flex; gap: 8px; }
.ts-fundo { position: fixed; inset: 0; background: rgba(27,37,89,.45); z-index: 1060; }
.ts-folha { position: fixed; left: 0; right: 0; bottom: 0; max-height: 92vh; overflow-y: auto; background: #fff; border-radius: 22px 22px 0 0; padding: 10px 16px 24px; display: flex; flex-direction: column; gap: 12px; box-shadow: 0 -10px 30px rgba(27,37,89,.18); z-index: 1070; }
.ts-alca { width: 44px; height: 5px; border-radius: 999px; background: #D1D5DB; align-self: center; }
.ts-folha-cab { display: flex; align-items: center; gap: 10px; }
.ts-folha-cab h2 { margin: 0; font-size: 18px; font-weight: 800; flex-grow: 1; }
.ts-folha-cab a { font-size: 14px; font-weight: 700; color: #6B7280; text-decoration: none; margin-left: auto; }
.ts-grade-periodos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.ts-grade-periodos button { height: 36px; border: 1px solid #E5E7EB; border-radius: 10px; background: #fff; font-size: 12px; font-weight: 700; color: #1B2559; }
.ts-datas { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: end; }
.ts-datas label, .ts-campo { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: #6B7280; }
.ts-datas input, .ts-campo input, .ts-campo select { height: 44px; border: 1px solid #E5E7EB; border-radius: 10px; padding: 0 10px; font: inherit; font-size: 15px; color: #1B2559; background: #fff; }
.ts-datas > span { color: #9AA0A6; padding-bottom: 14px; }
.ts-segmento { display: flex; border: 1px solid #E5E7EB; border-radius: 10px; overflow: hidden; }
.ts-segmento button { flex: 1; height: 40px; border: 0; background: #fff; font-size: 14px; font-weight: 700; color: #1B2559; }
.ts-segmento button + button { border-left: 1px solid #E5E7EB; }
.ts-segmento button.ativo { background: #1B2559; color: #fff; }
.ts-opcao { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.ts-opcao .form-check-input { width: 22px; height: 22px; margin: 0; accent-color: #2F855A; }
.ts-horas-grande { display: flex; align-items: center; gap: 12px; background: #EAF5EF; border-radius: 12px; padding: 10px 14px; }
.ts-horas-grande > span { display: flex; flex-direction: column; }
.ts-horas-grande small { font-size: 11px; color: #276749; }
.ts-horas-grande strong { font-size: 18px; }
.ts-badge-grande { font-size: 16px; padding: 4px 10px; }
.ts-grade-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ts-centro { text-align: center; }

/* =====================================================================
   SuperAdmin no celular (secao 397/399): cartoes das listas de vendas,
   clientes e licencas. Prefixo sa-. So aparece abaixo de 992px porque
   .celular-so e display:none no desktop.
   ===================================================================== */
@media (max-width: 991.98px) {
    .sa-cartoes { padding: 10px 14px 0; display: flex; flex-direction: column; gap: 8px; }
    .sa-cartao { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; color: #1c2333; }
    .sa-cartao.apagado { opacity: .6; }
    .sa-cartao-cab { display: flex; align-items: center; gap: 8px; }
    .sa-cartao-cab strong { flex-grow: 1; font-size: 15px; overflow: hidden; text-overflow: ellipsis; }
    .sa-cartao-sub { font-size: 12px; color: #5b6478; }
    .sa-cartao-nums { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: #5b6478; }
    .sa-cartao-nums strong { color: #1c2333; }
    .sa-cartao-acoes { display: flex; gap: 8px; margin-top: 4px; }
    .sa-cartao-acoes button { flex: 1; height: 38px; border: 1px solid #E5E7EB; border-radius: 10px; background: #fff; color: #1c2333; font-size: 13px; font-weight: 700; }
    .sa-cartao-acoes button.perigo { color: #b42318; border-color: #f3c6c2; }
    .sa-cartao-acoes button.ok { color: #276749; border-color: #b7dfc6; }
    .sa-vazio { text-align: center; color: #5b6478; padding: 24px 12px; font-size: 14px; }
    .celular-so .cel-topo .form-select { height: 44px; border-radius: 12px; border: 0; }
}

/* =====================================================================
   Igreja no celular (secao 401): avatar de iniciais, WhatsApp no cartao,
   check-in, cartao de escala e bloco de data do evento. Prefixo ig-.
   ===================================================================== */
@media (max-width: 991.98px) {
    .ig-avatar { width: 42px; height: 42px; border-radius: 21px; background: #5C3D1E; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; flex-shrink: 0; }
    .ig-avatar.ok { background: #2F855A; }
    .ig-avatar.pequeno { width: 30px; height: 30px; border-radius: 15px; font-size: 11px; background: #B7C0D0; }
    .ig-avatar.pequeno.ok { background: #2F855A; }
    .ig-whats { width: 40px; height: 40px; border-radius: 12px; background: #EAF5EF; color: #2F855A; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
    .ig-lixo { color: #b42318; padding: 8px; flex-shrink: 0; }
    .ig-checkin { height: 40px; padding: 0 14px; border: 0; border-radius: 12px; background: #2F855A; color: #fff; font-weight: 800; font-size: 13px; flex-shrink: 0; }
    .ig-saida { width: 40px; height: 40px; border: 1px solid #d5dae3; border-radius: 12px; background: #fff; color: #1c2333; flex-shrink: 0; }
    .ig-codigo { display: flex; flex-direction: column; align-items: center; padding: 4px 8px; border-radius: 10px; background: #eef1f5; flex-shrink: 0; }
    .ig-codigo small { font-size: 9px; text-transform: uppercase; letter-spacing: .06em; color: #5b6478; }
    .ig-codigo strong { font-size: 15px; letter-spacing: .08em; }
    .ig-cartao { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
    .ig-cartao-cab { display: flex; align-items: center; gap: 8px; }
    .ig-cartao-acoes { display: flex; gap: 8px; margin-top: 4px; }
    .ig-cartao-acoes button { flex: 1; height: 38px; border: 1px solid #e3e7ee; border-radius: 10px; background: #fff; color: #1c2333; font-size: 13px; font-weight: 700; }
    .ig-cartao-acoes button.perigo { color: #b42318; border-color: #f3c6c2; }
    .ig-funcao { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid #f0f2f5; font-size: 14px; }
    .ig-funcao-nome { font-size: 12px; color: #5b6478; min-width: 76px; }
    .ig-pill { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
    .ig-pill.cinza { background: #eef1f5; color: #5b6478; }
    .ig-pill.laranja { background: #FFF7ED; color: #B45309; }
    .ig-pill.verde { background: #EAF5EF; color: #2F855A; }
    .ig-data { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 48px; padding: 6px 0; border-radius: 12px; background: #F0EBE3; color: #5C3D1E; flex-shrink: 0; }
    .ig-data small { font-size: 10px; text-transform: uppercase; font-weight: 700; }
    .ig-data strong { font-size: 20px; line-height: 1; }
    .celular-so .cel-topo .form-select { height: 44px; border-radius: 12px; border: 0; }
    .celular-so .cel-topo .cel-topo-botao input { accent-color: #fff; }
}

/* =====================================================================
   Escala de trabalho no celular (secao 405): dias em faixa, cartao de turno,
   cartao por pessoa com barra de horas. Prefixo esc-cel-.
   ===================================================================== */
@media (max-width: 991.98px) {
    .esc-cel-dias { display: flex; gap: 4px; }
    .esc-cel-dias button { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; padding: 6px 0; border: 0; border-radius: 12px; background: rgba(255,255,255,.16); color: #fff; font-size: 11px; font-weight: 700; }
    .esc-cel-dias button strong { font-size: 16px; line-height: 1.1; }
    .esc-cel-dias button small { font-size: 9px; opacity: .85; }
    .esc-cel-dias button small.aberto { color: #FDE68A; opacity: 1; }
    .esc-cel-dias button.ativo { background: #fff; color: rgb(var(--primary-rgb, 47, 92, 200)); }
    .esc-cel-dias button.hoje strong { text-decoration: underline; }
    .esc-cel-rascunho { border-style: dashed; opacity: .85; }
    .esc-cel-aberto { background: #FFF7ED; border: 1px dashed #E08A2E; }
    .esc-cel-horas { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; font-variant-numeric: tabular-nums; }
    .esc-cel-horas small { font-size: 12px; color: #5b6478; }
    .esc-cel-atribuir { height: 36px; padding: 0 12px; border-radius: 10px; background: #E08A2E; color: #fff; font-weight: 800; font-size: 13px; display: flex; align-items: center; flex-shrink: 0; }
    .esc-cel-pessoa { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
    .esc-cel-pessoa.excede { border-color: #f3c6c2; }
    .esc-cel-barra { height: 8px; border-radius: 999px; background: #F0F2F5; overflow: hidden; }
    .esc-cel-barra span { display: block; height: 100%; }
    .esc-cel-semana { display: flex; gap: 4px; }
    .esc-cel-semana button { flex: 1; min-width: 0; height: 30px; border: 0; border-radius: 6px; font-size: 10px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 2px; }
}

/* =====================================================================
   Painel da equipe no celular (secao 408). Prefixo eq-.
   ===================================================================== */
@media (max-width: 991.98px) {
    .eq-cartao { background: #fff; border: 1px solid #e3e7ee; border-left: 4px solid #d1d5db; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
    .eq-cartao.on { border-left-color: #2F855A; }
    .eq-atual { background: #EAF5EF; border-radius: 10px; padding: 8px 10px; font-size: 13px; }
    .eq-iniciar { height: 36px; padding: 0 12px; border: 0; border-radius: 10px; background: #5B54D6; color: #fff; font-weight: 800; font-size: 12px; flex-shrink: 0; }
    .eq-iniciar.claro { background: #fff; color: #5B54D6; border: 1px solid #5B54D6; }
    .eq-timer { background: #EAF5EF; border: 1px solid #b7dfc6; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
    .eq-tarefa { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #e3e7ee; border-radius: 12px; }
    .eq-play { width: 40px; height: 40px; border: 0; border-radius: 12px; background: #5B54D6; color: #fff; flex-shrink: 0; }
    .min-w-0 { min-width: 0; }
}

/* =====================================================================
   Hotel no celular (secao 410): bloco do quarto, cartao, botoes de acao e a
   barra de baixo da distribuicao. Prefixo ht-.
   ===================================================================== */
@media (max-width: 991.98px) {
    .ht-cartao { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; margin: 0; }
    .ht-cartao.ativo { border: 2px solid #0F8B8D; }
    .ht-cartao.conferir { border-style: dashed; border-color: #E08A2E; }
    .ht-cartao.marcado { border: 2px solid #0F8B8D; }
    .ht-cartao.apagado { opacity: .6; }
    .ht-quarto { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 54px; height: 54px; border-radius: 12px; flex-shrink: 0; }
    .ht-quarto strong { font-size: 18px; line-height: 1; }
    .ht-quarto small { font-size: 10px; margin-top: 2px; }
    .ht-quarto.cinza { background: #F0F2F5; color: #1c2333; }
    .ht-quarto.azul { background: #0F8B8D; color: #fff; }
    .ht-quarto.verde { background: #EAF5EF; color: #2F855A; }
    .ht-quarto.laranja { background: #FFF7ED; color: #B45309; }
    .ht-quarto.vermelho { background: #FEF2F2; color: #B91C1C; }
    .ht-acao { height: 40px; padding: 0 14px; border: 0; border-radius: 12px; background: #0F8B8D; color: #fff; font-weight: 800; font-size: 13px; flex-shrink: 0; }
    .ht-acao.verde { background: #2F855A; }
    .ht-acao.laranja { background: #B45309; }
    .ht-acao.vermelho { background: #B91C1C; }
    .ht-acao.claro { background: #fff; color: #1c2333; border: 1px solid #d5dae3; }
    .ht-barra { position: fixed; left: 0; right: 0; bottom: 64px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #e3e7ee; display: flex; flex-direction: column; gap: 8px; z-index: 1040; }
}

/* Hotel no celular, parte 2 (secao 411): dentro do quarto, manutencao, enxoval, quartos. */
@media (max-width: 991.98px) {
    .ht-cartao.bloqueado, .ht-cartao.falta { border-color: #FECACA; }
    .ht-cartao.comprar { border-color: #FDE68A; }
    .ht-cartao.ht-grade { display: grid; }
    .ht-acao.cinza { background: #E5E7EB; color: #6B7280; }
    .ht-acao:disabled { opacity: .75; }
    .ht-folha-quarto { gap: 10px; }
    .ht-quarto-topo { background: #0F8B8D; color: #fff; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
    .ht-quarto-topo .cel-rotulo, .ht-quarto-topo .cel-titulo { color: #fff; }
    .ht-tempo { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
    .ht-tempo small { font-size: 10px; opacity: .85; }
    .ht-tempo strong { font-size: 20px; }
    .ht-chegada { background: #FDE68A; color: #7C4A03; border-radius: 10px; padding: 6px 10px; font-size: 13px; font-weight: 700; }
    .ht-check { display: flex; flex-direction: column; gap: 6px; }
    .ht-check-item { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 12px; background: #fff; border: 1px solid #e3e7ee; border-radius: 12px; font-size: 15px; font-weight: 600; margin: 0; }
    .ht-check-item.ok { background: #EAF5EF; border-color: #B4E1C6; color: #2F855A; }
    .ht-check-item input { width: 22px; height: 22px; flex-shrink: 0; margin: 0; }
    .ht-bloco { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 10px 12px; }
    .ht-bloco-alerta { display: flex; align-items: center; gap: 10px; border-color: #FDE68A; background: #FFFBEB; }
    .ht-aviso { border-radius: 12px; padding: 10px 12px; font-size: 13px; font-weight: 700; }
    .ht-aviso.amarelo { background: #FDE68A; color: #7C4A03; }
    .ht-aviso.laranja { background: #FFEDD5; color: #9A3412; }
    .ht-aviso.vermelho { background: #FEE2E2; color: #991B1B; }
    .ht-grade { display: grid; grid-template-columns: 1.4fr .7fr .7fr .7fr .7fr; gap: 6px; align-items: center; text-align: center; font-size: 14px; }
    .ht-grade > :first-child { text-align: left; min-width: 0; }
    .ht-grade-cab { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B7280; padding: 4px 8px 0; }
    .ht-pill { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border-radius: 999px; background: #E6F3F7; color: #0F8B8D; font-size: 12px; font-weight: 800; white-space: nowrap; }
    .ht-pill.laranja { background: #FFF7ED; color: #B45309; }
    .ht-pessoa { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 0 12px; background: #fff; border: 1px solid #e3e7ee; border-radius: 12px; font-size: 15px; font-weight: 700; margin-bottom: 6px; }
}

/* Hotel no celular, parte 3 (secao 412): faixa de dias, fotos, grade de numeros, serie. */
@media (max-width: 991.98px) {
    a.ht-cartao, a.ht-cartao:hover { text-decoration: none; color: inherit; }
    .ht-rotulo { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B7280; }
    .ht-num { font-size: 24px; font-weight: 800; line-height: 1.1; }
    .ht-num small { font-size: 13px; font-weight: 600; color: #6B7280; }
    .ht-grade2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .ht-dias { display: flex; gap: 6px; padding: 10px 16px 4px; overflow-x: auto; scrollbar-width: none; }
    .ht-dias::-webkit-scrollbar { display: none; }
    .ht-dias button { flex: 0 0 48px; height: 56px; border-radius: 12px; border: 1px solid #e3e7ee; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
    .ht-dias button small { font-size: 10px; text-transform: uppercase; color: #6B7280; }
    .ht-dias button strong { font-size: 17px; }
    .ht-dias button.fds { background: #F7F8FA; }
    .ht-dias button.hoje { border-color: #0F8B8D; }
    .ht-dias button.ativo { background: #0F8B8D; border-color: #0F8B8D; color: #fff; }
    .ht-dias button.ativo small { color: rgba(255,255,255,.85); }
    .ht-fotos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    .ht-fotos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; display: block; }
    .ht-serie { display: flex; align-items: flex-end; gap: 2px; height: 64px; margin-top: 6px; }
    .ht-serie span { flex: 1; background: #0F8B8D; border-radius: 3px 3px 0 0; min-height: 2px; opacity: .85; }
    .ht-barra-prog { height: 6px; background: #EEF0F4; border-radius: 3px; overflow: hidden; }
    .ht-barra-prog > div { height: 100%; background: #2F855A; border-radius: 3px; }
}

/* =====================================================================
   Tela de PC com a linguagem do celular (secoes 415 e 416). Bloco GERADO por
   aplicar-416.pl a partir dos blocos de celular acima: as mesmas regras, so
   que sob .celular-so.ht-pc e a partir de 992px. Depois dele, os ajustes de
   tela grande (grade de cartoes, barra vira painel lateral, folha vira modal).
   Regenerar em vez de editar a mao quando o bloco de celular mudar.
   ===================================================================== */
@media (min-width: 992px) {
    .celular-so.ht-pc .cel-topo { padding: 18px 20px 16px; background: rgb(var(--primary-rgb, 47, 92, 200)); color: #fff; display: flex; flex-direction: column; gap: 12px; }
    .celular-so.ht-pc .cel-rotulo { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; opacity: .85; }
    .celular-so.ht-pc .cel-titulo { font-size: 18px; font-weight: 800; line-height: 1.2; }
    .celular-so.ht-pc .cel-topo-botao { height: 40px; min-width: 40px; padding: 0 12px; border: 1px solid rgba(255,255,255,.45); border-radius: 20px; background: rgba(255,255,255,.14); color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 6px; }
    .celular-so.ht-pc .cel-numeros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .celular-so.ht-pc .cel-numeros > div { padding: 8px 10px; border-radius: 12px; background: rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
    .celular-so.ht-pc .cel-numeros span { font-size: 11px; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .celular-so.ht-pc .cel-numeros strong { font-size: 16px; font-variant-numeric: tabular-nums; }
    .celular-so.ht-pc .cel-busca-topo { height: 44px; padding: 0 14px; border-radius: 12px; background: rgba(255,255,255,.16); display: flex; align-items: center; gap: 10px; color: #fff; }
    .celular-so.ht-pc .cel-busca-topo input { flex-grow: 1; border: 0; outline: 0; background: transparent; font-size: 14px; color: #fff; min-width: 0; }
    .celular-so.ht-pc .cel-busca-topo input::placeholder { color: rgba(255,255,255,.7); }
    .celular-so.ht-pc .cel-chips { display: flex; gap: 8px; padding: 12px 16px 4px; overflow-x: auto; scrollbar-width: none; }
    .celular-so.ht-pc .cel-chips::-webkit-scrollbar { display: none; }
    .celular-so.ht-pc .cel-chips button { height: 36px; padding: 0 14px; border-radius: 18px; border: 1px solid #d5dae3; background: #fff; color: #1c2333; font-size: 13px; font-weight: 700; white-space: nowrap; flex-shrink: 0; display: flex; align-items: center; gap: 6px; }
    .celular-so.ht-pc .cel-chips button.ativo { background: rgb(var(--primary-rgb, 47, 92, 200)); border-color: rgb(var(--primary-rgb, 47, 92, 200)); color: #fff; }
    .celular-so.ht-pc .cel-chips button.vencido { color: #b42318; }
    .celular-so.ht-pc .cel-chips button.vencido.ativo { background: #b42318; border-color: #b42318; color: #fff; }
    .celular-so.ht-pc .cel-chips.pequenos { padding-top: 6px; }
    .celular-so.ht-pc .cel-chips.pequenos button { height: 30px; padding: 0 10px; border: 0; font-size: 12px; font-weight: 800; }
    .celular-so.ht-pc .cel-bolinha { width: 8px; height: 8px; border-radius: 4px; display: inline-block; flex-shrink: 0; }
    .celular-so.ht-pc .cel-abas { display: flex; gap: 4px; padding: 6px 16px 0; overflow-x: auto; scrollbar-width: none; background: #fff; border-bottom: 1px solid #e3e7ee; }
    .celular-so.ht-pc .cel-abas::-webkit-scrollbar { display: none; }
    .celular-so.ht-pc .cel-abas button { height: 42px; padding: 0 10px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #5b6478; font-size: 13px; font-weight: 700; white-space: nowrap; flex-shrink: 0; }
    .celular-so.ht-pc .cel-abas button.ativo { color: rgb(var(--primary-rgb, 47, 92, 200)); border-bottom-color: rgb(var(--primary-rgb, 47, 92, 200)); font-weight: 800; }
    .celular-so.ht-pc .cel-lista { padding: 12px 16px 0; display: flex; flex-direction: column; gap: 14px; }
    .celular-so.ht-pc .cel-grupo { display: flex; flex-direction: column; gap: 6px; }
    .celular-so.ht-pc .cel-grupo-titulo { font-size: 12px; font-weight: 800; color: #5b6478; letter-spacing: .04em; text-transform: uppercase; display: flex; align-items: center; gap: 8px; }
    .celular-so.ht-pc .cel-grupo-titulo.vencido { color: #b42318; }
    .celular-so.ht-pc .cel-linha { min-height: 64px; width: 100%; padding: 10px 12px; border-radius: 14px; background: #fff; border: 1px solid #e3e7ee; display: flex; align-items: center; gap: 12px; text-align: left; color: #1c2333; }
    .celular-so.ht-pc .cel-linha.vencida { border-color: #f3c6c2; }
    .celular-so.ht-pc .cel-linha.apagada { opacity: .6; }
    .celular-so.ht-pc .cel-faixa { width: 10px; height: 40px; border-radius: 5px; flex-shrink: 0; }
    .celular-so.ht-pc .cel-icone { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 15px; background: #eef1f5; color: #5b6478; }
    .celular-so.ht-pc .cel-texto { flex-grow: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
    .celular-so.ht-pc .cel-desc { font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .celular-so.ht-pc .cel-desc.riscada { text-decoration: line-through; }
    .celular-so.ht-pc .cel-sub { font-size: 12px; color: #5b6478; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .celular-so.ht-pc .cel-sub.vencido { color: #b42318; }
    .celular-so.ht-pc .cel-direita { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
    .celular-so.ht-pc .cel-pill { font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 10px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
    .celular-so.ht-pc .cel-pill.verde { background: #e6f4ec; color: #146c43; }
    .celular-so.ht-pc .cel-pill.ambar { background: #fff4e0; color: #8a5a00; }
    .celular-so.ht-pc .cel-pill.vermelho { background: #fde8e6; color: #b42318; }
    .celular-so.ht-pc .cel-pill.azul { background: #e3ecfb; color: #1f4fb0; }
    .celular-so.ht-pc .cel-pill.cinza { background: #eef1f5; color: #5b6478; }
    .celular-so.ht-pc .cel-avatar { width: 26px; height: 26px; border-radius: 13px; background: #5b6478; color: #fff; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
    .celular-so.ht-pc .cel-avatar img { width: 100%; height: 100%; object-fit: cover; }
    .celular-so.ht-pc .cel-avatares { display: flex; align-items: center; }
    .celular-so.ht-pc .cel-avatares .cel-avatar + .cel-avatar { margin-left: -8px; border: 2px solid #fff; }
    .celular-so.ht-pc .cel-cartao { width: 100%; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid #e3e7ee; display: flex; flex-direction: column; gap: 10px; text-align: left; color: #1c2333; }
    .celular-so.ht-pc .cel-cartao.apagado { opacity: .75; }
    .celular-so.ht-pc .cel-cartao-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
    .celular-so.ht-pc .cel-cartao-nome { font-size: 16px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .celular-so.ht-pc .cel-barra { height: 6px; border-radius: 3px; background: #eef1f5; overflow: hidden; }
    .celular-so.ht-pc .cel-barra > div { height: 6px; background: rgb(var(--primary-rgb, 47, 92, 200)); }
    .celular-so.ht-pc .cel-barra.verde > div { background: #146c43; }
    .celular-so.ht-pc .cel-barra.ambar > div { background: #8a5a00; }
    .celular-so.ht-pc .cel-timer { padding: 12px; border-radius: 14px; background: #1c2333; color: #fff; display: flex; align-items: center; gap: 12px; width: 100%; border: 0; text-align: left; }
    .celular-so.ht-pc .cel-timer .cel-sub { color: rgba(255,255,255,.8); }
    .celular-so.ht-pc .cel-timer-botao { width: 40px; height: 40px; border-radius: 20px; border: 0; background: #146c43; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .celular-so.ht-pc .cel-timer-tempo { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
    .celular-so.ht-pc .cel-fab { position: fixed; left: 20px; right: auto; bottom: 92px; width: 56px; height: 56px; border-radius: 28px; border: 0; background: rgb(var(--primary-rgb, 47, 92, 200)); color: #fff; font-size: 22px; box-shadow: 0 8px 20px rgba(28,35,51,.25); z-index: 1060; display: flex; align-items: center; justify-content: center; }
    .celular-so.ht-pc .cel-fab.largo { width: auto; padding: 0 20px 0 16px; border-radius: 28px; font-size: 14px; font-weight: 800; gap: 8px; }
    .celular-so.ht-pc .cel-fundo { position: fixed; inset: 0; background: rgba(28,35,51,.55); z-index: 1065; }
    .celular-so.ht-pc .cel-folha { position: fixed; left: 0; right: 0; bottom: 0; max-height: 88vh; overflow-y: auto; padding: 10px 20px 28px; border-radius: 24px 24px 0 0; background: #fff; z-index: 1066; }
    .celular-so.ht-pc .cel-alca { display: block; width: 40px; height: 4px; border-radius: 2px; background: #d5dae3; margin: 0 auto 14px; }
    .celular-so.ht-pc .cel-acoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 8px; }
    .celular-so.ht-pc .cel-acoes .btn { height: 48px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
    .celular-so.ht-pc .cel-campos { border-radius: 14px; border: 1px solid #e3e7ee; display: flex; flex-direction: column; }
    .celular-so.ht-pc .cel-campos > div { min-height: 48px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #eef1f5; }
    .celular-so.ht-pc .cel-campos > div:last-child { border-bottom: 0; }
    .celular-so.ht-pc .cel-campos span { font-size: 13px; color: #5b6478; }
    .celular-so.ht-pc .cel-campos strong { font-size: 14px; text-align: right; }
    .celular-so.ht-pc .cel-vazio { padding: 24px 16px; text-align: center; color: #5b6478; font-size: 14px; }
    .celular-so.ht-pc .foto-cel-camera { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 26px 18px; border-radius: 20px; background: rgb(var(--primary-rgb, 47, 92, 200)); color: #fff; text-align: center; cursor: pointer; box-shadow: 0 10px 24px rgba(28,35,51,.18); margin: 0; }
    .celular-so.ht-pc .foto-cel-lente { width: 80px; height: 80px; border-radius: 40px; background: rgba(255,255,255,.16); display: flex; align-items: center; justify-content: center; font-size: 34px; }
    .celular-so.ht-pc .foto-cel-titulo { font-size: 20px; font-weight: 800; }
    .celular-so.ht-pc .foto-cel-apoio { font-size: 13px; opacity: .85; line-height: 1.4; max-width: 280px; }
    .celular-so.ht-pc .foto-cel-miniatura { width: 96px; flex-shrink: 0; border-radius: 12px; border: 1px solid #d5dae3; background: #dfe4ec; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; overflow: hidden; margin: 0; cursor: pointer; font-size: 11px; font-weight: 700; color: #5b6478; }
    .celular-so.ht-pc .foto-cel-miniatura img { width: 100%; height: 96px; object-fit: cover; }
    .celular-so.ht-pc .cel-chips .ts-dia-cel { height: 58px; min-width: 48px; border-radius: 12px; border: 0; background: rgba(255,255,255,.14); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; flex-shrink: 0; padding: 0 6px; }
    .celular-so.ht-pc .cel-chips .ts-dia-cel.ativo { background: #fff; color: rgb(var(--primary-rgb, 47, 92, 200)); border-color: #fff; }
    .celular-so.ht-pc .ts-dia-cel-nome { font-size: 10px; opacity: .85; }
    .celular-so.ht-pc .ts-dia-cel-num { font-size: 13px; font-weight: 800; }
    .celular-so.ht-pc .ts-dia-cel-min { font-size: 10px; font-weight: 800; font-variant-numeric: tabular-nums; }
    .celular-so.ht-pc .sa-cartoes { padding: 10px 14px 0; display: flex; flex-direction: column; gap: 8px; }
    .celular-so.ht-pc .sa-cartao { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; color: #1c2333; }
    .celular-so.ht-pc .sa-cartao.apagado { opacity: .6; }
    .celular-so.ht-pc .sa-cartao-cab { display: flex; align-items: center; gap: 8px; }
    .celular-so.ht-pc .sa-cartao-cab strong { flex-grow: 1; font-size: 15px; overflow: hidden; text-overflow: ellipsis; }
    .celular-so.ht-pc .sa-cartao-sub { font-size: 12px; color: #5b6478; }
    .celular-so.ht-pc .sa-cartao-nums { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: #5b6478; }
    .celular-so.ht-pc .sa-cartao-nums strong { color: #1c2333; }
    .celular-so.ht-pc .sa-cartao-acoes { display: flex; gap: 8px; margin-top: 4px; }
    .celular-so.ht-pc .sa-cartao-acoes button { flex: 1; height: 38px; border: 1px solid #E5E7EB; border-radius: 10px; background: #fff; color: #1c2333; font-size: 13px; font-weight: 700; }
    .celular-so.ht-pc .sa-cartao-acoes button.perigo { color: #b42318; border-color: #f3c6c2; }
    .celular-so.ht-pc .sa-cartao-acoes button.ok { color: #276749; border-color: #b7dfc6; }
    .celular-so.ht-pc .sa-vazio { text-align: center; color: #5b6478; padding: 24px 12px; font-size: 14px; }
    .celular-so.ht-pc .cel-topo .form-select { height: 44px; border-radius: 12px; border: 0; }
    .celular-so.ht-pc .ig-avatar { width: 42px; height: 42px; border-radius: 21px; background: #5C3D1E; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; flex-shrink: 0; }
    .celular-so.ht-pc .ig-avatar.ok { background: #2F855A; }
    .celular-so.ht-pc .ig-avatar.pequeno { width: 30px; height: 30px; border-radius: 15px; font-size: 11px; background: #B7C0D0; }
    .celular-so.ht-pc .ig-avatar.pequeno.ok { background: #2F855A; }
    .celular-so.ht-pc .ig-whats { width: 40px; height: 40px; border-radius: 12px; background: #EAF5EF; color: #2F855A; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
    .celular-so.ht-pc .ig-lixo { color: #b42318; padding: 8px; flex-shrink: 0; }
    .celular-so.ht-pc .ig-checkin { height: 40px; padding: 0 14px; border: 0; border-radius: 12px; background: #2F855A; color: #fff; font-weight: 800; font-size: 13px; flex-shrink: 0; }
    .celular-so.ht-pc .ig-saida { width: 40px; height: 40px; border: 1px solid #d5dae3; border-radius: 12px; background: #fff; color: #1c2333; flex-shrink: 0; }
    .celular-so.ht-pc .ig-codigo { display: flex; flex-direction: column; align-items: center; padding: 4px 8px; border-radius: 10px; background: #eef1f5; flex-shrink: 0; }
    .celular-so.ht-pc .ig-codigo small { font-size: 9px; text-transform: uppercase; letter-spacing: .06em; color: #5b6478; }
    .celular-so.ht-pc .ig-codigo strong { font-size: 15px; letter-spacing: .08em; }
    .celular-so.ht-pc .ig-cartao { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
    .celular-so.ht-pc .ig-cartao-cab { display: flex; align-items: center; gap: 8px; }
    .celular-so.ht-pc .ig-cartao-acoes { display: flex; gap: 8px; margin-top: 4px; }
    .celular-so.ht-pc .ig-cartao-acoes button { flex: 1; height: 38px; border: 1px solid #e3e7ee; border-radius: 10px; background: #fff; color: #1c2333; font-size: 13px; font-weight: 700; }
    .celular-so.ht-pc .ig-cartao-acoes button.perigo { color: #b42318; border-color: #f3c6c2; }
    .celular-so.ht-pc .ig-funcao { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid #f0f2f5; font-size: 14px; }
    .celular-so.ht-pc .ig-funcao-nome { font-size: 12px; color: #5b6478; min-width: 76px; }
    .celular-so.ht-pc .ig-pill { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
    .celular-so.ht-pc .ig-pill.cinza { background: #eef1f5; color: #5b6478; }
    .celular-so.ht-pc .ig-pill.laranja { background: #FFF7ED; color: #B45309; }
    .celular-so.ht-pc .ig-pill.verde { background: #EAF5EF; color: #2F855A; }
    .celular-so.ht-pc .ig-data { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 48px; padding: 6px 0; border-radius: 12px; background: #F0EBE3; color: #5C3D1E; flex-shrink: 0; }
    .celular-so.ht-pc .ig-data small { font-size: 10px; text-transform: uppercase; font-weight: 700; }
    .celular-so.ht-pc .ig-data strong { font-size: 20px; line-height: 1; }
    .celular-so.ht-pc .cel-topo .form-select { height: 44px; border-radius: 12px; border: 0; }
    .celular-so.ht-pc .cel-topo .cel-topo-botao input { accent-color: #fff; }
    .celular-so.ht-pc .esc-cel-dias { display: flex; gap: 4px; }
    .celular-so.ht-pc .esc-cel-dias button { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; padding: 6px 0; border: 0; border-radius: 12px; background: rgba(255,255,255,.16); color: #fff; font-size: 11px; font-weight: 700; }
    .celular-so.ht-pc .esc-cel-dias button strong { font-size: 16px; line-height: 1.1; }
    .celular-so.ht-pc .esc-cel-dias button small { font-size: 9px; opacity: .85; }
    .celular-so.ht-pc .esc-cel-dias button small.aberto { color: #FDE68A; opacity: 1; }
    .celular-so.ht-pc .esc-cel-dias button.ativo { background: #fff; color: rgb(var(--primary-rgb, 47, 92, 200)); }
    .celular-so.ht-pc .esc-cel-dias button.hoje strong { text-decoration: underline; }
    .celular-so.ht-pc .esc-cel-rascunho { border-style: dashed; opacity: .85; }
    .celular-so.ht-pc .esc-cel-aberto { background: #FFF7ED; border: 1px dashed #E08A2E; }
    .celular-so.ht-pc .esc-cel-horas { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; font-variant-numeric: tabular-nums; }
    .celular-so.ht-pc .esc-cel-horas small { font-size: 12px; color: #5b6478; }
    .celular-so.ht-pc .esc-cel-atribuir { height: 36px; padding: 0 12px; border-radius: 10px; background: #E08A2E; color: #fff; font-weight: 800; font-size: 13px; display: flex; align-items: center; flex-shrink: 0; }
    .celular-so.ht-pc .esc-cel-pessoa { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
    .celular-so.ht-pc .esc-cel-pessoa.excede { border-color: #f3c6c2; }
    .celular-so.ht-pc .esc-cel-barra { height: 8px; border-radius: 999px; background: #F0F2F5; overflow: hidden; }
    .celular-so.ht-pc .esc-cel-barra span { display: block; height: 100%; }
    .celular-so.ht-pc .esc-cel-semana { display: flex; gap: 4px; }
    .celular-so.ht-pc .esc-cel-semana button { flex: 1; min-width: 0; height: 30px; border: 0; border-radius: 6px; font-size: 10px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 2px; }
    .celular-so.ht-pc .eq-cartao { background: #fff; border: 1px solid #e3e7ee; border-left: 4px solid #d1d5db; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
    .celular-so.ht-pc .eq-cartao.on { border-left-color: #2F855A; }
    .celular-so.ht-pc .eq-atual { background: #EAF5EF; border-radius: 10px; padding: 8px 10px; font-size: 13px; }
    .celular-so.ht-pc .eq-iniciar { height: 36px; padding: 0 12px; border: 0; border-radius: 10px; background: #5B54D6; color: #fff; font-weight: 800; font-size: 12px; flex-shrink: 0; }
    .celular-so.ht-pc .eq-iniciar.claro { background: #fff; color: #5B54D6; border: 1px solid #5B54D6; }
    .celular-so.ht-pc .eq-timer { background: #EAF5EF; border: 1px solid #b7dfc6; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
    .celular-so.ht-pc .eq-tarefa { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #e3e7ee; border-radius: 12px; }
    .celular-so.ht-pc .eq-play { width: 40px; height: 40px; border: 0; border-radius: 12px; background: #5B54D6; color: #fff; flex-shrink: 0; }
    .celular-so.ht-pc .min-w-0 { min-width: 0; }
    .celular-so.ht-pc .ht-cartao { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; margin: 0; }
    .celular-so.ht-pc .ht-cartao.ativo { border: 2px solid #0F8B8D; }
    .celular-so.ht-pc .ht-cartao.conferir { border-style: dashed; border-color: #E08A2E; }
    .celular-so.ht-pc .ht-cartao.marcado { border: 2px solid #0F8B8D; }
    .celular-so.ht-pc .ht-cartao.apagado { opacity: .6; }
    .celular-so.ht-pc .ht-quarto { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 54px; height: 54px; border-radius: 12px; flex-shrink: 0; }
    .celular-so.ht-pc .ht-quarto strong { font-size: 18px; line-height: 1; }
    .celular-so.ht-pc .ht-quarto small { font-size: 10px; margin-top: 2px; }
    .celular-so.ht-pc .ht-quarto.cinza { background: #F0F2F5; color: #1c2333; }
    .celular-so.ht-pc .ht-quarto.azul { background: #0F8B8D; color: #fff; }
    .celular-so.ht-pc .ht-quarto.verde { background: #EAF5EF; color: #2F855A; }
    .celular-so.ht-pc .ht-quarto.laranja { background: #FFF7ED; color: #B45309; }
    .celular-so.ht-pc .ht-quarto.vermelho { background: #FEF2F2; color: #B91C1C; }
    .celular-so.ht-pc .ht-acao { height: 40px; padding: 0 14px; border: 0; border-radius: 12px; background: #0F8B8D; color: #fff; font-weight: 800; font-size: 13px; flex-shrink: 0; }
    .celular-so.ht-pc .ht-acao.verde { background: #2F855A; }
    .celular-so.ht-pc .ht-acao.laranja { background: #B45309; }
    .celular-so.ht-pc .ht-acao.vermelho { background: #B91C1C; }
    .celular-so.ht-pc .ht-acao.claro { background: #fff; color: #1c2333; border: 1px solid #d5dae3; }
    .celular-so.ht-pc .ht-barra { position: fixed; left: 0; right: 0; bottom: 64px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #e3e7ee; display: flex; flex-direction: column; gap: 8px; z-index: 1040; }
    .celular-so.ht-pc .ht-cartao.bloqueado, .celular-so.ht-pc .ht-cartao.falta { border-color: #FECACA; }
    .celular-so.ht-pc .ht-cartao.comprar { border-color: #FDE68A; }
    .celular-so.ht-pc .ht-cartao.ht-grade { display: grid; }
    .celular-so.ht-pc .ht-acao.cinza { background: #E5E7EB; color: #6B7280; }
    .celular-so.ht-pc .ht-acao:disabled { opacity: .75; }
    .celular-so.ht-pc .ht-folha-quarto { gap: 10px; }
    .celular-so.ht-pc .ht-quarto-topo { background: #0F8B8D; color: #fff; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
    .celular-so.ht-pc .ht-quarto-topo .cel-rotulo, .celular-so.ht-pc .ht-quarto-topo .cel-titulo { color: #fff; }
    .celular-so.ht-pc .ht-tempo { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
    .celular-so.ht-pc .ht-tempo small { font-size: 10px; opacity: .85; }
    .celular-so.ht-pc .ht-tempo strong { font-size: 20px; }
    .celular-so.ht-pc .ht-chegada { background: #FDE68A; color: #7C4A03; border-radius: 10px; padding: 6px 10px; font-size: 13px; font-weight: 700; }
    .celular-so.ht-pc .ht-check { display: flex; flex-direction: column; gap: 6px; }
    .celular-so.ht-pc .ht-check-item { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 12px; background: #fff; border: 1px solid #e3e7ee; border-radius: 12px; font-size: 15px; font-weight: 600; margin: 0; }
    .celular-so.ht-pc .ht-check-item.ok { background: #EAF5EF; border-color: #B4E1C6; color: #2F855A; }
    .celular-so.ht-pc .ht-check-item input { width: 22px; height: 22px; flex-shrink: 0; margin: 0; }
    .celular-so.ht-pc .ht-bloco { background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; padding: 10px 12px; }
    .celular-so.ht-pc .ht-bloco-alerta { display: flex; align-items: center; gap: 10px; border-color: #FDE68A; background: #FFFBEB; }
    .celular-so.ht-pc .ht-aviso { border-radius: 12px; padding: 10px 12px; font-size: 13px; font-weight: 700; }
    .celular-so.ht-pc .ht-aviso.amarelo { background: #FDE68A; color: #7C4A03; }
    .celular-so.ht-pc .ht-aviso.laranja { background: #FFEDD5; color: #9A3412; }
    .celular-so.ht-pc .ht-aviso.vermelho { background: #FEE2E2; color: #991B1B; }
    .celular-so.ht-pc .ht-grade { display: grid; grid-template-columns: 1.4fr .7fr .7fr .7fr .7fr; gap: 6px; align-items: center; text-align: center; font-size: 14px; }
    .celular-so.ht-pc .ht-grade > :first-child { text-align: left; min-width: 0; }
    .celular-so.ht-pc .ht-grade-cab { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B7280; padding: 4px 8px 0; }
    .celular-so.ht-pc .ht-pill { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border-radius: 999px; background: #E6F3F7; color: #0F8B8D; font-size: 12px; font-weight: 800; white-space: nowrap; }
    .celular-so.ht-pc .ht-pill.laranja { background: #FFF7ED; color: #B45309; }
    .celular-so.ht-pc .ht-pessoa { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 0 12px; background: #fff; border: 1px solid #e3e7ee; border-radius: 12px; font-size: 15px; font-weight: 700; margin-bottom: 6px; }
    .celular-so.ht-pc a.ht-cartao, .celular-so.ht-pc a.ht-cartao:hover { text-decoration: none; color: inherit; }
    .celular-so.ht-pc .ht-rotulo { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B7280; }
    .celular-so.ht-pc .ht-num { font-size: 24px; font-weight: 800; line-height: 1.1; }
    .celular-so.ht-pc .ht-num small { font-size: 13px; font-weight: 600; color: #6B7280; }
    .celular-so.ht-pc .ht-grade2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .celular-so.ht-pc .ht-dias { display: flex; gap: 6px; padding: 10px 16px 4px; overflow-x: auto; scrollbar-width: none; }
    .celular-so.ht-pc .ht-dias::-webkit-scrollbar { display: none; }
    .celular-so.ht-pc .ht-dias button { flex: 0 0 48px; height: 56px; border-radius: 12px; border: 1px solid #e3e7ee; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
    .celular-so.ht-pc .ht-dias button small { font-size: 10px; text-transform: uppercase; color: #6B7280; }
    .celular-so.ht-pc .ht-dias button strong { font-size: 17px; }
    .celular-so.ht-pc .ht-dias button.fds { background: #F7F8FA; }
    .celular-so.ht-pc .ht-dias button.hoje { border-color: #0F8B8D; }
    .celular-so.ht-pc .ht-dias button.ativo { background: #0F8B8D; border-color: #0F8B8D; color: #fff; }
    .celular-so.ht-pc .ht-dias button.ativo small { color: rgba(255,255,255,.85); }
    .celular-so.ht-pc .ht-fotos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    .celular-so.ht-pc .ht-fotos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; display: block; }
    .celular-so.ht-pc .ht-serie { display: flex; align-items: flex-end; gap: 2px; height: 64px; margin-top: 6px; }
    .celular-so.ht-pc .ht-serie span { flex: 1; background: #0F8B8D; border-radius: 3px 3px 0 0; min-height: 2px; opacity: .85; }
    .celular-so.ht-pc .ht-barra-prog { height: 6px; background: #EEF0F4; border-radius: 3px; overflow: hidden; }
    .celular-so.ht-pc .ht-barra-prog > div { height: 100%; background: #2F855A; border-radius: 3px; }

    /* --- ajustes de tela grande --- */
    .celular-so.ht-pc { display: block; position: relative; margin: 0; padding-bottom: 32px; min-height: 0; background: transparent; }
    .celular-so.ht-pc.com-barra { display: grid; grid-template-columns: minmax(0, 1fr) 380px; grid-template-rows: auto auto minmax(0, 1fr); column-gap: 20px; align-items: start; }
    .celular-so.ht-pc.oculta { display: none; }
    .desktop-antigo { display: none; }
    .desktop-antigo.forcada { display: block; position: relative; }
    .ht-pc-alternar { position: absolute; top: 14px; right: 20px; z-index: 5; height: 32px; padding: 0 12px; border-radius: 16px; border: 1px solid rgba(255,255,255,.55); background: rgba(255,255,255,.16); color: #fff; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; cursor: pointer; }
    .desktop-antigo .ht-pc-alternar, .celular-so.ht-pc.clara .ht-pc-alternar { top: 6px; right: 12px; border-color: #0F8B8D; background: #fff; color: #0F8B8D; }
    .celular-so.ht-pc .cel-topo { border-radius: 18px; padding: 18px 28px 16px; padding-right: 150px; }
    .celular-so.ht-pc .cel-topo .cel-titulo { font-size: 26px; }
    .celular-so.ht-pc .cel-numeros { max-width: 760px; }
    .celular-so.ht-pc .cel-chips { padding: 14px 4px 6px; flex-wrap: wrap; overflow: visible; white-space: normal; }
    .celular-so.ht-pc .cel-abas { padding-left: 4px; padding-right: 4px; }
    .celular-so.ht-pc .cel-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 12px; align-content: start; padding: 8px 4px 24px !important; }
    .celular-so.ht-pc .cel-lista > :not(.ht-cartao):not(.cel-linha):not(.cel-cartao):not(.eq-cartao):not(.ig-cartao):not(.sa-cartao):not(.ts-cartao) { grid-column: 1 / -1; }
    .celular-so.ht-pc .cel-lista > .ht-grade { grid-column: 1 / -1; }
    .celular-so.ht-pc .cel-grupo { display: contents; }
    .celular-so.ht-pc .cel-grupo > .cel-grupo-titulo { grid-column: 1 / -1; }
    .celular-so.ht-pc .ht-grade2 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
    .celular-so.ht-pc .ht-cartao { margin: 0; }
    .celular-so.ht-pc.com-barra > .cel-topo, .celular-so.ht-pc.com-barra > .cel-chips { grid-column: 1 / -1; }
    .celular-so.ht-pc.com-barra > .cel-lista { grid-column: 1; grid-row: 3; }
    .celular-so.ht-pc.com-barra > .ht-barra { grid-column: 2; grid-row: 3; position: sticky; top: 80px; left: auto; right: auto; bottom: auto; margin: 8px 4px 0 0; border: 1px solid #e3e7ee; border-radius: 16px; padding: 16px; gap: 12px; z-index: 1; }
    .celular-so.ht-pc.com-barra > .ht-barra .d-flex { flex-wrap: wrap; }
    .celular-so.ht-pc.com-barra > .ht-barra .ts-btn { flex: 1 1 100%; }
    .celular-so.ht-pc .ts-fundo, .celular-so.ht-pc .cel-fundo { z-index: 1060; }
    .celular-so.ht-pc .ts-folha, .celular-so.ht-pc .cel-folha { left: 50%; right: auto; bottom: auto; top: 8vh; width: 620px; max-height: 84vh; transform: translateX(-50%); border-radius: 22px; padding: 20px 24px 24px; }
    .celular-so.ht-pc .ts-alca, .celular-so.ht-pc .cel-alca { display: none; }
    .celular-so.ht-pc .cel-fab { left: auto; right: 40px; bottom: 32px; }
    .celular-so.ht-pc .cel-fab.largo { left: auto; right: 40px; width: auto; padding: 0 22px; }
    .celular-so.ht-pc .ht-dias { padding: 10px 4px 4px; }
    .celular-so.ht-pc .ht-dias button { flex: 0 0 64px; }
    .celular-so.ht-pc .ht-fotos { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .celular-so.ht-pc .ht-check { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }

    /* Timesheet: a pagina .ts-pagina e uma lista de cartoes com separadores de dia */
    .celular-so.ht-pc.ts-pagina { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 10px; align-content: start; padding: 12px 4px 24px; }
    .celular-so.ht-pc.ts-pagina > :not(.ts-cartao) { grid-column: 1 / -1; }
    .celular-so.ht-pc.ts-pagina .ts-chips { flex-wrap: wrap; overflow: visible; white-space: normal; }
    .celular-so.ht-pc.ts-pagina .ts-resumo { max-width: 900px; }
    .celular-so.ht-pc.ts-pagina .ts-topo { padding-right: 150px; }
    .celular-so.ht-pc.ts-pagina .ts-cartao { margin: 0; }

    /* Lancamento por foto: a camera grande no centro, nao esticada na largura toda */
    .celular-so.ht-pc .foto-cel-camera { max-width: 640px; margin: 0 auto; }
    .celular-so.ht-pc > .d-grid { max-width: 640px; margin-left: auto !important; margin-right: auto !important; }
}
