:root,
:root[data-theme="light"],
:root[data-theme="dark"] {
    --color-bg-dark: #151515;
    --color-bg-light: #F7F3EA;
    --color-surface: #FFF8EC;
    --color-surface-strong: #FFFFFF;
    --color-primary: #D99A2B;
    --color-primary-hover: #B8791F;
    --color-bar: #A64F2E;
    --color-speaker: #4F5D3A;
    --color-text-dark: #1E1E1E;
    --color-text-light: #FFF8EC;
    --color-muted: #6F6A60;
    --color-line: rgba(30, 30, 30, 0.12);
    --color-line-strong: rgba(217, 154, 43, 0.32);
    --color-danger: #9F3B32;
    --radius-lg: 22px;
    --radius-md: 16px;
    --radius-sm: 12px;
    --shadow-soft: 0 18px 48px rgba(21, 21, 21, 0.08);
    --shadow-card: 0 24px 60px rgba(21, 21, 21, 0.12);
    --shadow-button: 0 14px 28px rgba(217, 154, 43, 0.22);

    --bg: var(--color-bg-light);
    --bg-soft: #EEE6D9;
    --panel: rgba(255, 248, 236, 0.94);
    --panel-strong: var(--color-surface);
    --panel-glass: rgba(255, 248, 236, 0.9);
    --panel-glass-strong: rgba(255, 248, 236, 0.98);
    --line: var(--color-line);
    --line-strong: var(--color-line-strong);
    --text: var(--color-text-dark);
    --muted: var(--color-muted);
    --gold: var(--color-primary);
    --gold-strong: var(--color-primary-hover);
    --success: var(--color-speaker);
    --danger: var(--color-danger);
    --body-gradient:
        radial-gradient(circle at 8% 0%, rgba(217, 154, 43, 0.16), transparent 30%),
        linear-gradient(180deg, #FCF7ED 0%, var(--color-bg-light) 46%, #EFE5D5 100%);
    --header-bg: rgba(255, 248, 236, 0.9);
    --footer-bg: #151515;
    --surface-soft: rgba(217, 154, 43, 0.08);
    --surface-strong: rgba(217, 154, 43, 0.14);
    --input-bg: #FFFDF8;
    --input-border: rgba(30, 30, 30, 0.16);
    --field-label: var(--color-text-dark);
    --secondary-btn-bg: rgba(217, 154, 43, 0.1);
    --ghost-btn-bg: rgba(255, 248, 236, 0.84);
    --outline-border: rgba(217, 154, 43, 0.46);
    --badge-bg: rgba(217, 154, 43, 0.14);
    --empty-bg: rgba(30, 30, 30, 0.035);
    --empty-border: rgba(30, 30, 30, 0.12);
}

:root[data-theme="dark"] {
    --bg: #111816;
    --bg-soft: #18221f;
    --panel: rgba(26, 36, 33, 0.96);
    --panel-strong: #1a2421;
    --panel-glass: rgba(26, 36, 33, 0.9);
    --panel-glass-strong: rgba(26, 36, 33, 0.98);
    --line: rgba(255, 248, 236, 0.13);
    --line-strong: rgba(217, 154, 43, 0.42);
    --text: #fff8ec;
    --muted: #c4b9aa;
    --body-gradient:
        radial-gradient(circle at 8% 0%, rgba(217, 154, 43, 0.12), transparent 30%),
        linear-gradient(180deg, #141b19 0%, #101614 46%, #0b100f 100%);
    --header-bg: rgba(20, 27, 25, 0.92);
    --surface-soft: rgba(217, 154, 43, 0.1);
    --surface-strong: rgba(217, 154, 43, 0.16);
    --input-bg: #111816;
    --input-border: rgba(255, 248, 236, 0.2);
    --field-label: #fff8ec;
    --secondary-btn-bg: rgba(217, 154, 43, 0.14);
    --ghost-btn-bg: rgba(255, 255, 255, 0.08);
    --outline-border: rgba(217, 154, 43, 0.5);
    --badge-bg: rgba(217, 154, 43, 0.18);
    --empty-bg: rgba(255, 255, 255, 0.04);
    --empty-border: rgba(255, 255, 255, 0.12);
}

html {
    background: var(--color-bg-light);
}

body {
    color: var(--text);
    background: var(--body-gradient);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: 0;
}

:root[data-theme="dark"] {
    background: #0b100f;
}

.brand-text strong,
h1,
h2,
h3,
h4,
.page-title,
.panel-title {
    font-family: Poppins, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: -0.03em;
}

.site-header {
    border: 1px solid rgba(30, 30, 30, 0.1);
    background: var(--header-bg);
    box-shadow: 0 18px 52px rgba(21, 21, 21, 0.12);
}

.brand {
    min-width: 0;
}

.brand-mark {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    border: 1px solid rgba(217, 154, 43, 0.22);
    background: var(--color-surface);
    box-shadow: 0 12px 26px rgba(21, 21, 21, 0.12);
}

.brand-mark img {
    object-fit: cover;
}

.brand-text strong,
.top-nav a,
.header-actions .btn {
    color: var(--color-text-dark);
}

.brand-text small,
.muted,
.note,
.section-header p {
    color: var(--color-muted);
}

.top-nav {
    padding: 0.3rem;
    border: 1px solid rgba(30, 30, 30, 0.08);
    border-radius: 999px;
    background: rgba(255, 248, 236, 0.72);
}

.top-nav a,
.panel-nav a {
    border-radius: 999px;
}

.top-nav a:hover,
.top-nav a.is-active,
.panel-nav a:hover,
.panel-nav a.is-active {
    color: var(--color-bg-dark);
    background: rgba(217, 154, 43, 0.18);
}

.btn,
.cc-btn,
button.footer-cookie-link {
    min-height: 44px;
    border-radius: 999px;
    font-weight: 800;
    letter-spacing: 0.005em;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.btn:hover,
.cc-btn:hover {
    transform: translateY(-2px);
}

.btn-primary,
.cc-btn-primary,
.is-public .btn-primary,
.is-public .header-actions .btn-primary {
    color: var(--color-bg-dark);
    border: 1px solid rgba(184, 121, 31, 0.36);
    background: linear-gradient(135deg, #E7AD45, var(--color-primary));
    box-shadow: var(--shadow-button);
}

.btn-primary:hover,
.cc-btn-primary:hover,
.is-public .btn-primary:hover,
.is-public .header-actions .btn-primary:hover {
    color: var(--color-bg-dark);
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-hover));
    box-shadow: 0 18px 36px rgba(184, 121, 31, 0.28);
}

.btn-secondary,
.cc-btn-secondary,
.btn-outline,
.cc-btn-light,
.btn-ghost,
.is-public .btn-ghost,
.is-public .btn-outline {
    color: var(--color-primary-hover);
    border: 1px solid var(--outline-border);
    background: rgba(255, 248, 236, 0.78);
    box-shadow: 0 10px 24px rgba(21, 21, 21, 0.06);
}

.btn-secondary:hover,
.cc-btn-secondary:hover,
.btn-outline:hover,
.cc-btn-light:hover,
.btn-ghost:hover,
.is-public .btn-ghost:hover,
.is-public .btn-outline:hover {
    color: var(--color-bg-dark);
    border-color: rgba(217, 154, 43, 0.6);
    background: rgba(217, 154, 43, 0.16);
}

.btn-danger {
    color: #FFF8EC;
    border: 1px solid rgba(159, 59, 50, 0.28);
    background: #9F3B32;
}

.btn:focus-visible,
.cc-btn:focus-visible,
input:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 4px rgba(217, 154, 43, 0.18);
}

.panel,
.metric-card,
.card,
.table-card,
.form-card,
.public-event-card,
.home-event-card,
.bar-directory-card,
.speaker-directory-card,
.cc-info-card,
.cc-event-card,
.cc-step-grid article,
.cc-feature-cta,
.info-tile,
.detail-hero {
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    background: var(--panel);
    box-shadow: var(--shadow-soft);
}

.metric-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.48), rgba(255, 248, 236, 0.9)),
        var(--color-surface);
}

