/* ============================================================
   NexoJus — gestão do escritório (telas do mockup 44 sobre as
   capabilities gestao_*). Classes com prefixo g- para não colidir
   com app.css. Tokens do portal (app.css). Sem estilo inline (CSP).
   ============================================================ */
.g { --g-acc-border: rgba(180, 155, 102, 0.32); --g-shadow-acc: 0 8px 24px -8px rgba(180, 155, 102, 0.35); --g-blue: #60a5fa; --g-violet: #a78bfa; --g-pink: #f472b6; }
.g, .g * { box-sizing: border-box; }
.g a { color: var(--accent-bright); text-decoration: none; }
.g .g-fade { animation: g-fade .22s ease-out; }
@keyframes g-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------ utilidades */
.g .g-grow { flex: 1; min-width: 0; }
.g .g-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.g .g-col { display: flex; flex-direction: column; gap: 8px; }
.g .g-mt6 { margin-top: 6px; } .g .g-mt8 { margin-top: 8px; } .g .g-mt12 { margin-top: 12px; } .g .g-mt16 { margin-top: 16px; }
.g .g-mb12 { margin-bottom: 12px; } .g .g-ml-auto { margin-left: auto; }
.g .g-muted { color: var(--muted); } .g .g-dim { color: var(--dim); } .g .g-strong { color: var(--strong); }
.g .g-xs { font-size: 10.5px; } .g .g-small { font-size: 11.5px; }
.g .g-ro { color: var(--rose); } .g .g-am { color: var(--amber); } .g .g-em { color: var(--emerald); }
.g .g-mono, .g .g-cnj { font-family: var(--font-mono); }
.g .g-cnj { font-size: 11.5px; color: var(--muted); letter-spacing: .01em; }
.g .g-ico { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.g .g-ico.g-sm { width: 13px; height: 13px; } .g .g-ico.g-xs { width: 12px; height: 12px; }

/* ------------------------------------------------ página */
.g .g-page { max-width: 1080px; margin: 0 auto; }
.g .g-page.g-wide { max-width: 1280px; }
.g .g-page-head { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.g .g-page-sub { font-size: 12px; color: var(--dim); margin: 0; line-height: 1.5; }
.g .g-back { font-size: 11px; color: var(--dim); display: inline-block; margin-bottom: 6px; }
.g .g-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 18px 20px; }
.g .g-card + .g-card { margin-top: 16px; }
.g .g-card-title { font-size: 13px; font-weight: 700; color: var(--strong); margin: 0 0 4px; }
.g .g-card-sub { font-size: 11px; color: var(--dim); margin: 0; line-height: 1.5; }
.g .g-two { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(340px, 1.1fr); gap: 16px; align-items: start; }
@media (max-width: 900px) { .g .g-two { grid-template-columns: 1fr; } }
.g .g-sec { font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--dim); margin: 12px 0 6px; }
.g .g-hint { font-size: 11px; color: var(--dim); line-height: 1.45; margin: 0; }
.g .g-hint.g-warn { color: var(--amber); }
.g .g-empty { padding: 28px; text-align: center; color: var(--dim); font-size: 12.5px; border: 1px dashed var(--border); border-radius: 12px; }
.g .g-err { padding: 12px 14px; border: 1px solid var(--rose); background: var(--rose-soft); border-radius: 10px; color: var(--strong); font-size: 12.5px; }

/* ------------------------------------------------ badges / tags */
.g .g-badge { font-size: 8px; font-weight: 700; text-transform: uppercase; padding: 2px 6px; border-radius: 999px; letter-spacing: .05em; white-space: nowrap; display: inline-block; }
.g .g-badge.g-em { color: var(--emerald); background: var(--emerald-soft); }
.g .g-badge.g-am { color: var(--amber); background: var(--amber-soft); }
.g .g-badge.g-ro { color: var(--rose); background: var(--rose-soft); }
.g .g-badge.g-acc { color: var(--accent-bright); background: var(--accent-soft); }
.g .g-badge.g-dim { color: var(--dim); background: var(--elev); }
.g .g-tag { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 2px 7px; border-radius: 4px; background: var(--elev); color: var(--muted); border: 1px solid var(--border); }
.g .g-orig { font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 2px 6px; border-radius: 4px; display: inline-block; }
.g .g-orig.g-o-publicacao { background: var(--blue-soft); color: var(--g-blue); }
.g .g-orig.g-o-movimentacao { background: var(--violet-soft); color: var(--g-violet); }
.g .g-orig.g-o-whatsapp, .g .g-orig.g-o-contrato { background: var(--emerald-soft); color: var(--emerald); }
.g .g-orig.g-o-ligacao, .g .g-orig.g-o-financeiro { background: var(--amber-soft); color: var(--amber); }
.g .g-orig.g-o-peca { background: var(--accent-soft); color: var(--accent-bright); }
.g .g-orig.g-o-tarefa { background: rgba(236, 72, 153, .12); color: var(--g-pink); }
.g .g-orig.g-o-prazo { background: var(--rose-soft); color: var(--rose); }
.g .g-orig.g-o-assistente { background: var(--violet-soft); color: var(--g-violet); }
.g .g-auto { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; color: var(--accent-bright); background: var(--accent-soft); border: 1px solid var(--g-acc-border); border-radius: 999px; padding: 2px 8px; font-weight: 600; }

/* ------------------------------------------------ botões / controles */
.g .g-btn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 8px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid var(--border); background: var(--elev); color: var(--text); }
.g .g-btn:hover { filter: brightness(1.06); }
.g .g-btn.g-primary { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); box-shadow: var(--g-shadow-acc); }
.g .g-btn.g-ghost { background: transparent; }
.g .g-btn.g-sm { padding: 5px 10px; font-size: 12px; border-radius: 6px; }
.g .g-btn.g-danger { color: var(--rose); border-color: var(--rose); }
.g .g-btn.g-ok { color: var(--emerald); border-color: var(--emerald); }
.g .g-btn:disabled { opacity: .5; cursor: not-allowed; }
.g .g-pills { display: flex; gap: 4px; background: var(--elev); border: 1px solid var(--border); border-radius: 8px; padding: 3px; width: max-content; }
.g .g-pill { padding: 5px 12px; border-radius: 6px; font-size: 12px; font-weight: 600; color: var(--dim); border: none; background: transparent; cursor: pointer; font-family: inherit; }
.g .g-pill.g-active { background: var(--card); color: var(--accent-bright); box-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.g .g-pill .g-n { font-family: var(--font-mono); font-size: 10px; margin-left: 6px; color: var(--dim); }
.g .g-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; }
.g .g-search { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 8px; background: var(--elev); border: 1px solid var(--border); border-radius: 8px; padding: 7px 10px; color: var(--dim); }
.g .g-search input { flex: 1; background: transparent; border: none; outline: none; color: var(--text); font: inherit; font-size: 12px; }
.g .g-sel, .g .g-field input, .g .g-field select, .g .g-field textarea { background: var(--elev); border: 1px solid var(--border); border-radius: 8px; padding: 7px 10px; color: var(--text); font: inherit; font-size: 12.5px; outline: none; }
.g .g-field input:focus, .g .g-field select:focus, .g .g-field textarea:focus { border-color: var(--accent); }
.g .g-field { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; }
.g .g-field label { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--dim); font-weight: 700; }
.g .g-field textarea { min-height: 64px; resize: vertical; }
.g .g-field.g-inline { flex-direction: row; align-items: center; gap: 8px; }
.g .g-field.g-inline input[type="checkbox"] { width: auto; }

