:root {
    /* Cores douradas */
    --gold:        #d5b883;
    --gold-light:  #e8d4a8;
    --gold-dark:   #b89a60;

    /* Fundos */
    --bg:          #000;
    --bg-card:     #111;

    /* Texto */
    --text:        #d5b883;
    --text-muted:  rgba(213,184,131,.55);
    --text-soft:   rgba(213,184,131,.32);

    /* Bordas */
    --border:      rgba(213,184,131,.13);
    --border-md:   rgba(213,184,131,.22);

    /* Inputs */
    --input-bg:    rgba(213,184,131,.05);
    --input-focus: rgba(213,184,131,.1);

    /* Layout */
    --overlay:     rgba(0,0,0,.7);
    --grid-line:   rgba(213,184,131,.025);
    --shadow:      0 4px 24px rgba(0,0,0,.5);
    --shadow-lg:   0 8px 40px rgba(0,0,0,.6);
    --radius:      12px;
    --radius-sm:   8px;

    /* Status */
    --green:        #4caf50;
    --green-bg:     rgba(76,175,80,.1);
    --green-border: rgba(76,175,80,.25);
    --red:          #c0392b;
    --red-bg:       rgba(192,57,43,.08);
    --red-border:   rgba(192,57,43,.25);
}

[data-theme=light] {
    --bg:          #f5f0e8;
    --bg-card:     #fff;
    --text:        #5a4520;
    --text-muted:  rgba(90,69,32,.62);
    --text-soft:   rgba(90,69,32,.38);
    --border:      rgba(90,69,32,.13);
    --border-md:   rgba(90,69,32,.25);
    --input-bg:    rgba(90,69,32,.05);
    --input-focus: rgba(90,69,32,.09);
    --overlay:     rgba(245,240,232,.88);
    --grid-line:   rgba(90,69,32,.04);
    --shadow:      0 4px 24px rgba(90,69,32,.1);
    --shadow-lg:   0 8px 40px rgba(90,69,32,.12);
}

/* ── RESET ───────────────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    background: var(--bg);
    color: var(--text);
    font-family: 'Barlow', sans-serif;
    font-size: 16px;
    min-height: 100vh;
    overflow-x: hidden;
    transition: background .3s, color .3s;
}

/* ── BG GRID ─────────────────────────────────────────────── */
.page-bg { position: fixed; inset: 0; pointer-events: none; z-index: 0; }
.page-bg::before {
    content: ''; position: absolute; inset: 0;
    background-image:
        linear-gradient(var(--grid-line) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
    background-size: 48px 48px;
}
.page-bg::after {
    content: ''; position: absolute;
    top: -20%; left: 50%; transform: translateX(-50%);
    width: 800px; height: 800px;
    background: radial-gradient(ellipse, rgba(213,184,131,.07) 0%, transparent 70%);
}
[data-theme=light] .page-bg::after {
    background: radial-gradient(ellipse, rgba(213,184,131,.18) 0%, transparent 70%);
}

/* ── NAV (login/register/home) ───────────────────────────── */
nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 50;
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 10px;
    padding: 0 48px; height: 64px;
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(14px);
    background: var(--overlay);
    transition: background .3s;
    animation: fadeDown .7s ease both;
}

/* Logo texto (login/register/home) */
.logo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 1.2rem; letter-spacing: .2em;
    color: var(--text); display: flex; align-items: center; gap: 3px;
    text-decoration: none;
}
.logo-bracket { color: var(--text-soft); }
.logo-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .68rem; letter-spacing: .18em;
    color: var(--text-soft); display: block; margin-top: 2px;
    text-transform: uppercase;
}

/* Logo imagem (dashboard/pendente) */
.nav-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; min-width: 0; }
.nav-logo {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--gold); display: flex; align-items: center;
    justify-content: center; flex-shrink: 0; overflow: hidden;
}
.nav-logo img { width: 100%; height: 100%; object-fit: contain; }
.nav-brand-name { font-size: .95rem; font-weight: 700; color: var(--gold); line-height: 1.2; white-space: nowrap; }
.nav-brand-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .58rem; letter-spacing: .12em;
    color: var(--text-soft); text-transform: uppercase; white-space: nowrap;
}

.nav-right { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }

/* Botões nav (dashboard/pendente) */
.nav-btn {
    display: flex; align-items: center; gap: 6px;
    padding: 8px 12px; background: transparent; border: none;
    color: var(--text-muted); font-family: 'Barlow', sans-serif;
    font-size: .88rem; font-weight: 500;
    cursor: pointer; border-radius: var(--radius-sm);
    transition: all .2s; text-decoration: none; white-space: nowrap;
}
.nav-btn:hover { background: var(--input-bg); color: var(--text); }
.nav-btn.active { background: var(--input-focus); color: var(--gold); }
.nav-btn svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Toggle tema */
.theme-toggle {
    background: var(--input-bg); border: 1px solid var(--border-md);
    color: var(--text-muted); font-size: .95rem;
    padding: 8px 12px; cursor: pointer;
    border-radius: var(--radius-sm); transition: all .25s;
    display: flex; align-items: center; margin-left: 4px;
}
.theme-toggle:hover { background: var(--input-focus); color: var(--text); }

/* ── BOTÕES BASE ─────────────────────────────────────────── */
.btn {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .88rem; letter-spacing: .12em; text-transform: uppercase;
    padding: 11px 30px; cursor: pointer; border: none;
    transition: all .25s; display: inline-block;
    clip-path: polygon(8px 0%, 100% 0%, calc(100% - 8px) 100%, 0% 100%);
    text-decoration: none; text-align: center;
}
.btn-fill   { background: var(--gold); color: #000; font-weight: 700; }
.btn-fill:hover   { background: var(--gold-light); transform: translateY(-1px); }
.btn-outline  { background: transparent; color: var(--text); border: 1px solid var(--border-md); }
.btn-outline:hover { border-color: var(--gold); background: var(--input-focus); }
.btn-lg   { font-size: .95rem; padding: 16px 20px; width: 100%; }
.btn-full { width: 100%; display: block; }
.btn-loading { opacity: .7; pointer-events: none; }

/* ── CAMPOS / FORM ───────────────────────────────────────── */
.field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 15px; }
.field label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .68rem; letter-spacing: .16em;
    text-transform: uppercase; color: var(--text-muted);
}
.field input,
.field select,
.field textarea {
    font-family: 'Barlow', sans-serif; font-size: .97rem;
    background: var(--input-bg); border: 1px solid var(--border);
    color: var(--text); padding: 12px 14px; outline: none;
    transition: border .2s, background .2s;
    width: 100%; border-radius: 0;
    -webkit-appearance: none; appearance: none;
}
.field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d5b883' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center;
    padding-right: 36px; cursor: pointer;
}
[data-theme=light] .field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a4520' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.field select option { background: var(--bg-card); color: var(--text); }
.field textarea { resize: vertical; min-height: 84px; line-height: 1.6; }
.field input::placeholder,
.field textarea::placeholder { color: var(--text-soft); }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--gold-dark); background: var(--input-focus); }
.field input.is-invalid,
.field select.is-invalid,
.field textarea.is-invalid { border-color: var(--red); }
.field input:disabled { opacity: .5; cursor: not-allowed; }
.field-error {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .66rem; color: var(--red); letter-spacing: .05em; margin-top: 2px;
}
.field-hint {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .62rem; letter-spacing: .06em; color: var(--text-soft); margin-top: 2px;
}

