#!/bin/bash
# ============================================================
# Script de Padronização Visual — Sistema de Gestão
# Caminho: S:\gestao (ou o diretório onde rodar)
# ============================================================

set -e

PROJETO="$(cd "$(dirname "$0")" && pwd)"
echo "============================================"
echo " Padronização Visual — $PROJETO"
echo "============================================"
echo ""

# ── Backup ──────────────────────────────────────────────────
BACKUP="$PROJETO/_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP"
echo "[1/10] Criando backup em $BACKUP ..."

for f in \
    "header.php" \
    "header_public.php" \
    "config/ui.php" \
    "assets/css/custom.css" \
    "modules/settings/style.php" \
    "modules/imoveis/form.php" \
    "modules/contratos_locacao/facilitador.php" \
    "modules/contratos_locacao/form.php" \
    "modules/relatorios/index.php" \
    "modules/vistorias/form.php" \
    "modules/empresas/form.php" \
    "modules/cliente/fiadores_form.php" \
    "modules/relatorios/financeiro.php" \
    "modules/contratos_locacao/print.php" \
    "modules/contratos_locacao/print_manual.php" \
    "modules/recibos/print.php" \
    "modules/relatorios/print.php" \
    "modules/contratos_locacao/revisar.php"
do
    if [ -f "$PROJETO/$f" ]; then
        mkdir -p "$BACKUP/$(dirname "$f")"
        cp "$PROJETO/$f" "$BACKUP/$f"
    fi
done

echo "   Backup concluído."
echo ""

# ── Função auxiliar: sed multiplataforma ────────────────────
# GNU sed (Linux) vs BSD sed (macOS)
sedi() {
    if sed --version 2>/dev/null | grep -q GNU; then
        sed -i "$@"
    else
        sed -i '' "$@"
    fi
}

# ── ETAPA 1: Banco de dados — adicionar slug ────────────────
echo "[2/10] Verificando campo slug no banco..."
echo ""
echo "  ⚠  Execute manualmente no seu MySQL:"
echo ""
echo "  ALTER TABLE empresas ADD COLUMN slug VARCHAR(100) DEFAULT NULL;"
echo "  UPDATE empresas SET slug = LOWER(REPLACE(REPLACE(REPLACE("
echo "    REPLACE(REPLACE(nome, ' ', '-'), 'ã', 'a'), 'í', 'i'), 'ç', 'c'), 'é', 'e'));"
echo "  UPDATE empresas SET slug = REPLACE(slug, '--', '-');"
echo "  UPDATE empresas SET slug = TRIM(BOTH '-' FROM slug);"
echo ""

# ── ETAPA 2: Criar diretório default e estilos.css ──────────
echo "[3/10] Criando CSS default..."
mkdir -p "$PROJETO/css/default"

# Descobre o slug do tenant existente
SLUG_EXISTENTE=$(ls "$PROJETO/css/" 2>/dev/null | grep -v 'tenants_json\|padroes\|default' | head -1)

if [ -n "$SLUG_EXISTENTE" ] && [ -f "$PROJETO/css/$SLUG_EXISTENTE/estilos.css" ]; then
    cp "$PROJETO/css/$SLUG_EXISTENTE/estilos.css" "$PROJETO/css/default/estilos.css"
    echo "   Copiado de css/$SLUG_EXISTENTE/estilos.css → css/default/estilos.css"
else
    cat > "$PROJETO/css/default/estilos.css" << 'CSSEOF'
/* Central de Estilo — Tenant: default (fallback) */
:root {
    --primary-color: #7c3aed;
    --secondary-color: #6d28d9;
    --success-color: #10b981;
    --danger-color: #ef4444;
    --warning-color: #f59e0b;
    --text-color: #1a202c;
    --heading-color: #111827;
    --body-background: #f5f3ff;
    --body-font-family: 'Inter', system-ui, -apple-system, sans-serif;
    --card-radius: 12px;
    --card-border-color: #e5e7eb;
    --navbar-border-color: rgba(0,0,0,0.05);
    --form-control-border-radius: 8px;
    --form-control-border-color: #d1d5db;
    --form-control-bg: #ffffff;
    --form-bg-color: #f9fafb;
    --form-border-color: #e5e7eb;
    --form-border-radius: 12px;
    --btn-primary-border-radius: 8px;
    --alert-border-radius: 8px;
    --table-head-bg: #f1f3f5;
    --table-header-color: #1a202c;
    --sidebar-gradient-start: #1e0a3c;
    --sidebar-gradient-end: #3b0764;
    --sidebar-text-color: #e9d5ff;
    --sidebar-active-bg: #7c3aed;
    --sidebar-active-color: #ffffff;
    --sidebar-max-width: 220px;
    --sidebar-border-radius: 0 12px 12px 0;
    --sidebar-font-size: 13px;
    --sidebar-font-weight: 500;
    --sidebar-border-color: rgba(255,255,255,0.08);
}
CSSEOF
    echo "   Criado css/default/estilos.css com fallback"
