/* 41Filmes · Gestão — identidade do site da 41 aplicada a um painel de trabalho.
   Conceito: monitor de set. Preto de película, texto papel, vermelho REC só para o que pede ação agora. */

@font-face { font-family: 'Inter Tight'; src: url('fonts/InterTight.woff2') format('woff2'); font-weight: 400 800; font-display: swap; }
@font-face { font-family: 'Instrument Serif'; src: url('fonts/InstrumentSerif.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Instrument Serif'; src: url('fonts/InstrumentSerif-Italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('fonts/JetBrainsMono.woff2') format('woff2'); font-weight: 400 500; font-display: swap; }

:root {
  --ink: #0b0a09; --ink-2: #131110; --ink-3: #1b1917; --ink-4: #252220; --linha: #2e2a27; --linha-forte: #3d3834;
  --papel: #ece6dc; --texto: #ece6dc; --texto-2: #b9b1a5; --mudo: #948c81;
  --rec: #ff4a24; --rec-suave: rgba(255, 74, 36, .14); --ambar: #e9a46a; --ambar-suave: rgba(233, 164, 106, .14);
  --verde: #8fc79a; --verde-suave: rgba(143, 199, 154, .13); --azul: #9db7d6; --azul-suave: rgba(157, 183, 214, .13);
  --fundo: var(--ink); --superficie: var(--ink-2); --superficie-2: var(--ink-3); --realce: var(--ink-4);
  --serif: 'Instrument Serif', Georgia, serif; --sans: 'Inter Tight', system-ui, -apple-system, 'Segoe UI', sans-serif; --mono: 'JetBrains Mono', ui-monospace, Consolas, monospace;
  --t-xs: 12px; --t-sm: 13.5px; --t-base: 15px; --t-md: 17px; --t-lg: 22px; --t-xl: clamp(28px, 2.6vw, 38px); --t-xxl: clamp(38px, 5.4vw, 64px);
  --r: 10px; --r-lg: 16px; --sombra: 0 18px 50px -20px rgba(0,0,0,.7);
  --lateral: 248px; --topo: 60px; --base-movel: 64px;
  --ease: cubic-bezier(.2,.8,.2,1);
  color-scheme: dark;
}
:root[data-tema="claro"] {
  --ink: #f4efe6; --ink-2: #fbf8f2; --ink-3: #efe8dc; --ink-4: #e6ddcf; --linha: #ddd3c4; --linha-forte: #c9bdab;
  --texto: #1a1715; --texto-2: #4d463f; --mudo: #6b6359; --rec: #d4381a; --rec-suave: rgba(212, 56, 26, .1); --ambar: #a86416; --ambar-suave: rgba(168,100,22,.12);
  --verde: #2f7a44; --verde-suave: rgba(47,122,68,.1); --azul: #3b5f8a; --azul-suave: rgba(59,95,138,.1); --sombra: 0 18px 50px -24px rgba(60,40,20,.35);
  color-scheme: light;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { background: var(--fundo); color: var(--texto); -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { font: 400 var(--t-base)/1.5 var(--sans); background: var(--fundo); min-height: 100dvh; -webkit-font-smoothing: antialiased; overflow-x: clip; }
body:not(.pronto) #app { visibility: hidden; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
img, svg, video, audio { display: block; max-width: 100%; }
::selection { background: var(--rec); color: #fff; }
:focus-visible { outline: 2px solid var(--rec); outline-offset: 2px; border-radius: 6px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: clip; clip-path: inset(50%); white-space: nowrap; }
.mono { font-family: var(--mono); font-feature-settings: 'zero' 0; letter-spacing: -.01em; }
.serif { font-family: var(--serif); font-style: italic; font-weight: 400; }
.mudo { color: var(--mudo); }
.texto-2 { color: var(--texto-2); }
.rec { color: var(--rec); }
.num { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* ---------- casca ---------- */
.casca { display: grid; grid-template-columns: var(--lateral) minmax(0, 1fr); min-height: 100dvh; }
.lateral { position: sticky; top: 0; height: 100dvh; border-right: 1px solid var(--linha); background: var(--fundo); display: flex; flex-direction: column; padding: 18px 12px 14px; gap: 6px; overflow-y: auto; scrollbar-width: thin; }
.marca { display: flex; align-items: baseline; gap: 5px; padding: 6px 10px 18px; text-decoration: none; }
.marca b { font-weight: 800; font-size: 25px; letter-spacing: -.06em; position: relative; }
.marca b::after { content: ''; position: absolute; right: -8px; top: 4px; width: 6px; height: 6px; border-radius: 50%; background: var(--rec); }
.marca i { font-family: var(--serif); font-size: 25px; margin-left: 7px; }
.marca small { font-family: var(--mono); font-size: var(--t-xs); color: var(--mudo); margin-left: 4px; }
.nav-grupo { margin-top: 10px; }
.nav-grupo > span { display: block; font-size: var(--t-xs); color: var(--mudo); padding: 4px 10px 6px; }
.nav-item { display: flex; align-items: center; gap: 11px; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: var(--texto-2); font-size: 14.5px; font-weight: 500; transition: background .15s, color .15s; position: relative; }
.nav-item svg { width: 18px; height: 18px; flex: none; opacity: .85; }
.nav-item:hover { background: var(--superficie); color: var(--texto); }
.nav-item[aria-current="page"] { background: var(--superficie-2); color: var(--texto); }
.nav-item[aria-current="page"]::before { content: ''; position: absolute; left: -12px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--rec); }
.nav-item .contador { margin-left: auto; font: 500 12px/1 var(--mono); background: var(--rec); color: #0b0a09; border-radius: 99px; padding: 4px 6px; }
.lateral-pe { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--linha); display: grid; gap: 4px; }
.usuario-mini { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; text-decoration: none; }
.usuario-mini:hover { background: var(--superficie); }
.avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--superficie-2); border: 1px solid var(--linha-forte); display: grid; place-items: center; font: 600 12px var(--sans); flex: none; }
.usuario-mini div { min-width: 0; line-height: 1.25; }
.usuario-mini strong { display: block; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.usuario-mini span { font-size: var(--t-xs); color: var(--mudo); }

.principal { min-width: 0; display: flex; flex-direction: column; }
.topo { position: sticky; top: 0; z-index: 30; height: var(--topo); display: flex; align-items: center; gap: 12px; padding: 0 clamp(16px, 3vw, 32px); background: color-mix(in srgb, var(--fundo) 86%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--linha); }
.topo .marca { display: none; padding: 0; }
.busca-gatilho { flex: 1; max-width: 460px; display: flex; align-items: center; gap: 10px; height: 38px; padding: 0 12px; border: 1px solid var(--linha); border-radius: 9px; background: var(--superficie); color: var(--mudo); font-size: 14px; text-align: left; }
.busca-gatilho:hover { border-color: var(--linha-forte); color: var(--texto-2); }
.busca-gatilho svg { width: 16px; height: 16px; }
.busca-gatilho kbd { margin-left: auto; font: 500 12px var(--mono); border: 1px solid var(--linha-forte); border-radius: 5px; padding: 2px 6px; color: var(--mudo); }
.topo-acoes { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.icone-btn { width: 38px; height: 38px; border-radius: 9px; display: grid; place-items: center; color: var(--texto-2); position: relative; }
.icone-btn:hover { background: var(--superficie); color: var(--texto); }
.icone-btn svg { width: 19px; height: 19px; }
.icone-btn .ponto { position: absolute; top: 7px; right: 7px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: var(--rec); color: #0b0a09; font: 600 11px/16px var(--mono); text-align: center; }
.conteudo { padding: clamp(18px, 3vw, 34px) clamp(16px, 3vw, 34px) 60px; width: 100%; max-width: 1480px; }
.base-movel { display: none; }

/* ---------- cabeçalho de página ---------- */
.cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.cab h1 { font: 400 var(--t-xl)/1.02 var(--serif); font-style: italic; letter-spacing: -.01em; }
.cab h1 .sans { font: 800 .82em/1 var(--sans); font-style: normal; letter-spacing: -.045em; }
.cab p { color: var(--texto-2); margin-top: 6px; max-width: 64ch; }
.cab-acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.slate { display: inline-flex; align-items: center; gap: 8px; font: 500 var(--t-xs) var(--mono); color: var(--texto-2); border: 1px solid var(--linha); border-radius: 99px; padding: 5px 10px 5px 9px; }
.slate i { width: 7px; height: 7px; border-radius: 50%; background: var(--rec); animation: piscar 1.4s steps(2) infinite; }
.slate.calmo i { background: var(--verde); animation: none; }
@keyframes piscar { 50% { opacity: .15; } }

/* ---------- botões e campos ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 38px; padding: 0 15px; border-radius: 9px; border: 1px solid var(--linha-forte); background: var(--superficie); color: var(--texto); font-weight: 600; font-size: 14px; white-space: nowrap; text-decoration: none; transition: background .15s, border-color .15s, transform .1s; }
.btn:hover { background: var(--superficie-2); border-color: var(--mudo); }
.btn:active { transform: translateY(1px); }
.btn svg { width: 17px; height: 17px; }
.btn.prim { background: var(--texto); color: var(--fundo); border-color: var(--texto); }
.btn.prim:hover { background: color-mix(in srgb, var(--texto) 88%, var(--rec)); }
.btn.rec { background: var(--rec); border-color: var(--rec); color: #0b0a09; }
.btn.fantasma { background: transparent; border-color: transparent; color: var(--texto-2); }
.btn.fantasma:hover { background: var(--superficie); color: var(--texto); }
.btn.peq { height: 32px; padding: 0 11px; font-size: 13px; border-radius: 8px; }
.btn.perigo { color: var(--rec); }
.btn[disabled], .btn[aria-busy="true"] { opacity: .55; pointer-events: none; }
.btn[aria-busy="true"]::after { content: ''; width: 13px; height: 13px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: girar .7s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }

.campo { display: grid; gap: 6px; min-width: 0; }
.campo > span { font-size: 13px; font-weight: 600; color: var(--texto-2); }
.campo > span em { color: var(--rec); font-style: normal; }
.entrada, .campo input, .campo select, .campo textarea { width: 100%; min-height: 42px; padding: 9px 12px; border-radius: 9px; border: 1px solid var(--linha-forte); background: var(--fundo); color: var(--texto); font-size: 15px; transition: border-color .15s, box-shadow .15s; }
.campo textarea { min-height: 96px; resize: vertical; line-height: 1.5; }
.entrada:focus, .campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--texto-2); box-shadow: 0 0 0 3px var(--rec-suave); }
.campo.erro input, .campo.erro select, .campo.erro textarea { border-color: var(--rec); }
.campo small { color: var(--mudo); font-size: var(--t-xs); }
.campo-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; cursor: pointer; }
.campo-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--rec); flex: none; }
.grade-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.grade-form .largo { grid-column: 1 / -1; }
select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--mudo) 50%), linear-gradient(135deg, var(--mudo) 50%, transparent 50%); background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 32px !important; }

/* ---------- blocos ---------- */
.painel { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--r-lg); padding: 18px; min-width: 0; }
.painel > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.painel > header h2 { font-size: var(--t-md); font-weight: 700; letter-spacing: -.02em; }
.painel > header a, .painel > header .link { font-size: 13px; color: var(--texto-2); text-decoration: none; padding: 6px 2px; margin: -6px -2px; }
.painel > header a:hover { color: var(--texto); }
.grade { display: grid; gap: 16px; }
.g-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-inicio { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: start; }
.pilha { display: grid; gap: 16px; align-content: start; }

/* KPI: lido como contador de câmera */
.kpi { position: relative; padding: 16px 18px; border: 1px solid var(--linha); border-radius: var(--r-lg); background: var(--superficie); min-width: 0; text-decoration: none; display: block; }
.kpi::before, .kpi::after { content: ''; position: absolute; width: 10px; height: 10px; border-color: var(--linha-forte); border-style: solid; }
.kpi::before { top: 8px; left: 8px; border-width: 1px 0 0 1px; }
.kpi::after { bottom: 8px; right: 8px; border-width: 0 1px 1px 0; }
.kpi span { display: block; font-size: 13px; color: var(--texto-2); font-weight: 500; }
.kpi strong { display: block; font: 500 clamp(20px, 2.1vw, 27px)/1.15 var(--mono); letter-spacing: -.03em; margin-top: 8px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi small { display: block; margin-top: 6px; font-size: var(--t-xs); color: var(--mudo); }
.kpi.alerta strong { color: var(--rec); }
.kpi.bom strong { color: var(--verde); }
.barra { height: 6px; border-radius: 99px; background: var(--realce); overflow: hidden; margin-top: 10px; }
.barra i { display: block; height: 100%; background: var(--texto); border-radius: inherit; }
.barra.rec i { background: var(--rec); }

/* lista de prioridades */
.lista { display: grid; }
.lista > * + * { border-top: 1px solid var(--linha); }
.item-linha { display: flex; gap: 12px; align-items: flex-start; padding: 12px 4px; text-decoration: none; min-width: 0; border-radius: 8px; }
a.item-linha:hover { background: var(--superficie-2); }
.marcador { width: 8px; height: 8px; border-radius: 50%; margin-top: 7px; flex: none; background: var(--mudo); }
.marcador.alto { background: var(--rec); box-shadow: 0 0 0 4px var(--rec-suave); }
.marcador.medio { background: var(--ambar); }
.item-linha .corpo { min-width: 0; flex: 1; }
.item-linha strong { display: block; font-weight: 600; font-size: 14.5px; line-height: 1.35; overflow-wrap: anywhere; }
.item-linha .det { display: block; color: var(--texto-2); font-size: 13.5px; margin-top: 2px; overflow-wrap: anywhere; }
.item-linha .lado { margin-left: auto; text-align: right; font: 500 12.5px var(--mono); color: var(--texto-2); white-space: nowrap; }

/* linha do tempo (agenda curta) */
.dia-titulo { font: 500 12.5px var(--mono); color: var(--mudo); padding: 12px 4px 6px; letter-spacing: .02em; }
.dia-titulo.hoje { color: var(--rec); }
.evento { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 12px; padding: 9px 4px; text-decoration: none; border-radius: 8px; align-items: start; }
.evento:hover { background: var(--superficie-2); }
.evento time { font: 500 13px var(--mono); color: var(--texto-2); padding-top: 1px; }
.evento .corpo { border-left: 2px solid var(--linha-forte); padding-left: 11px; min-width: 0; }
.evento[data-tipo="captacao"] .corpo, .evento[data-tipo="evento"] .corpo { border-color: var(--rec); }
.evento[data-tipo="viagem"] .corpo { border-color: var(--ambar); }
.evento[data-tipo="reuniao"] .corpo { border-color: var(--azul); }
.evento[data-tipo="edicao"] .corpo { border-color: var(--verde); }
.evento[data-status="provisorio"] .corpo { border-left-style: dashed; }
.evento strong { display: block; font-weight: 600; font-size: 14.5px; overflow-wrap: anywhere; }
.evento span { display: block; color: var(--texto-2); font-size: 13px; overflow-wrap: anywhere; }

/* selos */
.selo { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; padding: 3px 9px; border-radius: 99px; background: var(--realce); color: var(--texto-2); white-space: nowrap; line-height: 1.4; }
.selo::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .9; }
.selo.sem-ponto::before { display: none; }
.selo.rec { background: var(--rec-suave); color: var(--rec); }
.selo.ambar { background: var(--ambar-suave); color: var(--ambar); }
.selo.verde { background: var(--verde-suave); color: var(--verde); }
.selo.azul { background: var(--azul-suave); color: var(--azul); }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.chip { text-decoration: none; height: 32px; padding: 0 12px; border-radius: 99px; border: 1px solid var(--linha); color: var(--texto-2); font-size: 13.5px; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.chip:hover { border-color: var(--linha-forte); color: var(--texto); }
.chip[aria-pressed="true"], .chip[aria-current="page"] { background: var(--texto); color: var(--fundo); border-color: var(--texto); }
.chip .n { font: 500 12px var(--mono); }

/* abas */
.abas { display: flex; gap: 2px; border-bottom: 1px solid var(--linha); margin-bottom: 20px; overflow-x: auto; scrollbar-width: none; }
.abas::-webkit-scrollbar { display: none; }
.aba { padding: 10px 14px; font-size: 14.5px; font-weight: 600; color: var(--texto-2); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; text-decoration: none; }
.aba:hover { color: var(--texto); }
.aba[aria-selected="true"], .aba[aria-current="page"] { color: var(--texto); border-color: var(--rec); }

/* tabela */
.tabela-envolve { overflow-x: auto; border: 1px solid var(--linha); border-radius: var(--r-lg); background: var(--superficie); }
table.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font-size: 12.5px; font-weight: 600; color: var(--texto-2); padding: 11px 14px; border-bottom: 1px solid var(--linha); white-space: nowrap; background: var(--superficie); }
.tabela td { padding: 11px 14px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela tr:last-child td { border-bottom: 0; }
.tabela tbody tr { cursor: pointer; transition: background .12s; }
.tabela tbody tr:hover { background: var(--superficie-2); }
.tabela .dir { text-align: right; }
.tabela .forte { font-weight: 600; }
.tabela td.num, .tabela th.num { text-align: right; white-space: nowrap; }

/* kanban */
.quadro { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(268px, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x proximity; }
.coluna { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--r-lg); padding: 10px; min-height: 160px; display: flex; flex-direction: column; gap: 8px; scroll-snap-align: start; }
.coluna > header { display: flex; justify-content: space-between; align-items: baseline; padding: 4px 6px 6px; gap: 8px; }
.coluna > header strong { font-size: 14px; }
.coluna > header span { font: 500 12px var(--mono); color: var(--mudo); }
.coluna.alvo { border-color: var(--rec); background: var(--superficie-2); }
.cartao { background: var(--fundo); border: 1px solid var(--linha); border-radius: 12px; padding: 12px; text-align: left; display: grid; gap: 6px; cursor: pointer; width: 100%; transition: border-color .15s, transform .15s; }
.cartao:hover { border-color: var(--linha-forte); }
.cartao[draggable="true"] { cursor: grab; }
.cartao.arrastando { opacity: .45; }
.cartao strong { font-size: 14.5px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.cartao .meta { display: flex; justify-content: space-between; gap: 8px; color: var(--texto-2); font-size: 13px; flex-wrap: wrap; }
.cartao.parado { border-left: 3px solid var(--ambar); }
.cartao.atrasado { border-left: 3px solid var(--rec); }

/* gaveta / folha / modal */
.veu { position: fixed; inset: 0; z-index: 80; background: rgba(5,4,3,.62); backdrop-filter: blur(3px); animation: surgir .18s var(--ease); }
.gaveta { position: fixed; z-index: 81; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); background: var(--superficie); border-left: 1px solid var(--linha); box-shadow: var(--sombra); display: flex; flex-direction: column; animation: deslizar .26s var(--ease); }
.gaveta.larga { width: min(780px, 100vw); }
.gaveta > header { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--linha); }
.gaveta > header h2 { font-size: var(--t-md); font-weight: 700; letter-spacing: -.02em; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.gaveta .miolo { padding: 18px; overflow-y: auto; flex: 1; overscroll-behavior: contain; }
.gaveta > footer { padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--linha); display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; background: var(--superficie); }
.gaveta > footer .esq { margin-right: auto; }
@keyframes deslizar { from { transform: translateX(28px); opacity: 0; } }
@keyframes surgir { from { opacity: 0; } }
@keyframes subir { from { transform: translateY(24px); opacity: 0; } }

.paleta { position: fixed; z-index: 90; top: 12vh; left: 50%; transform: translateX(-50%); width: min(640px, calc(100vw - 24px)); background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--r-lg); box-shadow: var(--sombra); overflow: hidden; animation: subir .2s var(--ease); }
.paleta input { width: 100%; height: 56px; padding: 0 18px; border: 0; border-bottom: 1px solid var(--linha); background: transparent; font-size: 17px; outline: none; }
.paleta .resultados { max-height: min(56vh, 460px); overflow-y: auto; padding: 6px; }
.paleta .grupo-tit { font-size: var(--t-xs); color: var(--mudo); padding: 10px 12px 4px; }
.paleta .opcao { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border-radius: 9px; text-align: left; font-size: 14.5px; }
.paleta .opcao small { margin-left: auto; color: var(--mudo); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 45%; }
.paleta .opcao[aria-selected="true"] { background: var(--superficie-2); }
.paleta .opcao svg { width: 17px; height: 17px; color: var(--texto-2); flex: none; }

.menu-flutuante { position: fixed; z-index: 85; background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: 12px; box-shadow: var(--sombra); padding: 6px; min-width: 220px; animation: subir .16s var(--ease); }
.menu-flutuante button, .menu-flutuante a { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border-radius: 8px; font-size: 14.5px; text-decoration: none; text-align: left; }
.menu-flutuante button:hover, .menu-flutuante a:hover { background: var(--superficie-2); }
.menu-flutuante svg { width: 17px; height: 17px; color: var(--texto-2); }

.avisos { position: fixed; z-index: 100; bottom: 20px; left: 50%; transform: translateX(-50%); display: grid; gap: 8px; width: min(440px, calc(100vw - 24px)); pointer-events: none; }
.aviso { pointer-events: auto; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--texto); color: var(--fundo); font-size: 14.5px; font-weight: 500; box-shadow: var(--sombra); animation: subir .22s var(--ease); }
.aviso.erro { background: var(--rec); color: #0b0a09; }
.aviso button { margin-left: auto; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* estado vazio */
.vazio { text-align: center; padding: 40px 16px; color: var(--texto-2); display: grid; justify-items: center; gap: 10px; }
.vazio h3 { color: var(--texto); font-size: var(--t-md); font-weight: 700; }
.vazio p { max-width: 46ch; font-size: 14.5px; }
.vazio .moldura { width: 64px; height: 44px; border: 1px solid var(--linha-forte); border-radius: 6px; position: relative; margin-bottom: 4px; }
.vazio .moldura::before { content: ''; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; margin: -3.5px; border-radius: 50%; background: var(--rec); }
.esqueleto { background: linear-gradient(90deg, var(--superficie) 0%, var(--superficie-2) 50%, var(--superficie) 100%); background-size: 200% 100%; animation: brilho 1.3s infinite; border-radius: 10px; min-height: 80px; }
@keyframes brilho { to { background-position: -200% 0; } }

/* boas-vindas (base vazia) */
.passos { display: grid; gap: 10px; counter-reset: passo; }
.passo { display: flex; gap: 14px; align-items: center; padding: 14px; border: 1px solid var(--linha); border-radius: 12px; text-decoration: none; background: var(--fundo); }
.passo:hover { border-color: var(--linha-forte); }
.passo .circ { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--linha-forte); display: grid; place-items: center; font: 500 12.5px var(--mono); flex: none; }
.passo.feito .circ { background: var(--verde-suave); border-color: transparent; color: var(--verde); }
.passo strong { display: block; font-size: 14.5px; }
.passo span { display: block; font-size: 13.5px; color: var(--texto-2); }

/* checklist de produção */
.fase { margin-bottom: 18px; }
.fase > header { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.fase > header strong { font-size: 14.5px; }
.fase > header .barra { flex: 1; max-width: 160px; margin: 0; }
.fase > header span { font: 500 12px var(--mono); color: var(--mudo); }
.check { display: flex; gap: 11px; align-items: center; padding: 8px 6px; border-radius: 8px; }
.check:hover { background: var(--superficie-2); }
.check input { width: 24px; height: 24px; accent-color: var(--verde); flex: none; }
.check.feito label { color: var(--mudo); text-decoration: line-through; text-decoration-color: var(--linha-forte); }
.check label { flex: 1; font-size: 14.5px; cursor: pointer; }

/* entrega e versões */
.entrega { border: 1px solid var(--linha); border-radius: 14px; padding: 14px; background: var(--fundo); display: grid; gap: 10px; }
.versoes { display: grid; gap: 8px; }
.versao { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 8px 12px; align-items: start; padding: 10px; border-radius: 10px; background: var(--superficie); }
.versao > :last-child { grid-column: 2; }
.versao .v { font: 500 15px var(--mono); }
.feedback { font-size: 13.5px; color: var(--texto-2); display: flex; gap: 8px; margin-top: 4px; align-items: baseline; }
.feedback > span:not(.tc) { flex: 1; min-width: 0; }
.feedback .btn { flex: none; }
.feedback .tc { font-family: var(--mono); color: var(--ambar); }
.feedback.resolvido > span:not(.tc) { text-decoration: line-through; }

/* passos da etapa (projeto) */
.etapas { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.etapa { flex: 1 0 auto; min-width: 92px; text-align: center; padding: 8px 10px; border-radius: 8px; font-size: 12.5px; font-weight: 600; color: var(--mudo); background: var(--superficie); border: 1px solid var(--linha); }
.etapa.passou { color: var(--texto-2); }
.etapa.atual { color: #0b0a09; background: var(--rec); border-color: var(--rec); }

/* agenda */
.semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.semana .dia { background: var(--superficie); border: 1px solid var(--linha); border-radius: 12px; padding: 8px; min-height: 180px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.semana .dia > header { display: flex; justify-content: space-between; align-items: baseline; padding: 2px 4px 4px; }
.semana .dia > header strong { font: 500 20px var(--mono); }
.semana .dia > header span { font-size: 12.5px; color: var(--mudo); }
.semana .dia.hoje { border-color: var(--rec); }
.semana .dia.hoje > header strong { color: var(--rec); }
.bloco-ev { text-align: left; border-radius: 8px; padding: 6px 8px; font-size: 12.5px; line-height: 1.3; background: var(--fundo); border-left: 3px solid var(--linha-forte); width: 100%; overflow-wrap: anywhere; }
.bloco-ev b { display: block; font-weight: 600; font-size: 13px; }
.bloco-ev[data-tipo="captacao"], .bloco-ev[data-tipo="evento"] { border-color: var(--rec); }
.bloco-ev[data-tipo="viagem"] { border-color: var(--ambar); }
.bloco-ev[data-tipo="reuniao"] { border-color: var(--azul); }
.bloco-ev[data-tipo="edicao"] { border-color: var(--verde); }
.bloco-ev[data-status="provisorio"] { border-left-style: dashed; }
.bloco-ev.conflito { box-shadow: inset 0 0 0 1px var(--rec); }
.mes { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--linha); border-radius: var(--r-lg); overflow: hidden; background: var(--linha); gap: 1px; }
.mes .cab-dia { background: var(--superficie); padding: 8px; font-size: 12.5px; color: var(--mudo); text-align: center; }
.mes .cel { background: var(--superficie); min-height: 104px; padding: 6px; display: flex; flex-direction: column; gap: 3px; min-width: 0; text-align: left; }
.mes .cel.fora { background: var(--fundo); }
.mes .cel.fora .d { color: var(--mudo); }
.mes .cel .d { font: 500 13px var(--mono); color: var(--texto-2); }
.mes .cel.hoje .d { color: var(--rec); }
.mes .cel .pt { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 1px 5px; border-radius: 4px; background: var(--fundo); border-left: 2px solid var(--linha-forte); }
.mes .cel .pt[data-tipo="captacao"], .mes .cel .pt[data-tipo="evento"] { border-color: var(--rec); }
.disp { overflow-x: auto; border: 1px solid var(--linha); border-radius: var(--r-lg); }
.disp table { border-collapse: collapse; font-size: 13px; min-width: 100%; }
.disp th, .disp td { border-bottom: 1px solid var(--linha); border-right: 1px solid var(--linha); padding: 6px; text-align: center; min-width: 46px; }
.disp th:first-child, .disp td:first-child { text-align: left; position: sticky; left: 0; background: var(--superficie); min-width: 150px; z-index: 1; }
.disp td.ocupado { background: var(--rec-suave); color: var(--rec); font-weight: 600; }
.disp td.provisorio { background: var(--ambar-suave); color: var(--ambar); }

/* gráficos */
.grafico { width: 100%; height: auto; overflow: visible; }
.grafico text { font: 500 12px var(--mono); fill: var(--mudo); }
.legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12.5px; color: var(--texto-2); margin-top: 8px; }
.legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.barras-h { display: grid; gap: 10px; }
.barras-h .linha-b { display: grid; grid-template-columns: minmax(0, 150px) minmax(0, 1fr) auto; gap: 10px; align-items: center; font-size: 13.5px; }
.barras-h .linha-b span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--texto-2); }
.barras-h .linha-b .barra { margin: 0; height: 8px; }
.barras-h .linha-b b { font: 500 12.5px var(--mono); }

/* assistente */
.chat { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 16px; height: calc(100dvh - var(--topo) - 68px); min-height: 480px; }
.chat-lista { overflow-y: auto; border: 1px solid var(--linha); border-radius: var(--r-lg); padding: 8px; background: var(--superficie); }
.chat-lista a { display: block; padding: 9px 10px; border-radius: 8px; font-size: 13.5px; text-decoration: none; color: var(--texto-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-lista a:hover, .chat-lista a[aria-current="page"] { background: var(--superficie-2); color: var(--texto); }
.chat-area { display: flex; flex-direction: column; border: 1px solid var(--linha); border-radius: var(--r-lg); background: var(--superficie); min-width: 0; min-height: 0; }
.mensagens { flex: 1; overflow-y: auto; padding: 20px clamp(14px, 3vw, 28px); display: flex; flex-direction: column; gap: 16px; }
.msg { max-width: min(720px, 92%); font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.msg.user { align-self: flex-end; background: var(--superficie-2); border: 1px solid var(--linha); padding: 10px 14px; border-radius: 14px 14px 4px 14px; white-space: pre-wrap; }
.msg.assistant { align-self: flex-start; }
.msg.assistant p + p, .msg.assistant ul, .msg.assistant ol { margin-top: 8px; }
.msg.assistant ul, .msg.assistant ol { padding-left: 20px; }
.msg.assistant h4 { font-size: 15px; margin-top: 10px; }
.rastro { align-self: flex-start; display: flex; flex-wrap: wrap; gap: 6px; }
.rastro span { font: 500 12px var(--mono); color: var(--mudo); border: 1px dashed var(--linha-forte); border-radius: 99px; padding: 3px 9px; }
.cartao-acao { align-self: flex-start; width: min(560px, 100%); border: 1px solid var(--ambar); background: var(--ambar-suave); border-radius: 14px; padding: 14px; display: grid; gap: 10px; }
.cartao-acao.confirmada { border-color: var(--verde); background: var(--verde-suave); }
.cartao-acao.cancelada, .cartao-acao.expirada { border-color: var(--linha-forte); background: transparent; }
.cartao-acao dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; font-size: 13.5px; }
.cartao-acao dt { color: var(--texto-2); }
.cartao-acao dd { overflow-wrap: anywhere; }
.compositor { border-top: 1px solid var(--linha); padding: 12px; display: flex; gap: 8px; align-items: flex-end; }
.compositor textarea { flex: 1; min-height: 44px; max-height: 180px; resize: none; border-radius: 12px; border: 1px solid var(--linha-forte); background: var(--fundo); padding: 11px 14px; line-height: 1.45; font-size: 15px; }
.compositor textarea:focus { outline: none; border-color: var(--texto-2); }
.sugestoes { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.pensando { align-self: flex-start; display: flex; gap: 5px; padding: 10px 0; }
.pensando i { width: 7px; height: 7px; border-radius: 50%; background: var(--rec); animation: piscar 1s steps(2) infinite; }
.pensando i:nth-child(2) { animation-delay: .33s; } .pensando i:nth-child(3) { animation-delay: .66s; }

/* transcrição */
.segmentos { display: grid; gap: 2px; }
.seg { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 12px; padding: 8px 6px; border-radius: 8px; text-align: left; width: 100%; }
.seg:hover { background: var(--superficie-2); }
.seg time { font: 500 12.5px var(--mono); color: var(--mudo); padding-top: 2px; }
.seg b { font-size: 13px; font-weight: 700; display: block; }
.seg p { font-size: 14.5px; color: var(--texto-2); line-height: 1.55; }
.seg mark { background: var(--ambar-suave); color: var(--texto); border-radius: 3px; padding: 0 2px; }
.item-sug { border: 1px solid var(--linha); border-radius: 12px; padding: 12px; display: grid; gap: 8px; background: var(--fundo); }
.item-sug.aprovado { border-color: var(--verde); }
.item-sug.rejeitado { border-style: dashed; }
.item-sug.rejeitado strong { text-decoration: line-through; color: var(--texto-2); }
.item-sug .duvida { font-size: 13px; color: var(--ambar); display: flex; gap: 6px; }
.item-sug blockquote { font-size: 13px; color: var(--mudo); border-left: 2px solid var(--linha-forte); padding-left: 10px; font-style: italic; }
.gravador { display: grid; justify-items: center; gap: 12px; padding: 20px; border: 1px dashed var(--linha-forte); border-radius: var(--r-lg); }
.gravador .tempo { font: 500 34px var(--mono); }
.botao-rec { width: 72px; height: 72px; border-radius: 50%; border: 2px solid var(--texto); display: grid; place-items: center; }
.botao-rec i { width: 28px; height: 28px; border-radius: 50%; background: var(--rec); transition: border-radius .2s, transform .2s; }
.botao-rec.gravando i { border-radius: 6px; transform: scale(.85); }
.progresso-envio { width: 100%; }

/* login */
.entrada-tela { min-height: 100dvh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.entrada-marca { position: relative; overflow: hidden; background: #000; color: #ece6dc; padding: clamp(28px, 5vw, 64px); display: flex; flex-direction: column; justify-content: space-between; isolation: isolate; }
.entrada-marca .iris { position: absolute; inset: -10%; z-index: -1; background: radial-gradient(circle at 62% 46%, rgba(233,164,106,.16), transparent 42%), radial-gradient(circle at 62% 46%, transparent 0 21%, rgba(236,230,220,.08) 21.2% 21.5%, transparent 21.7% 29%, rgba(236,230,220,.06) 29.2% 29.4%, transparent 29.6%); }
.entrada-marca .hud { font: 500 12px var(--mono); color: rgba(236,230,220,.7); display: flex; justify-content: space-between; gap: 12px; }
.entrada-marca .hud b { color: #ff4a24; font-weight: 500; animation: piscar 1.4s steps(2) infinite; }
.entrada-marca h1 { font: 400 clamp(44px, 6.4vw, 92px)/.95 var(--serif); font-style: italic; letter-spacing: -.01em; max-width: 11ch; }
.entrada-marca h1 span { font: 800 .8em/1 var(--sans); font-style: normal; letter-spacing: -.05em; }
.entrada-marca p { color: rgba(236,230,220,.72); max-width: 38ch; margin-top: 16px; font-size: 16px; }
.entrada-form { display: grid; place-items: center; padding: 32px 20px; background: var(--fundo); }
.entrada-form form { width: min(380px, 100%); display: grid; gap: 16px; }
.entrada-form h2 { font-size: var(--t-lg); font-weight: 700; letter-spacing: -.03em; }
.entrada-form .erro-msg { color: var(--rec); font-size: 14px; min-height: 20px; }
.entrada-form .rodape { font-size: 12.5px; color: var(--mudo); text-align: center; }

/* utilidades */
.flex { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.entre { justify-content: space-between; }
.mt { margin-top: 16px; } .mt-s { margin-top: 8px; } .mb { margin-bottom: 16px; }
.dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 16px; font-size: 14.5px; }
.dl dt { color: var(--texto-2); }
.dl dd { overflow-wrap: anywhere; }
.texto-longo { white-space: pre-wrap; font-size: 14.5px; line-height: 1.65; color: var(--texto); overflow-wrap: anywhere; }
.aviso-faixa { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--ambar); background: var(--ambar-suave); font-size: 14px; margin-bottom: 16px; }
.aviso-faixa.rec { border-color: var(--rec); background: var(--rec-suave); }
.aviso-faixa.info { border-color: var(--linha-forte); background: var(--superficie); }
.aviso-faixa svg { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.tags-demo { font: 500 12px var(--mono); color: var(--ambar); }
hr.div { border: 0; border-top: 1px solid var(--linha); margin: 18px 0; }

/* ---------- celular ---------- */
@media (max-width: 1100px) {
  .g-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-inicio { grid-template-columns: minmax(0, 1fr); }
  .chat { grid-template-columns: minmax(0, 1fr); }
  .chat-lista { display: none; }
  .semana { grid-template-columns: repeat(7, minmax(150px, 1fr)); overflow-x: auto; }
}
@media (max-width: 860px) {
  .casca { grid-template-columns: minmax(0, 1fr); }
  .lateral { display: none; }
  .topo { padding: 0 12px; gap: 6px; }
  .topo .marca { display: flex; }
  .topo .marca small { display: none; }
  .busca-gatilho { flex: 0 0 38px; width: 38px; padding: 0; justify-content: center; border-color: transparent; background: transparent; }
  .busca-gatilho span, .busca-gatilho kbd { display: none; }
  .conteudo { padding: 18px 16px calc(var(--base-movel) + 36px + env(safe-area-inset-bottom)); }
  .base-movel { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; height: calc(var(--base-movel) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: color-mix(in srgb, var(--fundo) 92%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 1px solid var(--linha); }
  .base-movel a, .base-movel button { display: grid; justify-items: center; align-content: center; gap: 3px; font-size: 12px; font-weight: 600; color: var(--mudo); text-decoration: none; position: relative; }
  .base-movel svg { width: 22px; height: 22px; }
  .base-movel [aria-current="page"] { color: var(--texto); }
  .base-movel [aria-current="page"]::before { content: ''; position: absolute; top: 0; width: 22px; height: 2px; background: var(--rec); border-radius: 0 0 2px 2px; }
  .base-movel .meio i { width: 46px; height: 46px; border-radius: 50%; background: var(--texto); color: var(--fundo); display: grid; place-items: center; margin-top: -14px; box-shadow: 0 6px 20px -6px rgba(0,0,0,.7); }
  .base-movel .meio svg { width: 22px; height: 22px; }
  .g-2, .g-3 { grid-template-columns: minmax(0, 1fr); }
  .grade-form { grid-template-columns: minmax(0, 1fr); }
  .gaveta, .gaveta.larga { top: auto; left: 0; width: 100%; max-height: 92dvh; border-left: 0; border-top: 1px solid var(--linha); border-radius: 18px 18px 0 0; animation: subir .26s var(--ease); }
  .gaveta > header::before { content: ''; position: absolute; top: 6px; left: 50%; width: 36px; height: 4px; margin-left: -18px; border-radius: 99px; background: var(--linha-forte); }
  .gaveta > header { position: relative; padding-top: 20px; }
  .entrada-tela { grid-template-columns: minmax(0, 1fr); }
  .entrada-marca { min-height: 38dvh; }
  .entrada-marca h1 { font-size: clamp(40px, 12vw, 60px); }
  .tabela-movel thead { display: none; }
  .tabela-movel, .tabela-movel tbody { display: grid; grid-template-columns: minmax(0, 1fr); }
  .tabela-movel tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 12px 14px; border-bottom: 1px solid var(--linha); }
  .tabela-movel td { border: 0; padding: 0; white-space: normal; text-align: left !important; }
  .tabela-movel td:first-child { grid-column: 1; font-weight: 600; }
  .tabela-movel td.num { grid-column: 2; grid-row: 1; text-align: right !important; }
  .tabela-movel td.oculta-movel { display: none; }
  .tabela-movel td:not(:first-child):not(.num) { grid-column: 1 / -1; font-size: 13px; color: var(--texto-2); }
  .chat { height: calc(100dvh - var(--topo) - var(--base-movel) - 54px - env(safe-area-inset-bottom)); }
  .mensagens { padding: 14px; }
  .kpi { padding: 14px; }
  .quadro { grid-auto-columns: minmax(82vw, 1fr); }
  .cab h1 { font-size: clamp(32px, 9vw, 42px); }
  .versao { grid-template-columns: 36px minmax(0, 1fr); }
  .mes .cel { min-height: 64px; }
  .mes .cel .pt { color: transparent; height: 6px; padding: 0; border-left-width: 0; background: var(--mudo); }
  .mes .cel .pt[data-tipo="captacao"], .mes .cel .pt[data-tipo="evento"] { background: var(--rec); }
}
@media (max-width: 420px) {
  .g-4 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .kpi strong { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* ---------- impressão (proposta e relatório) ---------- */
.folha { background: #fff; color: #111; max-width: 820px; margin: 0 auto; padding: 48px 52px; border-radius: 6px; font-size: 14px; }
.folha h1 { font: 400 40px/1 var(--serif); font-style: italic; }
.folha h2 { font-size: 15px; margin: 26px 0 8px; letter-spacing: -.01em; }
.folha table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.folha th, .folha td { padding: 8px 6px; border-bottom: 1px solid #ddd; text-align: left; }
.folha .num { text-align: right; font-family: var(--mono); }
.folha .marca-folha { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 2px solid #111; padding-bottom: 14px; margin-bottom: 26px; }
.folha .marca-folha b { font-size: 30px; font-weight: 800; letter-spacing: -.06em; }
.folha .marca-folha b i { font-family: var(--serif); font-weight: 400; letter-spacing: 0; margin-left: 4px; }
.folha .total { font-size: 20px; font-weight: 800; text-align: right; margin-top: 12px; }
.folha p { line-height: 1.6; white-space: pre-wrap; }
@media print {
  body * { visibility: hidden !important; }
  .folha, .folha * { visibility: visible !important; }
  .folha { position: absolute; left: 0; top: 0; width: 100%; max-width: none; padding: 0; border-radius: 0; }
  @page { margin: 16mm; }
}

/* alvos de toque: caixas de seleção de concluir com área mínima de 24 px */
input.concluir { width: 24px !important; height: 24px !important; margin: 0 !important; }
.item-linha:has(input.concluir) { align-items: center; }
.cab a.mudo, .aviso-faixa a { display: inline-block; padding: 4px 0; }
