/* ==========================================================================
   DASHBOARD DO CLIENTE B2B (CSS)
   ========================================================================== */

/* 1. Títulos e Abas */
.pe-dash-titulo { color: #2271b1; margin-bottom: 5px; }
.pe-dash-subtitulo { color: #666; margin-bottom: 20px; }

/* 2. Cards de Métricas (A Minha Gaveta) */
.pe-cards-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin-bottom: 30px; }
.pe-card-metric { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); border-left: 4px solid #2271b1; }
.pe-card-metric h4 { margin: 0 0 8px 0; font-size: 12px; color: #888; text-transform: uppercase; letter-spacing: 0.5px; }
.pe-card-metric span { font-size: 24px; font-weight: bold; color: #333; }
.pe-card-negociacao { border-left-color: #ffba00; }
.pe-card-negociacao span { color: #d09600; }
.pe-card-lucro { border-left-color: #46b450; background: #f2fbf3; }
.pe-card-lucro h4 { color: #28a745; }
.pe-card-lucro span { color: #155724; }

/* 3. Tabela B2B & Etiquetas */
.pe-tabela-projetos { font-size: 14px; box-shadow: 0 2px 10px rgba(0,0,0,0.02); }
.pe-select-estado { padding: 4px 8px; border-radius: 4px; border: 1px solid #ccc; font-size: 12px; font-weight: bold; cursor: pointer; outline: none; }
.pe-estado-negociacao { background-color: #fff8e5; color: #d09600; border-color: #ffba00; }
.pe-estado-adjudicado { background-color: #e7f5e9; color: #155724; border-color: #46b450; }
.pe-estado-concluido { background-color: #d1e7dd; color: #0f5132; border-color: #198754; }
.pe-estado-perdido { background-color: #f8d7da; color: #842029; border-color: #dc3545; }
.pe-estado-suspenso { background-color: #f8f9fa; color: #6c757d; border-color: #adb5bd; }

/* 4. Botões e Avisos Rápidos */
.pe-aviso-atraso { background: #fcf0f1; color: #d63638; padding: 2px 5px; border-radius: 3px; font-size: 10px; font-weight: bold; display: inline-block; margin-top: 5px; }
.pe-btn { padding: 5px 10px !important; font-size: 12px !important; border-radius: 4px !important; border: none !important; cursor: pointer; display: inline-block; text-decoration: none; }
.pe-btn-pdf { background: #2271b1 !important; color: #fff !important; }
.pe-btn-enc { background: #46b450 !important; color: #fff !important; }
.pe-btn-chat { background: #6f42c1 !important; color: #fff !important; }

/* 5. A Janela Modal do Chat */
.pe-modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 999999; align-items: center; justify-content: center; backdrop-filter: blur(2px); }
.pe-modal-box { background: #fff; width: 90%; max-width: 450px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.5); display: flex; flex-direction: column; overflow: hidden; }
.pe-modal-topo { background: #2271b1; color: #fff; padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; }
.pe-modal-topo h3 { margin: 0; color: #fff; font-size: 16px; font-weight: bold; }
.pe-modal-fechar { background: none; border: none; color: #fff; font-size: 24px; cursor: pointer; padding: 0; line-height: 1; }

/* 6. Histórico e Balões do Chat */
.pe-modal-mensagens { padding: 20px; flex: 1; background: #e5ddd5; display: flex; flex-direction: column; height: 350px; overflow-y: auto; }
.pe-modal-mensagens::-webkit-scrollbar { width: 6px; }
.pe-modal-mensagens::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }
.pe-chat-row { display: flex; width: 100%; margin-bottom: 12px; }
.pe-chat-row.cliente { justify-content: flex-end; }
.pe-chat-row.admin { justify-content: flex-start; }
.pe-chat-bubble { padding: 10px 14px; border-radius: 8px; max-width: 85%; box-shadow: 0 1px 2px rgba(0,0,0,0.1); position: relative; color: #333; }
.pe-chat-bubble.cliente { background: #dcf8c6; }
.pe-chat-bubble.admin { background: #fff; }
.pe-chat-sender { font-size: 11px; color: #666; font-weight: bold; margin-bottom: 4px; }
.pe-chat-text { font-size: 14px; line-height: 1.4; }
.pe-chat-time { font-size: 10px; color: #999; text-align: right; margin-top: 5px; }

/* 7. Footer do Chat (Inputs e Botões) */
.pe-modal-aviso-fechado { display: none; text-align: center; padding: 15px; background: #f8d7da; border-top: 1px solid #ddd; }
.pe-modal-aviso-fechado p { color: #842029; font-weight: bold; margin: 0 0 10px 0; }
.pe-modal-area-input { padding: 15px; border-top: 1px solid #ddd; background: #f0f0f0; display: flex; gap: 10px; align-items: center; }
.pe-modal-area-input input { flex: 1; padding: 10px 15px; border: 1px solid #ccc; border-radius: 20px; outline: none; font-size: 14px; }
.pe-btn-enviar { background: #46b450 !important; color: #fff !important; border: none; border-radius: 20px; padding: 8px 20px !important; font-weight: bold; }
.pe-btn-reabrir { border-radius: 20px !important; }

/* 8. Lista de Notificações */
.pe-notificacao-item { padding: 15px; margin-bottom: 10px; border-radius: 4px; border: 1px solid #ccc; }
.pe-notificacao-lida { background: #f9f9f9; border-left: 4px solid #ccc; font-weight: normal; }
.pe-notificacao-nova { background: #fff; border-left: 4px solid #2271b1; font-weight: bold; }
.pe-notificacao-data { color: #999; display: block; margin-bottom: 5px; font-size: 12px; }

/* ==========================================================================
   9. ASSISTENTE IA (NOVO)
   ========================================================================== */
.pe-ia-container { background: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); margin-bottom: 30px; border: 1px solid #e5e5e5; }
.pe-ia-input-box { display: flex; flex-direction: column; gap: 15px; }
.pe-ia-textarea { width: 100%; height: 100px; padding: 15px; border: 2px solid #ccc; border-radius: 8px; font-size: 14px; font-family: inherit; resize: vertical; outline: none; transition: border-color 0.3s; }
.pe-ia-textarea:focus { border-color: #6f42c1; }
.pe-btn-ia { background: #6f42c1 !important; color: #fff !important; border: none; border-radius: 8px; padding: 12px 25px !important; font-weight: bold; font-size: 15px !important; cursor: pointer; align-self: flex-start; }
.pe-btn-ia:hover { background: #59339d !important; }

.pe-ia-resultados { display: none; margin-top: 30px; border-top: 2px dashed #eee; padding-top: 30px; }
.pe-ia-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pe-ia-box { padding: 20px; border-radius: 8px; }
.pe-ia-temos { background: #f2fbf3; border-left: 4px solid #46b450; }
.pe-ia-nao-temos { background: #fcf0f1; border-left: 4px solid #d63638; }
.pe-ia-box h4 { margin: 0 0 15px 0; font-size: 16px; }
.pe-ia-temos h4 { color: #155724; }
.pe-ia-nao-temos h4 { color: #842029; }
.pe-ia-lista { list-style: none; padding: 0; margin: 0; }
.pe-ia-lista li { padding: 10px; background: #fff; margin-bottom: 8px; border-radius: 4px; border: 1px solid #ddd; font-size: 13px; }
.pe-ia-lista li strong { display: block; font-size: 14px; color: #333; }
.pe-ia-lista li small { color: #666; display: block; margin-top: 4px; }

/* ==========================================================================
   DASHBOARD DO CLIENTE B2B (CSS) - MODO ESCURO & ESTRUTURA
   ========================================================================== */

/* 1. LIMPEZA DO TEMA DE BLOCOS (TWENTY TWENTY-FIVE) */
.woocommerce-account .wp-site-blocks > header, 
.woocommerce-account header.wp-block-template-part, 
.woocommerce-account .wp-site-blocks > footer, 
.woocommerce-account footer.wp-block-template-part { 
    display: none !important; visibility: hidden !important; height: 0 !important; margin:0!important; padding:0!important; overflow: hidden !important;
}
.woocommerce-account h1.entry-title, .woocommerce-account h1.page-title, .woocommerce-account h1.wp-block-post-title, .woocommerce-account h1.wp-block-heading { display: none !important; }
.woocommerce-account .wp-site-blocks, .woocommerce-account .site-content { padding-top: 0 !important; margin-top: 0 !important; }
.woocommerce-MyAccount-content > p:first-of-type, .woocommerce-MyAccount-content > p:nth-of-type(2), .woocommerce-edit-address-link { display: none !important; }

/* 2. FUNDO GLOBAL DA PÁGINA */
body.woocommerce-account, .woocommerce-account .site, .woocommerce-account #page, .woocommerce-account .wp-site-blocks { 
    background-color: var(--bg-body) !important; 
    color: var(--text-main) !important; 
}

/* 3. O GRANDE ALINHAMENTO LADO A LADO (Flexbox na classe certa!) */
.woocommerce-account .woocommerce { 
    max-width: 1400px !important; 
    margin: 40px auto !important; 
    padding: 0 20px !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 40px !important;
    align-items: flex-start !important;
}

/* Tamanho do Menu Lateral */
.woocommerce-MyAccount-navigation { 
    flex: 0 0 280px !important; /* Força a largura exata */
    width: 280px !important; 
    background: var(--bg-card) !important; 
    padding: 20px !important; 
    border-radius: 12px !important; 
    border: 1px solid var(--border-color) !important; 
}

/* Tamanho do Conteúdo Principal (Formulário) */
.woocommerce-MyAccount-content { 
    flex: 1 !important; /* Ocupa o resto do espaço */
    min-width: 0 !important; 
}

/* Responsividade: Empilhar no telemóvel */
@media (max-width: 800px) {
    .woocommerce-account .woocommerce { 
        flex-direction: column !important; 
        gap: 20px !important;
        margin: 20px auto !important;
    }
    .woocommerce-MyAccount-navigation { 
        flex: 1 1 100% !important; 
        width: 100% !important;
    }
    /* Conteúdo ocupa também 100% quando sidebar colapsa */
    .woocommerce-MyAccount-content {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* 4. ESTILO DO MENU LATERAL */
.woocommerce-MyAccount-navigation ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--border-color) !important; padding: 12px 10px !important; }
.woocommerce-MyAccount-navigation li a { color: var(--text-muted) !important; font-weight: 600 !important; text-decoration: none !important; display: block; }
.woocommerce-MyAccount-navigation li.is-active { background: var(--bg-card-alt) !important; border-radius: 8px; border-bottom: none !important; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--brand-primary) !important; font-weight: 800 !important; }

/* ==========================================================================
   ÍCONES DO MENU — SVG Sólido com Fade
   ========================================================================== */

/* Remove emojis existentes */
.woocommerce-MyAccount-navigation-link a img.emoji {
    display: none !important;
}

/* Ícone base */
.woocommerce-MyAccount-navigation-link a::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-right: 10px;
    vertical-align: middle;
    flex-shrink: 0;
    opacity: 0.5;
    transition: opacity 0.2s ease;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

/* Hover e activo — brilha */
.woocommerce-MyAccount-navigation-link a:hover::before,
.woocommerce-MyAccount-navigation-link.is-active a::before {
    opacity: 1;
}

/* Perfil */
.woocommerce-MyAccount-navigation-link--dashboard a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'%3E%3Cpath d='M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z'/%3E%3C/svg%3E");
}

/* Encomendas */
.woocommerce-MyAccount-navigation-link--orders a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 14l-5-5 1.4-1.4L12 14.2l7.6-7.6L21 8l-9 9z'/%3E%3C/svg%3E");
}

/* Assistente IA */
.woocommerce-MyAccount-navigation-link--assistente-ia a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z'/%3E%3C/svg%3E");
}

/* A Minha Gaveta */
.woocommerce-MyAccount-navigation-link--meus-orcamentos a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'%3E%3Cpath d='M20 6h-2.18c.07-.44.18-.86.18-1.3C18 2.55 15.6 1 13.5 1c-1.3 0-2.4.65-3.1 1.65L12 4.77l1.6-2.12C14.07 2.25 14.72 2 15.5 2c1.23 0 2.5.81 2.5 2.7 0 .48-.1.97-.26 1.3H6.18C6.02 5.67 5.92 5.18 5.92 4.7 5.92 2.81 7.19 2 8.42 2c.78 0 1.43.25 1.9.65L12 4.77 13.5 2.65C12.8 1.65 11.7 1 10.5 1 8.4 1 6 2.55 6 4.7c0 .44.11.86.18 1.3H4c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E");
}

/* Notificações */
.woocommerce-MyAccount-navigation-link--pe-notificacoes a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'%3E%3Cpath d='M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z'/%3E%3C/svg%3E");
}

/* Terminar Sessão */
.woocommerce-MyAccount-navigation-link--customer-logout a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f87171'%3E%3Cpath d='M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z'/%3E%3C/svg%3E");
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f87171'%3E%3Cpath d='M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z'/%3E%3C/svg%3E");
    opacity: 0.4 !important;
}

.woocommerce-MyAccount-navigation-link--customer-logout a:hover::before {
    opacity: 0.8 !important;
}

.pe-form-perfil .form-row { width: 100% !important; float: none !important; margin-bottom: 20px !important; }
.pe-form-perfil label { margin-bottom: 0; font-weight: 600; color: var(--text-muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; }

/* Cabeçalho do Input (Label + Toggle lado a lado) */
.pe-label-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }

/* Asterisco Obrigatório */
.pe-req { color: #ef4444; font-weight: 900; font-size: 14px; margin-left: 2px; }

/* Inputs */
.pe-form-perfil input.input-text {
    width: 100% !important; padding: 12px 16px !important; background-color: var(--input-bg) !important;
    border: 1px solid var(--input-border) !important; border-radius: 6px !important; font-size: 14px !important;
    color: var(--text-main) !important; box-sizing: border-box !important; transition: all 0.2s ease;
}
.pe-form-perfil input.input-text:focus { border-color: var(--brand-primary) !important; box-shadow: 0 0 0 2px rgba(43, 108, 176, 0.2) !important; outline: none !important; }
.pe-form-perfil input.input-text:disabled, .pe-form-perfil input.input-text[readonly] { opacity: 0.6; cursor: not-allowed; }

/* Layout e Cartões */
.pe-grid-2 { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 20px !important; width: 100% !important; }
.pe-perfil-card { background: var(--bg-card); padding: 25px; border-radius: 8px; border: 1px solid var(--border-color); width: 100%; box-sizing: border-box; }
.pe-perfil-card h3 { color: var(--text-main); font-size: 16px; margin: 0 0 20px 0; display: flex; align-items: center; gap: 10px; padding-bottom: 15px; border-bottom: 1px solid var(--border-color); }

/* INTERRUPTORES (Toggles Modernos) */
.pe-toggle-container { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.pe-toggle-text { font-size: 10px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; }
.pe-switch { position: relative; display: inline-block; width: 30px; height: 16px; margin: 0; }
.pe-switch input { opacity: 0; width: 0; height: 0; margin: 0; }
.pe-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--border-color); transition: .3s; border-radius: 16px; }
.pe-slider:before { position: absolute; content: ""; height: 12px; width: 12px; left: 2px; bottom: 2px; background-color: white; transition: .3s; border-radius: 50%; }
.pe-switch input:checked + .pe-slider { background-color: var(--brand-primary); }
.pe-switch input:checked + .pe-slider:before { transform: translateX(14px); }

/* Tag VIP */
.sisu-tag-pilula { background: transparent !important; border: 1px solid #d4af37 !important; color: #d4af37 !important; padding: 6px 12px !important; border-radius: 4px !important; font-size: 12px !important; }
.sisu-tag-pilula strong { color: #d4af37 !important; font-weight: 800 !important; }

/* Etiquetas do PDF e Obrigatórios */
.pe-pdf-badge { font-size: 10px; background: var(--bg-body); color: var(--brand-primary); padding: 3px 6px; border-radius: 4px; margin-left: 6px; border: 1px solid var(--border-color); text-transform: none; letter-spacing: 0; font-weight: 500; }
.pe-req { color: #ef4444; font-weight: bold; font-size: 14px; }

/* ==========================================================================
   ADAPTAÇÃO AO MODO ESCURO E POLIMENTOS (GAVETA, IA, NOTIFICAÇÕES)
   ========================================================================== */

/* 1. Matar os Fundos Brancos Antigos (Forçados no HTML das abas antigas) */
.woocommerce-MyAccount-content [style*="background:#fff"],
.woocommerce-MyAccount-content [style*="background: #fff"],
.woocommerce-MyAccount-content [style*="background-color: #fff"],
.woocommerce-MyAccount-content [style*="background-color:#ffffff"] {
    background-color: var(--bg-card) !important;
    color: var(--text-main) !important;
    border-color: var(--border-color) !important;
}

/* 2. Caixas de Informação e Notificações */
.woocommerce-info, .woocommerce-message, .woocommerce-error {
    background-color: var(--bg-card) !important;
    color: var(--text-main) !important;
    border-color: var(--brand-primary) !important;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}
.woocommerce-info::before { color: var(--brand-primary) !important; }
.pe-notificacao-nova { background-color: var(--bg-card-alt) !important; border-left: 4px solid var(--brand-primary) !important; }
.pe-notificacao-lida { background-color: var(--bg-card) !important; }

/* 3. A Minha Gaveta: Barra VIP e Cartões de Métricas */
.pe-card-membro, .pe-card-metric {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-main) !important;
}
.pe-card-metric h4 { color: var(--text-muted) !important; }
.pe-card-metric span, .pe-card-membro div { color: var(--text-main) !important; }

/* Manter o tom esverdeado/amarelado das métricas de lucro no Modo Escuro */
[data-theme="dark"] .card-concluido, [data-theme="dark"] .pe-card-lucro {
    background-color: rgba(22, 163, 74, 0.05) !important;
    border-left-color: var(--brand-success) !important;
}
[data-theme="dark"] .card-concluido h4, [data-theme="dark"] .pe-card-lucro h4,
[data-theme="dark"] .card-concluido span, [data-theme="dark"] .pe-card-lucro span { color: #4ade80 !important; }

/* 4. Tabelas (Encomendas, Gaveta e Rascunhos) */
table.shop_table {
    background-color: var(--bg-card) !important;
    border-collapse: collapse !important;
    border-radius: 8px !important;
    border: 1px solid var(--border-color) !important;
    overflow: hidden;
}
table.shop_table thead th {
    background-color: var(--bg-card-alt) !important;
    color: var(--text-muted) !important;
    border-bottom: 2px solid var(--border-color) !important;
    text-transform: uppercase; font-size: 12px; letter-spacing: 0.5px;
}
table.shop_table tbody td {
    background-color: transparent !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-main) !important;
}

/* Sub-caixas dentro da tabela (Mão de Obra / Lucro Limpo) */
table.shop_table td div[style*="background: #fcfcfc"], 
table.shop_table td div[style*="background:#fcfcfc"] {
    background-color: var(--bg-body) !important;
    border-color: var(--border-color) !important;
}
table.shop_table td div[style*="color:#555"] { color: var(--text-muted) !important; }

/* Dropdowns de Estado na Tabela */
.pe-select-estado {
    background-color: var(--input-bg) !important;
    color: var(--text-main) !important;
    border-color: var(--input-border) !important;
}
[data-theme="dark"] .pe-estado-negociacao { background-color: rgba(245, 158, 11, 0.1) !important; color: #fcd34d !important; border-color: #f59e0b !important; }
[data-theme="dark"] .pe-estado-adjudicado, [data-theme="dark"] .pe-estado-concluido { background-color: rgba(22, 163, 74, 0.1) !important; color: #4ade80 !important; border-color: #16a34a !important; }

/* 5. Botões de "Ver" nas Encomendas Nativas & Botões da IA */
.woocommerce-orders-table__cell-order-actions .button,
.pe-btn, button[style*="background:#fff"] {
    background-color: var(--bg-card-alt) !important;
    color: var(--text-main) !important;
    border: 1px solid var(--border-color) !important;
    padding: 8px 16px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
}
.woocommerce-orders-table__cell-order-actions .button:hover,
.pe-btn:hover {
    background-color: var(--brand-primary) !important;
    color: #ffffff !important;
    border-color: var(--brand-primary) !important;
}

/* 6. Assistente IA - Correção de Margens e Dropdown */
.pe-ia-container {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
    overflow: hidden !important;
}
.pe-ia-textarea, textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    background-color: var(--input-bg) !important;
    color: var(--text-main) !important;
    border: 1px solid var(--input-border) !important;
    border-radius: 8px !important;
    padding: 15px !important;
}
.pe-ia-textarea:focus, textarea:focus {
    border-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 2px rgba(43, 108, 176, 0.2) !important;
    outline: none !important;
}

/* Dropdown flutuante da IA (Últimos Projetos) */
.woocommerce-MyAccount-content div[style*="position:absolute"], 
.woocommerce-MyAccount-content div[style*="position: absolute"] {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-main) !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5) !important;
}
.woocommerce-MyAccount-content div[style*="position:absolute"] *, 
.woocommerce-MyAccount-content div[style*="position: absolute"] * {
    color: var(--text-main) !important;
}

/* ==========================================================================
   CORREÇÕES DE CONTRASTE (CAIXAS DE MORADAS E CHAT IA)
   ========================================================================== */

/* 1. Melhorar o contraste das caixas no Tema Claro */
:root {
    --bg-card-alt: #f1f5f9 !important; 
    --border-color: #cbd5e1 !important; 
}

[data-theme="dark"] {
    --bg-card-alt: #334155 !important;
    --border-color: #334155 !important;
}

/* 2. Forçar o Fundo Escuro no Histórico de Chat da IA */
.pe-ia-container div[style*="background: #fff"], 
.pe-ia-container div[style*="background:#fff"],
.pe-ia-container div[style*="background-color: #fff"],
.pe-ia-container div[style*="background-color:#ffffff"],
.pe-ia-container div[style*="background: #f9f9f9"],
.pe-ia-container div[style*="background:#f9f9f9"],
.pe-ia-container div[style*="background: #fcfcfc"] {
    background-color: var(--bg-card-alt) !important;
    color: var(--text-main) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .pe-ia-container div[style*="color: #333"],
[data-theme="dark"] .pe-ia-container div[style*="color:#333"],
[data-theme="dark"] .pe-ia-container div[style*="color: #000"],
[data-theme="dark"] .pe-ia-container div[style*="color:#000"] {
    color: var(--text-main) !important;
}

[data-theme="dark"] .pe-ia-container span[style*="color: red"],
[data-theme="dark"] .pe-ia-container span[style*="color:red"] {
    color: #ef4444 !important;
}

/* ==========================================================================
   CORREÇÃO FINAL: CAIXA DE CHAT DA IA (CONTRASTE)
   ========================================================================== */
[data-theme="dark"] .pe-ia-container div[style*="background: #fff"],
[data-theme="dark"] .pe-ia-container div[style*="background:#fff"],
[data-theme="dark"] .pe-ia-container div[style*="background-color: #fff"],
[data-theme="dark"] .pe-ia-container div[style*="background-color:#ffffff"],
[data-theme="dark"] .pe-ia-container div[style*="padding: 15px"] {
    background-color: var(--bg-card-alt) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .pe-ia-container div,
[data-theme="dark"] .pe-ia-container span,
[data-theme="dark"] .pe-ia-container p {
    color: var(--text-main) !important;
}

[data-theme="dark"] .pe-ia-container [style*="color: red"],
[data-theme="dark"] .pe-ia-container [style*="color:red"],
[data-theme="dark"] .pe-ia-container [style*="color: #d63638"] {
    color: #ef4444 !important; 
}

/* ==========================================================
   ENCOMENDAS B2B (LAYOUT E BADGES) - ESCOPO BLINDADO
   ========================================================== */

.pe-encomendas-b2b-wrapper {
    background: var(--bg-card);
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    margin-bottom: 30px;
}

.pe-encomendas-b2b-wrapper .pe-tabela-encomendas {
    width: 100%;
    border-collapse: collapse;
    margin: 0 !important;
}

.pe-encomendas-b2b-wrapper .pe-tabela-encomendas thead th {
    background: var(--bg-card-alt);
    color: var(--text-muted);
    padding: 10px 14px;
    text-transform: uppercase;
    font-size: 0.72rem;
    font-weight: 700;
    text-align: left;
    border-bottom: 2px solid var(--border-color);
    white-space: nowrap;
}

.pe-encomendas-b2b-wrapper .pe-tabela-encomendas tbody td {
    padding: 10px 14px;
    color: var(--text-main);
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
    font-size: 0.9rem;
}

/* Ocultar borda na última linha */
.pe-encomendas-b2b-wrapper .pe-tabela-encomendas tbody tr:last-child td {
    border-bottom: none;
}

/* Links da Encomenda */
.pe-encomendas-b2b-wrapper .pe-order-number {
    font-weight: 700;
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.95rem;
}
.pe-encomendas-b2b-wrapper .pe-order-number:hover {
    text-decoration: underline;
}

/* Ações Flexíveis */
.pe-encomendas-b2b-wrapper .pe-order-actions-flex {
    display: flex;
    gap: 8px;
    align-items: center;
}

/* Botões de Ação */
.pe-encomendas-b2b-wrapper .pe-btn-acao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 32px;
    padding: 0 12px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.2s ease;
}

.pe-encomendas-b2b-wrapper .pe-btn-detalhes {
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
}
.pe-encomendas-b2b-wrapper .pe-btn-detalhes:hover {
    background: var(--border-color);
    color: var(--text-main);
}

.pe-encomendas-b2b-wrapper .pe-btn-pdf {
    background: #4f46e5;
    border: none;
    color: #fff;
}

[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-btn-pdf {
    background: rgba(79, 70, 229, 0.1);
    border-color: rgba(79, 70, 229, 0.3);
}

.pe-encomendas-b2b-wrapper .pe-btn-pdf:hover {
    background: #4338ca;
    color: #fff;
}

.pe-encomendas-b2b-wrapper .pe-btn-repetir {
    background: #16a34a;
    border: none;
    color: #fff;
}

[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-btn-repetir {
    background: rgba(22, 163, 74, 0.1);
    border-color: rgba(22, 163, 74, 0.3);
}

.pe-encomendas-b2b-wrapper .pe-btn-repetir:hover {
    background: #15803d;
    color: #fff;
}

/* ==========================================================
   SISTEMA DE BADGES VISUAIS (Protegido contra a Loja)
   ========================================================== */
.pe-encomendas-b2b-wrapper .pe-badge {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    white-space: nowrap;
}

/* Fallbacks do WooCommerce */
.pe-encomendas-b2b-wrapper .pe-badge-wc-pending,
.pe-encomendas-b2b-wrapper .pe-badge-wc-on-hold {
    background: #fef9c3;
    color: #b45309;
}
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-wc-pending,
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-wc-on-hold {
    background: rgba(217, 119, 6, 0.1);
    color: #fcd34d;
}

.pe-encomendas-b2b-wrapper .pe-badge-wc-processing {
    background: #e0e7ff;
    color: #4338ca;
}
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-wc-processing {
    background: rgba(79, 70, 229, 0.1);
    color: #a5b4fc;
}

.pe-encomendas-b2b-wrapper .pe-badge-wc-completed {
    background: #dcfce7;
    color: #15803d;
}
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-wc-completed {
    background: rgba(22, 163, 74, 0.1);
    color: #86efac;
}

.pe-encomendas-b2b-wrapper .pe-badge-wc-cancelled,
.pe-encomendas-b2b-wrapper .pe-badge-wc-failed {
    background: #fee2e2;
    color: #b91c1c;
}
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-wc-cancelled,
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-wc-failed {
    background: rgba(220, 38, 38, 0.1);
    color: #fca5a5;
}

/* Badges SiSu B2B */
.pe-encomendas-b2b-wrapper .pe-badge-sisu-pago { background: #e0f2fe; color: #0369a1; }
.pe-encomendas-b2b-wrapper .pe-badge-sisu-confirmado { background: #e0e7ff; color: #4338ca; }
.pe-encomendas-b2b-wrapper .pe-badge-sisu-enviado { background: #fef3c7; color: #b45309; }
.pe-encomendas-b2b-wrapper .pe-badge-sisu-a_caminho { background: #ffedd5; color: #c2410c; }
.pe-encomendas-b2b-wrapper .pe-badge-sisu-recebido { background: #dcfce7; color: #15803d; }
.pe-encomendas-b2b-wrapper .pe-badge-sisu-devolvido { background: #f3e8ff; color: #7e22ce; }
.pe-encomendas-b2b-wrapper .pe-badge-sisu-cancelado { background: #fee2e2; color: #b91c1c; }

[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-sisu-pago { background: rgba(3, 105, 161, 0.1); color: #7dd3fc; }
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-sisu-confirmado { background: rgba(67, 56, 202, 0.1); color: #a5b4fc; }
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-sisu-enviado { background: rgba(180, 83, 9, 0.1); color: #fde68a; }
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-sisu-a_caminho { background: rgba(194, 65, 12, 0.1); color: #fed7aa; }
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-sisu-recebido { background: rgba(21, 128, 61, 0.1); color: #86efac; }
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-sisu-devolvido { background: rgba(126, 34, 206, 0.1); color: #d8b4fe; }
[data-theme="dark"] .pe-encomendas-b2b-wrapper .pe-badge-sisu-cancelado { background: rgba(185, 28, 28, 0.1); color: #fca5a5; }

/* Alerta Vazio */
.pe-encomendas-b2b-wrapper .pe-alerta-b2b {
    background: var(--bg-card);
    border: 1px dashed var(--border-color);
    border-radius: 8px;
    padding: 40px;
    text-align: center;
}
.pe-encomendas-b2b-wrapper .pe-alerta-icone {
    font-size: 48px;
    margin-bottom: 15px;
    opacity: 0.5;
}
.pe-encomendas-b2b-wrapper .pe-alerta-texto {
    color: var(--text-muted);
    margin-bottom: 25px;
    line-height: 1.5;
}
.pe-encomendas-b2b-wrapper .pe-btn-outline {
    display: inline-block;
    padding: 10px 20px;
    border: 2px solid var(--brand-primary);
    color: var(--brand-primary);
    border-radius: 6px;
    text-decoration: none;
    font-weight: 700;
    transition: all 0.2s ease;
}
.pe-encomendas-b2b-wrapper .pe-btn-outline:hover {
    background: var(--brand-primary);
    color: var(--btn-text);
}

/* Badge de origem da encomenda */
.pe-origem-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 10px;
    margin-top: 5px;
    letter-spacing: 0.3px;
}
.pe-origem-orcamento {
    background: rgba(79, 70, 229, 0.1);
    color: #4f46e5;
    border: 1px solid rgba(79, 70, 229, 0.2);
}
.pe-origem-direta {
    background: rgba(100, 116, 139, 0.08);
    color: var(--text-muted);
    border: 1px solid var(--border-color);
}
[data-theme="dark"] .pe-origem-orcamento {
    background: rgba(79, 70, 229, 0.15);
    color: #a5b4fc;
}

/* ==========================================================================
   ASSISTENTE IA — Estilos migrados de inline
   ========================================================================== */

#pe-lista-recentes-ia {
    position: absolute;
    z-index: 999;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 10px;
    min-width: 280px;
    max-height: 300px;
    overflow-y: auto;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.pe-ia-grid {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

#pe-ia-chat-historico {
    height: 200px;
    overflow-y: auto;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 12px;
    font-size: 13px;
    color: var(--text-main);
}

@media (max-width: 768px) {
    .pe-ia-grid {
        flex-direction: column;
    }
    #pe-lista-recentes-ia {
        position: static;
        width: 100%;
    }
}

/* ==========================================================================
   CARDS DE MÉTRICAS — Dashboard cliente
   Migrado de cores hardcoded para CSS variables (dark mode safe)
   ========================================================================== */

.pe-card-metric {
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    border: 1px solid var(--border-color);
    background: var(--bg-card);
}

.pe-card-metric--ganhos    { border-color: var(--brand-primary); }
.pe-card-metric--concluido { border-color: var(--brand-success); }
.pe-card-metric--negociacao { border-color: #eab308; }
.pe-card-metric--lucro     { border-color: var(--brand-primary); }

.pe-card-metric .pe-metric-valor {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-main);
    display: block;
}

.pe-card-metric .pe-metric-label {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 4px;
    display: block;
}

/* ==========================================================================
   INTERVENÇÃO 4.4 — Perfil B2B (cliente-perfil-b2b-layout.php)
   Migrado de inline para classes CSS
   ========================================================================== */

/* Sidebar de blocos extra (Premium, Recompensas, Refer) */
#pe-blocos-extra-sidebar {
    width: 100%;
    margin-top: 25px;
    flex-direction: column;
    gap: 20px;
    /* display:none mantém-se inline — o JS manipula directamente com style.display */
}

/* Cabeçalho de card genérico (Passe Premium, Recomendar) */
.pe-card-titulo {
    font-weight: 700;
    color: var(--text-main);
    font-size: 15px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.pe-card-titulo--entre {
    justify-content: space-between;
}

/* Variantes de cor para cabeçalhos de card */
.pe-card-titulo--success { color: var(--brand-success); }
.pe-card-titulo--amber   { color: #b45309; }
.pe-card-titulo--green   { color: #16a34a; margin-bottom: 12px; }

/* Badge de desconto (ex: "-15%") no card do Passe Premium */
.pe-badge-desconto {
    background: var(--brand-primary);
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 700;
}

/* Countdown de expiração urgente */
.pe-countdown-urgente {
    color: #ef4444;
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 10px;
    background: rgba(239, 68, 68, 0.1);
    padding: 8px;
    border-radius: 4px;
    text-align: center;
    border: 1px solid rgba(239, 68, 68, 0.2);
}

/* Texto "Válido até:" */
.pe-premium-validade {
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 5px;
}
.pe-premium-validade strong {
    color: var(--text-main);
    font-size: 13px;
}

/* Cards da sidebar com bordas coloridas */
.pe-perfil-card--success {
    border-color: var(--brand-success) !important;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.05);
}
.pe-perfil-card--amber {
    border-color: #f59e0b !important;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.08);
}
.pe-perfil-card--green {
    border-color: #16a34a !important;
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.08);
}
.pe-perfil-card--shadow {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Lista vertical de itens (recompensas, cupões) */
.pe-lista-vertical {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Item de lista base */
.pe-item-lista {
    background: var(--bg-body);
    padding: 12px;
    border-radius: 6px;
    border: 1px dashed var(--border-color);
}
.pe-item-lista--amber {
    border-color: #f59e0b;
}

/* Nome do item na lista */
.pe-item-nome {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-main);
    line-height: 1.3;
    margin-bottom: 6px;
}

/* Linha flex "label — valor" */
.pe-flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.pe-flex-between--gap {
    gap: 10px;
}

/* Label muted pequena */
.pe-label-muted {
    font-size: 12px;
    color: var(--text-muted);
}

/* Badge primário (usos, saldos) */
.pe-badge-primario {
    background: var(--brand-primary);
    color: #fff;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
}

/* Badge de saldo (créditos) */
.pe-badge-saldo {
    background: #16a34a;
    color: #fff;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 900;
}

/* Código do cupão */
.pe-cupao-codigo {
    font-family: monospace;
    font-size: 15px;
    font-weight: 900;
    color: #b45309;
    background: #fef3c7;
    padding: 4px 12px;
    border-radius: 6px;
    letter-spacing: 1px;
    border: 1px solid #fcd34d;
}

/* Botão copiar cupão */
.pe-btn-copiar-cupao {
    background: #f59e0b;
    color: #fff;
    border: none;
    border-radius: 5px;
    padding: 5px 12px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

/* Nota rodapé de item */
.pe-item-nota {
    margin-top: 8px;
    font-size: 11px;
    color: var(--text-muted);
}

/* Meta info (nome cupão + expiração) */
.pe-item-meta {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 6px;
}

/* Texto de erro (expiração) */
.pe-texto-erro { color: #ef4444; }

/* Card nota de informação */
.pe-card-nota {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
}

/* Input de link de afiliado (Recomendar) */
.pe-input-referral {
    width: 100%;
    padding: 10px;
    border-radius: 6px;
    border: 1px solid var(--border-color);
    background: var(--input-bg);
    color: var(--text-main);
    font-size: 12px;
    margin-bottom: 10px;
    text-align: center;
    box-sizing: border-box;
}

/* Botão "Copiar Link" de referral */
.pe-btn-referral {
    width: 100%;
    background: var(--brand-primary);
    color: #fff;
    border: none;
    padding: 12px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
    font-size: 13px;
    transition: opacity 0.2s;
}

/* Feedback "copiado" */
.pe-copy-feedback {
    color: var(--brand-success);
    font-size: 12px;
    margin-top: 8px;
    text-align: center;
    /* display:none mantém-se inline — JS manipula directamente */
}

/* Wrapper do input de referral */
.pe-input-wrapper { margin-bottom: 15px; }

/* Caixa de progresso Refer a Friend */
.pe-progresso-box {
    background: var(--bg-body);
    padding: 15px 12px;
    border-radius: 6px;
    border: 1px dashed var(--border-color);
}
.pe-progresso-label {
    font-size: 12px;
    color: var(--text-main);
    font-weight: 600;
    margin-bottom: 8px;
    text-align: center;
}
.pe-barra-fundo {
    width: 100%;
    background: var(--border-color);
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
}
.pe-barra-fill {
    background: var(--brand-primary);
    height: 100%;
    transition: width 0.4s ease;
    /* width: X% mantém-se inline — é valor dinâmico PHP */
}

/* Cabeçalho do perfil principal */
.pe-perfil-header {
    background: var(--bg-card);
    padding: 25px;
    border-radius: 8px;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid var(--border-color);
}
.pe-perfil-header h2 {
    margin: 0;
    font-size: 22px;
    color: var(--text-main);
    font-weight: 700;
}
.pe-user-login {
    color: var(--text-muted);
    font-size: 13px;
    margin-top: 8px;
    display: block;
}

/* Layout da form */
.pe-form-layout {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Separador de secção dentro do card */
.pe-separador {
    border-top: 1px dashed var(--border-color);
    margin-top: 10px;
    padding-top: 20px;
}

/* Grid de moradas (fiscal + entrega) */
.pe-grid-moradas {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 25px;
}

/* Card de morada base */
.pe-card-morada {
    background: var(--bg-card-alt);
    padding: 25px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
}
.pe-card-morada h4 {
    font-size: 15px;
    color: var(--text-muted);
    margin: 0 0 20px 0;
}

/* Variante entrega (borda verde) */
.pe-card-morada--entrega {
    border-color: var(--brand-success);
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.05);
}
.pe-card-morada--entrega h4 {
    color: var(--brand-success);
}

/* Labels de form com margem */
.pe-form-label { margin-bottom: 6px; }

/* Select nativo estilizado */
.pe-select {
    height: 44px;
    appearance: auto;
    background: var(--input-bg);
    color: var(--text-main);
}

/* Rodapé da form (botão guardar) */
.pe-form-submit {
    margin-top: 25px;
    text-align: right;
}
.pe-btn-guardar {
    background: var(--brand-primary);
    color: #fff;
    padding: 14px 35px;
    border-radius: 6px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}
.pe-btn-guardar:hover { opacity: 0.85; }

/* ==========================================================================
   INTERVENÇÃO 4.5 — Bloco Recompensas (cliente-recompensas-bloco.php)
   ========================================================================== */

/* Wrapper do bloco completo */
.pe-recompensas-bloco { margin-bottom: 24px; }

/* Cabeçalho do bloco */
.pe-bloco-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 15px;
    margin-bottom: 20px;
}
.pe-bloco-header h3 {
    border: none;
    padding: 0;
    margin: 0;
}

/* Caixa de saldo de fichas */
.pe-fichas-box {
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 8px 16px;
    text-align: center;
}
.pe-fichas-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted);
}
.pe-fichas-valor {
    font-size: 22px;
    font-weight: 700;
    color: var(--brand-primary);
}

/* Caixa do link de referência */
.pe-link-box {
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 20px;
}
.pe-link-titulo {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 8px;
}
.pe-link-desc {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 12px;
}
.pe-link-row {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.pe-input-link {
    flex: 1;
    min-width: 200px;
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--input-bg);
    color: var(--text-main);
    font-size: 12px;
}
.pe-btn-copiar-link {
    padding: 8px 16px;
    background: var(--brand-primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    transition: opacity 0.2s;
    white-space: nowrap;
}
.pe-copia-feedback {
    margin-top: 8px;
    font-size: 12px;
    color: var(--brand-primary);
    font-weight: 600;
    /* display:none mantém-se inline — JS manipula directamente */
}

/* Estatísticas de referência */
.pe-stats-ref {
    display: flex;
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.pe-stat-item {
    flex: 1;
    min-width: 80px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 12px 16px;
    text-align: center;
}
.pe-stat-item--success { border-color: rgba(22, 163, 74, 0.2); }
.pe-stat-label {
    font-size: 11px;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.pe-stat-valor {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-main);
}
.pe-stat-valor--success { color: #16a34a; }
.pe-stat-valor--muted   { color: var(--text-muted); }

/* Histórico de recompensas */
.pe-historico-titulo {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 12px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 8px;
}
.pe-historico-lista {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.pe-historico-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    gap: 10px;
    flex-wrap: wrap;
}
.pe-historico-nome {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-main);
}
.pe-historico-data {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
}
.pe-historico-valor-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
}
.pe-historico-valor {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-main);
}
.pe-historico-estado {
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 20px;
    /* color e background mantêm-se inline — são dinâmicos via PHP ($estado_cor) */
}

/* Estado vazio */
.pe-estado-vazio {
    text-align: center;
    padding: 20px 0;
    color: var(--text-muted);
    font-size: 13px;
    font-style: italic;
}

/* ==========================================================================
   ASSISTENTE IA — Botão e dropdown de recentes (fix visual)
   ========================================================================== */

.pe-ia-recentes-wrap {
    margin-bottom: 20px;
    text-align: right;
    position: relative;
    display: inline-block;
    float: right;
}

.pe-btn-recentes {
    font-size: 12px !important;
    background: var(--bg-card-alt) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--brand-primary) !important;
    border-radius: 6px !important;
    padding: 7px 14px !important;
    cursor: pointer !important;
    font-weight: 600 !important;
    transition: background 0.15s !important;
}
.pe-btn-recentes:hover {
    background: var(--bg-card) !important;
    border-color: var(--brand-primary) !important;
}

#pe-lista-recentes-ia {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    z-index: 999;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 14px 16px;
    min-width: 300px;
    max-height: 280px;
    overflow-y: auto;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    text-align: left;
}

.pe-recentes-titulo {
    margin: 0 0 10px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    color: var(--text-main) !important;
    border-bottom: 1px solid var(--border-color) !important;
    padding-bottom: 8px !important;
}

#pe-ul-recentes {
    list-style: none;
    padding: 0;
    margin: 0;
}

#pe-ul-recentes li {
    padding: 6px 0;
    border-bottom: 1px solid var(--border-color);
    font-size: 13px;
}

#pe-ul-recentes li:last-child { border-bottom: none; }

#pe-ul-recentes a {
    color: var(--brand-primary);
    text-decoration: none;
    font-weight: 500;
}
#pe-ul-recentes a:hover { text-decoration: underline; }

/* Limpar float depois do wrapper */
.pe-ia-container::after {
    content: '';
    display: table;
    clear: both;
}

/* Links nos itens de resultado do Assistente IA */
.pe-ia-lista li a {
    color: var(--brand-primary) !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}
.pe-ia-lista li a:hover {
    opacity: 0.8;
}

/* Boxes de resultado da IA — dark mode safe */
.pe-ia-box.pe-ia-temos {
    flex: 1;
    background: color-mix(in srgb, var(--brand-success) 8%, var(--bg-card));
    padding: 15px;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--brand-success) 30%, transparent);
}

.pe-ia-box.pe-ia-nao-temos {
    flex: 1;
    background: color-mix(in srgb, #ef4444 6%, var(--bg-card));
    padding: 15px;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, #ef4444 20%, transparent);
}

.pe-ia-box h4 {
    margin-top: 0 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.pe-ia-box.pe-ia-temos h4  { color: var(--brand-success) !important; }
.pe-ia-box.pe-ia-nao-temos h4 { color: #b91c1c !important; }

/* ==========================================================================
   BADGES DE VERIFICAÇÃO — Perfil B2B (Session D)
   ========================================================================== */

.pe-badge-nivel1,
.pe-badge-nivel2,
.pe-badge-verificado {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 3px 8px;
    border-radius: 20px;
    margin-left: 6px;
    vertical-align: middle;
}

.pe-badge-nivel1 {
    background: rgba(22, 163, 74, 0.12);
    color: var(--brand-success);
    border: 1px solid rgba(22, 163, 74, 0.3);
}

.pe-badge-nivel2 {
    background: rgba(37, 99, 235, 0.1);
    color: #2563eb;
    border: 1px solid rgba(37, 99, 235, 0.25);
}

[data-theme="dark"] .pe-badge-nivel2 {
    color: #93c5fd;
    background: rgba(37, 99, 235, 0.15);
    border-color: rgba(37, 99, 235, 0.3);
}

.pe-badge-verificado {
    background: transparent;
    color: var(--text-muted);
    border: none;
    font-size: 9px;
    letter-spacing: 1px;
    padding: 0 4px;
}

/* CTA inline de verificação no cabeçalho do perfil */
.pe-cta-verificar-inline {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    color: #2563eb;
    background: rgba(37, 99, 235, 0.08);
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 20px;
    padding: 3px 10px;
    margin-left: 10px;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    vertical-align: middle;
    animation: pe-pulse-verificar 2.5s ease-in-out infinite;
}

.pe-cta-verificar-inline:hover {
    background: rgba(37, 99, 235, 0.15);
    border-color: rgba(37, 99, 235, 0.4);
    color: #1d4ed8;
}

[data-theme="dark"] .pe-cta-verificar-inline {
    color: #93c5fd;
    background: rgba(37, 99, 235, 0.12);
    border-color: rgba(37, 99, 235, 0.3);
}

@keyframes pe-pulse-verificar {
    0%, 100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0); }
    50%       { box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12); }
}

/* ==========================================================================
   BLOCO DE VERIFICAÇÃO OAUTH — Perfil B2B
   ========================================================================== */

.pe-verificacao-bloco {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: linear-gradient(135deg, rgba(37,99,235,0.06), rgba(37,99,235,0.02));
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 10px;
    padding: 20px 24px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

[data-theme="dark"] .pe-verificacao-bloco {
    background: rgba(37, 99, 235, 0.08);
    border-color: rgba(37, 99, 235, 0.25);
}

.pe-verificacao-bloco__esquerda {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
    min-width: 200px;
}

.pe-verificacao-bloco__icone {
    font-size: 28px;
    flex-shrink: 0;
}

.pe-verificacao-bloco__titulo {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 4px;
}

.pe-verificacao-bloco__texto {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.4;
}

.pe-verificacao-bloco__botoes {
    flex-shrink: 0;
}

/* Ajustar os botões do Nextend para o estilo SiSu */
.pe-verificacao-bloco__botoes .nsl-container {
    margin: 0 !important;
}

.pe-verificacao-bloco__botoes .nsl-container-buttons {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
}

.pe-verificacao-bloco__botoes .nsl-button {
    border-radius: 6px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 8px 14px !important;
    min-width: auto !important;
}

@media (max-width: 600px) {
    .pe-verificacao-bloco {
        flex-direction: column;
        align-items: flex-start;
    }
    .pe-verificacao-bloco__botoes .nsl-container-buttons {
        justify-content: flex-start !important;
    }
}

/* ============================================================
   LOGIN PAGE — Layout colunas e botão Google
   ============================================================ */
#customer_login {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}
#customer_login .u-column1,
#customer_login .u-column2 {
    flex: 1 1 350px;
    width: 100%;
    background: rgba(255, 255, 255, 0.02);
    padding: 30px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.05);
    box-sizing: border-box;
}
.pe-login-header-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    padding-bottom: 15px;
}
.pe-login-header-flex h2 {
    margin: 0 !important;
    font-size: 22px;
}
.pe-login-header-flex .nsl-container-block {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
}
.pe-login-header-flex .nsl-button {
    transform: scale(0.85);
    transform-origin: right center;
    margin: 0 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.nsl-overlay-text {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}
@keyframes pe-spin-fast {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@media (max-width: 600px) {
    .pe-login-header-flex {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }
    .pe-login-header-flex .nsl-button {
        transform: scale(1);
        transform-origin: center;
    }
}

/* ============================================================
   CENTRO DE NOTIFICAÇÕES — Layout renovado
   ============================================================ */
.pe-notificacoes-lista {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pe-notificacoes-lista .pe-notificacao-item {
    list-style: none !important;
}

.pe-notificacao-item {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 14px 18px;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.pe-notificacao-item.pe-notificacao-nova {
    border-left: 3px solid var(--brand-primary);
}

.pe-notificacao-item.pe-notificacao-lida {
    opacity: 0.65;
}

.pe-notificacao-item:hover {
    border-color: var(--brand-primary);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.pe-notif-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.pe-notif-icone {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    color: var(--brand-primary);
    flex-shrink: 0;
}

.pe-notificacao-data {
    font-size: 12px;
    color: var(--text-muted);
}

.pe-notif-badge-nova {
    margin-left: auto;
    background: var(--brand-primary);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.pe-notificacao-texto {
    font-size: 14px;
    color: var(--text-main);
    line-height: 1.5;
    margin-bottom: 10px;
}

.pe-notif-link {
    color: var(--brand-primary);
    text-decoration: none;
    font-weight: 600;
}

.pe-notif-link:hover {
    text-decoration: underline;
}

.pe-notif-btn {
    display: inline-block;
    padding: 6px 14px;
    background: var(--brand-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.2s;
}

.pe-notif-btn:hover { opacity: 0.85; }

.pe-notif-btn--alerta {
    background: #d97706;
}


.pe-notif-btn--pdf {
    background: #2271b1;
}

/* ==========================================================================
   MOBILE RESPONSIVO — SiSu Dashboard
   Aplica-se a todas as sub-páginas da conta (Perfil, IA, Encomendas, etc.)
   ========================================================================== */

@media (max-width: 768px) {

    /* 1. FORMULÁRIOS DO PERFIL B2B
       Grid de 2 colunas colapsa para 1 coluna — principal causa dos forms partidos */
    .pe-grid-2 {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    /* Padding reduzido nos cards do perfil */
    .pe-perfil-card {
        padding: 16px !important;
    }

    /* Botão Guardar Perfil full-width */
    .pe-form-perfil .button[type="submit"],
    .pe-btn-guardar-perfil {
        width: 100% !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

    /* 2. ASSISTENTE IA
       Botão "Enviar Pedido" full-width — elimina o align-self: flex-start */
    .pe-btn-ia {
        align-self: stretch !important;
        width: 100% !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

    /* Padding mais compacto no container IA */
    .pe-ia-container {
        padding: 16px !important;
    }

    /* 3. ENCOMENDAS — scroll horizontal em vez de cortar o conteúdo */
    .pe-encomendas-b2b-wrapper {
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
    }

    /* Largura mínima para a tabela de encomendas ter espaço mínimo antes do scroll */
    .pe-encomendas-b2b-wrapper .pe-tabela-encomendas {
        min-width: 580px;
    }

    /* Ações das encomendas — permitir wrap dos botões */
    .pe-order-actions-flex,
    .pe-encomendas-b2b-wrapper .pe-order-actions-flex {
        flex-wrap: wrap !important;
        gap: 6px !important;
    }

    /* 4. ORÇAMENTOS — tabela de projetos com scroll horizontal */
    .pe-tabela-projetos {
        display: block !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        border-radius: 8px;
    }

    /* 5. CARDS DE MÉTRICAS — 2 colunas em mobile */
    .pe-cards-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    /* 6. TEXTO DOS BADGES — não cortar com overflow hidden */
    .pe-badge,
    .pe-origem-badge,
    .pe-badge-sisu-a_caminho,
    .pe-badge-sisu-enviado {
        white-space: normal !important;
        word-break: break-word;
    }

    /* 7. SIDEBAR DE EXTRAS — full width em mobile */
    #pe-blocos-extra-sidebar {
        width: 100% !important;
    }

}

/* Ecrãs muito pequenos — ≤ 480px */
@media (max-width: 480px) {

    /* Cards de métricas em coluna única em ecrãs muito estreitos */
    .pe-cards-container {
        grid-template-columns: 1fr !important;
    }

    /* Padding extra compacto */
    .pe-perfil-card {
        padding: 12px !important;
    }
    .pe-ia-container {
        padding: 12px !important;
    }

}