/* EFSB Portal — componentes públicos (mobile first). Usa variáveis do tema quando existem. */
:root {
	--efsb-ink: var(--efsb-theme-ink, #14202b);
	--efsb-muted: var(--efsb-theme-muted, #5b6873);
	--efsb-line: var(--efsb-theme-line, #d9dfe4);
	--efsb-bg: var(--efsb-theme-bg, #ffffff);
	--efsb-soft: var(--efsb-theme-soft, #f3f5f7);
	--efsb-accent: var(--efsb-theme-accent, #d4691e);
	--efsb-accent-ink: #ffffff;
	--efsb-steel: var(--efsb-theme-steel, #1f3a4d);
	--efsb-ok: #1d7a46;
	--efsb-warn: #9a6400;
	--efsb-bad: #b3261e;
	--efsb-r: 6px;
}
.efsb {
	color: var(--efsb-ink);
	font-size: 16px;
	line-height: 1.5;
	max-width: 960px;
	margin: 0 auto;
}
.efsb *, .efsb *::before, .efsb *::after { box-sizing: border-box; }
.efsb h3 { font-size: 1.15rem; margin: 0 0 .75rem; }
.efsb h4 { font-size: .95rem; margin: 1.25rem 0 .4rem; text-transform: uppercase; letter-spacing: .04em; color: var(--efsb-muted); }
.efsb-muted, .efsb-hint { color: var(--efsb-muted); font-size: .9rem; }
.efsb-hint { margin: .3rem 0 0; }
.efsb-card { background: var(--efsb-bg); border: 1px solid var(--efsb-line); border-radius: var(--efsb-r); padding: 1.1rem; margin: 0 0 1rem; }
.efsb-grid-2 { display: grid; gap: 1rem; }
@media (min-width: 760px) { .efsb-grid-2 { grid-template-columns: 1fr 1fr; } }

/* Campos */
.efsb-field { margin: 0 0 .9rem; }
.efsb-field label { display: block; font-weight: 600; margin: 0 0 .3rem; font-size: .95rem; }
.efsb input[type=text], .efsb input[type=email], .efsb input[type=tel], .efsb input[type=url], .efsb input[type=number], .efsb input[type=search], .efsb input[type=password], .efsb select, .efsb textarea {
	width: 100%; font: inherit; font-size: 16px; /* evita zoom no iOS */
	padding: .65rem .75rem; border: 1px solid #b9c3cb; border-radius: var(--efsb-r); background: #fff; color: var(--efsb-ink); min-height: 44px;
}
.efsb input:focus, .efsb select:focus, .efsb textarea:focus { outline: 2px solid var(--efsb-accent); outline-offset: 1px; border-color: var(--efsb-accent); }
.efsb-row { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; }
.efsb-inline { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; }
.efsb-inline input { width: 90px !important; min-height: 38px; padding: .35rem .5rem; }
.efsb-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; opacity: 0; }

/* Botões */
.efsb-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; font: inherit; font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none; border-radius: var(--efsb-r); padding: .75rem 1.15rem; min-height: 46px; cursor: pointer; border: 2px solid transparent; transition: background .15s, border-color .15s; }
.efsb-btn-primary { background: var(--efsb-accent); color: var(--efsb-accent-ink); }
.efsb-btn-primary:hover { background: #b9561a; color: #fff; }
.efsb-btn-secondary { background: var(--efsb-steel); color: #fff; }
.efsb-btn-secondary:hover { background: #142a39; color: #fff; }
.efsb-btn-ghost { background: transparent; color: var(--efsb-ink); border-color: var(--efsb-line); }
.efsb-btn-ghost:hover { border-color: var(--efsb-ink); }
.hero .efsb-btn-ship { color: #fff; border-color: rgba(255,255,255,.6); }
.efsb-howto ol { margin: 0; padding-left: 1.2rem; }
.efsb-howto li { margin-bottom: .3rem; }
.efsb-btn-lg { padding: .9rem 1.6rem; font-size: 1.05rem; }
.efsb-btn[disabled] { opacity: .6; cursor: progress; }
.efsb-link { background: none; border: 0; padding: .25rem; color: var(--efsb-steel); text-decoration: underline; cursor: pointer; font: inherit; font-size: .9rem; }
.efsb-nav { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin: 1rem 0; flex-wrap: wrap; }
.efsb-cta-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }
@media (max-width: 520px) { .efsb-cta-buttons .efsb-btn, .efsb-nav .efsb-btn-primary { flex: 1 1 100%; } }

/* Etapas */
.efsb-steps { list-style: none; display: flex; gap: .25rem; padding: 0; margin: 0 0 1rem; counter-reset: s; overflow-x: auto; }
.efsb-steps li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .2rem; font-size: .75rem; color: var(--efsb-muted); min-width: 56px; }
.efsb-step-n { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 2px solid var(--efsb-line); font-weight: 700; background: #fff; }
.efsb-steps li.is-current { color: var(--efsb-ink); font-weight: 600; }
.efsb-steps li.is-current .efsb-step-n { border-color: var(--efsb-accent); background: var(--efsb-accent); color: #fff; }
.efsb-steps li.is-done .efsb-step-n { border-color: var(--efsb-steel); background: var(--efsb-steel); color: #fff; }

/* Alertas */
.efsb-alert { border-radius: var(--efsb-r); padding: .75rem 1rem; margin: 0 0 1rem; border-left: 4px solid; }
.efsb-alert ul { margin: 0; padding-left: 1.1rem; }
.efsb-alert-error { background: #fdecea; border-color: var(--efsb-bad); color: #5f1410; }
.efsb-alert-info { background: #eaf2f8; border-color: var(--efsb-steel); }
.efsb-alert-success { background: #e8f5ec; border-color: var(--efsb-ok); }

/* Catálogo */
.efsb-chips { display: flex; gap: .4rem; overflow-x: auto; padding: .6rem 0 .8rem; -webkit-overflow-scrolling: touch; }
.efsb-chip { white-space: nowrap; border: 1px solid var(--efsb-line); background: #fff; border-radius: 999px; padding: .45rem .9rem; font: inherit; font-size: .9rem; cursor: pointer; min-height: 38px; }
.efsb-chip.is-active { background: var(--efsb-steel); border-color: var(--efsb-steel); color: #fff; }
.efsb-products { display: grid; gap: .8rem; padding-bottom: 5rem; }
@media (min-width: 760px) { .efsb-products { grid-template-columns: 1fr 1fr; } }
.efsb-product { border: 1px solid var(--efsb-line); border-radius: var(--efsb-r); padding: 1rem; background: #fff; display: flex; flex-direction: column; gap: .4rem; }
.efsb-product.is-open { border-color: var(--efsb-accent); box-shadow: 0 0 0 1px var(--efsb-accent); }
.efsb-product p { margin: 0; }
.efsb-product-head { display: flex; justify-content: space-between; gap: .5rem; align-items: baseline; flex-wrap: wrap; }
.efsb-product h3 { margin: 0; font-size: 1.05rem; }
.efsb-cas { font-family: ui-monospace, Menlo, monospace; font-size: .8rem; color: var(--efsb-muted); }
.efsb-badge-demo { display: inline-block; margin-left: .4rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; background: #fff3cd; color: #6b4e00; border: 1px solid #e0c36a; padding: 0 .35rem; border-radius: 3px; vertical-align: middle; }
.efsb-free { background: var(--efsb-soft); border-style: dashed; }
.efsb-docs a { display: inline-block; margin-right: .75rem; font-size: .9rem; }
.efsb-config { border-top: 1px solid var(--efsb-line); padding-top: .75rem; margin-top: .4rem; }
.efsb-cartbar span { flex: 1 1 auto; font-weight: 600; }
.efsb-cartbar .efsb-btn { white-space: nowrap; padding: .6rem .9rem; min-height: 42px; }
.efsb-cartbar { position: sticky; bottom: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: .75rem; background: var(--efsb-steel); color: #fff; padding: .7rem 1rem; border-radius: var(--efsb-r) var(--efsb-r) 0 0; margin-top: -4rem; box-shadow: 0 -4px 16px rgba(0,0,0,.15); }

/* Linhas do pedido */
.efsb-lines { display: grid; gap: .5rem; }
.efsb-line { border: 1px solid var(--efsb-line); border-radius: var(--efsb-r); padding: .7rem .8rem; display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap; }
.efsb-line-sum { flex: 1 1 260px; }
.efsb-line-sum .efsb-qty { float: right; font-weight: 600; margin-left: .5rem; }
.efsb-line-sum .efsb-muted { word-break: break-word; }
.efsb-line-actions { display: flex; align-items: center; gap: .75rem; }

/* Equipamentos */
.efsb-choice { display: grid; gap: .75rem; }
@media (min-width: 640px) { .efsb-choice { grid-template-columns: 1fr 1fr; } }
.efsb-choice-btn { text-align: left; display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem; border: 2px solid var(--efsb-line); border-radius: var(--efsb-r); background: #fff; cursor: pointer; font: inherit; color: var(--efsb-ink); }
.efsb-choice-btn:hover, .efsb-choice-btn:focus { border-color: var(--efsb-accent); }
.efsb-choice-btn strong { font-size: 1.1rem; }
.efsb-choice-btn em { font-style: normal; font-size: .85rem; color: var(--efsb-steel); font-weight: 600; }
.efsb-link-row { display: flex; gap: .5rem; align-items: center; margin-bottom: .4rem; }
.efsb-photos { background: var(--efsb-soft); border-radius: var(--efsb-r); padding: .75rem; margin: 0 0 .9rem; }
.efsb-files { margin: 0 0 .75rem; }
.efsb-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.efsb-file-btn { display: inline-flex; align-items: center; min-height: 44px; padding: .55rem .9rem; border: 1px dashed var(--efsb-steel); border-radius: var(--efsb-r); color: var(--efsb-steel); font-weight: 600; cursor: pointer; background: #fff; }
.efsb-file-input:focus + .efsb-file-btn, .efsb-file-btn:hover { background: #eaf2f8; }
.efsb-file-list { list-style: none; padding: 0; margin: .4rem 0 0; font-size: .9rem; }
.efsb-file-list li { padding: .2rem 0; word-break: break-all; }

/* Confirmação */
.efsb-done { text-align: center; padding: 2rem 1rem; }
.efsb-done-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--efsb-ok); color: #fff; display: grid; place-items: center; font-size: 1.8rem; margin: 0 auto .75rem; }
.efsb-onp-number { font-family: ui-monospace, Menlo, monospace; font-size: 1.5rem; font-weight: 700; letter-spacing: .03em; }

/* Portal */
.efsb-portal-head { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; }
.efsb-portal-head h2 { margin: 0; }
.efsb-table-wrap { overflow-x: auto; }
.efsb-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.efsb-table th, .efsb-table td { text-align: left; padding: .6rem .5rem; border-bottom: 1px solid var(--efsb-line); vertical-align: top; }
.efsb-table tfoot th { text-align: right; font-weight: 600; }
@media (max-width: 600px) {
	.efsb-table thead { display: none; }
	.efsb-table tbody tr { display: block; border: 1px solid var(--efsb-line); border-radius: var(--efsb-r); margin-bottom: .5rem; padding: .4rem .6rem; }
	.efsb-table tbody td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .25rem 0; }
	.efsb-table tbody td::before { content: attr(data-label); color: var(--efsb-muted); font-size: .85rem; }
	.efsb-table tfoot tr { display: flex; justify-content: space-between; }
	.efsb-table tfoot th[colspan] { text-align: left; }
}
.efsb-status { display: inline-block; font-size: .8rem; font-weight: 600; padding: .15rem .55rem; border-radius: 999px; background: var(--efsb-soft); border: 1px solid var(--efsb-line); }
.efsb-status-aguarda_cliente { background: #fff3cd; border-color: #e0c36a; }
.efsb-status-proposta_enviada, .efsb-status-em_negociacao { background: #eaf2f8; border-color: #9ec0d8; }
.efsb-status-adjudicada { background: #e8f5ec; border-color: #9fd0b2; }
.efsb-status-perdida, .efsb-status-cancelada { background: #f1f1f1; color: #666; }
.efsb-thread { display: grid; gap: .5rem; margin-bottom: 1rem; }
.efsb-msg { border-radius: var(--efsb-r); padding: .6rem .8rem; background: var(--efsb-soft); max-width: 92%; }
.efsb-msg.is-client { justify-self: end; background: #eaf2f8; }
.efsb-msg.is-question { border-left: 4px solid var(--efsb-accent); }
.efsb-msg-meta { font-size: .8rem; color: var(--efsb-muted); margin-bottom: .2rem; }
.efsb-proposal { border: 1px solid var(--efsb-line); border-radius: var(--efsb-r); padding: .6rem .8rem; margin-bottom: .6rem; }
.efsb-proposal.is-current { border-color: var(--efsb-accent); }
.efsb-proposal summary { cursor: pointer; }
.efsb-terms dt { font-weight: 600; margin-top: .5rem; }
.efsb-terms dd { margin: 0; }
.efsb-track { list-style: none; display: flex; padding: 0; margin: .5rem 0; gap: .25rem; flex-wrap: wrap; }
.efsb-track li { flex: 1; min-width: 80px; text-align: center; font-size: .8rem; padding: .4rem .2rem; border-top: 4px solid var(--efsb-line); color: var(--efsb-muted); }
.efsb-track li.is-done { border-color: var(--efsb-steel); color: var(--efsb-ink); }
.efsb-track li.is-current { border-color: var(--efsb-accent); color: var(--efsb-ink); font-weight: 700; }
.efsb-events { list-style: none; padding: 0; font-size: .9rem; }
.efsb-loading { color: var(--efsb-muted); }
.efsb-portal #loginform p { margin: 0 0 .8rem; }
.efsb-portal #loginform label { display: block; font-weight: 600; margin-bottom: .3rem; }
.efsb-portal #loginform input[type=text], .efsb-portal #loginform input[type=password] { width: 100%; font-size: 16px; padding: .65rem .75rem; border: 1px solid #b9c3cb; border-radius: 6px; min-height: 44px; }
.efsb-portal #loginform .button-primary, .efsb-portal #wp-submit { background: var(--efsb-accent); color: #fff; border: 0; border-radius: 6px; padding: .75rem 1.2rem; font-weight: 600; font-size: 1rem; min-height: 46px; cursor: pointer; }

.efsb-pickup-code { font-family: ui-monospace, Menlo, monospace; font-size: 1.6rem; font-weight: 700; letter-spacing: .15em; }
/* v0.4 seguimento por volume */
.efsb-volume { border-top: 1px solid var(--efsb-line); padding: .6rem 0; }
.efsb-volume:first-child { border-top: 0; }
.efsb-vol-code { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: .02em; }
.efsb-volume .efsb-events li { padding: .15rem 0; }
.efsb-trk-form input { width: 100%; font-size: 16px; padding: .65rem .75rem; border: 1px solid #b9c3cb; border-radius: 6px; min-height: 44px; box-sizing: border-box; }
.efsb-trk-form label { display: block; font-weight: 600; margin-bottom: .3rem; }
