

/**
 * style.css - Folha de Estilos Consolidada
 * * Contém toda a identidade corporativa executiva do app, as regras dos painéis,
 * modais de listagem e configurações responsivas para celulares.
 */

:root {
    --brand-dark: #0f2537;      
    --brand-medium: #1b3d54;    
    --brand-accent: #c5a059;    
    --brand-light: #f4f7f9;     
    --brand-sky: #4b86b4;       
    --bg-color: #e6ecf0;
    --card-bg: #ffffff;
    --border-color: #d1dbe3;
    --text-color: #24323d;
    --success: #27ae60;
    --danger: #e74c3c;
    --warning: #f39c12;
}

* { 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0; 
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
}

body { 
    background-color: var(--bg-color); 
    color: var(--text-color); 
    padding: 0; 
    margin: 0; 
    line-height: 1.6; 
    min-height: 100vh; 
    display: flex; 
    flex-direction: column; 
}

#appMain { 
    padding: 30px 20px; 
}

.container { 
    max-width: 950px; 
    margin: 0 auto; 
    background: var(--card-bg); 
    border-radius: 12px; 
    box-shadow: 0 10px 30px rgba(15, 37, 55, 0.1); 
    overflow: hidden; 
    border: 1px solid var(--border-color); 
    position: relative; 
}

header { 
    text-align: center; 
    background-color: var(--brand-dark); 
    color: white; 
    padding: 55px 20px 20px 20px; 
    border-bottom: 5px solid var(--brand-accent); 
    position: relative; 
}

header h1 { 
    font-size: 22px; 
    white-space: nowrap; 
    text-transform: uppercase; 
    letter-spacing: 1.5px; 
    margin-bottom: 8px; 
    font-weight: 600; 
}

header p { 
    color: var(--brand-accent); 
    font-weight: 500; 
    font-size: clamp(9px, 2.5vw, 14px); 
    letter-spacing: 2px; 
    text-transform: uppercase; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    max-width: 100%; 
    margin: 0 auto; 
}

.menu-container { 
    position: absolute; 
    top: 15px; 
    right: 20px; 
    z-index: 100; 
}

.menu-btn { 
    background: transparent; 
    border: none; 
    color: white; 
    font-size: 28px; 
    cursor: pointer; 
    transition: color 0.3s; 
}

.menu-btn:hover { 
    color: var(--brand-accent); 
}

.menu-dropdown { 
    display: none; 
    position: absolute; 
    top: 40px; 
    right: 0; 
    background: white; 
    min-width: 220px; 
    box-shadow: 0 8px 24px rgba(0,0,0,0.15); 
    border-radius: 8px; 
    overflow: hidden; 
    border: 1px solid var(--border-color); 
    text-align: left; 
}

.menu-dropdown.active { 
    display: block; 
    animation: fadeInMenu 0.2s ease; 
}

.menu-dropdown a { 
    display: flex; 
    align-items: center; 
    gap: 12px; 
    padding: 12px 18px; 
    color: var(--brand-dark); 
    text-decoration: none; 
    font-size: 14px; 
    font-weight: 600; 
    border-bottom: 1px solid var(--border-color); 
}

.menu-dropdown a:hover { 
    background: var(--brand-light); 
    color: var(--brand-sky); 
}

.wizard-header { 
    background: #fff; 
    padding: 20px 35px; 
    border-bottom: 1px solid var(--border-color); 
}

.progress-container { 
    display: flex; 
    justify-content: space-between; 
    position: relative; 
    margin-bottom: 10px; 
}

.progress-container::before { 
    content: ''; 
    background-color: var(--border-color); 
    position: absolute; 
    top: 50%; 
    left: 0; 
    transform: translateY(-50%); 
    height: 4px; 
    width: 100%; 
    z-index: 1; 
}

.progress-bar { 
    background-color: var(--brand-sky); 
    position: absolute; 
    top: 50%; 
    left: 0; 
    transform: translateY(-50%); 
    height: 4px; 
    width: 0%; 
    z-index: 1; 
    transition: width 0.4s ease; 
}

.progress-step { 
    background-color: #fff; 
    border: 3px solid var(--border-color); 
    border-radius: 50%; 
    width: 30px; 
    height: 30px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    font-size: 12px; 
    font-weight: bold; 
    color: var(--brand-medium); 
    z-index: 2; 
    transition: all 0.4s ease; 
}

.progress-step.active { 
    border-color: var(--brand-sky); 
    background-color: var(--brand-sky); 
    color: #fff; 
}

.progress-step.completed { 
    border-color: var(--brand-accent); 
    background-color: var(--brand-accent); 
    color: #fff; 
}

form { 
    padding: 0 35px 35px 35px; 
}

.step-panel { 
    display: none; 
    animation: fadeIn 0.4s ease; 
    padding-top: 25px; 
}

.step-panel.active { 
    display: block; 
}

.step-title { 
    font-size: 18px; 
    color: var(--brand-dark); 
    margin-bottom: 20px; 
    border-bottom: 2px solid var(--brand-accent); 
    padding-bottom: 8px; 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.5px; 
}

