/* Pauta — identidade escura, densa, no espírito dos apps "Pro" da Apple.
   Acento único: índigo #7d7aff. Superfícies em degraus, hairlines, SF Pro + SF Mono. */
:root {
  --bg: #0d0d0f; --s1: #161618; --s2: #1c1c1e; --s3: #2c2c2e; --s4: #3a3a3c;
  --linha: rgba(255,255,255,.08); --linha2: rgba(255,255,255,.13);
  --tx: #f5f5f7; --tx2: #98989f; --tx3: #6e6e75;
  --ac: #7d7aff; --ac-suave: rgba(125,122,255,.16); --ac-borda: rgba(125,122,255,.42); --ac-tx: #b3b1ff; --ac-fundo: #5e5ce6;
  --ok: #30d158; --aviso: #ffd60a; --laranja: #ff9f0a; --erro: #ff453a; --erro-tx: #ff6961;
  --sans: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --r-ut: 8px; --r-card: 18px; --pill: 999px;
  --blur: saturate(180%) blur(20px);
  --topo: 52px;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--tx); font: 15px/1.45 var(--sans); letter-spacing: -0.01em; -webkit-font-smoothing: antialiased; font-variant-numeric: tabular-nums; }
h1, h2, h3 { text-wrap: balance; margin: 0; font-weight: 600; letter-spacing: -0.022em; }
p { text-wrap: pretty; }
a { color: var(--ac-tx); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { cursor: pointer; }
.mono, kbd, .mono-mix .pi-t { font-family: var(--mono); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.ic { width: 18px; height: 18px; flex: none; }
.flex1 { flex: 1; }
.nada { color: var(--tx3); }
.pre { white-space: pre-wrap; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--ac); outline-offset: 2px; border-radius: 6px; }
::selection { background: rgba(125,122,255,.4); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 10px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }
kbd { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 5px; font-size: 11px; color: var(--tx2); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); }

