/* Painel Sofisticado para WooCommerce - Base (paleta, layout tela cheia, sidebar, cards) */

:root {
	--psw-primary: #e11d2e;
	--psw-primary-dark: #b91c1c;
	--psw-primary-light: #ef4444;
	--psw-bg-page: #fafafa;
	--psw-bg-card: #ffffff;
	--psw-bg-soft: #fdecec;
	--psw-border: #ececec;
	--psw-text: #0d0d0d;
	--psw-text-muted: #6b6f80;
	--psw-radius: 14px;
	--psw-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

/* ===== Tela cheia: sem header/menu/rodapé do tema ===== */
body.psw-fullcanvas {
	background: var(--psw-bg-page);
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--psw-text);
}

body.psw-fullcanvas * ,
body.psw-fullcanvas *::before,
body.psw-fullcanvas *::after {
	box-sizing: border-box;
}

/* Barra superior: logo + botão "voltar para a loja" */
.psw-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 40px;
	background: #ffffff;
	border-bottom: 1px solid var(--psw-border);
}

.psw-topbar-logo img {
	max-height: 40px;
	width: auto;
	display: block;
}

.psw-topbar-sitename {
	font-size: 19px;
	font-weight: 900;
	color: var(--psw-text);
	text-decoration: none;
	letter-spacing: -0.01em;
}

.psw-back-to-store {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	border-radius: 999px;
	border: 1.5px solid var(--psw-primary);
	color: var(--psw-primary);
	background: #fff;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}

.psw-back-to-store:hover {
	background: var(--psw-primary);
	color: #fff !important;
}

.psw-back-to-store .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

/* Links da loja (Loja / Carrinho / Finalizar compra) para visitantes deslogados */
.psw-topbar-nav {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-left: auto;
}

.psw-topbar-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 14px;
	border-radius: 999px;
	color: var(--psw-text);
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}

.psw-topbar-link .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.psw-topbar-link:hover {
	background: var(--psw-bg-soft);
	color: var(--psw-primary);
}

.psw-topbar-link--checkout {
	background: var(--psw-primary);
	color: #fff;
}

.psw-topbar-link--checkout:hover {
	background: var(--psw-primary-dark);
	color: #fff;
}

.psw-topbar-link-count {
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--psw-primary);
	color: #fff;
	font-size: 11px;
	line-height: 18px;
	text-align: center;
}

@media (max-width: 700px) {
	.psw-topbar {
		flex-wrap: wrap;
		padding: 14px 16px;
	}

	.psw-topbar-nav {
		order: 3;
		width: 100%;
		margin-left: 0;
		justify-content: space-between;
	}

	.psw-topbar-link {
		padding: 8px 10px;
	}
}

.psw-fullcanvas-main {
	padding: 32px 40px 60px;
	width: 100%;
}

/* ===== Layout geral: sidebar + conteúdo lado a lado, 100% da largura ===== */
.psw-account-layout {
	display: flex;
	align-items: flex-start;
	gap: 28px;
	width: 100%;
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--psw-text);
}

.psw-account-layout *,
.psw-account-layout *::before,
.psw-account-layout *::after {
	box-sizing: border-box;
}

.psw-account-layout .woocommerce-MyAccount-content {
	flex: 1;
	min-width: 0;
}

/* ===== Sidebar (menu do painel) - clean, com detalhes em vermelho ===== */
.psw-sidebar {
	flex: 0 0 270px;
	background: var(--psw-bg-card);
	border: 1px solid var(--psw-border);
	border-radius: var(--psw-radius);
	box-shadow: var(--psw-shadow);
	padding: 26px 0;
	position: sticky;
	top: 32px;
	color: var(--psw-text);
}

.psw-sidebar-profile {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0 20px 20px;
	margin-bottom: 10px;
	border-bottom: 1px solid var(--psw-border);
}

.psw-sidebar-avatar img {
	border-radius: 50%;
	border: 3px solid var(--psw-bg-soft);
	display: block;
}

.psw-sidebar-identity {
	margin-top: 10px;
}

.psw-sidebar-name {
	font-weight: 900;
	font-size: 15px;
	line-height: 1.3;
	word-break: break-word;
	color: var(--psw-text);
}

.psw-sidebar-badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin-top: 10px;
}

.psw-role-badge {
	font-size: 10.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--psw-bg-soft);
	color: var(--psw-text-muted);
	white-space: nowrap;
}