/* Input com toggle senha */
.input-wrap { position: relative; }
.input-wrap input { padding-right: 90px; }
.show-pass {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    background: none; border: none; cursor: pointer;
    color: var(--text-soft); font-size: .7rem;
    font-family: 'IBM Plex Mono', monospace;
    letter-spacing: .05em; transition: color .2s; padding: 4px;
}
.show-pass:hover { color: var(--text); }

/* CEP row */
.cep-row { display: flex; gap: 10px; align-items: flex-end; margin-bottom: 14px; }
.cep-row .field { flex: 1; margin-bottom: 0; }
.btn-cep {
    font-family: 'IBM Plex Mono', monospace; font-size: .7rem;
    letter-spacing: .1em; text-transform: uppercase;
    padding: 12px 16px; background: var(--input-bg);
    border: 1px solid var(--border-md); color: var(--text-muted);
    cursor: pointer; white-space: nowrap; transition: all .25s;
    flex-shrink: 0; height: 48px;
}
.btn-cep:hover { background: var(--input-focus); color: var(--text); border-color: var(--gold); }
.btn-cep.loading { opacity: .6; pointer-events: none; }

/* Grid 2 colunas */
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.span2 { grid-column: 1 / -1; }

/* Barra de força de senha */
.strength-wrap { margin-top: 6px; display: none; gap: 4px; align-items: center; }
.strength-wrap.show { display: flex; }
.s-bar { height: 3px; flex: 1; background: var(--border); transition: background .3s; border-radius: 2px; }
.s-label {
    font-family: 'IBM Plex Mono', monospace; font-size: .6rem;
    color: var(--text-soft); min-width: 44px; text-align: right;
}

