/* ==========================================================================
   PRO CORRE — Componentes
   Botões · Badges · Formulários · Cards · Preços · Filtros · Menus · Modais
   Alertas · Estados · Carteirinha
   ========================================================================== */

/* ---------- Botões ---------- */
.pc-btn {
	--_bg: var(--pc-surface);
	--_fg: var(--pc-text);
	--_bd: var(--pc-border);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pc-space-2);
	min-height: 44px;
	padding: 0 var(--pc-space-5);
	border: 2px solid var(--_bd);
	border-radius: var(--pc-radius-sm);
	background: var(--_bg);
	color: var(--_fg);
	font-family: var(--pc-font-display);
	font-stretch: var(--pc-stretch-display);
	font-size: var(--pc-text-sm);
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--pc-duration) var(--pc-ease), color var(--pc-duration) var(--pc-ease), border-color var(--pc-duration) var(--pc-ease), transform var(--pc-duration) var(--pc-ease);
}
.pc-btn:hover { text-decoration: none; }
.pc-btn:active { transform: translateY(1px); }
.pc-btn svg { width: 18px; height: 18px; flex: none; }

.pc-btn--primary { --_bg: var(--pc-yellow); --_fg: var(--pc-black); --_bd: var(--pc-yellow); }
.pc-btn--primary:hover { --_bg: var(--pc-yellow-600); --_bd: var(--pc-yellow-600); }
.pc-btn--secondary { --_bg: var(--pc-black); --_fg: var(--pc-white); --_bd: var(--pc-black); }
.pc-btn--secondary:hover { --_bg: var(--pc-gray-900); --_bd: var(--pc-gray-900); }
.pc-surface-dark .pc-btn--secondary { --_bg: var(--pc-white); --_fg: var(--pc-black); --_bd: var(--pc-white); }
.pc-btn--outline { --_bg: transparent; --_fg: var(--pc-text); --_bd: currentColor; }
.pc-btn--outline:hover { --_bg: var(--pc-text); --_fg: var(--pc-bg); --_bd: var(--pc-text); }
.pc-btn--ghost { --_bg: transparent; --_bd: transparent; }
.pc-btn--ghost:hover { --_bg: rgba(127, 127, 127, 0.12); }
.pc-btn--link { --_bg: transparent; --_bd: transparent; padding-inline: 0; min-height: auto; text-decoration: underline; text-underline-offset: 0.25em; text-decoration-color: var(--pc-yellow); text-decoration-thickness: 2px; }

.pc-btn--sm { min-height: 36px; padding-inline: var(--pc-space-3); font-size: var(--pc-text-xs); }
.pc-btn--lg { min-height: 52px; padding-inline: var(--pc-space-8); font-size: var(--pc-text-base); }
.pc-btn--block { display: flex; width: 100%; }
.pc-btn--icon { width: 44px; padding: 0; }
.pc-btn--icon.pc-btn--sm { width: 36px; }

.pc-btn:disabled, .pc-btn[aria-disabled="true"] { opacity: 0.45; cursor: not-allowed; transform: none; }
.pc-btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.pc-btn.is-loading::after {
	content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%;
	border: 2px solid var(--_fg); border-right-color: transparent; animation: pc-spin 0.7s linear infinite;
}
@keyframes pc-spin { to { transform: rotate(360deg); } }

/* ---------- Badges ---------- */
.pc-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 0.2rem 0.55rem;
	border-radius: var(--pc-radius-xs);
	background: var(--pc-gray-200);
	color: var(--pc-black);
	font-family: var(--pc-font-display);
	font-stretch: var(--pc-stretch-display);
	font-size: var(--pc-text-2xs);
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
	white-space: nowrap;
}
.pc-badge--yellow { background: var(--pc-yellow); }
.pc-badge--dark { background: var(--pc-black); color: var(--pc-white); }
.pc-badge--demo { background: var(--pc-black); color: var(--pc-yellow); }
.pc-surface-dark .pc-badge--demo { background: var(--pc-yellow); color: var(--pc-black); }
.pc-badge--success { background: var(--pc-success-bg); color: var(--pc-success); }
.pc-badge--error { background: var(--pc-error-bg); color: var(--pc-error); }
.pc-badge--outline { background: transparent; box-shadow: inset 0 0 0 1.5px currentColor; color: var(--pc-text); }
.pc-badge--plan-basico { background: var(--pc-gray-200); }
.pc-badge--plan-essencial { background: var(--pc-yellow); }
.pc-badge--plan-premium { background: var(--pc-black); color: var(--pc-yellow); }