.section-subtitle { 
    font-size: 13px; 
    color: var(--brand-medium); 
    font-weight: 700; 
    text-transform: uppercase; 
    margin-bottom: 10px; 
    margin-top: 25px; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    border-bottom: 1px dashed var(--border-color); 
    padding-bottom: 5px; 
}

.form-row { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 20px; 
    margin-bottom: 15px; 
}

.form-group { 
    display: flex; 
    flex-direction: column; 
    flex: 1; 
    min-width: 220px; 
    position: relative; 
}

.form-group.col-6 { 
    flex: 0 0 calc(50% - 10px); 
}

.form-group.col-4 { 
    flex: 0 0 calc(33.33% - 13px); 
}

label { 
    font-size: 12px; 
    margin-bottom: 6px; 
    color: var(--brand-medium); 
    font-weight: 700; 
    text-transform: uppercase; 
}

input[type="text"], input[type="number"], input[type="date"], input[type="password"], textarea, select { 
    padding: 12px; 
    border: 1px solid var(--border-color); 
    border-radius: 6px; 
    font-size: 14px; 
    background-color: #fbfcfd; 
    color: var(--text-color); 
    width: 100%; 
}

.dynamic-table { 
    width: 100%; 
    border-collapse: collapse; 
    margin-top: 10px; 
    margin-bottom: 15px; 
    border-radius: 6px; 
    overflow: hidden; 
    border: 1px solid var(--border-color); 
}

.dynamic-table th, .dynamic-table td { 
    padding: 10px; 
    border: 1px solid var(--border-color); 
    font-size: 14px; 
}

.dynamic-table th { 
    background-color: var(--brand-medium); 
    color: white; 
    font-size: 12px; 
    text-transform: uppercase; 
}

.btn { 
    padding: 12px 22px; 
    border: none; 
    border-radius: 6px; 
    cursor: pointer; 
    font-weight: 600; 
    font-size: 13px; 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    gap: 8px; 
    text-transform: uppercase; 
}

.btn-secondary { 
    background-color: #e2ebf0; 
    color: var(--brand-dark); 
    border: 1px solid var(--border-color); 
}

.btn-danger { 
    background-color: var(--danger); 
    color: white; 
    padding: 8px 12px; 
    font-size: 11px; 
}

.total-container { 
    text-align: right; 
    margin-top: 20px; 
    font-size: 18px; 
    font-weight: 700; 
    color: var(--brand-dark); 
    background: #eef3f7; 
    padding: 15px 20px; 
    border-radius: 6px; 
    border-right: 5px solid var(--brand-accent); 
}

.wizard-footer { 
    display: flex; 
    justify-content: space-between; 
    margin-top: 30px; 
    padding-top: 20px; 
    border-top: 1px solid var(--border-color); 
}

.btn-nav { 
    padding: 14px 30px; 
    font-size: 14px; 
    background-color: var(--brand-dark); 
    color: white; 
}

.btn-nav:hover { 
    background-color: var(--brand-sky); 
}

.btn-nav:disabled { 
    background-color: #a0aab2; 
    cursor: not-allowed; 
}

.photo-upload-wrapper { 
    border: 2px dashed var(--border-color); 
    padding: 20px; 
    border-radius: 8px; 
    background-color: #fff; 
    text-align: center; 
    margin-bottom: 15px; 
    cursor: pointer; 
}

.photo-preview-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); 
    gap: 20px; 
    margin-top: 20px; 
}

.photo-item-card { 
    background: #fff; 
    border: 1px solid var(--border-color); 
    border-radius: 8px; 
    padding: 12px; 
    display: flex; 
    flex-direction: column; 
    gap: 10px; 
}

.photo-item-card img { 
    width: 100%; 
    height: 150px; 
    object-fit: contain; 
}

/* SISTEMA E CARTÕES DE PAGAMENTO */
.system-view { 
    display: none; 
    min-height: 100vh; 
    width: 100%; 
    align-items: center; 
    justify-content: center; 
    background: var(--brand-dark); 
    background-image: radial-gradient(circle at 50% -20%, #1b3d54, #0f2537); 
    position: absolute; 
    top: 0; 
    left: 0; 
    z-index: 500; 
    padding: 20px; 
}

.system-view.active { 
    display: flex; 
    animation: fadeIn 0.4s ease; 
}

.auth-card { 
    background: #fff; 
    width: 100%; 
    max-width: 450px; 
    border-radius: 12px; 
    box-shadow: 0 15px 35px rgba(0,0,0,0.3); 
    padding: 40px 30px; 
    text-align: center; 
    border-top: 5px solid var(--brand-accent); 
}

.auth-card h2 { 
    color: var(--brand-dark); 
    margin-bottom: 5px; 
    font-weight: 700; 
    text-transform: uppercase; 
}

.auth-card p.subtitle { 
    color: var(--brand-sky); 
    font-size: 13px; 
    margin-bottom: 25px; 
    text-transform: uppercase; 
}

.auth-form { 
    display: flex; 
    flex-direction: column; 
    gap: 15px; 
    text-align: left; 
}

.auth-btn { 
    background: var(--brand-accent); 
    color: var(--brand-dark); 
    border: none; 
    padding: 15px; 
    font-size: 15px; 
    font-weight: 700; 
    border-radius: 6px; 
    cursor: pointer; 
    text-transform: uppercase; 
}

.alert-box { 
    padding: 12px; 
    border-radius: 6px; 
    font-size: 13px; 
    text-align: center; 
    display: none; 
    margin-bottom: 15px; 
    font-weight: 600; 
}

.alert-error { 
    background: #fdeaea; 
    color: var(--danger); 
    border: 1px solid #f5c6c6; 
}

.alert-success { 
    background: #e9f7ef; 
    color: var(--success); 
    border: 1px solid #c3e6cb; 
}

/* PLANOS GRID */
.plans-container { 
    max-width: 1000px; 
    width: 100%; 
}

.plans-header { 
    text-align: center; 
    color: white; 
    margin-bottom: 40px; 
}

.plans-header h2 { 
    font-size: 28px; 
    margin-bottom: 10px; 
    text-transform: uppercase; 
    color: var(--brand-accent); 
}

.plans-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); 
    gap: 25px; 
    margin-bottom: 30px; 
}

