/* ============================================================
   Afeto Divino — Design System
   Estrutura limpa, enterprise, responsiva, sem molduras decorativas.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,700;0,9..40,800;1,9..40,400&family=Fraunces:opsz,wght@9..144,600;9..144,700;9..144,750&display=swap');

/* ── Tokens ────────────────────────────────────────────────── */
:root {
    --brand:        #0b7a75;
    --brand-dark:   #075f5b;
    --brand-soft:   #e6f3ef;
    --coral:        #c55268;
    --gold:         #d4a373;
    --cream:        #fdf8f5;
    --paper:        #ffffff;
    --ink:          #17332f;
    --muted:        #64736f;
    --line:         #dce7e3;
    --bg:           #f6f9f7;
    --shadow-sm:    0 4px 14px rgba(23,51,47,.06);
    --shadow:       0 12px 36px rgba(23,51,47,.09);
    --shadow-lg:    0 22px 60px rgba(23,51,47,.13);
    --radius:       8px;
    --radius-lg:    12px;
}

/* ── Reset & base ──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: clip; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 1rem;
    line-height: 1.6;
}
h1, h2, h3, h4 { font-family: 'Fraunces', Georgia, serif; letter-spacing: -.01em; line-height: 1.1; }
a { color: var(--brand); }
img { max-width: 100%; }

/* ── Utilities ─────────────────────────────────────────────── */
.eyebrow {
    display: block;
    color: var(--coral);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.text-muted { color: var(--muted); }
.mt-2 { margin-top: .5rem; }
.mt-3 { margin-top: 1rem; }
.mt-4 { margin-top: 1.5rem; }
.mt-5 { margin-top: 2rem; }
.mb-0 { margin-bottom: 0; }
.mb-2 { margin-bottom: .5rem; }
.mb-3 { margin-bottom: 1rem; }
.mb-4 { margin-bottom: 1.5rem; }
.mb-5 { margin-bottom: 2rem; }
.w-100 { width: 100%; }
.gap-2 { gap: .5rem; }
.gap-3 { gap: 1rem; }
.d-flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.align-items-center { align-items: center; }
.justify-content-between { justify-content: space-between; }

/* ── Headings — Blazor sets focus on h1 after navigation; hide browser ring ── */
:is(h1,h2,h3,h4,h5,h6):focus { outline: none; }

/* ── Buttons ───────────────────────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 44px;
    padding: .62rem 1.1rem;
    border: 1px solid transparent;
    border-radius: var(--radius);
    font-family: inherit;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    user-select: none;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.btn:focus                 { outline: none; }
.btn:focus-visible         { outline: 2px solid var(--brand); outline-offset: 3px; box-shadow: none; }
.btn[data-busy]            { pointer-events: none; opacity: .72; }
.btn-sm   { min-height: 34px; padding: .38rem .75rem; font-size: .85rem; }
.btn-lg   { min-height: 52px; padding: .8rem 1.4rem;  font-size: 1.02rem; }

.btn-brand        { background: var(--brand); border-color: var(--brand); color: #fff !important; box-shadow: 0 8px 22px rgba(11,122,117,.2); }
.btn-brand:hover  { background: var(--brand-dark); border-color: var(--brand-dark); transform: translateY(-1px); }
.btn-brand:active { background: var(--brand-dark) !important; box-shadow: none !important; transform: scale(.98) !important; }
.btn-brand:disabled,
.btn-brand[disabled] { background: var(--brand) !important; border-color: var(--brand) !important; color: rgba(255,255,255,.6) !important; opacity: .6; box-shadow: none !important; transform: none !important; cursor: not-allowed; }
.btn-outline-brand        { border-color: #9bc9c3; color: var(--brand) !important; background: #fff; }
.btn-outline-brand:hover  { background: var(--brand-soft); }
.btn-outline-brand:active { background: var(--brand-soft) !important; }
.btn-outline-brand:disabled,
.btn-outline-brand[disabled] { opacity: .55; cursor: not-allowed; }
.btn-outline-danger       { border-color: #f0b4b4; color: #a93246 !important; background: #fff; }
.btn-outline-danger:hover { background: #fff2f3; }
.btn-outline-danger:active{ background: #ffe8e8 !important; }
.btn-outline-danger:disabled,
.btn-outline-danger[disabled] { opacity: .55; cursor: not-allowed; }
.btn-danger       { background: #a93246; border-color: #a93246; color: #fff !important; }
.btn-danger:hover { background: #8c2438; }
.btn-danger:active{ background: #7a1d2e !important; transform: scale(.98) !important; }
.btn-danger:disabled,
.btn-danger[disabled] { opacity: .55; cursor: not-allowed; }
.btn-soft  { background: #f0f5f3; color: var(--ink); border-color: transparent; }
.btn-soft:active { background: #e3eeea !important; }
.btn-soft:disabled,
.btn-soft[disabled] { opacity: .55; cursor: not-allowed; }
.btn-link  { min-height: 0; padding: 0; border: 0; box-shadow: none; background: transparent; color: var(--brand); font-weight: 700; }
.btn-link:disabled,
.btn-link[disabled] { opacity: .55; cursor: not-allowed; }

/* Button spinner */
.btn-spinner { display: inline-block; width: .9em; height: .9em; border: 2.5px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: btn-spin .6s linear infinite; flex-shrink: 0; vertical-align: -.1em; }
@keyframes btn-spin { to { transform: rotate(360deg); } }

/* ── Brand mark ────────────────────────────────────────────── */
.brand-mark { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; flex: 0 0 auto; line-height: 1; }
.brand-symbol { position: relative; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50% 50% 44% 44%; background: var(--brand); color: #fff; }
.brand-halo  { position: absolute; top: -9px; width: 24px; height: 9px; border: 3px solid var(--gold); border-radius: 50%; }
.brand-heart { font-size: 24px; line-height: 1; }
.brand-symbol-svg { width: 56px; height: 56px; background: transparent; overflow: visible; }
.brand-symbol-svg svg { display: block; width: 56px; height: 56px; filter: drop-shadow(0 10px 18px rgba(11,122,117,.18)); }
.brand-symbol-svg .brand-halo,
.brand-symbol-svg .brand-heart { display: none; }
.brand-words { display: grid; line-height: .9; transform: translateY(2px); }
.brand-words strong { font-family: 'Fraunces', serif; font-size: 1.6rem; }
.brand-words small  { margin-top: 6px; color: var(--gold); font-size: .7rem; font-weight: 800; letter-spacing: .18em; }

/* ── Forms ─────────────────────────────────────────────────── */
.form-control,
.form-select {
    display: block;
    width: 100%;
    padding: .6rem .9rem;
    border: 1px solid #cfddd8;
    border-radius: var(--radius);
    background: #fff;
    color: var(--ink);
    font-family: inherit;
    font-size: 1rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:focus,
.form-select:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(11,122,117,.12);
}
.form-control[aria-busy="true"] {
    background-image: linear-gradient(90deg, transparent, #e3f3ef, transparent);
    background-size: 220% 100%;
    animation: field-loading 1s linear infinite;
}
@keyframes field-loading { to { background-position: -220% 0; } }
.form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10'%3E%3Cpath d='M0 0l8 10 8-10z' fill='%2364736f'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .75rem center; background-size: 12px; padding-right: 2.5rem; }
.form-label   { display: block; margin-bottom: .35rem; font-size: .9rem; font-weight: 700; }
.form-check   { display: flex; align-items: center; gap: .6rem; }
.form-check-input { width: 18px; height: 18px; accent-color: var(--brand); flex-shrink: 0; }
.form-field   { display: grid; gap: 6px; min-width: 0; }
.form-field label { font-weight: 700; font-size: .9rem; }
.form-field.span-2 { grid-column: span 2; }
.form-grid    { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-section { min-width: 0; margin: 0 0 28px; padding: 0 0 28px; border-bottom: 1px solid var(--line); }
.form-section:last-of-type { border-bottom: 0; }
.form-section legend { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0 0 18px; color: var(--ink); font-family: 'Fraunces', serif; font-size: 1.3rem; font-weight: 700; }
.form-section legend span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--brand); color: #fff; font-family: system-ui, sans-serif; font-size: .88rem; }
.form-hint    { margin: -6px 0 16px; color: var(--muted); font-size: .88rem; }
.form-actions-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.form-actions-row .btn { min-width: 160px; }
.field-label-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.field-label-row a { color: var(--brand); font-weight: 700; font-size: .88rem; }
.account-check { display: flex; align-items: center; gap: .65rem; }
.input-prefix, .input-suffix { position: relative; display: flex; align-items: center; }
.input-prefix > span, .input-suffix > span { position: absolute; z-index: 1; color: var(--muted); font-weight: 700; pointer-events: none; }
.input-prefix > span { left: 1rem; }
.input-prefix input { padding-left: 3.2rem; }
.input-suffix > span { right: 1rem; }
.input-suffix input { padding-right: 5rem; }

/* Feedback / Alerts */
.alert { padding: 14px 18px; border-radius: var(--radius); font-weight: 500; margin-bottom: 18px; }
.alert-success { background: #dff2e6; color: #0e5a2d; border-left: 4px solid #1a9a5b; }
.alert-danger  { background: #fff0f0; color: #7b1f2a; border-left: 4px solid #c43a4a; }
.alert-warning { background: #fff8e9; color: #6b4a06; border-left: 4px solid var(--gold); }

/* ── Status chips ──────────────────────────────────────────── */
.status-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 800;
    white-space: nowrap;
}
.status-chip.success { background: #dff2e6; color: #0e5a2d; }
.status-chip.warning { background: #fff0c8; color: #785800; }
.status-chip.danger  { background: #ffe0e4; color: #881d2d; }

/* ── Public shell ──────────────────────────────────────────── */
.public-shell { width: 100%; }
.public-header {
    position: sticky;
    top: 0;
    z-index: 100;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 24px;
    min-height: 88px;
    padding: 14px max(24px, calc((100vw - 1280px) / 2));
    background: rgba(253,248,245,.98);
    border-bottom: 1px solid var(--line);
}
.public-nav { display: flex; justify-content: center; gap: 32px; }
.public-nav a { color: #42524e; font-weight: 700; text-decoration: none; transition: color .15s; }
.public-nav a:hover { color: var(--brand); }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.header-actions .btn { white-space: nowrap; }
.public-menu-toggle { display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 40px; height: 40px; padding: 0; border: none; background: transparent; cursor: pointer; }
.public-menu-toggle span { display: block; width: 22px; height: 2px; border-radius: 2px; background: var(--ink); transition: transform .22s ease, opacity .22s ease; transform-origin: center; }
.public-menu-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.public-menu-toggle.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.public-menu-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.public-menu-backdrop { position: fixed; inset: 0; z-index: 98; background: transparent; border: none; cursor: default; }
.public-nav-mobile-ctas { display: none; }

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

@media (max-width: 768px) {
    .public-header { grid-template-columns: auto auto; grid-template-rows: auto; gap: 12px; }
    .public-menu-toggle { display: flex; }
    .header-actions { display: none; }
    .public-nav {
        display: none;
        position: fixed;
        top: 72px; left: 0; right: 0; bottom: 0;
        z-index: 9999;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 24px max(16px, calc((100vw - 420px) / 2));
        background: #fdf8f5;
        border-top: 1px solid var(--line);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .public-nav.open { display: flex !important; }
    .public-nav > a { padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 1.1rem; }
    .public-nav-mobile-ctas { display: flex; flex-direction: column; gap: 10px; margin-top: 24px; }
    .public-nav-mobile-ctas .btn { min-height: 50px; font-size: 1rem; }
}

/* Hero */
.home-hero {
    display: grid;
    grid-template-columns: minmax(0,1.1fr) minmax(360px,.9fr);
    align-items: center;
    min-height: calc(100vh - 88px);
    padding: 54px max(24px, calc((100vw - 1280px) / 2));
    background: linear-gradient(110deg, #edf7f3 0%, #fffaf7 52%, #ffe8df 100%);
    gap: 40px;
}
.hero-copy { max-width: 700px; }
.hero-copy h1 { margin: 16px 0 20px; font-size: clamp(3.2rem, 5.8vw, 6rem); line-height: .94; }
.hero-copy > p { max-width: 640px; color: #566661; font-size: 1.15rem; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0; }
.trust-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; max-width: 680px; }
.trust-grid span { padding: 13px; border: 1px solid rgba(11,122,117,.12); border-radius: var(--radius); background: rgba(255,255,255,.7); color: var(--muted); font-size: .9rem; }
.trust-grid strong { display: block; color: var(--ink); }
.hero-person { position: relative; display: grid; place-items: center; align-self: stretch; min-height: 600px; overflow: hidden; }
.hero-person img { position: relative; z-index: 1; width: min(88%,500px); max-height: 660px; object-fit: contain; object-position: bottom; }
.hero-note { position: absolute; z-index: 2; right: 6%; bottom: 12%; display: grid; padding: 14px 18px; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.hero-note span { color: var(--muted); font-size: .88rem; }

/* ── Landing animations ─────────────────────────────────────── */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(22px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes heroFadeIn {
    from { opacity: 0; transform: translateX(24px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes heroFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-12px); }
}

.home-hero .hero-copy .eyebrow { animation: heroFadeUp .55s .05s ease both; }
.home-hero .hero-copy h1       { animation: heroFadeUp .6s  .15s ease both; }
.home-hero .hero-copy > p      { animation: heroFadeUp .6s  .28s ease both; }
.home-hero .hero-actions       { animation: heroFadeUp .6s  .42s ease both; }
.home-hero .trust-grid         { animation: heroFadeUp .6s  .56s ease both; }
.home-hero .hero-note          { animation: heroFadeIn .7s  .65s ease both; }
.home-hero .hero-person img    { animation: heroFadeIn .85s .2s  ease both, heroFloat 5s 1.2s ease-in-out infinite; }

/* Scroll reveal — classes added by JS IntersectionObserver */
.reveal-item {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .55s ease, transform .55s ease;
}
.reveal-item.in-view { opacity: 1; transform: none; }

.reveal-left {
    opacity: 0;
    transform: translateX(-28px);
    transition: opacity .6s ease, transform .6s ease;
}
.reveal-left.in-view { opacity: 1; transform: none; }

.reveal-right {
    opacity: 0;
    transform: translateX(28px);
    transition: opacity .6s ease, transform .6s ease;
}
.reveal-right.in-view { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .home-hero .hero-copy .eyebrow,
    .home-hero .hero-copy h1,
    .home-hero .hero-copy > p,
    .home-hero .hero-actions,
    .home-hero .trust-grid,
    .home-hero .hero-note,
    .home-hero .hero-person img { animation: none; opacity: 1; transform: none; }
    .reveal-item, .reveal-left, .reveal-right { opacity: 1; transform: none; transition: none; }
}

/* Sections */
.home-band, .services-section, .lead-capture { padding: 90px max(24px, calc((100vw - 1280px) / 2)); }
.section-heading { max-width: 700px; margin-bottom: 38px; }
.section-heading h2, .lead-capture h2 { margin: 10px 0; font-size: clamp(2.2rem, 3.8vw, 3.8rem); }
.journey-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.journey-grid article {
    padding: 26px;
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--line);
}
.journey-grid b { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; background: var(--brand-soft); color: var(--brand); font-size: 1rem; font-weight: 800; }
.journey-grid h3 { margin: 18px 0 8px; font-size: 1.3rem; }
.journey-grid p  { color: var(--muted); line-height: 1.65; }
.services-section { background: var(--cream); }
.service-list { display: grid; gap: 12px; }
.service-list article {
    display: grid;
    grid-template-columns: 88px 1fr;
    align-items: center;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow-sm);
}
.service-list article > span { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 50%; background: var(--brand); color: #fff; font-family: 'Fraunces'; font-size: 1.2rem; }
.service-list h3 { margin: 0 0 6px; font-size: 1.25rem; }
.service-list p  { color: var(--muted); margin: 0; }
.lead-capture { display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px; align-items: start; background: #eef6f3; }
.lead-capture form { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow); }

/* Footer */
.site-footer {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 30px;
    padding: 32px max(24px, calc((100vw - 1280px) / 2));
    background: #142c28;
    color: #dce7e3;
}
.site-footer .brand-mark { color: #fff; }
.site-footer p   { margin: 0; font-size: .9rem; }
.site-footer div { display: flex; gap: 18px; }
.site-footer a   { color: #afc9c4; text-decoration: none; font-size: .9rem; }

/* ── Account (login/register) shell ────────────────────────── */
.account-shell {
    display: grid;
    grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr);
    min-height: 100vh;
    background: linear-gradient(120deg, #eaf6f2 0%, #fffaf7 48%, #ffece4 100%);
}
.account-back {
    position: fixed;
    z-index: 4;
    top: 22px;
    left: 24px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(11,122,117,.2);
    border-radius: var(--radius);
    background: rgba(255,255,255,.88);
    font-weight: 700;
    font-size: .88rem;
    text-decoration: none;
    color: var(--ink);
    backdrop-filter: blur(12px);
}
.account-brand {
    display: grid;
    align-content: center;
    justify-items: start;
    gap: 20px;
    padding: 90px clamp(28px, 5vw, 90px);
    border-right: 1px solid rgba(11,122,117,.1);
}
.account-brand p { max-width: 380px; color: var(--muted); font-size: 1.15rem; line-height: 1.7; }
.account-panel {
    display: grid;
    align-content: center;
    width: min(840px, 100%);
    margin: auto;
    padding: 80px clamp(20px, 5vw, 70px);
}
.account-panel > h1 { font-size: clamp(2.4rem, 5vw, 4.3rem); margin: .3rem 0 .9rem; }
.account-panel > p  { max-width: 40rem; color: var(--muted); font-size: 1.02rem; }
.account-heading { margin-bottom: 28px; }
.account-heading h1 { margin: 10px 0; font-size: clamp(2.4rem, 5vw, 4.2rem); line-height: 1; }
.account-heading p  { max-width: 640px; color: var(--muted); font-size: 1.02rem; }
.account-form {
    display: grid;
    gap: 1.1rem;
    max-width: 36rem;
    margin-top: 1.5rem;
}
.account-switch { margin: 20px 0 0; text-align: center; color: var(--muted); }
.account-footer-action { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1.1rem; }
.account-footer-action a { color: var(--brand); font-weight: 700; }

.confirm-email-card {
    display: grid;
    gap: 12px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--brand-soft);
    margin: 20px 0 8px;
    text-align: center;
}
.confirm-email-icon { font-size: 2.6rem; line-height: 1; }

/* ── Password eye toggle ────────────────────────────────────── */
.input-eye              { position: relative; }
.input-eye .form-control { padding-right: 3rem; }
.eye-toggle             { position: absolute; right: .7rem; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: var(--muted); padding: .2rem; display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: .375rem; transition: color .15s; }
.eye-toggle:hover       { color: var(--brand); }
.eye-toggle svg         { width: 1.15rem; height: 1.15rem; pointer-events: none; }

/* ── Password strength meter ────────────────────────────────── */
.password-strength      { display: flex; align-items: center; gap: .5rem; margin-top: .4rem; }
.strength-bars          { display: flex; gap: 3px; flex: 1; }
.strength-bar           { height: 3px; flex: 1; border-radius: 2px; background: var(--border, #dee2e6); transition: background .2s; }
.strength-bar.weak      { background: #dc3545; }
.strength-bar.medium    { background: #fd7e14; }
.strength-bar.strong    { background: #198754; }
.strength-label         { font-size: .7rem; min-width: 5.5rem; text-align: right; font-weight: 600; }
.strength-label.weak    { color: #dc3545; }
.strength-label.medium  { color: #fd7e14; }
.strength-label.strong  { color: #198754; }

/* ── Onboarding entry cards ────────────────────────────────── */
.entry-choice {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 18px;
    min-height: 70vh;
    padding: 80px max(24px, calc((100vw - 1000px) / 2));
}
.entry-card {
    display: grid;
    align-content: center;
    gap: 12px;
    min-height: 240px;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow);
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease;
}
.entry-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.entry-card span  { color: var(--coral); font-weight: 800; }
.entry-card strong{ color: var(--ink); font-family: 'Fraunces'; font-size: 1.75rem; }

/* Registration choice */
.registration-hero { max-width: 640px; }
.registration-hero h1 { font-size: 2.2rem; }

/* New choice grid */
.choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin: 8px 0 18px;
}
.choice-option {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 32px 28px 28px;
    border: 2px solid var(--line);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow);
    text-decoration: none !important;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
    position: relative;
    overflow: hidden;
}
.choice-option::after {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, var(--brand-dark), var(--brand));
}
.choice-option--family::after { background: linear-gradient(90deg, var(--coral), var(--gold)); }
.choice-option:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.choice-option--family:hover  { border-color: var(--coral); }
.choice-option--professional:hover { border-color: var(--brand); }
.choice-option:active { transform: translateY(0) scale(.98); }
.choice-icon { font-size: 3rem; line-height: 1; margin-bottom: -4px; }
.choice-badge {
    display: inline-flex;
    align-self: start;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: var(--brand-soft);
    color: var(--brand-dark);
}
.choice-option--family .choice-badge { background: #fff0ed; color: var(--coral); }
.choice-title {
    color: var(--ink);
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
}
.choice-desc { color: var(--muted); font-size: .92rem; line-height: 1.6; margin: 0; }
.choice-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1;
}
.choice-list li {
    position: relative;
    padding-left: 22px;
    color: #41514d;
    font-size: .9rem;
    line-height: 1.4;
}
.choice-list li::before {
    content: "";
    position: absolute;
    left: 0; top: .5em;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--brand);
    box-shadow: 0 0 0 3px rgba(11,122,117,.12);
}
.choice-option--family .choice-list li::before { background: var(--coral); box-shadow: 0 0 0 3px rgba(197,82,104,.12); }
.choice-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 10px 18px;
    margin-top: 4px;
    border-radius: 999px;
    background: var(--brand);
    color: #fff !important;
    font-weight: 700;
    font-size: .95rem;
    box-shadow: 0 10px 22px rgba(11,122,117,.2);
    transition: background .15s;
}
.choice-option--family .choice-cta { background: var(--coral); box-shadow: 0 10px 22px rgba(197,82,104,.2); }
.choice-option:hover .choice-cta { filter: brightness(1.08); }
.choice-login-hint { text-align: center; color: var(--muted); font-size: .9rem; margin: -4px 0 22px; }
.choice-login-hint a { color: var(--brand); font-weight: 700; }

/* Legacy registration-card kept for backward compat */
.registration-card { position: relative; overflow: hidden; border-radius: var(--radius-lg) !important; isolation: isolate; }
.registration-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: linear-gradient(90deg, var(--coral), var(--gold), var(--brand)); }
.registration-card ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.registration-card li { position: relative; padding-left: 22px; color: #41514d; line-height: 1.45; }
.registration-card li::before { content: ""; position: absolute; left: 0; top: .45em; width: 9px; height: 9px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 4px rgba(11,122,117,.1); }

.registration-assurance { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.registration-assurance div { display: grid; gap: 5px; padding: 15px; border: 1px solid rgba(11,122,117,.12); border-radius: var(--radius-lg); background: rgba(255,255,255,.6); }
.registration-assurance strong { color: var(--ink); }
.registration-assurance span  { color: var(--muted); font-size: .9rem; line-height: 1.45; }

@media (max-width: 600px) {
    .choice-grid { grid-template-columns: 1fr; }
    .registration-assurance { grid-template-columns: 1fr; }
}

/* ── Contract consent ──────────────────────────────────────── */
.contract-consent { display: grid; grid-template-columns: 22px 1fr; gap: 14px; margin: 22px 0 8px; padding: 16px; border: 1px solid #ecd1b5; border-radius: var(--radius); background: #fff8ed; line-height: 1.55; cursor: pointer; }
.contract-consent input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--brand); }
.contract-consent strong { display: block; color: var(--ink); }

/* ── Portal shell ──────────────────────────────────────────── */
.portal-shell { min-height: 100vh; background: var(--bg); }

/* Header */
.portal-header {
    position: sticky;
    top: 0;
    z-index: 100;
    display: block;
    border-bottom: 1px solid var(--line);
    background: rgba(255,255,255,.99);
    box-shadow: 0 2px 12px rgba(23,51,47,.04);
}
.portal-header-inner,
.portal-navigation-inner,
.portal-content-inner {
    width: min(1440px, 100%);
    margin-inline: auto;
}
.portal-header-inner {
    display: flex;
    align-items: center;
    min-height: 72px;
    padding: 10px clamp(18px, 3vw, 42px);
}
.portal-account {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-left: auto;
}
.portal-role {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 4px 11px;
    border: 1px solid #cfe0dc;
    border-radius: 999px;
    background: #f5faf8;
    color: var(--brand);
    font-size: .75rem;
    font-weight: 800;
}
.portal-user { display: grid; gap: 1px; max-width: 260px; line-height: 1.2; }
.portal-user small  { color: var(--muted); font-size: .68rem; text-transform: uppercase; }
.portal-user strong { overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }

/* Navigation — Bootstrap navbar overrides */
.portal-header .navbar-toggler { border-color: var(--line); padding: 8px 10px; }
.portal-header .navbar-toggler:focus { box-shadow: 0 0 0 .15rem rgba(11,122,117,.2); }
.portal-nav-links .nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-height: 38px;
    padding: 7px 13px;
    border-radius: 6px;
    color: #40504c;
    font-size: .88rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: color .15s, background-color .15s;
}
.portal-nav-links .nav-link:hover  { background: #f0f7f5; color: var(--brand); }
.portal-nav-links .nav-link.active { background: #e9f5f2; color: var(--brand); }
@media (min-width: 992px) {
    .portal-nav-links .nav-link.active::after {
        content: "";
        position: absolute;
        bottom: 2px;
        left: 12px;
        right: 12px;
        height: 2px;
        border-radius: 2px;
        background: var(--brand);
    }
}
.portal-help { border: 1px solid var(--line) !important; }

/* Content */
.portal-content {
    min-width: 0;
    padding: clamp(26px, 4vw, 52px) clamp(18px, 3vw, 42px) 72px;
}
.portal-content-inner { /* max-width applied on inner */ }

/* Page heading */
.portal-page-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: clamp(24px, 3vw, 40px);
}
.portal-page-heading h1 {
    max-width: 880px;
    margin: 6px 0 10px;
    font-size: clamp(2.2rem, 3.8vw, 3.8rem);
    line-height: 1.02;
}
.portal-page-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 1rem; }

/* ── Cards and surfaces ─────────────────────────────────────── */

/* Metric cards — flat, clean, sem bordas decorativas */
.metric-grid   { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-bottom: 24px; }
.master-metrics{ grid-template-columns: repeat(5, minmax(0,1fr)); }
.metric-card {
    display: grid;
    gap: 8px;
    min-height: 128px;
    padding: 22px;
    border-radius: var(--radius-lg);
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-sm);
    transition: box-shadow .18s, transform .18s;
}
.metric-card span   { color: var(--muted); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.metric-card strong { color: var(--brand); font-family: 'Fraunces'; font-size: 2rem; line-height: 1; }
.metric-card small  { color: var(--muted); font-size: .82rem; }
.metric-link { color: inherit; text-decoration: none; }
.metric-link:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.danger-metric { border-top: 3px solid #c43a4a; }

/* Surface cards — separadores de seção, sem caixa */
.surface-card {
    min-width: 0;
    padding: 28px 0;
    border-top: 1px solid var(--line);
    background: transparent;
}
.surface-card:first-child { border-top: 0; padding-top: 0; }

/* Surface cards em grids recebem fundo branco leve, sem sombra pesada */
.workspace-grid > .surface-card,
.master-command-center > .surface-card,
.finance-list > .surface-card,
.wizard-shell > .surface-card {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #fff;
}

/* Layout grids */
.workspace-grid        { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(280px,.5fr); gap: 18px; }
.master-command-center { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 18px; margin-bottom: 18px; }
.master-focus-card { background: linear-gradient(135deg, #ffffff 0%, #f3faf8 100%) !important; }
.span-2 { min-width: 0; grid-column: 1 / -1; }

/* Card heading */
.card-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; flex-wrap: wrap; }
.card-heading h2 { margin: 5px 0 0; font-size: 1.6rem; }
.card-heading p  { margin: 4px 0 0; color: var(--muted); font-size: .9rem; }

/* ── Priority items ─────────────────────────────────────────── */
.priority-stack { display: grid; gap: 10px; }
.priority-item {
    display: grid;
    grid-template-columns: 46px minmax(0,1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,.85);
    color: var(--ink);
    text-decoration: none;
    transition: transform .15s, border-color .15s;
}
.priority-item:hover  { border-color: #8fc7bf; color: var(--ink); transform: translateX(2px); }
.priority-item > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 10px; background: var(--brand-soft); font-size: 1.2rem; }
.priority-item strong { display: block; font-size: .95rem; }
.priority-item small  { color: var(--muted); font-size: .82rem; }
.priority-item b      { display: grid; place-items: center; min-width: 38px; height: 38px; border-radius: 999px; background: #f3f7f5; color: var(--brand); font-size: .95rem; }
.priority-item.high   { border-left: 4px solid #c43a4a; }
.priority-item.medium { border-left: 4px solid var(--gold); }
.priority-item.ok     { border-left: 4px solid var(--brand); }

/* ── Audit mini list ────────────────────────────────────────── */
.audit-mini-list { display: grid; gap: 8px; max-height: 320px; overflow: auto; }
.audit-mini-list > div:not(.empty-state) { display: grid; gap: 2px; padding: 11px; border: 1px solid var(--line); border-radius: var(--radius); background: #fbfdfc; }
.audit-mini-list small { color: var(--muted); font-size: .8rem; }

/* ── Health list ────────────────────────────────────────────── */
.health-list { display: grid; gap: 0; margin: 18px 0 0; padding: 0; list-style: none; }
.health-list li { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.health-list span { width: 10px; height: 10px; border-radius: 50%; background: #f0b429; }
.health-list span.ok { background: #1a9a5b; }

/* ── Timeline ───────────────────────────────────────────────── */
.timeline { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.timeline > div { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--muted); }
.timeline b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #edf2f0; }
.timeline span { display: grid; gap: 4px; }
.timeline .done, .timeline .active { border-color: #a5d3cc; color: var(--ink); }
.timeline .done b  { background: var(--brand); color: #fff; }
.timeline .active  { background: #f1faf7; }

/* ── Empty state ────────────────────────────────────────────── */
.empty-state { display: grid; place-items: center; min-height: 260px; padding: 28px; border: 1px dashed #bbd0ca; border-radius: var(--radius-lg); text-align: center; color: var(--muted); gap: 10px; }
.empty-state.compact { min-height: 200px; }
.empty-state > span  { color: var(--brand); font-size: 2.5rem; }
.empty-state strong  { color: var(--ink); font-size: 1.15rem; }

/* ── Data tables ────────────────────────────────────────────── */
.table-tools { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.table-tools .form-control { min-width: 260px; }
.data-table-wrap { max-width: 100%; overflow: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; }
.data-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.data-table th { position: sticky; top: 0; padding: 12px 15px; background: #f3f8f6; color: #66736f; font-size: .72rem; letter-spacing: .05em; text-align: left; text-transform: uppercase; }
.data-table td { padding: 14px 15px; border-top: 1px solid var(--line); font-size: .94rem; }
.data-table tbody tr:hover { background: #f8fbfa; }
.table-actions { display: flex; flex-wrap: wrap; gap: .4rem; }

/* ── Pricing / wizard ───────────────────────────────────────── */
.system-redirect { display: grid; place-items: center; min-height: 70vh; padding: 40px 18px; text-align: center; }
.wizard-shell { display: grid; grid-template-columns: minmax(0, 900px); justify-content: center; }
.step-indicator { display: grid; grid-template-columns: 36px 1fr 36px 1fr 36px; align-items: center; margin-bottom: 26px; }
.step-indicator span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); background: #fff; font-weight: 800; font-size: .9rem; }
.step-indicator span.active { background: var(--brand); color: #fff; border-color: var(--brand); }
.step-indicator i { height: 2px; background: #b5d9d3; }
.price-breakdown { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 24px; }
.price-breakdown > div { display: grid; gap: 7px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: #f7faf8; }
.price-breakdown span   { color: var(--muted); font-size: .82rem; font-weight: 700; }
.price-breakdown strong { color: var(--brand); font-family: 'Fraunces'; font-size: 1.4rem; }
.price-breakdown .total { background: var(--brand); color: #fff; }
.price-breakdown .total span, .price-breakdown .total strong { color: #fff; }
.day-details { margin-top: 14px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.day-details summary { padding: 14px 16px; background: #f5f8f7; font-weight: 800; cursor: pointer; list-style: none; display: flex; align-items: center; gap: 6px; }
.day-details summary::before { content: "▶"; font-size: .7rem; transition: transform .2s; }
.day-details[open] summary::before { transform: rotate(90deg); }
.day-details > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 12px; padding: 11px 16px; border-top: 1px solid var(--line); }
.day-details > div span { font-size: .88rem; color: var(--ink); }
.day-details > div strong { font-size: .95rem; color: var(--brand); white-space: nowrap; }
.day-details small { flex-basis: 100%; font-size: .8rem; color: var(--muted); margin-top: 1px; }
.pricing-preview { display: grid; grid-template-columns: minmax(220px,.85fr) minmax(0,1.15fr); gap: 18px; align-items: stretch; margin-top: 24px; padding: 20px; border: 1px solid rgba(11,122,117,.15); border-radius: var(--radius-lg); background: linear-gradient(135deg,#eef9f6 0%,#fffaf5 100%); box-shadow: var(--shadow-sm); }
.pricing-preview h2  { margin: 5px 0; color: var(--brand); font-size: clamp(1.9rem,3.8vw,3.1rem); }
.pricing-preview p   { margin: 0; color: var(--muted); line-height: 1.55; }
.pricing-preview ul  { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.pricing-preview li  { display: grid; gap: 5px; padding: 13px; border-radius: var(--radius); background: rgba(255,255,255,.78); border: 1px solid rgba(11,122,117,.09); }
.pricing-preview li span   { color: var(--muted); font-size: .82rem; font-weight: 800; }
.pricing-preview li strong { color: var(--ink); font-size: 1.12rem; }

/* Professional picker */
.professional-picker-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 14px; }
.professional-picker-toolbar span { color: var(--muted); font-size: .9rem; }
.professional-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 14px; }
.professional-choice {
    display: grid;
    gap: 11px;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #fff;
    text-align: left;
    box-shadow: var(--shadow-sm);
    transition: transform .16s, border-color .16s, box-shadow .16s;
}
.professional-choice:hover,
.professional-choice.selected { border-color: #82c7bd; box-shadow: var(--shadow); transform: translateY(-2px); }
.professional-choice.selected { outline: 3px solid rgba(11,122,117,.1); }
.professional-choice-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.professional-choice img,
.professional-avatar { display: grid; place-items: center; width: 70px; height: 70px; border-radius: var(--radius-lg); object-fit: cover; background: linear-gradient(135deg,#dff1ed,#fff7ef); color: var(--brand); font-weight: 900; font-size: 1.2rem; }
.suggested-badge { padding: 6px 9px; border-radius: 999px; background: #ecf8f5; color: var(--brand); font-size: .74rem; font-weight: 900; }
.professional-choice strong { color: var(--ink); font-size: 1.15rem; }
.professional-choice small  { color: #52625e; font-size: .86rem; }
.professional-choice p      { margin: 0; color: var(--muted); line-height: 1.55; }
.professional-trust-row { display: flex; flex-wrap: wrap; gap: 7px; }
.professional-trust-row span { padding: 5px 9px; border-radius: 999px; background: #f3f7f5; color: #40504c; font-size: .76rem; font-weight: 800; }
.professional-choice blockquote { margin: 0; padding: 11px; border-left: 3px solid var(--gold); border-radius: var(--radius); background: #fff8ef; color: #5c5149; font-size: .88rem; }

/* Profile summary */
.profile-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 22px; }
.profile-summary div { display: grid; gap: 4px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.profile-summary span   { color: var(--muted); font-size: .8rem; }
.profile-summary strong { font-size: .95rem; }
.profile-edit-form { max-width: none; margin-top: 0; }
.account-form.profile-edit-form { display: block; max-width: none; margin-top: 0; }

/* Documents */
.document-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.document-card { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fbfdfc; }
.document-card-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--radius); background: var(--brand-soft); color: var(--brand); font-size: 1.3rem; }
.document-card-copy { display: grid; gap: 4px; min-width: 0; }
.document-card-copy small  { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; }
.document-card-copy .status-chip { justify-self: start; }
.document-note { grid-column: 1/-1; margin: 2px 0 0; color: #8a3d42; font-size: .8rem; }
.document-upload { position: relative; overflow: hidden; }
.document-upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.completion-ring { display: grid; place-items: center; width: 56px; height: 56px; border: 5px solid #d9ebe6; border-top-color: var(--brand); border-radius: 50%; color: var(--brand); font-weight: 800; font-size: .88rem; }
.document-review-list { display: grid; gap: 10px; }
.document-review-row { display: grid; grid-template-columns: minmax(220px,1.3fr) auto auto minmax(200px,1fr) auto; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.document-review-person { display: grid; gap: 4px; min-width: 0; }
.document-review-person span, .document-review-person small { color: var(--muted); }
.document-review-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-actions { display: flex; gap: 8px; }

/* Finance */
.finance-list { display: grid; gap: 16px; }
.data-section { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; margin-bottom: 18px; }
.finance-shift-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.finance-shift-heading h2 { margin: 4px 0; }
.finance-status { display: grid; justify-items: end; gap: 10px; }
.finance-status strong { font-family: 'Fraunces'; font-size: 1.75rem; }
.compact-breakdown { grid-template-columns: repeat(3,minmax(0,1fr)); }
.payment-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.action-loading { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); }

/* Payment overlay */
.payment-overlay { position: fixed; z-index: 1200; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(15,40,36,.55); backdrop-filter: blur(6px); }
.payment-dialog {
    position: relative;
    display: grid;
    gap: 16px;
    width: min(520px,100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
    padding: 28px;
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 28px 80px rgba(5,32,29,.3);
    animation: dialog-in .2s ease both;
}
.dialog-close { position: absolute; top: 12px; right: 13px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #eef5f3; font-size: 1.4rem; cursor: pointer; }
@keyframes dialog-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }
.payment-total { color: var(--brand); font-family: 'Fraunces'; font-size: 2.3rem; }
.pix-qrcode { width: min(270px,100%); aspect-ratio: 1; margin: auto; object-fit: contain; }
.countdown-box { padding: 12px; border: 1px solid #f0d5aa; border-radius: var(--radius); background: #fff8e9; text-align: center; }
.barcode { overflow-wrap: anywhere; padding: 13px; background: #f4f7f6; border-radius: var(--radius); font-family: monospace; font-size: .8rem; }

/* Onboarding overlay */
.onboarding-overlay { z-index: 2000; }
.onboarding-dialog { width: min(540px, calc(100vw - 2rem)); }
.onboarding-dialog h2 { font-size: clamp(1.9rem, 5vw, 2.9rem); }
.onboarding-dialog ol { display: grid; gap: .65rem; margin: 1.1rem 0; padding-left: 1.3rem; color: #40534f; }

/* ── Shift cards (professional & family) ─────────────────────── */
.shift-card-grid { display: grid; gap: 1rem; }
.operational-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; min-width: 0; }
.operational-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.operational-card-heading > div:first-child { min-width: 0; flex: 1; overflow-wrap: break-word; word-break: break-word; }
.operational-card h3 { font-size: 1.2rem; margin: .2rem 0; overflow-wrap: break-word; word-break: break-word; }
.net-value { display: block; color: var(--brand); font-size: 1.4rem; margin: .7rem 0; }
.operation-guidance { padding: .9rem; margin: .9rem 0; border-radius: .5rem; background: #f3f8f7; color: #38504d; font-size: .9rem; overflow-wrap: break-word; word-break: break-word; }
.shift-info-block { margin: .5rem 0 .75rem; padding: .65rem .9rem; border-left: 3px solid #cfe0dc; background: #f8faf9; border-radius: 0 .4rem .4rem 0; }
.shift-detail { margin: .2rem 0; font-size: .85rem; color: #40504c; } .shift-detail a { color: var(--brand); text-decoration: none; font-weight: 700; }
.shift-gross-amount { margin: .3rem 0 0; font-size: 1rem; font-weight: 700; color: var(--brand); }
.card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; margin-top: .9rem; }
.journey-steps { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .3rem; margin: .9rem 0; }
.journey-steps div { position: relative; text-align: center; color: #7a8583; }
.journey-steps span { display: grid; place-items: center; width: 2rem; height: 2rem; margin: 0 auto .3rem; border: 1px solid #cbd6d4; border-radius: 50%; background: #fff; font-weight: 700; font-size: .78rem; }
.journey-steps .done span   { background: var(--brand); color: #fff; border-color: var(--brand); }
.journey-steps .active span { border: 2px solid var(--gold); color: #784a1f; background: #fff8ef; }
.journey-steps small { font-size: .68rem; }
.replacement-list { display: grid; gap: .7rem; max-height: 55vh; overflow: auto; }
.replacement-option { display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: .7rem; padding: .9rem; border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer; transition: border-color .15s, background .15s; }
.replacement-option:has(input:checked), .replacement-option.selected { border-color: var(--brand); background: #eef8f6; }
.replacement-option small { display: block; color: #65716f; font-size: .82rem; }
.replacement-option .muted-loc { color: var(--muted); font-size: .78rem; }
.replacement-info { display: flex; flex-direction: column; gap: 1px; min-width: 0; overflow: hidden; }
.avatar-placeholder { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #dcefeb; color: var(--brand); font-weight: 800; }
.evolution-dialog, .replacement-dialog { width: min(760px, calc(100vw - 2rem)); }

/* ── Blocking notice (professional penalty) ─────────────────── */
.blocking-notice { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem; margin-bottom: 1.5rem; border: 1px solid #efb4b4; border-left: 5px solid #a93246; background: #fff2f3; border-radius: var(--radius-lg); color: #641c29; }
.blocking-notice h2 { font-size: 1.3rem; margin: .25rem 0; }
.blocking-notice p  { margin: 0; }
.blocking-notice > strong { font-size: 1.75rem; white-space: nowrap; }
.penalty-list { display: grid; gap: 1rem; }
.penalty-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1.5rem; padding: 1.2rem; border: 1px solid #ead6d8; border-radius: var(--radius-lg); background: #fffafa; }
.penalty-card h3 { margin: .25rem 0 .7rem; }
.penalty-details dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 0; }
.penalty-details dl div { min-width: 0; }
.penalty-details dt { font-size: .76rem; text-transform: uppercase; color: #6c757d; }
.penalty-details dd { margin: 0; overflow-wrap: anywhere; }
.penalty-payment { text-align: right; min-width: 17rem; }
.penalty-payment > strong { display: block; font-size: 1.6rem; margin-bottom: .7rem; }
.compact-actions { justify-content: flex-end; }
.compact-actions .btn { min-height: 2.7rem; }

/* ── Master — users workspace ────────────────────────────────── */
.master-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1rem 0 1.5rem; flex-wrap: wrap; }
.master-search { position: relative; width: min(30rem, 100%); }
.master-search > span { position: absolute; z-index: 1; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--brand); font-size: 1.3rem; }
.master-search input { padding-left: 2.9rem; }
.segmented-filter { display: flex; gap: .2rem; padding: .2rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.segmented-filter button, .detail-tabs button { flex-shrink: 0; white-space: nowrap; padding: .6rem .85rem; border: 0; border-radius: 5px; background: transparent; color: #43534f; font-weight: 700; font-family: inherit; cursor: pointer; transition: background .15s; }
.segmented-filter button.active, .detail-tabs button.active { background: var(--brand-soft); color: var(--brand); }
.compact-metrics { margin-bottom: 1.5rem; }
.compact-metrics .metric-card { min-height: 7.5rem; }
.master-users-workspace { display: grid; grid-template-columns: minmax(18rem, .68fr) minmax(0, 1.32fr); min-height: 40rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; }
.master-user-list { max-height: 68rem; overflow-y: auto; border-right: 1px solid var(--line); }
.master-user-row { display: grid; width: 100%; grid-template-columns: 3rem minmax(0,1fr) auto; gap: .8rem; align-items: center; padding: .9rem 1rem; border: 0; border-bottom: 1px solid #e6eeec; background: #fff; text-align: left; cursor: pointer; transition: background .15s; }
.master-user-row:hover, .master-user-row.selected { background: #f0f8f6; }
.master-user-row.selected { box-shadow: inset 4px 0 0 var(--brand); }
.user-avatar { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #e0f1ed; color: var(--brand); font-weight: 800; }
.user-row-copy { min-width: 0; }
.user-row-copy strong, .user-row-copy small, .user-row-copy em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-row-copy small { color: #65736f; font-size: .82rem; }
.user-row-copy em    { color: #8a9693; font-size: .72rem; font-style: normal; text-transform: uppercase; }
.master-user-detail { min-width: 0; padding: clamp(1.25rem, 3vw, 2.5rem); }
.detail-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.detail-heading h2 { margin: .2rem 0; font-size: clamp(1.7rem, 3vw, 2.5rem); }
.detail-heading p  { color: #60706c; overflow-wrap: anywhere; }
.detail-tabs { display: flex; gap: .2rem; overflow-x: auto; margin: 1.5rem 0; padding-bottom: .35rem; border-bottom: 1px solid var(--line); }
.compact-form-grid { gap: 1rem; }
.detail-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.professional-admin-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.professional-admin-summary > div { padding: 1rem 0; border-bottom: 1px solid var(--line); }
.professional-admin-summary span, .professional-admin-summary strong { display: block; }
.professional-admin-summary span { color: #6b7a76; font-size: .8rem; }
.operational-decision { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding: 1rem; border-left: 4px solid #3b987c; background: #f0f8f5; border-radius: 0 var(--radius) var(--radius) 0; }
.operational-decision.blocked { border-color: #b23a48; background: #fff2f3; }
.operational-decision p { margin: .25rem 0 0; }
.acceptance-line, .user-history > div { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.acceptance-line span, .acceptance-line small, .user-history span, .user-history small { display: block; color: #6a7875; }

/* ── Master settings ────────────────────────────────────────── */
.settings-section { display: grid; grid-template-columns: minmax(200px,.62fr) minmax(0,1.38fr); gap: clamp(2rem,5vw,5rem); padding: 2.2rem 0; border-top: 1px solid var(--line); }
.settings-copy h2 { margin: .3rem 0; font-size: clamp(1.5rem,2.4vw,2.1rem); }
.settings-copy p  { max-width: 40ch; margin: 0; color: #5f706c; }
.settings-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; align-content: start; }
.settings-fields.three-columns { grid-template-columns: repeat(3,minmax(0,1fr)); }
.settings-savebar {
    position: sticky;
    z-index: 20;
    bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid #cfe0dc;
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,.97);
    box-shadow: 0 14px 36px rgba(23,51,47,.1);
    backdrop-filter: blur(12px);
}
.settings-savebar span { display: block; color: #687773; font-size: .88rem; }
.settings-connections .settings-fields { grid-template-columns: 1fr; }
.connection-status-card { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: var(--radius); border: 1px solid var(--line); background: #fff; }
.connection-status-card.ok { border-color: #b6dfd5; background: #f0faf6; }
.connection-status-card.warn { border-color: #f5d0b0; background: #fff8f2; }
.csc-icon { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .9rem; font-weight: 700; flex-shrink: 0; }
.connection-status-card.ok .csc-icon { background: var(--brand-soft); color: var(--brand); }
.connection-status-card.warn .csc-icon { background: #fee8d3; color: #b45309; }
.csc-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.csc-body strong { font-size: .93rem; font-weight: 700; color: var(--ink); }
.csc-body span { font-size: .82rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.settings-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.settings-grid article { display: grid; align-content: start; gap: 12px; min-height: 260px; padding: 20px; border-top: 3px solid var(--line); border-radius: var(--radius); background: #fff; }

/* ── Master leads board ─────────────────────────────────────── */
.lead-board { display: grid; border-top: 1px solid var(--line); }
.lead-row { display: grid; grid-template-columns: minmax(14rem,.75fr) minmax(17rem,1.25fr) minmax(11rem,.55fr); gap: 2rem; align-items: center; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.lead-person { display: grid; grid-template-columns: 3rem minmax(0,1fr); gap: .8rem; align-items: center; min-width: 0; }
.lead-person strong, .lead-person a { display: block; overflow: hidden; color: inherit; text-overflow: ellipsis; white-space: nowrap; }
.lead-person a { color: var(--brand); font-size: .86rem; }
.lead-need span  { font-weight: 800; }
.lead-need p     { margin: .2rem 0; color: #4f625e; font-size: .9rem; }
.lead-need small { color: #71807c; font-size: .82rem; }
.lead-status label { display: block; margin-bottom: .3rem; color: #62716d; font-size: .76rem; font-weight: 700; text-transform: uppercase; }

/* ── Profile form sections ──────────────────────────────────── */
.profile-form-section { padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.profile-form-section:first-of-type { padding-top: 0; }
.profile-form-section h3 { margin-bottom: .9rem; font-size: 1.15rem; }
.profile-form-section .form-check { display: flex; gap: .65rem; align-items: flex-start; padding: .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: #f8fbfa; }
.profile-form-section .form-check-input { margin: .2rem 0 0; }

/* ── Recipient list ─────────────────────────────────────────── */
.recipient-list { display: grid; border-top: 1px solid var(--line); }
.recipient-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.recipient-row strong, .recipient-row span, .recipient-row small { display: block; }
.recipient-row span, .recipient-row small { color: #687773; font-size: .86rem; }
.recipient-dialog { width: min(700px, calc(100vw - 2rem)); max-height: 90vh; overflow-y: auto; }

/* ── Contract & legal ───────────────────────────────────────── */
.contract-consent { display: grid; grid-template-columns: 22px 1fr; gap: 14px; margin: 22px 0 8px; padding: 16px; border: 1px solid #ecd1b5; border-radius: var(--radius); background: #fff8ed; line-height: 1.55; cursor: pointer; }
.contract-consent input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--brand); }
.legal-public-page { width: min(1180px, calc(100% - 2rem)); margin: 3rem auto; }
.legal-document { display: grid; gap: 0; border-top: 1px solid var(--line); }
.legal-document section { display: grid; grid-template-columns: 4rem minmax(0,1fr); gap: 1.25rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.legal-document section > span { color: var(--brand); font-size: .88rem; font-weight: 800; }
.legal-document h2 { margin: 0 0 .5rem; font-size: clamp(1.4rem,2.2vw,1.9rem); }
.legal-document p  { max-width: 76ch; margin: 0; color: #4f625e; }
.legal-notice { margin-top: 1.5rem; padding: 1rem; border-left: 4px solid var(--gold); background: #fff9ef; border-radius: 0 var(--radius) var(--radius) 0; }

/* ── Journey guide ──────────────────────────────────────────── */
.guide-panel { display: grid; grid-template-columns: minmax(210px,.62fr) minmax(0,1.38fr); gap: 3rem; padding-top: 1rem; }
.guide-intro { position: sticky; top: 12rem; align-self: start; }
.guide-intro h2 { font-size: clamp(1.9rem,4vw,3.4rem); }
.guide-steps { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.guide-steps li { display: grid; grid-template-columns: 3rem minmax(0,1fr); gap: 1rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.guide-steps li > span { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--brand); color: #fff; font-weight: 800; }
.guide-steps p { margin: .3rem 0 0; color: #344a46; }

/* ── Acceptance receipt ─────────────────────────────────────── */
.acceptance-receipt { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin-bottom: 1.5rem; overflow: hidden; border: 1px solid #cfe0dc; border-radius: var(--radius); background: #cfe0dc; }
.acceptance-receipt > div  { padding: 1rem; background: #fff; }
.acceptance-receipt span   { display: block; color: #687774; font-size: .76rem; text-transform: uppercase; }
.acceptance-receipt strong { display: block; margin-top: .25rem; overflow-wrap: anywhere; }

/* ── Professional detail (new shift picker) ─────────────────── */
.improved-professional-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%,21rem),1fr)); }
.professional-filterbar { display: grid; grid-template-columns: auto minmax(14rem,1fr); gap: .7rem; align-items: center; margin: 1rem 0; }
.improved-professional-grid .professional-choice { display: flex; flex-direction: column; min-width: 0; text-align: left; }
.improved-professional-grid .professional-choice > strong { margin-top: 1rem; font-size: 1.25rem; }
.improved-professional-grid .professional-choice > p { min-height: 4.5rem; overflow-wrap: anywhere; }
.professional-choice-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: auto; padding-top: .9rem; }
.professional-choice-actions .btn { min-width: 0; white-space: normal; }
.professional-detail-dialog { width: min(780px,calc(100vw - 2rem)); max-height: min(88vh,900px); overflow-y: auto; }
.professional-detail-header { display: grid; grid-template-columns: 5rem minmax(0,1fr); gap: 1rem; align-items: center; padding-right: 2rem; }
.professional-detail-header img, .professional-avatar.large { width: 5rem; height: 5rem; border-radius: 50%; object-fit: cover; }
.professional-avatar.large { display: grid; place-items: center; font-size: 1.35rem; }
.professional-detail-header h2 { margin: .2rem 0; font-size: clamp(1.65rem,4vw,2.4rem); }
.professional-detail-header p  { margin: 0; color: #63736f; }
.professional-proof-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin: 1.5rem 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--line); }
.professional-proof-grid > div { padding: 1rem; background: #f8fbfa; }
.professional-proof-grid span, .professional-proof-grid strong, .professional-proof-grid small { display: block; overflow-wrap: anywhere; }
.professional-proof-grid span  { color: #6b7976; font-size: .76rem; text-transform: uppercase; }
.professional-detail-section { padding: 1rem 0; border-top: 1px solid var(--line); }
.professional-detail-section h3 { font-size: 1.08rem; }
.professional-detail-section p  { margin: 0; color: #4d605c; white-space: pre-line; }
.professional-detail-section blockquote { margin: .7rem 0; padding: .7rem 1rem; border-left: 3px solid var(--gold); background: #fff9ef; }
.professional-detail-section blockquote small { display: block; color: #6c7976; }

/* ── Audit ──────────────────────────────────────────────────── */
.audit-scroll { max-height: 600px; overflow: auto; }

/* ── Blazor error UI ─────────────────────────────────────────── */
#blazor-error-ui { display: none; position: fixed; right: 16px; bottom: 16px; z-index: 9999; padding: 16px 20px; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-lg); border-left: 4px solid var(--coral); }

/* ──────────────────────────────────────────────────────────────
   Responsive overrides
   ────────────────────────────────────────────────────────────── */

@media (max-width: 1280px) {
    .master-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1100px) {
    .public-nav  { display: none; } /* substituído por hambúrguer abaixo de 768px */
    .home-hero   { grid-template-columns: 1fr .7fr; }
    .journey-grid{ grid-template-columns: repeat(2,1fr); }
    .portal-user { display: none; } /* shown inside collapse on mobile via override below */
    .workspace-grid, .master-command-center { grid-template-columns: 1fr; }
    .timeline    { grid-template-columns: 1fr; }
    .master-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 991.98px) {
    .master-toolbar  { flex-direction: column; align-items: stretch; }
    .master-search   { width: 100%; }
    .segmented-filter{ overflow-x: auto; }
    .master-users-workspace { grid-template-columns: 1fr; }
    .master-user-list{ max-height: 26rem; border-right: 0; border-bottom: 1px solid var(--line); }
    .lead-row { grid-template-columns: 1fr 1fr; }
    .lead-status { grid-column: 1 / -1; }
    .settings-section { grid-template-columns: 1fr; gap: 1.25rem; }
    .settings-fields.three-columns { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
    .public-header   { grid-template-columns: 1fr auto; min-height: 72px; padding: 12px 16px; }
    .public-header .header-actions .btn-brand { display: none; }
    .brand-symbol    { width: 44px; height: 44px; }
    .brand-symbol-svg, .brand-symbol-svg svg { width: 46px; height: 46px; }
    .brand-words strong { font-size: 1.28rem; }
    .home-hero       { grid-template-columns: 1fr; min-height: auto; padding: 24px 18px 50px; gap: 0; }
    .hero-person     { grid-row: 1; min-height: 320px; }
    .hero-person img { max-height: 330px; }
    .hero-person::before { width: 300px; }
    .hero-note       { display: none; }
    .hero-copy h1    { font-size: clamp(2.6rem,12vw,4.2rem); }
    .hero-actions, .hero-actions .btn { width: 100%; }
    .trust-grid, .journey-grid, .lead-capture, .site-footer { grid-template-columns: 1fr; }
    .home-band, .services-section, .lead-capture { padding: 58px 18px; }
    .lead-capture    { gap: 26px; }
    .site-footer     { align-items: start; padding: 26px 18px; }
    /* Portal */
    .portal-header   { min-height: 66px; }
    .portal-header-inner { min-height: 66px; padding: 9px 16px; }
    .portal-header .brand-words strong { font-size: 1.06rem; }
    .portal-header .brand-words small  { font-size: .56rem; }
    .portal-header .navbar-collapse { border-top: 1px solid var(--line); padding: 10px 0 14px; background: #fff; }
    .portal-nav-links .nav-link { display: flex; width: 100%; min-height: 44px; padding-inline: 14px; flex: unset; white-space: normal; }
    .portal-header .portal-account { flex-wrap: wrap; gap: 10px; padding: 10px 14px 0; border-top: 1px solid var(--line); margin-top: 4px; margin-left: 0; width: 100%; }
    .portal-header .portal-account .portal-role,
    .portal-header .portal-account .btn { display: inline-flex; }
    .portal-header .portal-user { display: grid; }
    .portal-content { padding: 26px 16px 52px; }
    .portal-page-heading { flex-direction: column; align-items: flex-start; }
    .portal-page-heading h1 { font-size: clamp(2rem,9.5vw,3rem); }
    .portal-page-heading .btn, .portal-page-heading > div:last-child, .portal-page-heading > a:last-child { width: 100%; }
    .metric-grid, .master-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .card-heading { flex-direction: column; align-items: flex-start; }
    .table-tools { flex-direction: column; }
    .table-tools .form-control { min-width: 0; width: 100%; }
    .entry-choice { grid-template-columns: 1fr; padding: 28px 16px; }
    .account-shell { grid-template-columns: 1fr; }
    .account-brand { display: none; }
    .account-panel { padding: 88px 16px 40px; }
    .account-back  { top: 14px; left: 16px; }
    .form-grid, .registration-choice { grid-template-columns: 1fr; }
    .form-field.span-2 { grid-column: auto; }
    .price-breakdown, .profile-summary, .settings-grid, .pricing-preview, .pricing-preview ul { grid-template-columns: 1fr; }
    .form-actions-row, .form-actions-row .btn { width: 100%; }
    .compact-breakdown { grid-template-columns: 1fr; }
    .finance-shift-heading { flex-direction: column; }
    .finance-status { justify-items: start; }
    .payment-actions, .payment-actions .btn { width: 100%; }
    .document-grid { grid-template-columns: 1fr; }
    .document-card { grid-template-columns: 40px minmax(0,1fr); }
    .document-card .document-upload, .document-card > .btn-link { grid-column: 1/-1; width: 100%; }
    .document-review-row { grid-template-columns: 1fr; }
    .review-actions, .review-actions .btn { width: 100%; }
    .workspace-grid > .surface-card, .master-command-center > .surface-card, .finance-list > .surface-card, .wizard-shell > .surface-card, .settings-grid > article { padding: 18px 14px; }
}
@media (max-width: 767.98px) {
    .blocking-notice { align-items: flex-start; flex-direction: column; }
    .penalty-card    { grid-template-columns: 1fr; }
    .penalty-details dl { grid-template-columns: 1fr; }
    .penalty-payment { min-width: 0; text-align: left; }
    .compact-actions { display: grid; grid-template-columns: 1fr 1fr; justify-content: stretch; }
    .compact-actions .btn { width: 100%; }
    .operational-card-heading { flex-direction: column; }
    .journey-steps { display: flex; overflow-x: auto; padding-bottom: .4rem; scroll-snap-type: x mandatory; max-width: 100%; -webkit-overflow-scrolling: touch; }
    .journey-steps div { min-width: 5rem; scroll-snap-align: start; }
    .card-actions { display: grid; grid-template-columns: 1fr; }
    .card-actions .btn, .card-actions a { width: 100%; }
    .replacement-option { grid-template-columns: auto 1fr auto; }
    .replacement-option input { grid-row: 1; grid-column: 1; }
    .replacement-option .avatar-placeholder { display: none; }
    .acceptance-receipt { grid-template-columns: 1fr 1fr; }
    .guide-panel  { grid-template-columns: 1fr; gap: 1rem; }
    .guide-intro  { position: static; }
    .legal-document section { grid-template-columns: 2.5rem minmax(0,1fr); gap: .7rem; }
}
@media (max-width: 575.98px) {
    .professional-admin-summary { grid-template-columns: 1fr 1fr; }
    .detail-heading, .operational-decision, .acceptance-line, .user-history > div { align-items: flex-start; flex-direction: column; }
    .user-row-status { display: none; }
    .master-user-row { grid-template-columns: 3rem minmax(0,1fr); }
    .lead-row { grid-template-columns: 1fr; gap: 1rem; }
    .lead-status { grid-column: auto; }
    .professional-filterbar { grid-template-columns: 1fr; }
    .professional-choice-actions, .professional-proof-grid { grid-template-columns: 1fr; }
    .professional-detail-header { grid-template-columns: 3.5rem minmax(0,1fr); }
    .professional-detail-header img, .professional-avatar.large { width: 3.5rem; height: 3.5rem; }
    .settings-fields, .settings-fields.three-columns { grid-template-columns: 1fr; }
    .settings-savebar { align-items: stretch; flex-direction: column; bottom: .5rem; }
    .settings-savebar .btn { width: 100%; }
    .metric-grid, .master-metrics, .registration-assurance { grid-template-columns: 1fr; }
    .portal-page-heading .btn, .portal-page-heading > div:last-child, .card-heading .btn { width: 100%; }
    .payment-dialog { padding: 22px 16px; }
    .recipient-row { align-items: flex-start; flex-direction: column; }
    .recipient-row .table-actions, .recipient-row .btn { width: 100%; }
}
/* ── Animations ────────────────────────────────────────────── */
@keyframes fadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }
@keyframes slideRight { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: translateX(0); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }

.home-hero            { animation: fadeIn .45s ease both; }
.hero-copy            { animation: fadeUp .52s .08s ease both; }
.hero-person          { animation: scaleIn .55s .12s ease both; }
.home-band .journey-grid article { animation: fadeUp .4s ease both; }
.home-band .journey-grid article:nth-child(1) { animation-delay: .05s; }
.home-band .journey-grid article:nth-child(2) { animation-delay: .12s; }
.home-band .journey-grid article:nth-child(3) { animation-delay: .19s; }
.home-band .journey-grid article:nth-child(4) { animation-delay: .26s; }
.metric-card          { animation: fadeUp .35s ease both; }
.metric-card:nth-child(1) { animation-delay: .04s; }
.metric-card:nth-child(2) { animation-delay: .09s; }
.metric-card:nth-child(3) { animation-delay: .14s; }
.metric-card:nth-child(4) { animation-delay: .19s; }
.metric-card:nth-child(5) { animation-delay: .24s; }
.surface-card         { animation: fadeUp .38s .06s ease both; }
.portal-page-heading  { animation: fadeUp .32s ease both; }
.professional-card-grid .professional-choice { animation: fadeUp .3s ease both; }
.professional-card-grid .professional-choice:nth-child(1) { animation-delay: .04s; }
.professional-card-grid .professional-choice:nth-child(2) { animation-delay: .08s; }
.professional-card-grid .professional-choice:nth-child(3) { animation-delay: .12s; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ── Onboarding modal ──────────────────────────────────────── */
.onboarding-overlay   { z-index: 1200; }
.onboarding-dialog    { max-width: 440px; text-align: center; }
.onboarding-brand     { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: 6px; }
.onboarding-brand-icon{ font-size: 2.2rem; line-height: 1; color: var(--coral); }
.onboarding-dialog h2 { font-size: 1.7rem; margin: 0 0 6px; }
.onboarding-subtitle  { font-size: .95rem; color: var(--muted); margin-bottom: 1.4rem; }
.onboarding-steps     { list-style: none; margin: 0 0 1.4rem; padding: 0; display: flex; flex-direction: column; gap: .85rem; text-align: left; }
.onboarding-steps li  { display: flex; align-items: flex-start; gap: 14px; }
.step-num             { flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); font-weight: 800; font-size: .88rem; display: flex; align-items: center; justify-content: center; }
.onboarding-steps li div { flex: 1; }
.onboarding-steps li strong { display: block; font-size: .97rem; margin-bottom: 2px; }
.onboarding-steps li small  { font-size: .83rem; color: var(--muted); }
.onboarding-actions   { display: flex; flex-direction: column; gap: 8px; }

/* ── Button busy spinner ───────────────────────────────────── */
[data-busy]           { pointer-events: none; opacity: .8; cursor: wait; }
.btn-spinner          { display: inline-block; width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin .6s linear infinite; }
@keyframes spin       { to { transform: rotate(360deg); } }

/* ── Priority stack ────────────────────────────────────────── */
.priority-item        { transition: background .15s, box-shadow .15s; }
.priority-item:hover  { background: var(--brand-soft); box-shadow: 0 2px 8px rgba(11,122,117,.08); }

@media (max-width: 480px) {
    .portal-header .brand-symbol, .portal-header .brand-symbol-svg, .portal-header .brand-symbol-svg svg { width: 38px; height: 38px; }
    .price-breakdown, .compact-breakdown { grid-template-columns: 1fr; }
}

/* ── Reviews ────────────────────────────────────────────────── */
.reviews-list         { display: grid; gap: 12px; }
.review-card          { padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; }
.review-card-header   { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 8px; }
.review-card-header strong { font-size: .97rem; }
.review-card-header small  { color: var(--muted); font-size: .82rem; }
.review-stars         { font-size: 1.1rem; color: var(--gold); letter-spacing: .05em; white-space: nowrap; }
.review-comment       { margin: 0; padding: 9px 12px; border-left: 3px solid var(--gold); border-radius: var(--radius); background: #fff9ef; color: #5c4e38; font-size: .9rem; font-style: italic; line-height: 1.55; word-break: break-word; overflow-wrap: break-word; }
.review-no-comment    { font-size: .85rem; margin: 0; }
.review-summary       { display: flex; flex-direction: column; gap: 8px; }
.review-summary .review-comment { margin-top: 2px; }
.card-review          { display: flex; flex-direction: column; gap: 8px; margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--line); width: 100%; min-width: 0; overflow: hidden; }
.card-review .review-comment { width: 100%; max-width: 100%; overflow-wrap: break-word; word-break: break-word; }

/* SweetAlert2 deve sobrepor todos os overlays customizados */
.swal2-container { z-index: 10000 !important; }

/* ── Landing pages ─────────────────────────────────────────── */
.lp-hero              { padding: 80px 5vw 64px; max-width: 860px; margin: 0 auto; }
.lp-hero--family      { border-bottom: 1px solid var(--line); }
.lp-hero--professional{ border-bottom: 1px solid var(--line); }
.lp-hero-copy h1      { font-size: clamp(2rem, 4vw, 3rem); margin: .5rem 0 1rem; }
.lp-lead              { font-size: 1.1rem; color: var(--muted); max-width: 620px; margin: 0 0 1.8rem; }
.lp-actions           { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }
.lp-trust             { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.lp-trust li          { font-size: .9rem; color: var(--brand-dark); }
.lp-trust li::before  { content: "✓ "; font-weight: 700; }
.lp-band              { padding: 64px 5vw; }
.lp-band--alt         { background: var(--cream); }
.lp-steps             { display: grid; gap: 2rem; max-width: 860px; margin: 2.5rem auto 0; }
.lp-step              { display: flex; gap: 1.5rem; align-items: flex-start; }
.lp-step-num          { flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); font-weight: 800; font-size: 1rem; display: flex; align-items: center; justify-content: center; }
.lp-step h3           { margin: 0 0 .4rem; font-size: 1.1rem; }
.lp-step p            { margin: 0; color: var(--muted); font-size: .95rem; }
.lp-card-grid         { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; max-width: 980px; margin: 2rem auto 0; }
.lp-card              { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.5rem 1.25rem; }
.lp-card-icon         { font-size: 1.8rem; margin-bottom: .75rem; }
.lp-card h3           { font-size: 1.05rem; margin: 0 0 .5rem; }
.lp-card p            { margin: 0; color: var(--muted); font-size: .9rem; }
.lp-guarantee-grid    { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; max-width: 980px; margin: 2rem auto 0; }
.lp-guarantee         { background: var(--paper); border-radius: var(--radius-lg); padding: 1.25rem; border: 1px solid var(--line); }
.lp-guarantee strong  { display: block; margin-bottom: .5rem; font-size: 1rem; }
.lp-guarantee p       { margin: 0; font-size: .9rem; color: var(--muted); }
.lp-cta-band          { background: var(--brand); color: #fff; padding: 64px 5vw; text-align: center; }
.lp-cta-band h2       { color: #fff; font-size: 2rem; margin: 0 0 .75rem; }
.lp-cta-band p        { color: rgba(255,255,255,.85); margin: 0 0 2rem; }
.lp-cta-band .lp-actions { justify-content: center; }
.btn-outline-light    { border: 2px solid rgba(255,255,255,.7); color: #fff; background: transparent; }
.btn-outline-light:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.lp-faq               { padding: 64px 5vw; max-width: 860px; margin: 0 auto; }
.faq-list             { display: flex; flex-direction: column; gap: .75rem; margin-top: 2rem; }
.faq-item             { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); overflow: hidden; }
.faq-item summary     { cursor: pointer; padding: 1rem 1.25rem; font-weight: 600; font-size: .97rem; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.faq-item summary::after { content: "+"; font-size: 1.3rem; color: var(--brand); flex-shrink: 0; }
.faq-item[open] summary::after { content: "−"; }
.faq-item p           { margin: 0; padding: 0 1.25rem 1rem; font-size: .93rem; color: var(--muted); }
.lp-two-col           { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; max-width: 860px; margin: 2rem auto 0; }
.lp-two-col h3        { font-size: 1.1rem; margin: 0 0 1rem; }
.lp-doc-list          { padding-left: 1.2rem; margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.lp-doc-list li       { font-size: .93rem; color: var(--muted); }
.section-heading      { text-align: center; margin-bottom: .5rem; }
.section-heading h2   { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: .4rem 0 0; }
@media (max-width: 640px) {
    .lp-hero          { padding: 48px 5vw 40px; }
    .lp-step          { flex-direction: column; gap: .75rem; }
    .lp-two-col       { grid-template-columns: 1fr; }
    .lp-band          { padding: 44px 5vw; }
    .lp-cta-band      { padding: 44px 5vw; }
}

/* ── Blog ──────────────────────────────────────────────────── */
.blog-hero            { padding: 64px 5vw 40px; max-width: 860px; margin: 0 auto; }
.blog-hero h1         { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin: .4rem 0 .75rem; }
.blog-hero p          { color: var(--muted); font-size: 1.05rem; margin: 0; }
.blog-listing         { padding: 0 5vw 80px; max-width: 980px; margin: 0 auto; }
.blog-category-label  { font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--coral); margin: 2.5rem 0 1rem; }
.blog-grid            { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem; }
.blog-card            { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.5rem; display: flex; flex-direction: column; gap: .6rem; }
.blog-card-meta       { display: flex; align-items: center; gap: .75rem; }
.blog-tag             { display: inline-block; background: var(--brand-soft); color: var(--brand); font-size: .72rem; font-weight: 700; padding: .2rem .55rem; border-radius: 20px; letter-spacing: .04em; }
.blog-card-meta time  { font-size: .82rem; color: var(--muted); }
.blog-card h2         { font-size: 1.05rem; margin: 0; line-height: 1.3; }
.blog-card h2 a       { color: var(--ink); text-decoration: none; }
.blog-card h2 a:hover { color: var(--brand); }
.blog-card p          { font-size: .9rem; color: var(--muted); margin: 0; flex: 1; }
.blog-read-more       { font-size: .88rem; font-weight: 600; color: var(--brand); text-decoration: none; margin-top: auto; }
.blog-read-more:hover { text-decoration: underline; }

/* Blog post article */
.blog-post            { max-width: 760px; margin: 0 auto; padding: 48px 5vw 80px; }
.blog-post-header     { margin-bottom: 2rem; }
.blog-post-meta       { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.blog-back            { font-size: .85rem; color: var(--muted); text-decoration: none; }
.blog-back:hover      { color: var(--brand); }
.blog-post-meta time  { font-size: .82rem; color: var(--muted); }
.blog-post h1         { font-size: clamp(1.8rem, 3.5vw, 2.5rem); margin: 0 0 1rem; }
.blog-post-lead       { font-size: 1.1rem; color: var(--muted); margin: 0; line-height: 1.65; }
.blog-toc             { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; margin: 2rem 0; font-size: .9rem; }
.blog-toc ol          { margin: .5rem 0 0; padding-left: 1.3rem; display: flex; flex-direction: column; gap: .3rem; }
.blog-toc a           { color: var(--brand); text-decoration: none; }
.blog-toc a:hover     { text-decoration: underline; }
.blog-post-body       { font-size: 1rem; line-height: 1.75; }
.blog-post-body h2    { font-size: 1.5rem; margin: 2.5rem 0 .75rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.blog-post-body h3    { font-size: 1.15rem; margin: 1.75rem 0 .5rem; }
.blog-post-body p     { margin: 0 0 1rem; }
.blog-post-body ul,
.blog-post-body ol    { padding-left: 1.4rem; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .35rem; }
.blog-post-body li    { font-size: .97rem; }
.blog-callout         { background: var(--brand-soft); border-left: 4px solid var(--brand); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; padding: 1rem 1.25rem; margin: 1.5rem 0; font-size: .95rem; }
.blog-callout--tip    { background: #fff9ee; border-color: var(--gold); }
.blog-cta             { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.5rem; margin: 2.5rem 0 0; text-align: center; }
.blog-cta p           { margin: 0 0 1rem; font-weight: 600; }
.blog-cta .btn        { margin: .3rem; }
.blog-table-wrap      { overflow-x: auto; margin: 1rem 0; }
.blog-table           { width: 100%; border-collapse: collapse; font-size: .92rem; }
.blog-table th,
.blog-table td        { text-align: left; padding: .65rem .85rem; border-bottom: 1px solid var(--line); }
.blog-table th        { background: var(--brand-soft); color: var(--brand-dark); font-weight: 700; }
.blog-table tr:last-child td { border-bottom: none; }
.blog-table-note      { font-size: .8rem; color: var(--muted); margin-top: .4rem; }