fi
echo ""

# ── ETAPA 3: Deletar empresa_N.css ──────────────────────────
echo "[4/10] Removendo CSS duplicados por empresa..."
for f in "$PROJETO"/assets/css/empresa_*.css; do
    if [ -f "$f" ]; then
        rm "$f"
        echo "   Removido: $(basename "$f")"
    fi
done
echo ""

# ── ETAPA 4: Substituir custom.css ──────────────────────────
echo "[5/10] Substituindo custom.css..."
cat > "$PROJETO/assets/css/custom.css" << 'CSSEOF'
/* ============================================================
   CUSTOM.CSS — Base estrutural do sistema
   Carrega ANTES do estilos.css do tenant
   ============================================================ */

:root {
    --primary-color: #7c3aed;
    --secondary-color: #6d28d9;
    --success-color: #10b981;
    --danger-color: #ef4444;
    --warning-color: #f59e0b;
    --text-color: #1a202c;
    --heading-color: #111827;
    --body-background: #f5f3ff;
    --body-font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --card-radius: 12px;
    --card-border-color: #e5e7eb;
    --navbar-border-color: rgba(0,0,0,0.05);
    --form-control-border-radius: 8px;
    --form-control-border-color: #d1d5db;
    --form-control-bg: #ffffff;
    --form-bg-color: #f9fafb;
    --form-border-color: #e5e7eb;
    --form-border-radius: 12px;
    --btn-primary-border-radius: 8px;
    --alert-border-radius: 8px;
    --table-head-bg: #f1f3f5;
    --table-header-color: #1a202c;
    --sidebar-gradient-start: #1e0a3c;
    --sidebar-gradient-end: #3b0764;
    --sidebar-text-color: #e9d5ff;
    --sidebar-active-bg: #7c3aed;
    --sidebar-active-color: #ffffff;
    --sidebar-max-width: 220px;
    --sidebar-border-radius: 0 12px 12px 0;
    --sidebar-font-size: 13px;
    --sidebar-font-weight: 500;
    --sidebar-border-color: rgba(255,255,255,0.08);
}

body {
    background-color: var(--body-background) !important;
    color: var(--text-color);
    font-family: var(--body-font-family);
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--heading-color);
}

a {
    color: var(--primary-color);
    transition: color 0.2s ease;
}

a:hover {
    filter: brightness(1.15);
}

.navbar {
    border-bottom: 1px solid var(--navbar-border-color);
    background-color: var(--primary-color) !important;
}

.navbar .navbar-brand,
.navbar .nav-link,
.navbar .navbar-text {
    color: #ffffff !important;
}

.navbar .navbar-toggler {
    border-color: rgba(255,255,255,0.3);
}

.dashboard-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: var(--sidebar-max-width);
    min-width: var(--sidebar-max-width);
    max-width: var(--sidebar-max-width);
    background: linear-gradient(180deg, var(--sidebar-gradient-start), var(--sidebar-gradient-end)) !important;
    color: var(--sidebar-text-color) !important;
    border-right: 1px solid var(--sidebar-border-color);
    border-radius: var(--sidebar-border-radius);
    overflow-y: auto;
    z-index: 1040;
    padding: 12px !important;
    font-size: var(--sidebar-font-size);
    font-weight: var(--sidebar-font-weight);
}

.sidebar-brand {
    color: #ffffff !important;
    text-decoration: none;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 700;
}

.dashboard-sidebar .nav-pills {
    gap: 2px;
}

.dashboard-sidebar .nav-link,
.sidebar-link {
    color: var(--sidebar-text-color) !important;
    background: transparent !important;
    padding: 8px 12px !important;
    border-radius: var(--card-radius) !important;
    font-size: var(--sidebar-font-size) !important;
    font-weight: var(--sidebar-font-weight) !important;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    margin-bottom: 2px;
}