/* Requisitos de senha */
.reqs { margin-bottom: 18px; }
.req {
    display: flex; align-items: center; gap: 8px;
    font-family: 'IBM Plex Mono', monospace; font-size: .68rem;
    letter-spacing: .04em; color: var(--text-soft); margin-bottom: 5px; transition: color .2s;
}
.req.valid { color: var(--gold-dark); }
[data-theme=light] .req.valid { color: #7a5c1e; }
.req-dot {
    width: 5px; height: 5px; border-radius: 50%;
    border: 1.5px solid currentColor; flex-shrink: 0; transition: background .2s;
}
.req.valid .req-dot { background: currentColor; }

/* ── ALERTAS ─────────────────────────────────────────────── */
.alert {
    font-family: 'IBM Plex Mono', monospace; font-size: .75rem;
    letter-spacing: .08em; padding: 12px 16px; margin-bottom: 16px;
    border-left: 3px solid;
}
.alert-error   { border-color: var(--red);      background: var(--red-bg);             color: var(--red); }
.alert-success { border-color: var(--gold-dark); background: rgba(184,154,96,.1);       color: var(--gold-dark); }
[data-theme=light] .alert-success { color: #7a5c1e; }

/* ── INFO BOX ────────────────────────────────────────────── */
.info-box {
    border: 1px solid var(--border); background: var(--input-bg);
    border-radius: var(--radius-sm); padding: 16px 20px; margin: 18px 0;
}
.info-box-title {
    font-family: 'IBM Plex Mono', monospace; font-size: .66rem;
    letter-spacing: .2em; text-transform: uppercase;
    color: var(--text-soft); margin-bottom: 10px;
    display: flex; align-items: center; gap: 6px;
}
.info-item {
    display: flex; align-items: flex-start; gap: 10px;
    font-size: .83rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 7px;
}
.info-item:last-child { margin-bottom: 0; }
.info-item::before {
    content: '//'; font-family: 'IBM Plex Mono', monospace;
    font-size: .66rem; color: var(--text-soft); flex-shrink: 0; padding-top: 2px;
}

/* ── FOOTER ──────────────────────────────────────────────── */
footer {
    position: relative; z-index: 1;
    padding: 24px 48px; border-top: 1px solid var(--border);
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 8px;
}
footer span {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .7rem; letter-spacing: .1em; color: var(--text-soft);
}

/* ── ANIMAÇÕES ───────────────────────────────────────────── */
@keyframes fadeDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeUp   { from { opacity: 0; transform: translateY(20px);  } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse    { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }

/* ════════════════════════════════════════════════════════════
   LOGIN
   ════════════════════════════════════════════════════════════ */
.auth-wrap {
    position: relative; z-index: 1; min-height: 100vh;
    display: flex; align-items: center; justify-content: center;
    padding: 100px 24px 60px;
}
.auth-card {
    background: var(--bg-card); border: 1px solid var(--border);
    padding: 52px 48px; width: 100%; max-width: 440px;
    box-shadow: var(--shadow-lg);
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px));
    transition: background .3s, border .3s;
    animation: fadeUp .7s .1s ease both;
}
.auth-header {
    text-align: center; margin-bottom: 32px;
    display: flex; flex-direction: column; align-items: center;
}
.auth-header picture { display: flex; justify-content: center; }
[data-theme=dark]  #logo-img { content: url('/img/1.svg'); }
[data-theme=light] #logo-img { content: url('/img/4.svg'); }
.auth-tag {
    font-family: 'IBM Plex Mono', monospace; font-size: .72rem;
    letter-spacing: .25em; text-transform: uppercase;
    color: var(--text-soft); margin-bottom: 10px; display: block;
}
.auth-title { font-size: 1.9rem; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.auth-sub   { font-size: .9rem; color: var(--text-muted); line-height: 1.6; }
.auth-footer-link {
    text-align: center; margin-top: 20px;
    font-family: 'IBM Plex Mono', monospace; font-size: .75rem;
    letter-spacing: .1em; color: var(--text-soft);
}
.auth-footer-link a { color: var(--gold); text-decoration: none; }
.auth-footer-link a:hover { color: var(--gold-light); }
.forgot {
    display: block; text-align: right;
    font-family: 'IBM Plex Mono', monospace; font-size: .72rem;
    letter-spacing: .1em; color: var(--text-soft); text-decoration: none;
    margin-bottom: 24px; margin-top: -6px; transition: color .2s;
}
.forgot:hover { color: var(--gold); }
.or-divider { display: flex; align-items: center; gap: 12px; margin: 18px 0; }
.or-divider::before,
.or-divider::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.or-divider span {
    font-family: 'IBM Plex Mono', monospace; font-size: .62rem;
    letter-spacing: .25em; color: var(--text-soft); text-transform: uppercase;
}

/* ════════════════════════════════════════════════════════════
   REGISTER — TABS E STEPS
   ════════════════════════════════════════════════════════════ */
.type-wrap  { position: relative; z-index: 1; padding: 110px 24px 0; max-width: 660px; margin: 0 auto; }
.type-label {
    font-family: 'IBM Plex Mono', monospace; font-size: .68rem;
    letter-spacing: .3em; text-transform: uppercase;
    color: var(--text-soft); text-align: center; margin-bottom: 14px;
}
.type-tabs  { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border-md); }
.type-tab   {
    font-family: 'IBM Plex Mono', monospace; font-size: .83rem;
    letter-spacing: .12em; text-transform: uppercase;
    padding: 14px 20px; cursor: pointer; background: transparent;
    border: none; color: var(--text-soft); transition: all .25s; text-align: center;
}
.type-tab.active            { background: var(--gold); color: #000; font-weight: 700; }
.type-tab:not(.active):hover { background: var(--input-focus); color: var(--text); }

.form-wrap { position: relative; z-index: 1; padding: 24px 24px 80px; max-width: 660px; margin: 0 auto; }

.steps-indicator { display: flex; align-items: center; justify-content: center; margin-bottom: 32px; }
.step-dot        { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.step-dot-circle {
    width: 34px; height: 34px; border-radius: 50%;
    border: 1.5px solid var(--border-md);
    display: flex; align-items: center; justify-content: center;
    font-family: 'IBM Plex Mono', monospace; font-size: .7rem;
    color: var(--text-soft); transition: all .3s;
    background: var(--bg-card); flex-shrink: 0;
}
.step-dot.active .step-dot-circle { border-color: var(--gold); color: var(--gold); background: var(--input-focus); }
.step-dot.done   .step-dot-circle { border-color: var(--gold-dark); background: var(--gold-dark); color: #000; font-weight: 700; }
.step-dot-label  {
    font-family: 'IBM Plex Mono', monospace; font-size: .56rem;
    letter-spacing: .1em; text-transform: uppercase;
    color: var(--text-soft); white-space: nowrap;
}
.step-dot.active .step-dot-label,
.step-dot.done   .step-dot-label { color: var(--gold-dark); }
.step-line       { flex: 1; height: 1px; background: var(--border); margin: 0 6px; margin-bottom: 20px; transition: background .3s; min-width: 20px; }
.step-line.done  { background: var(--gold-dark); }

/* Card do form de cadastro */
.card {
    background: var(--bg-card); border: 1px solid var(--border);
    padding: 40px 44px; box-shadow: var(--shadow-lg);
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px));
    animation: fadeUp .45s ease both;
}
.card-tag   {
    font-family: 'IBM Plex Mono', monospace; font-size: .66rem;
    letter-spacing: .25em; text-transform: uppercase;
    color: var(--text-soft); margin-bottom: 6px; display: block;
}
.card-title { font-size: 1.5rem; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.card-sub   { font-size: .88rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 26px; }
.sec-div    {
    font-family: 'IBM Plex Mono', monospace; font-size: .66rem;
    letter-spacing: .22em; text-transform: uppercase;
    color: var(--text-soft); border-bottom: 1px solid var(--border);
    padding-bottom: 8px; margin: 22px 0 16px;
}

.btn-row      { display: flex; gap: 12px; margin-top: 6px; }
.success-wrap { text-align: center; padding: 12px 0; }
.success-icon { font-size: 2.2rem; margin-bottom: 16px; display: block; }
.success-title { font-size: 1.6rem; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.success-sub   { font-size: .9rem; color: var(--text-muted); line-height: 1.9; margin-bottom: 24px; }
.login-link {
    text-align: center; margin-top: 18px;
    font-family: 'IBM Plex Mono', monospace; font-size: .74rem;
    letter-spacing: .1em; color: var(--text-soft);
}
.login-link a { color: var(--gold); text-decoration: none; }

/* ════════════════════════════════════════════════════════════
   DASHBOARD — HERO, CATEGORIAS, GRID
   ════════════════════════════════════════════════════════════ */
.hero-banner {
    background: linear-gradient(135deg, var(--gold-dark) 0%, var(--gold) 60%, var(--gold-light) 100%);
    border-radius: var(--radius); padding: 32px 36px; margin-bottom: 40px;
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    animation: fadeUp .5s ease both;
}
.hero-greeting { color: #000; min-width: 0; }
.hero-icon     { font-size: 1.5rem; margin-bottom: 4px; display: block; }
.hero-title    { font-size: 1.7rem; font-weight: 700; margin-bottom: 4px; line-height: 1.2; }
.hero-sub      { font-size: .9rem; opacity: .75; margin-bottom: 2px; }
.hero-condo    { font-size: .78rem; opacity: .5; font-family: 'IBM Plex Mono', monospace; letter-spacing: .05em; }
.hero-badge    { background: rgba(0,0,0,.15); border-radius: var(--radius-sm); padding: 14px 24px; text-align: center; flex-shrink: 0; }
.hero-badge-num   { font-size: 2rem; font-weight: 700; color: #000; line-height: 1; }
.hero-badge-label { font-size: .68rem; color: rgba(0,0,0,.55); font-family: 'IBM Plex Mono', monospace; letter-spacing: .08em; text-transform: uppercase; margin-top: 4px; }

.section-label  { font-family: 'IBM Plex Mono', monospace; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--text-soft); margin-bottom: 12px; }
.cats           { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 32px; animation: fadeUp .5s .1s ease both; }
.cat-btn {
    display: flex; align-items: center; gap: 6px;
    padding: 8px 16px; border-radius: 100px;
    border: 1px solid var(--border-md); background: var(--bg-card);
    color: var(--text-muted); font-family: 'Barlow', sans-serif;
    font-size: .86rem; font-weight: 500; cursor: pointer; transition: all .2s; white-space: nowrap;
}
.cat-btn:hover  { border-color: var(--gold); color: var(--text); background: var(--input-bg); }
.cat-btn.active { background: var(--gold); color: #000; border-color: var(--gold); font-weight: 700; }

.section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; animation: fadeUp .5s .15s ease both; }
.section-title  { font-size: 1.05rem; font-weight: 600; color: var(--text); }
.section-count  { font-family: 'IBM Plex Mono', monospace; font-size: .72rem; color: var(--text-soft); letter-spacing: .08em; }

.partners-grid  { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; animation: fadeUp .5s .2s ease both; }
.partner-card   {
    background: var(--bg-card); border: 1px solid var(--border);
    border-radius: var(--radius); padding: 20px;
    display: flex; flex-direction: column; transition: all .25s;
}
.partner-card:hover { border-color: var(--border-md); box-shadow: var(--shadow); transform: translateY(-2px); }
.partner-top    { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.partner-icon   {
    width: 50px; height: 50px; border-radius: var(--radius-sm); flex-shrink: 0;
    background: linear-gradient(135deg, var(--gold-dark), var(--gold));
    display: flex; align-items: center; justify-content: center; font-size: 1.4rem;
}
.partner-name   { font-size: .97rem; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.partner-badge  {
    display: inline-flex;
    background: rgba(213,184,131,.13); border: 1px solid rgba(213,184,131,.22);
    color: var(--gold); font-family: 'IBM Plex Mono', monospace;
    font-size: .63rem; font-weight: 500; letter-spacing: .08em;
    padding: 3px 8px; border-radius: 100px;
}
[data-theme=light] .partner-badge { background: rgba(90,69,32,.07); border-color: rgba(90,69,32,.18); color: #7a5c1e; }
.partner-desc   { font-size: .84rem; color: var(--text-muted); line-height: 1.65; flex: 1; margin-bottom: 16px; }
.btn-ver {
    width: 100%; padding: 11px; background: var(--gold); color: #000;
    font-family: 'Barlow', sans-serif; font-size: .86rem; font-weight: 700;
    border: none; border-radius: var(--radius-sm); cursor: pointer;
    transition: all .2s; text-align: center; text-decoration: none; display: block;
}
.btn-ver:hover  { background: var(--gold-light); transform: translateY(-1px); }

.empty { display: none; grid-column: 1/-1; text-align: center; padding: 60px 20px; color: var(--text-soft); font-family: 'IBM Plex Mono', monospace; font-size: .82rem; letter-spacing: .08em; }
.empty.show { display: block; }

/* ════════════════════════════════════════════════════════════
   HOME — HERO LANDING, FEATURES, TIMER
   ════════════════════════════════════════════════════════════ */
.hero {
    position: relative; z-index: 1; min-height: 100vh;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; padding: 120px 24px 80px;
}
.badge {
    display: inline-flex; align-items: center; gap: 10px;
    border: 1px solid var(--border-md); padding: 8px 22px;
    font-family: 'IBM Plex Mono', monospace; font-size: .78rem;
    letter-spacing: .2em; text-transform: uppercase;
    color: var(--text-muted); margin-bottom: 40px;
    animation: fadeUp .9s .2s ease both;
}
.badge .dot { width: 7px; height: 7px; background: var(--gold); border-radius: 50%; animation: pulse 2s infinite; flex-shrink: 0; }
.discount-wrap   { animation: fadeUp .9s .35s ease both; margin-bottom: 8px; }
.discount-number {
    font-family: 'Barlow', sans-serif; font-size: clamp(6rem,20vw,14rem);
    font-weight: 700; line-height: .85; color: transparent;
    -webkit-text-stroke: 1.5px var(--gold); letter-spacing: -.04em;
    position: relative; display: inline-block;
}
.discount-number::before { content: attr(data-text); position: absolute; inset: 0; color: transparent; -webkit-text-stroke: 1px rgba(213,184,131,.1); transform: translate(4px,3px); z-index: -1; }
.discount-number::after  { content: attr(data-text); position: absolute; inset: 0; -webkit-text-stroke: 0; opacity: 0; transition: opacity .4s; background: linear-gradient(135deg,var(--gold-light),var(--gold-dark)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.discount-number:hover::after { opacity: 1; }
.discount-off  { font-family: 'IBM Plex Mono', monospace; font-size: clamp(1rem,3vw,1.6rem); letter-spacing: .5em; text-transform: uppercase; color: var(--text-muted); animation: fadeUp .9s .45s ease both; margin-bottom: 14px; }
.discount-tag  { font-family: 'IBM Plex Mono', monospace; font-size: clamp(.72rem,1.5vw,.88rem); letter-spacing: .14em; color: var(--text-soft); margin-bottom: 44px; animation: fadeUp .9s .5s ease both; }
.hero-desc     { font-size: clamp(.95rem,2vw,1.1rem); font-weight: 300; line-height: 1.9; color: var(--text-muted); max-width: 500px; margin: 0 auto 56px; animation: fadeUp .9s .55s ease both; }
.hero-btns     { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; animation: fadeUp .9s .65s ease both; }
.btn-hero      { font-size: .9rem; padding: 16px 52px; }

.divider { display: flex; align-items: center; justify-content: center; margin: 72px auto; max-width: 600px; padding: 0 24px; position: relative; z-index: 1; }
.divider::before, .divider::after { content: ''; flex: 1; height: 1px; background: linear-gradient(to right,transparent,var(--border-md)); }
.divider::after { transform: scaleX(-1); }
.divider span  { font-family: 'IBM Plex Mono', monospace; font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: var(--text-soft); padding: 0 20px; white-space: nowrap; }

.features      { display: grid; grid-template-columns: repeat(3,1fr); max-width: 900px; margin: 0 auto 100px; padding: 0 24px; position: relative; z-index: 1; animation: fadeUp 1s .8s ease both; }
.feature       { padding: 38px 28px; border: 1px solid var(--border); transition: background .3s; clip-path: polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px)); }
.feature:hover { background: var(--input-bg); }
.feature + .feature { border-left: none; }
.feature-icon  { font-family: 'IBM Plex Mono', monospace; font-size: .85rem; margin-bottom: 16px; display: block; color: var(--text-soft); }
.feature-title { font-size: 1rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--text); margin-bottom: 10px; }
.feature-text  { font-size: .88rem; font-weight: 300; line-height: 1.8; color: var(--text-muted); }

.how-section   { max-width: 720px; margin: 0 auto 100px; padding: 0 24px; position: relative; z-index: 1; animation: fadeUp 1s .85s ease both; }
.how-step      { display: flex; align-items: flex-start; gap: 28px; padding: 28px 0; border-bottom: 1px solid var(--border); }
.how-step:last-child { border-bottom: none; }
.step-num      { font-family: 'IBM Plex Mono', monospace; font-size: .78rem; color: var(--text-soft); letter-spacing: .15em; min-width: 48px; padding-top: 3px; flex-shrink: 0; }
.step-title    { font-size: 1.05rem; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.step-text     { font-size: .9rem; font-weight: 300; line-height: 1.8; color: var(--text-muted); }

.timer-section { text-align: center; padding: 0 24px 100px; position: relative; z-index: 1; animation: fadeUp 1s .9s ease both; }
.timer-label   { font-family: 'IBM Plex Mono', monospace; font-size: .72rem; letter-spacing: .38em; text-transform: uppercase; color: var(--text-soft); margin-bottom: 28px; }
.timer         { display: flex; justify-content: center; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.timer-block   { text-align: center; }
.timer-num     { font-family: 'IBM Plex Mono', monospace; font-size: clamp(2.4rem,7vw,4.5rem); color: var(--text); line-height: 1; display: block; min-width: 80px; }
.timer-sep     { font-family: 'IBM Plex Mono', monospace; font-size: clamp(2rem,6vw,3.8rem); color: var(--border-md); line-height: 1; }
.timer-unit    { font-family: 'IBM Plex Mono', monospace; font-size: .62rem; letter-spacing: .28em; text-transform: uppercase; color: var(--text-soft); margin-top: 8px; display: block; }

.cta-section   { border-top: 1px solid var(--border); padding: 80px 24px; text-align: center; position: relative; z-index: 1; }
.cta-title     { font-size: clamp(1.8rem,4vw,3rem); font-weight: 700; text-transform: uppercase; color: var(--text); margin-bottom: 10px; }
.cta-sub       { font-family: 'IBM Plex Mono', monospace; font-size: .78rem; color: var(--text-soft); letter-spacing: .28em; text-transform: uppercase; margin-bottom: 40px; }

/* ════════════════════════════════════════════════════════════
   PENDENTE — CARD DE ANÁLISE
   ════════════════════════════════════════════════════════════ */
.card-header       { background: linear-gradient(135deg,var(--gold-dark) 0%,var(--gold) 60%,var(--gold-light) 100%); padding: 32px 36px; text-align: center; }
.card-header-icon  { width: 64px; height: 64px; border-radius: 50%; background: rgba(0,0,0,.15); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; font-size: 1.8rem; }
.card-header-title { font-size: 1.4rem; font-weight: 700; color: #000; margin-bottom: 4px; }
.card-header-sub   { font-size: .88rem; color: rgba(0,0,0,.55); font-family: 'IBM Plex Mono', monospace; letter-spacing: .05em; }
.card-body         { padding: 36px; }

.status-badge {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1px solid var(--border-md); border-radius: 100px;
    padding: 8px 18px; font-family: 'IBM Plex Mono', monospace;
    font-size: .72rem; letter-spacing: .12em; text-transform: uppercase;
    color: var(--text-muted); margin-bottom: 28px;
}
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); animation: pulse 2s infinite; flex-shrink: 0; }
.main-msg   { font-size: 1rem; line-height: 1.8; color: var(--text-muted); margin-bottom: 28px; }
.main-msg strong { color: var(--text); font-weight: 600; }

.process-steps      { margin-bottom: 28px; }
.process-step       { display: flex; align-items: flex-start; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.process-step:last-child { border-bottom: none; }
.step-circle        { width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--border-md); display: flex; align-items: center; justify-content: center; font-family: 'IBM Plex Mono', monospace; font-size: .68rem; color: var(--text-soft); flex-shrink: 0; transition: all .3s; background: var(--bg-card); }
.step-circle.done   { border-color: var(--gold-dark); background: var(--gold-dark); color: #000; font-weight: 700; }
.step-circle.active { border-color: var(--gold); color: var(--gold); background: var(--input-focus); }
.step-desc          { font-size: .8rem; color: var(--text-soft); line-height: 1.5; }

.email-box      { background: var(--input-focus); border: 1px solid var(--border-md); border-radius: var(--radius-sm); padding: 14px 18px; display: flex; align-items: center; gap: 10px; margin-bottom: 28px; }
.email-box svg  { width: 16px; height: 16px; color: var(--gold); flex-shrink: 0; }
.email-box-text { font-size: .85rem; color: var(--text-muted); line-height: 1.5; }
.email-box-text strong { color: var(--text); font-weight: 600; font-family: 'IBM Plex Mono', monospace; }


/* ════════════════════════════════════════════════════════════
   ADMIN — tabs, métricas, cards parceiro, tabela, cupons, modais
   ════════════════════════════════════════════════════════════ */
/* TABS */
.admin-tabs-wrap{position:sticky;top:64px;z-index:40;background:var(--overlay);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.admin-tabs{display:flex;max-width:1200px;margin:0 auto;padding:0 40px;overflow-x:auto;scrollbar-width:none}
.admin-tabs::-webkit-scrollbar{display:none}
.admin-tab{font-family:'IBM Plex Mono',monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;padding:14px 22px;cursor:pointer;border:none;background:transparent;color:var(--text-soft);border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;flex-shrink:0}
.admin-tab:hover{color:var(--text)}
.admin-tab.active{color:var(--gold);border-bottom-color:var(--gold)}

/* CONTENT */
.admin-content{max-width:1200px;margin:0 auto;padding:32px 40px}
.tab-pane{display:none}
.tab-pane.active{display:block;animation:fadeUp .35s ease both}

/* MÉTRICAS */
.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}
.metric-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px}
.metric-label{font-family:'IBM Plex Mono',monospace;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.metric-label svg{width:13px;height:13px}
.metric-value{font-size:2rem;font-weight:700;color:var(--text);margin-bottom:4px}
.metric-sub{font-size:.78rem;color:var(--text-soft)}
.metric-up{color:#4caf50}

/* RECENT GRID */
.recent-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.section-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.section-card-title{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:4px}
.section-card-sub{font-size:.8rem;color:var(--text-soft);margin-bottom:18px}
.activity-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.activity-row:last-child{border-bottom:none}
.activity-name{font-size:.88rem;font-weight:600;color:var(--text)}
.activity-info{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--text-soft);margin-top:2px}

/* BADGES */
.ab{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.08em;padding:3px 10px;border-radius:100px;white-space:nowrap;flex-shrink:0}
.ab-pendente{background:rgba(213,184,131,.1);border:1px solid rgba(213,184,131,.2);color:var(--gold)}
.ab-ativo{background:rgba(76,175,80,.1);border:1px solid rgba(76,175,80,.25);color:#4caf50}
.ab-usado{background:rgba(76,175,80,.1);border:1px solid rgba(76,175,80,.25);color:#4caf50}
.ab-disponivel{background:rgba(76,175,80,.1);border:1px solid rgba(76,175,80,.25);color:#4caf50}
.ab-expirado{background:rgba(150,150,150,.08);border:1px solid rgba(150,150,150,.2);color:var(--text-soft)}
.ab-revogado{background:rgba(229,57,53,.08);border:1px solid rgba(229,57,53,.25);color:#e53935}
[data-theme=light] .ab-pendente{background:rgba(90,69,32,.07);border-color:rgba(90,69,32,.18);color:#7a5c1e}

/* TOOLBAR */
.list-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}
.search-wrap{position:relative;flex:1;min-width:200px}
.search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-soft);pointer-events:none}
.search-input{font-family:'Barlow',sans-serif;font-size:.9rem;background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:10px 14px 10px 36px;width:100%;border-radius:var(--radius-sm);outline:none;transition:border .2s,background .2s}
.search-input::placeholder{color:var(--text-soft)}
.search-input:focus{border-color:var(--gold-dark);background:var(--input-focus)}
.filter-select{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.08em;background:var(--input-bg);border:1px solid var(--border);color:var(--text-muted);padding:10px 32px 10px 12px;border-radius:var(--radius-sm);outline:none;cursor:pointer;transition:border .2s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d5b883' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;-webkit-appearance:none;appearance:none}
.count-label{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--text-soft);letter-spacing:.08em;white-space:nowrap}

/* PARCEIROS CARDS */
.parceiros-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.parceiro-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border .2s}
.parceiro-card:hover{border-color:var(--border-md)}
.parceiro-card-header{background:linear-gradient(135deg,var(--gold-dark) 0%,var(--gold) 60%,var(--gold-light) 100%);padding:18px 22px;display:flex;align-items:center;gap:14px}
.parceiro-card-icon{width:48px;height:48px;border-radius:var(--radius-sm);background:rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}
.parceiro-card-name{font-size:1.05rem;font-weight:700;color:#000;margin-bottom:3px}
.parceiro-card-cat{font-family:'IBM Plex Mono',monospace;font-size:.65rem;letter-spacing:.1em;color:rgba(0,0,0,.5);text-transform:uppercase}
.parceiro-card-status{margin-left:auto;flex-shrink:0}
.parceiro-card-body{padding:18px 22px}
.parceiro-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.parceiro-info-label{font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);margin-bottom:3px}
.parceiro-info-value{font-size:.85rem;color:var(--text);font-weight:500}
.parceiro-info-value.gold{color:var(--gold);font-weight:700}
.parceiro-desc{font-size:.83rem;color:var(--text-muted);line-height:1.6;margin-bottom:16px;padding-top:12px;border-top:1px solid var(--border)}
.parceiro-actions{display:flex;gap:8px;flex-wrap:wrap}

/* MORADORES TABELA */
.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;overflow-x:auto}
.moradores-table{width:100%;border-collapse:collapse}
.moradores-table th{font-family:'IBM Plex Mono',monospace;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);padding:10px 16px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
.moradores-table td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:.88rem;color:var(--text-muted);vertical-align:middle}
.moradores-table tr:last-child td{border-bottom:none}
.moradores-table tr:hover td{background:var(--input-bg)}
.morador-name{font-weight:600;color:var(--text);margin-bottom:2px}
.morador-email{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--text-soft)}
.td-actions{display:flex;gap:6px;justify-content:flex-end}

/* CUPONS CARDS */
.cupons-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cupom-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border .2s}
.cupom-card:hover{border-color:var(--border-md)}
.cupom-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}
.cupom-code{font-family:'IBM Plex Mono',monospace;font-size:.95rem;font-weight:500;color:var(--gold);letter-spacing:.08em;margin-bottom:3px}
.cupom-parceiro{font-size:.82rem;font-weight:600;color:var(--text)}
.cupom-morador{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--text-soft)}
.cupom-divider{height:1px;background:var(--border);margin:12px 0}
.cupom-meta{display:flex;justify-content:space-between;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:var(--text-soft);margin-bottom:14px}
.cupom-note{font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:var(--text-soft);text-align:center;padding:8px 0}

/* BOTÕES DE AÇÃO */
.btn-action{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:8px 14px;cursor:pointer;border:none;transition:all .2s;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:5px;text-decoration:none}
.btn-action svg{width:13px;height:13px;flex-shrink:0}
.btn-aprovar{background:rgba(76,175,80,.12);color:#4caf50;border:1px solid rgba(76,175,80,.3)}
.btn-aprovar:hover{background:rgba(76,175,80,.22)}
.btn-editar{background:var(--input-bg);color:var(--text-muted);border:1px solid var(--border)}
.btn-editar:hover{background:var(--input-focus);color:var(--text);border-color:var(--border-md)}
.btn-remover{background:rgba(229,57,53,.08);color:#e53935;border:1px solid rgba(229,57,53,.2)}
.btn-remover:hover{background:rgba(229,57,53,.18)}
.btn-revogar{background:rgba(229,57,53,.08);color:#e53935;border:1px solid rgba(229,57,53,.2);width:100%;justify-content:center}
.btn-revogar:hover{background:rgba(229,57,53,.18)}

/* MODAL */
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:24px}
.modal-overlay.open{display:flex}
[data-theme=light] .modal-overlay{background:rgba(90,69,32,.4)}
.modal{background:var(--bg-card);border:1px solid var(--border-md);border-radius:var(--radius);width:100%;max-width:500px;box-shadow:0 24px 80px rgba(0,0,0,.8);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));animation:fadeUp .3s ease both}
.modal-header{padding:24px 28px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}
.modal-title{font-size:1.1rem;font-weight:700;color:var(--text)}
.modal-sub{font-size:.82rem;color:var(--text-soft);margin-top:4px}
.modal-close{background:none;border:none;cursor:pointer;color:var(--text-soft);padding:4px;transition:color .2s;flex-shrink:0}
.modal-close:hover{color:var(--text)}
.modal-close svg{width:18px;height:18px}
.modal-body{padding:0 28px 24px}
.modal-footer{padding:16px 28px 24px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}
.mbtn{font-family:'IBM Plex Mono',monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:11px 22px;cursor:pointer;border:none;transition:all .25s;border-radius:var(--radius-sm);clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%)}
.mbtn-fill{background:var(--gold);color:#000;font-weight:700}
.mbtn-fill:hover{background:var(--gold-light)}
.mbtn-outline{background:transparent;color:var(--text-muted);border:1px solid var(--border-md)}
.mbtn-outline:hover{border-color:var(--gold);color:var(--text)}
.mbtn-danger{background:rgba(229,57,53,.08);color:#e53935;border:1px solid rgba(229,57,53,.25)}
.mbtn-danger:hover{background:rgba(229,57,53,.18)}
.modal .field{margin-bottom:14px}
.modal .field label{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);display:block;margin-bottom:5px}
.modal .field input,.modal .field select,.modal .field textarea{font-family:'Barlow',sans-serif;font-size:.95rem;background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:11px 13px;width:100%;outline:none;transition:border .2s,background .2s;border-radius:var(--radius-sm);-webkit-appearance:none;appearance:none}
.modal .field input:focus,.modal .field select:focus,.modal .field textarea:focus{border-color:var(--gold-dark);background:var(--input-focus)}
.modal .field textarea{resize:vertical;min-height:80px;line-height:1.6}
.modal-g2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.modal-alert{font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.07em;padding:12px 14px;margin-bottom:14px;border-left:3px solid #e53935;background:rgba(229,57,53,.08);color:#e53935;border-radius:0 var(--radius-sm) var(--radius-sm) 0}

/* FOOTER */
footer{position:relative;z-index:1;padding:24px 40px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
footer span{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.1em;color:var(--text-soft)}

/* RESPONSIVO */
@media(max-width:1024px){.metrics-row{grid-template-columns:repeat(2,1fr)}.parceiros-grid{grid-template-columns:1fr}.cupons-grid{grid-template-columns:repeat(2,1fr)}.recent-grid{grid-template-columns:1fr}}
@media(max-width:768px){nav{padding:0 20px;height:60px}.admin-content{padding:24px 20px}.admin-tabs{padding:0 20px}.metrics-row{grid-template-columns:1fr 1fr}.cupons-grid{grid-template-columns:1fr}.parceiro-info-grid{grid-template-columns:1fr}.modal-g2{grid-template-columns:1fr}footer{padding:20px;flex-direction:column;text-align:center}}
@media(max-width:480px){.metrics-row{grid-template-columns:1fr}.admin-tab{padding:12px 14px;font-size:.68rem}.list-toolbar{flex-direction:column;align-items:stretch}.td-actions{flex-wrap:wrap}nav{padding:0 14px}.nav-brand-sub{display:none}.nav-btn span{display:none}.nav-btn{padding:8px 9px}}

/* ════════════════════════════════════════════════════════════
   DASHBOARD PARCEIRO — header, métricas, validação, oferta, atividade
   ════════════════════════════════════════════════════════════ */
/* ── HEADER DO PARCEIRO ── */
.parceiro-header{background:linear-gradient(135deg,var(--gold-dark) 0%,var(--gold) 60%,var(--gold-light) 100%);border-radius:var(--radius);padding:24px 28px;margin-bottom:24px;display:flex;align-items:center;gap:18px;animation:fadeUp .5s ease both}
.parceiro-icon{width:60px;height:60px;border-radius:var(--radius-sm);background:rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex-shrink:0}
.parceiro-name{font-size:1.4rem;font-weight:700;color:#000;margin-bottom:5px}
.parceiro-badge{display:inline-flex;background:rgba(0,0,0,.2);color:#000;font-family:'IBM Plex Mono',monospace;font-size:.72rem;font-weight:600;letter-spacing:.1em;padding:4px 12px;border-radius:100px}

/* ── CARDS BASE ── */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:background .3s,border .3s}

/* ── MÉTRICAS ── */
.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;animation:fadeUp .5s .1s ease both}
.metric-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px}
.metric-label{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);margin-bottom:14px;display:flex;align-items:center;gap:6px}
.metric-label svg{width:14px;height:14px}
.metric-value{font-size:2rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:10px;margin-bottom:4px}
.metric-value svg{width:22px;height:22px;color:var(--gold)}
.metric-sub{font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:var(--text-soft);letter-spacing:.05em}
.metric-conversion{color:var(--green);font-weight:600}

/* ── GRID MEIO ── */
.mid-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;animation:fadeUp .5s .2s ease both}

/* ── VALIDAR CUPOM ── */
.card-title{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:4px}
.card-sub{font-size:.82rem;color:var(--text-soft);margin-bottom:20px;line-height:1.5}

.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.field label{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}
.field input{font-family:'IBM Plex Mono',monospace;font-size:.95rem;letter-spacing:.08em;background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:12px 14px;outline:none;transition:border .2s,background .2s;width:100%;border-radius:var(--radius-sm);-webkit-appearance:none}
.field input::placeholder{color:var(--text-soft);letter-spacing:.05em}
.field input:focus{border-color:var(--gold-dark);background:var(--input-focus)}
.field input.is-valid{border-color:var(--green);background:var(--green-bg)}
.field input.is-invalid{border-color:var(--red);background:var(--red-bg)}

.btn{font-family:'IBM Plex Mono',monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:13px 16px;cursor:pointer;border:none;transition:all .25s;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border-radius:var(--radius-sm);text-decoration:none}
.btn svg{width:15px;height:15px;flex-shrink:0}
.btn-fill{background:var(--gold);color:#000;font-weight:700}
.btn-fill:hover{background:var(--gold-light);transform:translateY(-1px)}
.btn-fill:disabled{opacity:.6;pointer-events:none}
.btn-outline{background:transparent;color:var(--text-muted);border:1px solid var(--border-md)}
.btn-outline:hover{border-color:var(--gold);color:var(--text);background:var(--input-bg)}

/* RESULTADO VALIDAÇÃO */
.validation-result{display:none;border-radius:var(--radius-sm);padding:14px 16px;margin-top:12px;font-size:.88rem;line-height:1.6}
.validation-result.show{display:block}
.result-valid{background:var(--green-bg);border:1px solid var(--green-border);color:var(--green)}
.result-invalid{background:var(--red-bg);border:1px solid var(--red-border);color:var(--red)}
.result-title{font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:.8rem;letter-spacing:.08em}
.result-detail{font-size:.82rem;opacity:.85}

/* ── OFERTA ── */
.oferta-label{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px}
.oferta-value{font-size:1.5rem;font-weight:700;color:var(--gold);margin-bottom:16px}
.oferta-desc-label{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px}
.oferta-desc{font-size:.88rem;color:var(--text-muted);line-height:1.65;margin-bottom:20px}

/* ── ATIVIDADE RECENTE ── */
.activity-section{animation:fadeUp .5s .3s ease both}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.section-title{font-size:1rem;font-weight:600;color:var(--text)}
.section-sub{font-size:.8rem;color:var(--text-soft)}

.activity-list{display:flex;flex-direction:column;gap:0}
.activity-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}
.activity-item:last-child{border-bottom:none}
.activity-left{}
.activity-name{font-size:.92rem;font-weight:600;color:var(--text);margin-bottom:2px}
.activity-code{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--text-soft);letter-spacing:.06em}
.activity-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.activity-date{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--text-soft);white-space:nowrap}
.badge-validado{background:var(--green-bg);border:1px solid var(--green-border);color:var(--green);font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.08em;padding:3px 10px;border-radius:100px;white-space:nowrap}
.badge-pendente{background:rgba(213,184,131,.1);border:1px solid rgba(213,184,131,.2);color:var(--gold);font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.08em;padding:3px 10px;border-radius:100px;white-space:nowrap}
.badge-expirado{background:rgba(150,150,150,.08);border:1px solid rgba(150,150,150,.2);color:var(--text-soft);font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.08em;padding:3px 10px;border-radius:100px;white-space:nowrap}

/* EMPTY */
.activity-empty{text-align:center;padding:40px 20px;font-family:'IBM Plex Mono',monospace;font-size:.8rem;color:var(--text-soft);letter-spacing:.08em}
/* ════════════════════════════════════════════════════════════
   LOADING / SPLASH SCREEN (autenticando)
   ════════════════════════════════════════════════════════════ */

@keyframes breathe{
    0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.7}
@keyframes logoIn{
    from{opacity:0;transform:scale(.6) rotate(-10deg)}
@keyframes ringPulse{
    0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1}
@keyframes dotBounce{
    0%,80%,100%{transform:scale(1);background:rgba(213,184,131,.25)}
/* WRAP CENTRAL */
.loading-wrap{
    position:relative;z-index:1;
    display:flex;flex-direction:column;align-items:center;
    text-align:center;padding:40px 24px;
    animation:fadeIn .6s ease both;
}

/* LOGO */
.logo-wrap{margin-bottom:40px;position:relative}
.logo-img{
    width:80px;height:80px;
    animation:logoIn .8s cubic-bezier(.34,1.56,.64,1) both;
}
.logo-ring{
    position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:100px;height:100px;
    border-radius:50%;
    border:1.5px solid rgba(213,184,131,.2);
    animation:ringPulse 2s ease-in-out infinite;
}
.logo-ring-2{
    position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:120px;height:120px;
    border-radius:50%;
    border:1px solid rgba(213,184,131,.08);
    animation:ringPulse 2s ease-in-out infinite .4s;
}
@keyframes logoIn{
    from{opacity:0;transform:scale(.6) rotate(-10deg)}
    to{opacity:1;transform:scale(1) rotate(0)}
}
@keyframes ringPulse{
    0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1}
    50%{transform:translate(-50%,-50%) scale(1.12);opacity:.4}
}

/* SAUDAÇÃO */
.greeting-tag{
    font-family:'IBM Plex Mono',monospace;
    font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;
    color:var(--text-soft);margin-bottom:12px;
    animation:fadeUp .6s .4s ease both;
}
.greeting-name{
    font-family:'Barlow',sans-serif;
    font-size:clamp(1.8rem,5vw,2.8rem);font-weight:700;
    color:var(--text);line-height:1.1;margin-bottom:8px;
    animation:fadeUp .6s .5s ease both;
}
.greeting-sub{
    font-size:.95rem;font-weight:300;
    color:rgba(213,184,131,.55);line-height:1.7;
    margin-bottom:48px;
    animation:fadeUp .6s .6s ease both;
}
[data-theme=light] .greeting-sub{color:rgba(90,69,32,.5)}

/* BARRA DE PROGRESSO */
.progress-wrap{
    width:240px;margin-bottom:16px;
    animation:fadeUp .6s .7s ease both;
}
.progress-track{
    height:2px;background:rgba(213,184,131,.12);
    border-radius:2px;overflow:hidden;
}
.progress-bar{
    height:100%;width:0%;
    background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-light));
    border-radius:2px;
    transition:width .4s ease;
}
.progress-label{
    font-family:'IBM Plex Mono',monospace;
    font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
    color:var(--text-soft);margin-top:10px;
    min-height:1.2em;
}