.metric-label,
.eyebrow,
.pill {
    color: var(--color-primary-hover);
}

.metric-value {
    color: var(--color-text-dark);
}

.badge,
.pill {
    border: 1px solid rgba(217, 154, 43, 0.24);
    background: rgba(217, 154, 43, 0.14);
    color: var(--color-text-dark);
}

input,
textarea,
select,
.form-card input,
.form-card select,
.form-card textarea {
    color: var(--color-text-dark);
    border: 1px solid var(--input-border);
    border-radius: var(--radius-sm);
    background: var(--input-bg);
}

input::placeholder,
textarea::placeholder {
    color: rgba(111, 106, 96, 0.74);
}

.field label,
.field-stack label {
    color: var(--field-label);
    font-weight: 800;
}

table {
    background: transparent;
}

th {
    color: var(--color-muted);
}

td {
    color: var(--color-text-dark);
}

th,
td {
    border-bottom-color: rgba(30, 30, 30, 0.08);
}

.flash {
    border-radius: var(--radius-md);
}

.flash-success,
.status-active,
.status-confirmado,
.status-confirmado-publico,
.status-aprovado-pelo-bar,
.status-realizado,
.status-aprovado,
.status-converted-to-paid,
.status-converted_to_paid {
    color: #ffffff;
    background: var(--color-speaker);
}

