/* ============================================================
   LAPA — Painel /admin
   ============================================================ */
:root {
  --ink: #0a0a0a; --paper: #f4f4f5; --gray-1: #8a8a8f; --gray-2: #5a5a5f;
  --line: rgba(10,10,10,0.12); --line-2: rgba(10,10,10,0.06);
  --display: "Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --mono: "Space Mono",ui-monospace,Menlo,monospace;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:var(--display); background:var(--paper); color:var(--ink); -webkit-font-smoothing:antialiased; }
a { color:inherit; }
::selection { background:var(--ink); color:var(--paper); }

.mono { font-family:var(--mono); }
.eyebrow { font-family:var(--mono); font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gray-1); }

/* ---- Login ---- */
.login { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.login-card { width:100%; max-width:380px; }
.login-card .lock { font-family:var(--mono); font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gray-1); margin-bottom:28px; }
.login-card h1 { font-size:44px; font-weight:700; letter-spacing:-0.03em; line-height:0.9; margin-bottom:6px; }
.login-card .sub { color:var(--gray-2); margin-bottom:34px; font-size:15px; }
.login-card .hint { margin-top:18px; font-family:var(--mono); font-size:11px; color:var(--gray-1); }
.login-err { color:#0a0a0a; background:#e4e4e7; border-left:2px solid #0a0a0a; padding:8px 12px; font-size:13px; margin-top:14px; display:none; }

/* ---- App shell ---- */
.shell { display:none; min-height:100vh; }
.topbar {
  position:sticky; top:0; z-index:50; background:var(--paper);
  display:flex; align-items:center; justify-content:space-between;
  padding:18px clamp(20px,4vw,56px); border-bottom:1px solid var(--ink);
}
.topbar-left { display:flex; align-items:center; gap:18px; }
.topbar .logo { height:20px; }
.topbar .tag { font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gray-1); }
.topbar-right { display:flex; align-items:center; gap:10px; }
.saved-pill { font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gray-1); opacity:0; transition:opacity .25s; }
.saved-pill.on { opacity:1; }

.layout { display:grid; grid-template-columns:230px 1fr; align-items:start; }
@media (max-width:820px){ .layout{ grid-template-columns:1fr; } }

.side { position:sticky; top:61px; padding:28px clamp(16px,2vw,28px); border-right:1px solid var(--line); height:calc(100vh - 61px); }
@media (max-width:820px){ .side{ position:static; height:auto; border-right:none; border-bottom:1px solid var(--line); display:flex; gap:6px; overflow-x:auto; } }
.side .navitem {
  display:block; width:100%; text-align:left; background:none; border:none;
  font-family:var(--display); font-size:15px; padding:11px 12px; border-radius:8px;
  color:var(--gray-2); cursor:pointer; white-space:nowrap; transition:background .15s,color .15s;
}
.side .navitem:hover { background:var(--line-2); color:var(--ink); }
.side .navitem.active { background:var(--ink); color:var(--paper); }
.side .navitem .n { font-family:var(--mono); font-size:11px; color:var(--gray-1); margin-right:8px; }
.side .navitem.active .n { color:rgba(244,244,245,.6); }

.main { padding:clamp(28px,4vw,56px); max-width:920px; }
.panel { display:none; }
.panel.active { display:block; animation:fade .3s ease; }
@keyframes fade { from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;} }

.panel-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:30px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.panel-head h2 { font-size:30px; font-weight:600; letter-spacing:-0.02em; }
.panel-head p { color:var(--gray-2); font-size:14px; margin-top:4px; max-width:46ch; }

/* ---- Form controls ---- */
.field { margin-bottom:22px; }
.field label { display:block; font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gray-1); margin-bottom:8px; }
.field input, .field textarea, .field select {
  width:100%; font-family:var(--display); font-size:16px; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:13px 15px; outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.field input:focus, .field textarea:focus { border-color:var(--ink); box-shadow:0 0 0 3px rgba(10,10,10,.06); }
.field textarea { resize:vertical; min-height:120px; line-height:1.5; }
.row2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .row2{ grid-template-columns:1fr; } }