.psw-role-admin {
	background: var(--psw-primary);
	color: #fff;
}

.psw-role-client {
	background: #f0f0f0;
	color: var(--psw-text);
}

.psw-tier-mini.psw-tier-bronze   { background: #b08d57; color: #fff; }
.psw-tier-mini.psw-tier-prata    { background: #c7cdd6; color: #2a2e38; }
.psw-tier-mini.psw-tier-ouro     { background: #f4c150; color: #4a3300; }
.psw-tier-mini.psw-tier-diamante { background: #dbeafe; color: #1e3a8a; }

.psw-sidebar-menu {
	list-style: none;
	margin: 0;
	padding: 0 12px;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.psw-sidebar-menu li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 14px;
	border-radius: 10px;
	color: var(--psw-text);
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	transition: background 0.15s ease, color 0.15s ease;
}

.psw-sidebar-menu li a .dashicons {
	color: var(--psw-text-muted);
	transition: color 0.15s ease;
}

.psw-sidebar-menu li a:hover {
	background: var(--psw-bg-soft);
	color: var(--psw-primary);
}

.psw-sidebar-menu li a:hover .dashicons {
	color: var(--psw-primary);
}

.psw-sidebar-menu li.is-active a {
	background: var(--psw-primary);
	color: #fff;
}

.psw-sidebar-menu li.is-active a .dashicons {
	color: #fff;
}

.psw-sidebar-menu li a .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.psw-sidebar-extra {
	margin-top: 8px;
	padding-top: 10px;
	border-top: 1px dashed var(--psw-border);
}

.psw-sidebar-extra a {
	color: var(--psw-primary) !important;
}

.psw-sidebar-extra a .dashicons {
	color: var(--psw-primary) !important;
}

/* ===== Card genérico usado nas subpáginas (Pedidos, Downloads, Endereços...) ===== */
.psw-page-card {
	background: var(--psw-bg-card);
	border: 1px solid var(--psw-border);
	border-radius: var(--psw-radius);
	box-shadow: var(--psw-shadow);
	padding: 30px;
	width: 100%;
}

.psw-page-header {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--psw-border);
}

.psw-page-header .dashicons {
	width: 38px;
	height: 38px;
	font-size: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--psw-bg-soft);
	color: var(--psw-primary);
	border-radius: 10px;
	flex-shrink: 0;
}

.psw-page-header h2 {
	margin: 0;
	font-size: 20px;
	font-weight: 900;
	color: var(--psw-text);
}

/* Skin dos elementos padrão do WooCommerce dentro do card */
.psw-page-card table.shop_table,
.psw-page-card table.my_account_orders,
.psw-page-card table.my_account_payment_methods {
	width: 100%;
	border-collapse: collapse;
	border: none;
	font-size: 14px;
}

.psw-page-card table.shop_table th {
	text-align: left;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--psw-text-muted);
	padding: 10px 12px;
	border-bottom: 1px solid var(--psw-border);
	background: transparent;
}

.psw-page-card table.shop_table td {
	padding: 12px;
	border-bottom: 1px solid var(--psw-border);
	vertical-align: middle;
	color: var(--psw-text);
}

.psw-page-card table.shop_table tr:last-child td {
	border-bottom: none;
}

.psw-page-card table.shop_table .button {
	font-size: 12px;
	padding: 6px 12px;
}

/* Endereços */
.psw-page-card .woocommerce-Addresses {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.psw-page-card .woocommerce-Address {
	flex: 1 1 260px;
	background: var(--psw-bg-page);
	border: 1px solid var(--psw-border);
	border-radius: 12px;
	padding: 18px;
}

.psw-page-card .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
	gap: 10px;
}

.psw-page-card .woocommerce-Address-title h2,
.psw-page-card .woocommerce-Address-title h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 800;
	color: var(--psw-text);
}

.psw-page-card .woocommerce-Address-title .edit {
	font-size: 12px;
	font-weight: 700;
	color: #fff !important;
	background: var(--psw-primary);
	padding: 5px 12px;
	border-radius: 8px;
	text-decoration: none;
	white-space: nowrap;
}

.psw-page-card .woocommerce-Address address {
	font-size: 14px;
	line-height: 1.6;
	color: var(--psw-text-muted);
	font-style: normal;
}

/* Formulários (Detalhes da conta, Endereços) */
.psw-page-card form .form-row {
	margin-bottom: 14px;
}

