:root {
  --tinta: #0f1222;
  --tinta-2: #171b30;
  --tinta-3: #242a45;
  --papel: #f6f5f1;
  --cartao: #ffffff;
  --linha: #e6e3da;
  --texto: #1b1d2a;
  --sutil: #6b6e7f;
  --coral: #ff5a36;
  --coral-2: #ff7a5c;
  --verde: #1f9d55;
  --amarelo: #f5b301;
  --vermelho: #d93025;
  --azul: #2f6fed;
  --raio: 14px;
  font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--papel); color: var(--texto); font-size: 14.5px; }
a { color: inherit; }
.oculto { display: none !important; }
.app { display: grid; grid-template-columns: 248px 1fr; min-height: 100vh; }
.lateral { background: var(--tinta); color: #e8e9f2; padding: 22px 14px; position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; }
.logo { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 21px; letter-spacing: -0.5px; padding: 0 10px 22px; }
.logo.grande { font-size: 30px; justify-content: center; color: var(--tinta); }
.play { width: 28px; height: 28px; border-radius: 8px; background: var(--coral); position: relative; display: inline-block; }
.play::after { content: ""; position: absolute; left: 10px; top: 7px; border-left: 11px solid #fff; border-top: 7px solid transparent; border-bottom: 7px solid transparent; }
nav a { display: block; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: #b9bcd0; font-weight: 500; margin-bottom: 2px; }
nav a:hover { background: var(--tinta-2); color: #fff; }
nav a.ativo { background: var(--tinta-3); color: #fff; }
nav a.destaque-menu { color: #fff; background: var(--coral); margin: 6px 0 10px; font-weight: 700; }
nav a.destaque-menu:hover { background: var(--coral-2); }
.integracoes { margin-top: auto; font-size: 12.5px; color: #9ea2bb; padding: 10px; border-top: 1px solid var(--tinta-3); }
.integracoes div { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
.bola { width: 8px; height: 8px; border-radius: 50%; background: #555a77; flex: none; }
.bola.ok { background: #3ddc84; }
main { padding: 28px 34px 60px; max-width: 1280px; width: 100%; }
h1 { font-size: 26px; letter-spacing: -0.6px; margin: 0 0 4px; }
h2 { font-size: 17px; margin: 0 0 12px; }
.sutil { color: var(--sutil); }
.topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.cartao { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; }
.grade { display: grid; gap: 16px; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .g3, .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .app { grid-template-columns: 1fr; } .lateral { position: static; height: auto; } }
.kpi .v { font-size: 28px; font-weight: 800; letter-spacing: -0.8px; margin-top: 4px; }
.kpi .r { font-size: 12.5px; color: var(--sutil); text-transform: uppercase; letter-spacing: 0.6px; font-weight: 600; }
.btn { border: 1px solid var(--linha); background: #fff; color: var(--texto); padding: 9px 16px; border-radius: 10px; font: inherit; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.btn:hover { border-color: #c9c5b8; }
.btn.primario { background: var(--coral); border-color: var(--coral); color: #fff; }
.btn.primario:hover { background: var(--coral-2); }
.btn.escuro { background: var(--tinta); border-color: var(--tinta); color: #fff; }
.btn.pequeno { padding: 6px 11px; font-size: 13px; }
.btn:disabled { opacity: 0.5; cursor: default; }
label { display: block; font-weight: 600; font-size: 13px; margin: 14px 0 6px; }
label .sutil { font-weight: 400; }
input, select, textarea { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 10px; background: #fff; color: var(--texto); }
textarea { min-height: 96px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid #ffd1c6; border-color: var(--coral); }
input[type="color"] { padding: 2px; height: 40px; }
input[type="checkbox"] { width: auto; }
.linha-form { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.linha-form > * { flex: 1; min-width: 140px; }
table { width: 100%; border-collapse: collapse; }
th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--sutil); padding: 8px 10px; border-bottom: 1px solid var(--linha); }
td { padding: 11px 10px; border-bottom: 1px solid #f0eee8; vertical-align: middle; }
tr.clicavel { cursor: pointer; }
tr.clicavel:hover td { background: #faf9f6; }
.tag { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #eee; }
.tag.fila, .tag.novo { background: #eef2ff; color: #3949ab; }
.tag.roteiro, .tag.voz, .tag.render { background: #fff4d6; color: #9a6b00; }
.tag.pronto { background: #e3f7ec; color: #17803d; }
.tag.aprovado { background: #1f9d55; color: #fff; }
.tag.erro { background: #fde7e6; color: var(--vermelho); }
.tag.aguardando_pagamento, .tag.pendente { background: #ffe9e3; color: #c2410c; }
.tag.cancelado, .tag.expirado { background: #eee; color: #777; }
.tag.pago { background: #e3f7ec; color: #17803d; }
.barra { height: 6px; background: #eee; border-radius: 3px; overflow: hidden; min-width: 80px; }
.barra > div { height: 100%; background: var(--coral); transition: width 0.4s; }
.galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.vcard { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; cursor: pointer; }
.vcard video, .vcard .ph { width: 100%; aspect-ratio: 9/16; object-fit: cover; background: var(--tinta); display: block; }
.vcard .ph { display: flex; align-items: center; justify-content: center; color: #9ea2bb; font-size: 13px; flex-direction: column; gap: 10px; padding: 16px; text-align: center; }
.vcard .info { padding: 10px 12px; font-size: 13px; }
.fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.foto { position: relative; border-radius: 10px; overflow: hidden; border: 2px solid transparent; cursor: pointer; aspect-ratio: 1; background: repeating-conic-gradient(#eee 0 25%, #fff 0 50%) 0 0/16px 16px; }
.foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.foto.sel { border-color: var(--coral); }
.foto.sel::after { content: "✓"; position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; background: var(--coral); color: #fff; font-weight: 800; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.foto .rot { position: absolute; left: 4px; bottom: 4px; font-size: 10px; font-weight: 700; background: rgba(0,0,0,0.6); color: #fff; padding: 2px 6px; border-radius: 6px; }
.toast { position: fixed; bottom: 22px; left: 50%; opacity: 0; pointer-events: none; transform: translateX(-50%) translateY(120px); background: var(--tinta); color: #fff; padding: 12px 18px; border-radius: 12px; font-weight: 600; transition: transform 0.25s; z-index: 50; max-width: 90vw; }
.toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }
.toast.erro { background: var(--vermelho); }
.erro { color: var(--vermelho); }
.login { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--tinta); }
.login form { width: 340px; display: flex; flex-direction: column; gap: 12px; text-align: center; }
.detalhe { display: grid; grid-template-columns: 340px 1fr; gap: 22px; align-items: start; }
@media (max-width: 1000px) { .detalhe { grid-template-columns: 1fr; } }
.player { width: 100%; border-radius: var(--raio); background: #000; aspect-ratio: 9/16; }
.player.f1x1 { aspect-ratio: 1; }
.player.f16x9 { aspect-ratio: 16/9; }
.cena { border: 1px solid var(--linha); border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; background: #fff; }
.cena .t { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.6px; color: var(--coral); }
.cena .n { margin-top: 4px; }
.cena .x { font-size: 12.5px; color: var(--sutil); margin-top: 6px; }
.cores { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.amostra { height: 44px; border-radius: 10px; border: 1px solid var(--linha); }
.chat { background: #e9e2d8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Ccircle cx='2' cy='2' r='1' fill='%23d9d0c2'/%3E%3C/svg%3E"); border-radius: var(--raio); height: 620px; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 8px; }
.bolha { max-width: 78%; padding: 8px 12px; border-radius: 10px; white-space: pre-wrap; line-height: 1.4; box-shadow: 0 1px 1px rgba(0,0,0,0.08); font-size: 14px; }
.bolha.in { align-self: flex-end; background: #d9fdd3; }
.bolha.out { align-self: flex-start; background: #fff; }
.bolha video, .bolha img { max-width: 260px; border-radius: 8px; display: block; margin-bottom: 6px; }
.bolha .botoes { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.bolha .botoes button { border: 0; border-top: 1px solid #eee; background: transparent; color: #00a5f4; font: inherit; font-weight: 600; padding: 6px; cursor: pointer; }
.pacotes { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.pacote { border: 1px solid var(--linha); border-radius: 12px; padding: 14px; background: #fff; }
.vazio { text-align: center; padding: 40px; color: var(--sutil); }
.passo-num { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; background: var(--coral); color: #fff; font-weight: 800; align-items: center; justify-content: center; margin-right: 8px; font-size: 13px; }
.alerta { background: #fff7e6; border: 1px solid #ffe2a8; padding: 12px 14px; border-radius: 12px; margin-bottom: 18px; }
code, .mono { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; font-size: 12.5px; }
.json { width: 100%; min-height: 420px; font-family: ui-monospace, Consolas, monospace; font-size: 12.5px; }
.flex { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.entre { justify-content: space-between; }
.spark { display: flex; align-items: flex-end; gap: 3px; height: 70px; }
.spark div { flex: 1; background: var(--coral); border-radius: 3px 3px 0 0; min-height: 2px; }
.estado { display: flex; gap: 10px; align-items: flex-start; margin: 2px 0 14px; }
.estado .bola { width: 10px; height: 10px; margin-top: 5px; background: #c9c5b8; }
.estado .bola.ok { background: var(--verde); }
@media (max-width: 700px) { .g2 { grid-template-columns: 1fr; } main { padding: 20px 16px 50px; } }
