/*
 * Orçamentos Core — CSS ESTRUTURAL dos formulários da aplicação
 * (login, montador de proposta, cadastro de produto/cliente, minha conta, modal, toast).
 *
 * Cores, fontes e raios vêm das variáveis globais do kit do Elementor:
 * --brand-primary, --brand-primary-dark, --brand-primary-soft, --text, --text-soft, --gray,
 * --border-soft, --surface-2, --white, --danger, --danger-soft, --success, --success-soft,
 * --font-heading, --font-body, --radius-card, --radius-btn.
 * Listas, cards, detalhe e menu são montados no Elementor.
 */
:root {
	--orc-p: var(--brand-primary, #003a73);
	--orc-pd: var(--brand-primary-dark, #002a54);
	--orc-ps: var(--brand-primary-soft, #e3ecf6);
	--orc-t: var(--text, #292929);
	--orc-ts: var(--text-soft, #514f4e);
	--orc-g: var(--gray, #95969c);
	--orc-b: var(--border-soft, #e8ecf1);
	--orc-s: var(--surface-2, #f5f7fa);
	--orc-w: var(--white, #ffffff);
	--orc-d: var(--danger, #c62828);
	--orc-ds: var(--danger-soft, #fdecea);
	--orc-ok: var(--success, #1e8e3e);
	--orc-oks: var(--success-soft, #e6f4ea);
	--orc-fh: var(--font-heading, "Geologica"), sans-serif;
	--orc-fb: var(--font-body, "Inter"), sans-serif;
	--orc-rc: var(--radius-card, 14px);
	--orc-rb: var(--radius-btn, 10px);
	--orc-sombra: 0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(0,58,115,.06);
}

/* ---------- Base dos formulários ---------- */
.orc-auth__form, .orc-montador, .orc-conta, .orc-modal__caixa { font-family: var(--orc-fb); color: var(--orc-t); }
.orc-auth__form a, .orc-montador a, .orc-conta a, .orc-modal__caixa a, .orc-aviso a { color: var(--orc-p); text-decoration: none; font-weight: 600; }
.orc-auth__form a:hover, .orc-montador a:hover, .orc-conta a:hover, .orc-modal__caixa a:hover { color: var(--orc-pd); text-decoration: underline; }
.orc-auth__title, .orc-card__titulo, .orc-modal__titulo { font-family: var(--orc-fh); font-weight: 800; letter-spacing: -.4px; margin: 0 0 16px; color: var(--orc-t); }
.orc-auth__title { font-size: 26px; }
.orc-card__titulo, .orc-modal__titulo { font-size: 18px; }
.orc-card { background: var(--orc-w); border: 1px solid var(--orc-b); border-radius: var(--orc-rc); box-shadow: var(--orc-sombra); padding: 22px 24px; margin-bottom: 20px; }
.orc-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.orc-grid-2 > .orc-card { margin-bottom: 0; }
.orc-campo { display: block; margin-bottom: 16px; }
.orc-campo > span { display: block; font-size: 12px; font-weight: 600; letter-spacing: .3px; text-transform: uppercase; color: var(--orc-ts); margin-bottom: 7px; }
/* 'body' na frente: vence o reset do tema (input[type=...]) sem !important. */
body .orc-campo input, body .orc-campo select, body .orc-campo textarea, body .orc-tabela input, body .orc-tabela select, body .orc-modal textarea, body .orc-busca input {
	width: 100%; min-height: 46px; padding: 11px 14px; border: 1px solid var(--orc-b); border-radius: var(--orc-rb); font: inherit; font-size: 15px; color: var(--orc-t);
	background-color: var(--orc-w); box-shadow: none; margin: 0; transition: border-color .15s, box-shadow .15s; -webkit-appearance: none; appearance: none; }
.orc-campo textarea, .orc-modal textarea { min-height: 88px; line-height: 1.5; resize: vertical; }
.orc-campo select { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23514f4e' stroke-width='1.8'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px; }
.orc-campo input::placeholder, .orc-campo textarea::placeholder, .orc-busca input::placeholder { color: var(--orc-g); opacity: 1; }
body .orc-campo input:focus, body .orc-campo select:focus, body .orc-campo textarea:focus, body .orc-tabela input:focus, body .orc-busca input:focus, body .orc-modal textarea:focus { outline: none; border-color: var(--orc-p); box-shadow: 0 0 0 4px rgba(0,58,115,.12); }
body .orc-campo input:disabled { background: var(--orc-s); color: var(--orc-ts); }
.orc-campo small { display: block; margin-top: 6px; font-size: 12px; color: var(--orc-g); }
.orc-tabela input, .orc-tabela select { min-height: 40px; padding: 8px 10px; font-size: 14px; }
.orc-check { display: flex; align-items: center; gap: 10px; font-size: 14px; margin-bottom: 16px; cursor: pointer; }
.orc-check input[type="checkbox"] { width: 20px; height: 20px; min-height: 0; margin: 0; accent-color: var(--orc-p); }
.orc-grid { display: grid; gap: 0 18px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.orc-dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 18px; margin: 0 0 18px; font-size: 14px; }
.orc-dl dt { color: var(--orc-g); } .orc-dl dd { margin: 0; font-weight: 500; }
.orc-msg { padding: 12px 16px; margin-bottom: 16px; font-size: 14px; border-radius: var(--orc-rb); }
.orc-msg--ok { background: var(--orc-oks); color: #1b5e20; }
.orc-msg--erro { background: var(--orc-ds); color: #b71c1c; }
.orc-aviso { padding: 14px 18px; border-radius: var(--orc-rb); background: var(--orc-ps); color: var(--orc-t); font-family: var(--orc-fb); font-size: 14px; }
.orc-carregando { color: var(--orc-g); padding: 24px 0; }
.wps-limit-login-credits { display: none !important; }

/* ---------- Botões dos formulários ---------- */
.orc-btn.orc-btn, button.orc-btn, a.orc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 12px 20px; border: 1px solid var(--orc-p); border-radius: var(--orc-rb); font-family: var(--orc-fh); font-size: 14px; font-weight: 600; line-height: 1; text-decoration: none; cursor: pointer; background-color: var(--orc-p); color: var(--orc-w); background-image: none; box-shadow: 0 6px 16px rgba(0,58,115,.22); transition: background-color .15s, box-shadow .15s, transform .1s; }
.orc-btn.orc-btn:hover { background-color: var(--orc-pd); border-color: var(--orc-pd); color: var(--orc-w); box-shadow: 0 8px 20px rgba(0,58,115,.3); text-decoration: none; }
.orc-btn.orc-btn:active { transform: translateY(1px); }
.orc-btn.orc-btn--secundario { background-color: var(--orc-w); color: var(--orc-p); border-color: var(--orc-b); box-shadow: none; }
.orc-btn.orc-btn--secundario:hover { background-color: var(--orc-s); color: var(--orc-pd); border-color: var(--orc-p); box-shadow: none; }
.orc-btn.orc-btn--perigo { background-color: var(--orc-w); color: var(--orc-d); border-color: var(--orc-b); box-shadow: none; }
.orc-btn.orc-btn--perigo:hover { background-color: var(--orc-ds); color: var(--orc-d); border-color: var(--orc-d); box-shadow: none; }
.orc-btn.orc-btn--mini { min-height: 36px; padding: 8px 14px; font-size: 13px; box-shadow: none; }
.orc-btn.orc-btn--bloco { width: 100%; }
.orc-btn[disabled], .orc-btn.is-loading { opacity: .6; pointer-events: none; }
.orc-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.orc-btn-remover { background: none; border: 0; color: var(--orc-d); cursor: pointer; font-size: 20px; line-height: 1; padding: 6px 10px; border-radius: 8px; }
.orc-btn-remover:hover { background: var(--orc-ds); }

/* ---------- Login ---------- */
.orc-auth { display: flex; justify-content: center; }
.orc-auth__form { width: 100%; max-width: 420px; }
.orc-auth__links { margin: 18px 0 0; text-align: center; font-size: 13px; }

/* ---------- Montador ---------- */
.orc-tabela { width: 100%; border-collapse: collapse; font-family: var(--orc-fb); font-size: 14px; }
.orc-tabela th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--orc-g); padding: 10px 8px; border-bottom: 1px solid var(--orc-b); }
.orc-tabela td { padding: 10px 8px; border-bottom: 1px solid var(--orc-b); vertical-align: middle; }
.orc-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.orc-item-tipo { font-size: 11px; color: var(--orc-g); text-transform: uppercase; letter-spacing: .4px; }
.orc-item-filho td:first-child { padding-left: 28px; } .orc-item-filho strong { font-weight: 500; } .orc-item-seta { color: var(--orc-g); }
.orc-acessorios { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 16px; margin: 8px 0 4px; padding: 10px 12px; background: var(--orc-s); border-radius: var(--orc-rb); }
.orc-acessorios .orc-check { margin: 0; font-size: 13px; align-items: flex-start; } .orc-acessorios .orc-check input { margin-top: 2px; }
.orc-montador__rodape { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; margin-top: 18px; }
.orc-montador__barra { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; margin-top: 20px; }
.orc-totais { margin-left: auto; min-width: 300px; font-size: 14px; background: var(--orc-s); border-radius: var(--orc-rc); padding: 14px 18px; }
.orc-totais div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 5px 0; }
.orc-totais__total { font-family: var(--orc-fh); font-size: 22px; font-weight: 800; letter-spacing: -.4px; color: var(--orc-p); border-top: 2px solid var(--orc-t); margin-top: 8px; padding-top: 10px; }
.orc-aprovacao-alerta { background: var(--warning-soft, #fff4d6); border-radius: var(--orc-rb); padding: 14px 18px; margin: 14px 0; font-size: 14px; }
.orc-aprovacao-alerta ul { margin: 6px 0 0 18px; }
.orc-busca { position: relative; }
.orc-busca__lista { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 6px); max-height: 280px; overflow: auto; background: var(--orc-w); border: 1px solid var(--orc-b); border-radius: var(--orc-rb); box-shadow: 0 16px 40px rgba(0,30,60,.16); list-style: none; margin: 0; padding: 6px; }
.orc-busca__lista li { padding: 10px 12px; cursor: pointer; font-size: 14px; border-radius: 8px; }
.orc-busca__lista li:hover, .orc-busca__lista li.is-ativo { background: var(--orc-ps); }
.orc-busca__lista small { display: block; color: var(--orc-g); margin-top: 2px; }
.orc-etapas { display: flex; gap: 6px; list-style: none; margin: 0 0 18px; padding: 0; overflow-x: auto; }
.orc-etapas li { display: flex; align-items: center; gap: 8px; padding: 8px 14px 8px 8px; border-radius: 999px; background: var(--orc-s); font-family: var(--orc-fh); font-size: 13px; font-weight: 600; color: var(--orc-ts); white-space: nowrap; cursor: pointer; transition: background .15s; }
.orc-etapas li span { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 999px; background: var(--orc-b); font-size: 12px; }
.orc-etapas li.is-atual { background: var(--orc-p); color: var(--orc-w); } .orc-etapas li.is-atual span { background: rgba(255,255,255,.25); color: var(--orc-w); }
.orc-etapas li.is-feita span { background: var(--orc-ok); color: var(--orc-w); }
.orc-etapa-corpo { background: var(--orc-w); border: 1px solid var(--orc-b); border-radius: var(--orc-rc); box-shadow: var(--orc-sombra); padding: 24px 26px; }
.orc-previa { width: 100%; height: 80vh; border: 1px solid var(--orc-b); border-radius: var(--orc-rc); background: #fff; }

/* ---------- Toast e modal ---------- */
.orc-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(20px); background: var(--orc-t); color: var(--orc-w); padding: 12px 20px; border-radius: var(--orc-rb); font-family: var(--orc-fb); font-size: 14px; opacity: 0; transition: all .25s; z-index: 9999; max-width: 90vw; box-shadow: 0 12px 32px rgba(0,0,0,.25); }
.orc-toast.is-visivel { opacity: 1; transform: translateX(-50%) translateY(0); }
.orc-toast--erro { background: var(--orc-d); } .orc-toast--ok { background: var(--orc-ok); }
.orc-modal { position: fixed; inset: 0; background: rgba(10,20,40,.5); backdrop-filter: blur(3px); display: flex; align-items: center; justify-content: center; z-index: 9998; padding: 16px; }
.orc-modal__caixa { background: var(--orc-w); width: 100%; max-width: 540px; padding: 26px 28px; max-height: 90vh; overflow: auto; border-radius: var(--orc-rc); box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.orc-modal__acoes { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.orc-modal details summary { list-style: none; } .orc-modal details summary::-webkit-details-marker { display: none; }
.orc-modal details summary::before { content: "▸ "; color: var(--orc-p); } .orc-modal details[open] summary::before { content: "▾ "; }

/* ---------- Gráficos ([orc_grafico]) — cores pelas variáveis do kit ---------- */
.orc-graf--funil { display: flex; flex-direction: column; gap: 9px; }
.orc-graf__linha { display: grid; grid-template-columns: 118px 1fr 34px 110px; align-items: center; gap: 12px; font-size: 13px; color: var(--text, #0F172A); text-decoration: none; opacity: 0; animation: orc-sobe .45s calc(var(--i) * 60ms) forwards; }
.orc-graf__linha:hover .orc-graf__rotulo { color: var(--brand-primary, #0B1F3A); }
.orc-graf__rotulo { color: var(--text-soft, #475569); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.orc-graf__barra { display: block; height: 10px; border-radius: 999px; background: var(--surface-2, #EEF1F5); overflow: hidden; }
.orc-graf__barra i { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--c, var(--brand-primary)); animation: orc-cresce .9s calc(.2s + var(--i) * 60ms) forwards cubic-bezier(.2,.7,.2,1); }
.orc-graf__n { font-family: var(--font-mono, monospace); font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.orc-graf__v { font-family: var(--font-mono, monospace); font-size: 11.5px; color: var(--gray, #94A3B8); text-align: right; white-space: nowrap; }
.orc-graf--mensal { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 10px; align-items: end; height: 190px; }
.orc-graf__col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 6px; }
.orc-graf__col .orc-graf__barra { width: 100%; max-width: 46px; height: calc(100% - 44px); background: var(--surface-2, #EEF1F5); border-radius: 8px; display: flex; align-items: flex-end; }
.orc-graf__col .orc-graf__barra i { width: 100%; height: 0; border-radius: 8px; background: linear-gradient(180deg, var(--accent, #BE1217), var(--accent-dark, #9B1417)); animation: orc-altura .9s calc(.15s + var(--i) * 70ms) forwards cubic-bezier(.2,.7,.2,1); }
.orc-graf__col .orc-graf__v { font-size: 11px; color: var(--text-soft, #475569); min-height: 14px; }
.orc-graf__col .orc-graf__rotulo { font-family: var(--font-mono, monospace); font-size: 11px; text-transform: uppercase; letter-spacing: .4px; }
.orc-graf--anel { position: relative; width: 150px; height: 150px; margin: 0 auto; }
.orc-graf--anel svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.orc-graf__trilha { fill: none; stroke: var(--surface-2, #EEF1F5); stroke-width: 10; }
.orc-graf__arco { fill: none; stroke: var(--success, #15803D); stroke-width: 10; stroke-linecap: round; stroke-dasharray: var(--circ); stroke-dashoffset: var(--circ); animation: orc-arco 1.2s .2s forwards cubic-bezier(.2,.7,.2,1); }
.orc-graf__centro { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.orc-graf__centro strong { font-family: var(--font-heading, sans-serif); font-size: 26px; font-weight: 800; letter-spacing: -1px; color: var(--text, #0F172A); }
.orc-graf__centro span { font-size: 11px; color: var(--text-soft, #475569); }
.orc-graf--spark { width: 100%; height: 40px; display: block; overflow: visible; }
.orc-graf--spark .orc-graf__area { fill: url(#orc-sg); opacity: 0; animation: orc-aparece .6s 1s forwards; }
.orc-graf--spark .orc-graf__linha { fill: none; stroke: var(--accent, #BE1217); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; stroke-dasharray: 400; stroke-dashoffset: 400; animation: orc-traco 1.2s .3s forwards; opacity: 1; }
@keyframes orc-sobe { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes orc-cresce { to { width: var(--w); } }
@keyframes orc-altura { to { height: var(--h); } }
@keyframes orc-arco { to { stroke-dashoffset: var(--off); } }
@keyframes orc-traco { to { stroke-dashoffset: 0; } }
@keyframes orc-aparece { to { opacity: 1; } }

.orc-graf__vazio { font-size: 13px; color: var(--gray, #94A3B8); margin: 0; }
.orc-graf--hbars .orc-graf__linha { grid-template-columns: 150px 1fr 28px 150px; }
.orc-filtro-datas { display: inline-flex; align-items: center; gap: 8px; }
.orc-filtro-sep { font-size: 12px; color: var(--text-soft, #475569); }
.orc-input-filtro { min-height: 38px; padding: 0 10px; border: 1px solid var(--border, #D5DAE3); border-radius: var(--radius-btn, 10px); background: var(--white, #fff); font: 500 13px var(--font-body, sans-serif); color: var(--text, #0F172A); }
.orc-btn-filtro { min-height: 38px; padding: 0 14px; border: 1px solid var(--brand-primary, #0B1F3A); border-radius: var(--radius-btn, 10px); background: var(--brand-primary, #0B1F3A); color: #fff; font: 600 13px var(--font-heading, sans-serif); cursor: pointer; }
.orc-select-filtro { min-height: 38px; padding: 0 36px 0 12px; border: 1px solid var(--border, #D5DAE3); border-radius: var(--radius-btn, 10px); background: var(--white, #fff) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23475569' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 12px center; font: 600 13px var(--font-heading, sans-serif); color: var(--text, #0F172A); -webkit-appearance: none; appearance: none; cursor: pointer; }

/* Cotação ao vivo (bloco orc-cotacao): valor em mono + origem. */
.orc-cotacao { display: inline-flex; flex-direction: column; line-height: 1.15; }
.orc-cotacao strong { font-family: var(--font-mono, monospace); font-weight: 600; font-size: 14px; letter-spacing: .2px; }
.orc-cotacao small { font-size: 10.5px; opacity: .65; text-transform: uppercase; letter-spacing: .5px; }

/* ---------- Movimento (classes opcionais, aplicadas no Elementor) ---------- */
.orc-anima-entrada { opacity: 0; transform: translateY(8px); transition: opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
.orc-anima-entrada.orc-visivel { opacity: 1; transform: none; }
.orc-anima-entrada:nth-child(2) { transition-delay: .06s; } .orc-anima-entrada:nth-child(3) { transition-delay: .12s; } .orc-anima-entrada:nth-child(4) { transition-delay: .18s; } .orc-anima-entrada:nth-child(5) { transition-delay: .24s; } .orc-anima-entrada:nth-child(6) { transition-delay: .3s; }
.orc-anima-numero { font-variant-numeric: tabular-nums; }
.orc-eleva { transition: transform .18s ease, box-shadow .18s ease; } .orc-eleva:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(15,23,42,.25); }
@media (prefers-reduced-motion: reduce) { .orc-anima-entrada, .orc-graf__linha, .orc-graf__barra i, .orc-graf__arco, .orc-graf--spark * { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; width: var(--w, auto); height: var(--h, auto); stroke-dashoffset: var(--off, 0); } }

/* Item de menu ativo (JS compara a URL) e selo de pendências. */
.orc-nav-ativo { background-color: rgba(255,255,255,.1) !important; color: #fff !important; }
.orc-chip[class*="orc-status-"]::before, .orc-chip[class*="orc-tipo-"]::before { content: ""; display: inline-block; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .85; margin-right: 6px; align-self: center; vertical-align: middle; position: relative; top: -0.5px; }
/* Foto de perfil (bloco orc-avatar): a imagem preenche o círculo. */
.orc-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.orc-conta__foto { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.orc-conta__foto img, .orc-conta__foto .orc-conta__iniciais { width: 72px !important; height: 72px !important; min-height: 0; flex: 0 0 72px; border-radius: 50% !important; object-fit: cover; display: inline-flex; align-items: center; justify-content: center; background: var(--brand-primary-soft, #E3EBF7); color: var(--brand-primary, #0B1F3A); font-family: var(--font-heading, sans-serif); font-weight: 700; font-size: 22px; }
.orc-conta__foto-campos { flex: 1; min-width: 0; }
.orc-conta__foto input[type="file"] { font-size: 13px; padding: 9px 12px; }
.orc-conta__foto .orc-check input[type="checkbox"] { width: 18px; height: 18px; min-height: 0; padding: 0; }
.orc-avatar img { width: 100% !important; height: 100% !important; }

/* ---------- Visibilidade por perfil (classes no body) ---------- */
/* Esconde só quando o body NÃO tem a permissão: o elemento visível mantém o display definido no Elementor. */
body:not(.orc-pode-criar) .orc-so-criar, body:not(.orc-pode-clientes) .orc-so-clientes, body:not(.orc-pode-equipe) .orc-so-equipe, body:not(.orc-pode-tudo) .orc-so-tudo,
body:not(.orc-pode-aprovar) .orc-so-aprovar, body:not(.orc-pode-produtos) .orc-so-produtos, body:not(.orc-pode-relatorios) .orc-so-relatorios, body:not(.orc-pode-master) .orc-so-master,
body:not(.orc-perfil-vendedor) .orc-so-vendedor, body:not(.orc-perfil-gestor) .orc-so-gestor, body:not(.orc-perfil-diretoria) .orc-so-diretoria { display: none !important; }
/* Estrutura da página: conteúdo ocupa no mínimo a altura da tela e o rodapé fica sempre embaixo. */
html, body { min-height: 100vh; }
body { display: flex; flex-direction: column; }
body > .elementor-location-footer, body > footer { margin-top: auto; }
body > #content, body > main, body > .site-main, body > .elementor-location-single { flex: 1 0 auto; }
[class*="orc-acao-"] { visibility: hidden; }
[class*="orc-acao-"].orc-acao-ok { visibility: visible; }

/* ---------- Toque / mobile ---------- */
@media (max-width: 640px) {
	.orc-campo input, .orc-campo select, .orc-campo textarea, .orc-busca input { font-size: 16px; }
	.orc-totais { min-width: 0; width: 100%; margin-left: 0; }
	.orc-montador__itens th:nth-child(3), .orc-montador__itens td:nth-child(3) { display: none; }
	.orc-etapa-corpo { padding: 18px 16px; } .orc-etapas li { padding: 7px 12px 7px 7px; font-size: 12px; }
	.orc-modal__caixa { padding: 20px 18px; }
}
@media (display-mode: standalone) { body { padding-bottom: env(safe-area-inset-bottom); } }

/* ---------- Estados funcionais ---------- */
/* Menu lateral recolhido (ação ?orc_acao=menu; estado salvo no navegador) */
@media (min-width: 1025px) {
	body.orc-menu-recolhido .elementor-location-header > aside { width: 64px !important; padding: 14px 8px !important; align-items: center; }
	body.orc-menu-recolhido .elementor-location-header > aside nav,
	body.orc-menu-recolhido .elementor-location-header > aside img,
	body.orc-menu-recolhido .elementor-location-header > aside > div:last-child { display: none !important; }
	body.orc-menu-recolhido .elementor-location-header > aside > div:first-child { justify-content: center !important; padding: 0 !important; }
	body.orc-menu-recolhido .elementor-location-header > aside a[href*="orc_acao=menu"] { transform: rotate(180deg); }
	body.orc-menu-recolhido .orc-pagina, body.orc-menu-recolhido .elementor-location-footer > footer { margin-left: 64px !important; }
}
body.orc-carregando-lista [data-e-type="e-collection-loop"] { opacity: .5; transition: opacity .15s; }
