/* Camada global de legibilidade para um público majoritariamente mais velho. */
:root {
    --text: #102a3e;
    --muted: #405568;
    --line: #bccad4;
}

body {
    color: #102a3e;
    font-size: 17px;
}

main {
    line-height: 1.65;
}

main p { line-height: 1.7; }
main small { color: #405568; font-size: 13px; line-height: 1.5; }

.page-heading p,
.auth-shell > p,
.hero-copy > p,
.lottery-card p,
.benefit-card p,
.section-head p,
.generator-form > p,
.lesson-copy p,
.lessons-empty p,
.checkout-heading p,
.checkout-plan-summary p,
.checkout-access-options p,
.admin-login-intro > p,
.admin-login-card > p,
.admin-create-card > p,
.plan-card-head p,
.community-list-card > p,
.reviewed-payment-panel p,
.sales-section-heading p,
.sales-feature-grid p,
.sales-about-copy p,
.sales-how p,
.sales-faq details p,
.muted {
    color: #405568;
}

.field label,
.toggle-field,
.generator-form legend,
.feature-picker legend,
.history-rename label {
    color: #20394d;
    font-size: 14px;
    font-weight: 750;
}

.field small,
.checker-inputs small,
.table-secondary,
.email-composer .field small,
.email-recipient-head small,
.email-recipient-list small,
.feature-option small,
.community-stat small,
.community-member small,
.admin-account small,
.checkout-access-options > small,
.checkout-auth-context > small,
.thumbnail-upload-field small,
.stream-upload-progress small {
    color: #465b6d;
    font-size: 13px;
    line-height: 1.5;
}

.field input,
.field select,
.field textarea,
.checker-inputs textarea,
.generator-form select,
.history-rename input {
    min-height: 48px;
    border-color: #9fadb9;
    background: #fff;
    color: #102a3e;
    font-size: 16px;
}

.field input::placeholder,
.field textarea::placeholder,
.checker-inputs textarea::placeholder {
    color: #586b7a;
    opacity: 1;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.checker-inputs textarea:focus,
.generator-form select:focus {
    border-color: #07577f;
    box-shadow: 0 0 0 3px rgba(7, 87, 127, .2);
}

.button,
.icon-button,
.history-open,
.table-action {
    min-height: 44px;
    font-size: 15px;
    line-height: 1.35;
}

.button-small {
    min-height: 42px;
    font-size: 14px;
}

.button-ghost {
    border-color: #9eafbb;
    color: #173e58;
}

.eyebrow {
    color: #075074;
    font-size: 13px;
    line-height: 1.4;
}

.eyebrow::before {
    background: #9a7117;
}

.auth-foot,
.auth-help,
.back-link,
.card-link,
.benefit-card strong,
.section-head a,
.plan-cycle {
    font-size: 14px;
}

.auth-foot a,
.auth-help a,
.back-link,
.card-link,
.benefit-card strong,
.section-head a,
.plan-cycle,
.payment-admin-summary a {
    color: #07577f;
    font-weight: 800;
}

.badge,
.badge.neutral,
.plan-status,
.current-admin,
.card-lock,
.lesson-status,
.stream-connection,
.stream-card-status {
    font-size: 13px;
}

.badge.neutral {
    background: #e7edf2;
    color: #344b5d;
    border-color: #c4d0d9;
}

.access-locked {
    opacity: 1;
}

.card-lock {
    background: #fff1cc;
    color: #664700;
}

table,
.analysis-table {
    font-size: 15px;
}

th,
.analysis-table th {
    color: #354b5d;
    font-size: 13px;
    letter-spacing: .035em;
}

td,
.analysis-table td {
    color: #1e3548;
}

.responsive-table td::before,
.responsive-table td:before {
    color: #3f5668;
    font-size: 12px;
}

.topbar .desktop-nav,
.admin-navigation.desktop-nav,
.user-navigation.desktop-nav {
    color: #324b5e;
    font-size: 15px;
}

.nav-dropdown-title,
.mobile-nav-section {
    color: #4a6172;
    font-size: 12px;
}

.nav-dropdown-menu strong {
    color: #15344b;
    font-size: 15px;
}

.nav-dropdown-menu small {
    color: #43596b;
    font-size: 13px;
}

.nav-account b,
.nav-logout {
    font-size: 14px !important;
}

.nav-lock {
    background: #ffe9b7;
    color: #654300;
    font-size: 12px;
}

/* Loterias: cores vivas ficam decorativas; texto e ações usam uma mistura escura. */
.lottery-page {
    --lottery-deep: color-mix(in srgb, var(--lottery-color) 18%, #063a55);
    --lottery-line: color-mix(in srgb, var(--lottery-color) 26%, #aebdc8);
    --lottery-soft: color-mix(in srgb, var(--lottery-color) 9%, #fff);
    color: #102a3e;
}

.lottery-page .eyebrow,
.lottery-page .back-link,
.lottery-page .card-link,
.lottery-page .filter-all b,
.lottery-page .checker-summary-card b,
.lottery-page .applied-patterns > strong {
    color: var(--lottery-deep);
}

.lottery-page .eyebrow::before {
    background: var(--lottery-deep);
}

.lottery-page .lottery-title p,
.lottery-page .generator-form > p,
.lottery-page .filter-option small,
.lottery-page .checker-file-import > span,
.lottery-page .table-extra,
.lottery-page .no-hits {
    color: #405568;
}

.lottery-page .game-format {
    border-color: var(--lottery-line);
    background: var(--lottery-soft);
    color: #20384b;
    font-size: 14px;
    font-weight: 700;
}

.lottery-page .lottery-tools-nav a {
    color: #2f4659;
    font-size: 15px;
}

.lottery-page .lottery-tools-nav a:hover {
    background: var(--lottery-soft);
    color: #102a3e;
}

.lottery-page .lottery-tools-nav a.active,
.lottery-page .button:not(.button-ghost),
.lottery-page .number-picker input:checked + span {
    border-color: var(--lottery-deep);
    background: linear-gradient(135deg, var(--lottery-deep), color-mix(in srgb, var(--lottery-color) 12%, #0b5473));
    color: #fff;
}

.lottery-page .field label {
    color: #20394d;
    font-size: 15px;
}

.lottery-page .field input:focus,
.lottery-page .field select:focus,
.lottery-page .checker-inputs textarea:focus,
.lottery-page .generator-form select:focus {
    border-color: var(--lottery-deep);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--lottery-deep) 20%, transparent);
}

.lottery-page .filter-card legend,
.lottery-page .filter-option b {
    color: #193448;
    font-size: 15px;
}

.lottery-page .filter-option small {
    font-size: 14px;
}

.lottery-page .filter-all {
    background: var(--lottery-soft);
}

.lottery-page .selection-toolbar strong,
.lottery-page .checker-filter-bar > strong,
.lottery-page .checker-summary-card,
.lottery-page .pattern-chip,
.lottery-page .applied-patterns {
    color: #2d4558;
    font-size: 14px;
}

.lottery-page .number-picker span,
.game-ball,
.table-ball,
.checker-results-table .matched-numbers i {
    font-size: 13px;
}

.status,
.contest-info,
.award-list,
.checker-results-table .award-list {
    font-size: 14px;
}

.game-index {
    color: #465b6d;
    font-size: 12px;
}

.empty-state,
.coming-soon {
    color: #405568;
    font-size: 15px;
}

/* Cursos e cards que recebem cores variáveis. */
.course-label,
.course-card-footer strong,
.course-play {
    color: #174d6a;
}

.course-label,
.course-card-footer,
.course-card-footer strong,
.course-card-copy p {
    font-size: 14px;
}

.course-card-copy p,
.course-card-footer {
    color: #405568;
}

.lesson-copy p,
.lessons-empty p,
.course-progress-summary > div:first-child {
    color: #405568;
    font-size: 14px;
}

/* Administração, análises e informações auxiliares. */
.feature-option strong,
.email-recipient-list strong,
.community-member strong,
.admin-account strong,
.analytics-ranking strong {
    color: #17364d;
    font-size: 14px;
}

.feature-option small,
.email-recipient-list small,
.community-member small,
.admin-account small,
.analytics-ranking small,
.analytics-log .table-secondary,
.login-user-agent {
    color: #405568;
    font-size: 13px;
}

.community-stat span,
.analytics-stat span,
.analytics-stat small,
.analytics-ranking .analytics-empty,
.pagbank-stats span,
.pagbank-readiness dt,
.pagbank-events th {
    color: #405568;
    font-size: 13px;
}

.community-list-card > p,
.admin-security-note span,
.admin-create-card > p,
.admin-login-card > p {
    color: #405568;
    font-size: 14px;
}

.community-member span {
    color: #314a5d;
    font-size: 13px;
}

.empty-state,
.admin-users-empty p {
    color: #405568;
}

.analytics-bar-column small,
.analytics-bar-value {
    color: #354c5e;
    font-size: 12px;
    opacity: 1;
}

/* Pagamentos: converte os blocos antigos escuros em superfícies claras e legíveis. */
.payment-admin-item,
.payment-customer-info,
.payment-detail-grid > div,
.payment-record-data > div,
.receipt-upload,
.receipt-card,
.admin-receipts {
    border-color: #c2ced7;
    background: #f7fafc;
    color: #20384b;
}

.payment-stats strong,
.payment-detail-grid span,
.payment-record-data dd,
.receipt-card,
.receipt-card b {
    color: #183247;
}

.payment-meta > span:not(.badge),
.reviewed-info,
.payment-step-help,
.renewal-heading p,
.payment-stats span,
.payment-detail-grid b,
.payment-record-data dt,
.receipt-card small,
.admin-payment-table td small,
.reviewed-payment-panel p,
.receipt-upload label span {
    color: #405568;
    font-size: 13px;
}

.payment-admin-summary a,
.admin-payment-table .payment-email,
.payment-code,
.receipt-links a {
    color: #07577f;
    font-size: 14px;
    font-weight: 800;
}

.receipt-count {
    border-color: #aebdc8;
    color: #354d5f;
    font-size: 13px;
}

.receipt-count.has-receipt {
    border-color: #86aabc;
    background: #eaf4f8;
    color: #07577f;
}

.payment-warning,
.payment-admin-note {
    border-color: #c59a32;
    background: #fff4d6;
    color: #624400;
    font-size: 14px;
}

/* Checkout, cookies e mensagens. */
.checkout-plan-label,
.checkout-auth-context > span,
.selected-plan-label {
    color: #075074;
    font-size: 13px;
}

.checkout-price span,
.checkout-plan-summary p,
.checkout-access-options p,
.admin-user-filter-actions,
.admin-user-results td > small {
    color: #405568;
}

.cookie-consent-copy p {
    color: #354f61;
    font-size: 15px;
}

.cookie-consent-copy a {
    color: #07577f;
    font-size: 14px;
}

.footer {
    color: #405568;
    font-size: 13px;
}

@media (max-width: 800px) {
    .topbar .mobile-nav > a,
    .topbar .mobile-nav .link-button {
        color: #20394d;
        font-size: 16px;
    }

    .lottery-page .lottery-tools-nav a {
        font-size: 14px;
    }

    .responsive-table td::before,
    .responsive-table td:before {
        font-size: 13px;
    }
}

@media (prefers-contrast: more) {
    :root { --line: #91a3b0; }
    .panel, .lottery-card, .field input, .field select, .field textarea { border-width: 2px; }
}

/* Revisão 2026-09-11: contraste reforçado para textos funcionais e público sênior. */
.lottery-page .eyebrow,
.lottery-page .back-link,
.lottery-page .card-link,
.lottery-page .filter-all b,
.lottery-page .checker-summary-card b,
.lottery-page .applied-patterns > strong {
    color: #075074 !important;
}

.lottery-page .eyebrow::before { background: #8b6718; }

.lottery-page .lottery-title p,
.lottery-page .generator-form > p,
.lottery-page .filter-option small,
.lottery-page .checker-file-import > span,
.lottery-page .table-extra,
.lottery-page .no-hits {
    color: #354d60 !important;
}

.lottery-page .lottery-tools-nav a {
    color: #263f53 !important;
    font-size: 15px;
    font-weight: 800;
}

.lottery-page .lottery-tools-nav a.active,
.lottery-page .button:not(.button-ghost),
.lottery-page .number-picker input:checked + span {
    border-color: #064c6b !important;
    background: linear-gradient(135deg, #064c6b, #087398) !important;
    color: #fff !important;
}

.lottery-page .field label {
    color: #17364d !important;
    font-size: 15px;
    font-weight: 800;
}

.lottery-page .field small,
.lottery-page .generate-controls small {
    color: #405568 !important;
    font-size: 14px;
}

.lottery-page .filter-card legend,
.lottery-page .filter-option b {
    color: #17364d !important;
    font-size: 15px;
}

.lottery-page .filter-option small { font-size: 14px; }

.lottery-page .filter-all {
    border: 1px solid #c8d8df;
    background: #eef7f8 !important;
}

.lottery-page .filter-option:has(input:checked) b { color: #102a3e !important; }

.lottery-page .selection-toolbar strong,
.lottery-page .checker-filter-bar > strong,
.lottery-page .checker-summary-card,
.lottery-page .pattern-chip,
.lottery-page .applied-patterns {
    color: #263f53 !important;
    font-size: 14px;
}

.lottery-page .status--info { color: #263f53; }

.analytics-stat small,
.analytics-ranking small,
.analytics-log .table-secondary { color: #354d60; }

.footer {
    color: #354d60;
    font-size: 14px;
}

.flash,
.errors,
.payment-warning,
.payment-admin-note,
.captcha-challenge,
.access-required-card,
.checkout-auth-context,
.welcome-video-collapsed { font-size: 14px; }

.flash.success {
    background: #e6f6ee;
    border-color: #7fc5a5;
    color: #145d3d;
}

.flash.error,
.errors {
    background: #fff0f2;
    border-color: #e4a7b0;
    color: #8f2032;
}

.auth-shell .panel,
.admin-login-card,
.admin-create-card { color: #102a3e; }

.terms-consent,
.toggle-field,
.receipt-upload label,
.password-rules li {
    color: #30495c;
    font-size: 14px;
}

.password-rules li.is-valid { color: #125d3e; }

.welcome-video-dismiss,
.welcome-video-collapsed button,
.history-undo-button {
    color: #075074;
    font-size: 14px;
}

@media (max-width: 800px) {
    body { font-size: 16px; }
    .lottery-page .lottery-tools-nav a { font-size: 14px; }
}