.dashboard-sidebar .nav-link:hover,
.sidebar-link:hover {
    background-color: color-mix(in srgb, var(--sidebar-active-bg) 20%, transparent) !important;
    color: var(--sidebar-text-color) !important;
    transform: translateX(2px);
    filter: none;
}

.dashboard-sidebar .nav-link.active,
.sidebar-link.active {
    background-color: var(--sidebar-active-bg) !important;
    color: var(--sidebar-active-color) !important;
    font-weight: 600 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.sidebar-footer {
    border-top: 1px solid var(--sidebar-border-color);
    padding-top: 12px;
    margin-top: auto;
}

.sidebar-status {
    color: color-mix(in srgb, var(--sidebar-text-color) 60%, transparent);
    font-size: 11px;
}

.sidebar-footer strong {
    color: var(--sidebar-text-color);
    font-size: 13px;
}

.sidebar-btn {
    border: 1px solid color-mix(in srgb, var(--sidebar-text-color) 25%, transparent) !important;
    color: var(--sidebar-text-color) !important;
    background: transparent !important;
    font-size: 12px;
    padding: 6px 10px;
    border-radius: 6px;
    transition: all 0.15s ease;
}

.sidebar-btn:hover {
    background-color: color-mix(in srgb, var(--sidebar-active-bg) 20%, transparent) !important;
    color: var(--sidebar-text-color) !important;
    border-color: var(--sidebar-active-bg) !important;
}

@media (min-width: 768px) {
    .d-flex.flex-column.flex-md-row {
        margin-left: var(--sidebar-max-width);
    }
}

.content-area {
    min-height: 100vh;
    background-color: var(--body-background);
}

.card {
    background-color: #ffffff;
    border: 1px solid var(--card-border-color);
    border-radius: var(--card-radius);
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    transition: all 0.2s ease;
}

.card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.card-header {
    background-color: #ffffff;
    border-bottom: 1px solid var(--card-border-color);
    border-radius: var(--card-radius) var(--card-radius) 0 0;
    padding: 12px 16px;
}

.card-body {
    padding: 16px;
}

.card-title {
    color: var(--heading-color);
    font-size: 15px;
    font-weight: 600;
}

.card-text,
.text-muted {
    color: var(--text-color) !important;
    opacity: 0.6;
    font-size: 13px;
}

.btn {
    font-family: var(--body-font-family);
    font-size: 13px;
    font-weight: 500;
    padding: 8px 16px;
    border-radius: var(--btn-primary-border-radius);
    transition: all 0.2s ease;
}

.btn-primary {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: #ffffff !important;
}

.btn-primary:hover {
    filter: brightness(1.12);
    transform: translateY(-1px);
}

.btn-success {
    background-color: var(--success-color) !important;
    border-color: var(--success-color) !important;
}

.btn-danger {
    background-color: var(--danger-color) !important;
    border-color: var(--danger-color) !important;
}

.btn-warning {
    background-color: var(--warning-color) !important;
    border-color: var(--warning-color) !important;
    color: #1a202c !important;
}

.btn-outline-primary {
    color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
}

.btn-outline-primary:hover {
    background-color: var(--primary-color) !important;
    color: #ffffff !important;
}

.btn-outline-secondary {
    color: var(--text-color);
    border-color: var(--card-border-color);
}

.form-control,
.form-select {
    background-color: var(--form-control-bg);
    border: 1px solid var(--form-control-border-color);
    border-radius: var(--form-control-border-radius);
    color: var(--text-color);
    font-family: var(--body-font-family);
    font-size: 13px;
    padding: 8px 12px;
    transition: all 0.2s ease;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color) 15%, transparent);
    outline: none;
}

.form-control:disabled,
.form-control[readonly] {
    background-color: color-mix(in srgb, var(--body-background) 80%, transparent);
    opacity: 0.7;
}

.form-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--heading-color);
    margin-bottom: 4px;
}

.card .card-body form,
.form-section {
    background-color: var(--form-bg-color);
    border: 1px solid var(--form-border-color);
    border-radius: var(--form-border-radius);
    padding: 16px;
}