/* PONTOS ANIMADOS */
.dots{
    display:flex;gap:6px;justify-content:center;margin-top:32px;
    animation:fadeUp .6s .8s ease both;
}
.dot{
    width:5px;height:5px;border-radius:50%;
    background:rgba(213,184,131,.25);
    animation:dotBounce 1.2s ease-in-out infinite;
}
.dot:nth-child(2){animation-delay:.15s}
.dot:nth-child(3){animation-delay:.3s}
@keyframes dotBounce{
    0%,80%,100%{transform:scale(1);background:rgba(213,184,131,.25)}
    40%{transform:scale(1.4);background:var(--gold)}
}

/* CORNER MARKS */
.corner{position:fixed;width:20px;height:20px}
.corner-tl{top:24px;left:24px;border-top:1px solid var(--border);border-left:1px solid var(--border)}
.corner-tr{top:24px;right:24px;border-top:1px solid var(--border);border-right:1px solid var(--border)}
.corner-bl{bottom:24px;left:24px;border-bottom:1px solid var(--border);border-left:1px solid var(--border)}
.corner-br{bottom:24px;right:24px;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}

/* FADE OUT da página inteira */
body.leaving{animation:pageOut .5s ease forwards}
@keyframes pageOut{
    to{opacity:0;transform:scale(.97)}
}

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