/* ---------- Formulários ---------- */
.pc-form__grid { display: grid; gap: var(--pc-space-4); margin-bottom: var(--pc-space-6); }
@media (min-width: 640px) { .pc-form__grid { grid-template-columns: 1fr 1fr; } }
.pc-field { display: flex; flex-direction: column; gap: var(--pc-space-2); min-width: 0; }
.pc-field--full { grid-column: 1 / -1; }
.pc-fieldset { border: 0; padding: 0; margin: 0; }
.pc-label { font-size: var(--pc-text-sm); font-weight: 600; }
.pc-help { font-size: var(--pc-text-xs); color: var(--pc-text-muted); }
.pc-error-text { font-size: var(--pc-text-xs); color: var(--pc-error); font-weight: 600; }

.pc-input, .pc-select, .pc-textarea {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	border: 1.5px solid var(--pc-border);
	border-radius: var(--pc-radius-sm);
	background: var(--pc-surface);
	color: var(--pc-text);
	font-size: var(--pc-text-base); /* 16px evita zoom no iOS */
	transition: border-color var(--pc-duration) var(--pc-ease), box-shadow var(--pc-duration) var(--pc-ease);
}
.pc-textarea { min-height: 120px; resize: vertical; }
.pc-input::placeholder, .pc-textarea::placeholder { color: var(--pc-gray-400); }
.pc-input:hover, .pc-select:hover, .pc-textarea:hover { border-color: var(--pc-gray-400); }
.pc-input:focus, .pc-select:focus, .pc-textarea:focus { outline: none; border-color: var(--pc-black); box-shadow: 0 0 0 3px var(--pc-yellow); }
.pc-select {
	appearance: none;
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%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='%23121212' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
}
.pc-field.is-invalid .pc-input, .pc-field.is-invalid .pc-select, .pc-field.is-invalid .pc-textarea { border-color: var(--pc-error); }
.pc-input:disabled { background: var(--pc-gray-200); cursor: not-allowed; }

.pc-checkbox, .pc-radio { display: flex; gap: var(--pc-space-3); align-items: flex-start; font-size: var(--pc-text-sm); cursor: pointer; }
.pc-checkbox input, .pc-radio input, .pc-chip input { accent-color: var(--pc-black); width: 20px; height: 20px; margin: 0; flex: none; }

.pc-switch { display: inline-flex; align-items: center; gap: var(--pc-space-3); cursor: pointer; font-size: var(--pc-text-sm); }
.pc-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pc-switch__track { width: 44px; height: 26px; border-radius: var(--pc-radius-pill); background: var(--pc-gray-300); position: relative; transition: background var(--pc-duration); flex: none; }
.pc-switch__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--pc-white); box-shadow: var(--pc-shadow-sm); transition: transform var(--pc-duration) var(--pc-ease); }
.pc-switch input:checked + .pc-switch__track { background: var(--pc-black); }
.pc-switch input:checked + .pc-switch__track::after { transform: translateX(18px); background: var(--pc-yellow); }
.pc-switch input:focus-visible + .pc-switch__track { outline: 3px solid var(--pc-focus); outline-offset: 2px; }