.alert {
    border-radius: var(--alert-border-radius);
    font-family: var(--body-font-family);
    font-size: 13px;
    padding: 12px 16px;
}

.alert-success {
    background-color: color-mix(in srgb, var(--success-color) 10%, transparent) !important;
    border-color: color-mix(in srgb, var(--success-color) 25%, transparent) !important;
    color: var(--success-color) !important;
}

.alert-danger {
    background-color: color-mix(in srgb, var(--danger-color) 10%, transparent) !important;
    border-color: color-mix(in srgb, var(--danger-color) 25%, transparent) !important;
    color: var(--danger-color) !important;
}

.alert-warning {
    background-color: color-mix(in srgb, var(--warning-color) 10%, transparent) !important;
    border-color: color-mix(in srgb, var(--warning-color) 25%, transparent) !important;
    color: var(--warning-color) !important;
}

.alert-info {
    background-color: color-mix(in srgb, var(--primary-color) 10%, transparent) !important;
    border-color: color-mix(in srgb, var(--primary-color) 25%, transparent) !important;
    color: var(--primary-color) !important;
}

.table {
    font-size: 13px;
    color: var(--text-color);
}

.table thead th {
    background-color: var(--table-head-bg) !important;
    color: var(--table-header-color);
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 2px solid var(--card-border-color);
    padding: 10px 12px;
}

.table td {
    border-color: color-mix(in srgb, var(--card-border-color) 50%, transparent);
    padding: 8px 12px;
    vertical-align: middle;
}

.table-hover tbody tr:hover {
    background-color: color-mix(in srgb, var(--primary-color) 5%, transparent);
}

.badge {
    font-family: var(--body-font-family);
    font-size: 11px;
    font-weight: 600;
    padding: 4px 8px;
    border-radius: 6px;
}

.badge.bg-success, .badge.badge-success { background-color: var(--success-color) !important; }
.badge.bg-danger, .badge.badge-danger { background-color: var(--danger-color) !important; }
.badge.bg-warning, .badge.badge-warning { background-color: var(--warning-color) !important; }
.badge.bg-primary, .badge.badge-primary { background-color: var(--primary-color) !important; }

.modal-content {
    border-radius: 12px;
    border: 1px solid var(--card-border-color);
}

.modal-header {
    border-bottom: 1px solid var(--card-border-color);
    padding: 14px 20px;
}

.modal-body { padding: 20px; }

.modal-footer {
    border-top: 1px solid var(--card-border-color);
    padding: 12px 20px;
}

.modal-title {
    color: var(--heading-color);
    font-size: 16px;
    font-weight: 600;
}

.nav-tabs {
    border-bottom: 1px solid var(--card-border-color);
}

.nav-tabs .nav-link {
    color: var(--text-color);
    font-size: 13px;
    padding: 8px 14px;
    border: none;
    border-bottom: 2px solid transparent;
    transition: all 0.2s ease;
}

.nav-tabs .nav-link:hover {
    color: var(--primary-color);
    border-bottom-color: color-mix(in srgb, var(--primary-color) 30%, transparent);
}

.nav-tabs .nav-link.active {
    color: var(--primary-color);
    border-bottom-color: var(--primary-color);
    font-weight: 600;
    background: transparent;
}

.breadcrumb {
    font-size: 13px;
    background: transparent;
    padding: 0;
    margin-bottom: 12px;
}

.breadcrumb-item a { color: var(--primary-color); }
.breadcrumb-item.active { color: var(--text-color); }

.dropdown-menu {
    border: 1px solid var(--card-border-color);
    border-radius: var(--card-radius);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    font-size: 13px;
}

.dropdown-item:hover {
    background-color: color-mix(in srgb, var(--primary-color) 8%, transparent);
    color: var(--primary-color);
}

.pagination .page-link {
    color: var(--primary-color);
    border-color: var(--card-border-color);
    font-size: 13px;
    padding: 6px 12px;
}

.pagination .page-item.active .page-link {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: #ffffff;
}

.offcanvas {
    max-width: var(--sidebar-max-width);
    background: linear-gradient(180deg, var(--sidebar-gradient-start), var(--sidebar-gradient-end));
}

.offcanvas .nav-link { color: var(--sidebar-text-color) !important; }

.offcanvas .nav-link:hover,
.offcanvas .nav-link.active {
    background-color: var(--sidebar-active-bg) !important;
    color: var(--sidebar-active-color) !important;
}

