/* ==========================================================================
   Sensei Calculadora de Mudança — front-end
   Todas as regras levam o prefixo .scm (especificidade alta) e os controles
   (button/input/textarea) são "zerados" com all:revert para o CSS do tema do
   site não interferir (padding, hover branco, line-height, sombras...).
   ========================================================================== */
.scm {
	--scm-primary: #0b6c9e;
	--scm-primary-text: #fff;
	--scm-accent: #34495e;
	--scm-bg: #f4f6f8;
	--scm-card: #fff;
	--scm-text: #2c3e50;
	--scm-muted: #7f8c8d;
	--scm-radius: 14px;
	--scm-border: rgba(0, 0, 0, .08);
	--scm-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);
	--scm-shadow-lg: 0 10px 30px rgba(16, 24, 40, .12);
	--scm-card-min: 150px;
	--scm-img-h: 96px;
	font-family: var(--scm-font, inherit);
	color: var(--scm-text);
	background: var(--scm-bg);
	border-radius: var(--scm-radius);
	padding: clamp(14px, 3vw, 28px);
	box-sizing: border-box;
	line-height: 1.45;
	position: relative;
	font-size: 15px;
	text-align: left;
}
.scm *, .scm *::before, .scm *::after { box-sizing: border-box; }
.scm.scm-size-sm { --scm-card-min: 125px; --scm-img-h: 72px; }
.scm.scm-size-lg { --scm-card-min: 180px; --scm-img-h: 120px; }
.scm.scm-portal { background: none; padding: 0; border-radius: 0; position: static; }
/* Modal de confirmação (recomeçar) — anexado ao body, por cima do tema */
.scm.scm-modal-backdrop { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(15, 23, 42, .55); border-radius: 0; animation: scm-fade .15s ease; }
.scm .scm-modal { background: var(--scm-card); border-radius: var(--scm-radius); padding: 26px 24px; max-width: 420px; width: 100%; box-shadow: var(--scm-shadow-lg); animation: scm-pop .18s ease; }
.scm .scm-modal-text { font-size: 16px; color: var(--scm-text); margin: 0 0 20px; line-height: 1.5; }
.scm .scm-modal-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
@media (max-width: 480px) { .scm .scm-modal-actions .scm-btn { flex: 1 1 100%; } }
@keyframes scm-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
.scm h2, .scm h3, .scm h4 { margin: 0; padding: 0; color: var(--scm-accent); line-height: 1.2; font-family: inherit; text-transform: none; letter-spacing: normal; }
.scm p { margin: 0; padding: 0; }
.scm img { border: 0; box-shadow: none; max-width: 100%; }
.scm .scm-loading { text-align: center; color: var(--scm-muted); padding: 40px 0; }
.scm .scm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- Reset dos controles (vence o CSS global do tema; os componentes abaixo têm especificidade maior) ---- */
.scm button, .scm input, .scm textarea, .scm select { all: revert; box-sizing: border-box; font: inherit; color: inherit; margin: 0; }
.scm button { background: none; border: 0; padding: 0; box-shadow: none; text-transform: none; letter-spacing: normal; line-height: 1.2; min-width: 0; min-height: 0; height: auto; width: auto; border-radius: 0; font-weight: inherit; text-decoration: none; cursor: pointer; -webkit-appearance: none; appearance: none; transition: none; }
.scm input, .scm textarea { background: var(--scm-card); border: 1.5px solid var(--scm-border); border-radius: 10px; padding: 0; box-shadow: none; height: auto; min-height: 0; width: auto; line-height: 1.3; font-weight: inherit; text-align: left; -webkit-appearance: none; appearance: none; transition: border-color .15s, box-shadow .15s; }
.scm.scm input::placeholder, .scm.scm textarea::placeholder { color: var(--scm-muted); opacity: .8; }
.scm.scm input[type="number"]::-webkit-outer-spin-button, .scm.scm input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.scm.scm button:focus:not(:focus-visible), .scm.scm input:focus:not(:focus-visible), .scm.scm textarea:focus:not(:focus-visible) { outline: none; }
.scm.scm :focus-visible { outline: 3px solid color-mix(in srgb, var(--scm-primary) 45%, transparent); outline-offset: 2px; }