.pc-chip-group { display: flex; flex-wrap: wrap; gap: var(--pc-space-2); }
.pc-chip {
	display: inline-flex; align-items: center; gap: var(--pc-space-2);
	min-height: 40px; padding: 0 var(--pc-space-4);
	border: 1.5px solid var(--pc-border); border-radius: var(--pc-radius-pill);
	background: var(--pc-surface); font-size: var(--pc-text-sm); font-weight: 500; cursor: pointer;
	transition: border-color var(--pc-duration), background var(--pc-duration);
}
.pc-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pc-chip:hover { border-color: var(--pc-black); }
.pc-chip:has(input:checked) { background: var(--pc-black); border-color: var(--pc-black); color: var(--pc-white); }
.pc-chip:has(input:focus-visible) { outline: 3px solid var(--pc-focus); outline-offset: 2px; }
.pc-chip--removable { padding-right: var(--pc-space-2); background: var(--pc-yellow-100); border-color: transparent; }
.pc-chip__remove { display: inline-grid; place-items: center; width: 24px; height: 24px; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.pc-chip__remove:hover { background: rgba(0, 0, 0, 0.08); }

.pc-search { position: relative; }
.pc-search .pc-input { padding-left: 2.75rem; }
.pc-search svg { position: absolute; left: 0.9rem; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; pointer-events: none; color: var(--pc-gray-600); }

.pc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Quantidade */
.pc-qty { align-self: flex-start; display: inline-flex; align-items: stretch; border: 1.5px solid var(--pc-border); border-radius: var(--pc-radius-sm); overflow: hidden; background: var(--pc-surface); }
.pc-qty button { width: 44px; border: 0; background: transparent; font-size: 1.25rem; cursor: pointer; }
.pc-qty button:hover { background: var(--pc-gray-200); }
.pc-qty input { width: 48px; border: 0; text-align: center; font-weight: 700; background: transparent; -moz-appearance: textfield; }
.pc-qty input::-webkit-outer-spin-button, .pc-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* ---------- Cards ---------- */
.pc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--pc-surface);
	border: var(--pc-border-w) solid var(--pc-border);
	border-radius: var(--pc-radius-md);
	overflow: hidden;
	transition: border-color var(--pc-duration) var(--pc-ease), box-shadow var(--pc-duration) var(--pc-ease), transform var(--pc-duration) var(--pc-ease);
}
.pc-card--interactive:hover { border-color: var(--pc-black); box-shadow: var(--pc-shadow-md); }
.pc-card__media { position: relative; aspect-ratio: 1 / 1; background: var(--pc-offwhite); overflow: hidden; }
.pc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms var(--pc-ease); }
.pc-card--interactive:hover .pc-card__media img { transform: scale(1.03); }
.pc-card__body { display: flex; flex-direction: column; gap: var(--pc-space-2); padding: var(--pc-space-4); flex: 1; }
.pc-card__title { margin: 0; font-family: var(--pc-font-body); font-stretch: normal; font-size: var(--pc-text-base); font-weight: 600; line-height: var(--pc-leading-snug); letter-spacing: 0; text-transform: none; }
.pc-card__title a { text-decoration: none; }
.pc-card__title a::after { content: ""; position: absolute; inset: 0; } /* área clicável total */
.pc-card__meta { font-size: var(--pc-text-xs); color: var(--pc-text-muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.pc-card__footer { padding: 0 var(--pc-space-4) var(--pc-space-4); }

/* Card de produto */
.pc-product-card { position: relative; }
.pc-product-card .pc-card__badges { position: absolute; top: var(--pc-space-2); left: var(--pc-space-2); z-index: 1; display: flex; flex-wrap: wrap; gap: var(--pc-space-1); }
.pc-product-card .pc-card__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.3em); font-size: var(--pc-text-sm); }
@media (min-width: 960px) { .pc-product-card .pc-card__title { font-size: var(--pc-text-base); } }
.pc-product-card .pc-card__footer { position: relative; z-index: 2; }
.pc-product-card__stock { font-size: var(--pc-text-xs); color: var(--pc-text-muted); }
.pc-product-card__stock::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--pc-success); vertical-align: 1px; }
.pc-product-card__stock--low::before { background: var(--pc-yellow-600); }
.pc-product-card__stock--backorder::before { background: var(--pc-gray-400); }