/* ------------------------------------------------ listas */
.g .g-list { display: flex; flex-direction: column; gap: 8px; }
.g .g-item { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; display: block; color: inherit; }
.g a.g-item:hover { border-color: var(--accent); }
.g .g-item-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.g .g-item-title { font-size: 13.5px; font-weight: 600; color: var(--strong); }
.g .g-item-sub { font-size: 11.5px; color: var(--dim); margin-top: 3px; line-height: 1.5; }
.g .g-item-text { font-size: 12px; color: var(--muted); margin-top: 8px; line-height: 1.5; }
.g .g-item-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; align-items: center; }
.g .g-tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
.g .g-tbl th { text-align: left; padding: 8px 10px; color: var(--dim); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; border-bottom: 1px solid var(--border); }
.g .g-tbl td { padding: 8px 10px; color: var(--text); border-bottom: 1px solid var(--border); vertical-align: middle; }
.g .g-tbl td.g-r, .g .g-tbl th.g-r { text-align: right; }
.g .g-kv { display: flex; flex-direction: column; gap: 2px; padding: 6px 0; border-bottom: 1px solid var(--border); }
.g .g-kv .g-k { font-size: 9.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--dim); font-weight: 700; }
.g .g-kv .g-v { font-size: 12.5px; color: var(--strong); }
.g .g-mov { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.g .g-mov .g-d { font-family: var(--font-mono); font-size: 10.5px; color: var(--dim); white-space: nowrap; min-width: 84px; }
.g .g-tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--border); margin: 14px 0; flex-wrap: wrap; }
.g .g-tab { padding: 8px 12px; font-size: 12.5px; font-weight: 600; color: var(--dim); border: none; background: transparent; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; font-family: inherit; }
.g .g-tab.g-active { color: var(--accent-bright); border-bottom-color: var(--accent); }
.g .g-tab .g-n { font-family: var(--font-mono); font-size: 10px; margin-left: 5px; color: var(--dim); }
.g .g-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 14px; }
.g .g-kpi { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; }
.g .g-stat-val { font-family: var(--font-mono); font-size: 24px; font-weight: 700; color: var(--strong); line-height: 1; display: block; }
.g .g-stat-lbl { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--dim); font-weight: 700; display: block; margin-top: 4px; }