/* ---- Botões ---- */
.scm .scm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: calc(var(--scm-radius) * .7); padding: 13px 22px; font-weight: 600; font-size: 15px; line-height: 1.2; transition: transform .12s ease, box-shadow .2s ease, background .2s ease, opacity .2s; text-decoration: none; text-transform: none; letter-spacing: normal; white-space: nowrap; }
.scm .scm-btn svg { width: 18px; height: 18px; flex: 0 0 auto; }
.scm .scm-btn:active { transform: translateY(1px); }
.scm .scm-btn[disabled] { opacity: .55; cursor: not-allowed; }
.scm .scm-btn-primary, .scm .scm-btn-primary:hover, .scm .scm-btn-primary:focus, .scm .scm-btn-primary:active { background: var(--scm-primary); color: var(--scm-primary-text); box-shadow: 0 6px 16px color-mix(in srgb, var(--scm-primary) 35%, transparent); }
.scm .scm-btn-primary:hover { box-shadow: 0 8px 20px color-mix(in srgb, var(--scm-primary) 45%, transparent); filter: brightness(1.06); }
.scm .scm-btn-ghost, .scm .scm-btn-ghost:focus, .scm .scm-btn-ghost:active { background: transparent; color: var(--scm-accent); border: 1.5px solid var(--scm-border); box-shadow: none; }
.scm .scm-btn-ghost:hover { background: rgba(0, 0, 0, .04); color: var(--scm-accent); box-shadow: none; }
.scm .scm-btn-lg { padding: 16px 30px; font-size: 16px; }
.scm .scm-btn-wa, .scm .scm-btn-wa:hover, .scm .scm-btn-wa:focus { background: #25d366; color: #fff; }
.scm .scm-link, .scm .scm-link:hover, .scm .scm-link:focus { background: none; border: 0; color: var(--scm-primary); text-decoration: underline; padding: 0; font-size: 14px; box-shadow: none; }
.scm .scm-link:hover { opacity: .8; }

/* ---- Topo: progresso ---- */
.scm .scm-top { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.scm .scm-top-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.scm .scm-restart, .scm .scm-restart:hover, .scm .scm-restart:focus { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; color: var(--scm-muted); font-size: 12.5px; font-weight: 600; padding: 6px 8px; border-radius: 8px; box-shadow: none; white-space: nowrap; }
.scm .scm-restart:hover { color: var(--scm-primary); background: rgba(0, 0, 0, .04); }
.scm .scm-restart svg { width: 15px; height: 15px; }
@media (max-width: 640px) { .scm .scm-restart span { display: none; } .scm .scm-restart { padding: 10px; } }
.scm .scm-progress { flex: 1; min-width: 0; }
.scm .scm-progress-bar { height: 6px; background: rgba(0, 0, 0, .08); border-radius: 99px; overflow: hidden; }
.scm .scm-progress-bar > span { display: block; height: 100%; background: var(--scm-primary); border-radius: 99px; transition: width .35s ease; }
.scm .scm-steps { display: flex; gap: 6px; margin: 6px -4px 0; padding: 4px 4px 8px; overflow-x: auto; scrollbar-width: none; }
.scm .scm-steps::-webkit-scrollbar { display: none; }
.scm .scm-step, .scm .scm-step:hover, .scm .scm-step:focus { flex: 0 0 auto; border: 1.5px solid var(--scm-border); background: var(--scm-card); color: var(--scm-muted); border-radius: 99px; padding: 6px 12px; font-size: 12.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; box-shadow: none; }
.scm .scm-step .scm-step-n { width: 18px; height: 18px; border-radius: 50%; background: rgba(0, 0, 0, .08); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; }
.scm .scm-step-n svg { width: 11px; height: 11px; }
.scm .scm-step.is-visited, .scm .scm-step.is-visited:hover, .scm .scm-step.is-visited:focus { background: color-mix(in srgb, var(--scm-primary) 12%, var(--scm-card)); color: var(--scm-primary); border-color: color-mix(in srgb, var(--scm-primary) 30%, transparent); }
.scm .scm-step.is-visited .scm-step-n { background: var(--scm-primary); color: var(--scm-primary-text); }
.scm .scm-step.is-visited:hover { background: color-mix(in srgb, var(--scm-primary) 20%, var(--scm-card)); }
.scm .scm-step.is-current, .scm .scm-step.is-current:hover, .scm .scm-step.is-current:focus { background: var(--scm-primary); color: var(--scm-primary-text); border-color: var(--scm-primary); }
.scm .scm-step.is-current .scm-step-n { background: rgba(255, 255, 255, .25); color: inherit; }
.scm .scm-step[disabled] { cursor: default; opacity: .7; }
.scm .scm-cart-btn, .scm .scm-cart-btn:hover, .scm .scm-cart-btn:focus { display: none; position: relative; border: 1.5px solid var(--scm-border); background: var(--scm-card); border-radius: 99px; width: 46px; height: 46px; padding: 0; align-items: center; justify-content: center; color: var(--scm-accent); flex: 0 0 auto; box-shadow: none; }
.scm .scm-cart-btn svg { width: 22px; height: 22px; }
.scm .scm-cart-count { position: absolute; top: -5px; right: -5px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--scm-primary); color: var(--scm-primary-text); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* ---- Layout (o resumo fica num portal no <body>, posicionado por JS) ---- */
.scm .scm-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.scm .scm-main { min-width: 0; }
.scm .scm-side { display: none; }
@media (min-width: 960px) {
	.scm .scm-layout.has-side { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
	.scm .scm-side.is-active { display: block; position: fixed; width: 300px; z-index: 90; }
}

/* ---- Intro ---- */
.scm .scm-intro { text-align: center; padding: clamp(20px, 5vw, 56px) clamp(10px, 4vw, 40px); background: var(--scm-card); border-radius: var(--scm-radius); box-shadow: var(--scm-shadow); max-width: 680px; margin: 0 auto; }
.scm .scm-intro img { max-width: min(100%, 300px); max-height: 140px; width: auto; height: auto; margin: 0 auto 18px; display: block; object-fit: contain; }
.scm .scm-intro h2 { font-size: clamp(22px, 3.2vw, 30px); margin-bottom: 12px; }
.scm .scm-intro p { color: var(--scm-muted); font-size: 16px; margin-bottom: 26px; }
.scm .scm-intro-meta { display: flex; justify-content: center; gap: 18px; margin-top: 22px; color: var(--scm-muted); font-size: 13px; flex-wrap: wrap; }
.scm .scm-intro-meta span { display: inline-flex; align-items: center; gap: 6px; }
.scm .scm-intro-meta svg { width: 15px; height: 15px; }

/* ---- Cômodo ---- */
.scm .scm-room-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; margin-bottom: 16px; }
.scm .scm-room-title { min-width: 0; max-width: 640px; }
.scm .scm-room-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: center; width: 100%; }
.scm .scm-nav.scm-nav-top { margin: 0; justify-content: flex-end; gap: 8px; }
.scm .scm-nav.scm-nav-top .scm-btn { padding: 10px 16px; font-size: 14px; }
.scm .scm-nav.scm-nav-top .scm-btn-primary { min-width: 0; }
.scm .scm-nav.scm-nav-top .scm-btn-ghost { padding: 10px 12px; }
@media (max-width: 640px) { .scm .scm-room-tools { width: 100%; justify-content: space-between; } .scm .scm-search { flex: 1 1 100%; } .scm .scm-nav.scm-nav-top { width: 100%; justify-content: space-between; } .scm .scm-nav.scm-nav-top .scm-btn-primary { flex: 1; } }
@media (max-width: 959px) { .scm .scm-nav.scm-nav-top { position: static; margin: 0; padding: 0; background: none; border: 0; backdrop-filter: none; -webkit-backdrop-filter: none; } }
.scm .scm-room-head h2 { font-size: clamp(20px, 2.6vw, 26px); }
.scm .scm-room-head p { color: var(--scm-muted); margin-top: 4px; font-size: 14px; }
.scm .scm-eyebrow { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--scm-primary); font-weight: 700; margin-bottom: 4px; }
.scm .scm-search { position: relative; flex: 0 0 min(100%, 280px); }
.scm.scm .scm-search input { width: 100%; height: 42px; border: 1.5px solid var(--scm-border); background: var(--scm-card); border-radius: 99px; padding: 0 14px 0 38px; font-size: 14px; }
.scm .scm-search svg { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--scm-muted); pointer-events: none; }
.scm .scm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--scm-card-min), 1fr)); gap: 12px; }
@media (max-width: 480px) { .scm .scm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.scm .scm-card { position: relative; background: var(--scm-card); border: 2px solid transparent; box-shadow: var(--scm-shadow); border-radius: var(--scm-radius); padding: 12px 10px 10px; text-align: center; transition: box-shadow .2s ease, transform .15s ease, border-color .2s ease, background .2s; display: flex; flex-direction: column; gap: 8px; overflow: hidden; }
.scm .scm-card.is-hidden { display: none; }
.scm .scm-card:hover { box-shadow: var(--scm-shadow-lg); transform: translateY(-2px); }
.scm .scm-card.is-selected { border-color: var(--scm-primary); background: color-mix(in srgb, var(--scm-primary) 6%, var(--scm-card)); }
.scm .scm-card-check { position: absolute; top: 8px; right: 8px; width: 22px; height: 22px; border-radius: 50%; background: var(--scm-primary); color: var(--scm-primary-text); display: none; align-items: center; justify-content: center; z-index: 1; }
.scm .scm-card-check svg { width: 13px; height: 13px; }
.scm .scm-card.is-selected .scm-card-check { display: flex; }
.scm .scm-card-hit, .scm .scm-card-hit:hover, .scm .scm-card-hit:focus { background: none; border: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; align-items: center; width: 100%; color: inherit; border-radius: calc(var(--scm-radius) * .6); box-shadow: none; text-align: center; }
.scm .scm-card-img { height: var(--scm-img-h); width: 100%; display: flex; align-items: center; justify-content: center; }
.scm .scm-card-img img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; }
.scm .scm-card-img .scm-noimg { width: 60%; height: 60%; border-radius: 12px; background: rgba(0, 0, 0, .05); }
.scm .scm-card-title { font-size: 13.5px; font-weight: 600; line-height: 1.25; color: var(--scm-text); }
.scm .scm-card-vol { font-size: 11.5px; color: var(--scm-muted); }
.scm .scm-qty { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: auto; }
.scm.scm .scm-qty button, .scm.scm .scm-qty button:focus { width: 34px; height: 34px; min-width: 34px; padding: 0; border-radius: 50%; border: 1.5px solid var(--scm-border); background: var(--scm-card); color: var(--scm-accent); font-size: 18px; font-weight: 500; line-height: 1; display: inline-flex; align-items: center; justify-content: center; box-shadow: none; transition: background .15s, color .15s, border-color .15s; }
.scm.scm .scm-qty button:hover { background: var(--scm-primary); color: var(--scm-primary-text); border-color: var(--scm-primary); }
.scm.scm .scm-qty button[disabled] { opacity: .35; pointer-events: none; }
.scm.scm .scm-qty input, .scm.scm .scm-qty input:focus { width: 44px; height: 34px; padding: 0 4px; text-align: center; border: 1.5px solid var(--scm-border); border-radius: 8px; background: var(--scm-card); color: var(--scm-text); font-weight: 700; font-size: 15px; line-height: 1; box-shadow: none; -moz-appearance: textfield; appearance: textfield; }
.scm.scm .scm-card.is-selected .scm-qty input { border-color: var(--scm-primary); color: var(--scm-primary); }
.scm .scm-empty-hint { text-align: center; color: var(--scm-muted); font-size: 14px; margin-top: 24px; }
.scm .scm-nores { grid-column: 1 / -1; text-align: center; color: var(--scm-muted); padding: 24px; }