/* ════════════════════════════════════════════════════════════
   DATATABLES — tema H2A (moradores)
   ════════════════════════════════════════════════════════════ */
/* ════════════════════════════════
        DATATABLES — TEMA H2A
        ════════════════════════════════ */

/* Container */
.dt-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}

/* Remove estilos padrão que conflitam */
table.dataTable { width: 100% !important; border-collapse: collapse !important; margin: 0 !important; }
table.dataTable.no-footer { border-bottom: none !important; }
.dataTables_wrapper { font-family: 'Barlow', sans-serif; }

/* Cabeçalho */
table.dataTable thead th,
table.dataTable thead td {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .65rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--text-soft); background: transparent !important;
    padding: 12px 16px; border-bottom: 1px solid var(--border) !important;
    white-space: nowrap; cursor: pointer; user-select: none;
    outline: none;
}
table.dataTable thead th.sorting:after        { content: " ⇅"; opacity: .3; font-size: .55rem; }
table.dataTable thead th.sorting_asc:after    { content: " ▲"; color: var(--gold); opacity: 1; font-size: .55rem; }
table.dataTable thead th.sorting_desc:after   { content: " ▼"; color: var(--gold); opacity: 1; font-size: .55rem; }

/* Linhas */
table.dataTable tbody tr { border-bottom: 1px solid var(--border); transition: background .15s; }
table.dataTable tbody tr:last-child { border-bottom: none; }
table.dataTable tbody tr:hover > td { background: var(--input-bg) !important; }
table.dataTable tbody td {
    padding: 14px 16px; font-size: .88rem; color: var(--text-muted);
    vertical-align: middle; border-top: none !important; background: transparent;
}