.psw-page-card form label {
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 5px;
	display: block;
	color: var(--psw-text);
}

.psw-page-card form .input-text,
.psw-page-card form select,
.psw-page-card form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--psw-border);
	border-radius: 8px;
	font-size: 14px;
	background: #fff;
	color: var(--psw-text);
}

.psw-page-card form .input-text:focus,
.psw-page-card form select:focus,
.psw-page-card form textarea:focus {
	outline: none;
	border-color: var(--psw-primary);
}

.psw-page-card form .button,
.psw-page-card a.button,
.psw-page-card button.button {
	background: var(--psw-primary);
	color: #fff !important;
	border: none;
	padding: 11px 22px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
}

.psw-page-card form .button:hover,
.psw-page-card a.button:hover,
.psw-page-card button.button:hover {
	background: var(--psw-primary-dark);
}

.psw-page-card .woocommerce-message,
.psw-page-card .woocommerce-error,
.psw-page-card .woocommerce-info {
	border-radius: 10px;
	padding: 14px 18px;
	list-style: none;
	margin: 0 0 18px;
	border-left: 4px solid var(--psw-primary);
	background: var(--psw-bg-soft);
	color: var(--psw-text);
}

/* ===== Detalhe sofisticado: friso colorido por seção no topo do card ===== */
.psw-page-card {
	position: relative;
	overflow: hidden;
	animation: psw-fade-in 0.35s ease both;
}

.psw-page-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--psw-primary), var(--psw-primary-light));
}

@keyframes psw-fade-in {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

.psw-page-header .dashicons {
	transition: transform 0.2s ease;
}

.psw-page-card:hover .psw-page-header .dashicons {
	transform: scale(1.08) rotate(-4deg);
}

/* Zebra + hover sutil nas tabelas, para dar mais acabamento */
.psw-page-card table.shop_table tbody tr:hover td {
	background: var(--psw-bg-soft);
}

.psw-page-card table.shop_table tbody tr td {
	transition: background 0.15s ease;
}

/* Cards de endereço com leve elevação ao passar o mouse */
.psw-page-card .woocommerce-Address {
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.psw-page-card .woocommerce-Address:hover {
	box-shadow: var(--psw-shadow);
	transform: translateY(-2px);
}

/* ===== "Meus Favoritos" / Wishlist — grid estilo Pinterest =====
 * Um produto ao lado do outro; quando não cabe mais na linha,
 * o próximo produto desce automaticamente (sem precisar de JS).
 * Os seletores abaixo cobrem os formatos mais comuns usados por
 * plugins de lista de desejos/favoritos para WooCommerce. Se o seu
 * plugin usar uma marcação diferente, me diga o nome dele (ou me
 * mande o HTML gerado nessa página) que eu ajusto o seletor exato.
 */
.psw-page-card[class*="wishlist"] ul,
.psw-page-card[class*="wishlist"] .products,
.psw-page-card[class*="favorit"] ul,
.psw-page-card[class*="favorit"] .products,
.psw-page-card[class*="desejo"] ul,
.psw-page-card[class*="desejo"] .products,
.psw-page-card .psw-grid,
.psw-page-card ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 18px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.psw-page-card[class*="wishlist"] ul > li,
.psw-page-card[class*="wishlist"] .products > li,
.psw-page-card[class*="favorit"] ul > li,
.psw-page-card[class*="favorit"] .products > li,
.psw-page-card .psw-grid > *,
.psw-page-card ul.products > li {
	background: var(--psw-bg-page);
	border: 1px solid var(--psw-border);
	border-radius: 12px;
	padding: 14px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	list-style: none;
}

.psw-page-card[class*="wishlist"] ul > li:hover,
.psw-page-card[class*="favorit"] ul > li:hover,
.psw-page-card ul.products > li:hover {
	box-shadow: var(--psw-shadow);
	transform: translateY(-3px);
}

.psw-page-card[class*="wishlist"] img,
.psw-page-card[class*="favorit"] img,
.psw-page-card ul.products img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	display: block;
	margin-bottom: 10px;
}

/* Fallback: se o plugin de favoritos renderizar em TABELA em vez de lista,
 * transforma cada linha em um "cartão" dentro do mesmo grid Pinterest. */
.psw-page-card[class*="wishlist"] table.shop_table,
.psw-page-card[class*="favorit"] table.shop_table {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 18px;
	border: none;
}

.psw-page-card[class*="wishlist"] table.shop_table thead,
.psw-page-card[class*="favorit"] table.shop_table thead {
	display: none;
}

.psw-page-card[class*="wishlist"] table.shop_table tbody,
.psw-page-card[class*="favorit"] table.shop_table tbody,
.psw-page-card[class*="wishlist"] table.shop_table tr,
.psw-page-card[class*="favorit"] table.shop_table tr {
	display: contents;
}

.psw-page-card[class*="wishlist"] table.shop_table td,
.psw-page-card[class*="favorit"] table.shop_table td {
	display: block;
	border: none;
}

.psw-page-card[class*="wishlist"] table.shop_table tr,
.psw-page-card[class*="favorit"] table.shop_table tr {
	background: var(--psw-bg-page);
	border: 1px solid var(--psw-border);
	border-radius: 12px;
}

@media (max-width: 500px) {
	.psw-page-card[class*="wishlist"] ul,
	.psw-page-card[class*="wishlist"] .products,
	.psw-page-card[class*="favorit"] ul,
	.psw-page-card[class*="favorit"] .products,
	.psw-page-card ul.products {
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
		gap: 12px;
	}
}

/* ===== Responsivo ===== */
@media (max-width: 900px) {
	.psw-topbar {
		padding: 14px 20px;
	}

	.psw-fullcanvas-main {
		padding: 20px 20px 40px;
	}

	.psw-account-layout {
		flex-direction: column;
	}

	.psw-sidebar {
		width: 100%;
		position: relative;
		top: 0;
		padding: 16px 0;
	}

	.psw-sidebar-profile {
		flex-direction: row;
		text-align: left;
		padding: 0 16px 14px;
	}

	.psw-sidebar-avatar img {
		width: 44px;
		height: 44px;
	}

	.psw-sidebar-identity {
		margin-top: 0;
		margin-left: 12px;
	}

	.psw-sidebar-badges {
		justify-content: flex-start;
	}

	.psw-sidebar-menu {
		flex-direction: row;
		overflow-x: auto;
		padding: 0 12px 4px;
	}

	.psw-sidebar-menu li a {
		white-space: nowrap;
	}

	.psw-sidebar-extra {
		border-top: none;
		margin-top: 0;
		padding-top: 0;
	}

	.psw-back-to-store span.psw-back-label {
		display: none;
	}
}

@media (max-width: 500px) {
	.psw-page-card {
		padding: 18px;
	}

	.psw-page-header h2 {
		font-size: 17px;
	}
}

/* ===== Tela de login / cadastro (quando o usuário ainda não está logado) ===== */
body.psw-fullcanvas #customer_login {
	max-width: 860px;
	margin: 48px auto 0;
	gap: 24px;
}