/* ------------------------------------------------ agenda (board) */
.g .g-workbar { display: flex; align-items: center; gap: 12px; padding: 0 0 8px; flex-wrap: wrap; }
.g .g-today { font-family: var(--font-display); font-size: 22px; color: var(--strong); }
.g .g-today small { display: block; font-family: var(--font-ui); font-size: 10px; text-transform: uppercase; letter-spacing: .14em; color: var(--dim); font-weight: 700; }
.g .g-controlbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 6px 0 12px; border-bottom: 1px solid var(--border); margin-bottom: 12px; }
.g .g-btabs { display: flex; gap: 2px; }
.g .g-btab { padding: 5px 10px; border-radius: 6px; font-size: 12px; font-weight: 600; color: var(--dim); border: 1px solid transparent; background: transparent; cursor: pointer; font-family: inherit; }
.g .g-btab.g-active { color: var(--accent-bright); background: var(--accent-soft); }
.g .g-bkpis { display: flex; gap: 14px; margin-left: 6px; flex-wrap: wrap; }
.g .g-bkpi { display: flex; flex-direction: column; line-height: 1.1; cursor: pointer; background: none; border: none; padding: 0; font-family: inherit; text-align: left; }
.g .g-bkpi b { font-family: var(--font-mono); font-size: 16px; color: var(--strong); }
.g .g-bkpi span { font-size: 9px; text-transform: uppercase; letter-spacing: .08em; color: var(--dim); font-weight: 700; }
.g .g-bkpi.g-ro b { color: var(--rose); } .g .g-bkpi.g-am b { color: var(--amber); } .g .g-bkpi.g-acc b { color: var(--accent-bright); }
.g .g-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; border: 1px solid var(--g-acc-border); background: var(--accent-soft); color: var(--accent-bright); }
.g .g-board { display: grid; grid-template-columns: minmax(240px, .9fr) minmax(300px, 1.25fr) minmax(260px, 1fr); gap: 12px; }
@media (max-width: 1000px) { .g .g-board { grid-template-columns: 1fr; } }
.g .g-bcol { display: flex; flex-direction: column; background: var(--bg); border: 1px solid var(--border); border-radius: 12px; min-height: 200px; }
.g .g-bcol.g-overdue { border-color: var(--rose); }
.g .g-bcol-head { display: flex; align-items: center; gap: 8px; padding: 12px 14px 8px; }
.g .g-bcol-title { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.g .g-bcol.g-overdue .g-bcol-title { color: var(--rose); }
.g .g-bcol-count { font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: var(--dim); background: var(--elev); border-radius: 999px; padding: 1px 8px; }
.g .g-bcol-body { flex: 1; padding: 4px 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.g .g-fixas { margin: 0 10px 8px; padding: 8px 10px; border: 1px dashed var(--border); border-radius: 8px; background: var(--elev); }
.g .g-fixas-lbl { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--dim); margin-bottom: 6px; }
.g .g-fixa { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--text); padding: 2px 0; flex-wrap: wrap; }
.g .g-fixa .g-h { font-family: var(--font-mono); font-weight: 700; color: var(--accent-bright); }
.g .g-fixa .g-h.g-ro { color: var(--rose); }