/* ── TOOLBAR ── */
.dt-toolbar {
    display: flex; align-items: center; gap: 12px;
    padding: 16px 20px; border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}
.dt-search-wrap { position: relative; flex: 1; min-width: 180px; }
.dt-search-wrap svg {
    position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
    width: 14px; height: 14px; color: var(--text-soft); pointer-events: none;
}
.dt-search-input {
    font-family: 'Barlow', sans-serif; font-size: .88rem;
    background: var(--input-bg); border: 1px solid var(--border);
    color: var(--text); padding: 9px 12px 9px 33px;
    width: 100%; border-radius: var(--radius-sm); outline: none;
    transition: border .2s, background .2s;
}
.dt-search-input::placeholder { color: var(--text-soft); }
.dt-search-input:focus { border-color: var(--gold-dark); background: var(--input-focus); }

.dt-select {
    font-family: 'IBM Plex Mono', monospace; font-size: .7rem; letter-spacing: .06em;
    background: var(--input-bg); border: 1px solid var(--border); color: var(--text-muted);
    padding: 9px 28px 9px 10px; border-radius: var(--radius-sm);
    outline: none; cursor: pointer; transition: border .2s;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23d5b883' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 9px center;
    -webkit-appearance: none; appearance: none;
}
[data-theme=light] .dt-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235a4520' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.dt-select:focus { border-color: var(--gold-dark); }