.flash-success,
.flash-success a {
    color: #ffffff !important;
}

.flash-error,
.status-cancelado,
.status-blocked,
.status-inactive,
.status-recusado-pelo-bar,
.status-recusado,
.status-declined-paid,
.status-declined_paid {
    color: var(--color-text-light);
    background: var(--color-danger);
}

.flash-info,
.status-pending,
.status-rascunho,
.status-em,
.status-em-analise,
.status-enviado-para-aprovacao,
.status-ajuste-solicitado,
.status-ending-soon,
.status-ending_soon {
    color: var(--color-bg-dark);
    background: rgba(217, 154, 43, 0.24);
}

.status-expired {
    color: var(--color-text-light);
    background: var(--color-muted);
}

.site-footer {
    color: var(--color-text-light);
    background:
        radial-gradient(circle at 10% 0%, rgba(217, 154, 43, 0.16), transparent 28%),
        var(--color-bg-dark);
}

.site-footer h3,
.site-footer h4 {
    color: var(--color-text-light);
}

.site-footer a,
.site-footer p,
.site-footer span,
.footer-cookie-link {
    color: rgba(255, 248, 236, 0.74);
}

.footer-cookie-link {
    padding: 0;
    min-height: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
}

/* Home premium */
body.is-public:not(.is-bar-page):not(.is-speaker-page) {
    background: var(--color-bg-light);
}

.cc-home {
    background: var(--color-bg-light);
}

.cc-hero {
    position: relative;
    margin-top: calc(-1 * var(--fixed-header-space));
    padding: calc(var(--fixed-header-space) + clamp(2.5rem, 6vw, 5.5rem)) 0 clamp(2.5rem, 6vw, 5rem);
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 18%, rgba(217, 154, 43, 0.24), transparent 28%),
        radial-gradient(circle at 86% 10%, rgba(166, 79, 46, 0.22), transparent 26%),
        linear-gradient(135deg, #151515 0%, #202018 48%, #151515 100%);
}

.cc-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 110px;
    background: linear-gradient(180deg, transparent, var(--color-bg-light));
    pointer-events: none;
}

.cc-hero > .container {
    position: relative;
    z-index: 1;
}

.cc-hero-copy h1,
.cc-hero-copy p,
.cc-hero .cc-kicker,
.cc-hero .cc-micro-stats span {
    color: var(--color-text-light);
}

.cc-hero-copy h1 {
    max-width: 12ch;
    text-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
}

.cc-hero-copy p {
    color: rgba(255, 248, 236, 0.78);
}

.cc-hero .cc-kicker {
    border-color: rgba(217, 154, 43, 0.34);
    background: rgba(255, 248, 236, 0.08);
}

.cc-hero .cc-micro-stats span {
    border-color: rgba(255, 248, 236, 0.2);
    background: rgba(255, 248, 236, 0.08);
}

.cc-hero .foundation-landing-note {
    color: rgba(255, 248, 236, 0.84);
    border-color: rgba(217, 154, 43, 0.26);
    background: rgba(255, 248, 236, 0.08);
    backdrop-filter: blur(10px);
}

.cc-hero .foundation-landing-note strong {
    color: var(--color-primary);
}