/* ------------------------------------------------ tarefa (card) */
.g .g-tcard { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; cursor: pointer; transition: border-color .15s; }
.g .g-tcard:hover { border-color: var(--accent); }
.g .g-tcard.g-overdue { border-left: 3px solid var(--rose); }
.g .g-tcard.g-rev { border-left: 3px solid var(--amber); }
.g .g-tcard-top { display: flex; align-items: flex-start; gap: 10px; }
.g .g-check { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; border-radius: 5px; border: 1.5px solid var(--dim); background: transparent; cursor: pointer; padding: 0; }
.g .g-check:hover { border-color: var(--emerald); }
.g .g-tcard.g-done .g-check, .g .g-chk.g-done .g-check { background: var(--emerald); border-color: var(--emerald); }
.g .g-tcard-title { font-size: 13px; font-weight: 600; color: var(--strong); line-height: 1.3; }
.g .g-tcard.g-done .g-tcard-title { text-decoration: line-through; color: var(--dim); }
.g .g-tcard-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.g .g-time { font-size: 10.5px; color: var(--dim); }
.g .g-time strong { color: var(--muted); font-weight: 700; }
.g .g-tcard.g-overdue .g-time strong { color: var(--rose); }
.g .g-link { font-size: 10.5px; color: var(--accent-bright); }
.g .g-prog { margin-top: 8px; }
.g .g-prog-bar { height: 4px; border-radius: 999px; background: var(--elev); overflow: hidden; }
.g .g-prog-bar i { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.g .g-prog-lbl { font-size: 9px; color: var(--dim); margin-top: 3px; font-weight: 600; }

/* ------------------------------------------------ tratar publicação */
.g .g-trecho { font-size: 12.5px; color: var(--text); line-height: 1.6; white-space: pre-wrap; background: var(--elev); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; margin-top: 10px; font-family: var(--font-display); }
.g .g-parte { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--elev); cursor: pointer; margin-top: 6px; width: 100%; font: inherit; color: inherit; text-align: left; }
.g .g-parte:hover { border-color: var(--accent); }
.g .g-parte.g-cliente { border-color: var(--accent); background: var(--accent-soft); }
.g .g-parte .g-papel { font-size: 9px; text-transform: uppercase; letter-spacing: .08em; color: var(--dim); font-weight: 700; width: 84px; flex-shrink: 0; }
.g .g-parte .g-nome { font-size: 12.5px; color: var(--strong); font-weight: 600; flex: 1; }
.g .g-parte .g-marca { font-size: 10px; color: var(--accent-bright); font-weight: 700; }
.g .g-wf { margin-top: 8px; border: 1px dashed var(--border); border-radius: 8px; padding: 8px 10px; background: var(--elev); }
.g .g-wf-row { display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 4px 0; color: var(--text); }
.g .g-wf-row .g-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent-bright); flex-shrink: 0; }
.g .g-wf-row .g-quem { font-size: 10.5px; color: var(--muted); white-space: nowrap; }
.g .g-wf-row .g-quando { font-family: var(--font-mono); font-size: 10.5px; color: var(--dim); margin-left: auto; white-space: nowrap; }
.g .g-cmd { margin-top: 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; font-family: var(--font-mono); font-size: 11px; color: var(--muted); white-space: pre-wrap; line-height: 1.5; max-height: 180px; overflow: auto; }
.g .g-prazo-sug { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.g .g-prazo-sug input { width: 140px; }

/* ------------------------------------------------ prazos */
.g .g-prow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.g .g-pdate { font-family: var(--font-mono); font-size: 13px; font-weight: 700; color: var(--strong); min-width: 92px; }
.g .g-pdate.g-ro { color: var(--rose); } .g .g-pdate.g-am { color: var(--amber); }

/* ------------------------------------------------ ficha / log */
.g .g-caso-head { display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap; }
.g .g-caso-title { font-family: var(--font-display); font-size: 22px; color: var(--strong); margin: 0; line-height: 1.2; }
.g .g-tl { position: relative; padding-left: 22px; }
.g .g-tl::before { content: ''; position: absolute; left: 7px; top: 4px; bottom: 4px; width: 2px; background: var(--border); }
.g .g-tl-item { position: relative; padding: 6px 0 14px; }
.g .g-tl-item::before { content: ''; position: absolute; left: -19px; top: 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--card); border: 2px solid var(--accent); }
.g .g-tl-item.g-o-prazo::before { border-color: var(--rose); }
.g .g-tl-item.g-o-whatsapp::before, .g .g-tl-item.g-o-contrato::before { border-color: var(--emerald); }
.g .g-tl-item.g-o-movimentacao::before, .g .g-tl-item.g-o-assistente::before { border-color: var(--g-violet); }
.g .g-tl-item.g-o-ligacao::before, .g .g-tl-item.g-o-financeiro::before { border-color: var(--amber); }
.g .g-tl-item.g-o-publicacao::before { border-color: var(--g-blue); }
.g .g-tl-item.g-o-tarefa::before { border-color: var(--g-pink); }
.g .g-tl-when { font-family: var(--font-mono); font-size: 10.5px; color: var(--dim); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.g .g-tl-title { font-size: 12.5px; color: var(--strong); font-weight: 600; margin-top: 3px; }
.g .g-tl-sub { font-size: 11.5px; color: var(--muted); margin-top: 2px; line-height: 1.45; white-space: pre-wrap; }
.g .g-doc-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 12px; }