.color-preview {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    border: 2px solid var(--card-border-color);
    cursor: pointer;
    transition: all 0.2s;
}

.setting-group {
    background: var(--form-control-bg);
    border-radius: var(--card-radius);
    padding: 16px;
    margin-bottom: 16px;
    border: 1px solid var(--card-border-color);
    transition: all 0.3s;
}

.setting-group:hover {
    border-color: var(--primary-color);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.setting-label {
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--heading-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 2px solid var(--card-border-color);
    padding-bottom: 6px;
    font-size: 14px;
}

.preview-badge {
    position: fixed;
    bottom: 20px;
    right: 20px;
    background: var(--heading-color);
    color: var(--sidebar-active-color);
    padding: 6px 14px;
    border-radius: 16px;
    font-size: 11px;
    z-index: 1000;
    backdrop-filter: blur(10px);
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.25); }

.card, .btn, .form-control, .form-select,
.alert, .badge, .nav-link, .dropdown-item,
.dashboard-sidebar .nav-link, .modal-content {
    transition: all 0.2s ease;
}

@media (max-width: 767.98px) {
    .dashboard-sidebar { display: none !important; }
    .d-flex.flex-column.flex-md-row { margin-left: 0 !important; }
}
CSSEOF
echo "   custom.css substituído."
echo ""

# ── ETAPA 5: Substituir ui.php ──────────────────────────────
echo "[6/10] Substituindo config/ui.php..."
cat > "$PROJETO/config/ui.php" << 'CSSEOF'
<?php

return [
    'navbar' => [
        'base' => 'navbar navbar-expand-lg shadow-sm',
        'brand' => 'navbar-brand',
        'toggle' => 'navbar-toggler',
        'link' => 'nav-link',
        'item' => 'nav-item',
        'text' => 'navbar-text me-3',
        'button' => 'btn btn-outline-secondary btn-sm',
    ],
    'button' => [
        'primary' => 'btn btn-primary',
        'secondary' => 'btn btn-outline-secondary',
        'success' => 'btn btn-success',
        'danger' => 'btn btn-danger',
        'small' => 'btn btn-sm',
        'link' => 'btn btn-link',
    ],
    'card' => [
        'base' => 'card',
        'group' => 'card-body',
        'title' => 'card-title mb-0',
        'description' => 'text-muted mb-0',
    ],
    'form' => [
        'control' => 'form-control',
        'select' => 'form-select',
        'label' => 'form-label',
        'group' => 'mb-3',
        'row' => 'row g-3',
    ],
    'table' => [
        'base' => 'table table-hover align-middle',
        'responsive' => 'table-responsive',
    ],
    'list' => [
        'group' => 'list-group list-group-flush',
        'item' => 'list-group-item',
    ],
    'text' => [
        'muted' => 'text-muted',
        'small' => 'small',
    ],
    'layout' => [
        'container' => 'container py-4',
        'row' => 'row g-4',
        'row_center' => 'row justify-content-center',
    ],
    'sidebar' => [
        'base' => 'dashboard-sidebar d-none d-md-flex flex-column',
        'brand' => 'sidebar-brand mb-4 fs-5 fw-bold d-flex align-items-center gap-2',
        'nav' => 'nav nav-pills flex-column mb-4',
        'link' => 'nav-link sidebar-link mb-1 d-flex align-items-center gap-2',
        'active' => 'active',
        'footer' => 'sidebar-footer mt-auto pt-3',
        'status' => 'small sidebar-status mb-2',
        'button' => 'btn btn-sm w-100 text-start mb-1 sidebar-btn',
    ],
];
CSSEOF
echo "   ui.php substituído."
echo ""