.btn {
  font-family:var(--display); font-size:14px; font-weight:500; border-radius:100px;
  padding:11px 22px; border:1px solid var(--ink); cursor:pointer; transition:background .15s,color .15s,transform .1s;
}
.btn:active { transform:scale(.97); }
.btn-primary { background:var(--ink); color:var(--paper); }
.btn-primary:hover { background:#000; }
.btn-ghost { background:transparent; color:var(--ink); }
.btn-ghost:hover { background:var(--ink); color:var(--paper); }
.btn-sm { padding:7px 14px; font-size:12.5px; }
.btn-danger { border-color:var(--gray-1); color:var(--gray-2); }
.btn-danger:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }

.actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:8px; }

/* ---- Projects ---- */
.proj-list { display:flex; flex-direction:column; gap:14px; margin-bottom:24px; }
.proj-card { border:1px solid var(--line); border-radius:14px; padding:16px; display:grid; grid-template-columns:84px 1fr auto; gap:18px; align-items:center; background:#fff; }
.proj-card .thumb { width:84px; height:104px; border-radius:8px; object-fit:cover; filter:grayscale(1); background:#e4e4e7; }
.proj-card .meta h4 { font-size:19px; font-weight:600; letter-spacing:-0.01em; }
.proj-card .meta .sub { font-family:var(--mono); font-size:12px; color:var(--gray-1); margin-top:5px; }
.proj-card .ctrls { display:flex; flex-direction:column; gap:8px; }
@media (max-width:560px){ .proj-card{ grid-template-columns:64px 1fr; } .proj-card .thumb{width:64px;height:80px;} .proj-card .ctrls{ grid-column:1/-1; flex-direction:row; } }

/* chips (clientes) */
.chips { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.chip { display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); border-radius:100px; padding:8px 8px 8px 16px; font-size:15px; background:#fff; }
.chip button { border:none; background:var(--line-2); width:22px; height:22px; border-radius:50%; cursor:pointer; font-size:13px; line-height:1; color:var(--gray-2); }
.chip button:hover { background:var(--ink); color:var(--paper); }
.add-row { display:flex; gap:10px; }
.add-row input { flex:1; }

/* modal */
.modal-bg { position:fixed; inset:0; background:rgba(10,10,10,.45); display:none; align-items:center; justify-content:center; padding:20px; z-index:100; }
.modal-bg.on { display:flex; }
.modal { background:var(--paper); border-radius:18px; width:100%; max-width:560px; padding:30px; max-height:90vh; overflow:auto; }
.modal h3 { font-size:24px; font-weight:600; letter-spacing:-0.02em; margin-bottom:22px; }
.modal-foot { display:flex; justify-content:flex-end; gap:10px; margin-top:10px; }

.preview-link { font-family:var(--mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; border-bottom:1px solid var(--ink); padding-bottom:2px; }

/* ============================================================
   UPGRADE — barra de idioma, marca, serviços, orçamentos
   ============================================================ */
:root { --green:#1fd65f; }

/* sidebar groups + acento */
.side-group { font-family:var(--mono); font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gray-1); padding:18px 12px 8px; }
.side-group:first-child { padding-top:0; }
.side .navitem-accent { position:relative; }
.side .navitem-accent::after { content:""; position:absolute; right:12px; top:50%; transform:translateY(-50%); width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 7px var(--green); }
.side .navitem-accent.active::after { background:var(--paper); box-shadow:none; }
@media (max-width:820px){ .side-group{ display:none; } }

/* barra de idioma */
.langbar { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:30px; padding-bottom:18px; border-bottom:1px dashed var(--line); }
.langbar-left { display:flex; flex-direction:column; gap:10px; }
.langtabs { display:flex; gap:6px; background:var(--line-2); padding:4px; border-radius:100px; }
.langtab { font-family:var(--display); font-size:13.5px; font-weight:500; border:none; background:transparent; color:var(--gray-2); padding:8px 18px; border-radius:100px; cursor:pointer; transition:background .15s,color .15s; }
.langtab:hover { color:var(--ink); }
.langtab.active { background:var(--ink); color:var(--paper); }
.langbar-right { display:flex; align-items:center; gap:12px; }
.ov-note { font-family:var(--mono); font-size:10.5px; letter-spacing:0.04em; color:var(--gray-1); max-width:34ch; text-align:right; line-height:1.5; }

/* logo field */
.logo-row { display:flex; gap:22px; align-items:center; }
.logo-preview { width:140px; height:72px; border:1px solid var(--line); border-radius:12px; background:var(--ink); display:flex; align-items:center; justify-content:center; padding:14px; }
.logo-preview img { max-width:100%; max-height:100%; filter:invert(1); }
.logo-ctrls { display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.micro { font-family:var(--mono); font-size:10.5px; color:var(--gray-1); line-height:1.5; max-width:32ch; }

/* serviços */
.svc-card { grid-template-columns:auto 1fr auto; }
.svc-idx { font-family:var(--mono); font-size:14px; color:var(--gray-1); align-self:flex-start; padding-top:2px; }

/* ---------------- Orçamentos: central ---------------- */
.quote-list { display:flex; flex-direction:column; gap:14px; margin-bottom:24px; }
.quote-empty { border:1px dashed var(--line); border-radius:14px; padding:40px; text-align:center; color:var(--gray-1); font-family:var(--mono); font-size:13px; }
.quote-card { border:1px solid var(--line); border-radius:14px; padding:18px 20px; display:grid; grid-template-columns:1fr auto auto; gap:22px; align-items:center; background:#fff; }
.quote-card .q-num { font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-1); margin-bottom:6px; }
.quote-card .q-status { padding:2px 8px; border-radius:100px; font-size:10px; }
.q-status.s-rascunho { background:var(--line-2); color:var(--gray-2); }
.q-status.s-enviada { background:#0a0a0a; color:#fff; }
.q-status.s-aprovada { background:var(--green); color:#0a3d18; }
.quote-card h4 { font-size:19px; font-weight:600; letter-spacing:-0.01em; }
.quote-card .q-sub { font-size:13px; color:var(--gray-2); margin-top:4px; }
.quote-card .q-amount { font-family:var(--display); font-size:22px; font-weight:700; letter-spacing:-0.02em; white-space:nowrap; }
.quote-card .q-ctrls { display:flex; flex-wrap:wrap; gap:7px; justify-content:flex-end; max-width:230px; }
@media (max-width:680px){ .quote-card{ grid-template-columns:1fr; } .quote-card .q-amount{ font-size:26px; } .quote-card .q-ctrls{ justify-content:flex-start; max-width:none; } }

/* ---------------- Orçamentos: editor ---------------- */
.qmodal { background:var(--paper); border-radius:18px; width:100%; max-width:780px; max-height:92vh; display:flex; flex-direction:column; overflow:hidden; }
.qmodal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:22px 26px; border-bottom:1px solid var(--line); }
.qmodal-head h3 { font-size:22px; font-weight:600; letter-spacing:-0.02em; }
.qmodal-head-actions { display:flex; gap:8px; }
.qmodal-body { padding:24px 26px; overflow:auto; }
.qmodal-foot { display:flex; justify-content:flex-end; gap:10px; padding:18px 26px; border-top:1px solid var(--line); background:var(--paper); }

.qgrid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
@media (max-width:560px){ .qgrid3{ grid-template-columns:1fr; } }
.qsec-tag { font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink); margin:26px 0 14px; padding-bottom:8px; border-bottom:1px solid var(--ink); }

.qrows { display:flex; flex-direction:column; gap:9px; margin-bottom:12px; }
.qrow { display:flex; gap:8px; align-items:center; }
.qrows-head { display:flex; gap:8px; font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gray-1); padding:0 2px 2px; }
.qrows-head-item span:nth-child(1){ flex:1; } .qrows-head-item span:nth-child(2),.qrows-head-item span:nth-child(3),.qrows-head-item span:nth-child(4){ width:96px; } .qrows-head-item span:nth-child(5){ width:30px; }
.qf { width:100%; font-family:var(--display); font-size:14.5px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:9px; padding:10px 12px; outline:none; transition:border-color .15s; }
.qf:focus { border-color:var(--ink); }
.qrow-item > .qf:first-child { flex:1; }
.qf-sm { width:96px; flex:0 0 96px; }
.qf-detail { font-size:13px; color:var(--gray-2); margin-bottom:4px; background:transparent; border-style:dashed; }
.qdel { flex:0 0 30px; width:30px; height:30px; border:none; background:var(--line-2); border-radius:8px; cursor:pointer; color:var(--gray-2); font-size:13px; }
.qdel:hover { background:var(--ink); color:var(--paper); }
select.qf { appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a8a8f' fill='none' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:28px; }

.qtotals-bar { display:flex; align-items:flex-end; gap:24px; flex-wrap:wrap; margin:16px 0 8px; padding:18px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.qtotals-bar .eyebrow { display:block; margin-bottom:6px; }
.qtotals-bar strong { font-family:var(--display); font-size:18px; font-weight:600; }
.qtotals-bar .qdisc { display:flex; flex-direction:column; gap:6px; }
.qtotals-bar .qdisc label { font-family:var(--mono); font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gray-1); }
.qtotals-bar .qdisc input { width:90px; font-family:var(--display); font-size:14.5px; border:1px solid var(--line); border-radius:9px; padding:9px 12px; }
.qtotals-bar .qgrand { margin-left:auto; text-align:right; }
.qtotals-bar .qgrand strong { font-size:30px; font-weight:700; letter-spacing:-0.02em; }

/* ============================================================
   Apresentações (decks) — lista + editor
   ============================================================ */
.quote-card .q-actions { display:flex; flex-wrap:wrap; gap:7px; justify-content:flex-end; grid-column:2 / 4; }
.quote-card .q-actions .danger { color:var(--gray-2); }
.quote-card .q-actions .danger:hover { background:#b00020; border-color:#b00020; color:#fff; }
.empty-list { border:1px dashed var(--line); border-radius:14px; padding:34px; text-align:center; color:var(--gray-2); font-size:15px; }

.editor-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; padding-bottom:18px; border-bottom:1px solid var(--ink); }
.editor-bar-right { display:flex; align-items:center; gap:12px; }
.saved-pill { font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--green); }

.deck-lang { display:flex; flex-direction:column; gap:10px; margin-bottom:30px; padding:18px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.deck-lang .micro { max-width:none; }

.ed-sec { margin-bottom:28px; padding-bottom:26px; border-bottom:1px dashed var(--line); }
.ed-sec:last-of-type { border-bottom:none; }
.ed-sec h4 { font-size:17px; font-weight:600; letter-spacing:-0.01em; margin-bottom:6px; display:flex; align-items:center; gap:10px; }
.ed-langtag { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; background:var(--ink); color:var(--paper); padding:3px 8px; border-radius:100px; }
.ed-hint { font-size:13px; color:var(--gray-2); margin-bottom:14px; line-height:1.5; }
.ed-save { margin-top:8px; }

.deck-lang .langtabs { align-self:flex-start; }

/* curadoria de cases */
.case-pick { display:flex; flex-wrap:wrap; gap:10px; }
.case-chip { display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); border-radius:100px; padding:9px 16px; font-size:14.5px; background:#fff; cursor:pointer; transition:background .15s,border-color .15s; }
.case-chip:hover { border-color:var(--ink); }
.case-chip.on { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.case-chip input { width:15px; height:15px; accent-color:var(--green); cursor:pointer; }

/* toggles de seção */
.toggles { display:flex; flex-wrap:wrap; gap:10px; }
.toggle { display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); border-radius:10px; padding:10px 16px; font-size:14.5px; background:#fff; cursor:pointer; transition:background .15s,border-color .15s; }
.toggle:hover { border-color:var(--ink); }
.toggle.on { border-color:var(--green); box-shadow:inset 0 0 0 1px var(--green); }
.toggle input { width:16px; height:16px; accent-color:var(--green); cursor:pointer; }

/* logo do cliente (claro) */
.logo-preview.light { background:#fff; border:1px solid var(--line); }
.logo-preview.light img { filter:none; }

/* números/depoimentos do deck */
#dk-numbers .qrow, #dk-words .qrow { margin-bottom:9px; }
.word-row { border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:12px; background:#fff; display:flex; flex-direction:column; gap:9px; }
#dk-numbers { margin-bottom:6px; }

/* ============================================================
   Assinaturas de e-mail
   ============================================================ */
.sig-tabs { display:flex; gap:10px; margin-bottom:26px; flex-wrap:wrap; }
.sig-tab { display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left; border:1px solid var(--line); border-radius:12px; padding:14px 22px; background:#fff; cursor:pointer; font-family:var(--display); font-size:18px; font-weight:600; color:var(--ink); transition:border-color .15s, background .15s; }
.sig-tab small { font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-1); font-weight:400; }
.sig-tab:hover { border-color:var(--ink); }
.sig-tab.active { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.sig-tab.active small { color:var(--green); }

.sig-editor { display:grid; grid-template-columns:1.05fr 0.95fr; gap:40px; align-items:start; }
@media (max-width:1080px){ .sig-editor { grid-template-columns:1fr; } }
.sig-form-col { min-width:0; }
.sig-preview-col { position:sticky; top:20px; display:flex; flex-direction:column; gap:14px; }
.sig-preview-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:0; overflow:hidden; box-shadow:0 12px 30px rgba(0,0,0,0.06); }
.sig-preview-card.on-dark { background:#0a0a0a; border-color:#0a0a0a; }
.sig-preview-card > table { display:block; }
.sig-export-row { display:flex; gap:10px; }
.sig-theme-row { display:flex; align-items:center; gap:16px; margin-bottom:4px; }
.sig-theme { display:inline-flex; border:1px solid var(--line); border-radius:100px; overflow:hidden; }
.sig-theme button { font-family:var(--display); font-size:12.5px; background:#fff; border:0; color:var(--gray-2); cursor:pointer; padding:7px 16px; transition:background .15s,color .15s; }
.sig-theme button.active { background:var(--ink); color:var(--paper); }
.sig-sand-lbl { display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--gray-2); cursor:pointer; }
.sig-sand-lbl input { width:15px; height:15px; accent-color:var(--green); cursor:pointer; }

/* ============================================================
   Briefings (admin)
   ============================================================ */
#bf-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; margin-bottom:22px; }
.bf-admin-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; cursor:pointer; transition:border-color .15s,transform .15s; display:flex; flex-direction:column; gap:8px; }
.bf-admin-card:hover { border-color:var(--ink); transform:translateY(-2px); }
.bf-admin-card.is-new { border-left:3px solid var(--green); }
.bfa-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.bfa-num { font-family:var(--mono); font-size:11px; letter-spacing:0.1em; color:var(--gray-1); text-transform:uppercase; }
.bfa-status { font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; padding:4px 10px; border-radius:100px; background:color-mix(in srgb, var(--sc) 14%, #fff); color:color-mix(in srgb, var(--sc) 80%, #000); }
.bfa-name { font-size:17px; font-weight:600; letter-spacing:-0.01em; }
.bfa-co { font-weight:400; color:var(--gray-2); }
.bfa-svcs { font-family:var(--mono); font-size:11.5px; color:var(--green); letter-spacing:0.04em; }
.bfa-meta { font-size:12.5px; color:var(--gray-1); }
.bf-det-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.bf-det-contacts { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.bf-det-contact { display:inline-flex; align-items:center; gap:8px; font-size:15px; color:var(--ink); text-decoration:none; background:#fff; border:1px solid var(--line); border-radius:100px; padding:8px 16px; }
.bf-det-contact:hover { border-color:var(--ink); }

/* ============================================================
   Admin — Projetos (visão geral)
   ============================================================ */
.proj-funnel { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:24px; padding:18px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.proj-funnel-col { display:flex; flex-direction:column; align-items:center; gap:6px; min-width:70px; }
.proj-funnel-dot { width:10px; height:10px; border-radius:50%; }
.proj-funnel-lbl { font-family:var(--mono); font-size:10px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-1); text-align:center; line-height:1.3; }
.proj-funnel-n { font-size:22px; font-weight:700; letter-spacing:-0.02em; }
.proj-admin-cards { display:flex; flex-direction:column; gap:10px; }
.proj-admin-card { display:grid; grid-template-columns:1.8fr 1fr auto auto; gap:16px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; }
@media (max-width:1100px){ .proj-admin-card { grid-template-columns:1fr 1fr; } }
.proj-ac-num { font-family:var(--mono); font-size:11px; color:var(--gray-1); margin-bottom:3px; }
.proj-ac-name { font-size:16px; font-weight:600; letter-spacing:-0.01em; }
.proj-ac-co { font-size:13px; color:var(--gray-2); }
.proj-ac-meta { display:flex; gap:10px; font-family:var(--mono); font-size:12px; color:var(--gray-1); }
.proj-ac-actions { display:flex; gap:7px; }

/* revisão de briefing no detalhe (admin) */
.bf-review { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fff; margin-top:20px; }
.bf-rev-row { display:grid; grid-template-columns:200px 1fr; gap:20px; padding:16px 20px; border-bottom:1px solid var(--line-2); }
.bf-rev-row:last-child { border-bottom:none; }
.bf-rev-k { font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-1); padding-top:2px; }
.bf-rev-v { font-size:15px; line-height:1.45; color:var(--ink); white-space:pre-wrap; word-break:break-word; }

/* ============================================================
   Dashboard de Orçamentos
   ============================================================ */
.q-status.s-cancelada { background:#e0473a; color:#fff; }

.dash { margin-bottom:36px; }
.dash-empty, .dash-mini-empty { border:1px dashed var(--line); border-radius:14px; padding:30px; text-align:center; color:var(--gray-2); font-size:14.5px; line-height:1.55; }
.dash-mini-empty { padding:22px; font-size:13.5px; }

/* KPIs */
.kpi-row { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:20px; }
@media (max-width:1080px){ .kpi-row { grid-template-columns:repeat(2,1fr); } }
.kpi { background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px 24px; position:relative; overflow:hidden; }
.kpi-green { background:var(--ink); border-color:var(--ink); }
.kpi-green .kpi-lbl, .kpi-green .kpi-sub { color:var(--gray-1); }
.kpi-green .kpi-val { color:#fff; }
.kpi-green::after { content:""; position:absolute; right:-30px; top:-30px; width:90px; height:90px; border-radius:50%; background:var(--green); opacity:0.18; filter:blur(6px); }
.kpi-lbl { font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gray-1); }
.kpi-val { font-size:30px; font-weight:700; letter-spacing:-0.03em; margin:10px 0 4px; line-height:1; white-space:nowrap; }
.kpi-green .kpi-val { color:var(--green); }
.kpi-sub { font-size:12.5px; color:var(--gray-2); }

/* charts row */
.dash-charts { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
@media (max-width:1080px){ .dash-charts { grid-template-columns:1fr; } }
.dash-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px 24px; }
.dash-card-head { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:18px; gap:12px; }
.dash-card-head h4 { font-size:16px; font-weight:600; letter-spacing:-0.01em; }
.dash-card-tag { font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-1); display:flex; align-items:center; }
.lg-d { display:inline-block; width:9px; height:9px; border-radius:2px; margin:0 5px; }
.lg-total { background:#c9c9cd; }
.lg-closed { background:var(--green); }

/* donut */
.donut-wrap { display:flex; align-items:center; gap:26px; }
.donut { width:180px; height:180px; flex:0 0 auto; }
.donut-seg { transition:stroke-width .2s; }
.donut-seg:hover { stroke-width:30px; }
.donut-num { text-anchor:middle; font-family:var(--display); font-weight:700; font-size:42px; fill:var(--ink); letter-spacing:-0.03em; }
.donut-lbl { text-anchor:middle; font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; fill:var(--gray-1); }
.donut-legend { flex:1; display:flex; flex-direction:column; gap:11px; min-width:0; }
.leg-row { display:grid; grid-template-columns:auto 1fr auto auto; gap:10px; align-items:center; font-size:14px; }
.leg-dot { width:11px; height:11px; border-radius:50%; }
.leg-name { color:var(--ink); }
.leg-count { font-family:var(--mono); font-weight:700; }
.leg-val { font-family:var(--mono); font-size:12px; color:var(--gray-2); min-width:54px; text-align:right; }

/* serviços */
.svc-bars { display:flex; flex-direction:column; gap:15px; }
.svc-bar-top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:7px; gap:12px; }
.svc-bar-name { font-size:14.5px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.svc-bar-val { font-family:var(--mono); font-size:12px; color:var(--gray-2); white-space:nowrap; }
.svc-bar-track { height:9px; background:var(--line-2); border-radius:100px; overflow:hidden; }
.svc-bar-fill { height:100%; background:linear-gradient(90deg, var(--ink), var(--green)); border-radius:100px; transition:width .6s cubic-bezier(0.16,1,0.3,1); }

/* meses */
.dash-months { margin-bottom:4px; }
.mo-chart { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; height:180px; align-items:end; }
.mo-col { display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end; gap:8px; }
.mo-bars { position:relative; width:100%; max-width:54px; height:130px; display:flex; align-items:flex-end; justify-content:center; }
.mo-total { position:absolute; bottom:0; width:100%; background:#e2e2e5; border-radius:7px 7px 0 0; transition:height .6s cubic-bezier(0.16,1,0.3,1); }
.mo-closed { position:absolute; bottom:0; width:100%; background:var(--green); border-radius:7px 7px 0 0; transition:height .6s cubic-bezier(0.16,1,0.3,1); }
.mo-lbl { font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-1); }
.mo-num { font-size:13px; font-weight:700; color:var(--ink); height:16px; }

/* cabeçalho da lista + filtro */
.quote-list-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; flex-wrap:wrap; }
.quote-list-head h3 { font-size:18px; font-weight:600; letter-spacing:-0.01em; }
.dash-filter { display:flex; gap:8px; flex-wrap:wrap; }
.fchip { display:inline-flex; align-items:center; gap:8px; font-size:13px; border:1px solid var(--line); background:#fff; border-radius:100px; padding:7px 14px; cursor:pointer; color:var(--gray-2); transition:all .15s; font-family:var(--display); }
.fchip:hover { border-color:var(--ink); color:var(--ink); }
.fchip.on { background:var(--ink); color:#fff; border-color:var(--ink); }
.fchip span { font-family:var(--mono); font-size:11px; opacity:0.7; }
.fchip.on span { opacity:1; }

/* ============================================================
   Financeiro
   ============================================================ */
.kpi-red { background:#fff; border-color:#f3c6c1; }
.kpi-red .kpi-val { color:#e0473a; }

.fin-tabs { display:flex; gap:8px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.fin-tab { font-family:var(--display); font-size:15px; font-weight:500; color:var(--gray-2); background:none; border:0; padding:12px 6px; margin-right:18px; cursor:pointer; position:relative; transition:color .15s; }
.fin-tab:hover { color:var(--ink); }
.fin-tab.active { color:var(--ink); font-weight:600; }
.fin-tab.active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--green); }

.fin-list { display:flex; flex-direction:column; gap:12px; margin-bottom:18px; }
.fin-card { border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:#fff; transition:border-color .15s, opacity .15s; }
.fin-card:hover { border-color:var(--gray-1); }
.fin-card.off { opacity:0.55; }

.fin-card-grid { display:grid; gap:10px; align-items:center; }
.rec-grid { grid-template-columns:1.3fr 1.3fr 70px 100px 100px 140px auto 30px; }
.mrr-grid { grid-template-columns:1.3fr 1.6fr 70px 110px 64px auto 30px; }
.exp-grid { grid-template-columns:18px 1.6fr 1.2fr 70px 100px auto auto 30px; }
@media (max-width:1100px){ .rec-grid, .mrr-grid, .exp-grid { grid-template-columns:1fr 1fr; } }

.fin-card-foot { display:flex; align-items:center; gap:14px; margin-top:11px; padding-top:11px; border-top:1px solid var(--line-2); }
.fin-mini-track { width:120px; height:6px; background:var(--line-2); border-radius:100px; overflow:hidden; flex:0 0 auto; }
.fin-mini-fill { height:100%; border-radius:100px; transition:width .4s; }
.fin-rem { font-family:var(--mono); font-size:12px; color:var(--gray-2); white-space:nowrap; }
.fin-card-foot .qf-note { flex:1; }

.fin-status { font-family:var(--mono); font-size:10px; letter-spacing:0.04em; text-transform:uppercase; padding:5px 10px; border-radius:100px; text-align:center; background:color-mix(in srgb, var(--sc) 16%, #fff); color:color-mix(in srgb, var(--sc) 65%, #000); white-space:nowrap; }
.fin-status.s-pago { color:#0a6b2c; }
.fin-status.s-atrasado { color:#b3140a; }

.fin-switch { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--gray-2); cursor:pointer; white-space:nowrap; }
.fin-switch input { width:15px; height:15px; accent-color:var(--green); cursor:pointer; }

.cat-dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; }
.cat-dot.lg { width:12px; height:12px; margin:0; }

.svc-bar-fill.cat { background:linear-gradient(90deg, color-mix(in srgb, var(--c) 55%, #000), var(--c)); }
.svc-bar-name .cat-dot { vertical-align:middle; }

/* progresso de recebimento no donut card */
.fin-progress { margin-top:18px; padding-top:16px; border-top:1px solid var(--line-2); }
.fin-progress-top { display:flex; justify-content:space-between; font-size:13px; color:var(--gray-2); margin-bottom:8px; }
.fin-progress-track { height:10px; background:var(--line-2); border-radius:100px; overflow:hidden; }
.fin-progress-fill { height:100%; background:linear-gradient(90deg, var(--ink), var(--green)); border-radius:100px; transition:width .6s cubic-bezier(0.16,1,0.3,1); }

/* fluxo entradas x saídas */
.flow-chart { display:flex; flex-direction:column; gap:18px; }
.flow-row { display:grid; grid-template-columns:72px 1fr auto; gap:14px; align-items:center; }
.flow-lbl { font-size:13.5px; color:var(--gray-2); }
.flow-track { height:18px; background:var(--line-2); border-radius:100px; overflow:hidden; }
.flow-fill { height:100%; border-radius:100px; transition:width .6s cubic-bezier(0.16,1,0.3,1); }
.flow-fill.in { background:var(--green); }
.flow-fill.out { background:var(--ink); }
.flow-val { font-family:var(--mono); font-size:13px; font-weight:700; white-space:nowrap; }
.flow-net { display:flex; justify-content:space-between; align-items:baseline; margin-top:6px; padding-top:16px; border-top:2px solid var(--ink); }
.flow-net span { font-size:14px; color:var(--gray-2); }
.flow-net strong { font-size:26px; font-weight:700; letter-spacing:-0.02em; }
.flow-net.pos strong { color:#0a8a3a; }
.flow-net.neg strong { color:#e0473a; }
.qf-note { font-size:13px; }