/* Placeholder visual de imagem */
.pc-placeholder {
	display: grid; place-items: center; width: 100%; height: 100%;
	background:
		repeating-linear-gradient(-45deg, transparent 0 14px, rgba(18, 18, 18, 0.035) 14px 28px),
		var(--pc-offwhite);
	color: var(--pc-gray-600); font-size: var(--pc-text-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-align: center;
}

/* Card de plano */
.pc-plan-card { position: relative; padding: var(--pc-space-6); gap: var(--pc-space-4); border-width: 2px; }
.pc-plan-card__name { margin: 0; font-size: var(--pc-text-2xl); text-transform: uppercase; }
.pc-plan-card__price { font-family: var(--pc-font-display); font-stretch: var(--pc-stretch-display); font-weight: 800; font-size: var(--pc-text-xl); }
.pc-plan-card--featured { border-color: var(--pc-black); box-shadow: var(--pc-shadow-md); }
.pc-plan-card--featured::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: var(--pc-yellow); }
.pc-plan-card--premium { background: var(--pc-black); color: var(--pc-white); border-color: var(--pc-black); --pc-text-muted: #B8B8B3; --pc-border: #333; --pc-focus: var(--pc-yellow); }

/* Card de benefício */
.pc-benefit-card.is-locked { opacity: 0.6; }

.pc-check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--pc-space-2); }
.pc-check-list li { position: relative; padding-left: 1.75rem; }
.pc-check-list li::before {
	content: ""; position: absolute; left: 0; top: 0.2em; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--pc-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23121212' stroke-width='2.2'/%3E%3C/svg%3E") center / 75% no-repeat;
}

/* ---------- Preços ---------- */
.pc-price { display: flex; flex-direction: column; gap: 2px; }
.pc-price__public { font-size: var(--pc-text-xs); color: var(--pc-text-muted); }
.pc-price__public s { text-decoration-thickness: 1px; }
.pc-price__member { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--pc-space-2); font-family: var(--pc-font-display); font-stretch: var(--pc-stretch-display); font-size: var(--pc-text-lg); font-weight: 800; line-height: 1.1; }
.pc-price__label { font-size: var(--pc-text-2xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--pc-text-muted); }
.pc-price--lg .pc-price__member { font-size: var(--pc-text-3xl); }

.pc-member-prices { margin: var(--pc-space-4) 0; border: 1.5px solid var(--pc-black); border-radius: var(--pc-radius-md); overflow: hidden; background: var(--pc-surface); }
.pc-member-prices__header { display: flex; justify-content: space-between; align-items: center; padding: var(--pc-space-3) var(--pc-space-4); background: var(--pc-black); color: var(--pc-white); font-family: var(--pc-font-display); font-stretch: var(--pc-stretch-display); text-transform: uppercase; font-size: var(--pc-text-xs); letter-spacing: 0.08em; }
.pc-member-prices table { width: 100%; border-collapse: collapse; margin: 0; }
.pc-member-prices th, .pc-member-prices td { padding: var(--pc-space-3) var(--pc-space-4); border-top: 1px solid var(--pc-border); text-align: left; font-size: var(--pc-text-sm); }
.pc-member-prices td:nth-child(2) { font-weight: 800; }
.pc-member-prices tr.is-current { background: var(--pc-yellow-100); }

/* ---------- Filtros ---------- */
.pc-filter-bar { display: flex; flex-wrap: wrap; gap: var(--pc-space-3); align-items: center; justify-content: space-between; padding: var(--pc-space-3) 0; border-block: 1px solid var(--pc-border); margin-bottom: var(--pc-space-5); }
.pc-filter-bar__count { font-size: var(--pc-text-sm); color: var(--pc-text-muted); }
.pc-filter-bar .pc-select { width: auto; min-height: 40px; }
.pc-filter { border-bottom: 1px solid var(--pc-border); }
.pc-filter > summary {
	display: flex; justify-content: space-between; align-items: center; padding: var(--pc-space-4) 0;
	font-weight: 700; font-size: var(--pc-text-sm); text-transform: uppercase; letter-spacing: 0.06em; cursor: pointer; list-style: none;
}
.pc-filter > summary::-webkit-details-marker { display: none; }
.pc-filter > summary::after { content: "+"; font-size: 1.25rem; font-weight: 400; }
.pc-filter[open] > summary::after { content: "–"; }
.pc-filter__options { display: grid; gap: var(--pc-space-3); padding-bottom: var(--pc-space-4); }
.pc-filter__count { margin-left: auto; color: var(--pc-text-muted); font-size: var(--pc-text-xs); }
.pc-range { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--pc-space-2); align-items: center; }
.pc-active-filters { display: flex; flex-wrap: wrap; gap: var(--pc-space-2); margin-bottom: var(--pc-space-4); }

