/* site-admin/public/css/admin.css — mesma linguagem visual do site institucional
   (terminal/ASCII, JetBrains Mono, tema por cookie compartilhado), num arquivo próprio
   porque o admin é um processo/origem separado — não dá pra simplesmente linkar
   site/css/site.css daqui. Paleta de temas copiada de lá de propósito, pra o LED
   arrastável trocar o MESMO conjunto de temas nos dois lugares. */
:root {
    --bg: #000000; --panel: rgba(255,255,255,0.045); --panel-border: rgba(255,255,255,0.12);
    --text: #FFFFFF; --sec: rgba(235,235,245,0.62);
    --green: #30D158; --orange: #FF9F0A; --blue: #0A84FF; --red: #FF453A;
    --glow: rgba(48,209,88,0.45);
    --font-mono: 'JetBrains Mono', "SF Mono", monospace;
    --font-title: 'Barlow Condensed', sans-serif;
}
body.theme-cyberpunk { --bg:#050510; --panel:rgba(0,240,255,0.06); --panel-border:rgba(0,240,255,0.26); --text:#00F0FF; --sec:#FF9FB4; --green:#39FF14; --orange:#FF9F0A; --blue:#00F0FF; --red:#FF003C; --glow:rgba(57,255,20,0.4); }
body.theme-brasil { --bg:#081C10; --panel:rgba(255,255,255,0.045); --panel-border:rgba(255,255,255,0.1); --text:#E8F5E9; --sec:#9BCBA2; --green:#FFF59D; --orange:#FFB300; --blue:#FFD60A; --red:#FF5252; --glow:rgba(255,214,10,0.35); }
body.theme-atlantic { --bg:#0a110a; --panel:rgba(129,199,132,0.07); --panel-border:rgba(129,199,132,0.22); --text:#e8f5e9; --sec:#81c784; --green:#69f0ae; --orange:#FF9F0A; --blue:#00e5ff; --red:#ff5252; --glow:rgba(105,240,174,0.35); }
body.theme-ocean { --bg:#000b18; --panel:rgba(128,222,234,0.07); --panel-border:rgba(128,222,234,0.22); --text:#e0f7fa; --sec:#80deea; --green:#00e676; --orange:#FF9F0A; --blue:#00b4d8; --red:#ff5252; --glow:rgba(0,230,118,0.35); }

* { box-sizing: border-box; }
body {
    margin: 0; min-height: 100vh; background: var(--bg); color: var(--text);
    font-family: var(--font-mono); transition: background .3s, color .3s;
}
.mono { font-family: var(--font-mono); }
a { color: var(--green); }
button { font-family: var(--font-mono); cursor: pointer; }
textarea, input { font-family: var(--font-mono); background: rgba(255,255,255,0.04); color: var(--text); border: 1px solid var(--panel-border); border-radius: 6px; }

/* === telas de acesso (setup/login) — centralizadas, cartão único === */
.tela-acesso { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; }
.cartao-acesso {
    width: min(380px, 100%); border: 1px solid var(--panel-border); border-radius: 14px;
    background: var(--panel); padding: 32px 28px; text-align: center;
}
.cartao-acesso .marca { font-weight: 800; letter-spacing: .16em; font-size: .9rem; color: var(--green); margin-bottom: 4px; }
.cartao-acesso h1 { font-family: var(--font-title); font-size: 1.5rem; margin: 0 0 22px; }
.campo { text-align: left; margin-bottom: 14px; }
.campo label { display: block; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sec); margin-bottom: 5px; }
.campo input { width: 100%; padding: 10px 12px; font-size: .9rem; }
.btn {
    width: 100%; padding: 12px; border-radius: 8px; border: 1px solid var(--panel-border);
    background: var(--green); color: #000; font-weight: 700; letter-spacing: .04em; margin-top: 6px;
}
.btn:hover { filter: brightness(1.1); }
.btn-linha { display: flex; gap: 10px; align-items: center; margin: 18px 0; color: var(--sec); font-size: .7rem; letter-spacing: .08em; }
.btn-linha::before, .btn-linha::after { content:''; flex:1; height:1px; background: var(--panel-border); }
.erro-acesso { color: var(--red); font-size: .78rem; margin-top: 10px; min-height: 1em; }

/* === dashboard === */
.topo-admin {
    position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between;
    padding: 12px 22px; background: rgba(0,0,0,.5); backdrop-filter: blur(10px); border-bottom: 1px solid var(--panel-border);
}
.topo-admin .marca { font-weight: 800; letter-spacing: .14em; font-size: .82rem; }
.topo-admin .marca b { color: var(--green); }
.topo-admin button { background: none; border: 1px solid var(--panel-border); color: var(--sec); padding: 6px 12px; border-radius: 6px; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.topo-admin button:hover { color: var(--text); border-color: var(--green); }
.nav-telas { display: flex; gap: 8px; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.nav-telas a { padding: 5px 13px; border-radius: 999px; border: 1px solid var(--panel-border); color: var(--sec); }
.nav-telas a:hover { color: var(--text); }
.nav-telas a.ativa { color: #000; background: var(--green); border-color: transparent; font-weight: 700; }

/* === dashboard do app real (presença ao vivo, pessoas, projetos, produtoras) === */
.status-monitor { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-size: .74rem; color: var(--sec); }
.status-monitor .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--sec); }
.status-monitor.on .dot { background: var(--green); box-shadow: 0 0 6px var(--green); }
.status-monitor.off .dot { background: var(--orange); animation: pulsoMonitor 1s infinite alternate; }
@keyframes pulsoMonitor { from { opacity: .4; } to { opacity: 1; } }
/* Pulso de rodada — dispara a cada checagem bem-sucedida com o servidor (ver
   piscarDot em app-dashboard.js), pra ficar visível que o status é AO VIVO
   (atualiza a cada rodada), não uma leitura estática que só muda de cor às vezes. */
.status-monitor .dot.piscar { animation: piscarRodada .6s ease-out; }
@keyframes piscarRodada { 0% { box-shadow: 0 0 0 0 currentColor; } 40% { box-shadow: 0 0 9px 3px currentColor; } 100% { box-shadow: 0 0 0 0 currentColor; } }

.cartao-token .id-token { font-family: 'JetBrains Mono', monospace; color: var(--sec); font-size: .68rem; }
.selo-status-token { font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; border-radius: 999px; padding: 1px 8px; flex-shrink: 0; border: 1px solid; }
.selo-status-token.ativo { color: var(--green); border-color: var(--green); }
.selo-status-token.inativo { color: var(--sec); border-color: var(--panel-border); }
.selo-status-token.nunca-usado { color: var(--orange); border-color: var(--orange); }
.selo-status-token.expirado { color: var(--red); border-color: var(--red); }
.selo-status-token.expira-em-breve { color: var(--orange); border-color: var(--orange); }
.cartao-pessoa, .cartao-projeto, .cartao-token {
    display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--panel-border); font-size: .82rem;
}
.cartao-pessoa:first-of-type, .cartao-projeto:first-of-type, .cartao-token:first-of-type { border-top: none; }
.cartao-token .nome { font-weight: 700; }
.cartao-token .meta { color: var(--sec); font-size: .7rem; margin-top: 2px; }
.cartao-pessoa .dot-vivo { width: 8px; height: 8px; border-radius: 50%; background: var(--panel-border); flex-shrink: 0; }
.cartao-pessoa.online .dot-vivo { background: var(--green); box-shadow: 0 0 6px var(--green); }
.cartao-pessoa .info { flex: 1; min-width: 0; }
.cartao-pessoa .nome, .cartao-projeto .nome { font-weight: 700; }
.cartao-pessoa .meta, .cartao-projeto .meta { color: var(--sec); font-size: .7rem; margin-top: 2px; }
.selo-papel { font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; color: var(--blue); border: 1px solid var(--blue); border-radius: 999px; padding: 1px 8px; flex-shrink: 0; }
.selo-arquivado { font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sec); border: 1px solid var(--panel-border); border-radius: 999px; padding: 1px 8px; flex-shrink: 0; }

/* Tinuporama — navegador só-leitura da memória persistente (ver /api/tinuporama) */
.tino-busca { display: flex; gap: 8px; margin-bottom: 12px; }
.tino-busca input { flex: 1; background: transparent; border: 1px solid var(--panel-border); border-radius: 6px; padding: 6px 10px; color: inherit; font-family: inherit; font-size: .8rem; }
.tino-busca select { background: transparent; border: 1px solid var(--panel-border); border-radius: 6px; padding: 6px 8px; color: inherit; font-family: inherit; font-size: .8rem; }
.cartao-tino { display: block; width: 100%; text-align: left; background: transparent; border: none; border-top: 1px solid var(--panel-border); padding: 9px 0; font-size: .82rem; cursor: pointer; color: inherit; font-family: inherit; }
.cartao-tino:first-of-type { border-top: none; }
.cartao-tino .topo { display: flex; align-items: baseline; gap: 8px; }
.cartao-tino .nome { font-weight: 700; }
.cartao-tino .tipo { font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sec); border: 1px solid var(--panel-border); border-radius: 999px; padding: 1px 8px; flex-shrink: 0; }
.cartao-tino .descricao { color: var(--sec); font-size: .74rem; margin-top: 3px; }
/* Fica ACIMA da lista (ver app.html) — separador embaixo, não em cima, e some do
   fluxo (:empty) quando fechado, pra não sobrar um espaço vazio com hidden removido
   tarde demais numa transição futura. */
.detalhe-tino:not(:empty) { margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--panel-border); font-size: .8rem; }
.detalhe-tino .topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.detalhe-tino .conteudo { white-space: pre-wrap; line-height: 1.5; color: var(--sec); }
.detalhe-tino .fechar { background: transparent; border: 1px solid var(--panel-border); border-radius: 6px; color: inherit; font-family: inherit; font-size: .7rem; padding: 3px 10px; cursor: pointer; }