.dt-count {
    font-family: 'IBM Plex Mono', monospace; font-size: .7rem;
    color: var(--text-soft); letter-spacing: .06em; white-space: nowrap; flex-shrink: 0;
}

/* ── FOOTER DA TABELA ── */
.dt-footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 20px; border-top: 1px solid var(--border); flex-wrap: wrap; gap: 8px;
}
.dt-info-text {
    font-family: 'IBM Plex Mono', monospace; font-size: .68rem;
    letter-spacing: .06em; color: var(--text-soft);
}

/* Paginação */
.dataTables_paginate { display: flex; align-items: center; gap: 4px; }
.dataTables_paginate .paginate_button {
    font-family: 'IBM Plex Mono', monospace; font-size: .68rem; letter-spacing: .06em;
    padding: 6px 11px !important; border: 1px solid var(--border) !important;
    border-radius: var(--radius-sm) !important; background: transparent !important;
    color: var(--text-soft) !important; cursor: pointer; transition: all .18s;
    line-height: 1; display: inline-block;
}
.dataTables_paginate .paginate_button:hover {
    background: var(--input-bg) !important; border-color: var(--border-md) !important;
    color: var(--text) !important;
}
.dataTables_paginate .paginate_button.current,
.dataTables_paginate .paginate_button.current:hover {
    background: var(--gold) !important; border-color: var(--gold) !important;
    color: #000 !important; font-weight: 700;
}
.dataTables_paginate .paginate_button.disabled,
.dataTables_paginate .paginate_button.disabled:hover {
    opacity: .25; cursor: default;
    background: transparent !important; color: var(--text-soft) !important;
}