/* ---------- Navegação / menus ---------- */
.pc-nav { display: none; }
@media (min-width: 1024px) { .pc-nav { display: block; } }
.pc-nav ul { display: flex; gap: var(--pc-space-1); list-style: none; margin: 0; padding: 0; }
.pc-nav a { display: block; padding: var(--pc-space-2) var(--pc-space-3); border-radius: var(--pc-radius-sm); font-size: var(--pc-text-sm); font-weight: 600; text-decoration: none; }
.pc-nav a:hover, .pc-nav .current-menu-item > a { background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 -2px 0 var(--pc-yellow); }

.pc-tabs { display: flex; gap: var(--pc-space-1); overflow-x: auto; border-bottom: 1px solid var(--pc-border); scrollbar-width: none; }
.pc-tabs::-webkit-scrollbar { display: none; }
.pc-tab { flex: none; padding: var(--pc-space-3) var(--pc-space-4); border: 0; border-bottom: 3px solid transparent; background: none; font-weight: 600; font-size: var(--pc-text-sm); cursor: pointer; color: var(--pc-text-muted); text-decoration: none; }
.pc-tab[aria-selected="true"], .pc-tab.is-active { color: var(--pc-text); border-bottom-color: var(--pc-yellow); }
.pc-tab-panel[hidden] { display: none; }

.pc-breadcrumb { display: flex; flex-wrap: wrap; gap: var(--pc-space-2); list-style: none; padding: 0; margin: 0 0 var(--pc-space-4); font-size: var(--pc-text-xs); color: var(--pc-text-muted); }
.pc-breadcrumb li + li::before { content: "/"; margin-right: var(--pc-space-2); color: var(--pc-gray-400); }
.pc-breadcrumb a { text-decoration: none; }

.pc-category-pills { display: flex; gap: var(--pc-space-2); overflow-x: auto; padding-bottom: var(--pc-space-2); scrollbar-width: none; }
.pc-category-pills::-webkit-scrollbar { display: none; }
.pc-category-pills a { flex: none; padding: var(--pc-space-2) var(--pc-space-4); border-radius: var(--pc-radius-pill); border: 1.5px solid var(--pc-border); font-size: var(--pc-text-sm); font-weight: 600; text-decoration: none; background: var(--pc-surface); }
.pc-category-pills a:hover, .pc-category-pills a.is-active { border-color: var(--pc-black); background: var(--pc-black); color: var(--pc-white); }

/* Drawer (menu mobile e filtros) */
.pc-drawer { position: fixed; inset: 0; z-index: var(--pc-z-drawer); visibility: hidden; }
.pc-drawer.is-open { visibility: visible; }
.pc-drawer__overlay { position: absolute; inset: 0; background: rgba(18, 18, 18, 0.55); opacity: 0; transition: opacity var(--pc-duration) var(--pc-ease); }
.pc-drawer__panel { position: absolute; top: 0; bottom: 0; left: 0; width: min(88vw, 380px); display: flex; flex-direction: column; background: var(--pc-surface); color: var(--pc-text); transform: translateX(-100%); transition: transform 240ms var(--pc-ease); overflow-y: auto; }
.pc-drawer--right .pc-drawer__panel { left: auto; right: 0; transform: translateX(100%); }
.pc-drawer.is-open .pc-drawer__overlay { opacity: 1; }
.pc-drawer.is-open .pc-drawer__panel { transform: none; }
.pc-drawer__header { display: flex; align-items: center; justify-content: space-between; padding: var(--pc-space-4); border-bottom: 1px solid var(--pc-border); }
.pc-drawer__body { padding: var(--pc-space-4); flex: 1; }
.pc-drawer__footer { padding: var(--pc-space-4); border-top: 1px solid var(--pc-border); }
.pc-drawer-menu { list-style: none; margin: 0; padding: 0; }
.pc-drawer-menu a { display: flex; justify-content: space-between; padding: var(--pc-space-4) 0; border-bottom: 1px solid var(--pc-border); font-weight: 700; text-decoration: none; font-family: var(--pc-font-display); font-stretch: var(--pc-stretch-display); text-transform: uppercase; font-size: var(--pc-text-sm); letter-spacing: 0.04em; }
.pc-drawer-menu .sub-menu { list-style: none; padding-left: var(--pc-space-4); margin: 0; }
.pc-drawer-menu .sub-menu a { font-family: var(--pc-font-body); text-transform: none; font-weight: 500; }
body.pc-no-scroll { overflow: hidden; }