body.psw-fullcanvas #customer_login .u-column1,
body.psw-fullcanvas #customer_login .u-column2 {
	background: var(--psw-bg-card);
	border: 1px solid var(--psw-border);
	border-radius: var(--psw-radius);
	box-shadow: var(--psw-shadow);
	padding: 32px;
}

body.psw-fullcanvas #customer_login h2 {
	margin-top: 0;
	font-weight: 900;
	color: var(--psw-text);
	font-size: 19px;
}

body.psw-fullcanvas #customer_login .input-text {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--psw-border);
	border-radius: 8px;
	margin-bottom: 6px;
}

body.psw-fullcanvas #customer_login .button {
	background: var(--psw-primary);
	color: #fff !important;
	border: none;
	padding: 12px 24px;
	border-radius: 8px;
	font-weight: 700;
	cursor: pointer;
}

body.psw-fullcanvas #customer_login .button:hover {
	background: var(--psw-primary-dark);
}

body.psw-fullcanvas form.woocommerce-ResetPassword {
	max-width: 480px;
	margin: 48px auto 0;
	background: var(--psw-bg-card);
	border: 1px solid var(--psw-border);
	border-radius: var(--psw-radius);
	box-shadow: var(--psw-shadow);
	padding: 32px;
}

body.psw-fullcanvas form.woocommerce-ResetPassword .input-text {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--psw-border);
	border-radius: 8px;
}

body.psw-fullcanvas form.woocommerce-ResetPassword .button {
	background: var(--psw-primary);
	color: #fff !important;
	border: none;
	padding: 12px 24px;
	border-radius: 8px;
	font-weight: 700;
}