/* ---- Confirmação do cômodo ---- */
.scm .scm-confirm { margin-top: 18px; background: var(--scm-card); border-radius: var(--scm-radius); box-shadow: var(--scm-shadow); padding: 14px 16px; display: flex; gap: 12px; align-items: center; border: 2px solid transparent; }
.scm .scm-confirm.is-error { border-color: #e74c3c; }
.scm .scm-confirm.is-on { border-color: var(--scm-primary); }
.scm .scm-confirm label { display: flex; gap: 12px; align-items: center; cursor: pointer; flex: 1; margin: 0; font-weight: inherit; }
.scm .scm-confirm strong { display: block; font-size: 15px; color: var(--scm-text); }
.scm .scm-confirm small { color: var(--scm-muted); font-size: 13px; }
.scm.scm input[type="checkbox"].scm-check { -webkit-appearance: none; appearance: none; width: 24px; height: 24px; min-width: 24px; box-sizing: border-box; border: 2px solid var(--scm-muted); border-radius: 7px; flex: 0 0 auto; display: inline-block; margin: 0; padding: 0; background: var(--scm-card); cursor: pointer; vertical-align: middle; position: relative; opacity: 1; visibility: visible; }
.scm.scm input[type="checkbox"].scm-check::before { content: ""; display: block; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; transform: scale(0); transition: transform .12s; background: var(--scm-primary-text); clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); }
.scm.scm input[type="checkbox"].scm-check:checked { background: var(--scm-primary); border-color: var(--scm-primary); }
.scm.scm input[type="checkbox"].scm-check:checked::before { transform: scale(1); }

