/* Conecta Pro — front-end
 * Personalize as cores alterando as variáveis abaixo (ex.: no CSS do Elementor).
 */
.cpro {
	--cpro-accent: #0f766e;
	--cpro-accent-ink: #ffffff;
	--cpro-accent-soft: #e6f2f1;
	--cpro-ink: #1c1c1a;
	--cpro-muted: #66665f;
	--cpro-line: #e3e2dc;
	--cpro-bg: #ffffff;
	--cpro-bg-soft: #f6f5f1;
	--cpro-ok: #157a3d;
	--cpro-warn: #9a5b00;
	--cpro-err: #b42318;
	--cpro-wa: #128c4a;
	--cpro-radius: 12px;
	color: var(--cpro-ink);
	max-width: 880px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.55;
}
.cpro *, .cpro *::before, .cpro *::after { box-sizing: border-box; }
.cpro h2 { font-size: 1.6em; line-height: 1.2; margin: 0 0 .4em; }
.cpro h3 { font-size: 1.15em; margin: 1.6em 0 .6em; }
.cpro h4 { margin: 1em 0 .4em; }
.cpro a { color: var(--cpro-accent); }
.cpro-muted { color: var(--cpro-muted); }
.cpro-small { font-size: .875em; }
.cpro-req { color: var(--cpro-err); }
.cpro-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }
.cpro-intro { margin-bottom: 1.5em; }
.cpro-intro p { color: var(--cpro-muted); font-size: 1.05em; max-width: 60ch; }
.cpro-back { margin: 0 0 .5em; font-size: .9em; }