/* ---------- Modais (<dialog>) ---------- */
.pc-modal {
	width: min(560px, calc(100vw - 2 * var(--pc-gutter)));
	max-height: calc(100dvh - 2rem);
	padding: 0; border: 0; border-radius: var(--pc-radius-lg);
	background: var(--pc-surface); color: var(--pc-text); box-shadow: var(--pc-shadow-lg);
}
.pc-modal::backdrop { background: rgba(18, 18, 18, 0.6); }
.pc-modal[open] { animation: pc-pop 200ms var(--pc-ease); }
@keyframes pc-pop { from { opacity: 0; transform: translateY(12px) scale(0.98); } }
.pc-modal__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--pc-space-4); padding: var(--pc-space-5) var(--pc-space-5) 0; }
.pc-modal__title { margin: 0; font-size: var(--pc-text-xl); }
.pc-modal__body { padding: var(--pc-space-4) var(--pc-space-5); }
.pc-modal__footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--pc-space-2); padding: 0 var(--pc-space-5) var(--pc-space-5); }
@media (max-width: 599px) {
	.pc-modal { margin: auto 0 0; width: 100vw; max-width: 100vw; border-radius: var(--pc-radius-lg) var(--pc-radius-lg) 0 0; } /* bottom sheet */
}

/* ---------- Alertas e estados ---------- */
.pc-alert { display: flex; flex-wrap: wrap; gap: var(--pc-space-2); align-items: center; padding: var(--pc-space-3) var(--pc-space-4); border-radius: var(--pc-radius-sm); border-left: 4px solid currentColor; font-size: var(--pc-text-sm); margin-bottom: var(--pc-space-4); }
.pc-alert--info { background: var(--pc-info-bg); color: var(--pc-info); }
.pc-alert--success { background: var(--pc-success-bg); color: var(--pc-success); }
.pc-alert--error { background: var(--pc-error-bg); color: var(--pc-error); }
.pc-alert--demo { background: var(--pc-yellow-100); color: var(--pc-black); border-left-color: var(--pc-yellow); }

.pc-empty-state { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pc-space-3); padding: var(--pc-space-8); border: 1.5px dashed var(--pc-border); border-radius: var(--pc-radius-md); background: var(--pc-surface); }
.pc-empty-state__title { margin: 0; font-size: var(--pc-text-xl); }