/* ---------------------------------------------------------------- botões e controles */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; padding: 0 12px; border: 0; border-radius: var(--r-ut); background: var(--s3); color: var(--tx); font-size: 14px; white-space: nowrap; text-decoration: none !important; transition: background .15s, transform .15s, opacity .15s; }
.btn .ic { width: 16px; height: 16px; }
.btn:hover { background: var(--s4); }
.btn:active { transform: scale(.97); }
.btn.pri { background: var(--ac); color: #fff; font-weight: 600; border-radius: var(--pill); padding: 0 16px; }
.btn.pri:hover { background: #8c89ff; }
.btn.fantasma { background: transparent; color: var(--tx2); }
.btn.fantasma:hover { background: var(--s2); color: var(--tx); }
.btn.ic { width: 32px; padding: 0; }
.btn.peq { height: 28px; font-size: 13px; padding: 0 10px; }
.btn.pri.peq { padding: 0 12px; }
.btn.mini { width: 26px; height: 26px; }
.btn.grande { height: 46px; font-size: 16px; width: 100%; }
.btn.perigo { background: transparent; color: var(--erro-tx); }
.btn.perigo:hover { background: rgba(255,69,58,.12); }
.btn.perigo-cheio { background: var(--erro); color: #fff; font-weight: 600; border-radius: var(--pill); padding: 0 16px; }
.btn:disabled { opacity: .45; pointer-events: none; }
.sync.girando .ic { animation: girar 1s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }

.chip { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: var(--pill); border: 1px solid var(--linha); background: var(--s2); color: var(--tx2); font-size: 13px; white-space: nowrap; transition: background .15s, color .15s; }
.chip:hover { color: var(--tx); }
.chip.on { background: var(--ac-suave); color: #dddcff; border-color: var(--ac-borda); }
.chip-sel { appearance: none; -webkit-appearance: none; height: 28px; padding: 0 28px 0 12px; border-radius: var(--pill); border: 1px solid var(--linha); background: var(--s2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2398989f' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 8px center / 14px; color: var(--tx2); font-size: 13px; max-width: 100%; }
.chip-sel:hover { color: var(--tx); }
.chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.chips.rolar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px; }
.chips.rolar::-webkit-scrollbar { display: none; }
.sels { display: flex; gap: 6px; flex-wrap: wrap; }
.seg { display: inline-flex; padding: 2px; border-radius: var(--pill); background: var(--s2); border: 1px solid var(--linha); gap: 2px; }
.seg > button, .seg label span { display: inline-flex; align-items: center; justify-content: center; height: 28px; padding: 0 12px; border-radius: var(--pill); border: 0; background: transparent; color: var(--tx2); font-size: 13px; white-space: nowrap; cursor: pointer; transition: background .15s, color .15s; }
.seg label { position: relative; display: inline-flex; flex: 1; }
.seg label input { position: absolute; opacity: 0; pointer-events: none; }
.seg > button.on, .seg label input:checked + span { background: var(--s4); color: var(--tx); }
.seg label input:focus-visible + span { outline: 2px solid var(--ac); }
.seg.larga, .seg-chips.larga { display: flex; }
.seg.larga > button { flex: 1; }
.busca { position: relative; display: flex; align-items: center; }
.busca .ic { position: absolute; left: 11px; width: 15px; height: 15px; color: var(--tx3); pointer-events: none; }
.busca input { width: 100%; height: 34px; padding: 0 12px 0 32px; border-radius: var(--pill); border: 1px solid var(--linha); background: var(--s2); color: var(--tx); font-size: 14px; outline: none; }
.busca input:focus { border-color: var(--ac-borda); box-shadow: 0 0 0 3px rgba(125,122,255,.2); }
.busca.curta { width: 240px; }

.ponto { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #636366; flex: none; }
.ponto.crit, .ponto.vencido { background: var(--erro); }
.ponto.alta { background: var(--laranja); }
.ponto.media { background: var(--aviso); }
.ponto.normal, .ponto.neutro { background: #636366; }
.ponto.ok { background: var(--ok); }
.ponto.ac { background: var(--ac); }
.ponto.oco { background: transparent; box-shadow: inset 0 0 0 1px var(--tx3); }
.ponto.pulsa { animation: pulsa 2.2s ease-out infinite; }
@keyframes pulsa { 0% { box-shadow: 0 0 0 0 rgba(255,69,58,.55); } 70%, 100% { box-shadow: 0 0 0 7px rgba(255,69,58,0); } }
.ponto.alta.pulsa { animation-name: pulsa-l; }
@keyframes pulsa-l { 0% { box-shadow: 0 0 0 0 rgba(255,159,10,.55); } 70%, 100% { box-shadow: 0 0 0 7px rgba(255,159,10,0); } }
.etq { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 8px; border-radius: var(--pill); background: var(--s3); color: var(--tx2); font-size: 11.5px; white-space: nowrap; }
.etq .ic { width: 12px; height: 12px; }
.etq .ponto { width: 6px; height: 6px; }
.etq.fatal, .etq.erro { background: rgba(255,69,58,.14); color: var(--erro-tx); }
.etq.ok { background: rgba(48,209,88,.13); color: #5fe081; }
.etq.ac { background: var(--ac-suave); color: var(--ac-tx); }
.etq.neutro { background: rgba(255,255,255,.06); color: var(--tx3); }
a.etq { text-decoration: none; }
.estado { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--tx2); white-space: nowrap; }
.estado .ponto { width: 7px; height: 7px; }
.estado.ok .ponto { background: var(--ok); } .estado.crit .ponto { background: var(--erro); } .estado.media .ponto { background: var(--aviso); } .estado.ac .ponto { background: var(--ac); }
.conf { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; white-space: nowrap; }
.conf .ic { width: 13px; height: 13px; }
.conf.ok { color: #5fe081; } .conf.pend { color: #ffcc4d; }
.selo-novo { display: inline-flex; align-items: center; height: 17px; padding: 0 6px; border-radius: var(--pill); background: var(--ac); color: #fff; font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--s3); color: var(--tx); font-size: 12px; font-weight: 600; letter-spacing: 0; flex: none; }
.avatar.pj { border-radius: 9px; background: #26262b; box-shadow: inset 0 0 0 1px var(--linha2); }
.avatar.grande { width: 56px; height: 56px; font-size: 19px; }
.avatar.grande.pj { border-radius: 14px; }
.avatar.mini { width: 22px; height: 22px; font-size: 9.5px; }

/* ---------------------------------------------------------------- shell */
.shell { display: grid; grid-template-columns: 60px minmax(0, 1fr); min-height: 100vh; }
.trilho { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; align-items: center; padding: 10px 0 12px; background: var(--s1); border-right: 1px solid var(--linha); z-index: 30; }
.trilho .marca { display: flex; margin-bottom: 14px; border-radius: 9px; }
.tr-itens { display: flex; flex-direction: column; gap: 2px; flex: 1; overflow-y: auto; overflow-x: visible; scrollbar-width: none; padding: 0 8px; margin: 0 -8px; }
.tr-itens::-webkit-scrollbar { display: none; }
.tr-item { position: relative; display: flex; align-items: center; justify-content: center; width: 40px; height: 38px; border-radius: var(--r-ut); color: var(--tx2); background: none; border: 0; flex: none; transition: background .15s, color .15s; }
.tr-item .ic { width: 20px; height: 20px; }
.tr-item:hover { background: var(--s2); color: var(--tx); text-decoration: none; }
.tr-item.ativo { background: var(--s3); color: var(--tx); }
.tr-item.ativo::before { content: ""; position: absolute; left: -10px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ac); }
.tr-item.ativo .ic { color: var(--ac-tx); }
.dica { position: fixed; left: 64px; transform: translateY(-50%); margin-top: 0; display: flex; gap: 8px; align-items: center; padding: 6px 10px; border-radius: var(--r-ut); background: #2c2c2e; color: var(--tx); font-size: 13px; white-space: nowrap; box-shadow: 0 8px 24px rgba(0,0,0,.45); border: 1px solid var(--linha2); opacity: 0; pointer-events: none; transition: opacity .12s; z-index: 50; }
.tr-item:hover .dica, .tr-item:focus-visible .dica { opacity: 1; }
.dica kbd { margin-left: 2px; }
.tr-fim { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-top: 8px; }
.tr-eu { border: 0; background: none; padding: 0; border-radius: 50%; }
.tr-eu .avatar { box-shadow: 0 0 0 1.5px var(--ac-borda); }
.principal { min-width: 0; display: flex; flex-direction: column; }
.topo { position: sticky; top: 0; z-index: 25; height: var(--topo); display: flex; align-items: center; gap: 10px; padding: 0 16px 0 22px; background: rgba(13,13,15,.78); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-bottom: 1px solid var(--linha); }
.topo-marca, .topo-titulo, .so-movel { display: none; }
.migalhas { display: flex; align-items: center; min-width: 0; font-size: 13px; color: var(--tx2); white-space: nowrap; overflow: hidden; }
.migalhas a { color: var(--tx2); }
.migalhas a:hover { color: var(--tx); text-decoration: none; }
.migalhas .sep { margin: 0 7px; color: var(--tx3); }
.migalhas .atual { color: var(--tx); overflow: hidden; text-overflow: ellipsis; }
.cmd { display: flex; align-items: center; gap: 8px; height: 32px; width: 280px; padding: 0 8px 0 12px; border-radius: var(--pill); border: 1px solid var(--linha); background: var(--s2); color: var(--tx3); font-size: 13.5px; flex: none; transition: border-color .15s; }
.cmd .ic { width: 15px; height: 15px; }
.cmd span { flex: 1; text-align: left; }
.cmd:hover { border-color: var(--linha2); color: var(--tx2); }
.cmd:active { transform: scale(.98); }
.sino { position: relative; }
.sino .badge { position: absolute; top: 2px; right: 1px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--erro); color: #fff; font: 600 10px/16px var(--mono); font-style: normal; text-align: center; }
.selo-demo { display: inline-flex; align-items: center; gap: 7px; height: 24px; padding: 0 10px; border-radius: var(--pill); border: 1px solid var(--linha2); color: var(--tx2); font-size: 12px; white-space: nowrap; flex: none; }
.selo-demo i { width: 6px; height: 6px; border-radius: 50%; background: var(--ac); }
.selo-demo .sd-curto { display: none; }
.selo-demo.bloco { display: flex; justify-content: center; margin: 16px 0 0; height: 32px; }
.tela { flex: 1; min-width: 0; outline: none; }
.tela-pad { padding: 24px 28px 56px; max-width: 1480px; }
.abas-mob { display: none; }
.cab-tela { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.cab-tela h1 { font-size: 28px; }
.sub { color: var(--tx2); font-size: 13px; margin: 2px 0 0; }
.ac { color: var(--ac-tx); }

/* ---------------------------------------------------------------- master-detail */
.md { display: grid; grid-template-columns: minmax(330px, 400px) minmax(0, 1fr); height: calc(100vh - var(--topo)); }
.md-lista { display: flex; flex-direction: column; min-height: 0; background: var(--s1); border-right: 1px solid var(--linha); }
.md-cab { display: flex; align-items: center; gap: 6px; padding: 16px 16px 10px; }
.md-cab h1 { font-size: 28px; }
.md-filtros { display: grid; gap: 8px; padding: 0 16px 12px; border-bottom: 1px solid var(--linha); }
.md-itens { flex: 1; overflow-y: auto; padding: 2px 8px 24px; overscroll-behavior: contain; }
.grupo-tit { display: flex; justify-content: space-between; align-items: center; padding: 14px 10px 6px; color: var(--tx2); font-size: 12px; font-weight: 600; letter-spacing: .01em; }
.grupo-tit .mono { color: var(--tx3); font-weight: 400; }
.item { position: relative; display: flex; gap: 10px; align-items: flex-start; padding: 10px 10px; border-radius: 10px; color: var(--tx); text-decoration: none !important; min-height: 54px; outline-offset: -2px; transition: background .12s; }
.item:hover { background: var(--s2); }
.item.sel { background: #242428; box-shadow: inset 3px 0 0 var(--ac); }
.item > .ponto { margin-top: 6px; }
.it-corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.it-corpo b { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.it-corpo small { font-size: 12.5px; color: var(--tx2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.it-corpo .it-classe { color: var(--tx3); font-size: 12px; }
.item.proc .it-corpo b { font-size: 13.5px; font-weight: 600; letter-spacing: -.01em; }
.it-fim { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex: none; }
.it-data { font-size: 12px; color: var(--tx2); }
.it-trib { font-size: 11px; color: var(--tx3); }
.it-tags { display: flex; gap: 6px; align-items: center; }
.contador { font-size: 13px; font-weight: 600; color: var(--tx); }
.contador.crit, .contador.vencido { color: var(--erro-tx); }
.contador.alta { color: #ffb340; }
.doc-ic, .atd-ic { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9px; background: var(--s3); color: var(--tx2); flex: none; }
.atd-ult { color: var(--tx3) !important; }
.sug-banner { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px; border-radius: 12px; border: 1px solid var(--ac-borda); background: var(--ac-suave); color: var(--tx); text-align: left; }
.sug-banner > .ic:first-child { color: var(--ac-tx); }
.sug-banner span { flex: 1; display: flex; flex-direction: column; }
.sug-banner b { font-size: 13.5px; } .sug-banner small { font-size: 12px; color: var(--tx2); }
.md-detalhe { overflow-y: auto; min-width: 0; overscroll-behavior: contain; }
.voltar { display: none; align-items: center; gap: 4px; margin: 0 0 8px -6px; padding: 6px 8px; font-size: 15px; color: var(--ac-tx); }
.voltar .ic { width: 20px; height: 20px; }
.det-vazio { padding: 32px 28px; max-width: 760px; }
.dv-kpis { display: flex; gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--r-card); overflow: hidden; margin-bottom: 16px; }
.dv-kpis > div { flex: 1; background: var(--s1); padding: 14px 18px; display: flex; flex-direction: column; }
.dv-kpis .mono { font-size: 24px; font-weight: 600; letter-spacing: -.02em; }
.dv-kpis small { color: var(--tx2); font-size: 12px; }
.dv-fases, .fases { display: grid; gap: 4px; }
.dv-fases > div, .fases > a { display: grid; grid-template-columns: 110px 1fr 34px; align-items: center; gap: 10px; padding: 5px 0; font-size: 13px; color: var(--tx2); text-decoration: none !important; }
.dv-fases i, .fases i { height: 6px; border-radius: 3px; background: var(--s3); position: relative; overflow: hidden; }
.dv-fases i::after, .fases i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); background: var(--ac); border-radius: 3px; }
.dv-fases b, .fases b { text-align: right; color: var(--tx); font-weight: 400; }
.vazio { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 40px 20px; color: var(--tx2); }
.vazio > .ic { width: 30px; height: 30px; color: var(--tx3); margin-bottom: 4px; }
.vazio h3 { font-size: 17px; color: var(--tx); }
.vazio p { margin: 0; max-width: 40ch; font-size: 14px; }
.vazio .btn { margin-top: 8px; }
.nada-p { color: var(--tx3); font-size: 13.5px; margin: 4px 0; }
.nota-p { color: var(--tx2); font-size: 13px; margin: 12px 0 0; }

/* ---------------------------------------------------------------- detalhe */
.det { padding: 22px 28px 56px; max-width: 1180px; }
.det-cab h1 { font-size: 28px; margin: 8px 0 4px; }
.det-sub { color: var(--tx2); font-size: 14px; margin: 0; }
.det-sub a { color: var(--tx2); text-decoration: underline; text-decoration-color: var(--tx3); text-underline-offset: 2px; }
.det-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.det-acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 14px; }
.det-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.det-colunas { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 28px; }
.det-lateral > .bloco:first-child { margin-top: 26px; }
.cartao { background: var(--s1); border: 1px solid var(--linha); border-radius: var(--r-card); padding: 18px; }
.bloco { margin-top: 26px; }
.bloco > h2 { display: flex; align-items: center; gap: 8px; font-size: 15px; margin-bottom: 10px; }
.cont { color: var(--tx3); font-size: 12px; font-weight: 400; }
.dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin: 0; }
.dl > div { min-width: 0; }
.dl .span2 { grid-column: 1 / -1; }
.dl dt { font-size: 12px; color: var(--tx2); margin-bottom: 2px; }
.dl dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.dl.compacta { grid-template-columns: 1fr; gap: 6px; }
.dl.compacta > div { display: flex; justify-content: space-between; gap: 12px; }
.det-lateral .dl { grid-template-columns: 1fr; gap: 10px; }
.lista-simples { list-style: none; margin: 0; padding: 0; }
.lista-simples li a { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--linha); color: var(--tx); font-size: 13.5px; text-decoration: none; min-width: 0; }
.lista-simples li:first-child a { border-top: 0; }
.lista-simples li a > :first-child { flex: none; font-size: 12px; color: var(--tx2); }
.lista-simples li a > :last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-simples li a:hover > :last-child { color: var(--ac-tx); }
.mini-lista .item { padding: 8px 6px; min-height: 0; }
.aviso { display: flex; gap: 8px; align-items: center; color: #ffcc4d; font-size: 13px; margin-top: 12px; }

/* processo: cabeçalho mono */
.cnj-cab { background: var(--s1); border: 1px solid var(--linha); border-radius: var(--r-card); padding: 18px 22px 18px; }
.cc-linha1 { display: flex; align-items: center; gap: 6px 14px; flex-wrap: wrap; }
.cc-num-l { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.cc-num { font-size: 25px; font-weight: 600; letter-spacing: -.01em; line-height: 1.2; white-space: nowrap; }
.btn.cc-copiar { width: 30px; height: 30px; min-height: 30px; padding: 0; flex: none; }
.cc-selos { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cc-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 20px; margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--linha); }
.cc-grade > div { min-width: 0; }
.cc-grade .larga { grid-column: span 2; }
.cc-grade dt { font-family: var(--sans); font-size: 11.5px; color: var(--tx3); margin-bottom: 2px; letter-spacing: 0; }
.cc-grade dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.cc-grade dd.mono { font-size: 13.5px; }
.fase-sel { display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 0 4px 0 10px; border-radius: var(--r-ut); background: var(--s3); font-size: 13px; color: var(--tx2); }
.fase-sel select { border: 0; background: transparent; color: var(--tx); font-size: 14px; height: 30px; padding: 0 4px; outline: none; }
.fase-sel select option { background: var(--s2); }
.partes { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: stretch; }
.partes > div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rot { font-size: 12px; color: var(--tx2); }
.parte { flex: 1; display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border-radius: 14px; background: var(--s1); border: 1px solid var(--linha); }
.parte.nossa { border-color: var(--ac-borda); }
.parte .etq { align-self: flex-start; margin-bottom: 2px; }
.parte b { font-size: 15px; } .parte small { font-size: 12.5px; color: var(--tx2); }
.versus { align-self: center; color: var(--tx3); font-size: 18px; padding-top: 18px; }
.tl-bloco > h2 .tl-fonte { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 400; color: var(--tx3); }
.tl-fonte .ic { width: 13px; height: 13px; }
.linha-tempo { list-style: none; margin: 4px 0 0; padding: 0; position: relative; }
.linha-tempo::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 1px; background: var(--linha2); }
.tl-item { position: relative; padding: 0 0 18px 28px; }
.tl-ponto { position: absolute; left: 3px; top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--s4); box-shadow: 0 0 0 3px var(--bg); }
.tl-item.intim .tl-ponto { background: var(--tx2); }
.tl-item.marco .tl-ponto { background: var(--tx); }
.tl-item.novo .tl-ponto { background: var(--ac); box-shadow: 0 0 0 3px var(--bg), 0 0 0 6px rgba(125,122,255,.25); }
.tl-cab { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.tl-data { font-size: 12.5px; color: var(--tx2); }
.tl-cab b { font-size: 14px; }
.tl-src { margin-left: auto; font-size: 11px; color: var(--tx3); }
.tl-item p { margin: 3px 0 0; font-size: 14px; color: #c7c7cc; line-height: 1.45; }
.tl-item.novo p { color: var(--tx); }
.tl-sug { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 8px; padding: 10px 12px; border-radius: 12px; background: rgba(125,122,255,.1); border: 1px solid var(--ac-borda); }
.tl-sug > .ic { color: var(--ac-tx); }
.tl-sug > div { flex: 1; min-width: 200px; display: flex; flex-direction: column; }
.tl-sug b { font-size: 13.5px; } .tl-sug span { font-size: 12.5px; color: var(--tx2); }
.tl-prazo { display: inline-flex; gap: 6px; align-items: center; margin-top: 6px; font-size: 12.5px; }
.tl-prazo .ic { width: 14px; height: 14px; }

/* prazos: contagem regressiva, conferência, memória */
.cd-grande { display: flex; flex-direction: column; }
.cd-grande .rot { display: flex; align-items: center; gap: 8px; }
.cd-grande .rot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #636366; }
.cd-grande.crit .rot::before, .cd-grande.vencido .rot::before { background: var(--erro); animation: pulsa 2.2s ease-out infinite; }
.cd-grande.alta .rot::before { background: var(--laranja); }
.cd-grande.media .rot::before { background: var(--aviso); }
.cd-grande.ok .rot::before { background: var(--ok); }
.cd-grande > b { font-size: 40px; font-weight: 600; letter-spacing: -.03em; margin: 4px 0 10px; line-height: 1.1; }
.cd-linhas { display: grid; grid-template-columns: 110px 1fr; gap: 4px 12px; font-size: 13px; }
.cd-linhas > span:nth-child(odd) { color: var(--tx2); }
.conferencia { display: flex; flex-direction: column; justify-content: space-between; gap: 14px; }
.cf-est { display: flex; gap: 12px; align-items: flex-start; }
.cf-est > .ic { width: 28px; height: 28px; }
.conferencia.ok .cf-est > .ic { color: var(--ok); }
.conferencia.pend .cf-est > .ic { color: #ffcc4d; }
.cf-est b { display: block; font-size: 16px; }
.cf-est span { font-size: 13px; color: var(--tx2); }
.conferencia .btn { align-self: flex-start; }
.cf-bloq { display: flex; gap: 8px; align-items: center; margin: 0; font-size: 13px; color: var(--tx2); }
.cf-bloq .ic { width: 15px; height: 15px; }
.memoria-grade { display: grid; grid-template-columns: minmax(250px, 340px) minmax(0, 1fr); gap: 24px; align-items: start; }
.memoria { list-style: none; margin: 0; padding: 0; }
.memoria li { display: grid; grid-template-columns: 1fr auto; gap: 0 12px; padding: 8px 0; border-top: 1px solid var(--linha); }
.memoria li:first-child { border-top: 0; padding-top: 0; }
.me-t { font-size: 13px; color: var(--tx2); }
.me-d { font-size: 13.5px; text-align: right; }
.memoria small { grid-column: 1 / -1; font-size: 12px; color: var(--tx3); }
.memoria li.fim .me-t { color: var(--tx); font-weight: 600; }
.memoria li.fim .me-d { color: var(--ac-tx); font-weight: 600; }
.excluidos { font-size: 12.5px; color: var(--tx2); margin: 10px 0 0; }
.excluidos b { color: var(--tx); font-weight: 600; }
.mini-cal { display: flex; flex-wrap: wrap; gap: 16px; }
.mc-mes { width: 236px; }
.mc-tit { font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.mc-sem, .mc-grade { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.mc-sem span { font-size: 10.5px; color: var(--tx3); text-align: center; }
.mc-d { position: relative; height: 30px; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 12px; color: var(--tx2); }
.mc-d b { font-weight: 400; }
.mc-d.branco { visibility: hidden; }
.mc-d.fds { color: var(--tx3); background: rgba(255,255,255,.025); }
.mc-d.feriado { background: rgba(255,159,10,.15); color: #ffb340; }
.mc-d.suspenso { color: var(--tx3); background: repeating-linear-gradient(135deg, rgba(255,255,255,.07) 0 3px, transparent 3px 6px); }
.mc-d.contado { background: rgba(125,122,255,.17); color: var(--tx); }
.mc-d i { position: absolute; right: 3px; bottom: 1px; font-size: 8.5px; font-style: normal; color: var(--ac-tx); line-height: 1; }
.mc-d.fora { opacity: .38; }
.mc-d.m-disp { box-shadow: inset 0 0 0 1px var(--tx2); }
.mc-d.m-pub { box-shadow: inset 0 0 0 1px var(--tx3); }
.mc-d.m-ini { box-shadow: inset 0 0 0 1.5px var(--ac); }
.mc-d.m-prorrog b { text-decoration: line-through; }
.mc-d.m-venc { background: var(--ac); color: #fff; opacity: 1; }
.mc-d.m-venc b { font-weight: 600; }
.mc-d.hoje::after { content: ""; position: absolute; top: 3px; left: 50%; width: 3px; height: 3px; margin-left: -1.5px; border-radius: 50%; background: var(--tx); }
.mc-nota { width: 100%; font-size: 12px; color: var(--tx3); margin: 0; }
.mc-legenda { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; font-size: 11.5px; color: var(--tx2); }
.mc-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.lg { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.lg.contado { background: rgba(125,122,255,.4); } .lg.fds { background: rgba(255,255,255,.08); } .lg.feriado { background: rgba(255,159,10,.4); }
.lg.suspenso { background: repeating-linear-gradient(135deg, rgba(255,255,255,.3) 0 2px, transparent 2px 4px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.15); } .lg.venc { background: var(--ac); }
.origem-mov { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: var(--s1); border: 1px solid var(--linha); }
.origem-mov p { margin: 4px 0 0; font-size: 13.5px; color: #c7c7cc; }

/* ---------------------------------------------------------------- painel */
.kpis { display: flex; flex-wrap: wrap; gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--r-card); overflow: hidden; }
.kpi { flex: 1 1 180px; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; background: var(--s1); color: var(--tx); text-decoration: none !important; border: 0; text-align: left; transition: background .15s; }
a.kpi:hover, button.kpi:hover { background: var(--s2); }
.kpi b { font-size: clamp(20px, 1.95vw, 28px); font-weight: 600; letter-spacing: -.025em; line-height: 1.15; white-space: nowrap; }
.financeiro .kpi { flex-basis: 200px; }
.kpi b.neg { color: var(--tx); }
.kpi small { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--tx2); }
.kpi small .ponto { width: 6px; height: 6px; }
.linha15 { margin-top: 16px; padding: 16px 0 14px; }
.l15-cab { display: flex; align-items: baseline; gap: 10px; padding: 0 18px 12px; flex-wrap: wrap; }
.l15-cab h2, .c-cab h2 { font-size: 17px; }
.l15-rolagem { overflow-x: auto; padding: 0 12px 4px; scroll-snap-type: x proximity; }
.l15-grade { display: grid; gap: 4px; min-width: 1080px; }
.l15-dia { display: flex; flex-direction: column; gap: 6px; padding: 8px 6px; border-radius: 12px; background: var(--s2); min-height: 172px; scroll-snap-align: start; }
.l15-dia.nao-util { background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 6px, transparent 6px 12px), var(--s1); box-shadow: inset 0 0 0 1px var(--linha); }
.l15-dia.hoje { background: #212126; box-shadow: inset 0 2px 0 var(--ac); }
.l15-data { display: flex; align-items: baseline; gap: 6px; padding: 0 2px; flex-wrap: wrap; }
.l15-data span { font-size: 11px; color: var(--tx2); }
.l15-dia.hoje .l15-data span { color: var(--ac-tx); font-weight: 600; }
.l15-data b { font-size: 17px; font-weight: 600; }
.l15-data em { font-style: normal; font-size: 10px; color: #ffb340; width: 100%; }
.l15-itens { display: flex; flex-direction: column; gap: 4px; }
.l15-pz { display: grid; grid-template-columns: 7px minmax(0, 1fr); gap: 3px 6px; align-items: center; padding: 6px 7px; border-radius: 8px; background: var(--s3); color: var(--tx); font-size: 12px; line-height: 1.25; text-decoration: none !important; transition: background .12s; }
.l15-pz:hover { background: var(--s4); }
.l15-pz span { grid-column: 1 / -1; hyphens: none; -webkit-hyphens: none; word-break: normal; overflow-wrap: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.l15-pz.fatal span { font-weight: 600; }
.l15-pz small { font-size: 10.5px; color: var(--tx3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.l15-pz .ponto { width: 7px; height: 7px; }
.painel-grade { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 16px; margin-top: 16px; align-items: start; }
.painel-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.c-cab { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.movs, .ev-lista { list-style: none; margin: 0; padding: 0; }
.movs li a { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 10px; padding: 10px 0; border-top: 1px solid var(--linha); color: var(--tx); text-decoration: none; }
.movs li:first-child a { border-top: 0; }
.mv-data { font-size: 12px; color: var(--tx2); padding-top: 1px; }
.movs li.novo .mv-data { color: var(--ac-tx); }
.mv-corpo { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mv-l1 { display: flex; align-items: center; gap: 8px; min-width: 0; }
.mv-l1 b { font-size: 13.5px; }
.mv-cnj { margin-left: auto; font-size: 11.5px; color: var(--tx3); white-space: nowrap; }
.mv-t { font-size: 13px; color: var(--tx2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.movs li a:hover .mv-t { color: #c7c7cc; }
.ev-lista li > a, .ev-lista li > button { display: flex; gap: 12px; align-items: center; width: 100%; padding: 9px 0; border: 0; border-top: 1px solid var(--linha); background: none; color: var(--tx); text-align: left; text-decoration: none; }
.ev-lista li:first-child > a, .ev-lista li:first-child > button { border-top: 0; }
.ev-h { font-size: 12.5px; color: var(--tx2); width: 84px; flex: none; }
.ev-c { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ev-c b { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-c small { font-size: 12px; color: var(--tx2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-lista.grande li > button { padding: 12px 0; }

/* ---------------------------------------------------------------- agenda */
.ag-nav { display: flex; align-items: center; gap: 6px; }
.ag-rot { font-size: 14px; margin-left: 6px; color: var(--tx2); }
.mes-rot { font-family: var(--sans); color: var(--tx); min-width: 150px; text-align: center; margin: 0; }
.ag-semana { padding: 0; overflow: hidden; }
.ag-cab, .ag-corpo { display: grid; grid-template-columns: 52px repeat(7, minmax(0, 1fr)); }
.ag-cab { border-bottom: 1px solid var(--linha); }
.ag-dia-cab { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 8px 10px; border: 0; border-left: 1px solid var(--linha); background: none; color: var(--tx); text-align: left; min-width: 0; }
.ag-dia-cab span { font-size: 11.5px; color: var(--tx2); }
.ag-dia-cab b { font-size: 18px; font-weight: 600; }
.ag-dia-cab.hoje b { color: var(--ac-tx); }
.ag-dia-cab em { display: inline-flex; align-items: center; gap: 4px; font-style: normal; font-size: 10.5px; color: var(--tx2); white-space: nowrap; }
.ag-dia-cab em .ponto { width: 6px; height: 6px; }
.ag-dia-cab.nao-util, .ag-col.nao-util { background-color: rgba(255,255,255,.018); }
.ag-corpo { max-height: calc(100vh - 250px); min-height: 360px; overflow-y: auto; position: relative; }
.ag-horas span { display: block; height: var(--alt); font-size: 11px; color: var(--tx3); text-align: right; padding: 0 8px 0 0; transform: translateY(-7px); }
.ag-horas span:first-child { visibility: hidden; }
.ag-col { position: relative; height: calc(var(--alt) * 13); border-left: 1px solid var(--linha); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--alt) - 1px), rgba(255,255,255,.05) calc(var(--alt) - 1px), rgba(255,255,255,.05) var(--alt)); }
.ag-ev { position: absolute; display: flex; flex-direction: column; gap: 1px; padding: 3px 6px; border: 0; border-left: 2px solid var(--tx3); border-radius: 6px; background: var(--s3); color: var(--tx); text-align: left; overflow: hidden; font-size: 11.5px; line-height: 1.25; transition: filter .12s; }
.ag-ev:hover { filter: brightness(1.15); z-index: 2; }
.ag-ev span { font-size: 10.5px; color: var(--tx2); }
.ag-ev b { font-size: 11.5px; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ag-ev small { font-size: 10.5px; color: var(--tx2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-ev.t-audiencia, .ag-ev.t-sustentacao-oral { background: rgba(125,122,255,.22); border-left-color: var(--ac); }
.ag-ev.curto { flex-direction: row; gap: 5px; align-items: baseline; }
.ag-ev.curto b { -webkit-line-clamp: 1; }
.ag-ev.cancelado { opacity: .45; text-decoration: line-through; }
.ag-agora { position: absolute; left: 0; right: 0; border-top: 1.5px solid var(--erro); z-index: 3; pointer-events: none; }
.ag-agora::before { content: ""; position: absolute; left: -4px; top: -4.5px; width: 7px; height: 7px; border-radius: 50%; background: var(--erro); }
.ag-movel { display: none; }
.ag-proximos { margin-top: 16px; }
.ag-tira { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ag-tira button { position: relative; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 8px 0; border-radius: 12px; border: 0; background: var(--s1); color: var(--tx); }
.ag-tira button span { font-size: 11px; color: var(--tx2); }
.ag-tira button b { font-size: 17px; }
.ag-tira button i { position: absolute; bottom: 5px; width: 4px; height: 4px; border-radius: 50%; background: var(--tx2); }
.ag-tira button.hoje b { color: var(--ac-tx); }
.ag-tira button.on { background: var(--ac); }
.ag-tira button.on span, .ag-tira button.on b { color: #fff; }
.ag-tira button.on i { background: #fff; }
.ag-dia-tit { font-size: 17px; margin: 18px 0 6px; }

/* ---------------------------------------------------------------- tarefas */
.prod { display: flex; gap: 20px; align-items: center; padding: 14px 18px; margin-bottom: 16px; }
.prod-tit h2 { font-size: 15px; }
.prod-lista { flex: 1; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px 20px; }
.prod-it { display: grid; grid-template-columns: 22px 70px minmax(0, 1fr) 24px; align-items: center; gap: 2px 8px; }
.prod-it .avatar { width: 22px; height: 22px; font-size: 9px; }
.pi-n { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prod-it i { height: 6px; border-radius: 3px; background: var(--s3); position: relative; overflow: hidden; }
.prod-it i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); background: var(--ac); border-radius: 3px; }
.prod-it b { font-size: 13px; text-align: right; }
.prod-it small { grid-column: 2 / -1; font-size: 11px; color: var(--tx3); }
.kanban { display: grid; grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: 12px; align-items: start; }
.coluna { background: var(--s1); border: 1px solid var(--linha); border-radius: var(--r-card); padding: 10px; min-height: 320px; transition: box-shadow .15s, background .15s; }
.coluna.alvo { box-shadow: inset 0 0 0 2px var(--ac); background: #19191d; }
.coluna > header { display: flex; align-items: center; gap: 8px; padding: 4px 6px 10px; }
.coluna > header b { font-size: 14px; }
.coluna > header .mono { font-size: 12px; color: var(--tx2); flex: 1; }
.col-cards { display: flex; flex-direction: column; gap: 8px; }
.card-t { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 12px; background: var(--s2); border: 1px solid var(--linha); cursor: grab; transition: border-color .15s, opacity .15s, transform .15s; }
.card-t:hover { border-color: var(--linha2); }
.card-t:active { cursor: grabbing; }
.card-t.arrastando { opacity: .4; transform: scale(.98); }
.ct-l1 { display: flex; gap: 8px; align-items: flex-start; }
.ct-l1 .ponto { margin-top: 6px; width: 7px; height: 7px; }
.ct-l1 b { font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.ct-cnj { font-size: 11px; color: var(--tx3); }
.ct-rod { display: flex; align-items: center; gap: 8px; }
.ct-data { font-size: 11.5px; color: var(--tx2); }
.ct-data.erro { color: var(--erro-tx); }
.ct-deleg { color: var(--tx3); display: inline-flex; }
.ct-deleg .ic { width: 13px; height: 13px; }
.card-t [data-mover] { opacity: .5; }
.card-t:hover [data-mover], .card-t:focus-within [data-mover] { opacity: 1; }
.col-vazia { margin: 0; padding: 18px 12px; border: 1px dashed var(--linha2); border-radius: 12px; text-align: center; font-size: 12.5px; color: var(--tx3); }

/* ---------------------------------------------------------------- tabelas */
.tabela { padding: 0; overflow: hidden; }
.tb-cab, .tb-linha { display: grid; gap: 12px; align-items: center; padding: 10px 16px; }
.tb-cab { font-size: 11.5px; color: var(--tx2); font-weight: 600; border-bottom: 1px solid var(--linha); }
.tb-linha { border-bottom: 1px solid var(--linha); font-size: 13.5px; }
.tb-linha:last-child { border-bottom: 0; }
.tb-linha > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.dir { text-align: right; justify-self: end; }
.cen { text-align: center; justify-self: center; }
.tabela.fin .tb-cab, .tabela.fin .tb-linha { grid-template-columns: 92px minmax(170px, 2fr) minmax(140px, 1.4fr) minmax(130px, 1.2fr) 56px 118px 104px 78px; }
.tabela.fin .tb-linha { cursor: pointer; transition: background .12s; }
.tabela.fin .tb-linha:hover { background: var(--s2); }
.tb-desc b { font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.tb-cli { display: flex; flex-direction: column; white-space: nowrap; }
.tb-cli small { font-size: 11px; color: var(--tx3); overflow: hidden; text-overflow: ellipsis; }
.tb-cat { color: var(--tx2); white-space: nowrap; }
.tb-venc, .tb-parc { color: var(--tx2); font-size: 12.5px; }
.tb-valor { font-size: 13.5px; }
.tb-linha.despesa .tb-valor { color: var(--tx2); }
.tb-acao { justify-self: end; }
.tb-vazio { padding: 10px; }
.fin-filtros { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 16px 0 12px; }
.tabela.compacta { border: 1px solid var(--linha); border-radius: 12px; }
.tabela.compacta .tb-cab, .tabela.compacta .tb-linha { grid-template-columns: repeat(auto-fit, minmax(56px, 1fr)); padding: 8px 12px; }
.tabela.equipe .tb-cab, .tabela.equipe .tb-linha { grid-template-columns: minmax(200px, 2fr) 170px 150px minmax(110px, 1fr) minmax(180px, 1.4fr) 40px; }
.tabela.equipe .tb-linha.inativo { opacity: .5; }
.eq-p { display: flex; gap: 10px; align-items: center; }
.eq-p > span { display: flex; flex-direction: column; min-width: 0; }
.eq-p small, .eq-c small { font-size: 12px; color: var(--tx2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eq-c { display: flex; flex-direction: column; }
.tabela.matriz .tb-cab, .tabela.matriz .tb-linha { grid-template-columns: minmax(180px, 2fr) repeat(3, minmax(90px, 130px)); padding: 7px 16px; }
.tb-sep { padding: 14px 16px 4px; font-size: 11.5px; color: var(--tx3); font-weight: 600; letter-spacing: .03em; text-transform: uppercase; border-bottom: 1px solid var(--linha); }
.tgl { position: relative; display: inline-block; width: 36px; height: 21px; flex: none; cursor: pointer; }
.tgl input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.tgl i { position: absolute; inset: 0; border-radius: 11px; background: var(--s4); transition: background .18s; pointer-events: none; }
.tgl i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 17px; height: 17px; border-radius: 50%; background: #fff; transition: transform .18s; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.tgl input:checked + i { background: var(--ac); }
.tgl input:checked + i::after { transform: translateX(15px); }
.tgl input:disabled + i { opacity: .55; }
.tgl input:focus-visible + i { outline: 2px solid var(--ac); outline-offset: 2px; }

/* ---------------------------------------------------------------- folhas, formulários */
body.com-folha { overflow: hidden; }
.camada { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(0,0,0,.55); opacity: 0; transition: opacity .2s; }
.camada.in { opacity: 1; }
.folha { display: flex; flex-direction: column; width: min(640px, 100%); max-height: min(90vh, 940px); background: var(--s2); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-card); box-shadow: 0 30px 90px rgba(0,0,0,.6); transform: translateY(14px) scale(.985); transition: transform .22s cubic-bezier(.2,.8,.2,1); }
.camada.in .folha { transform: none; }
.folha.l-p { width: min(460px, 100%); }
.folha.l-g { width: min(1020px, 100%); }
.folha-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 18px 20px 12px; }
.folha-cab h2 { font-size: 19px; }
.folha-cab .sub { max-width: 64ch; }
.folha-corpo { flex: 1; overflow-y: auto; padding: 4px 20px 20px; overscroll-behavior: contain; }
.folha-rodape { display: flex; align-items: center; gap: 8px; padding: 12px 20px 16px; border-top: 1px solid var(--linha); flex-wrap: wrap; }
.texto { color: var(--tx2); margin: 0; font-size: 14.5px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.form-grid.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.span2 { grid-column: 1 / -1; }
.form-secao { grid-column: 1 / -1; font-size: 12px; color: var(--tx2); letter-spacing: .03em; text-transform: uppercase; margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--linha); }
.campo { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.campo > label, .campo > .rot { font-size: 12.5px; color: var(--tx2); }
.campo > label b { color: var(--ac-tx); margin-left: 3px; font-weight: 400; }
.campo input:not([type=checkbox]):not([type=radio]), .campo select, .campo textarea, .compor textarea { width: 100%; height: 36px; padding: 0 10px; border-radius: var(--r-ut); border: 1px solid var(--linha2); background: #262628; color: var(--tx); font-size: 14px; outline: none; transition: border-color .15s, box-shadow .15s; }
.campo textarea, .compor textarea { height: auto; padding: 8px 10px; line-height: 1.45; resize: vertical; }
.campo select { appearance: none; -webkit-appearance: none; padding-right: 30px; background: #262628 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2398989f' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 9px center / 14px; }
.campo input:focus, .campo select:focus, .campo textarea:focus, .compor textarea:focus { border-color: var(--ac); box-shadow: 0 0 0 3px rgba(125,122,255,.22); }
.campo input[type=date], .campo input[type=time] { font-family: var(--mono); font-size: 13.5px; }
.campo input::-webkit-calendar-picker-indicator { filter: invert(.7); }
.campo .mono { font-size: 13.5px; }
.prefixo { position: relative; }
.prefixo em { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: 13px; color: var(--tx2); }
.prefixo input { padding-left: 34px !important; font-family: var(--mono); }
.campo.chk { flex-direction: row; align-items: center; gap: 10px; font-size: 14px; cursor: pointer; min-height: 36px; }
.campo.chk input { width: 18px; height: 18px; accent-color: var(--ac); flex: none; margin: 0; }
.campo.chk small { color: var(--tx3); font-size: 12px; }
.ajuda { font-size: 12px; color: var(--tx3); display: flex; gap: 5px; align-items: center; flex-wrap: wrap; min-height: 0; }
.ajuda:empty { display: none; }
.ajuda .ic { width: 13px; height: 13px; }
.ajuda.ok { color: #5fe081; }
.ajuda.erro { color: var(--erro-tx); }
.campo.erro input, .campo.erro select, .campo.erro textarea { border-color: var(--erro) !important; }
.linha-form { display: flex; gap: 10px; align-items: flex-end; margin-top: 14px; }
.linha-form .campo { flex: 1; max-width: 320px; }
.linha-acoes { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.lista-sug { list-style: none; margin: 0; padding: 0; }
.lista-sug li { display: flex; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--linha); flex-wrap: wrap; }
.lista-sug li:first-child { border-top: 0; }
.lista-sug li > div:first-child { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 2px; }
.lista-sug .mono { font-size: 12px; color: var(--tx2); }
.lista-sug b { font-size: 14px; } .lista-sug small { font-size: 12.5px; color: var(--tx2); }
.ls-acoes { display: flex; gap: 6px; }
.opc-envio { display: grid; gap: 4px; margin-top: 12px; }
.lanc-valor { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; padding: 14px 16px; border-radius: 14px; background: var(--s1); border: 1px solid var(--linha); }
.lanc-valor b { font-size: 26px; font-weight: 600; letter-spacing: -.02em; }

/* calculadora */
.calc { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: 24px; align-items: start; }
.calc-resultado { min-width: 0; }
.cr-venc { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 12px; padding: 14px 16px; border-radius: 14px; background: var(--s1); border: 1px solid var(--linha); margin-bottom: 14px; }
.cr-venc .rot { grid-column: 1 / -1; }
.cr-venc b { font-size: 34px; font-weight: 600; letter-spacing: -.02em; line-height: 1.1; }
.cr-dia { grid-column: 1; font-size: 14px; color: var(--tx2); }
.cr-falta { grid-row: 2; grid-column: 2; align-self: center; font-size: 13px; color: var(--ac-tx); }
.calc .memoria { margin-bottom: 4px; }
.calc .mini-cal { margin-top: 16px; }
.locais-resumo .lr { display: flex; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 10px; background: #232325; font-size: 12.5px; color: var(--tx2); }
.locais-resumo .lr span { flex: 1; }
.locais-resumo .lr b { color: var(--tx); }
.calc-salvar { margin-top: 6px; }
.calc-aviso { display: inline-flex; gap: 6px; align-items: center; font-size: 12.5px; color: var(--tx2); }
.calc-aviso .ic { width: 15px; height: 15px; }
.fer-novo { padding: 14px; border-radius: 14px; background: var(--s1); border: 1px solid var(--linha); }
.fer-novo .fim { display: flex; align-items: flex-end; justify-content: flex-end; }
.fer-colunas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 16px; }
.fer-colunas h3 { font-size: 14px; margin-bottom: 6px; }
.fer-lista { list-style: none; margin: 0; padding: 0; }
.fer-lista li { display: flex; gap: 12px; align-items: center; padding: 8px 0; border-top: 1px solid var(--linha); }
.fer-lista li:first-child { border-top: 0; }
.fer-lista li.off { opacity: .5; }
.fer-lista .mono { width: 96px; flex: none; font-size: 12.5px; display: flex; flex-direction: column; }
.fer-lista .mono small, .fl-t small { font-size: 11px; color: var(--tx3); font-family: var(--sans); }
.fl-t { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 13.5px; }

/* documentos */
.gerador { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 20px; align-items: start; }
.ger-cont { font-size: 12.5px; color: var(--tx2); margin: 12px 0 0; }
.erro-t { color: var(--erro-tx); }
.papel-wrap { padding: 20px; border-radius: var(--r-card); background: #0a0a0b; border: 1px solid var(--linha); margin-top: 18px; overflow: auto; }
.folha .papel-wrap { margin-top: 0; max-height: 64vh; }
.papel { max-width: 720px; margin: 0 auto; padding: 46px 52px; border-radius: 6px; background: #f5f5f7; color: #1d1d1f; font-size: 14px; line-height: 1.62; box-shadow: 0 10px 30px rgba(0,0,0,.45); letter-spacing: 0; }
.doc-texto, .previa, .pp-texto { white-space: pre-wrap; overflow-wrap: anywhere; }
mark.var { background: #e3e2ff; color: #1d1d1f; border-radius: 3px; padding: 0 2px; }
mark.var.falta { background: #ffe1df; color: #b3261e; }
mark.var.tok { font-family: var(--mono); font-size: 12.5px; }
.vars { margin-top: 14px; }
.vars-lista { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; max-height: 128px; overflow: auto; }
.vars-lista .chip { height: 26px; font-size: 11.5px; }
.anexo { display: flex; gap: 14px; align-items: flex-start; margin-top: 18px; }
.anexo > .ic { width: 28px; height: 28px; color: var(--tx2); }
.anexo div { display: flex; flex-direction: column; gap: 3px; }
.anexo span { font-size: 13px; color: var(--tx2); } .anexo small { font-size: 12px; color: var(--tx3); }

/* contratos */
.assinatura { margin-top: 20px; }
.passos { list-style: none; margin: 0; padding: 0; display: flex; }
.passos li { flex: 1; position: relative; display: flex; flex-direction: column; gap: 4px; }
.passos li:not(:last-child)::after { content: ""; position: absolute; top: 13px; left: 36px; right: 10px; height: 1px; background: var(--linha2); }
.passos li.feito:not(:last-child)::after { background: var(--ac); }
.passos i { display: inline-flex; align-items: center; justify-content: center; width: 27px; height: 27px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--tx3); font: 12px var(--mono); font-style: normal; color: var(--tx2); }
.passos i .ic { width: 15px; height: 15px; }
.passos li.feito i { background: var(--ac); box-shadow: none; color: #fff; }
.passos li.atual i { box-shadow: inset 0 0 0 1.5px var(--ac); color: var(--ac-tx); }
.passos b { font-size: 13.5px; }
.passos span { font-size: 12px; color: var(--tx2); }
.hon-resumo { font-size: 17px; margin: 0 0 12px; }

/* atendimento */
.conversa { display: flex; flex-direction: column; gap: 8px; margin-top: 20px; padding: 16px; }
.cv-dia { align-self: center; font-size: 11.5px; color: var(--tx3); margin: 6px 0; font-family: var(--sans); }
.bolha { max-width: 78%; padding: 8px 12px 6px; border-radius: 16px; }
.bolha.deles { align-self: flex-start; background: var(--s3); border-bottom-left-radius: 6px; }
.bolha.nossa { align-self: flex-end; background: var(--ac-fundo); color: #fff; border-bottom-right-radius: 6px; }
.b-autor { display: block; font-size: 11px; font-weight: 600; opacity: .78; }
.bolha p { margin: 2px 0; font-size: 14px; }
.b-hora { display: block; text-align: right; font-size: 10.5px; opacity: .7; }
.compor { margin-top: 12px; padding: 12px; border-radius: var(--r-card); background: var(--s1); border: 1px solid var(--linha); display: flex; flex-direction: column; gap: 10px; }
.compor .seg { align-self: flex-start; flex-wrap: wrap; border-radius: 16px; }
.compor-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* clientes */
.cli-cab { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 16px; align-items: center; }
.cli-cab .det-acoes { grid-column: 1 / -1; }
.cli-cab h1 { margin-top: 4px; }
.qualif { font-size: 14px; color: #c7c7cc; margin: 0 0 8px; padding: 12px 14px; border-radius: 12px; background: var(--s1); border: 1px solid var(--linha); }
.contatos { list-style: none; margin: 0; padding: 0; }
.contatos li { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--linha); }
.contatos li:first-child { border-top: 0; }
.contatos li > div { display: flex; flex-direction: column; min-width: 0; }
.contatos small, .ct-meios span { font-size: 12.5px; color: var(--tx2); overflow: hidden; text-overflow: ellipsis; }

/* relatórios */
.rel-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.rel.larga { grid-column: 1 / -1; }
.rel-dupla { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; align-items: center; }
.rel-mini { display: flex; gap: 8px; margin-top: 12px; }
.rel-mini > div { flex: 1; display: flex; justify-content: space-between; padding: 8px 12px; border-radius: 10px; background: var(--s2); font-size: 13px; }
.grafico { width: 100%; height: auto; display: block; overflow: visible; }
.grafico .g-bar { fill: var(--ac); }
.grafico .g-rot { fill: var(--tx2); font: 12px var(--sans); }
.grafico .g-val { fill: var(--tx); font: 12px var(--mono); }
.grafico .g-eixo { stroke: var(--linha2); stroke-width: 1; }
.grafico rect.g-bar:hover { fill: #9a97ff; }
.rel-tab { align-self: start; }

/* configurações */
.cfg { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start; }
.cfg-nav { display: flex; flex-direction: column; gap: 2px; position: sticky; top: calc(var(--topo) + 16px); }
.cfg-nav a { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: var(--r-ut); color: var(--tx2); font-size: 14px; text-decoration: none; }
.cfg-nav a:hover { background: var(--s2); color: var(--tx); }
.cfg-nav a.on { background: var(--s3); color: var(--tx); }
.cfg-nav a.on .ic { color: var(--ac-tx); }
.cfg-bloco + .cfg-bloco { margin-top: 16px; }
.cfg-bloco .tabela { margin: 6px -18px -18px; border-top: 1px solid var(--linha); }
.areas { list-style: none; margin: 0; padding: 0; }
.areas li { display: flex; gap: 12px; align-items: center; padding: 9px 0; border-top: 1px solid var(--linha); }
.areas li:first-child { border-top: 0; }
.areas li span:first-child { flex: 1; }
.areas .mono { font-size: 12.5px; color: var(--tx2); }
.auditoria { list-style: none; margin: 0; padding: 0; max-height: 440px; overflow: auto; }
.auditoria li { display: grid; grid-template-columns: 150px 150px minmax(0, 1fr); gap: 12px; padding: 7px 0; border-top: 1px solid var(--linha); font-size: 13px; }
.auditoria .mono { font-size: 12px; color: var(--tx2); }
.auditoria span:last-child { color: var(--tx2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------------------------------------------------------------- paleta, menus, alertas, toasts */
.camada-paleta { align-items: flex-start; padding-top: 12vh; background: rgba(0,0,0,.45); }
.paleta { width: min(660px, 94vw); background: rgba(30,30,32,.94); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; box-shadow: 0 30px 90px rgba(0,0,0,.6); overflow: hidden; transform: translateY(-6px) scale(.99); transition: transform .18s; }
.camada.in .paleta { transform: none; }
.pal-busca { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--linha); }
.pal-busca > .ic { width: 20px; height: 20px; color: var(--ac-tx); }
.pal-busca input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--tx); font-size: 17px; outline: none; }
.pal-busca input::placeholder { color: var(--tx3); }
.pal-lista { max-height: 52vh; overflow-y: auto; padding: 6px; }
.pal-grupo { padding: 10px 10px 4px; font-size: 11.5px; font-weight: 600; color: var(--tx3); }
.pal-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: 0; border-radius: var(--r-ut); background: none; color: var(--tx); text-align: left; font-size: 14px; }
.pal-item > .ic { color: var(--tx2); }
.pal-item.sel { background: var(--ac); color: #fff; }
.pal-item.sel > .ic, .pal-item.sel small { color: rgba(255,255,255,.85); }
.pal-item.sel kbd { color: #fff; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.15); }
.pi-t { flex: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.pi-t small { font-size: 12px; color: var(--tx2); font-family: var(--sans); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pi-t { white-space: nowrap; text-overflow: ellipsis; }
.pal-vazio { padding: 26px; text-align: center; color: var(--tx2); font-size: 14px; }
.pal-rodape { display: flex; gap: 14px; align-items: center; padding: 8px 14px; border-top: 1px solid var(--linha); font-size: 11.5px; color: var(--tx3); }
.pal-rodape kbd { margin-right: 3px; }
.atalhos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.atalhos h3 { font-size: 13px; color: var(--tx2); margin-bottom: 8px; }
.atalhos dl { margin: 0; display: grid; gap: 7px; }
.atalhos dl > div { display: grid; grid-template-columns: 62px 1fr; gap: 10px; align-items: center; font-size: 13.5px; }
.atalhos dt { display: flex; gap: 3px; }
.atalhos dd { margin: 0; }
.folha-atalhos { width: min(820px, 100%) !important; }
.menu-pop { position: fixed; z-index: 140; min-width: 230px; max-width: calc(100vw - 16px); padding: 5px; background: rgba(38,38,40,.96); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; box-shadow: 0 16px 48px rgba(0,0,0,.5); }
.menu-pop button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 32px; padding: 0 10px; border: 0; border-radius: 7px; background: none; color: var(--tx); font-size: 13.5px; text-align: left; outline: none; }
.menu-pop button .ic { width: 16px; height: 16px; color: var(--tx2); }
.menu-pop button .fim { margin-left: auto; color: var(--ac-tx); }
.menu-pop button:hover:not(:disabled), .menu-pop button:focus-visible { background: var(--ac); color: #fff; }
.menu-pop button:hover:not(:disabled) .ic, .menu-pop button:focus-visible .ic { color: #fff; }
.menu-pop button.perigo { color: var(--erro-tx); }
.menu-pop button.perigo:hover:not(:disabled) { background: var(--erro); color: #fff; }
.menu-pop button:disabled { color: var(--tx3); cursor: default; }
.menu-pop hr { border: 0; border-top: 1px solid var(--linha); margin: 4px 6px; }
.pop-notif { position: fixed; z-index: 90; width: 380px; max-width: calc(100vw - 16px); background: rgba(30,30,32,.96); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.55); overflow: hidden; }
.pop-notif header { display: flex; align-items: center; justify-content: space-between; padding: 10px 10px 10px 14px; border-bottom: 1px solid var(--linha); }
.pn-lista { max-height: 62vh; overflow-y: auto; }
.pn-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 14px; border-bottom: 1px solid var(--linha); color: var(--tx); text-decoration: none !important; }
.pn-item:hover { background: rgba(255,255,255,.04); }
.pn-item .ponto { margin-top: 6px; }
.pn-item span { display: flex; flex-direction: column; min-width: 0; }
.pn-item b { font-size: 13.5px; font-weight: 600; }
.pn-item.lida b { font-weight: 400; color: var(--tx2); }
.pn-item small { font-size: 12px; color: var(--tx2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toasts { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 200; display: flex; flex-direction: column; align-items: center; gap: 8px; pointer-events: none; width: max-content; max-width: calc(100vw - 24px); }
.toast { display: flex; gap: 10px; align-items: center; padding: 10px 12px 10px 14px; border-radius: 12px; background: rgba(44,44,46,.97); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 12px 36px rgba(0,0,0,.45); font-size: 14px; opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; pointer-events: auto; }
.toast.in { opacity: 1; transform: none; }
.toast > .ic { width: 17px; height: 17px; color: var(--ok); }
.toast.erro > .ic { color: var(--erro-tx); }
.toast.info > .ic { color: var(--ac-tx); }
.toast .btn { color: var(--ac-tx); }
.sync-fontes { list-style: none; margin: 4px 0 0; padding: 0; }
.sync-fontes li { display: grid; grid-template-columns: 28px 56px 1fr auto; gap: 10px; align-items: center; padding: 11px 0; border-top: 1px solid var(--linha); }
.sync-fontes li:first-child { border-top: 0; }
.sf-ic { color: var(--tx3); display: inline-flex; }
.sync-fontes li.rodando .sf-ic { color: var(--ac-tx); }
.sync-fontes li.rodando .sf-ic .ic { animation: girar 1s linear infinite; }
.sync-fontes li.ok .sf-ic { color: var(--ok); }
.sf-sub { font-size: 13px; color: var(--tx2); }
.sf-est { font-size: 12px; color: var(--tx2); }
.sync-res h3 { font-size: 15px; margin: 18px 0 8px; }
.sync-lista { list-style: none; margin: 0; padding: 0; }
.sync-lista li a { display: grid; grid-template-columns: auto auto 1fr auto; gap: 10px; align-items: center; padding: 9px 0; border-top: 1px solid var(--linha); color: var(--tx); text-decoration: none; }
.sync-lista .mono { font-size: 12px; color: var(--tx2); }
.sl-t { font-size: 13px; color: var(--tx2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.sl-t b { color: var(--tx); }
.folha-mais .folha-corpo { padding-bottom: 22px; }
.mais-grade { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mais-item { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 6px; border-radius: 14px; background: var(--s3); color: var(--tx); font-size: 13px; text-decoration: none !important; }
.mais-item .ic { width: 22px; height: 22px; color: var(--ac-tx); }
.mais-conta { display: flex; gap: 12px; align-items: center; margin-top: 16px; padding: 12px; border-radius: 14px; background: var(--s1); border: 1px solid var(--linha); }
.mais-conta > div { flex: 1; display: flex; flex-direction: column; }
.mais-conta span { font-size: 12.5px; color: var(--tx2); }

/* ---------------------------------------------------------------- tela de entrada */
.entrada { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(380px, 1fr); min-height: 100vh; }
.ent-apresenta { padding: 56px clamp(28px, 6vw, 96px); display: flex; flex-direction: column; justify-content: center; }
.ent-marca { display: flex; align-items: center; gap: 12px; font-size: 26px; font-weight: 600; letter-spacing: -.03em; }
.ent-apresenta h1 { font-size: clamp(36px, 4.2vw, 54px); line-height: 1.06; letter-spacing: -.035em; margin: 44px 0 16px; max-width: 14ch; }
.ent-lead { font-size: 19px; color: var(--tx2); margin: 0; max-width: 34em; line-height: 1.45; }
.ent-destaques { list-style: none; margin: 34px 0 30px; padding: 0; display: grid; gap: 18px; max-width: 560px; }
.ent-destaques li { display: flex; gap: 14px; align-items: flex-start; }
.ent-destaques li > .ic { width: 40px; height: 40px; padding: 10px; border-radius: 11px; background: var(--s2); border: 1px solid var(--linha); color: var(--ac-tx); }
.ent-destaques b { display: block; font-size: 15px; }
.ent-destaques span { font-size: 14px; color: var(--tx2); }
.ent-amostra { max-width: 480px; padding: 4px 16px; border-radius: 16px; background: var(--s1); border: 1px solid var(--linha); }
.ea-linha { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--linha); font-size: 13px; }
.ea-linha:first-child { border-top: 0; }
.ea-linha .mono { color: var(--tx2); font-size: 12.5px; }
.ea-t { flex: 1; }
.ea-d { color: var(--tx) !important; }
.ent-login { display: flex; align-items: center; justify-content: center; padding: 40px; background: var(--s1); border-left: 1px solid var(--linha); }
.ent-card { width: min(420px, 100%); }
.ent-card h2 { font-size: 28px; }
.ent-card .sub { font-size: 14px; margin: 4px 0 22px; }
.ent-card .campo { margin-bottom: 12px; }
.ent-card .campo input { height: 42px !important; font-size: 15px !important; }
.ent-perfis { border: 0; padding: 0; margin: 18px 0 18px; }
.ent-perfis legend { font-size: 12.5px; color: var(--tx2); margin-bottom: 8px; padding: 0; }
.ent-perfil { display: flex; gap: 12px; align-items: center; padding: 10px 12px; margin-bottom: 8px; border-radius: 14px; border: 1px solid var(--linha2); background: var(--s2); cursor: pointer; position: relative; transition: border-color .15s, background .15s; }
.ent-perfil input { position: absolute; opacity: 0; pointer-events: none; }
.ent-perfil:has(input:checked) { border-color: var(--ac); background: rgba(125,122,255,.1); }
.ent-perfil:has(input:focus-visible) { outline: 2px solid var(--ac); outline-offset: 2px; }
.ent-perfil > span { display: flex; flex-direction: column; min-width: 0; }
.ent-perfil b { font-size: 14px; }
.ent-perfil em { font-style: normal; font-size: 12px; color: var(--ac-tx); }
.ent-perfil small { font-size: 12px; color: var(--tx2); }
.ent-nota { display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--tx2); margin: 14px 0 0; }
.ent-nota .ic { width: 15px; height: 15px; }

/* ---------------------------------------------------------------- impressão */
.impressao { display: none; }
@media print {
  @page { margin: 16mm; }
  body { background: #fff; color: #000; }
  body.imprimindo > *:not(#impressao) { display: none !important; }
  body.imprimindo #impressao { display: block; }
  .impressao .papel { box-shadow: none; padding: 0; max-width: none; background: #fff; color: #000; font-size: 11.5pt; }
  .pp-cab { display: flex; flex-direction: column; border-bottom: 1px solid #999; padding-bottom: 8px; margin-bottom: 18px; font-size: 9.5pt; }
  .pp-cab b { font-size: 12pt; }
  .pp-cnj { font-family: var(--mono); font-size: 14pt; }
  .pp-tab { width: 100%; border-collapse: collapse; margin: 8px 0 16px; font-size: 10pt; }
  .pp-tab th, .pp-tab td { border-bottom: 1px solid #ccc; padding: 5px 6px; text-align: left; vertical-align: top; }
  .pp-rod { margin-top: 24px; font-size: 8.5pt; color: #666; }
  mark.var { background: none; padding: 0; }
  .relatorio-print * { color: #000 !important; background: none !important; box-shadow: none !important; border-color: #ccc !important; }
  .relatorio-print .grafico .g-bar { fill: #555 !important; }
  .relatorio-print .grafico .g-rot, .relatorio-print .grafico .g-val { fill: #000 !important; }
}

/* ---------------------------------------------------------------- responsivo */
@media (max-width: 1320px) {
  .sync-txt { display: none; }
  .btn.sync { width: 32px; padding: 0; }
  .cab-tela .btn.sync { width: auto; padding: 0 12px; }
  .cab-tela .btn.sync .sync-txt { display: inline; }
}
@media (max-width: 1240px) {
  .tabela.fin .tb-cab, .tabela.fin .tb-linha { grid-template-columns: 90px minmax(160px, 2fr) minmax(130px, 1.3fr) 118px 100px 76px; }
  .tabela.fin .tb-cat, .tabela.fin .tb-parc, .tabela.fin .tb-cab > :nth-child(4), .tabela.fin .tb-cab > :nth-child(5) { display: none; }
  .det-colunas { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .memoria-grade { grid-template-columns: minmax(0, 1fr); }
  .calc { grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); }
  .gerador { grid-template-columns: 280px minmax(0, 1fr); }
}
@media (max-width: 1100px) {
  .l15-grade { --l15-min: 108px; }
  .md { grid-template-columns: 320px minmax(0, 1fr); }
  .cmd { width: 210px; }
  .cc-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .painel-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rel-dupla { grid-template-columns: minmax(0, 1fr); }
  .tabela.equipe .tb-cab, .tabela.equipe .tb-linha { grid-template-columns: minmax(180px, 2fr) 150px 130px minmax(160px, 1.4fr) 40px; }
  .tabela.equipe .tb-linha > :nth-child(4), .tabela.equipe .tb-cab > :nth-child(4) { display: none; }
  .cfg { grid-template-columns: 190px minmax(0, 1fr); }
  .entrada { grid-template-columns: minmax(0, 1fr) 400px; }
  .atalhos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .selo-demo .sd-longo { display: none; } .selo-demo .sd-curto { display: inline; }
  .kanban { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .painel-grade, .rel-grade { grid-template-columns: minmax(0, 1fr); }
  .calc, .gerador { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  body { font-size: 15px; }
  .shell { grid-template-columns: minmax(0, 1fr); }
  .trilho { display: none; }
  .topo { padding: 0 6px 0 12px; gap: 4px; padding-top: env(safe-area-inset-top); height: calc(var(--topo) + env(safe-area-inset-top)); }
  .topo-marca { display: flex; margin-right: 6px; }
  .topo-titulo { display: block; font-size: 17px; font-weight: 600; letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  .migalhas, .cmd { display: none; }
  .so-movel { display: inline-flex; }
  .topo .btn.ic, .topo .btn.sync { width: 44px; height: 44px; }
  .selo-demo { height: 22px; padding: 0 8px; font-size: 11px; }
  .abas-mob { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding-bottom: env(safe-area-inset-bottom); background: rgba(22,22,24,.86); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-top: 1px solid var(--linha); }
  .am-item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; height: 58px; border: 0; background: none; color: var(--tx2); font-size: 10.5px; text-decoration: none !important; }
  .am-item .ic { width: 23px; height: 23px; }
  .am-item.ativo { color: var(--ac-tx); }
  .am-item:active { transform: scale(.94); }
  .tela { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
  .tela-pad { padding: 16px 16px 24px; }
  .cab-tela { gap: 8px; }
  .cab-tela h1, .md-cab h1, .det-cab h1 { font-size: 26px; }
  .btn { min-height: 44px; }
  .btn.ic { width: 44px; }
  .btn.peq { min-height: 40px; }
  .btn.mini { min-height: 36px; width: 36px; height: 36px; }
  .chip, .chip-sel { height: 36px; }
  .seg > button, .seg label span { height: 36px; }
  .busca input { height: 42px; font-size: 16px; }
  .busca.curta { width: 100%; }
  .campo input:not([type=checkbox]):not([type=radio]), .campo select { height: 44px; font-size: 16px; }
  .campo textarea, .compor textarea { font-size: 16px; }
  .md { grid-template-columns: minmax(0, 1fr); height: auto; }
  .md-lista { border-right: 0; background: transparent; }
  .md.com-detalhe .md-lista { display: none; }
  .md:not(.com-detalhe) .md-detalhe { display: none; }
  .md-itens { overflow: visible; padding: 2px 8px 16px; }
  .md-cab { padding: 16px 16px 10px; }
  .item { min-height: 60px; padding: 12px 10px; }
  .voltar { display: inline-flex; }
  .det { padding: 10px 16px 32px; }
  .det-grade, .partes { grid-template-columns: minmax(0, 1fr); }
  .versus { display: none; }
  .cnj-cab { padding: 16px; }
  .cc-num { font-size: 17px; }
  .btn.cc-copiar { width: 36px; height: 36px; min-height: 36px; margin: -3px 0; }
  .cc-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cc-grade .larga { grid-column: 1 / -1; }
  .dl { grid-template-columns: minmax(0, 1fr); }
  .det-acoes { gap: 6px; }
  .det-acoes .btn { flex: 1 1 auto; }
  .det-acoes .btn.ic { flex: none; }
  .fase-sel { height: 44px; flex: 1 1 100%; }
  .fase-sel select { flex: 1; }
  .cd-grande > b { font-size: 36px; }
  .mc-mes { width: 100%; max-width: 340px; }
  .mc-d { height: 38px; font-size: 13px; }
  .det-vazio { padding: 16px; }
  .kpi, .financeiro .kpi { flex: 1 1 40%; }
  .kpi b { font-size: 22px; }
  .financeiro .kpi b, .relatorios .kpi b { font-size: 17px; }
  .kpi { padding: 12px 14px; }
  .prod-it:nth-child(n+5) { display: none; }
  .ev-lista .etq { display: none; }
  .topo .btn.sync { background: transparent; color: var(--tx2); }
  .linha15 { margin-left: -4px; margin-right: -4px; }
  .l15-grade { grid-template-columns: var(--cols-m) !important; min-width: 0; }
  .ag-semana { display: none; }
  .ag-movel { display: block; }
  .cab-tela .ag-nav { order: 3; width: 100%; }
  .ag-rot { flex: 1; text-align: right; }
  .prod { flex-direction: column; align-items: stretch; gap: 10px; }
  .kanban { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 84%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 0 16px 6px; gap: 10px; }
  .coluna { scroll-snap-align: center; min-height: 220px; }
  .card-t [data-mover] { opacity: 1; }
  .fin-filtros { margin: 14px 0 10px; }
  .fin-filtros .flex1 { display: none; }
  .tabela.fin .tb-cab { display: none; }
  .tabela.fin .tb-linha { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "desc valor" "cli sit" "venc acao"; gap: 4px 12px; padding: 12px 14px; }
  .tb-desc { grid-area: desc; } .tb-valor { grid-area: valor; } .tb-cli { grid-area: cli; } .tb-sit { grid-area: sit; justify-self: end; } .tb-venc { grid-area: venc; align-self: center; } .tb-acao { grid-area: acao; }
  .tb-desc b { font-weight: 600; white-space: normal; }
  .tabela.equipe .tb-cab, .tabela.matriz .tb-cab > :first-child { display: none; }
  .tabela.equipe .tb-linha { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; }
  .tabela.equipe .tb-linha > :nth-child(2) { grid-column: 1; }
  .tabela.equipe .tb-linha > :nth-child(3), .tabela.equipe .tb-linha > :nth-child(5) { grid-column: 1; }
  .tabela.equipe .tb-linha > :nth-child(6) { grid-column: 2; grid-row: 1; }
  .tabela.matriz .tb-cab, .tabela.matriz .tb-linha { grid-template-columns: minmax(0, 1fr) repeat(3, 52px); padding: 8px 12px; gap: 6px; font-size: 13px; }
  .tabela.matriz .tb-cab > span { font-size: 10.5px; white-space: normal; text-align: center; }
  .cfg { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .cfg-nav { position: static; flex-direction: row; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px; }
  .cfg-nav::-webkit-scrollbar { display: none; }
  .cfg-nav a { flex: none; background: var(--s2); border-radius: var(--pill); min-height: 40px; padding: 0 14px; }
  .auditoria li { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .contatos li { grid-template-columns: auto minmax(0, 1fr) auto; }
  .contatos .ct-meios { grid-column: 2; }
  .contatos li > button { grid-row: 1; grid-column: 3; }
  .rel-mini { flex-wrap: wrap; }
  .atalhos { grid-template-columns: minmax(0, 1fr); }
  .linha-form { flex-direction: column; align-items: stretch; }
  .linha-form .campo { max-width: none; }
  .form-grid, .form-grid.g4, .fer-colunas { grid-template-columns: minmax(0, 1fr); }
  .camada { align-items: flex-end; padding: 0; }
  .folha, .folha.l-p, .folha.l-g, .folha-atalhos { width: 100% !important; max-height: 92vh; border-radius: 18px 18px 0 0; transform: translateY(40px); border-bottom: 0; padding-bottom: env(safe-area-inset-bottom); }
  .folha-cab { padding: 16px 16px 10px; }
  .folha-corpo { padding: 4px 16px 18px; }
  .folha-rodape { padding: 10px 16px 14px; }
  .folha-rodape .btn { flex: 1 1 auto; }
  .folha-rodape .flex1 { display: none; }
  .calc-aviso { flex: 1 1 100%; }
  .camada-paleta { align-items: flex-start; padding-top: 8px; }
  .paleta { width: calc(100vw - 16px); border-radius: 14px; }
  .pal-rodape span:last-child { display: none; }
  .pop-notif { left: 8px !important; right: 8px !important; top: calc(var(--topo) + 6px) !important; width: auto; }
  .papel { padding: 24px 20px; font-size: 13.5px; }
  .papel-wrap { padding: 10px; margin-left: -6px; margin-right: -6px; }
  .bolha { max-width: 88%; }
  .entrada { grid-template-columns: minmax(0, 1fr); }
  .ent-apresenta { padding: 28px 20px 8px; }
  .ent-apresenta h1 { font-size: 34px; margin: 28px 0 12px; }
  .ent-lead { font-size: 17px; }
  .ent-destaques { margin: 24px 0 20px; }
  .ent-amostra { display: none; }
  .ent-login { padding: 20px 16px 40px; border-left: 0; border-top: 1px solid var(--linha); }
  .passos { flex-direction: column; gap: 10px; }
  .passos li { flex-direction: row; align-items: center; gap: 10px; }
  .passos li::after { display: none; }
  .passos span { margin-left: auto; }
  .sync-fontes li { grid-template-columns: 24px 50px minmax(0, 1fr) auto; }
  .sync-lista li a { grid-template-columns: auto minmax(0, 1fr); }
  .sync-lista .sl-t { grid-column: 1 / -1; white-space: normal; }
  .mais-grade { grid-template-columns: repeat(3, 1fr); }
  .hon-resumo { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.mc-tit::first-letter, .cr-dia::first-letter, .ag-dia-tit::first-letter, .cv-dia::first-letter, .mes-rot::first-letter, .sub::first-letter { text-transform: uppercase; }
.cv-dia, .mes-rot { display: inline-block; }