/* ------------------------------------------------ modal / toast */
.g-modal-bg { position: fixed; inset: 0; background: rgba(2, 6, 23, .6); display: flex; align-items: center; justify-content: center; z-index: 100; padding: 20px; }
.g-modal-bg[hidden] { display: none; }
.g .g-modal { background: var(--card); border: 1px solid var(--border); border-radius: 14px; width: min(880px, 100%); max-height: 90vh; overflow: auto; box-shadow: 0 24px 64px -16px rgba(0, 0, 0, .5); }
.g .g-modal.g-narrow { width: min(560px, 100%); }
.g .g-modal-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px 12px; border-bottom: 1px solid var(--border); }
.g .g-modal-title { font-family: var(--font-display); font-size: 20px; color: var(--strong); margin: 0; }
.g .g-modal-body { display: grid; grid-template-columns: 1.3fr .9fr; }
.g .g-modal.g-narrow .g-modal-body { grid-template-columns: 1fr; }
@media (max-width: 800px) { .g .g-modal-body { grid-template-columns: 1fr; } }
.g .g-modal-main { padding: 16px 20px; border-right: 1px solid var(--border); }
.g .g-modal.g-narrow .g-modal-main { border-right: none; }
.g .g-modal-side { padding: 16px 20px; background: var(--bg); }
.g .g-modal-foot { display: flex; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--border); flex-wrap: wrap; align-items: center; }
.g .g-iconbtn { width: 32px; height: 32px; border-radius: 6px; border: 1px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.g .g-chk { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: 12.5px; }
.g .g-chk .g-check { margin: 0; }
.g .g-chk.g-done .g-t { color: var(--dim); text-decoration: line-through; }
.g .g-chk .g-quando { margin-left: auto; font-family: var(--font-mono); font-size: 10.5px; color: var(--dim); white-space: nowrap; }
.g .g-hist { font-size: 11.5px; color: var(--muted); padding: 4px 0; display: flex; gap: 8px; }
.g .g-hist .g-q { font-family: var(--font-mono); font-size: 10px; color: var(--dim); white-space: nowrap; }
.g .g-rev-box { border: 1px solid var(--amber); background: var(--amber-soft); border-radius: 8px; padding: 10px 12px; font-size: 12px; }
.g .g-passo-row { display: grid; grid-template-columns: 2fr 1.2fr 70px 70px 32px; gap: 6px; align-items: center; margin-top: 6px; }
.g .g-passo-row input, .g .g-passo-row select { background: var(--elev); border: 1px solid var(--border); border-radius: 8px; padding: 6px 8px; color: var(--text); font: inherit; font-size: 12px; outline: none; min-width: 0; }
.g-toast { position: fixed; top: 60px; right: 20px; background: var(--card); border: 1px solid var(--accent); color: var(--strong); padding: 10px 14px; border-radius: 10px; font-size: 12.5px; z-index: 120; box-shadow: 0 12px 32px -8px rgba(0, 0, 0, .4); max-width: 360px; line-height: 1.45; }
.g-toast[hidden] { display: none; }
.g-toast.g-bad { border-color: var(--rose); }

/* ------------------------------------------------ menu com seções */
.nav .nav-sec { display: block; font-size: 9.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--dim); padding: 12px 12px 4px; }