/* Evolução — linha do tempo alimentada pelo loop agendado (ver /api/evolucao) */
.cartao-evolucao { padding: 12px 0; border-top: 1px solid var(--panel-border); font-size: .82rem; }
.cartao-evolucao:first-of-type { border-top: none; }
.cartao-evolucao .topo { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.cartao-evolucao .titulo { font-weight: 700; }
.cartao-evolucao .quando { color: var(--sec); font-size: .68rem; flex-shrink: 0; white-space: nowrap; }
.cartao-evolucao .resumo { color: var(--sec); font-size: .76rem; margin-top: 4px; line-height: 1.4; }
.cartao-evolucao .tags { margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.cartao-evolucao .tag { font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sec); border: 1px solid var(--panel-border); border-radius: 999px; padding: 1px 8px; }
.cartao-evolucao .tag.tag-consolidado { color: var(--blue); border-color: var(--blue); }
.tag.tag-projeto { color: var(--green); border-color: var(--green); font-weight: 700; }
.proxima-reflexao { font-size: .68rem; color: var(--sec); font-family: 'JetBrains Mono', monospace; margin-top: -4px; margin-bottom: 10px; }

.lista-conversa { max-height: 320px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
.lista-conversa:empty::before { content: 'Ainda sem mensagens.'; color: var(--sec); font-size: .78rem; }
.bolha-conversa { padding: 8px 12px; border-radius: 10px; font-size: .8rem; line-height: 1.45; max-width: 92%; white-space: pre-wrap; word-break: break-word; }
.bolha-conversa.eu { align-self: flex-end; background: var(--green); color: #000; font-weight: 600; }
.bolha-conversa.claude { align-self: flex-start; background: var(--panel); border: 1px solid var(--panel-border); }
.bolha-conversa.erro { align-self: flex-start; background: transparent; border: 1px solid var(--red); color: var(--red); }
.bolha-conversa.pensando { align-self: flex-start; color: var(--sec); border: 1px dashed var(--panel-border); }
.linha-conversa { display: flex; gap: 8px; }
.linha-conversa input { flex: 1; padding: 10px 12px; font-size: .85rem; }
.linha-conversa .btn { width: auto; padding: 10px 18px; margin-top: 0; }
.linha-conversa .btn:disabled { opacity: .5; filter: none; }

.cartao-proposta { padding: 12px 0; border-top: 1px solid var(--panel-border); font-size: .82rem; }
.cartao-proposta:first-of-type { border-top: none; }
.cartao-proposta .topo { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.cartao-proposta .titulo { font-weight: 700; }
.cartao-proposta .quando { color: var(--sec); font-size: .68rem; flex-shrink: 0; white-space: nowrap; }
.cartao-proposta .descricao { color: var(--sec); font-size: .76rem; margin-top: 4px; line-height: 1.4; }
.cartao-proposta .tags { margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.cartao-proposta .tag { font-size: .6rem; font-family: 'JetBrains Mono', monospace; color: var(--sec); border: 1px solid var(--panel-border); border-radius: 999px; padding: 1px 8px; }
.cartao-proposta .acoes { display: flex; gap: 8px; margin-top: 8px; }
.btn-decidir {
    flex: 1; padding: 7px; border-radius: 6px; border: 1px solid var(--panel-border);
    background: transparent; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700;
}
.btn-decidir.aprovar { color: var(--green); border-color: var(--green); }
.btn-decidir.aprovar:hover { background: var(--green); color: #000; }
.btn-decidir.rejeitar { color: var(--red); border-color: var(--red); }
.btn-decidir.rejeitar:hover { background: var(--red); color: #000; }
.cartao-proposta .selo-decisao { display: inline-block; margin-top: 8px; font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sec); font-family: 'JetBrains Mono', monospace; }
.cartao-proposta.status-aprovada .selo-decisao { color: var(--green); }
.cartao-proposta.status-rejeitada .selo-decisao { color: var(--red); }

.cartao-timeline .selos-timeline { display: flex; gap: 6px; margin-top: 4px; }
.cartao-timeline .selo-origem, .cartao-timeline .selo-tipo {
    font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; font-family: 'JetBrains Mono', monospace;
    border: 1px solid var(--panel-border); border-radius: 999px; padding: 1px 8px; color: var(--sec);
}
.cartao-timeline.origem-sessao-local .selo-origem { color: var(--blue); border-color: var(--blue); }
.cartao-timeline.origem-vps-loop .selo-origem { color: var(--orange); border-color: var(--orange); }
.cartao-timeline.tipo-acao-executada .selo-tipo { color: var(--green); border-color: var(--green); }
.cartao-timeline.tipo-proposta .selo-tipo { color: var(--orange); border-color: var(--orange); }

.led-admin { overflow: hidden; padding: 10px 0; background: rgba(0,0,0,.5); border-bottom: 1px solid var(--panel-border); cursor: grab; touch-action: pan-y; }
.led-admin:active { cursor: grabbing; }
.led-admin-track {
    display: inline-block; white-space: pre; will-change: transform;
    font-weight: 800; font-size: .92rem; letter-spacing: .08em; text-transform: uppercase;
    color: var(--orange); opacity: .9; text-shadow: 0 0 4px currentColor, 0 0 12px currentColor;
}

.miolo { max-width: 1100px; margin: 0 auto; padding: 26px 22px 80px; display: grid; gap: 22px; grid-template-columns: 1fr; }
@media (min-width: 960px) { .miolo { grid-template-columns: 2fr 1fr; align-items: start; } }
/* .miolo espera exatamente 2 filhos diretos (as 2 colunas) — cada um agrupa seus
   painéis num flex-column próprio. Mais de 2 filhos soltos desencaixa o grid a
   partir da 3ª seção (auto-placement intercala 2 por linha, cada linha esticando
   pra altura do item mais alto — foi o bug real de 2026-08-02). */
.coluna-painel { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
/* Variante de 1 coluna só (ex.: página de Testes) — mesma largura máxima, sem o grid de
   2 colunas que .miolo assume por padrão. */
.miolo-uma-coluna { max-width: 720px; grid-template-columns: 1fr !important; }

.cartao-sandbox { display: block; padding: 14px 16px; border: 1px solid var(--panel-border); border-radius: 10px; margin-bottom: 10px; text-decoration: none; color: var(--text); transition: border-color .15s, background .15s; }
.cartao-sandbox:last-child { margin-bottom: 0; }
.cartao-sandbox:hover { border-color: var(--blue); background: rgba(10,132,255,0.08); }
.cartao-sandbox .nome { font-weight: 700; font-size: .88rem; }
.cartao-sandbox .seta { color: var(--sec); float: right; }

.checklist-comentarios { margin: 10px 0; display: flex; flex-direction: column; gap: 6px; }
.checklist-comentario { padding: 8px 10px; border-left: 2px solid var(--green); background: rgba(48,209,88,0.06); border-radius: 0 6px 6px 0; font-size: .8rem; }
.checklist-comentario .cc-texto { display: block; white-space: pre-line; }
.checklist-comentario .cc-quando { display: block; color: var(--sec); font-size: .66rem; margin-top: 4px; font-family: 'JetBrains Mono', monospace; }
.checklist-form-comentario { display: flex; gap: 8px; align-items: flex-end; }
.checklist-form-comentario textarea {
    flex: 1; background: rgba(255,255,255,0.04); border: 1px solid var(--panel-border); border-radius: 8px;
    color: var(--text); padding: 8px 10px; font-family: inherit; font-size: .82rem; resize: vertical;
}

.painel { border: 1px solid var(--panel-border); border-radius: 12px; background: var(--panel); padding: 18px 20px; }
.painel h2 { font-family: var(--font-title); font-size: 1.1rem; margin: 0 0 4px; }
.painel .sub { color: var(--sec); font-size: .74rem; margin-bottom: 16px; }

/* ASCII de visão geral */
.ascii-visao { white-space: pre; font-size: .72rem; line-height: 1.35; color: var(--sec); overflow-x: auto; }
.ascii-visao .n-verde { color: var(--green); }
.ascii-visao .n-laranja { color: var(--orange); }

/* === tira de Elementos: mesmo padrão do app (.dir-tools + .ptile) — tiles de 2
   letras, arrastáveis (reordenam), clique troca qual seção fica aberta (modo rádio,
   só uma por vez, como o .pj-sec do app). Ordem e seção aberta persistem em
   localStorage (site-admin é de 1 usuário só, não precisa por-operador). === */
.dir-tools {
    position: sticky; top: 0; z-index: 5; display: flex; gap: 8px; overflow-x: auto;
    padding: 10px 0 14px; margin-bottom: 14px; background: var(--bg);
    border-bottom: 1px solid var(--panel-border); scrollbar-width: none;
}
.dir-tools::-webkit-scrollbar { display: none; }
.ptile-grupo {
    flex-shrink: 0; width: 60px; display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 9px 4px 7px; border-radius: 10px; border: 1px solid var(--panel-border); background: var(--panel);
    cursor: grab; user-select: none; position: relative; transition: border-color .15s, box-shadow .15s, opacity .15s;
}
.ptile-grupo:active { cursor: grabbing; }
.ptile-grupo.aberto { border-color: var(--green); box-shadow: 0 0 0 1px var(--green), 0 0 12px var(--glow); }
.ptile-grupo .simbolo { font-family: var(--font-title); font-weight: 700; font-size: 1.2rem; line-height: 1; }
.ptile-grupo .rotulo-tile { font-size: .5rem; letter-spacing: .02em; text-transform: uppercase; color: var(--sec); text-align: center; line-height: 1.15; }
.ptile-grupo .contagem-tile { position: absolute; top: 3px; right: 6px; font-size: .5rem; color: var(--sec); opacity: .6; }
.ptile-grupo .pinga-tile { position: absolute; top: 4px; left: 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 4px var(--orange); }
.ptile-grupo.arrastando { opacity: .3; }
.ptile-grupo.alvo-drop { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); }

.campo-cms-tag { color: var(--sec); opacity: .55; font-weight: 400; }
.campo-cms-uso {
    display: inline-block; margin-left: 8px; font-size: .6rem; letter-spacing: .04em;
    color: var(--blue); border: 1px solid var(--blue); border-radius: 999px; padding: 1px 7px;
}

/* sanfona — só a seção com .aberto mostra conteúdo, o resto colapsa (mesma ideia do
   .pj-sec do app: max-height 0→grande com transição, não display:none direto, pra
   animar). max-height "generoso" fixo em vez de medir scrollHeight — mais simples,
   suficiente pra um painel de admin. */
.grupo-conteudo {
    max-height: 0; opacity: 0; overflow: hidden; margin-bottom: 0;
    transition: max-height .28s ease, opacity .2s ease, margin-bottom .28s ease;
}
.grupo-conteudo.aberto { max-height: 4000px; opacity: 1; margin-bottom: 22px; }
.grupo-conteudo > .titulo-grupo { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--green); margin-bottom: 8px; padding-top: 2px; }
.campo-cms { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-top: 1px solid var(--panel-border); }
.campo-cms:first-of-type { border-top: none; }
.dot-revisao { width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; flex-shrink: 0; cursor: pointer; background: var(--green); box-shadow: 0 0 6px currentColor; transition: background .15s; }
.dot-revisao.laranja { background: var(--orange); }
.campo-cms-corpo { flex: 1; min-width: 0; }
.campo-cms-chave { font-size: .64rem; color: var(--sec); opacity: .7; margin-bottom: 4px; letter-spacing: .03em; }
.campo-cms textarea { width: 100%; min-height: 44px; padding: 8px 10px; font-size: .82rem; line-height: 1.4; resize: vertical; }
.campo-cms-acoes { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.campo-cms-acoes button { background: none; border: 1px solid var(--panel-border); color: var(--sec); padding: 4px 10px; border-radius: 5px; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.campo-cms-acoes button:hover { color: var(--green); border-color: var(--green); }
.campo-cms-status { font-size: .68rem; color: var(--green); min-width: 70px; }

.bloco-nota {
    margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--orange); border-radius: 8px;
    background: rgba(255,159,10,0.06);
}
.bloco-nota textarea { width: 100%; min-height: 44px; padding: 8px 10px; font-size: .8rem; margin-top: 4px; }
.bloco-nota .campo-cms-acoes button:hover { color: var(--orange); border-color: var(--orange); }

.feed-evento { display: flex; gap: 8px; padding: 7px 0; border-top: 1px solid var(--panel-border); font-size: .76rem; }
.feed-evento:first-of-type { border-top: none; }
.feed-evento .tipo { flex-shrink: 0; padding: 1px 7px; border-radius: 5px; font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
.feed-evento .tipo.demo { color: var(--green); border: 1px solid var(--green); }
.feed-evento .tipo.tema { color: var(--blue); border: 1px solid var(--blue); }
.feed-evento .tipo.claquete { color: var(--orange); border: 1px solid var(--orange); }
.feed-evento .hora { color: var(--sec); opacity: .6; font-size: .68rem; margin-left: auto; flex-shrink: 0; }
.contagens { display: flex; gap: 14px; margin-bottom: 14px; font-size: .72rem; color: var(--sec); }
.contagens b { color: var(--text); font-size: 1rem; display: block; }

/* === Tinu — "Pensar agora" / botão Lança (ver tinu.html, tinu-dashboard.js) === */
.campo select, .campo textarea { width: 100%; padding: 10px 12px; font-size: .9rem; resize: vertical; }
.selo-lanca {
    font-size: .6rem; font-weight: 700; letter-spacing: .08em; color: var(--green);
    border: 1px solid var(--green); border-radius: 999px; padding: 2px 9px; margin-left: 8px; vertical-align: middle;
}
#btnLanca {
    width: 100%; padding: 12px; border-radius: 8px; border: 1px solid var(--panel-border);
    background: var(--green); color: #000; font-weight: 700; letter-spacing: .04em; margin-top: 4px;
}
#btnLanca:hover { filter: brightness(1.1); }
#btnLanca:disabled { opacity: .6; cursor: wait; filter: none; }
.resultado-pensar {
    margin-top: 12px; padding: 10px 12px; border-radius: 8px; font-size: .78rem;
    border: 1px solid var(--panel-border); white-space: pre-wrap;
}
.resultado-pensar.ok { border-color: var(--green); color: var(--green); }
.resultado-pensar.erro { border-color: var(--red); color: var(--red); }
.campo-intervalo { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--panel-border); }
.linha-intervalo { display: flex; gap: 8px; }
.linha-intervalo input { width: 90px; padding: 10px 12px; font-size: .9rem; }
.btn-secundario {
    padding: 10px 16px; border-radius: 8px; border: 1px solid var(--panel-border);
    background: none; color: var(--sec); font-weight: 700; letter-spacing: .04em; font-size: .8rem;
}
.btn-secundario:hover { color: var(--text); border-color: var(--green); }