.plan-card { 
    background: #fff; 
    border-radius: 12px; 
    padding: 30px 20px; 
    text-align: center; 
    position: relative; 
    border: 2px solid transparent; 
    transition: transform 0.3s, box-shadow 0.3s; 
    cursor: pointer; 
    display: flex; 
    flex-direction: column; 
}

.plan-card:hover { 
    transform: translateY(-10px); 
    box-shadow: 0 15px 30px rgba(0,0,0,0.2); 
    border-color: var(--brand-sky); 
}

.plan-card.best-choice { 
    border-color: var(--brand-accent); 
    box-shadow: 0 10px 25px rgba(197, 160, 89, 0.15); 
    transform: scale(1.05); 
    z-index: 10; 
}

.ribbon { 
    position: absolute; 
    top: -15px; 
    right: -15px; 
    background: var(--brand-accent); 
    color: var(--brand-dark); 
    font-size: 11px; 
    font-weight: 800; 
    padding: 8px 15px; 
    border-radius: 20px; 
    text-transform: uppercase; 
}

.plan-title { 
    font-size: 18px; 
    color: var(--brand-medium); 
    font-weight: 700; 
    text-transform: uppercase; 
    margin-bottom: 15px; 
}

.plan-price { 
    font-size: 36px; 
    color: var(--brand-dark); 
    font-weight: 800; 
    margin-bottom: 20px; 
}

.plan-features { 
    list-style: none; 
    padding: 0; 
    margin-bottom: 30px; 
    flex-grow: 1; 
}

.plan-features li { 
    font-size: 14px; 
    color: #555; 
    margin-bottom: 10px; 
    padding-bottom: 10px; 
    border-bottom: 1px solid var(--border-color); 
}

.btn-select-plan { 
    background: var(--brand-sky); 
    color: white; 
    padding: 12px; 
    border: none; 
    border-radius: 6px; 
    font-weight: 700; 
    cursor: pointer; 
    width: 100%; 
    text-transform: uppercase; 
}

.plan-card.best-choice .btn-select-plan { 
    background: var(--brand-accent); 
    color: var(--brand-dark); 
}

.coupon-section { 
    background: rgba(255,255,255,0.1); 
    padding: 20px; 
    border-radius: 8px; 
    text-align: center; 
    max-width: 400px; 
    margin: 0 auto 30px auto; 
    display: flex; 
    gap: 10px; 
}

.coupon-section input { 
    flex: 1; 
    padding: 12px; 
    border: none; 
    border-radius: 6px; 
    font-weight: bold; 
}

.btn-trial { 
    background: transparent; 
    color: #fff; 
    border: 2px solid var(--brand-accent); 
    padding: 15px 30px; 
    font-size: 14px; 
    font-weight: bold; 
    border-radius: 30px; 
    cursor: pointer; 
    text-transform: uppercase; 
    margin: 0 auto; 
    display: block;
}

.checkout-card { 
    background: #fff; 
    max-width: 500px; 
    margin: 0 auto; 
    border-radius: 12px; 
    padding: 30px; 
    text-align: center; 
}

.pix-code-box { 
    background: #f4f7f9; 
    border: 1px dashed var(--brand-sky); 
    padding: 15px; 
    margin: 20px 0; 
    border-radius: 8px; 
    word-break: break-all; 
    font-family: monospace; 
}

.btn-copy-pix { 
    background: var(--brand-medium); 
    color: white; 
    border: none; 
    padding: 12px 20px; 
    border-radius: 6px; 
    font-weight: bold; 
    cursor: pointer; 
    width: 100%; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    gap: 10px; 
}

@keyframes fadeIn { 
    from { opacity: 0; transform: translateY(-5px); } 
    to { opacity: 1; transform: translateY(0); } 
}

@keyframes fadeInMenu {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 768px) {
    .plans-grid { 
        grid-template-columns: 1fr; 
    }
    .plan-card.best-choice { 
        transform: scale(1); 
    }
}