# ── ETAPA 6: Corrigir header.php — carregamento CSS ─────────
echo "[7/10] Corrigindo header.php..."
if [ -f "$PROJETO/header.php" ]; then
    # Remove bloco antigo de carregamento CSS por empresa
    sedi '/\$companyId = current_company_id/d' "$PROJETO/header.php"
    sedi '/\$companyCssFile = __DIR__/d' "$PROJETO/header.php"
    sedi '/\$companyCssUrl = file_exists/d' "$PROJETO/header.php"
    sedi "/? BASE_URL.*empresa_.*\.css/d" "$PROJETO/header.php"
    sedi "/: BASE_URL.*custom\.css/d" "$PROJETO/header.php"
    sedi '/\?>/d' "$PROJETO/header.php" 2>/dev/null || true

    # Verifica se já tem o bloco novo
    if ! grep -q 'tenantSlug' "$PROJETO/header.php"; then
        # Adiciona antes do </head> se não existir
        sedi 's|</head>|<?php\n    \$company = current_company();\n    \$tenantSlug = preg_replace('"'"'/[^a-z0-9_-]/'"'"', '"'"''"'"', strtolower(\$company['"'"'slug'"'"'] ?? '"'"'default'"'"'));\n    ?>\n    <link rel="stylesheet" href="<?php echo BASE_URL; ?>/assets/css/custom.css">\n    <link rel="stylesheet" href="<?php echo BASE_URL; ?>/css/<?php echo \$tenantSlug; ?>/estilos.css">\n</head>|' "$PROJETO/header.php"
    fi
    echo "   header.php corrigido."
else
    echo "   header.php não encontrado — pulando."
fi
echo ""

# ── ETAPA 7: Corrigir header_public.php ─────────────────────
echo "[8/10] Corrigindo header_public.php..."
if [ -f "$PROJETO/header_public.php" ]; then
    if ! grep -q 'tenantSlug' "$PROJETO/header_public.php"; then
        # Adiciona após o link do custom.css
        sedi 's|<link rel="stylesheet" href="assets/css/custom.css">|<link rel="stylesheet" href="assets/css/custom.css">\n    <?php\n    require_once __DIR__ . '"'"'/config/db.php'"'"';\n    \$company = current_company();\n    \$tenantSlug = preg_replace('"'"'/[^a-z0-9_-]/'"'"', '"'"''"'"', strtolower(\$company['"'"'slug'"'"'] ?? '"'"'default'"'"'));\n    ?>\n    <link rel="stylesheet" href="css/<?php echo \$tenantSlug; ?>/estilos.css">|' "$PROJETO/header_public.php"
    fi
    echo "   header_public.php corrigido."
else
    echo "   header_public.php não encontrado — pulando."
fi
echo ""

# ── ETAPA 8: Corrigir visibilidade no style.php ─────────────
echo "[9/10] Corrigindo visibilidade no style.php..."
STYLE="$PROJETO/modules/settings/style.php"
if [ -f "$STYLE" ]; then
    # Fix 1: --text-muted escuro demais
    sedi "s/--text-muted:#555871/--text-muted:#a0a4b8/g" "$STYLE"

    # Fix 2: .color-hex-input com cor preta hardcoded
    sedi "s/\.color-hex-input{flex:1;border:none;background:transparent;padding:8px 12px;color:#000000/.color-hex-input{flex:1;border:none;background:transparent;padding:8px 12px;color:var(--text-primary)/g" "$STYLE"

    # Fix 3: --bg-input muito transparente
    sedi "s/--bg-input:rgba(255,255,255,.04)/--bg-input:rgba(255,255,255,.08)/g" "$STYLE"

    echo "   style.php corrigido."
else
    echo "   style.php não encontrado — pulando."
fi
echo ""

# ── ETAPA 9: Corrigir módulos com cores hardcoded ───────────
echo "[10/10] Corrigindo módulos com cores hardcoded..."

# --- imoveis/form.php ---
IMOVEIS_FORM="$PROJETO/modules/imoveis/form.php"
if [ -f "$IMOVEIS_FORM" ]; then
    sedi 's/#dc3545/var(--danger-color)/g' "$IMOVEIS_FORM"
    sedi 's/#4361ee/var(--primary-color)/g' "$IMOVEIS_FORM"
    sedi 's/#f8f9fa/var(--body-background)/g' "$IMOVEIS_FORM"
    sedi 's/#e0e0e0/var(--card-border-color)/g' "$IMOVEIS_FORM"
    sedi 's/#6c757d/var(--text-color)/g' "$IMOVEIS_FORM"
    sedi 's/#495057/var(--text-color)/g' "$IMOVEIS_FORM"
    sedi 's/#f0f4ff/color-mix(in srgb, var(--primary-color) 5%, transparent)/g' "$IMOVEIS_FORM"
    sedi 's/padding: 1\.25rem/padding: 16px/g' "$IMOVEIS_FORM"
    sedi "s/border-radius: 0\.75rem/border-radius: var(--card-radius)/g" "$IMOVEIS_FORM"
    sedi "s/border-radius: 0\.5rem/border-radius: 8px/g" "$IMOVEIS_FORM"
    echo "   imoveis/form.php corrigido."