.cc-hero-media {
    border: 10px solid rgba(255, 248, 236, 0.16);
    border-radius: 30px;
    box-shadow: 0 32px 90px rgba(0, 0, 0, 0.38);
}

.cc-hero-media::after,
.public-event-media::after,
.detail-cover::after {
    background: linear-gradient(180deg, transparent 52%, rgba(21, 21, 21, 0.34));
}

.cc-floating-card {
    color: var(--color-bg-dark);
    border-color: rgba(217, 154, 43, 0.24);
    background: rgba(255, 248, 236, 0.92);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.16);
}

.cc-float-b,
.cc-float-d {
    color: var(--color-speaker);
}

.cc-search-card {
    margin-top: -2rem;
    position: relative;
    z-index: 2;
    background: rgba(255, 248, 236, 0.96);
}

.cc-info-card span,
.cc-event-body span,
.cc-event-body dt {
    color: var(--color-bar);
}

.cc-event-card,
.public-event-card,
.home-event-card {
    background: var(--color-surface);
}

.cc-event-card:hover,
.public-event-card:hover,
.home-event-card:hover,
.bar-directory-card:hover,
.speaker-directory-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-card);
}

.cc-quote-band {
    background:
        radial-gradient(circle at 76% 0%, rgba(217, 154, 43, 0.24), transparent 34%),
        linear-gradient(135deg, var(--color-bg-dark), #272116);
}

.cc-quote-band p {
    color: var(--color-text-light);
}

.cc-step-grid strong {
    color: var(--color-bg-dark);
    background: var(--color-primary);
}

.cc-community {
    color: var(--color-text-light);
    background:
        radial-gradient(circle at 18% 0%, rgba(217, 154, 43, 0.26), transparent 30%),
        linear-gradient(135deg, var(--color-bg-dark), #252117);
}

.cc-community h2,
.cc-community .cc-kicker {
    color: var(--color-text-light);
}

/* Context colors */
body.is-bar-page {
    --context-color: var(--color-bar);
    --context-color-hover: #843D24;
    --context-soft: rgba(166, 79, 46, 0.12);
    --context-line: rgba(166, 79, 46, 0.28);
}

body.is-speaker-page {
    --context-color: var(--color-speaker);
    --context-color-hover: #3B472B;
    --context-soft: rgba(79, 93, 58, 0.12);
    --context-line: rgba(79, 93, 58, 0.28);
}

body.is-bar-page,
body.is-speaker-page,
body.is-dashboard,
body.is-admin {
    background:
        radial-gradient(circle at 8% 0%, rgba(217, 154, 43, 0.12), transparent 28%),
        linear-gradient(180deg, #FCF8EF, var(--color-bg-light));
}

body.is-public.is-bar-page {
    background:
        radial-gradient(circle at 8% 0%, rgba(166, 79, 46, 0.14), transparent 28%),
        radial-gradient(circle at 88% 4%, rgba(217, 154, 43, 0.13), transparent 26%),
        linear-gradient(180deg, #FCF8EF 0%, var(--color-bg-light) 58%, #EEE4D4 100%);
}

body.is-public.is-speaker-page {
    background:
        radial-gradient(circle at 8% 0%, rgba(79, 93, 58, 0.14), transparent 28%),
        radial-gradient(circle at 88% 4%, rgba(217, 154, 43, 0.12), transparent 26%),
        linear-gradient(180deg, #FCF8EF 0%, var(--color-bg-light) 58%, #ECE3D3 100%);
}

body.is-bar-page .page-title,
body.is-bar-page .eyebrow,
body.is-bar-page .pill,
body.is-bar-page .metric-label {
    color: var(--color-bar);
}

body.is-speaker-page .page-title,
body.is-speaker-page .eyebrow,
body.is-speaker-page .pill,
body.is-speaker-page .metric-label {
    color: var(--color-speaker);
}

body.is-bar-page .btn-primary,
body.is-bar-page .header-actions .btn-primary,
body.is-speaker-page .btn-primary,
body.is-speaker-page .header-actions .btn-primary {
    color: var(--color-text-light);
    border-color: var(--context-line);
    background: linear-gradient(135deg, color-mix(in srgb, var(--context-color) 86%, #D99A2B), var(--context-color-hover));
    box-shadow: 0 14px 30px color-mix(in srgb, var(--context-color) 24%, transparent);
}

body.is-bar-page .btn-primary:hover,
body.is-bar-page .header-actions .btn-primary:hover,
body.is-speaker-page .btn-primary:hover,
body.is-speaker-page .header-actions .btn-primary:hover {
    color: var(--color-text-light);
    background: linear-gradient(135deg, var(--context-color), var(--context-color-hover));
}

body.is-bar-page .btn-secondary,
body.is-bar-page .btn-outline,
body.is-bar-page .btn-ghost,
body.is-speaker-page .btn-secondary,
body.is-speaker-page .btn-outline,
body.is-speaker-page .btn-ghost {
    color: var(--context-color-hover);
    border-color: var(--context-line);
    background: rgba(255, 248, 236, 0.78);
}

body.is-bar-page .btn-secondary:hover,
body.is-bar-page .btn-outline:hover,
body.is-bar-page .btn-ghost:hover,
body.is-speaker-page .btn-secondary:hover,
body.is-speaker-page .btn-outline:hover,
body.is-speaker-page .btn-ghost:hover {
    color: var(--context-color-hover);
    background: var(--context-soft);
}

body.is-bar-page .form-card,
body.is-bar-page .panel,
body.is-bar-page .card,
body.is-bar-page .table-card,
body.is-bar-page .bar-directory-card,
body.is-speaker-page .form-card,
body.is-speaker-page .panel,
body.is-speaker-page .card,
body.is-speaker-page .table-card,
body.is-speaker-page .speaker-directory-card {
    border-color: var(--context-line);
}

body.is-bar-page input:focus,
body.is-bar-page textarea:focus,
body.is-bar-page select:focus,
body.is-speaker-page input:focus,
body.is-speaker-page textarea:focus,
body.is-speaker-page select:focus {
    border-color: var(--context-color);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--context-color) 18%, transparent);
}

body.is-admin {
    --context-color: var(--color-primary);
    --context-line: rgba(30, 30, 30, 0.12);
}

body.is-admin .page-title,
body.is-admin .eyebrow,
body.is-admin .metric-label {
    color: var(--color-primary-hover);
}

.dashboard-sidebar.panel,
.dashboard-sidebar > .panel {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.42), rgba(255, 248, 236, 0.94)),
        var(--color-surface);
}

.dashboard-sidebar .panel-nav a.is-active {
    color: var(--color-bg-dark);
    background: rgba(217, 154, 43, 0.2);
}

body.is-bar-page .dashboard-sidebar .panel-nav a.is-active {
    color: var(--color-text-light);
    background: var(--color-bar);
}

body.is-speaker-page .dashboard-sidebar .panel-nav a.is-active {
    color: var(--color-text-light);
    background: var(--color-speaker);
}

.detail-cover,
.media-thumb,
.public-event-media img,
.home-event-media img,
.cc-info-card img,
.cc-event-card img,
.cc-feature-cta img,
.bar-directory-thumb {
    object-fit: cover;
    border-radius: calc(var(--radius-md) - 2px);
}

.profile-avatar,
.profile-avatar-xl {
    border: 4px solid var(--color-surface);
    box-shadow: var(--shadow-soft);
}

@media (max-width: 1080px) {
    .top-nav {
        border-radius: 18px;
    }
}

@media (max-width: 800px) {
    .cc-hero {
        margin-top: calc(-1 * var(--fixed-header-space));
        padding-top: calc(var(--fixed-header-space) + 1.2rem);
    }

    .cc-search-card {
        margin-top: 1rem;
    }

    .btn,
    .cc-btn {
        width: auto;
        min-height: 48px;
    }
}

:root[data-theme="dark"] body,
:root[data-theme="dark"] body.is-public:not(.is-bar-page):not(.is-speaker-page),
:root[data-theme="dark"] .cc-home {
    color: var(--text);
    background: var(--body-gradient);
}

:root[data-theme="dark"] .site-header,
:root[data-theme="dark"] .form-card,
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .table-card {
    color: var(--text);
    background-color: var(--panel);
    border-color: var(--line);
}

:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea {
    color: var(--text);
    background: var(--input-bg);
    border-color: var(--input-border);
}