.pc-stat { display: flex; flex-direction: column; gap: var(--pc-space-1); padding: var(--pc-space-5); border-radius: var(--pc-radius-md); background: var(--pc-black); color: var(--pc-white); }
.pc-stat__label { font-size: var(--pc-text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: #B8B8B3; }
.pc-stat__value { font-family: var(--pc-font-display); font-stretch: var(--pc-stretch-display); font-weight: 900; font-size: var(--pc-text-3xl); color: var(--pc-yellow); line-height: 1.1; }
.pc-stat__meta { font-size: var(--pc-text-sm); color: #B8B8B3; }

.pc-data-list { display: grid; gap: var(--pc-space-3); margin: 0 0 var(--pc-space-4); }
@media (min-width: 600px) { .pc-data-list { grid-template-columns: repeat(3, 1fr); } }
.pc-data-list div { padding: var(--pc-space-3) var(--pc-space-4); border: 1px solid var(--pc-border); border-radius: var(--pc-radius-sm); background: var(--pc-surface); }
.pc-data-list dt { font-size: var(--pc-text-xs); color: var(--pc-text-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.pc-data-list dd { margin: 0; font-weight: 700; }

.pc-list { list-style: none; padding: 0; margin: 0 0 var(--pc-space-4); border-top: 1px solid var(--pc-border); }
.pc-list__item { display: flex; flex-wrap: wrap; gap: var(--pc-space-2) var(--pc-space-3); align-items: center; justify-content: space-between; padding: var(--pc-space-3) 0; border-bottom: 1px solid var(--pc-border); }

.pc-skeleton { background: linear-gradient(90deg, var(--pc-gray-200) 25%, var(--pc-offwhite) 37%, var(--pc-gray-200) 63%); background-size: 400% 100%; animation: pc-shimmer 1.4s ease infinite; border-radius: var(--pc-radius-xs); }
@keyframes pc-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* ---------- Carteirinha digital ---------- */
.pc-member-card {
	position: relative; display: flex; flex-direction: column; gap: var(--pc-space-4);
	width: 100%; max-width: 420px; aspect-ratio: 1.586; padding: var(--pc-space-5);
	border-radius: var(--pc-radius-lg); background: var(--pc-black); color: var(--pc-white);
	overflow: hidden; box-shadow: var(--pc-shadow-lg); margin-bottom: var(--pc-space-4);
}
.pc-member-card::after { /* faixa de pista */
	content: ""; position: absolute; right: -30px; bottom: -30px; width: 180px; height: 180px; border-radius: 50%;
	border: 22px solid var(--pc-yellow); opacity: 0.9;
}
.pc-member-card--yellow { background: var(--pc-yellow); color: var(--pc-black); }
.pc-member-card--yellow::after { border-color: var(--pc-black); }
.pc-member-card--gray { background: var(--pc-gray-900); }
.pc-member-card__top { display: flex; justify-content: space-between; align-items: center; }
.pc-member-card__brand { font-family: var(--pc-font-display); font-stretch: 125%; font-weight: 900; letter-spacing: 0.02em; }
.pc-member-card__plan { font-family: var(--pc-font-display); font-stretch: var(--pc-stretch-display); font-weight: 800; text-transform: uppercase; font-size: var(--pc-text-xs); letter-spacing: 0.12em; padding: 0.25rem 0.6rem; border: 1.5px solid currentColor; border-radius: var(--pc-radius-pill); }
.pc-member-card__name { margin-top: auto; font-size: var(--pc-text-xl); font-weight: 700; position: relative; z-index: 1; }
.pc-member-card__meta { display: flex; flex-wrap: wrap; gap: var(--pc-space-4); font-size: var(--pc-text-xs); opacity: 0.85; position: relative; z-index: 1; }
.pc-member-card__demo { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-12deg); padding: 0.3rem 0.8rem; border: 2px solid currentColor; font-weight: 900; font-size: var(--pc-text-2xs); letter-spacing: 0.12em; opacity: 0.55; white-space: nowrap; z-index: 2; }

/* ---------- Faixa DEMO (vinda do plugin) ---------- */
.pc-demo-banner { display: flex; gap: var(--pc-space-2); align-items: center; justify-content: center; padding: 0.4rem var(--pc-gutter); background: var(--pc-yellow); color: var(--pc-black); font-size: var(--pc-text-xs); font-weight: 600; line-height: 1.35; text-align: center; }
.pc-demo-banner__tag { flex: none; padding: 0.1rem 0.45rem; border-radius: var(--pc-radius-xs); background: var(--pc-black); color: var(--pc-yellow); font-family: var(--pc-font-display); font-stretch: var(--pc-stretch-display); font-weight: 900; font-size: var(--pc-text-2xs); letter-spacing: 0.1em; }
.pc-demo-notice { display: flex; flex-wrap: wrap; gap: var(--pc-space-2); align-items: center; padding: var(--pc-space-3) var(--pc-space-4); margin: 0 0 var(--pc-space-4); border-radius: var(--pc-radius-sm); background: var(--pc-yellow-100); border-left: 4px solid var(--pc-yellow); font-size: var(--pc-text-sm); }
.pc-surface-dark .pc-badge--plan-premium { background: var(--pc-yellow); color: var(--pc-black); }