fi

# --- contratos_locacao/facilitador.php ---
FACILITADOR="$PROJETO/modules/contratos_locacao/facilitador.php"
if [ -f "$FACILITADOR" ]; then
    sedi 's/--fac-primary: #1a365d/--fac-primary: var(--heading-color)/g' "$FACILITADOR"
    sedi 's/--fac-accent: #c53030/--fac-accent: var(--danger-color)/g' "$FACILITADOR"
    sedi 's/--fac-bg: #f7fafc/--fac-bg: var(--body-background)/g' "$FACILITADOR"
    sedi 's/--fac-card: #ffffff/--fac-card: var(--form-control-bg)/g' "$FACILITADOR"
    sedi 's/--fac-border: #e2e8f0/--fac-border: var(--card-border-color)/g' "$FACILITADOR"
    sedi 's/--fac-text: #2d3748/--fac-text: var(--text-color)/g' "$FACILITADOR"
    sedi 's/--fac-success: #38a169/--fac-success: var(--success-color)/g' "$FACILITADOR"
    sedi 's/padding: 30px/padding: 16px/g' "$FACILITADOR"
    echo "   contratos_locacao/facilitador.php corrigido."
fi

# --- contratos_locacao/form.php ---
CONTRATO_FORM="$PROJETO/modules/contratos_locacao/form.php"
if [ -f "$CONTRATO_FORM" ]; then
    sedi 's/#f0f9ff/color-mix(in srgb, var(--primary-color) 5%, transparent)/g' "$CONTRATO_FORM"
    sedi 's/#0ea5e9/var(--primary-color)/g' "$CONTRATO_FORM"
    sedi 's/#e0f2fe/color-mix(in srgb, var(--primary-color) 10%, transparent)/g' "$CONTRATO_FORM"
    sedi 's/#fde047/color-mix(in srgb, var(--warning-color) 15%, transparent)/g' "$CONTRATO_FORM"
    sedi 's/#eab308/var(--warning-color)/g' "$CONTRATO_FORM"
    sedi 's/#fef08a/color-mix(in srgb, var(--warning-color) 10%, transparent)/g' "$CONTRATO_FORM"
    sedi 's/background-color: #e9ecef/background-color: var(--body-background)/g' "$CONTRATO_FORM"
    echo "   contratos_locacao/form.php corrigido."
fi

# --- relatorios/index.php ---
REL_INDEX="$PROJETO/modules/relatorios/index.php"
if [ -f "$REL_INDEX" ]; then
    sedi 's/#e9ecef/var(--card-border-color)/g' "$REL_INDEX"
    sedi 's/#495057/var(--text-color)/g' "$REL_INDEX"
    sedi 's/#6c757d/var(--text-color)/g' "$REL_INDEX"
    sedi 's/#f8f9fa/var(--body-background)/g' "$REL_INDEX"
    sedi 's/font-size: 24px/font-size: 20px/g' "$REL_INDEX"
    sedi 's/border-radius: 12px/border-radius: var(--card-radius)/g' "$REL_INDEX"
    sedi "s/linear-gradient(135deg, #4361ee 0%, #3a0ca3 100%)/var(--primary-color)/g" "$REL_INDEX"
    sedi "s/linear-gradient(135deg, #10b981 0%, #059669 100%)/var(--success-color)/g" "$REL_INDEX"
    sedi "s/linear-gradient(135deg, #f59e0b 0%, #d97706 100%)/var(--warning-color)/g" "$REL_INDEX"
    sedi "s/linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%)/var(--primary-color)/g" "$REL_INDEX"
    sedi "s/linear-gradient(135deg, #ef4444 0%, #b91c1c 100%)/var(--danger-color)/g" "$REL_INDEX"
    sedi "s/linear-gradient(135deg, #10b981 0%, #047857 100%)/var(--success-color)/g" "$REL_INDEX"
    echo "   relatorios/index.php corrigido."
fi