/* ---- Navegação ---- */
.scm .scm-nav { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 20px; }
.scm .scm-nav .scm-btn-primary { min-width: 200px; }
@media (max-width: 959px) {
	.scm .scm-nav { position: sticky; bottom: 0; margin: 18px -14px -14px; padding: 12px 14px; background: color-mix(in srgb, var(--scm-bg) 90%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-top: 1px solid var(--scm-border); border-radius: 0 0 var(--scm-radius) var(--scm-radius); z-index: 5; }
	.scm .scm-nav .scm-btn-primary { flex: 1; min-width: 0; }
}
.scm .scm-error { color: #c0392b; font-size: 13.5px; margin-top: 8px; display: none; }
.scm .scm-error.is-visible { display: block; }

/* ---- Resumo lateral ---- */
.scm .scm-summary { background: var(--scm-card); border-radius: var(--scm-radius); box-shadow: var(--scm-shadow); padding: 16px 18px; overflow: auto; overscroll-behavior: contain; }
.scm .scm-summary h3 { font-size: 15px; display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.scm .scm-summary h3 span { font-size: 12px; color: var(--scm-muted); font-weight: 500; }
.scm .scm-summary-empty { color: var(--scm-muted); font-size: 13.5px; }
.scm .scm-summary-room { margin-top: 10px; }
.scm .scm-summary-room h4 { margin: 0 0 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--scm-muted); display: flex; justify-content: space-between; align-items: center; }
.scm .scm-summary-room h4 .scm-link { font-size: 11px; text-transform: none; letter-spacing: 0; }
.scm .scm-summary-item { display: flex; justify-content: space-between; gap: 8px; font-size: 13.5px; padding: 3px 0; }
.scm .scm-summary-item .scm-si-name { min-width: 0; }
.scm .scm-summary-item .scm-si-qty { color: var(--scm-muted); margin-right: 4px; }
.scm .scm-summary-item .scm-si-vol { color: var(--scm-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.scm .scm-summary-total { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--scm-border); display: flex; justify-content: space-between; font-weight: 700; }
.scm .scm-summary-total span:last-child { color: var(--scm-primary); font-variant-numeric: tabular-nums; }

/* ---- Gaveta (celular) ---- */
@media (max-width: 959px) {
	.scm .scm-cart-btn, .scm .scm-cart-btn:hover, .scm .scm-cart-btn:focus { display: inline-flex; }
	.scm .scm-side.is-open { display: block; position: fixed; inset: 0; z-index: 99999; }
	.scm .scm-side-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .4); }
	.scm .scm-side .scm-summary { position: absolute; left: 0; right: 0; bottom: 0; border-radius: 20px 20px 0 0; max-height: 80vh; overflow: auto; box-shadow: 0 -10px 40px rgba(0, 0, 0, .2); padding-bottom: 24px; animation: scm-up .25s ease; }
	.scm .scm-side-close { display: inline-flex; margin-left: auto; padding: 8px 10px; }
}
@media (min-width: 960px) { .scm .scm-side-backdrop, .scm .scm-side-close { display: none; } }
@keyframes scm-up { from { transform: translateY(30px); opacity: 0; } to { transform: none; opacity: 1; } }

/* ---- Revisão / formulário ---- */
.scm .scm-review-head { margin-bottom: 18px; text-align: center; }
.scm .scm-review-head h2 { font-size: clamp(20px, 2.6vw, 26px); }
.scm .scm-review-head p { color: var(--scm-muted); margin-top: 4px; }
.scm .scm-form { background: var(--scm-card); border-radius: var(--scm-radius); box-shadow: var(--scm-shadow); padding: clamp(14px, 3vw, 24px); margin: 0; }
.scm .scm-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
@media (max-width: 640px) { .scm .scm-fields { grid-template-columns: 1fr; } }
.scm .scm-field { display: flex; flex-direction: column; gap: 5px; }
.scm .scm-field.is-full { grid-column: 1 / -1; }
.scm .scm-field label { font-size: 13.5px; font-weight: 600; margin: 0; color: var(--scm-text); }
.scm .scm-field label .scm-req { color: #e74c3c; }
.scm.scm .scm-field input, .scm.scm .scm-field textarea { width: 100%; border: 1.5px solid var(--scm-border); border-radius: 10px; padding: 11px 13px; background: var(--scm-card); color: var(--scm-text); font-size: 15px; min-height: 46px; line-height: 1.3; }
.scm.scm .scm-field textarea { min-height: 96px; resize: vertical; }
.scm.scm .scm-field input:focus, .scm.scm .scm-field textarea:focus { border-color: var(--scm-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--scm-primary) 18%, transparent); outline: none; }
.scm.scm .scm-field.is-error input, .scm.scm .scm-field.is-error textarea { border-color: #e74c3c; }
.scm .scm-field-err { color: #c0392b; font-size: 12.5px; display: none; }
.scm .scm-field.is-error .scm-field-err { display: block; }
.scm .scm-options { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-top: 4px; }
.scm .scm-opt { display: flex; align-items: center; gap: 12px; border: 1.5px solid var(--scm-border); border-radius: 12px; padding: 11px 13px; cursor: pointer; transition: border-color .15s, background .15s; font-size: 14px; font-weight: 500; margin: 0; color: var(--scm-text); }
.scm .scm-opt:hover { background: rgba(0, 0, 0, .025); }
.scm .scm-opt.is-on { border-color: var(--scm-primary); background: color-mix(in srgb, var(--scm-primary) 6%, var(--scm-card)); }
.scm.scm .scm-opt .scm-check, .scm.scm .scm-field .scm-opt .scm-check { width: 22px; height: 22px; min-width: 22px; max-width: 22px; min-height: 0; padding: 0; margin: 2px 0 0; align-self: flex-start; }
.scm .scm-opt { align-items: flex-start; }
.scm .scm-opt-text { display: flex; flex-direction: column; gap: 3px; line-height: 1.3; }
.scm .scm-help { display: block; font-size: 12.5px; color: var(--scm-muted); font-weight: 400; line-height: 1.35; }
.scm .scm-sub-opt { display: flex; align-items: flex-end; }
.scm .scm-sub-opt .scm-opt { width: 100%; }
.scm .scm-sub { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; padding: 12px 14px; background: rgba(0, 0, 0, .03); border-radius: 12px; }
@media (max-width: 640px) { .scm .scm-sub { grid-template-columns: 1fr; } }
.scm .scm-consent { grid-column: 1 / -1; display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; color: var(--scm-muted); cursor: pointer; margin: 0; font-weight: inherit; }
.scm .scm-consent a { color: var(--scm-primary); }
.scm .scm-consent.is-error { color: #c0392b; }
.scm .scm-turnstile { grid-column: 1 / -1; min-height: 65px; }
.scm .scm-review-items { margin-top: 16px; background: var(--scm-card); border-radius: var(--scm-radius); box-shadow: var(--scm-shadow); padding: 16px 18px; }
.scm .scm-review-items h3 { font-size: 15px; margin-bottom: 8px; }
.scm .scm-submit-row { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 6px; }
.scm .scm-hp { position: absolute; left: -9999px; top: -9999px; height: 0; width: 0; overflow: hidden; }

/* ---- Concluído ---- */
.scm .scm-done { text-align: center; background: var(--scm-card); border-radius: var(--scm-radius); box-shadow: var(--scm-shadow); padding: clamp(28px, 5vw, 56px) 20px; max-width: 620px; margin: 0 auto; }
.scm .scm-done-icon { width: 72px; height: 72px; border-radius: 50%; background: color-mix(in srgb, var(--scm-primary) 12%, var(--scm-card)); color: var(--scm-primary); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px; animation: scm-pop .4s cubic-bezier(.2, 1.4, .4, 1); }
.scm .scm-done-icon svg { width: 36px; height: 36px; }
.scm .scm-done h2 { font-size: 26px; margin-bottom: 8px; }
.scm .scm-done p { color: var(--scm-muted); font-size: 16px; }
.scm .scm-ref { display: inline-block; margin: 18px 0; padding: 10px 18px; background: var(--scm-bg); border-radius: 10px; font-size: 14px; }
.scm .scm-ref strong { color: var(--scm-accent); font-size: 18px; letter-spacing: .03em; }
.scm .scm-done-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 10px; }
@keyframes scm-pop { from { transform: scale(.5); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* ---- Transições ---- */
.scm .scm-main > * { animation: scm-fade .25s ease; }
@keyframes scm-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .scm * { animation: none !important; transition: none !important; } }

/* ---- CEP e distância ---- */
.scm .scm-cep-wrap { position: relative; }
.scm .scm-cep-wrap svg { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--scm-muted); pointer-events: none; }
.scm.scm .scm-field-cep input { padding-left: 38px; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.scm .scm-cep-status { min-height: 0; font-weight: 600; }
.scm .scm-cep-status.is-ok { color: var(--scm-primary); }
.scm .scm-cep-status.is-bad { color: #c0392b; }
.scm .scm-cep-status.is-warn { color: #9a6700; }
.scm .scm-cep-status:empty { display: none; }
.scm .scm-field-cep.is-resolved .scm-cep-hint { display: none; }
.scm .scm-distance { grid-column: 1 / -1; display: none; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, var(--scm-primary) 8%, var(--scm-card)); border: 1.5px solid color-mix(in srgb, var(--scm-primary) 25%, transparent); font-size: 14px; color: var(--scm-text); }
.scm .scm-distance.is-ready, .scm .scm-distance.is-loading { display: flex; }
.scm .scm-distance.is-loading { color: var(--scm-muted); background: rgba(0, 0, 0, .03); border-color: var(--scm-border); }
.scm .scm-distance svg { width: 18px; height: 18px; color: var(--scm-primary); flex: 0 0 auto; }
.scm .scm-distance strong { color: var(--scm-primary); }
.scm .scm-distance em { color: var(--scm-muted); font-style: normal; font-size: 12.5px; }
.scm .scm-review-items-hint { color: var(--scm-muted); font-size: 13px; margin-top: 6px; }
.scm .scm-review-total { font-size: 14px; }
.scm .scm-summary-restart, .scm .scm-summary-restart:hover { display: inline-flex; align-items: center; gap: 4px; margin-top: 14px; font-size: 12.5px; color: var(--scm-muted); text-decoration: none; }
.scm .scm-summary-restart:hover { color: var(--scm-primary); }
.scm .scm-summary-restart svg { width: 13px; height: 13px; }

/* ---- Crédito ---- */
.scm .scm-credit { grid-column: 1; display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 4px; font-size: 11.5px; line-height: 1; color: var(--scm-muted); opacity: .85; }
.scm .scm-credit a { display: inline-flex; align-items: center; line-height: 0; opacity: .9; transition: opacity .15s; }
.scm .scm-credit a:hover { opacity: 1; }
.scm .scm-credit img { height: 22px; width: auto; display: block; }

/* ---- Data (calendário próprio) ---- */
.scm .scm-date-wrap { position: relative; }
.scm .scm-date-wrap > svg { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--scm-muted); pointer-events: none; }
.scm.scm .scm-field-date input { padding-right: 42px; cursor: pointer; font-variant-numeric: tabular-nums; }
.scm.scm .scm-field-date input[type="hidden"] { display: none; }
.flatpickr-calendar.scm-calendar { font-family: var(--scm-font, inherit); border-radius: 14px; border: 1px solid rgba(0, 0, 0, .08); box-shadow: 0 14px 34px rgba(16, 24, 40, .18); padding: 4px; width: 316px; }
.flatpickr-calendar.scm-calendar.arrowTop::before, .flatpickr-calendar.scm-calendar.arrowTop::after, .flatpickr-calendar.scm-calendar.arrowBottom::before, .flatpickr-calendar.scm-calendar.arrowBottom::after { display: none; }
.flatpickr-calendar.scm-calendar .flatpickr-months { padding: 6px 4px 0; }
.flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-month, .flatpickr-calendar.scm-calendar .flatpickr-current-month, .flatpickr-calendar.scm-calendar .flatpickr-current-month input.cur-year, .flatpickr-calendar.scm-calendar span.flatpickr-weekday { color: var(--scm-accent, #34495e); fill: var(--scm-accent, #34495e); font-weight: 700; }
.flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-month { height: 40px; }
.flatpickr-calendar.scm-calendar .flatpickr-current-month { height: 40px; padding: 0; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 15px; line-height: 40px; }
.flatpickr-calendar.scm-calendar .flatpickr-current-month span.cur-month { margin: 0; padding: 0; font-weight: 700; line-height: 1; }
.flatpickr-calendar.scm-calendar .flatpickr-current-month .flatpickr-monthDropdown-months { font-weight: 700; font-family: inherit; height: auto; line-height: 1; padding: 0; margin: 0; }
.flatpickr-calendar.scm-calendar .flatpickr-current-month .numInputWrapper { height: auto; width: 6.5ch; }
/* o input do ano herda CSS global de temas (altura, borda, padding): zera tudo */
.flatpickr-calendar.scm-calendar .flatpickr-current-month input.cur-year { font-family: inherit; font-size: inherit; font-weight: 700; min-height: 0; height: auto; line-height: 1; padding: 0 0 0 .4ch; margin: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; color: inherit; width: 100%; vertical-align: baseline; -webkit-appearance: none; appearance: none; }
.flatpickr-calendar.scm-calendar span.flatpickr-weekday { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--scm-muted, #7f8c8d); }
.flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-prev-month, .flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-next-month { border-radius: 8px; height: 40px; padding: 11px 10px; top: 6px; }
.flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-prev-month:hover, .flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-next-month:hover { background: color-mix(in srgb, var(--scm-primary, #0b6c9e) 10%, transparent); }
.flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-prev-month svg, .flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-next-month svg { fill: var(--scm-accent, #34495e); }
.flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-calendar.scm-calendar .flatpickr-months .flatpickr-next-month:hover svg { fill: var(--scm-primary, #0b6c9e); }
.flatpickr-calendar.scm-calendar .flatpickr-day { border-radius: 10px; font-weight: 600; color: var(--scm-text, #2c3e50); border-color: transparent; }
.flatpickr-calendar.scm-calendar .flatpickr-day:hover, .flatpickr-calendar.scm-calendar .flatpickr-day.prevMonthDay:hover, .flatpickr-calendar.scm-calendar .flatpickr-day.nextMonthDay:hover { background: color-mix(in srgb, var(--scm-primary, #0b6c9e) 12%, transparent); border-color: transparent; color: var(--scm-primary, #0b6c9e); }
.flatpickr-calendar.scm-calendar .flatpickr-day.today { border-color: var(--scm-primary, #0b6c9e); }
.flatpickr-calendar.scm-calendar .flatpickr-day.today:hover { background: color-mix(in srgb, var(--scm-primary, #0b6c9e) 12%, transparent); color: var(--scm-primary, #0b6c9e); }
.flatpickr-calendar.scm-calendar .flatpickr-day.selected, .flatpickr-calendar.scm-calendar .flatpickr-day.selected:hover, .flatpickr-calendar.scm-calendar .flatpickr-day.selected.today { background: var(--scm-primary, #0b6c9e); border-color: var(--scm-primary, #0b6c9e); color: var(--scm-primary-text, #fff); box-shadow: 0 6px 14px color-mix(in srgb, var(--scm-primary, #0b6c9e) 35%, transparent); }
.flatpickr-calendar.scm-calendar .flatpickr-day.flatpickr-disabled, .flatpickr-calendar.scm-calendar .flatpickr-day.flatpickr-disabled:hover, .flatpickr-calendar.scm-calendar .flatpickr-day.prevMonthDay, .flatpickr-calendar.scm-calendar .flatpickr-day.nextMonthDay { color: rgba(57, 57, 57, .3); font-weight: 400; }