/* ── RESPONSIVO — linha expandida ── */
table.dataTable tbody tr.child { background: transparent !important; }
table.dataTable tbody tr.child:hover > td { background: transparent !important; }
table.dataTable tbody tr.child td.child { padding: 8px 16px 14px 16px !important; }

table.dataTable tbody tr.child ul.dtr-details {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px;
}
table.dataTable tbody tr.child ul.dtr-details li {
    border-bottom: none !important; padding: 6px 0 !important;
    border-top: 1px solid var(--border); margin-top: 4px;
}
table.dataTable tbody tr.child ul.dtr-details li:first-child { border-top: none; margin-top: 0; }

table.dataTable tbody tr.child span.dtr-title {
    font-family: 'IBM Plex Mono', monospace; font-size: .6rem;
    letter-spacing: .12em; text-transform: uppercase; color: var(--text-soft);
    display: block; margin-bottom: 3px;
}
table.dataTable tbody tr.child span.dtr-data { font-size: .85rem; color: var(--text-muted); }

/* Ícone expand/collapse */
table.dataTable tbody td.dtr-control { width: 16px; padding-right: 8px !important; cursor: pointer; }
table.dataTable tbody td.dtr-control::before {
    width: 16px !important; height: 16px !important; margin-top: -8px !important;
    background-color: var(--gold) !important; border: 2px solid var(--gold-dark) !important;
    border-radius: 50% !important; box-shadow: none !important; line-height: 14px !important;
    font-size: 10px !important;
}
table.dataTable tbody tr.parent td.dtr-control::before {
    background-color: var(--gold-dark) !important;
}

/* light mode ajustes */
[data-theme=light] .dt-search-input { background: var(--input-bg); border-color: var(--border); color: var(--text); }
[data-theme=light] table.dataTable thead th { color: var(--text-soft); }
[data-theme=light] table.dataTable tbody td { color: var(--text-muted); }

/* RESPONSIVO LAYOUT */
@media(max-width:768px){
    .dt-toolbar { padding: 12px 14px; gap: 8px; }
    .dt-footer  { padding: 10px 14px; }
    table.dataTable tbody tr.child ul.dtr-details { grid-template-columns: 1fr; }
}
@media(max-width:480px){
    .dt-toolbar { flex-direction: column; align-items: stretch; }
    .dt-search-wrap { min-width: unset; }
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVO GLOBAL
   ════════════════════════════════════════════════════════════ */
/* ════════════════════════════════════════════════════════════
   RESPONSIVO GLOBAL
   ════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    .partners-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 768px) {
    nav           { padding: 0 20px; height: 60px; }
    footer        { padding: 20px; flex-direction: column; text-align: center; }
    .auth-card    { padding: 32px 20px; clip-path: none; }
    .card         { padding: 28px 20px; clip-path: none; }
    .type-wrap    { padding-top: 100px; }
    .g2           { grid-template-columns: 1fr; }
    .span2        { grid-column: auto; }
    .hero-banner  { flex-direction: column; padding: 24px 20px; gap: 16px; }
    .hero-badge   { width: 100%; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 12px 16px; }
    .hero-badge-label { margin-top: 0; text-align: left; }
    .hero-title   { font-size: 1.4rem; }
    .card-header  { padding: 24px 20px; }
    .card-body    { padding: 24px 20px; }
    .features     { grid-template-columns: 1fr; }
    .feature      { clip-path: none; }
    .feature + .feature { border-left: 1px solid var(--border); border-top: none; }
}

@media (max-width: 600px) {
    .partners-grid { grid-template-columns: 1fr; }
    .cats          { gap: 6px; }
    .cat-btn       { padding: 7px 13px; font-size: .82rem; }
    .btn-row       { flex-direction: column; }
    .step-line     { min-width: 10px; }
    .step-dot-label { font-size: .5rem; }
    .cep-row       { flex-direction: column; align-items: stretch; }
    .btn-cep       { width: 100%; height: auto; padding: 12px; }
    .hero          { padding-top: 110px; }
}

@media (max-width: 480px) {
    nav            { padding: 0 14px; }
    .logo-sub,
    .nav-brand-sub { display: none; }
    .logo          { font-size: 1rem; }
    .nav-btn span  { display: none; }
    .nav-btn       { padding: 8px 9px; }
    .theme-toggle  { padding: 7px 10px; font-size: .85rem; }
    .hero-btns     { flex-direction: column; align-items: center; }
    .btn-hero      { width: 100%; max-width: 320px; }
    .section-count { display: none; }
    .hero-banner   { padding: 20px 16px; }
    .hero-title    { font-size: 1.25rem; }
    footer         { padding: 14px; }
}

/* responsivo dash parceiro */