/* Avisos */
.cpro-notice { padding: .85em 1.1em; border-radius: 10px; margin: 0 0 1.2em; border: 1px solid; font-size: .95em; }
.cpro-notice--ok { background: #ecf7f0; border-color: #b7e0c4; color: var(--cpro-ok); }
.cpro-notice--info { background: var(--cpro-accent-soft); border-color: #b9dbd8; color: var(--cpro-accent); }
.cpro-notice--erro { background: #fdf0ee; border-color: #f2c6c0; color: var(--cpro-err); }

/* Cartões */
.cpro-card { background: var(--cpro-bg); border: 1px solid var(--cpro-line); border-radius: var(--cpro-radius); padding: 1.25em 1.4em; margin: 0 0 1em; }
.cpro-card--accent { border-color: var(--cpro-accent); box-shadow: 0 0 0 3px var(--cpro-accent-soft); }
.cpro-narrow { max-width: 460px; margin-left: auto; margin-right: auto; }
.cpro-empty { padding: 2em 1.2em; text-align: center; color: var(--cpro-muted); background: var(--cpro-bg-soft); border-radius: var(--cpro-radius); margin-bottom: 1em; }
.cpro details > summary { cursor: pointer; font-weight: 600; }
details.cpro-card > summary { margin: -.2em 0; }
details[open].cpro-card > summary { margin-bottom: .8em; }

/* Formulários */
.cpro-form { display: grid; gap: 1em; }
.cpro-field { display: grid; gap: .35em; margin: 0; border: 0; padding: 0; min-width: 0; }
.cpro-field > span, .cpro-field > legend { font-weight: 600; font-size: .95em; padding: 0; }
.cpro input[type=text], .cpro input[type=email], .cpro input[type=tel], .cpro input[type=number],
.cpro input[type=date], .cpro input[type=password], .cpro input[type=search], .cpro select, .cpro textarea {
	width: 100%; font: inherit; color: inherit; background: var(--cpro-bg);
	border: 1px solid #cfcdc4; border-radius: 9px; padding: .7em .85em; min-height: 46px;
}
.cpro textarea { min-height: 0; resize: vertical; }
.cpro input:focus, .cpro select:focus, .cpro textarea:focus { outline: 2px solid var(--cpro-accent); outline-offset: 1px; border-color: var(--cpro-accent); }
.cpro-row { display: flex; gap: 1em; flex-wrap: wrap; }
.cpro-row > .cpro-field { flex: 0 0 auto; min-width: 90px; }
.cpro-row > .cpro-grow { flex: 1 1 220px; }
.cpro-check { display: flex; gap: .55em; align-items: flex-start; font-size: .95em; }
.cpro-check input { margin-top: .3em; }
.cpro-step { margin: 1.4em 0 0; padding-top: 1.2em; border-top: 1px solid var(--cpro-line); font-size: 1.05em; }
.cpro-form > .cpro-step:first-of-type { border-top: 0; padding-top: 0; margin-top: .4em; }
.cpro-choices { display: flex; flex-wrap: wrap; gap: .5em; }
.cpro-choice { position: relative; }
.cpro-choice input { position: absolute; opacity: 0; inset: 0; }
.cpro-choice span { display: inline-block; padding: .55em 1em; border: 1px solid #cfcdc4; border-radius: 999px; cursor: pointer; font-size: .95em; background: var(--cpro-bg); }
.cpro-choice input:checked + span { background: var(--cpro-accent); border-color: var(--cpro-accent); color: var(--cpro-accent-ink); }
.cpro-choice input:focus-visible + span { outline: 2px solid var(--cpro-accent); outline-offset: 2px; }
.cpro-otp { font-size: 1.6em !important; letter-spacing: .4em; text-align: center; font-variant-numeric: tabular-nums; }

/* Botões */
.cpro-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4em; font: inherit; font-weight: 600; font-size: .95em;
	padding: .7em 1.2em; min-height: 44px; border-radius: 10px; border: 1px solid var(--cpro-line); background: var(--cpro-bg); color: var(--cpro-ink) !important;
	text-decoration: none !important; cursor: pointer; line-height: 1.2; }
.cpro-btn:hover { border-color: var(--cpro-ink); }
.cpro-btn--primary { background: var(--cpro-accent); border-color: var(--cpro-accent); color: var(--cpro-accent-ink) !important; }
.cpro-btn--primary:hover { filter: brightness(1.08); border-color: var(--cpro-accent); }
.cpro-btn--wa { background: var(--cpro-wa); border-color: var(--cpro-wa); color: #fff !important; }
.cpro-btn--lg { padding: .9em 1.6em; font-size: 1.05em; justify-self: start; }
.cpro-link { background: none; border: 0; padding: 0; font: inherit; color: var(--cpro-accent); text-decoration: underline; cursor: pointer; }
.cpro-actions { display: flex; flex-wrap: wrap; gap: .6em; align-items: center; margin-top: 1em; }
.cpro-actions form { margin: 0; }
.cpro-inline-actions { display: flex; flex-wrap: wrap; gap: 1.2em; margin-top: 1em; font-size: .9em; }
.cpro-inline-actions form { margin: 0; }
.cpro-end { margin: 1.5em 0; text-align: center; font-size: .9em; }

/* Busca e grade de categorias */
.cpro-search input { font-size: 1.05em; min-height: 52px; margin-bottom: 1em; }
.cpro-catgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .7em; }
.cpro-catgrid__item { display: flex; flex-direction: column; gap: .2em; padding: 1em 1.1em; border: 1px solid var(--cpro-line); border-radius: var(--cpro-radius);
	text-decoration: none !important; color: var(--cpro-ink) !important; background: var(--cpro-bg); transition: border-color .15s, transform .15s; }
.cpro-catgrid__item:hover { border-color: var(--cpro-accent); transform: translateY(-1px); }
.cpro-catgrid__name { font-weight: 600; }
.cpro-catgrid__group { font-size: .82em; color: var(--cpro-muted); }
.cpro-catgrid__item[hidden] { display: none; }
.cpro-catgrid__empty { text-align: center; color: var(--cpro-muted); padding: 1.5em 0 .5em; }
.cpro-catgrid__empty[hidden] { display: none; }

/* Categorias (checkboxes) */
.cpro-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .8em; }
.cpro-cats__group { border: 1px solid var(--cpro-line); border-radius: 10px; padding: .8em 1em; margin: 0; }
.cpro-cats__group legend { font-weight: 600; padding: 0 .3em; }
.cpro-cats__item { display: flex; gap: .5em; align-items: center; font-size: .95em; padding: .15em 0; }

/* Cabeçalho do painel */
.cpro-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1em; flex-wrap: wrap; margin-bottom: 1em; }
.cpro-head p { margin: 0; }
.cpro-balance { display: flex; flex-direction: column; align-items: center; padding: .6em 1.2em; border-radius: var(--cpro-radius); background: var(--cpro-accent-soft);
	color: var(--cpro-accent) !important; text-decoration: none !important; line-height: 1.15; font-size: .85em; }
.cpro-balance strong { font-size: 1.9em; font-variant-numeric: tabular-nums; }
.cpro-tabs { display: flex; gap: .3em; border-bottom: 1px solid var(--cpro-line); margin-bottom: 1.4em; overflow-x: auto; scrollbar-width: none; }
.cpro-tabs a { padding: .7em .9em; text-decoration: none !important; color: var(--cpro-muted) !important; border-bottom: 2px solid transparent; white-space: nowrap; font-weight: 600; font-size: .95em; }
.cpro-tabs a.is-active { color: var(--cpro-ink) !important; border-bottom-color: var(--cpro-accent); }
.cpro-tabs__out { margin-left: auto; font-weight: 400 !important; }

/* Pedido (lead) */
.cpro-lead__head { display: flex; justify-content: space-between; gap: 1em; align-items: flex-start; }
.cpro-lead__head h3 { margin: 0 0 .15em; }
.cpro-lead__head p { margin: 0; font-size: .9em; }
.cpro-lead__cost { text-align: center; line-height: 1.1; flex: none; }
.cpro-lead__cost strong { display: block; font-size: 1.6em; color: var(--cpro-accent); font-variant-numeric: tabular-nums; }
.cpro-lead__cost span { font-size: .78em; color: var(--cpro-muted); }
.cpro-lead__tags { display: flex; flex-wrap: wrap; gap: .4em; margin: .8em 0; }
.cpro-tag { display: inline-block; font-size: .78em; padding: .25em .65em; border-radius: 999px; background: var(--cpro-bg-soft); color: var(--cpro-muted); font-weight: 600; }
.cpro-tag--ok { background: #ecf7f0; color: var(--cpro-ok); }
.cpro-dl { display: grid; grid-template-columns: minmax(120px, max-content) 1fr; gap: .3em 1em; margin: .6em 0; font-size: .95em; }
.cpro-dl dt { color: var(--cpro-muted); }
.cpro-dl dd { margin: 0; font-weight: 600; }
.cpro-desc { white-space: normal; background: var(--cpro-bg-soft); padding: .9em 1em; border-radius: 9px; margin: .6em 0; font-size: .95em; }
.cpro-respond { margin-top: 1em; }
.cpro-respond > summary { list-style: none; display: inline-flex; }
.cpro-respond > summary::-webkit-details-marker { display: none; }
.cpro-respond[open] > summary { display: none; }
.cpro-contact { background: var(--cpro-accent-soft); padding: .8em 1em; border-radius: 9px; margin: .8em 0 0; }
.cpro-report { margin-top: 1em; font-size: .9em; }
.cpro-report > summary { font-weight: 400; color: var(--cpro-muted); }

/* Status */
.cpro-badge { display: inline-block; font-size: .8em; font-weight: 700; padding: .3em .75em; border-radius: 999px; background: var(--cpro-bg-soft); color: var(--cpro-muted); white-space: nowrap; }
.cpro-badge--aberto, .cpro-badge--enviado { background: var(--cpro-accent-soft); color: var(--cpro-accent); }
.cpro-badge--contratado { background: #ecf7f0; color: var(--cpro-ok); }
.cpro-badge--reportado, .cpro-badge--aguardando_validacao { background: #fdf5e6; color: var(--cpro-warn); }

/* Profissional */
.cpro-procard { display: flex; gap: .9em; align-items: center; }
.cpro-procard__photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--cpro-bg-soft); flex: none; }
.cpro-procard__name { font-weight: 700; font-size: 1.05em; }
.cpro-procard__meta { font-size: .88em; color: var(--cpro-muted); }
.cpro-stars { color: #d99a00; letter-spacing: .05em; }
.cpro-stars__off { color: #d9d7cf; }
.cpro-proposal .cpro-message { margin-top: .9em; }
.cpro-quote { margin: .8em 0 0; }
.cpro-message { font-size: .95em; }
.cpro-profile .cpro-procard__photo { width: 84px; height: 84px; }
.cpro-review p { margin: .5em 0 0; }
.cpro-photo { display: flex; gap: 1em; align-items: center; }
.cpro-photo img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }

/* Avaliação por estrelas (CSS puro) */
.cpro-rate { display: inline-flex; flex-direction: row-reverse; gap: .1em; }
.cpro-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cpro-rate label { font-size: 2em; color: #d9d7cf; cursor: pointer; line-height: 1; }
.cpro-rate input:checked ~ label, .cpro-rate label:hover, .cpro-rate label:hover ~ label { color: #d99a00; }
.cpro-rate input:focus-visible + label { outline: 2px solid var(--cpro-accent); }

/* Pacotes */
.cpro-packages { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .8em; margin-bottom: .8em; }
.cpro-package { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .15em; border: 1px solid var(--cpro-line); border-radius: var(--cpro-radius); padding: 1.2em 1em; margin: 0; position: relative; }
.cpro-package__label { font-size: .75em; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: var(--cpro-accent); }
.cpro-package__credits { font-size: 2.1em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.cpro-package__price { font-weight: 700; font-size: 1.1em; margin-top: .4em; }
.cpro-package .cpro-btn { margin-top: .7em; width: 100%; }

/* Tabelas */
.cpro-table-wrap { overflow-x: auto; }
.cpro-table { width: 100%; border-collapse: collapse; font-size: .9em; }
.cpro-table th, .cpro-table td { text-align: left; padding: .6em .7em; border-bottom: 1px solid var(--cpro-line); }
.cpro-table th { color: var(--cpro-muted); font-weight: 600; }
.cpro-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.cpro-table .pos { color: var(--cpro-ok); }
.cpro-table .neg { color: var(--cpro-err); }

/* Conta do cliente */
.cpro-auth { display: grid; grid-template-columns: 1fr 1.15fr; gap: 1.5em; align-items: start; }
.cpro-auth__box { border: 1px solid var(--cpro-line); border-radius: var(--cpro-radius); padding: 1.6em; background: var(--cpro-bg); position: relative; }
.cpro-auth__box h2 { margin-top: 0; }
.cpro-auth__box--new { border-color: var(--cpro-accent); box-shadow: 0 0 0 3px var(--cpro-accent-soft); }
.cpro-auth__badge { position: absolute; top: -.8em; right: 1.2em; background: var(--cpro-accent); color: var(--cpro-accent-ink); font-size: .75em; font-weight: 700; padding: .3em .8em; border-radius: 999px; }
.cpro-auth__perks { list-style: none; padding: 0; margin: 0 0 1.2em; display: grid; gap: .45em; }
.cpro-auth__perks li { padding-left: 1.6em; position: relative; font-size: .95em; }
.cpro-auth__perks li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--cpro-ok); font-weight: 700; }
.cpro-auth__pro { text-align: center; margin-top: 1.5em; color: var(--cpro-muted); font-size: .95em; }
.cpro-auth #loginform p { margin: 0 0 1em; }
.cpro-auth #loginform label { display: block; font-weight: 600; margin-bottom: .35em; }
.cpro-auth #loginform input[type=text], .cpro-auth #loginform input[type=password] { width: 100%; }
.cpro-auth #loginform .login-remember label { display: flex; gap: .5em; font-weight: 400; }
.cpro-auth #loginform #wp-submit { width: 100%; min-height: 48px; border: 0; border-radius: 10px; background: var(--cpro-ink); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.cpro-accountbox { border: 1px dashed var(--cpro-accent); background: var(--cpro-accent-soft); border-radius: 12px; padding: 1em 1.1em; display: grid; gap: .8em; }
.cpro-accountbox p { margin: 0; }
.cpro-accountbox__pass[hidden] { display: none; }
.cpro-account-note { background: var(--cpro-accent-soft); border-radius: 10px; padding: .7em 1em; margin: 0; font-size: .95em; }
.cpro-myreqs { display: grid; gap: .7em; }
.cpro-myreq { display: flex; justify-content: space-between; align-items: center; gap: 1em; text-decoration: none !important; color: var(--cpro-ink) !important; margin: 0; transition: border-color .15s, transform .15s; }
.cpro-myreq:hover { border-color: var(--cpro-accent); transform: translateY(-1px); }
.cpro-myreq__main { display: grid; gap: .15em; }
.cpro-myreq__side { display: flex; align-items: center; gap: .8em; flex-wrap: wrap; justify-content: flex-end; }
.cpro-myreq__count { font-size: .9em; color: var(--cpro-muted); }
.cpro-myreq__count b { color: var(--cpro-accent); font-size: 1.1em; }
.cpro-empty--cta .cpro-btn { margin-top: 1em; }
.cpro-upsell { display: flex; align-items: center; justify-content: space-between; gap: 1em; flex-wrap: wrap; background: var(--cpro-accent-soft); border-color: transparent; }
.cpro-upsell p { margin: .3em 0 0; }
.cpro-narrow-form { max-width: 560px; }

@media (max-width: 760px) {
	.cpro-auth { grid-template-columns: 1fr; }
	.cpro-auth--criar .cpro-auth__box--new { order: -1; }
	.cpro-myreq { flex-direction: column; align-items: flex-start; }
	.cpro-myreq__side { justify-content: flex-start; }
}

@media (max-width: 600px) {
	.cpro { font-size: 15px; }
	.cpro-card { padding: 1em; }
	.cpro-dl { grid-template-columns: 1fr; gap: 0; }
	.cpro-dl dd { margin-bottom: .5em; }
	.cpro-btn--lg { width: 100%; }
	.cpro-actions .cpro-btn, .cpro-actions form, .cpro-actions form .cpro-btn { width: 100%; }
}