# --- vistorias/form.php ---
VIST_FORM="$PROJETO/modules/vistorias/form.php"
if [ -f "$VIST_FORM" ]; then
    sedi 's/#dee2e6/var(--card-border-color)/g' "$VIST_FORM"
    sedi 's/#fafafa/var(--body-background)/g' "$VIST_FORM"
    sedi 's/#4361ee/var(--primary-color)/g' "$VIST_FORM"
    sedi 's/#f0f4ff/color-mix(in srgb, var(--primary-color) 5%, transparent)/g' "$VIST_FORM"
    sedi 's/padding: 2rem/padding: 16px/g' "$VIST_FORM"
    echo "   vistorias/form.php corrigido."
fi

# --- empresas/form.php ---
EMP_FORM="$PROJETO/modules/empresas/form.php"
if [ -f "$EMP_FORM" ]; then
    sedi 's/background: #f8f9fa/background: var(--body-background)/g' "$EMP_FORM"
    sedi 's/background-color: #f8f9fa/background-color: var(--body-background)/g' "$EMP_FORM"
    sedi 's/border-color: #dee2e6/border-color: var(--card-border-color)/g" "$EMP_FORM"
    sedi 's/#4361ee/var(--primary-color)/g' "$EMP_FORM"
    sedi 's/#1a202c/var(--text-color)/g' "$EMP_FORM"
    echo "   empresas/form.php corrigido."
fi

# --- cliente/fiadores_form.php ---
FIADORES="$PROJETO/modules/cliente/fiadores_form.php"
if [ -f "$FIADORES" ]; then
    sedi 's/#f0f9ff/color-mix(in srgb, var(--primary-color) 5%, transparent)/g' "$FIADORES"
    sedi 's/#0ea5e9/var(--primary-color)/g' "$FIADORES"
    echo "   cliente/fiadores_form.php corrigido."
fi

# --- relatorios/financeiro.php ---
REL_FIN="$PROJETO/modules/relatorios/financeiro.php"
if [ -f "$REL_FIN" ]; then
    sedi 's/#10b981/var(--success-color)/g' "$REL_FIN"
    sedi 's/#ef4444/var(--danger-color)/g' "$REL_FIN"
    echo "   relatorios/financeiro.php corrigido."
fi

# --- Arquivos de impressão: apenas fonte + link tenant ---
for PRINT_FILE in \
    "modules/contratos_locacao/print.php" \
    "modules/contratos_locacao/print_manual.php" \
    "modules/recibos/print.php" \
    "modules/relatorios/print.php" \
    "modules/contratos_locacao/revisar.php"
do
    FULL="$PROJETO/$PRINT_FILE"
    if [ -f "$FULL" ]; then
        sedi "s/font-family: 'Times New Roman', Times, serif/font-family: var(--body-font-family)/g" "$FULL"
        sedi "s/font-family: Inter, system-ui, sans-serif/font-family: var(--body-font-family)/g" "$FULL"
        sedi "s/font-family: Inter, system-ui, -apple-system, sans-serif/font-family: var(--body-font-family)/g" "$FULL"
        sedi "s/font-family:Arial/font-family: var(--body-font-family)/g" "$FULL"
        sedi 's/#dee2e6/var(--card-border-color)/g' "$FULL"
        sedi 's/border-radius: 12px/border-radius: var(--card-radius)/g' "$FULL"
        sedi 's/padding: 28px/padding: 20px/g' "$FULL"
        sedi 's/padding: 24px/padding: 20px/g' "$FULL"
        echo "   $PRINT_FILE corrigido."
    fi
done

echo ""
echo "============================================"
echo " CONCLUÍDO!"
echo "============================================"
echo ""
echo " Resumo:"
echo "   Backup: $BACKUP"
echo "   custom.css: substituído (100% variáveis)"
echo "   ui.php: substituído (sem bg-dark/text-white)"
echo "   style.php: visibilidade corrigida"
echo "   header.php: carrega custom.css + estilos.css"
echo "   empresa_N.css: removidos"
echo "   css/default/estilos.css: criado (fallback)"
echo "   Módulos: cores hardcoded → variáveis"
echo "   Impressão: fontes variabilizadas"
echo ""
echo " ⚠  FALTA FAZER MANUALMENTE:"
echo "   1. Rodar o SQL para adicionar campo slug"
echo "   2. Verificar se o slug bate com a pasta em css/"
echo "   3. Testar no navegador (F12 > Console)"
echo ""
