:root {
    /* Cor */
    --ink: #241d22;
    --muted: #756d72;
    --line: #e9e2e5;
    --paper: #fff8fb;
    --canvas: #f4f0f1;
    --surface: #ffffff;
    --surface-subtle: #faf7f8;
    --accent: #6e294f;
    --accent-strong: #54203d;
    --accent-soft: #f8edf2;
    --sidebar: #321328;
    --sidebar-ink: #fff8fb;
    --success: #2f7b5a;
    --danger: #a44242;
    --warning: #91631f;
    --info: #2f6687;

    /* Espaçamento */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 22px;
    --space-6: 28px;
    --space-7: 36px;
    --space-8: 48px;

    /* Forma, elevação e interação */
    --radius-sm: 8px;
    --radius-md: 11px;
    --radius-lg: 15px;
    --radius-xl: 20px;
    --radius-pill: 999px;
    --radius: var(--radius-lg);
    --shadow-sm: 0 8px 24px rgba(53, 30, 45, .08);
    --shadow: 0 18px 60px rgba(53, 30, 45, .13);
    --shadow-lg: 0 24px 70px rgba(28, 17, 24, .18);
    --control-height: 45px;
    --content-max: 1680px;
    --reading-max: 920px;
    --focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);
    --transition-fast: 150ms ease;

    /* Tipografia */
    --display: Georgia, 'Times New Roman', serif;
    --body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--canvas); font-family: var(--body); font-size: 15px; line-height: 1.55; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
a:focus-visible, summary:focus-visible, button:focus-visible { outline: 2px solid color-mix(in srgb, var(--accent) 66%, white); outline-offset: 3px; }
:focus:not(:focus-visible) { outline: none; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--ink); font-family: var(--display); line-height: 1.08; }
h1 { margin-bottom: 10px; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; letter-spacing: -.035em; }
h2 { margin-bottom: 10px; font-size: 1.55rem; font-weight: 500; }
h3 { margin-bottom: 8px; font-size: 1.12rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.eyebrow { margin-bottom: 9px; color: var(--accent); font: 700 .7rem/1 var(--body); letter-spacing: .16em; text-transform: uppercase; }
.muted { color: var(--muted); }

.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand img { display: block; width: 185px; height: auto; }
.sidebar > .brand img { width: 174px; }

.button { display: inline-flex; min-height: 43px; align-items: center; justify-content: center; gap: var(--space-2); border: 1px solid transparent; border-radius: var(--radius-sm); padding: 10px 18px; font-weight: 700; line-height: 1.2; text-decoration: none; transition: transform var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast); }
.button:hover:not(:disabled):not([aria-disabled='true']) { transform: translateY(-1px); }
.button:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.button:disabled, .button[aria-disabled='true'] { cursor: not-allowed; opacity: .52; transform: none; }
.button--primary { color: white; background: var(--accent); }
.button--primary:hover:not(:disabled):not([aria-disabled='true']) { background: var(--accent-strong); }
.button--secondary { border-color: var(--line); color: var(--ink); background: var(--surface); }
.button--secondary:hover:not(:disabled):not([aria-disabled='true']) { border-color: color-mix(in srgb, var(--accent) 28%, var(--line)); background: var(--surface-subtle); }
.button--tertiary { border-color: transparent; color: var(--accent); background: transparent; }
.button--tertiary:hover:not(:disabled):not([aria-disabled='true']) { background: var(--accent-soft); }
.button--danger { border-color: var(--danger); color: white; background: var(--danger); }
.button--danger:hover:not(:disabled):not([aria-disabled='true']) { background: color-mix(in srgb, var(--danger) 84%, black); }
.button--danger-quiet { border-color: color-mix(in srgb, var(--danger) 30%, var(--line)); color: var(--danger); background: var(--surface); }
.button--danger-quiet:hover:not(:disabled):not([aria-disabled='true']) { background: color-mix(in srgb, var(--danger) 7%, var(--surface)); }
.button--block { width: 100%; }
.button--compact { min-height: 32px; padding: 5px 10px; font-size: .68rem; }
.button--small { min-height: 36px; padding: 7px 12px; font-size: .76rem; }
.button--large { min-height: 50px; padding: 12px 22px; }
.button--icon { width: 43px; padding: 0; }
.button--icon.button--compact { width: 32px; }
.text-link { color: var(--accent); font-weight: 700; text-underline-offset: 4px; }
.link-button { border: 0; padding: 0; color: inherit; background: transparent; text-decoration: underline; text-underline-offset: 3px; }

.alert { display: grid; gap: 4px; margin-bottom: var(--space-5); border: 1px solid; border-radius: var(--radius-md); padding: 13px 16px; }
.alert strong { font-size: .82rem; }
.alert p { margin: 0; }
.alert ul { margin: 7px 0 0; padding-left: 20px; }
.alert--success { border-color: color-mix(in srgb, var(--success) 35%, var(--line)); color: #245d45; background: color-mix(in srgb, var(--success) 9%, var(--surface)); }
.alert--error { border-color: color-mix(in srgb, var(--danger) 35%, var(--line)); color: #833838; background: color-mix(in srgb, var(--danger) 8%, var(--surface)); }
.alert--warning { border-color: color-mix(in srgb, var(--warning) 38%, var(--line)); color: #714c18; background: color-mix(in srgb, var(--warning) 10%, var(--surface)); }
.alert--info { border-color: color-mix(in srgb, var(--info) 34%, var(--line)); color: #285875; background: color-mix(in srgb, var(--info) 8%, var(--surface)); }

/* Autenticação */
.auth-page { min-height: 100vh; background: #f5f1eb; }
.auth-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(360px, 1.1fr) minmax(430px, .9fr); }
.auth-visual { position: relative; display: flex; overflow: hidden; flex-direction: column; justify-content: space-between; padding: clamp(34px, 5vw, 70px); color: #fffaf2; background: #171817; }
.auth-visual::before { position: absolute; inset: 0; content: ''; background: radial-gradient(circle at 72% 22%, rgba(155,77,60,.52), transparent 30%), linear-gradient(135deg, transparent 56%, rgba(255,255,255,.045) 56% 57%, transparent 57%); }
.auth-visual > * { position: relative; z-index: 1; }
.auth-visual__copy { max-width: 620px; margin: auto 0 3vh; }
.auth-visual__copy h1 { max-width: 650px; color: #fffaf2; font-size: clamp(3rem, 6vw, 6.4rem); }
.auth-visual__copy > p:last-child { max-width: 530px; color: #c9c2ba; font-size: 1.05rem; }
.auth-visual__rings { position: absolute; right: -160px; bottom: -180px; width: 520px; height: 520px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 60px rgba(155,77,60,.08), 0 0 0 120px rgba(155,77,60,.05); }
.auth-panel { display: flex; align-items: center; justify-content: center; padding: 34px; }
.auth-card { width: min(100%, 450px); }
.auth-card__brand { display: none; margin-bottom: 55px; }
.auth-card h2 { margin-bottom: 12px; font-size: clamp(2.2rem, 4vw, 3.25rem); }
.form-intro { margin-bottom: 32px; color: var(--muted); }
.form-stack { display: grid; gap: 19px; margin-bottom: 22px; }
.auth-help { margin-top: 44px; color: var(--muted); font-size: .82rem; }

/* Formulários */
label { display: grid; gap: 7px; }
label > span:first-child, .field-label { color: var(--ink); font-size: .82rem; font-weight: 700; }
input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm); outline: none; padding: 11px 13px; color: var(--ink); background: var(--surface); transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast); }
input, select { min-height: var(--control-height); }
textarea { min-height: 96px; resize: vertical; }
input::placeholder, textarea::placeholder { color: color-mix(in srgb, var(--muted) 72%, transparent); }
input:hover:not(:disabled), select:hover:not(:disabled), textarea:hover:not(:disabled) { border-color: color-mix(in srgb, var(--accent) 22%, var(--line)); }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: var(--focus-ring); }
input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; color: color-mix(in srgb, var(--muted) 82%, var(--ink)); background: var(--surface-subtle); opacity: .72; }
input[type='file'] { padding: 6px; }
input[type='file']::file-selector-button { min-height: 32px; margin-right: 10px; border: 1px solid var(--line); border-radius: calc(var(--radius-sm) - 2px); padding: 6px 10px; color: var(--ink); background: var(--surface-subtle); font-weight: 700; cursor: pointer; transition: border-color var(--transition-fast), background var(--transition-fast); }
input[type='file']::file-selector-button:hover { border-color: color-mix(in srgb, var(--accent) 30%, var(--line)); background: var(--accent-soft); }
input[aria-invalid='true'], select[aria-invalid='true'], textarea[aria-invalid='true'], .field--error input, .field--error select, .field--error textarea { border-color: var(--danger); }
input[aria-invalid='true']:focus, select[aria-invalid='true']:focus, textarea[aria-invalid='true']:focus, .field--error input:focus, .field--error select:focus, .field--error textarea:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 14%, transparent); }
label small, .field-help { color: var(--muted); font-size: .75rem; line-height: 1.45; }
.field { display: grid; gap: 7px; }
.field-error { color: var(--danger); font-size: .75rem; line-height: 1.45; }
.field-required { color: var(--danger); }
.field-group { display: grid; gap: var(--space-3); }
.check-row { display: flex; align-items: center; gap: 9px; }
.check-row input { width: 17px; min-height: 17px; accent-color: var(--accent); }
.check-row span { font-size: .82rem; font-weight: 500 !important; }
.check-row--field { align-self: end; min-height: var(--control-height); }
.choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--space-3); }
.choice-card { position: relative; display: grid; gap: var(--space-1); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-4); background: var(--surface); cursor: pointer; transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast); }
.choice-card:hover { border-color: color-mix(in srgb, var(--accent) 30%, var(--line)); }
.choice-card:has(input:checked) { border-color: var(--accent); background: color-mix(in srgb, var(--accent-soft) 58%, var(--surface)); box-shadow: var(--focus-ring); }
.choice-card input { position: absolute; top: var(--space-3); right: var(--space-3); width: 17px; min-height: 17px; accent-color: var(--accent); }
.choice-card strong { padding-right: 26px; }
.choice-card small { color: var(--muted); }
.switch-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.switch { position: relative; display: inline-flex; width: 42px; height: 24px; flex: 0 0 auto; }
.switch input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; }
.switch span { width: 100%; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--muted) 26%, var(--line)); transition: background var(--transition-fast); }
.switch span::after { display: block; width: 18px; height: 18px; margin: 3px; border-radius: 50%; content: ''; background: var(--surface); box-shadow: var(--shadow-sm); transition: transform var(--transition-fast); }
.switch input:checked + span { background: var(--accent); }
.switch input:checked + span::after { transform: translateX(18px); }
.switch input:focus-visible + span { box-shadow: var(--focus-ring); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.contract-change-grid { column-gap: var(--space-7); row-gap: var(--space-5); }
.form-grid--single { grid-template-columns: 1fr; }
.form-span { grid-column: 1 / -1; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2); border-top: 1px solid var(--line); padding-top: var(--space-5); }
.form-section-title { border-bottom: 1px solid var(--line); padding: 10px 0 3px; }
.form-section-title h2, .form-section-title p { margin-bottom: 5px; }
.company-signatory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.company-signatory[hidden] { display: none; }
.consent-panel { display: grid; gap: 7px; border: 1px solid var(--line); border-radius: 11px; padding: 17px; background: var(--accent-soft); }
.consent-panel > small { color: var(--muted); }

/* Estrutura principal */
.portal-shell { display: grid; min-height: 100vh; grid-template-columns: 260px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; z-index: 40; display: flex; height: 100vh; flex-direction: column; padding: 32px 24px 24px; color: var(--sidebar-ink); background: var(--sidebar); }
.sidebar__nav { display: grid; gap: 5px; margin-top: 55px; }
.sidebar__nav a, .sidebar__disabled { display: flex; align-items: center; gap: 12px; border-radius: calc(var(--radius) * .5); padding: 11px 13px; color: #bdb8b1; font-size: .87rem; text-decoration: none; }
.sidebar__nav a span, .sidebar__disabled span { width: 18px; color: #85817c; text-align: center; }
.sidebar__nav a:hover { color: #fff; background: rgba(255,255,255,.06); }
.sidebar__nav a.is-active { color: #fff; background: var(--accent); }
.sidebar__nav a.is-active span { color: #fff; }
.sidebar__label { margin: 26px 12px 5px; color: #77736e; font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sidebar__disabled { opacity: .47; }
.sidebar__footer { margin-top: auto; border-top: 1px solid rgba(255,255,255,.12); padding: 18px 12px 0; }
.sidebar-user { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; color: inherit; text-decoration: none; }
.sidebar-user > span:last-child { display: grid; min-width: 0; }
.sidebar-user strong { overflow: hidden; color: #fff; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user small { overflow: hidden; color: #8f8a84; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
.content-shell { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 30; display: flex; height: 82px; align-items: center; border-bottom: 1px solid var(--line); padding: 0 clamp(22px, 4vw, 58px); background: color-mix(in srgb, var(--canvas) 92%, transparent); backdrop-filter: blur(14px); }
.topbar__title { display: grid; }
.topbar__title span { color: var(--accent); font-size: .58rem; font-weight: 800; letter-spacing: .14em; }
.topbar__title strong { font-family: var(--display); font-size: 1.18rem; font-weight: 500; }
.menu-toggle { display: none; border: 0; margin-right: 12px; color: var(--ink); background: transparent; font-size: 1.4rem; }
.sidebar-close, .sidebar-backdrop { display: none; }
.appearance { position: relative; margin-left: auto; }
.appearance summary { list-style: none; border: 1px solid var(--line); border-radius: 999px; padding: 8px 14px; background: var(--surface); font-size: .78rem; font-weight: 700; }
.appearance summary::-webkit-details-marker { display: none; }
.appearance form { position: absolute; top: 48px; right: 0; width: 310px; border: 1px solid var(--line); border-radius: var(--radius); padding: 19px; background: var(--surface); box-shadow: var(--shadow); }
.appearance form > p { margin-bottom: 14px; color: var(--muted); font-size: .82rem; }
.theme-option { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 10px; margin-bottom: 10px; border: 1px solid var(--line); border-radius: 10px; padding: 8px; }
.theme-option input { position: absolute; opacity: 0; }
.theme-option:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.theme-swatch { width: 34px; height: 27px; border-radius: 6px; }
.theme-swatch--classico { background: linear-gradient(90deg, #53233f 28%, #f3edf0 28% 68%, #d8819c 68%); }
.theme-swatch--editorial { background: linear-gradient(90deg, #25211e 28%, #e8dacb 28% 68%, #a56d4f 68%); }
.theme-swatch--prisma { background: linear-gradient(135deg, #171324, #b458ff 58%, #ff6f91); }
.main-content { width: 100%; max-width: var(--content-max); margin: 0 auto; padding: clamp(28px, 4vw, 58px); }
.content-narrow { width: min(100%, var(--reading-max)); margin-right: auto; margin-left: auto; }
.content-wide { width: 100%; }

/* Componentes */
.panel { border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(20px, 3vw, 32px); background: var(--surface); box-shadow: var(--shadow); }
.panel--narrow { max-width: 680px; margin: 4vh auto; }
.page-heading, .hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 32px; }
.page-heading p, .hero-row p { margin-bottom: 0; color: var(--muted); }
.hero-row { align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 34px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin-bottom: 22px; }
.metric-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.metric-card { display: grid; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; background: var(--surface); box-shadow: var(--shadow); }
.metric-card span { color: var(--muted); font-size: .78rem; }
.metric-card strong { margin: 14px 0 6px; font-family: var(--display); font-size: 2.35rem; font-weight: 500; line-height: 1; }
.metric-card small { color: var(--accent); font-size: .7rem; font-weight: 700; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .7fr); gap: 22px; }
.dashboard-grid--balanced { grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); align-items: start; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.section-heading h2, .section-heading p { margin-bottom: 0; }
.count-badge { display: grid; min-width: 36px; height: 36px; place-items: center; border-radius: 999px; color: var(--accent); background: var(--accent-soft); font-weight: 800; }
.event-row { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: 15px; border-top: 1px solid var(--line); padding: 16px 0; text-decoration: none; }
.event-row time { display: grid; align-content: center; width: 48px; height: 53px; border: 1px solid var(--line); border-radius: 10px; text-align: center; }
.event-row time strong { font-family: var(--display); font-size: 1.35rem; line-height: 1; }
.event-row time span { color: var(--accent); font-size: .55rem; font-weight: 800; }
.event-row__main { display: grid; min-width: 0; }
.event-row__main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-row__main small { overflow: hidden; color: var(--muted); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.status { display: inline-flex; width: fit-content; border-radius: 999px; padding: 4px 9px; color: var(--muted); background: #eeeae6; font-size: .66rem; font-style: normal; font-weight: 800; white-space: nowrap; }
.status--confirmed, .status--completed { color: #256145; background: #def1e6; }
.status--paid { color: #256145; background: #def1e6; }
.status--draft { color: var(--muted); background: #eeeae6; }
.status--pending, .status--partially_paid { color: #83591f; background: #faebc9; }
.status--overdue, .status--expired { color: #8d3434; background: #f8dede; }
.status--contract_pending { color: #83591f; background: #faebc9; }
.status--in_production { color: #4b4389; background: #e7e3ff; }
.status--cancelled { color: #8d3434; background: #f8dede; }
.status--neutral { color: var(--muted); background: color-mix(in srgb, var(--muted) 10%, var(--surface)); }
.status--info { color: var(--info); background: color-mix(in srgb, var(--info) 11%, var(--surface)); }
.status--success { color: var(--success); background: color-mix(in srgb, var(--success) 11%, var(--surface)); }
.status--warning { color: var(--warning); background: color-mix(in srgb, var(--warning) 12%, var(--surface)); }
.status--danger { color: var(--danger); background: color-mix(in srgb, var(--danger) 11%, var(--surface)); }
.status-button { border: 0; }
.check-list { display: grid; gap: 12px; margin: 22px 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 28px; color: var(--muted); }
.check-list li::before { position: absolute; left: 0; width: 18px; height: 18px; border: 1px solid var(--line); border-radius: 50%; content: ''; }
.check-list li.is-done { color: var(--ink); }
.check-list li.is-done::before { border-color: var(--success); content: '✓'; color: #fff; background: var(--success); font-size: .7rem; line-height: 17px; text-align: center; }
.empty-state { display: grid; justify-items: center; padding: clamp(35px, 7vw, 80px) 20px; text-align: center; }
.empty-state h2, .empty-state h3, .empty-state strong { max-width: 560px; margin-bottom: var(--space-2); }
.empty-state p { max-width: 470px; margin-bottom: var(--space-4); color: var(--muted); }
.empty-state__icon { display: grid; width: 56px; height: 56px; margin-bottom: 18px; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-size: 1.5rem; }
.empty-state__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); }
.empty-state--compact { padding: 26px 10px; }
.empty-state--compact .empty-state__icon { width: 44px; height: 44px; margin-bottom: var(--space-3); font-size: 1.1rem; }
.empty-state--large { min-height: 55vh; align-content: center; }
.toolbar { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.toolbar--wrap { flex-wrap: wrap; }
.toolbar select { width: auto; min-width: 190px; }
.toolbar > .search-field { flex: 1 1 300px; min-width: 240px; max-width: 620px; }
.toolbar > .button { flex: 0 0 auto; }
.toolbar__spacer { flex: 1 1 auto; }
.toolbar__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2); }
.toolbar__clear { color: var(--muted); font-size: .78rem; font-weight: 700; text-underline-offset: 3px; }
.toolbar__clear:hover { color: var(--accent); }
.search-field { flex: 1; min-width: 240px; }
.global-confirm__body { color: var(--muted); }
.global-confirm__body p { margin: 0; white-space: pre-line; }
.data-view { display: grid; gap: var(--space-4); }
.data-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.data-toolbar__primary { display: flex; min-width: min(100%, 420px); flex: 1 1 420px; gap: var(--space-2); }
.data-toolbar__filters { display: flex; flex: 0 1 auto; flex-wrap: wrap; gap: var(--space-2); }
.data-toolbar__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); margin-left: auto; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { border-bottom: 1px solid var(--line); padding: 11px 13px; color: var(--muted); font-size: .65rem; letter-spacing: .12em; text-align: left; text-transform: uppercase; }
td { border-bottom: 1px solid var(--line); padding: 15px 13px; vertical-align: middle; transition: background var(--transition-fast); }
tbody tr:hover > td { background: color-mix(in srgb, var(--accent-soft) 26%, transparent); }
td strong, td small { display: block; }
td small { margin-top: 3px; color: var(--muted); font-size: .72rem; }
.table-action { text-align: right; }
.table-action a { color: var(--accent); font-weight: 800; }
.table-empty { padding: var(--space-7) var(--space-4); color: var(--muted); text-align: center; }
nav[role='navigation'] { margin-top: 20px; }
.loading-state { display: grid; min-height: 180px; place-items: center; gap: var(--space-3); padding: var(--space-6); color: var(--muted); text-align: center; }
.loading-state__spinner { width: 30px; height: 30px; border: 3px solid color-mix(in srgb, var(--accent) 18%, var(--line)); border-top-color: var(--accent); border-radius: 50%; animation: ui-spin .75s linear infinite; }
.skeleton { position: relative; overflow: hidden; min-height: 14px; border-radius: var(--radius-sm); background: color-mix(in srgb, var(--muted) 10%, var(--surface)); }
.skeleton::after { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg, transparent, color-mix(in srgb, white 42%, transparent), transparent); transform: translateX(-100%); animation: ui-skeleton 1.4s ease-in-out infinite; }
@keyframes ui-spin { to { transform: rotate(360deg); } }
@keyframes ui-skeleton { to { transform: translateX(100%); } }
.detail-grid { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); gap: 22px; }
.detail-list { margin: 20px 0; }
.detail-list > div { display: grid; grid-template-columns: 150px 1fr; border-top: 1px solid var(--line); padding: 13px 0; }
.detail-list dt { color: var(--muted); font-size: .76rem; }
.detail-list dd { margin: 0; font-weight: 700; }
.note { border-radius: 12px; padding: 16px; background: var(--canvas); }
.note p { margin: 5px 0 0; color: var(--muted); white-space: pre-line; }
.event-summary { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 22px; margin-bottom: 22px; }
.event-date-card { display: grid; align-content: center; justify-items: center; border-radius: var(--radius); padding: 22px; color: #fff; background: var(--accent); box-shadow: var(--shadow); }
.event-date-card span { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.event-date-card strong { font-family: var(--display); font-size: 4rem; font-weight: 500; line-height: 1; }
.event-overview { display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; gap: 18px; }
.event-overview > div { display: grid; gap: 5px; border-left: 1px solid var(--line); padding-left: 18px; }
.event-overview > div:first-child { border-left: 0; padding-left: 0; }
.event-overview span:not(.status), .event-overview small { color: var(--muted); font-size: .7rem; }
.stage { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; border-top: 1px solid var(--line); padding: 15px 0; }
.stage__number { color: var(--accent); font-family: var(--display); }
.stage > div { display: grid; }
.stage small { color: var(--muted); }
.person-row, .access-row { display: flex; align-items: center; gap: 12px; border-top: 1px solid var(--line); padding: 14px 0; }
.person-row > span:first-child, .avatar { display: grid; overflow: hidden; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-weight: 800; }
.person-row > span:first-child img { width: 100%; height: 100%; object-fit: cover; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar--small { flex-basis: 34px; width: 34px; height: 34px; }
.person-row > div, .access-row__main { display: grid; min-width: 0; flex: 1; }
.person-row small, .access-row small, .access-row em { overflow: hidden; color: var(--muted); font-size: .72rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.access-row em { color: var(--accent); }
.access-row__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.access-activation { display: flex; align-items: center; gap: 7px; margin-top: 4px; }
.access-activation small { color: var(--muted); }
.delete-access { border: 1px solid color-mix(in srgb, var(--danger) 34%, var(--line)); border-radius: 999px; padding: 4px 9px; color: var(--danger); background: transparent; font-size: .66rem; font-weight: 800; }
.delete-access:hover { color: white; background: var(--danger); }
.assign-event { margin: -7px 0 10px 52px; }
.assign-event summary { color: var(--accent); font-size: .72rem; font-weight: 800; }
.assign-event form { display: flex; gap: 8px; margin-top: 8px; }
.assign-event form select { flex: 1; }
.access-event-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.access-event-chip { display: inline-flex; max-width: 100%; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 12px; padding: 8px 9px 8px 12px; background: color-mix(in srgb, var(--surface) 90%, var(--accent-soft)); }
.access-event-chip > span { display: grid; min-width: 0; }
.access-event-chip strong { overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.access-event-chip small { color: var(--muted); font-size: .65rem; }
.access-event-chip form { flex: 0 0 auto; }
.access-event-chip__remove { border: 0; border-left: 1px solid var(--line); padding: 4px 3px 4px 10px; color: var(--danger); background: transparent; font-size: .65rem; font-weight: 800; cursor: pointer; }
.access-event-chip__remove:hover { color: color-mix(in srgb, var(--danger) 75%, black); }
.access-all-link { margin-top: 20px; }
.activation-share { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(330px, 1.2fr); align-items: center; gap: 24px; margin-bottom: 22px; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); border-radius: var(--radius); padding: 22px; background: var(--accent-soft); }
.activation-share h2, .activation-share p { margin-bottom: 6px; }
.activation-share > div:first-child > p:last-child { color: var(--muted); font-size: .8rem; }
.copy-field { display: flex; gap: 8px; }
.copy-field input { min-width: 0; background: var(--surface); }
.activation-inline-result { margin: 0 0 10px 52px; color: var(--danger); font-size: .75rem; }
.activation-inline-result:empty { display: none; }
.activation-inline-result .copy-field { width: 100%; }
.activation-delivery { display: block; margin-top: 8px; font-size: .78rem; line-height: 1.45; }
.activation-share p.activation-delivery--success, .activation-delivery--success { color: var(--success); }
.activation-share p.activation-delivery--error, .activation-delivery--error { color: var(--danger); }
.activation-client-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; margin: 18px 0; border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line)); border-radius: 11px; padding: 14px; background: var(--accent-soft); }
.activation-client-card > div:first-child { display: grid; }
.activation-client-card small { color: var(--muted); font-size: .72rem; }

/* Perfil */
.profile-panel { max-width: 880px; }
.profile-form { display: grid; gap: 28px; }
.profile-photo { display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.profile-photo > img, .profile-photo > span { display: grid; width: 82px; height: 82px; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); object-fit: cover; font-family: var(--display); font-size: 2rem; }
.profile-photo > div { display: grid; }
.profile-photo small { color: var(--muted); }
.profile-actions { justify-content: space-between; }
.avatar-editor { display: grid; gap: 22px; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; background: var(--canvas); }
.avatar-editor[hidden] { display: none; }
.avatar-editor h2, .avatar-editor p { margin-bottom: 5px; }
.avatar-editor__body { display: grid; grid-template-columns: minmax(220px, 320px) minmax(220px, 1fr); align-items: center; gap: 30px; }
.avatar-editor__stage { position: relative; overflow: hidden; width: min(100%, 320px); aspect-ratio: 1; border: 6px solid var(--surface); border-radius: 50%; background: #d9d2d5; box-shadow: 0 10px 35px rgba(36,29,34,.15); }
.avatar-editor__stage::after { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.75); border-radius: inherit; content: ''; pointer-events: none; }
.avatar-editor canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.avatar-editor canvas:active { cursor: grabbing; }
.avatar-editor__controls { display: grid; gap: 18px; }
.avatar-editor__controls input[type='range'] { padding: 0; accent-color: var(--accent); }

/* Cadastro e gestão do evento */
.event-form { align-items: start; }
.field-inline-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.event-hosts-editor { display: grid; gap: 14px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .7); padding: 16px; background: color-mix(in srgb, var(--canvas) 45%, var(--surface)); }
.event-hosts-editor__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.event-hosts-editor__heading > div { display: grid; gap: 4px; }
.event-hosts-editor__heading small, .event-add-host-action small { color: var(--muted); }
.event-hosts-list, #additional-hosts-admin { display: grid; gap: 10px; }
.event-host-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .55fr) auto; align-items: end; gap: 12px; border-top: 1px solid var(--line); padding-top: 10px; }
.event-host-row[hidden] { display: none; }
.event-host-field { min-width: 0; }
.event-host-compound { min-height: 45px; padding: 0 4px; }
.event-host-remove { align-self: end; min-width: 78px; }
.client-host-field { display: grid; gap: 8px; min-width: 0; }
.client-host-compound { min-height: 36px; }
.event-add-host-action { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
@media (max-width: 720px) {
    .event-hosts-editor__heading { display: grid; }
    .event-host-row { grid-template-columns: 1fr; align-items: stretch; }
    .event-host-compound { min-height: 44px; }
    .event-host-remove { justify-self: start; min-height: 44px; }
}
.location-picker, .timeline-section, .ceremony-fields { display: grid; gap: 16px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .7); padding: 20px; background: color-mix(in srgb, var(--canvas) 55%, var(--surface)); }
.location-picker__heading, .timeline-section > div:first-child { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.location-picker__heading > div, .timeline-section > div:first-child { color: var(--ink); font-size: .82rem; font-weight: 700; }
.location-picker__heading small, .timeline-section small { display: block; color: var(--muted); font-size: .75rem; font-weight: 400; }
.location-results { display: grid; overflow: hidden; border: 1px solid var(--line); border-radius: calc(var(--radius) * .55); background: var(--surface); box-shadow: var(--shadow); }
.location-results[hidden], .selected-location[hidden], .manual-location[hidden], .ceremony-fields[hidden], #ceremony-time-field[hidden], #event-subtype-field[hidden], #event-type-other-field[hidden], #event-subtype-other-field[hidden] { display: none; }
.location-results > p { margin: 0; padding: 14px; color: var(--muted); font-size: .78rem; }
.location-result { display: grid; gap: 2px; width: 100%; border: 0; border-bottom: 1px solid var(--line); padding: 13px 15px; color: var(--ink); background: var(--surface); text-align: left; }
.location-result:last-child { border-bottom: 0; }
.location-result:hover, .location-result:focus { outline: none; background: var(--accent-soft); }
.location-result small { color: var(--muted); }
.selected-location { display: grid; gap: 2px; border-left: 3px solid var(--success); padding: 8px 12px; background: var(--surface); }
.selected-location small { color: var(--muted); }
.manual-location { display: grid; grid-template-columns: 1.1fr 1.7fr .8fr 90px; gap: 14px; }
.timeline-grid, .operational-timeline { display: grid; grid-template-columns: repeat(6, minmax(100px, 1fr)); gap: 12px; }
.timeline-grid label { min-width: 0; }
.ceremony-fields { grid-template-columns: minmax(280px, 1fr) minmax(170px, .45fr); align-items: end; }
.ceremony-fields .check-row { min-height: 45px; }

.status-progress-panel, .operational-schedule, .event-management-grid { margin-bottom: 22px; }
.status-progress { display: grid; grid-template-columns: repeat(5, minmax(125px, 1fr)) minmax(110px, .75fr); gap: 10px; }
.status-step { position: relative; display: grid; gap: 5px; min-height: 84px; align-content: center; border: 1px solid var(--line); border-radius: calc(var(--radius) * .6); padding: 12px; color: var(--muted); background: var(--surface); text-align: left; }
.status-step::after { position: absolute; right: -11px; top: 50%; z-index: 1; width: 11px; height: 1px; content: ''; background: var(--line); }
.status-step:last-child::after { display: none; }
.status-step span { color: var(--accent); font-size: .64rem; font-weight: 800; letter-spacing: .12em; }
.status-step strong { font-size: .78rem; }
.status-step:hover:not(:disabled) { border-color: var(--accent); transform: translateY(-1px); }
.status-step:disabled { cursor: default; opacity: 1; }
.status-step.is-complete { border-color: color-mix(in srgb, var(--success) 38%, var(--line)); color: var(--success); background: color-mix(in srgb, var(--success) 7%, var(--surface)); }
.status-step.is-current { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent); }
.status-step--cancelled span, .status-step--cancelled.is-current { color: var(--danger); }
.status-step--cancelled.is-current { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, var(--surface)); }
.event-overview--details { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.event-overview--details small { overflow-wrap: anywhere; }
.operational-timeline { margin: 0; }
.operational-timeline > div { position: relative; display: grid; gap: 4px; border-top: 3px solid var(--accent-soft); padding: 14px 8px 0 0; }
.operational-timeline > div::before { position: absolute; top: -7px; left: 0; width: 11px; height: 11px; border: 2px solid var(--surface); border-radius: 50%; content: ''; background: var(--accent); }
.operational-timeline dt { color: var(--muted); font-size: .68rem; }
.operational-timeline dd { margin: 0; font-family: var(--display); font-size: 1.45rem; }
.activity-panel { margin-top: 22px; }
.activity-row { position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 12px; padding: 15px 0; }
.activity-row:not(:last-child)::before { position: absolute; top: 29px; bottom: -15px; left: 6px; width: 1px; content: ''; background: var(--line); }
.activity-dot { z-index: 1; width: 13px; height: 13px; margin-top: 5px; border: 3px solid var(--surface); border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.activity-row > div { display: grid; gap: 3px; }
.activity-row small { color: var(--muted); }
.activity-row details { margin-top: 7px; }
.activity-row summary { width: fit-content; color: var(--accent); font-size: .72rem; font-weight: 800; }
.activity-row dl { display: grid; gap: 7px; margin: 10px 0 0; border-radius: 10px; padding: 12px; background: var(--canvas); }
.activity-row dl > div { display: grid; grid-template-columns: minmax(120px, .35fr) minmax(0, 1fr); gap: 12px; }
.activity-row dt { color: var(--muted); font-size: .72rem; }
.activity-row dd { margin: 0; overflow-wrap: anywhere; font-size: .76rem; }
.activity-row del { color: var(--danger); }
.activity-row ins { color: var(--success); text-decoration: none; }

/* Contratos e integrações */
.contract-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 22px; }
.contract-flow > div { display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 10px; padding: 14px; color: var(--muted); background: var(--surface); }
.contract-flow > div span { color: var(--accent); font-size: .64rem; font-weight: 800; letter-spacing: .12em; }
.contract-flow > div.is-current { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.contract-actions { display: grid; align-items: start; justify-items: start; gap: 13px; }
.contract-actions > p { color: var(--muted); }
.contract-actions form:not(.form-stack) { display: inline-flex; }
.contract-versions { margin-top: 22px; }
.version-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 15px; border-top: 1px solid var(--line); padding: 17px 0; }
.version-row > div:first-child { display: grid; min-width: 0; }
.version-row small { overflow-wrap: anywhere; color: var(--muted); font-size: .7rem; }
.version-signers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.version-signers > span { display: grid; border-radius: 9px; padding: 10px; background: var(--canvas); }
.integration-grid { display: grid; gap: 22px; }
.integration-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 22px; }
.integration-column { display: grid; min-width: 0; align-content: start; gap: 22px; }
.integration-grid code { overflow-wrap: anywhere; }
.mail-integration { display: grid; gap: 22px; }
.mail-integration > .form-grid { gap: 15px; }
.integration-description { margin: -4px 0 2px; color: var(--muted); }
.mail-server-grid { display: grid; grid-template-columns: minmax(0, 1fr) 105px 150px; gap: 12px; }
.mail-from-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.integration-help { margin: 0; color: var(--muted); font-size: .7rem; }
.integration-help a { color: var(--accent); font-weight: 800; text-underline-offset: 3px; }
.mail-test-form { display: grid; grid-template-columns: minmax(130px, .7fr) minmax(210px, 1fr) auto; align-items: end; gap: 12px; border-top: 1px solid var(--line); padding-top: 18px; }
.mail-test-form > div { display: grid; gap: 4px; align-self: center; }
.mail-test-form small { color: var(--muted); font-size: .65rem; }
.mail-test-form .button { min-height: 44px; }
.mail-auth-error { display: grid; gap: 9px; }
.mail-auth-error p, .mail-auth-error ol { margin: 0; }
.mail-auth-error ol { display: grid; gap: 5px; padding-left: 20px; font-size: .72rem; }
.mail-auth-error a { justify-self: start; color: inherit; font-size: .7rem; font-weight: 900; text-underline-offset: 3px; }
.contract-client-panel { margin-bottom: 22px; }

/* Financeiro */
.finance-layout { grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); }
.finance-charge-list { display: grid; gap: 15px; }
.finance-charge { display: grid; gap: 15px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .75); padding: 18px; background: color-mix(in srgb, var(--canvas) 35%, var(--surface)); }
.finance-charge .section-heading { margin-bottom: 0; }
.finance-summary-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.finance-summary-row > div { display: grid; gap: 3px; border-radius: 9px; padding: 10px; background: var(--surface); }
.finance-summary-row dt { color: var(--muted); font-size: .68rem; }
.finance-summary-row dd { margin: 0; font-weight: 800; }
.finance-action { border-top: 1px solid var(--line); padding-top: 13px; }
.finance-action > summary, .payment-row summary { width: fit-content; color: var(--accent); font-size: .75rem; font-weight: 800; }
.finance-action > form { margin-top: 13px; }
.payment-list { display: grid; border-top: 1px solid var(--line); }
.payment-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); padding: 12px 0; }
.payment-row > div:first-child { display: grid; }
.payment-row small { color: var(--muted); font-size: .7rem; }
.payment-row details form { display: grid; min-width: 210px; gap: 9px; margin-top: 8px; }
.payment-detail-row td { color: var(--muted); background: color-mix(in srgb, var(--accent-soft) 35%, var(--surface)); font-size: .76rem; }
.provider-selector { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.provider-card { position: relative; display: grid; min-width: 0; min-height: 190px; align-content: start; gap: 14px; padding: 20px; }
.provider-card--choice { cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.provider-card--choice:hover { transform: translateY(-2px); }
.provider-card--choice.is-selected { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 14%, transparent), var(--shadow); }
.provider-card__copy { display: grid; gap: 7px; }
.provider-card h2, .provider-card p { margin-bottom: 0; }
.provider-card h2 { font-size: 1.25rem; }
.provider-card p { overflow: hidden; display: -webkit-box; color: var(--muted); font-size: .76rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.provider-card__more { width: fit-content; margin-top: auto; font-size: .73rem; }
.financial-settings { max-width: 1050px; }
.financial-provider-default { max-width: 480px; }
.credential-box { display: grid; gap: 16px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .75); padding: 20px; background: color-mix(in srgb, var(--canvas) 40%, var(--surface)); }
.credential-box .section-heading { margin-bottom: 0; }
.environment-credentials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .55); padding: 16px; background: var(--surface); }
.environment-credentials[hidden], [data-provider-panel][hidden] { display: none; }
.provider-coming-soon { justify-items: start; }
.provider-coming-soon h2, .provider-coming-soon p { margin-bottom: 0; }
.provider-dialog { width: min(92vw, 660px); max-height: 85vh; margin: auto; border: 1px solid var(--line); color: var(--ink); background: var(--surface); box-shadow: 0 30px 80px rgba(0,0,0,.28); }
.provider-dialog::backdrop { background: rgba(16, 13, 12, .58); backdrop-filter: blur(3px); }
.provider-dialog__heading { border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.provider-dialog__heading h2 { margin-bottom: 0; }
.provider-dialog__close { border: 0; padding: 0; background: transparent; cursor: pointer; }
.provider-dialog__body { display: grid; gap: 14px; }
.provider-dialog__body > p { margin: 0; color: var(--muted); }
.provider-dialog ul { display: grid; gap: 7px; padding-left: 20px; color: var(--muted); }
.provider-dialog__links { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; }
.provider-dialog__links a { color: var(--accent); font-size: .74rem; font-weight: 800; text-underline-offset: 4px; }
.payment-method-fieldset { display: grid; gap: 10px; margin: 0; border: 1px solid var(--line); border-radius: calc(var(--radius) * .5); padding: 15px; }
.payment-method-fieldset legend { padding: 0 6px; color: var(--ink); font-size: .82rem; font-weight: 700; }
.payment-method-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 18px; }
.financial-settings .is-disabled { opacity: .48; }
.invoice-list { display: grid; gap: 15px; }
.invoice-row { display: grid; gap: 14px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .75); padding: 18px; background: color-mix(in srgb, var(--canvas) 32%, var(--surface)); }
.invoice-row .section-heading, .invoice-row p { margin-bottom: 0; }
.invoice-row > small { color: var(--muted); }
.invoice-origin-note { color: var(--accent); font-size: .68rem; font-weight: 800; }
.invoice-public-page { display: grid; min-height: 100vh; place-items: center; padding: 24px; }
.invoice-public-card { display: grid; width: min(100%, 650px); gap: 25px; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(25px, 6vw, 52px); background: var(--surface); box-shadow: var(--shadow); }
.invoice-public-card > img { width: 210px; max-width: 60%; height: auto; }
.invoice-public-card h1 { margin-bottom: 5px; }
.invoice-public-card footer { border-top: 1px solid var(--line); padding-top: 18px; color: var(--muted); font-size: .72rem; text-align: center; }
.invoice-public-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--line); }
.invoice-public-summary > div { display: grid; gap: 4px; border-bottom: 1px solid var(--line); padding: 15px 0; }
.invoice-public-summary > div:nth-child(even) { padding-left: 20px; }
.invoice-public-summary dt { color: var(--muted); font-size: .72rem; }
.invoice-public-summary dd { margin: 0; font-weight: 800; }

/* Área do cliente */
.client-hero { position: relative; overflow: hidden; display: flex; min-height: 240px; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 22px; border-radius: calc(var(--radius) * 1.15); padding: clamp(28px, 5vw, 55px); color: #fff; background: linear-gradient(125deg, var(--sidebar), color-mix(in srgb, var(--accent) 65%, #111)); box-shadow: var(--shadow); }
.client-hero::after { position: absolute; right: -110px; top: -150px; width: 380px; height: 380px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.04), 0 0 0 110px rgba(255,255,255,.025); content: ''; }
.client-hero > * { position: relative; z-index: 1; }
.client-hero h1 { color: #fff; }
.client-hero p:last-child { margin: 0; color: rgba(255,255,255,.7); }
.event-switcher { min-width: 260px; }
.event-switcher label > span { color: rgba(255,255,255,.75); }
.progress-card { display: grid; grid-template-columns: minmax(170px, .5fr) minmax(240px, 1.5fr) auto; align-items: center; gap: 22px; margin-bottom: 22px; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 24px; background: var(--surface); }
.progress-card > div:first-child { display: grid; }
.progress-card > div:first-child span { color: var(--muted); font-size: .72rem; }
.progress-track { height: 8px; overflow: hidden; border-radius: 99px; background: var(--line); }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.progress-card small { color: var(--muted); }
.client-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 22px; }
.client-card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; background: var(--surface); box-shadow: var(--shadow); }
.client-card__icon { display: grid; width: 42px; height: 42px; margin-bottom: 24px; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); }
.client-card > p:not(.eyebrow) { min-height: 66px; color: var(--muted); }
.progress-card--workflow { grid-template-columns: minmax(170px, .5fr) minmax(240px, 1.5fr) auto; }
.workflow-percentage { color: var(--accent); font-size: .92rem; }
.workflow-pending-summary { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; border: 1px solid color-mix(in srgb, #c98925 34%, var(--line)); border-radius: calc(var(--radius) * .55); padding: 10px 13px; background: color-mix(in srgb, #fff4da 28%, var(--surface)); }
.workflow-pending-summary span { flex: 0 0 auto; color: #8b5c0d; font-size: .6rem; font-weight: 900; letter-spacing: .1em; }
.workflow-pending-summary p { margin: 0; color: var(--muted); font-size: .7rem; }
.client-workflow { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 2px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line); list-style: none; }
.client-workflow__step { display: grid; grid-template-columns: 28px 1fr; align-items: start; gap: 8px; min-width: 0; }
.client-workflow__marker { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: var(--canvas); font-size: .7rem; font-weight: 900; }
.client-workflow__step > div { display: grid; gap: 2px; min-width: 0; }
.client-workflow__step strong { font-size: .72rem; }
.client-workflow__status { justify-self: start; border-radius: 99px; padding: 2px 6px; color: var(--muted); background: var(--canvas); font-size: .52rem; font-weight: 900; letter-spacing: .03em; }
.client-workflow__step small { overflow: hidden; color: var(--muted); font-size: .61rem; line-height: 1.35; }
.client-workflow__step.is-current .client-workflow__marker { border-color: var(--accent); color: #fff; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.client-workflow__step.is-current strong { color: var(--accent); }
.client-workflow__step.is-current .client-workflow__status { color: var(--accent); background: var(--accent-soft); }
.client-workflow__step.is-complete .client-workflow__marker { border-color: var(--success); color: #fff; background: var(--success); }
.client-workflow__step.is-complete .client-workflow__status { color: var(--success); background: color-mix(in srgb, var(--success) 14%, var(--surface)); }
.client-contract-notice { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; margin-bottom: 22px; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: var(--radius); padding: 19px 22px; background: var(--surface); box-shadow: var(--shadow); }
.client-contract-notice__icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-size: 1.2rem; font-weight: 900; }
.client-contract-notice h2 { margin: 2px 0 3px; font-size: 1.15rem; }
.client-contract-notice p:not(.eyebrow) { color: var(--muted); }
.client-contract-notice--attention { border-left-color: #c98925; background: color-mix(in srgb, #fff4da 42%, var(--surface)); }
.client-contract-notice--attention .client-contract-notice__icon { color: #8b5c0d; background: #fff0c8; }
.client-contract-notice--success { border-color: color-mix(in srgb, var(--success) 52%, var(--line)); border-left: 5px solid var(--success); background: color-mix(in srgb, #dff3e6 58%, var(--surface)); }
.client-contract-notice--success .client-contract-notice__icon { color: #fff; background: var(--success); }
.client-card--attention { border-color: color-mix(in srgb, #c98925 58%, var(--line)); }
.client-card--complete { border: 2px solid color-mix(in srgb, var(--success) 72%, var(--line)); background: color-mix(in srgb, #dff3e6 48%, var(--surface)); }
.client-card--complete::before { position: absolute; inset: 0 0 auto; height: 6px; background: var(--success); content: ''; }
.client-card--complete .client-card__icon { color: #fff; background: var(--success); box-shadow: 0 0 0 5px color-mix(in srgb, var(--success) 15%, transparent); }
.contract-complete-badge { position: absolute; top: 20px; right: 20px; border-radius: 99px; padding: 7px 10px; color: #fff; background: var(--success); font-size: .65rem; font-weight: 900; letter-spacing: .04em; }
.placeholder-file--complete { border-style: solid; border-color: color-mix(in srgb, var(--success) 55%, var(--line)); background: color-mix(in srgb, #fff 52%, transparent); }
.placeholder-file--complete > span { color: #fff; background: var(--success); }
.placeholder-file--complete strong { color: var(--success); }
.placeholder-file { display: flex; align-items: center; gap: 11px; border: 1px dashed var(--line); border-radius: 11px; padding: 13px; }
a.placeholder-file { color: inherit; text-decoration: none; }
a.placeholder-file:hover { border-color: var(--accent); background: var(--accent-soft); }
.placeholder-file > span { display: grid; flex: 0 0 42px; height: 42px; place-items: center; border-radius: 8px; color: var(--accent); background: var(--accent-soft); font-size: .63rem; font-weight: 900; }
.placeholder-file > div { display: grid; }
.placeholder-file strong { font-size: .77rem; }
.placeholder-file small { color: var(--muted); font-size: .67rem; }
.client-standalone-invoices { margin-bottom: 22px; }
.client-standalone-invoices .invoice-list { gap: 10px; }
.client-standalone-invoices .placeholder-file { border-style: solid; background: color-mix(in srgb, var(--accent-soft) 22%, var(--surface)); }
.client-standalone-invoices .placeholder-file > div { flex: 1; gap: 3px; min-width: 0; }
.client-standalone-invoices .placeholder-file strong { font-size: .86rem; }
.client-standalone-invoices .placeholder-file small { font-size: .72rem; }
.client-standalone-invoices .status { justify-self: start; margin-top: 4px; }
.schedule-panel { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.schedule-panel dl { display: flex; gap: 38px; margin: 0; }
.schedule-panel dl > div { display: grid; }
.schedule-panel dt { color: var(--muted); font-size: .68rem; }
.schedule-panel dd { margin: 0; font-weight: 700; }
.staff-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.staff-event .detail-list > div { grid-template-columns: 110px 1fr; }

/* Editorial elegante: papel quente, marrom profundo e terracota */
.theme-editorial { --ink: #29231f; --muted: #7b6f66; --line: #ded2c8; --paper: #f7efe6; --canvas: #e8ddd2; --surface: #fbf8f3; --surface-subtle: #f5eee8; --accent: #8a573d; --accent-strong: #6f4937; --accent-soft: #f1e6dc; --sidebar: #26211e; --sidebar-ink: #f7efe6; --success: #59715b; --info: #4b6f84; --radius-sm: 4px; --radius-md: 4px; --radius-lg: 4px; --radius-xl: 6px; --radius: var(--radius-lg); --shadow: 0 6px 18px rgba(67, 50, 40, .06); --display: Georgia, 'Times New Roman', serif; }
.theme-editorial .sidebar { border-right: 1px solid rgba(255,255,255,.08); }
.theme-editorial .main-content { background-image: radial-gradient(rgba(80,63,51,.08) .5px, transparent .5px); background-size: 8px 8px; }
.theme-editorial .event-date-card { background: #6f4937; }
.theme-editorial .client-hero { background: linear-gradient(125deg, #26211e, #6f4937); }

/* Prisma digital: noturno, violeta e rosa */
.theme-prisma { --ink: #f7f4fc; --muted: #aaa3b8; --line: rgba(255,255,255,.10); --paper: #f9f4ff; --canvas: #100d18; --surface: #181421; --surface-subtle: #211b2c; --accent: #bd6dff; --accent-strong: #9f4be1; --accent-soft: rgba(188,94,255,.13); --sidebar: #0b0910; --sidebar-ink: #f9f4ff; --success: #59dda5; --info: #80c8ff; --radius-sm: 10px; --radius-md: 14px; --radius-lg: 18px; --radius-xl: 24px; --radius: var(--radius-lg); --shadow: 0 5px 25px rgba(0,0,0,.18); --display: var(--body); }
.theme-prisma h1, .theme-prisma h2, .theme-prisma .topbar__title strong { font-weight: 800; }
.theme-prisma .content-shell { background: radial-gradient(circle at 65% 0%, rgba(167,70,255,.11), transparent 31%), var(--canvas); }
.theme-prisma .topbar { background: rgba(16,13,24,.90); backdrop-filter: blur(16px); }
.theme-prisma .sidebar { border-right: 1px solid rgba(255,255,255,.08); background: #0b0910; }
.theme-prisma .sidebar__nav a.is-active { background: linear-gradient(135deg, #bd6dff, #ff739c); }
.theme-prisma .panel, .theme-prisma .metric-card, .theme-prisma .progress-card, .theme-prisma .client-card { background: rgba(25,20,34,.90); backdrop-filter: blur(16px); }
.theme-prisma .event-date-card, .theme-prisma .progress-track span { background: linear-gradient(135deg, #bd6dff, #ff739c); }
.theme-prisma .client-hero { background: radial-gradient(circle at 18% 40%, rgba(189,109,255,.24), transparent 30%), linear-gradient(120deg, #181224, #281331); }
.theme-prisma .status { color: var(--muted); background: rgba(255,255,255,.07); }
.theme-prisma .status--confirmed, .theme-prisma .status--completed { color: #59dda5; background: rgba(68,204,143,.12); }
.theme-prisma .status--paid { color: #59dda5; background: rgba(68,204,143,.12); }
.theme-prisma .status--pending, .theme-prisma .status--partially_paid { color: #f2c36c; background: rgba(242,195,108,.12); }
.theme-prisma .status--overdue { color: #ff8b9b; background: rgba(255,100,120,.13); }
.theme-prisma .status--expired { color: #ff8b9b; background: rgba(255,100,120,.13); }
.theme-prisma .appearance form { background: #181421; }

.payment-choice-list { display: grid; gap: 10px; }
.payment-rules { display: grid; gap: 16px; padding: 18px; border: 1px solid var(--line); background: var(--accent-soft); }
.payment-rules__custom { margin-top: 4px; }
.status--refunded { color: #2f765d; background: #e4f4ed; }
.theme-prisma .status--refunded { color: #59dda5; background: rgba(68,204,143,.12); }

/* Gestão financeira */
.metric-card--link { color: inherit; text-decoration: none; transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.metric-card--link:hover { border-color: var(--accent); transform: translateY(-2px); }
.finance-shortcut-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.finance-shortcut { display: grid; min-height: 150px; align-content: start; gap: 5px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .75); padding: 18px; color: inherit; background: color-mix(in srgb, var(--surface) 88%, var(--accent-soft)); text-decoration: none; transition: border-color .16s ease, transform .16s ease; }
.finance-shortcut:hover { border-color: var(--accent); transform: translateY(-2px); }
.finance-shortcut > span { color: var(--accent); font-size: .65rem; font-weight: 900; letter-spacing: .12em; }
.finance-shortcut > strong { margin-top: 15px; font-family: var(--display); font-size: 1.35rem; font-weight: 500; }
.finance-shortcut > small { color: var(--muted); font-size: .72rem; }
.toolbar-date { display: flex; min-width: 150px; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .5); padding-left: 12px; background: var(--surface); }
.toolbar-date > span:first-child { flex: 0 0 auto; color: var(--muted); font-size: .68rem; }
.toolbar-date input { min-height: 43px; border: 0; padding-left: 2px; box-shadow: none; }
.movement-value { white-space: nowrap; }
.movement-value--income { color: var(--success); }
.movement-value--expense, .expense-card__value, .text-link--danger { color: var(--danger); }
.text-link--danger { border: 0; padding: 0; background: transparent; }
.expense-layout { grid-template-columns: minmax(310px, .75fr) minmax(0, 1.25fr); }
.expense-list { display: grid; gap: 15px; }
.expense-card { scroll-margin-top: 105px; }
.expense-card__value { white-space: nowrap; font-family: var(--display); font-size: 1.5rem; font-weight: 500; }
.expense-card .finance-summary-row { margin-bottom: 15px; }
.expense-edit { width: 100%; border-top: 1px solid var(--line); padding-top: 12px; }
.expense-edit > summary { width: fit-content; color: var(--accent); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.expense-edit > form { margin-top: 18px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .65); padding: 18px; background: var(--canvas); }
.directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.directory-create { margin-bottom: 20px; border-bottom: 1px solid var(--line); padding-bottom: 20px; }
.directory-create .button { justify-self: start; }
.directory-list { display: grid; gap: 10px; }
.directory-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 13px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .6); padding: 13px 15px; background: color-mix(in srgb, var(--surface) 90%, var(--canvas)); }
.directory-row > div:first-child { display: grid; min-width: 0; }
.directory-row > div:first-child small { overflow: hidden; color: var(--muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.directory-row details { position: relative; }
.directory-row details > summary { color: var(--accent); font-size: .75rem; font-weight: 700; list-style: none; text-decoration: underline; text-underline-offset: 3px; }
.directory-row details > summary::-webkit-details-marker { display: none; }
.directory-row details > form { position: absolute; z-index: 15; top: 32px; right: 0; display: grid; width: min(520px, 78vw); gap: 10px; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; background: var(--surface); box-shadow: var(--shadow); }
.directory-row--supplier details > form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.directory-row--supplier details > form .button { grid-column: 1 / -1; }

/* Gestão administrativa */
.status--warning { color: var(--warning); background: color-mix(in srgb, var(--warning) 14%, var(--surface)); }
.status--danger { color: var(--danger); background: color-mix(in srgb, var(--danger) 13%, var(--surface)); }
.status--requested, .status--ordered, .status--proof, .status--pending { color: var(--warning); background: color-mix(in srgb, var(--warning) 14%, var(--surface)); }
.status--available, .status--confirmed, .status--completed, .status--received, .status--approved, .status--ready, .status--delivered { color: var(--success); background: color-mix(in srgb, var(--success) 14%, var(--surface)); }
.status--unavailable, .status--cancelled { color: var(--danger); background: color-mix(in srgb, var(--danger) 13%, var(--surface)); }
.management-widget-grid { margin-bottom: 22px; }
.management-metrics { margin-bottom: 22px; }
.management-alert-list, .dashboard-alerts { display: grid; gap: 9px; }
.management-alert { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 14px; border: 1px solid var(--line); border-left: 3px solid var(--warning); border-radius: calc(var(--radius) * .6); padding: 13px 15px; color: inherit; background: color-mix(in srgb, var(--surface) 92%, var(--canvas)); text-decoration: none; }
.management-alert--danger { border-left-color: var(--danger); }
.management-alert time { color: var(--accent); font-family: var(--display); font-size: 1.08rem; }
.management-alert > span { display: grid; min-width: 0; }
.management-alert small { color: var(--accent); font-size: .6rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.management-alert em { overflow: hidden; color: var(--muted); font-size: .72rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.management-alert b { color: var(--accent); font-size: .72rem; }
.dashboard-alerts { margin-bottom: 18px; }
.dashboard-alerts a { display: grid; gap: 3px; border-bottom: 1px solid var(--line); padding: 10px 0; color: inherit; text-decoration: none; }
.dashboard-alerts a:first-child { padding-top: 0; }
.dashboard-alerts a .status { margin-bottom: 3px; }
.dashboard-alerts a small { color: var(--muted); }
.supplier-management-layout { grid-template-columns: minmax(300px, .65fr) minmax(0, 1.35fr); }
.supplier-card-list, .print-job-list { display: grid; gap: 16px; }
.supplier-card { display: grid; gap: 13px; }
.supplier-default-category { margin: 0; border-radius: calc(var(--radius) * .45); padding: 10px 12px; color: var(--muted); background: var(--accent-soft); font-size: .77rem; }
.inline-editor { border-top: 1px solid var(--line); padding-top: 11px; }
.inline-editor > summary { width: fit-content; color: var(--accent); font-weight: 700; list-style: none; text-decoration: underline; text-underline-offset: 4px; }
.inline-editor > summary::-webkit-details-marker { display: none; }
.inline-editor > form, .inline-editor > div { margin-top: 16px; border-radius: calc(var(--radius) * .6); padding: 17px; background: var(--canvas); }
.management-forms { margin-bottom: 22px; }
.compact-create-form { margin-bottom: 20px; border-bottom: 1px solid var(--line); padding-bottom: 20px; }
.catalog-list { display: grid; gap: 8px; }
.catalog-item { border: 1px solid var(--line); border-radius: calc(var(--radius) * .55); background: color-mix(in srgb, var(--surface) 90%, var(--canvas)); }
.catalog-item > summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 14px; list-style: none; }
.catalog-item > summary::-webkit-details-marker { display: none; }
.catalog-item > summary > span:first-child { display: grid; }
.catalog-item > summary small { color: var(--muted); }
.catalog-item > form { margin: 0 14px 14px; border-top: 1px solid var(--line); padding-top: 14px; }
.operation-card-list { display: grid; gap: 10px; }
.operation-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 18px; scroll-margin-top: 100px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .65); padding: 16px; background: color-mix(in srgb, var(--surface) 91%, var(--canvas)); }
.operation-card h3, .operation-card p { margin-bottom: 3px; }
.operation-card > .hero-actions, .operation-card > .inline-editor { grid-column: 1 / -1; }
.inline-status-form select { min-height: 34px; padding: 5px 9px; font-size: .72rem; }
.freelancer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 22px; }
.freelancer-card { display: grid; gap: 17px; }
.freelancer-card__identity { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; align-items: center; gap: 15px; }
.freelancer-card__identity h2, .freelancer-card__identity p { margin-bottom: 3px; }
.avatar--freelancer { display: grid; width: 70px; height: 70px; overflow: hidden; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-family: var(--display); font-size: 1.8rem; }
.avatar--freelancer img { width: 100%; height: 100%; object-fit: cover; }
.freelancer-payment-data { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-block: 1px solid var(--line); padding: 12px 0; }
.freelancer-payment-data div { display: grid; }
.freelancer-payment-data dt { color: var(--muted); font-size: .65rem; }
.freelancer-payment-data dd { overflow: hidden; margin: 0; font-size: .76rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.freelancer-history { display: grid; gap: 5px; }
.freelancer-history > span { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: .72rem; }
.freelancer-history em { color: var(--accent); font-style: normal; font-weight: 700; }
.assignment-statuses { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.assignment-editor { grid-column: 1 / -1; }
.print-job-create { margin-bottom: 22px; }
.print-job-card { scroll-margin-top: 100px; }
.job-file-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 14px 0; }
.print-job-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.print-job-actions > form { align-content: start; }
.theme-prisma .management-alert, .theme-prisma .catalog-item, .theme-prisma .operation-card { background: rgba(255,255,255,.025); }

@media (max-width: 1100px) {
    .metric-grid, .metric-grid--three { grid-template-columns: repeat(2, 1fr); }
    .client-grid { grid-template-columns: 1fr; }
    .client-card > p:not(.eyebrow) { min-height: 0; }
    .event-overview { grid-template-columns: repeat(2, 1fr); }
    .event-overview > div:nth-child(3) { border-left: 0; padding-left: 0; }
    .timeline-grid, .operational-timeline { grid-template-columns: repeat(3, 1fr); }
    .status-progress { grid-template-columns: repeat(3, 1fr); }
    .status-step:nth-child(3)::after, .status-step:last-child::after { display: none; }
    .manual-location { grid-template-columns: repeat(2, 1fr); }
    .integration-columns { grid-template-columns: 1fr; }
    .mail-server-grid, .mail-from-grid, .mail-test-form { grid-template-columns: 1fr; }
    .provider-selector { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .payment-method-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .finance-shortcut-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .directory-grid { grid-template-columns: 1fr; }
    .freelancer-grid { grid-template-columns: 1fr; }
    .job-file-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .provider-selector, .environment-credentials { grid-template-columns: 1fr; }
    .provider-card { min-height: 0; }
}

@media (max-width: 900px) {
    .contract-change-grid { grid-template-columns: 1fr; }
    .contract-change-grid > .form-span { grid-column: 1; }
}

@media (max-width: 840px) {
    .auth-shell { grid-template-columns: 1fr; }
    .auth-visual { display: none; }
    .auth-card__brand { display: inline-flex; }
    .portal-shell { grid-template-columns: 1fr; }
    body.sidebar-open { overflow: hidden; }
    .sidebar { position: fixed; top: 0; bottom: 0; left: -280px; z-index: 90; width: 260px; transition: left .2s ease; box-shadow: 10px 0 40px rgba(0,0,0,.2); }
    .sidebar.is-open { left: 0; }
    .menu-toggle { display: block; }
    .sidebar-close { position: absolute; top: 14px; right: 14px; display: grid; z-index: 12; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; padding: 0; color: #fff; background: color-mix(in srgb, var(--accent) 90%, #000); box-shadow: 0 8px 24px rgba(20,12,18,.3); font-size: 1.35rem; line-height: 1; cursor: pointer; }
    .sidebar > .brand { padding-right: 42px; }
    .sidebar-backdrop { position: fixed; inset: 0; z-index: 80; display: block; border: 0; padding: 0; visibility: hidden; opacity: 0; background: rgba(15,10,14,.48); transition: opacity .2s ease, visibility .2s ease; }
    .sidebar-backdrop.is-visible { visibility: visible; opacity: 1; }
    .main-content { padding: 26px 20px; }
    .topbar { height: 70px; padding: 0 18px; }
    .dashboard-grid, .dashboard-grid--balanced, .finance-layout, .detail-grid, .expense-layout { grid-template-columns: 1fr; }
    .activation-share { grid-template-columns: 1fr; }
    .staff-grid { grid-template-columns: 1fr; }
    .page-heading, .hero-row { align-items: flex-start; flex-direction: column; }
    .event-summary { grid-template-columns: 1fr; }
    .event-date-card { min-height: 130px; }
    .event-date-card strong { font-size: 3rem; }
    .client-hero { align-items: flex-start; flex-direction: column; }
    .event-switcher { width: 100%; }
    .progress-card { grid-template-columns: 1fr; }
    .progress-card--workflow { grid-template-columns: 1fr auto; }
    .progress-card--workflow > div:first-child { grid-column: 1; }
    .progress-card--workflow > .progress-track { grid-column: 1 / -1; }
    .client-workflow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .client-contract-notice { grid-template-columns: auto 1fr; }
    .client-contract-notice .button { grid-column: 1 / -1; }
    .schedule-panel, .schedule-panel dl { align-items: flex-start; flex-direction: column; }
    .schedule-panel dl { gap: 14px; }
    .avatar-editor__body { grid-template-columns: 1fr; }
    .avatar-editor__stage { justify-self: center; }
    .event-overview--details { grid-template-columns: repeat(2, 1fr); }
    .ceremony-fields { grid-template-columns: 1fr; }
    .location-picker__heading, .timeline-section > div:first-child { flex-direction: column; }
    .contract-flow { grid-template-columns: repeat(2, 1fr); }
}

/* Agenda mensal de eventos */
.event-month-panel { overflow: hidden; }
.event-month-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: calc(var(--radius) * .72); background: var(--surface); }
.event-month-weekdays, .event-month-grid { min-width: 910px; display: grid; grid-template-columns: repeat(7, minmax(130px, 1fr)); }
.event-month-weekdays { border-bottom: 1px solid var(--line); background: var(--accent-soft); }
.event-month-weekdays span { padding: 10px 12px; color: var(--accent); font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-align: center; }
.event-month-grid { align-items: stretch; }
.event-month-day { min-height: 150px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 10px; background: var(--surface); }
.event-month-day:nth-child(7n) { border-right: 0; }
.event-month-day.is-outside { background: color-mix(in srgb, var(--canvas) 78%, var(--surface)); }
.event-month-day > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.event-month-day > header span { color: var(--muted); font-size: .58rem; font-weight: 800; }
.event-month-day > header strong { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; font-family: var(--display); font-size: .9rem; font-weight: 500; }
.event-month-day.is-today > header strong { color: #fff; background: var(--accent); }
.event-month-day.is-outside > header { opacity: .45; }
.event-month-day__events { display: grid; gap: 7px; }
.event-month-item { display: grid; gap: 3px; border-left: 3px solid var(--accent); border-radius: 7px; padding: 8px; color: inherit; background: var(--accent-soft); text-decoration: none; }
.event-month-item:hover { background: color-mix(in srgb, var(--accent-soft) 72%, var(--surface)); }
.event-month-item > strong { overflow: hidden; font-size: .68rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.event-month-item > small { overflow: hidden; color: var(--muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.event-month-item .status { width: fit-content; margin-top: 2px; font-size: .52rem; }
.shell-event-basics { display: grid; gap: 18px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .75); padding: clamp(18px, 2.5vw, 26px); background: color-mix(in srgb, var(--accent-soft) 35%, var(--surface)); }
.location-picker--optional { margin-top: 0; }

@media (max-width: 840px) {
    .event-month-panel { padding-right: 14px; padding-left: 14px; }
    .event-month-panel > .section-heading { align-items: flex-start; }
    .event-month-scroll { padding-bottom: 4px; }
}

@media (max-width: 560px) {
    .auth-panel { padding: 25px 20px; }
    .auth-card__brand { margin-bottom: 42px; }
    .appearance form { position: fixed; top: 78px; right: 14px; left: 14px; width: auto; }
    .metric-grid, .form-grid, .event-overview { grid-template-columns: 1fr; }
    .event-overview > div { border-top: 1px solid var(--line); border-left: 0; padding-top: 12px; padding-left: 0; }
    .event-overview > div:first-child { border-top: 0; padding-top: 0; }
    .event-row { grid-template-columns: 45px minmax(0, 1fr); }
    .event-row > .status { grid-column: 2; }
    .stage { grid-template-columns: 35px minmax(0, 1fr); }
    .stage > .status { grid-column: 2; }
    .toolbar .button { width: 100%; }
    .toolbar select { width: 100%; }
    .detail-list > div { grid-template-columns: 1fr; gap: 3px; }
    .client-hero { min-height: 310px; }
    .access-row { align-items: flex-start; flex-wrap: wrap; }
    .access-row__actions { width: 100%; justify-content: flex-end; }
    .activation-inline-result { margin-left: 0; }
    .activation-client-card { grid-template-columns: 1fr; }
    .copy-field, .profile-actions { align-items: stretch; flex-direction: column; }
    .timeline-grid, .operational-timeline, .status-progress, .manual-location, .event-overview--details { grid-template-columns: 1fr; }
    .status-step::after { display: none; }
    .activity-row dl > div { grid-template-columns: 1fr; gap: 2px; }
    .avatar-editor { padding: 16px; }
    .company-signatory, .contract-flow, .version-row, .version-signers { grid-template-columns: 1fr; }
    .finance-summary-row, .payment-row { grid-template-columns: 1fr; }
    .invoice-public-summary { grid-template-columns: 1fr; }
    .invoice-public-summary > div:nth-child(even) { padding-left: 0; }
    .payment-method-grid { grid-template-columns: 1fr; }
    .finance-shortcut-grid { grid-template-columns: 1fr; }
    .finance-shortcut { min-height: 120px; }
    .toolbar-date { width: 100%; }
    .directory-row { grid-template-columns: minmax(0, 1fr) auto; }
    .directory-row > form { grid-column: 2; }
    .directory-row details > form { position: fixed; inset: 90px 16px auto; width: auto; max-height: calc(100vh - 120px); overflow: auto; }
    .directory-row--supplier details > form { grid-template-columns: 1fr; }
    .management-alert { grid-template-columns: 44px minmax(0, 1fr); }
    .management-alert b { display: none; }
    .operation-card, .freelancer-card__identity { grid-template-columns: 1fr; align-items: start; }
    .assignment-statuses { justify-content: flex-start; }
    .job-file-list, .print-job-actions, .freelancer-payment-data { grid-template-columns: 1fr; }
}

/* =========================================================
   Central de Eventos / Agenda semanal
   Mantém as variáveis e a linguagem visual original do portal.
   ========================================================= */

.sidebar-group {
    display: grid;
}

.sidebar-group > summary {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border-radius: calc(var(--radius) * .5);
    padding: 11px 13px;
    color: #bdb8b1;
    font-size: .87rem;
    cursor: pointer;
    list-style: none;
}

.sidebar-group > summary::-webkit-details-marker {
    display: none;
}

.sidebar-group > summary:hover {
    color: #fff;
    background: rgba(255,255,255,.06);
}

.sidebar-group > summary.is-active {
    color: #fff;
    background: var(--accent);
}

.sidebar-group > summary span {
    width: 18px;
    color: #85817c;
    text-align: center;
}

.sidebar-group > summary.is-active span {
    color: #fff;
}

.sidebar-group > summary strong {
    font-weight: 500;
}

.sidebar-group > summary b {
    font-size: .7rem;
    font-weight: 700;
    transition: transform .16s ease;
}

.sidebar-group[open] > summary b {
    transform: rotate(180deg);
}

.sidebar-submenu {
    display: grid;
    gap: 2px;
    margin: 5px 0 4px 30px;
    border-left: 1px solid rgba(255,255,255,.12);
    padding-left: 8px;
}

.sidebar-submenu a {
    min-height: 34px;
    padding: 7px 10px !important;
    font-size: .76rem !important;
}

.week-calendar-panel {
    margin-bottom: 22px;
}

.week-calendar {
    display: grid;
    grid-template-columns: repeat(7, minmax(120px, 1fr));
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .7);
    overflow-x: auto;
    background: var(--canvas);
}

.week-day {
    min-width: 120px;
    border-right: 1px solid var(--line);
    background: var(--surface);
}

.week-day:last-child {
    border-right: 0;
}

.week-day.is-today {
    background: color-mix(in srgb, var(--accent-soft) 50%, var(--surface));
}

.week-day > header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    border-bottom: 1px solid var(--line);
    padding: 12px;
}

.week-day > header span {
    color: var(--accent);
    font-size: .6rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.week-day > header strong {
    font-family: var(--display);
    font-size: 1.45rem;
    font-weight: 500;
}

.week-day__items {
    display: grid;
    align-content: start;
    gap: 7px;
    min-height: 145px;
    padding: 9px;
}

.week-day__empty {
    padding: 10px 3px;
    color: var(--muted);
    font-size: .7rem;
}

.calendar-item {
    display: grid;
    gap: 3px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--accent);
    border-radius: calc(var(--radius) * .45);
    padding: 9px;
    color: inherit;
    background: var(--surface);
    text-decoration: none;
    transition: transform .15s ease, border-color .15s ease;
}

.calendar-item:hover {
    border-color: var(--accent);
    transform: translateY(-1px);
}

.calendar-item--google {
    border-left-color: var(--success);
}

.calendar-item small {
    color: var(--accent);
    font-size: .55rem;
    font-weight: 900;
    letter-spacing: .06em;
}

.calendar-item--google small {
    color: var(--success);
}

.calendar-item strong {
    font-size: .72rem;
    line-height: 1.25;
}

.calendar-item span {
    overflow: hidden;
    color: var(--muted);
    font-size: .62rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-notice {
    margin-bottom: 14px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--warning);
    border-radius: calc(var(--radius) * .5);
    padding: 10px 13px;
    color: var(--muted);
    background: color-mix(in srgb, var(--warning) 6%, var(--surface));
    font-size: .74rem;
}

.dashboard-recent-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin-bottom: 22px;
}

.recent-widget {
    min-width: 0;
}

.recent-list {
    display: grid;
    margin-bottom: 15px;
}

.recent-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--line);
    padding: 12px 0;
    color: inherit;
    text-decoration: none;
}

.recent-row > span:first-child,
.recent-row__side {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.recent-row > span:first-child strong {
    overflow: hidden;
    font-size: .78rem;
    text-overflow: ellipsis;
}

.recent-row small {
    color: var(--muted);
    font-size: .68rem;
}

.recent-row__side {
    justify-items: end;
    text-align: right;
}

.recent-row__side > strong {
    white-space: nowrap;
    font-family: var(--display);
    font-size: .9rem;
    font-weight: 500;
}

.recent-row__side em {
    font-style: normal;
}

.event-hub-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
    margin-bottom: 22px;
}

.event-hub-card {
    display: grid;
    min-height: 210px;
    align-content: start;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 22px;
    color: inherit;
    background: var(--surface);
    box-shadow: var(--shadow);
    text-decoration: none;
    transition: border-color .16s ease, transform .16s ease;
}

.event-hub-card:hover {
    border-color: var(--accent);
    transform: translateY(-2px);
}

.event-hub-card__icon {
    display: grid;
    width: 38px;
    height: 38px;
    margin-bottom: 20px;
    place-items: center;
    border-radius: 50%;
    color: var(--accent);
    background: var(--accent-soft);
}

.event-hub-card > strong {
    margin: 3px 0 8px;
    font-family: var(--display);
    font-size: 2.2rem;
    font-weight: 500;
}

.event-hub-card > p {
    margin-bottom: 18px;
    color: var(--muted);
    font-size: .76rem;
}

.event-hub-card > small {
    margin-top: auto;
    color: var(--accent);
    font-size: .69rem;
    font-weight: 800;
}

@media (max-width: 1180px) {
    .dashboard-recent-grid {
        grid-template-columns: 1fr;
    }

    .event-hub-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .week-calendar {
        grid-template-columns: repeat(7, 145px);
    }

    .event-hub-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Clássico contemporâneo · Azul profundo Prismatic
   Referência visual: azul-marinho + azul óptico profundo.
   ========================================================= */

.theme-classico {
    --accent: #07568e;
    --accent-strong: #053963;
    --accent-soft: #e7f0f7;
    --sidebar: #070421;
    --sidebar-ink: #ffffff;
}


/* =========================================================
   Notificações do topbar
   ========================================================= */

.topbar-notifications {
    position: relative;
    margin-left: auto;
    margin-right: 10px;
}

.topbar-notifications > summary {
    position: relative;
    display: grid;
    width: 39px;
    height: 39px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    background: var(--surface);
    cursor: pointer;
    list-style: none;
}

.topbar-notifications > summary::-webkit-details-marker {
    display: none;
}

.topbar-notifications > summary:hover {
    border-color: var(--accent);
}

.notification-bell {
    position: relative;
    width: 16px;
    height: 17px;
    border: 1.8px solid currentColor;
    border-radius: 9px 9px 6px 6px;
    font-size: 0;
}

.notification-bell::before {
    position: absolute;
    top: -4px;
    left: 50%;
    width: 5px;
    height: 4px;
    border: 1.6px solid currentColor;
    border-bottom: 0;
    border-radius: 5px 5px 0 0;
    content: '';
    transform: translateX(-50%);
}

.notification-bell::after {
    position: absolute;
    bottom: -5px;
    left: 50%;
    width: 5px;
    height: 3px;
    border-radius: 0 0 5px 5px;
    content: '';
    background: currentColor;
    transform: translateX(-50%);
}

.notification-count {
    position: absolute;
    top: -5px;
    right: -5px;
    display: grid;
    min-width: 18px;
    height: 18px;
    place-items: center;
    border: 2px solid var(--canvas);
    border-radius: 999px;
    padding: 0 4px;
    color: #fff;
    background: var(--danger);
    font-size: .55rem;
    font-weight: 900;
    line-height: 1;
}

.notification-panel {
    position: absolute;
    top: 49px;
    right: 0;
    z-index: 70;
    width: min(390px, calc(100vw - 30px));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 19px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.notification-panel .dashboard-alerts {
    max-height: 420px;
    overflow-y: auto;
}

@media (max-width: 720px) {
    .topbar-notifications {
        margin-left: auto;
        margin-right: 7px;
    }

    .notification-panel {
        position: fixed;
        top: 72px;
        right: 15px;
        left: 15px;
        width: auto;
    }
}

/* Pacotes · extensão dos componentes atuais */

.package-select-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
}

.package-select-row .button {
    white-space: nowrap;
}

.package-management-list {
    display: grid;
    gap: 10px;
}

.package-management-card {
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    background: var(--surface);
    overflow: hidden;
}

.package-management-card > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 16px;
    cursor: pointer;
    list-style: none;
}

.package-management-card > summary::-webkit-details-marker {
    display: none;
}

.package-management-card > summary > span {
    display: grid;
    gap: 4px;
}

.package-management-card > summary > span:last-child {
    justify-items: end;
    text-align: right;
}

.package-management-card > summary small {
    color: var(--muted);
    font-size: .68rem;
}

.package-management-card > summary > span:last-child > strong {
    font-family: var(--display);
    font-size: 1rem;
    font-weight: 500;
}

.package-management-card > form {
    border-top: 1px solid var(--line);
    padding: 18px;
}

.package-toggle-form {
    display: flex;
    justify-content: flex-end;
    border-top: 0 !important;
    padding-top: 0 !important;
}

@media (max-width: 760px) {
    .package-select-row {
        grid-template-columns: 1fr;
    }

    .package-management-card > summary {
        grid-template-columns: 1fr;
    }

    .package-management-card > summary > span:last-child {
        justify-items: start;
        text-align: left;
    }
}

/* =========================================================
   Ajustes finos Prismatic - sidebar + topbar
   ========================================================= */

.sidebar__brand--prismatic {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 18px 18px 12px;
}

.sidebar__brand--prismatic img {
    display: block;
    width: 100%;
    max-width: 210px;
    height: auto;
    object-fit: contain;
}

.sidebar-group {
    margin-top: 2px;
}

.sidebar-group > summary {
    min-height: 44px;
    padding: 11px 14px;
    border-radius: 12px;
}

.sidebar-submenu {
    margin: 6px 0 6px 30px;
    padding-left: 12px;
}

.sidebar-submenu a {
    min-height: 34px;
    padding: 8px 10px !important;
    border-radius: 10px;
}

.topbar-notifications {
    position: relative;
    margin-left: auto;
    margin-right: 8px;
}

.topbar-notifications > summary {
    position: relative;
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--ink);
    cursor: pointer;
    list-style: none;
    box-shadow: none;
}

.topbar-notifications > summary::-webkit-details-marker {
    display: none;
}

.topbar-notifications > summary:hover {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent-soft) 30%, var(--surface));
}

.notification-bell {
    position: relative;
    display: block;
    width: 16px;
    height: 14px;
    border: 1.8px solid currentColor;
    border-radius: 8px 8px 6px 6px;
    background: transparent;
}

.notification-bell::before {
    content: '';
    position: absolute;
    top: -5px;
    left: 50%;
    width: 6px;
    height: 5px;
    border: 1.6px solid currentColor;
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    transform: translateX(-50%);
}

.notification-bell::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: currentColor;
    transform: translateX(-50%);
}

.notification-count {
    position: absolute;
    top: -4px;
    right: -3px;
    display: grid;
    min-width: 18px;
    height: 18px;
    place-items: center;
    padding: 0 4px;
    border: 2px solid var(--canvas);
    border-radius: 999px;
    background: var(--danger);
    color: #fff;
    font-size: .55rem;
    font-weight: 800;
    line-height: 1;
}

.notification-panel {
    position: absolute;
    top: 48px;
    right: 0;
    z-index: 80;
    width: min(390px, calc(100vw - 32px));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 18px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

@media (max-width: 760px) {
    .sidebar__brand--prismatic img {
        max-width: 180px;
    }

    .notification-panel {
        right: 0;
    }
}

/* Comercial do evento */

.commercial-event-section {
    display: grid;
    gap: 18px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 24px 0;
}

.commercial-package-grid {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.35fr)
        minmax(180px, .65fr)
        minmax(180px, .65fr);
    gap: 14px;
}

.multi-day-event-editor {
    display: grid;
    gap: 14px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .7);
    padding: 18px;
    background: color-mix(in srgb, var(--accent-soft) 18%, var(--surface));
}

.event-days-count-field {
    width: min(180px, 100%);
}

.event-day-primary,
.event-day-row {
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .6);
    padding: 14px;
    background: var(--surface);
}

.event-day-primary {
    display: flex;
    align-items: center;
    gap: 12px;
}

.event-day-primary small {
    margin-left: auto;
    color: var(--muted);
}

.event-day-row + .event-day-row {
    margin-top: 10px;
}

.event-day-row__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.event-day-row .form-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 760px) {
    .multi-day-event-editor {
        padding: 14px;
    }

    .event-day-primary {
        align-items: flex-start;
        flex-direction: column;
    }

    .event-day-primary small {
        margin-left: 0;
    }

    .event-day-row .form-grid {
        grid-template-columns: 1fr;
    }

    .event-days-count-field {
        width: 100%;
    }
}

.commercial-services-heading h3 {
    margin: 3px 0 0;
    font-family: var(--display);
    font-size: 1.15rem;
    font-weight: 500;
}

.commercial-services-list {
    display: grid;
    gap: 10px;
}

.commercial-offers-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.commercial-offer-card {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 15px;
    background: var(--surface);
    cursor: pointer;
}

.commercial-offer-card:has(input:checked) {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent-soft) 35%, var(--surface));
}

.commercial-offer-card input {
    width: auto;
    min-height: auto;
    margin-top: 4px;
    accent-color: var(--accent);
}

.commercial-offer-card > span {
    display: grid;
    gap: 3px;
}

.commercial-offer-card small,
.commercial-offer-summary span {
    color: var(--muted);
    font-size: .7rem;
}

.commercial-offer-summary {
    display: grid;
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .55);
    padding: 14px 16px;
    background: var(--accent-soft);
}

.commercial-service-card {
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 15px;
    background: var(--surface);
}

.commercial-service-card.is-selected {
    border-color: var(--accent);
    background:
        color-mix(
            in srgb,
            var(--accent-soft) 30%,
            var(--surface)
        );
}

.commercial-service-card .check-row > span {
    display: grid;
    gap: 3px;
}

.commercial-service-card .check-row small {
    color: var(--muted);
    font-size: .7rem;
}

.commercial-service-fields {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(130px, 1fr))
        minmax(120px, .7fr);
    align-items: end;
    gap: 10px;
    margin-top: 12px;
}

.commercial-service-subtotal {
    display: grid;
    gap: 5px;
    align-self: stretch;
    align-content: center;
    border-left: 1px solid var(--line);
    padding-left: 15px;
}

.commercial-service-subtotal span {
    color: var(--muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.commercial-service-subtotal strong {
    font-family: var(--display);
    font-size: 1.15rem;
    font-weight: 500;
}

.commercial-total-box {
    display: grid;
    justify-items: end;
    border-top: 1px solid var(--line);
    padding-top: 18px;
}

.commercial-total-box > span {
    color: var(--accent);
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.commercial-total-box > strong {
    margin: 5px 0;
    font-family: var(--display);
    font-size: clamp(1.8rem, 4vw, 2.7rem);
    font-weight: 500;
}

.commercial-total-box > small {
    color: var(--muted);
    font-size: .68rem;
}

.commercial-locked-summary {
    display: grid;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    overflow: hidden;
}

.commercial-locked-summary > div,
.commercial-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--line);
    padding: 13px 15px;
}

.commercial-locked-summary > div:last-child,
.commercial-summary-row:last-child {
    border-bottom: 0;
}

.commercial-locked-summary > div > span,
.commercial-summary-row > span {
    display: grid;
    gap: 3px;
}

.commercial-locked-summary span,
.commercial-summary-row small {
    color: var(--muted);
    font-size: .7rem;
}

.commercial-total-row {
    background: var(--accent-soft);
}

.commercial-total-row strong,
.event-commercial-total {
    color: var(--accent);
    font-family: var(--display);
    font-size: 1.35rem;
    font-weight: 500;
}

.event-commercial-panel {
    margin-bottom: 22px;
}

@media (max-width: 1050px) {
    .commercial-package-grid {
        grid-template-columns: 1fr;
    }

    .event-day-row .form-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .commercial-service-fields {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .commercial-service-subtotal {
        border-left: 0;
        padding-left: 0;
    }
}

@media (max-width: 650px) {
    .event-day-row .form-grid {
        grid-template-columns: 1fr;
    }

    .event-day-primary {
        align-items: flex-start;
        flex-direction: column;
    }

    .event-day-primary small {
        margin-left: 0;
    }

    .event-days-count-field {
        width: 100%;
    }

    .commercial-service-fields {
        grid-template-columns: 1fr;
    }

    .commercial-offers-list {
        grid-template-columns: 1fr;
    }
}

/* Escolha comercial do cliente */

.client-commercial-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 22px;
    background: linear-gradient(120deg, var(--surface), var(--accent-soft));
}

.client-commercial-status p:last-child {
    margin-bottom: 0;
    color: var(--muted);
}

.commercial-choice-form,
.commercial-choice-section,
.commercial-choice-summary {
    display: grid;
    gap: 20px;
}

.commercial-choice-form {
    gap: 22px;
}

.commercial-package-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.commercial-package-option {
    position: relative;
    display: block;
    cursor: pointer;
}

.commercial-package-option > input {
    position: absolute;
    z-index: 2;
    top: 16px;
    right: 16px;
    width: 18px;
    min-height: 18px;
    accent-color: var(--accent);
}

.commercial-package-option__body {
    display: grid;
    min-height: 100%;
    align-content: start;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .75);
    padding: 20px 46px 20px 20px;
    background: var(--surface);
    transition: border-color .15s ease, transform .15s ease, background .15s ease;
}

.commercial-package-option:hover .commercial-package-option__body,
.commercial-package-option.is-selected .commercial-package-option__body,
.commercial-package-option > input:checked + .commercial-package-option__body {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent-soft) 28%, var(--surface));
}

.commercial-package-option:hover .commercial-package-option__body {
    transform: translateY(-2px);
}

.commercial-package-option__heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 12px;
}

.commercial-package-option__heading > span {
    display: grid;
    gap: 3px;
}

.commercial-package-option__heading > strong {
    color: var(--accent);
    white-space: nowrap;
}

.commercial-package-option__body small,
.commercial-package-option__body li,
.commercial-client-service p,
.commercial-payment-option small,
.commercial-choice-total small {
    color: var(--muted);
    font-size: .72rem;
}

.commercial-package-option__body ul {
    margin: 0;
    padding-left: 18px;
}

.commercial-cash-note {
    color: var(--success);
    font-size: .72rem;
    font-weight: 800;
}

.commercial-client-services {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.commercial-client-service {
    display: grid;
    align-content: start;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 17px;
    background: var(--surface);
}

.commercial-client-service.is-selected {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent-soft) 28%, var(--surface));
}

.commercial-client-service .check-row input {
    width: auto;
    min-height: auto;
    accent-color: var(--accent);
}

.commercial-client-service .check-row > span {
    display: grid;
    gap: 3px;
}

.commercial-client-service__quantity {
    max-width: 180px;
}

.commercial-payment-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.commercial-payment-option {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 17px;
    background: var(--surface);
    cursor: pointer;
}

.commercial-payment-option:has(input:checked) {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent-soft) 28%, var(--surface));
}

.commercial-payment-option input {
    width: auto;
    min-height: auto;
    margin-top: 4px;
    accent-color: var(--accent);
}

.commercial-payment-option > span {
    display: grid;
    gap: 3px;
}

.pix-invoice-choice {
    display: grid;
    gap: 12px;
    margin-top: 18px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 17px;
    background: color-mix(in srgb, var(--accent-soft) 14%, var(--surface));
}

.pix-invoice-choice[hidden] {
    display: none;
}

.pix-invoice-choice legend {
    padding: 0 8px;
    font-weight: 800;
}

.pix-invoice-choice > small,
.pix-invoice-option small {
    color: var(--muted);
    font-size: .72rem;
}

.pix-invoice-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.pix-invoice-option {
    position: relative;
    display: grid;
    grid-template-columns: 24px 1fr;
    align-items: center;
    gap: 11px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .55);
    padding: 14px;
    background: var(--surface);
    cursor: pointer;
}

.pix-invoice-option:has(input:checked) {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
    background: color-mix(in srgb, var(--accent-soft) 32%, var(--surface));
}

.pix-invoice-option input {
    position: absolute;
    opacity: 0;
}

.pix-invoice-option__mark {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid var(--line-strong);
    border-radius: 50%;
    background: var(--surface);
}

.pix-invoice-option:has(input:checked) .pix-invoice-option__mark {
    border: 6px solid var(--accent);
}

.pix-invoice-option > span:last-child {
    display: grid;
    gap: 3px;
}

.commercial-choice-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.commercial-choice-total > div {
    display: grid;
    gap: 3px;
}

.commercial-choice-total span {
    color: var(--accent);
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.commercial-choice-total strong {
    font-family: var(--display);
    font-size: clamp(1.8rem, 4vw, 2.7rem);
    font-weight: 500;
}

.auxiliary-form {
    display: none !important;
}

@media (max-width: 1050px) {
    .commercial-package-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .client-commercial-status,
    .commercial-choice-total {
        align-items: stretch;
        flex-direction: column;
    }

    .commercial-package-options,
    .commercial-client-services,
    .commercial-payment-options {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Cliente inline / catálogo dinâmico / horário automático
   ========================================================= */

.commercial-heading-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.inline-new-client {
    display: grid;
    gap: 17px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 18px;
    background:
        color-mix(
            in srgb,
            var(--surface) 96%,
            var(--accent-soft)
        );
}

.inline-new-client[hidden] {
    display: none;
}

#inline-client-status {
    min-height: 18px;
    font-size: .72rem;
}

.computed-schedule-field {
    display: grid;
    align-content: center;
    gap: 4px;
    min-height: 69px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .45);
    padding: 10px 12px;
    background: var(--accent-soft);
}

.computed-schedule-field > span {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 700;
}

.computed-schedule-field > strong {
    color: var(--accent);
    font-family: var(--display);
    font-size: 1.15rem;
    font-weight: 500;
}

.computed-schedule-field > small {
    color: var(--muted);
    font-size: .65rem;
}

#refresh-commercial-catalog:disabled {
    cursor: wait;
    opacity: .6;
}


/* =========================================================
   Navegação lateral refinada · v2
   ========================================================= */

.sidebar > .brand {
    display: flex;
    width: 100%;
    min-height: 58px;
    align-items: center;
    justify-content: flex-start;
    margin: 0;
    padding: 0 3px;
    transform: none !important;
}

.sidebar > .brand img {
    display: block;
    width: 205px !important;
    max-width: 100%;
    height: auto !important;
    margin: 0;
    object-fit: contain;
    object-position: left center;
    transform: none !important;
    rotate: 0deg !important;
}

.sidebar__nav {
    margin-top: 38px;
}

.sidebar-nav-group {
    display: grid;
}

.sidebar-nav-parent {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        32px;
    align-items: center;
    gap: 3px;
}

.sidebar-nav-parent__link {
    min-width: 0;
}

.sidebar-nav-parent__link strong {
    overflow: hidden;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-nav-toggle {
    display: grid;
    width: 32px;
    height: 34px;
    place-items: center;
    border: 0;
    border-radius: calc(var(--radius) * .42);
    padding: 0;
    color: #85817c;
    background: transparent;
    cursor: pointer;
}

.sidebar-nav-toggle:hover {
    color: #fff;
    background: rgba(255,255,255,.06);
}

.sidebar-nav-toggle span {
    display: block;
    line-height: 1;
    transition: transform .16s ease;
}

.sidebar-nav-group.is-open
.sidebar-nav-toggle span {
    transform: rotate(180deg);
}

.sidebar-nav-group .sidebar-submenu {
    display: none;
}

.sidebar-nav-group.is-open
.sidebar-submenu {
    display: grid;
}

.sidebar-submenu {
    gap: 1px;
    margin:
        3px
        0
        5px
        30px;
    border-left:
        1px solid
        rgba(255,255,255,.11);
    padding-left: 8px;
}

.sidebar-submenu a {
    min-height: 30px !important;
    border-radius:
        calc(var(--radius) * .38) !important;
    padding: 5px 9px !important;
    font-size: .72rem !important;
    line-height: 1.25;
}

.sidebar-submenu a.is-active {
    background:
        color-mix(
            in srgb,
            var(--accent) 78%,
            transparent
        );
}


/* =========================================================
   Topbar: notificações + aparência
   ========================================================= */

/*
 * Apenas Notificações recebe o margin-left:auto.
 * Aparência fica imediatamente ao lado.
 */
.topbar-notifications {
    position: relative !important;
    flex: 0 0 auto;
    margin-left: auto !important;
    margin-right: 8px !important;
}

.appearance {
    flex: 0 0 auto;
    margin-left: 0 !important;
}

.topbar-notifications > summary {
    position: relative !important;
    display: grid !important;
    width: 38px !important;
    height: 38px !important;
    place-items: center !important;
    margin: 0 !important;
    border: 1px solid var(--line) !important;
    border-radius: 50% !important;
    padding: 0 !important;
    color: var(--ink) !important;
    background: var(--surface) !important;
    cursor: pointer;
    list-style: none;
}

.topbar-notifications > summary::-webkit-details-marker {
    display: none;
}


/*
 * Sino minimalista feito somente com CSS.
 * Remove qualquer ícone/imagem anterior.
 */
.notification-bell {
    position: relative !important;
    display: block !important;
    width: 17px !important;
    height: 18px !important;
    min-width: 17px !important;
    min-height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    background-image: none !important;
    box-shadow: none !important;
    transform: none !important;
}

.notification-bell::before {
    position: absolute;
    top: 2px;
    left: 3px;
    width: 11px;
    height: 11px;
    border: 1.5px solid currentColor;
    border-radius: 7px 7px 4px 4px;
    content: '';
}

.notification-bell::after {
    position: absolute;
    bottom: 1px;
    left: 6px;
    width: 5px;
    height: 2px;
    border-radius: 99px;
    background: currentColor;
    content: '';
}

.notification-count {
    position: absolute !important;
    top: -5px !important;
    right: -5px !important;
    display: grid !important;
    min-width: 17px !important;
    height: 17px !important;
    place-items: center;
    border: 2px solid var(--canvas);
    border-radius: 99px;
    padding: 0 3px !important;
    color: #fff !important;
    background: var(--danger) !important;
    font-size: .55rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

.notification-panel {
    position: absolute !important;
    top: 47px !important;
    right: 0 !important;
    left: auto !important;
    z-index: 120 !important;
    width: min(
        390px,
        calc(100vw - 32px)
    ) !important;
}


/* Gestão ganha destaque uniforme na grade */
.management-widget-grid
.finance-shortcut strong {
    font-size: 1rem;
}

@media (max-width: 840px) {
    .sidebar > .brand img {
        width: 198px !important;
    }
}

@media (max-width: 560px) {
    .topbar-notifications {
        margin-right: 6px !important;
    }

    .notification-panel {
        position: fixed !important;
        top: 76px !important;
        right: 14px !important;
        left: 14px !important;
        width: auto !important;
        max-height: calc(100vh - 95px);
        overflow-y: auto;
    }
}

/* =========================================================
   Equipe de freelancers dentro do evento
   ========================================================= */

.event-team-panel {
    margin-bottom: 22px;
}

.event-team-layout {
    display: grid;
    grid-template-columns:
        minmax(280px, .75fr)
        minmax(420px, 1.25fr);
    gap: 22px;
    align-items: start;
}

.event-team-assign {
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 18px;
    background:
        color-mix(
            in srgb,
            var(--surface) 97%,
            var(--accent-soft)
        );
}

.event-team-assign h3 {
    margin-top: 2px;
    font-family: var(--display);
    font-size: 1.2rem;
    font-weight: 500;
}

.event-team-list {
    display: grid;
    gap: 10px;
}

.event-team-card {
    display: grid;
    gap: 13px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 15px;
    background: var(--surface);
}

.event-team-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.event-team-person {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.event-team-person > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.event-team-person strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-team-person small {
    color: var(--muted);
    font-size: .7rem;
}

.event-team-notes {
    margin: 0;
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.5;
}

.event-team-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.event-team-actions .inline-editor {
    flex: 1;
    min-width: 180px;
}

@media (max-width: 1000px) {
    .event-team-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .event-team-card__head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   Tabela global de valores de freelancers
   ========================================================= */

.freelancer-rate-panel {
    margin: 22px 0;
}

.freelancer-rate-list {
    display: grid;
    gap: 10px;
}

.freelancer-rate-card {
    display: grid;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 15px;
    background: var(--surface);
}

.freelancer-rate-card__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.freelancer-rate-card__main > div:first-child {
    display: grid;
    gap: 4px;
}

.freelancer-rate-card__main h3 {
    margin: 0;
    font-family: var(--display);
    font-size: 1.08rem;
    font-weight: 500;
}

.freelancer-rate-card__main small {
    color: var(--muted);
    font-size: .7rem;
}

.freelancer-rate-value {
    display: grid;
    justify-items: end;
    gap: 5px;
}

.freelancer-rate-value > strong {
    color: var(--accent);
    font-family: var(--display);
    font-size: 1.3rem;
    font-weight: 500;
}


/* =========================================================
   Financeiro da equipe dentro do evento
   ========================================================= */

.event-team-financial-summary {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 18px 0;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    overflow: hidden;
    background: var(--line);
}

.event-team-financial-summary > div {
    display: grid;
    gap: 5px;
    padding: 14px 16px;
    background: var(--surface);
}

.event-team-financial-summary span {
    color: var(--muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.event-team-financial-summary strong {
    font-family: var(--display);
    font-size: 1.25rem;
    font-weight: 500;
}

.freelancer-rate-preview {
    display: grid;
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .5);
    padding: 13px 14px;
    background: var(--accent-soft);
}

.freelancer-rate-preview > span {
    color: var(--accent);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .09em;
}

.freelancer-rate-preview > strong {
    font-family: var(--display);
    font-size: 1.3rem;
    font-weight: 500;
}

.freelancer-rate-preview > small {
    color: var(--muted);
    font-size: .68rem;
}

@media (max-width: 700px) {
    .freelancer-rate-card__main {
        align-items: flex-start;
        flex-direction: column;
    }

    .freelancer-rate-value {
        justify-items: start;
    }

    .event-team-financial-summary {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   FREELANCERS V3
   ========================================================= */

.fm-calendar-panel {
    margin-bottom: 24px;
}

.fm-calendar-heading {
    align-items: center;
}

.fm-calendar-nav {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fm-calendar-nav strong {
    min-width: 145px;
    text-align: center;
    font-family: var(--display);
    font-size: .95rem;
    text-transform: capitalize;
}

.fm-icon-button {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    cursor: pointer;
    font-size: 1.25rem;
}

.fm-calendar-weekdays,
.fm-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.fm-calendar-weekdays {
    border: 1px solid var(--line);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    overflow: hidden;
}

.fm-calendar-weekdays span {
    padding: 8px;
    text-align: center;
    color: var(--muted);
    font-size: .59rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.fm-calendar-grid {
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.fm-calendar-day {
    min-width: 0;
    min-height: 125px;
    padding: 8px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}

.fm-calendar-day.is-empty {
    background: rgba(0, 0, 0, .015);
}

.fm-calendar-day__number {
    display: block;
    margin-bottom: 7px;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
}

.fm-calendar-event {
    display: grid;
    gap: 4px;
    margin-bottom: 6px;
    padding: 7px;
    border-radius: 7px;
    background: var(--accent-soft);
}

.fm-calendar-event > a {
    overflow: hidden;
    color: var(--accent-strong);
    font-size: .69rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
}

.fm-calendar-event > span {
    overflow: hidden;
    color: var(--muted);
    font-size: .59rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-calendar-event > span.is-pending {
    font-style: italic;
}

.fm-calendar-event > button {
    width: fit-content;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    font-size: .58rem;
    font-weight: 900;
}

.fm-management-grid {
    display: grid;
    grid-template-columns: minmax(250px, 1fr) minmax(0, 2fr);
    gap: 20px;
    align-items: start;
}

.fm-rate-column {
    min-width: 0;
}

.fm-rate-list {
    display: grid;
    gap: 8px;
}

.fm-rate-card {
    display: grid;
    gap: 3px;
    width: 100%;
    padding: 13px;
    text-align: left;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface);
    cursor: pointer;
    transition:
        transform .15s ease,
        border-color .15s ease;
}

.fm-rate-card:hover {
    transform: translateY(-1px);
    border-color: var(--accent);
}

.fm-rate-card__role {
    color: var(--muted);
    font-size: .59rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.fm-rate-card strong {
    margin: 2px 0;
    font-family: var(--display);
    font-size: 1.2rem;
    font-weight: 500;
}

.fm-rate-card > span:not(.fm-rate-card__role) {
    color: var(--muted);
    font-size: .65rem;
}

.fm-rate-card em {
    width: fit-content;
    margin-top: 4px;
    color: var(--muted);
    font-size: .57rem;
    font-style: normal;
    font-weight: 800;
}

.fm-rate-card em.is-active {
    color: var(--accent);
}

.fm-professionals-column {
    min-width: 0;
}

.fm-professional-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.fm-professional-card {
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    text-align: left;
    cursor: pointer;
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.fm-professional-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .07);
}

.fm-professional-photo {
    display: grid;
    place-items: center;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--accent-soft);
}

.fm-professional-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fm-professional-photo > span {
    font-family: var(--display);
    font-size: 3.4rem;
    color: var(--accent);
}

.fm-professional-card__body {
    display: grid;
    gap: 10px;
    padding: 14px;
}

.fm-professional-card__body > div:first-child {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.fm-professional-card__body h3 {
    margin: 0;
    font-family: var(--display);
    font-size: 1.08rem;
    font-weight: 500;
}

.fm-professional-card__body small {
    color: var(--muted);
    font-size: .64rem;
}

.fm-role-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.fm-role-chips span {
    padding: 4px 7px;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--accent-strong);
    font-size: .57rem;
    font-weight: 800;
}

.fm-role-chips span.is-empty {
    background: transparent;
    border: 1px dashed var(--line);
    color: var(--muted);
}

.fm-role-selector {
    margin: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.fm-role-selector legend {
    padding: 0 5px;
    font-size: .65rem;
    font-weight: 800;
}

.fm-role-selector > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.fm-role-selector label {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 7px;
    cursor: pointer;
}

.fm-role-selector input {
    width: auto;
}

/* DIALOGS */

.fm-dialog {
    width: min(580px, calc(100vw - 30px));
    max-height: calc(100vh - 40px);
    padding: 0;
    border: 0;
    border-radius: var(--radius-lg);
    background: transparent;
    overflow: visible;
}

.fm-dialog--small {
    width: min(440px, calc(100vw - 30px));
}

.fm-dialog--wide {
    width: min(860px, calc(100vw - 30px));
}

.fm-dialog--large {
    width: min(1100px, calc(100vw - 30px));
}

.fm-dialog::backdrop {
    background: rgba(5, 7, 18, .58);
    backdrop-filter: blur(3px);
}

.fm-dialog__shell {
    max-height: calc(100vh - 40px);
    overflow: auto;
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow-lg);
}

.fm-dialog--danger .fm-dialog__shell {
    border-color: color-mix(in srgb, var(--danger) 32%, var(--line));
}

.fm-dialog__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.fm-dialog__header h2 {
    margin: 2px 0 0;
}

.fm-dialog-close {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--muted);
    background: var(--surface);
    cursor: pointer;
    font-size: 1.25rem;
    transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.fm-dialog-close:hover { border-color: color-mix(in srgb, var(--accent) 28%, var(--line)); color: var(--ink); background: var(--surface-subtle); }
.fm-dialog-close:focus-visible { outline: none; box-shadow: var(--focus-ring); }

.fm-dialog__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
    margin-top: var(--space-5);
    border-top: 1px solid var(--line);
    padding-top: var(--space-4);
}

.event-delete-dialog__body {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--muted);
}

.event-delete-dialog__body p {
    margin: 0;
}

.event-delete-confirm {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 14px;
    border: 1px solid color-mix(in srgb, var(--danger) 32%, var(--line));
    border-radius: 9px;
    background: color-mix(in srgb, var(--danger) 6%, var(--surface));
    cursor: pointer;
}

.event-delete-confirm input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    accent-color: var(--danger);
}

.event-delete-confirm span {
    font-size: .82rem;
    font-weight: 700;
}

.fm-profile-header__identity {
    display: flex;
    align-items: center;
    gap: 13px;
}

.fm-profile-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border-radius: 10px;
    background: var(--accent-soft);
}

.fm-profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fm-profile-avatar span {
    font-family: var(--display);
    font-size: 2rem;
    color: var(--accent);
}

.fm-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--line);
}

.fm-tabs button {
    padding: 7px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font-size: .67rem;
    font-weight: 800;
}

.fm-tabs button.is-active {
    background: var(--accent-soft);
    color: var(--accent);
}

.fm-tab-panel[hidden] {
    display: none !important;
}

.fm-profile-overview dl,
.fm-rate-overview dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.fm-profile-overview dl > div,
.fm-rate-overview dl > div {
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.fm-profile-overview dt,
.fm-rate-overview dt {
    color: var(--muted);
    font-size: .57rem;
    font-weight: 900;
    text-transform: uppercase;
}

.fm-profile-overview dd,
.fm-rate-overview dd {
    margin: 4px 0 0;
    font-size: .76rem;
}

.fm-rate-overview > strong {
    display: block;
    margin-bottom: 14px;
    color: var(--accent);
    font-family: var(--display);
    font-size: 2rem;
    font-weight: 500;
}

.fm-note-box {
    margin: 12px 0;
    padding: 12px;
    border-radius: 8px;
    background: var(--accent-soft);
}

.fm-note-box > span {
    color: var(--accent);
    font-size: .57rem;
    font-weight: 900;
}

.fm-note-box p {
    margin-bottom: 0;
}

.fm-modal-list,
.fm-log-list {
    display: grid;
    gap: 10px;
}

.fm-assignment-card {
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 9px;
}

.fm-assignment-card h3 {
    margin: 2px 0;
}

.fm-assignment-edit {
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid var(--line);
}

.fm-assignment-edit summary {
    cursor: pointer;
    color: var(--accent);
    font-size: .65rem;
    font-weight: 800;
}

.fm-assignment-edit form {
    margin-top: 12px;
}

.fm-rate-preview {
    display: grid;
    gap: 4px;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--accent-soft);
}

.fm-rate-preview > span {
    color: var(--accent);
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.fm-rate-preview strong {
    font-family: var(--display);
    font-size: 1.35rem;
    font-weight: 500;
}

.fm-rate-preview small {
    color: var(--muted);
    font-size: .65rem;
}

.fm-log-row {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr);
    gap: 9px;
    padding: 10px 0;
    border-bottom: 1px solid var(--line);
}

.fm-log-row > div {
    display: grid;
    gap: 3px;
}

.fm-log-row small {
    color: var(--muted);
    font-size: .62rem;
}

.fm-log-row details {
    margin-top: 5px;
}

.fm-log-row summary {
    color: var(--accent);
    cursor: pointer;
    font-size: .62rem;
}

.fm-log-row dl {
    display: grid;
    gap: 5px;
    margin: 8px 0 0;
}

.fm-log-row dl > div {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 8px;
}

.fm-log-row dt,
.fm-log-row dd {
    margin: 0;
    font-size: .65rem;
}

.fm-log-row dd {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.fm-log-row pre {
    overflow: auto;
    padding: 8px;
    border-radius: 6px;
    background: var(--accent-soft);
    font-size: .62rem;
}

@media (max-width: 950px) {
    .fm-management-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .fm-calendar-weekdays {
        display: none;
    }

    .fm-calendar-grid {
        grid-template-columns: 1fr;
        border: 0;
        gap: 7px;
    }

    .fm-calendar-day {
        min-height: auto;
        border: 1px solid var(--line);
        border-radius: 8px;
    }

    .fm-calendar-day.is-empty {
        display: none;
    }

    .fm-professional-grid {
        grid-template-columns: 1fr;
    }

    .fm-role-selector > div,
    .fm-profile-overview dl,
    .fm-rate-overview dl {
        grid-template-columns: 1fr;
    }

    .fm-tabs {
        overflow-x: auto;
    }

    .fm-dialog__footer {
        flex-direction: column-reverse;
    }

    .fm-dialog__footer .button {
        width: 100%;
    }
}

/* =========================================================
   FREELANCERS V4 — PERFIL / CARDS
   ========================================================= */

.fm-professional-card {
    display: flex !important;
    align-items: center;
    gap: 16px;
    min-height: 132px;
    padding: 17px !important;
    overflow: visible !important;
}

.fm-professional-photo {
    display: grid !important;
    place-items: center;
    flex: 0 0 92px;
    width: 92px !important;
    height: 92px !important;
    aspect-ratio: 1 !important;
    overflow: hidden;
    border-radius: 50% !important;
    background: var(--accent-soft);
}

.fm-professional-photo img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.fm-professional-photo > span {
    font-size: 2rem !important;
}

.fm-professional-card__body {
    flex: 1;
    min-width: 0;
    padding: 0 !important;
}

.fm-professional-card__body h3 {
    font-size: 1rem;
}

.fm-professional-card__body > div:first-child {
    align-items: center;
}


/* PERFIL GRANDE */

.fm-dialog--profile {
    width: min(980px, calc(100vw - 30px));
}

.fm-profile-shell {
    position: relative;
    padding: 0 !important;
    overflow: hidden !important;
}

.fm-profile-close {
    position: absolute;
    z-index: 5;
    top: 16px;
    right: 16px;
}

.fm-profile-layout {
    display: grid;
    grid-template-columns:
        minmax(230px, .78fr)
        minmax(0, 2fr);
    min-height: 590px;
}

.fm-profile-sidebar {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 34px 24px 26px;
    border-right: 1px solid var(--line);
    background:
        color-mix(
            in srgb,
            var(--accent-soft) 36%,
            var(--surface)
        );
}

.fm-profile-sidebar__photo {
    display: grid;
    place-items: center;
    width: 132px;
    height: 132px;
    overflow: hidden;
    margin-top: 6px;
    border: 4px solid var(--surface);
    border-radius: 50%;
    background: var(--accent-soft);
    box-shadow:
        0 8px 24px rgba(0, 0, 0, .08);
}

.fm-profile-sidebar__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fm-profile-sidebar__photo > span {
    color: var(--accent);
    font-family: var(--display);
    font-size: 3rem;
}

.fm-profile-sidebar__identity {
    display: grid;
    justify-items: center;
    gap: 8px;
    width: 100%;
    margin-top: 17px;
    text-align: center;
}

.fm-profile-sidebar__identity h2 {
    margin: 0;
    font-family: var(--display);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.2;
}

.fm-profile-phone {
    margin: 0;
    color: var(--muted);
    font-size: .76rem;
}

.fm-role-chips--center {
    justify-content: center;
}

.fm-profile-actions {
    display: flex;
    justify-content: center;
    gap: 13px;
    width: 100%;
    margin-top: 23px;
}

.fm-profile-action {
    display: grid;
    justify-items: center;
    gap: 6px;
    min-width: 58px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    text-decoration: none;
}

.fm-profile-action__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    color: var(--accent);
    font-size: 1.15rem;
    transition:
        transform .15s ease,
        background .15s ease;
}

.fm-profile-action:hover
.fm-profile-action__icon {
    transform: translateY(-2px);
    background: var(--accent-soft);
}

.fm-profile-action strong {
    font-size: .58rem;
    font-weight: 800;
}

.fm-profile-sidebar__summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    margin-top: auto;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.fm-profile-sidebar__summary > div {
    display: grid;
    justify-items: center;
    gap: 2px;
}

.fm-profile-sidebar__summary > div + div {
    border-left: 1px solid var(--line);
}

.fm-profile-sidebar__summary span {
    color: var(--muted);
    font-size: .56rem;
    font-weight: 800;
    text-transform: uppercase;
}

.fm-profile-sidebar__summary strong {
    font-family: var(--display);
    font-size: 1.25rem;
    font-weight: 500;
}

.fm-profile-content {
    min-width: 0;
    padding: 30px 30px 26px;
}

.fm-profile-content__heading {
    padding-right: 40px;
    margin-bottom: 14px;
}

.fm-profile-content__heading h2 {
    margin: 2px 0 0;
    font-family: var(--display);
    font-size: 1.3rem;
    font-weight: 500;
}

.fm-profile-section {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.fm-profile-events {
    display: grid;
    gap: 7px;
}

.fm-profile-events > a {
    display: grid;
    grid-template-columns: 45px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 9px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
}

.fm-profile-events > a > span {
    display: grid;
    place-items: center;
    height: 38px;
    border-radius: 7px;
    background: var(--accent-soft);
    color: var(--accent);
    font-weight: 800;
    font-size: .68rem;
}

.fm-profile-events > a > div {
    display: grid;
    min-width: 0;
}

.fm-profile-events small {
    color: var(--muted);
}


/* Editor circular dentro do perfil */
.fm-freelancer-edit-form
.avatar-editor {
    margin-top: 4px;
}

.fm-freelancer-edit-form
.avatar-editor__stage {
    width: min(100%, 280px);
}


@media (max-width: 760px) {
    .fm-professional-card {
        align-items: flex-start;
    }

    .fm-professional-photo {
        flex-basis: 76px;
        width: 76px !important;
        height: 76px !important;
    }

    .fm-profile-layout {
        grid-template-columns: 1fr;
    }

    .fm-profile-sidebar {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .fm-profile-sidebar__photo {
        width: 110px;
        height: 110px;
    }

    .fm-profile-sidebar__summary {
        margin-top: 22px;
    }

    .fm-profile-content {
        padding: 22px 18px;
    }
}

/* =========================================================
   FREELANCERS V5
   Semana + ordem de colunas
   ========================================================= */

.fm-management-grid {
    grid-template-columns:
        minmax(0, 2fr)
        minmax(250px, 1fr) !important;
}

.fm-professionals-column {
    grid-column: 1;
    grid-row: 1;
}

.fm-rate-column {
    grid-column: 2;
    grid-row: 1;
}


/* AGENDA SEMANAL */

.fm-week-grid {
    display: grid;
    grid-template-columns:
        repeat(7, minmax(0, 1fr));
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.fm-week-day {
    min-width: 0;
    min-height: 160px;
    padding: 10px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}

.fm-week-day.is-today {
    background:
        color-mix(
            in srgb,
            var(--accent-soft) 55%,
            var(--surface)
        );
}

.fm-week-day > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--line);
}

.fm-week-day > header span {
    color: var(--muted);
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .06em;
}

.fm-week-day > header strong {
    font-family: var(--display);
    font-size: 1rem;
    font-weight: 500;
}

.fm-week-day.is-today > header strong {
    display: grid;
    width: 29px;
    height: 29px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--accent);
}

.fm-week-empty {
    margin: 16px 0 0;
    color: var(--muted);
    font-size: .63rem;
    text-align: center;
}

.fm-week-event {
    display: grid;
    gap: 5px;
    margin-bottom: 8px;
    padding: 8px;
    border-radius: 8px;
    background: var(--accent-soft);
}

.fm-week-event > a {
    color: var(--accent-strong);
    font-size: .68rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
}

.fm-week-event > small {
    overflow: hidden;
    color: var(--muted);
    font-size: .57rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-week-people {
    display: grid;
    gap: 4px;
    padding-top: 4px;
    border-top:
        1px solid
        color-mix(
            in srgb,
            var(--accent) 15%,
            transparent
        );
}

.fm-week-people > span {
    display: grid;
}

.fm-week-people strong {
    overflow: hidden;
    font-size: .61rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-week-people small {
    color: var(--muted);
    font-size: .54rem;
}

.fm-week-pending {
    margin: 0;
    color: var(--muted);
    font-size: .58rem;
    font-style: italic;
}

.fm-week-designate {
    width: fit-content;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    font-size: .57rem;
    font-weight: 900;
}

.fm-calendar-footer {
    display: flex;
    justify-content: flex-end;
    padding-top: 12px;
}


/* GERENCIAMENTO DE FUNCOES */

.fm-role-manager {
    display: grid;
    grid-template-columns:
        minmax(250px, .8fr)
        minmax(0, 1.2fr);
    gap: 18px;
}

.fm-role-manager__list {
    display: grid;
    align-content: start;
    gap: 8px;
}

.fm-role-manager__item {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
}

.fm-role-manager__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.fm-role-manager__summary > div {
    display: grid;
    gap: 2px;
}

.fm-role-manager__summary small {
    color: var(--muted);
    font-size: .62rem;
}

.fm-role-manager__item details {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid var(--line);
}

.fm-role-manager__item summary {
    color: var(--accent);
    cursor: pointer;
    font-size: .64rem;
    font-weight: 800;
}

.fm-role-manager__item .form-grid {
    margin-top: 12px;
}


@media (max-width: 1050px) {
    .fm-week-grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .fm-management-grid {
        grid-template-columns: 1fr !important;
    }

    .fm-professionals-column,
    .fm-rate-column {
        grid-column: 1;
        grid-row: auto;
    }

    .fm-professionals-column {
        order: 1;
    }

    .fm-rate-column {
        order: 2;
    }

    .fm-week-grid {
        grid-template-columns: 1fr;
        gap: 7px;
        border: 0;
    }

    .fm-week-day {
        min-height: auto;
        border: 1px solid var(--line);
        border-radius: 8px;
    }

    .fm-role-manager {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   FREELANCERS V6
   Widget Profissionais alinhado à Tabela padrão
   ========================================================= */

/*
 * O bloco inteiro de profissionais passa a ter
 * a mesma presença visual da coluna de valores.
 */
.fm-professionals-column {
    align-self: start;
    padding: 30px 32px 32px;
    border-radius: 16px;
    background: var(--surface);
    box-shadow:
        0 12px 32px rgba(28, 34, 44, .06);
}

/*
 * Cabeçalho com a mesma composição da Tabela padrão.
 */
.fm-professionals-column > .section-heading {
    align-items: flex-start;
    margin-bottom: 20px;
}

.fm-professionals-column > .section-heading h2 {
    margin: 0;
    font-family: var(--display);
    font-size: 1.55rem;
    font-weight: 500;
    line-height: 1.08;
}

.fm-professionals-column > .section-heading p:not(.eyebrow) {
    max-width: 560px;
    margin-top: 4px;
}

.fm-professionals-column > .section-heading .count-badge {
    flex: 0 0 auto;
    margin-left: auto;
}


/*
 * Dois profissionais por linha continuam,
 * mas agora dentro do mesmo widget.
 */
.fm-professional-grid {
    gap: 14px !important;
}


/*
 * Card passa a seguir a linguagem
 * dos cards internos da Tabela padrão.
 */
.fm-professional-card {
    position: relative;
    display: grid !important;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 16px;
    align-items: center;

    min-height: 126px;
    padding: 18px !important;

    border: 1px solid var(--line) !important;
    border-radius: 11px !important;

    background: var(--surface) !important;

    box-shadow: none !important;

    text-align: left;

    transition:
        border-color .16s ease,
        background .16s ease,
        transform .16s ease;
}

.fm-professional-card:hover {
    transform: translateY(-1px);

    border-color:
        color-mix(
            in srgb,
            var(--accent) 28%,
            var(--line)
        ) !important;

    background:
        color-mix(
            in srgb,
            var(--accent-soft) 14%,
            var(--surface)
        ) !important;
}


/*
 * Foto circular mais proporcional ao novo card.
 */
.fm-professional-photo {
    display: grid !important;
    place-items: center;

    width: 82px !important;
    height: 82px !important;

    min-width: 82px;

    overflow: hidden;

    border-radius: 50% !important;

    background: var(--accent-soft);
}

.fm-professional-photo img {
    display: block;

    width: 100%;
    height: 100%;

    border-radius: 50%;

    object-fit: cover;
}

.fm-professional-photo > span {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;

    color: var(--accent);

    font-family: var(--display);
    font-size: 2rem;
}


/*
 * Corpo do profissional.
 */
.fm-professional-card__body {
    display: grid;
    gap: 7px;

    min-width: 0;

    padding: 0 !important;
}

.fm-professional-card__body > div:first-child {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.fm-professional-card__body h3 {
    min-width: 0;
    margin: 0;

    font-family: var(--display);
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.22;
}


/*
 * Status fica discreto, parecido com a informação
 * "Ativo" da Tabela padrão.
 */
.fm-professional-card__body .status {
    flex: 0 0 auto;
    padding: 4px 8px;

    font-size: .52rem;
}


/*
 * Chips mais compactos para não competir com o nome.
 */
.fm-professional-card .fm-role-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.fm-professional-card .fm-role-chips > span {
    padding: 4px 7px;

    border-radius: 999px;

    font-size: .52rem;
    line-height: 1;
}


/*
 * Telefone e quantidade de designações
 * viram informações secundárias.
 */
.fm-professional-contact,
.fm-professional-card__body > small {
    color: var(--muted);
    font-size: .58rem;
}

.fm-professional-contact {
    margin-bottom: -3px;
}


/*
 * Profissional sem função.
 */
.fm-professional-card .fm-role-chips .is-empty {
    border: 1px dashed var(--line);

    background: transparent;

    color: var(--muted);
}


/*
 * As duas colunas ficam alinhadas no topo
 * e com a mesma presença de widget.
 */
.fm-management-grid {
    align-items: start;
}

.fm-rate-column {
    align-self: start;
}


/* Tablet */
@media (max-width: 1120px) {
    .fm-professional-grid {
        grid-template-columns: 1fr !important;
    }
}


/* Mobile */
@media (max-width: 760px) {
    .fm-professionals-column {
        padding: 22px 18px;
        border-radius: 13px;
    }

    .fm-professional-card {
        grid-template-columns: 70px minmax(0, 1fr);
        min-height: 108px;
        padding: 14px !important;
    }

    .fm-professional-photo {
        width: 70px !important;
        height: 70px !important;
        min-width: 70px;
    }

    .fm-professional-card__body > div:first-child {
        display: grid;
        justify-items: start;
    }
}


/* =========================================================
   AUTENTIQUE IMPORT V1
   ========================================================= */

.autentique-entry {
    margin-bottom: 22px;
}

.autentique-documents {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

.autentique-card {
    display: grid;
    gap: 18px;
}

.autentique-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.autentique-card__head h2 {
    margin: 2px 0 5px;
    font-size: 1.15rem;
}

.autentique-meta {
    display: grid;
    grid-template-columns:
        minmax(0, 1.5fr)
        repeat(3, minmax(120px, .8fr));
    gap: 10px;
}

.autentique-meta > div {
    display: grid;
    gap: 3px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
}

.autentique-meta span,
.autentique-meta small {
    color: var(--muted);
    font-size: .68rem;
}

.autentique-import-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.autentique-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
}

.autentique-actions form {
    margin: 0;
}

.autentique-dialog {
    width: min(760px, calc(100vw - 32px));
    max-height: 88vh;
    overflow: auto;
    padding: 26px;
    border: 0;
    border-radius: 16px;
    background: var(--surface);
}

.autentique-dialog::backdrop {
    background: rgba(4, 7, 20, .56);
    backdrop-filter: blur(3px);
}

.autentique-dialog__actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}

@media (max-width: 900px) {
    .autentique-meta {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 680px) {
    .autentique-card__head,
    .autentique-import-form {
        display: grid;
        grid-template-columns: 1fr;
    }

    .autentique-meta {
        grid-template-columns: 1fr;
    }
}


/* AUTENTIQUE WORKSPACE V2 */

.ai-workspace {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(270px, 1fr);
    gap: 22px;
    align-items: start;
}

.ai-workspace__main,
.ai-workspace__side {
    min-width: 0;
}

.ai-workspace__heading {
    align-items: flex-start;
}

.ai-priority-list {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.ai-priority-item {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-height: 76px;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 13px 14px;
    background: var(--surface);
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        border-color .16s ease;
}

.ai-priority-item:hover {
    transform: translateY(-1px);
    border-color: color-mix(
        in srgb,
        var(--accent) 24%,
        var(--line)
    );
    box-shadow: 0 10px 24px rgba(25, 31, 38, .06);
}

.ai-priority-item__icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    background: var(--accent-soft);
    color: var(--accent);
    font-family: var(--display);
    font-size: 1.05rem;
    font-weight: 700;
}

.ai-priority-item__body {
    min-width: 0;
}

.ai-priority-item__title {
    display: flex;
    gap: 10px;
    align-items: center;
    min-width: 0;
}

.ai-priority-item__title strong {
    overflow: hidden;
    min-width: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-priority-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 13px;
    margin-top: 4px;
    color: var(--muted);
    font-size: .82rem;
}

.ai-priority-item .button {
    width: auto;
    min-width: 92px;
    padding-inline: 16px;
}

.ai-empty-state {
    min-height: 190px;
}

.ai-recent-list {
    display: grid;
    margin-top: 12px;
}

.ai-recent-item {
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
}

.ai-recent-item:first-child {
    padding-top: 2px;
}

.ai-recent-item > div {
    display: grid;
    gap: 3px;
}

.ai-recent-item strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: .91rem;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.ai-recent-item small {
    color: var(--muted);
}

.ai-complete-link {
    display: inline-flex;
    margin-top: 18px;
}

.ai-full-return {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 18px;
}

.ai-review-dialog {
    width: min(1180px, calc(100vw - 34px));
    height: min(900px, 90vh);
    max-width: none;
    max-height: none;
    overflow: hidden;
    border: 0;
    border-radius: 20px;
    padding: 0;
    background: var(--surface);
    box-shadow: 0 30px 90px rgba(5, 14, 25, .28);
}

.ai-review-dialog::backdrop {
    background: rgba(5, 14, 25, .58);
    backdrop-filter: blur(5px);
}

.ai-review-dialog__shell {
    display: grid;
    grid-template-rows: auto 1fr;
    width: 100%;
    height: 100%;
}

.ai-review-dialog__header {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 74px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--line);
    padding: 14px 20px;
    background: var(--surface);
}

.ai-review-dialog__header > div {
    display: grid;
    gap: 1px;
    min-width: 0;
}

.ai-review-dialog__header strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-review-dialog__close {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    color: var(--ink);
    cursor: pointer;
    font-size: 1.45rem;
    line-height: 1;
}

.ai-review-dialog__loading {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 0;
    transform: translate(-50%, -50%);
    color: var(--muted);
}

.ai-review-dialog iframe {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--canvas);
}

.ai-modal-document {
    min-height: 100vh;
}

.ai-modal-main {
    display: grid;
    gap: 18px;
    width: 100%;
    max-width: none;
    padding: 22px;
}

.ai-modal-main > .hero-row {
    margin-bottom: 0;
}

.ai-modal-main .panel {
    margin: 0;
}

@media (max-width: 980px) {
    .ai-workspace {
        grid-template-columns: 1fr;
    }

    .ai-workspace__side {
        order: 2;
    }
}

@media (max-width: 680px) {
    .ai-priority-item {
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .ai-priority-item .button {
        grid-column: 1 / -1;
        width: 100%;
    }

    .ai-priority-item__title {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .ai-review-dialog {
        width: calc(100vw - 14px);
        height: calc(100vh - 14px);
        border-radius: 15px;
    }

    .ai-modal-main {
        padding: 14px;
    }
}

/* AUTENTIQUE EVENT PLACE LIVE SEARCH V1 */

.event-place-editor {
    display: grid;
    gap: 13px;
}

.event-place-search-action {
    display: flex;
    align-items: end;
}

.event-place-search-action .button {
    width: 100%;
    min-height: 48px;
}

.event-place-search-status {
    border-radius: 10px;
    padding: 9px 12px;
    font-size: .84rem;
}

.event-place-search-status--info {
    background: var(--accent-soft);
    color: var(--accent-strong);
}

.event-place-search-status--success {
    background: rgba(26, 127, 82, .09);
    color: #176b48;
}

.event-place-search-status--warning {
    background: rgba(176, 109, 13, .09);
    color: #85540d;
}

.event-place-search-results {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface);
}

.event-place-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--line);
    padding: 12px 14px;
    background: transparent;
    color: var(--ink);
    text-align: left;
    cursor: pointer;
}

.event-place-result:last-child {
    border-bottom: 0;
}

.event-place-result:hover {
    background: var(--accent-soft);
}

.event-place-result > span:first-child {
    display: grid;
    gap: 3px;
}

.event-place-result small {
    color: var(--muted);
    line-height: 1.35;
}

.event-place-result__action {
    color: var(--accent);
    font-size: .84rem;
    font-weight: 700;
}

.event-place-search-empty {
    display: grid;
    gap: 8px;
    padding: 15px;
}

.event-place-search-empty p {
    margin: 0;
    color: var(--muted);
}

.event-place-search-empty .button {
    justify-self: start;
}

.event-place-linked {
    width: fit-content;
    border-radius: 999px;
    padding: 6px 10px;
    background: rgba(26, 127, 82, .09);
    color: #176b48;
    font-size: .8rem;
    font-weight: 700;
}

@media (max-width: 680px) {
    .event-place-search-action {
        align-items: stretch;
    }
}

/* CLIENT EVENT INTAKE V1 */

.client-intake-form,
.client-intake-section,
.client-intake-state,
.client-intake-admin-summary {
    display: grid;
    gap: 24px;
}

.client-intake-form {
    gap: 18px;
}

.client-intake-section .form-grid,
.client-intake-admin-summary .form-grid {
    margin: 0;
}

.client-intake-section .form-section-title,
.client-intake-admin-summary .form-section-title {
    margin-top: 4px;
}

.client-intake-section .form-section-title h3,
.client-intake-admin-summary .form-section-title h3 {
    margin: 2px 0 0;
    font-family: var(--display);
    font-size: 1.35rem;
    font-weight: 500;
}

.client-intake-time-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}

.client-intake-time-grid > label,
.client-installments-field {
    display: grid;
    gap: 7px;
}

.client-installments-field {
    width: min(280px, 100%);
}

.mp-installment-simulator {
    display: grid;
    gap: 16px;
    margin-top: 18px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .75);
    padding: 18px;
    background: color-mix(in srgb, var(--accent-soft) 17%, var(--surface));
}

.mp-installment-simulator[hidden] {
    display: none;
}

.mp-installment-simulator__heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 18px;
}

.mp-installment-simulator__heading > div,
.mp-installment-bin {
    display: grid;
    gap: 5px;
}

.mp-installment-simulator__heading > div > span,
.mp-installment-bin > span {
    font-weight: 800;
}

.mp-installment-bin {
    width: min(340px, 100%);
}

.mp-installment-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.mp-installment-option {
    display: grid;
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .55);
    padding: 13px;
    color: var(--ink);
    background: var(--surface);
    text-align: left;
    cursor: pointer;
}

.mp-installment-option:hover,
.mp-installment-option.is-selected {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent-soft) 32%, var(--surface));
}

.mp-installment-option small,
.mp-installment-disclaimer,
.mp-installment-bin small {
    color: var(--muted);
    font-size: .72rem;
}

.contract-selected-additionals {
    display: grid;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 17px;
    background: color-mix(in srgb, var(--accent-soft) 14%, var(--surface));
}

.contract-selected-additionals__heading,
.contract-selected-additionals__list article,
.contract-selected-additionals__value {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.contract-selected-additionals__heading > div,
.contract-selected-additionals__list article > div,
.contract-selected-additionals__value {
    display: grid;
    gap: 3px;
}

.contract-selected-additionals__heading span,
.contract-selected-additionals__list article > strong {
    font-weight: 800;
}

.contract-selected-additionals__heading > strong {
    display: grid;
    place-items: center;
    min-width: 34px;
    min-height: 34px;
    border-radius: 999px;
    color: var(--accent);
    background: var(--accent-soft);
}

.contract-selected-additionals__heading small,
.contract-selected-additionals__list small,
.contract-selected-additionals__value span {
    color: var(--muted);
    font-size: .72rem;
}

.contract-selected-additionals__list {
    display: grid;
    border-top: 1px solid var(--line);
}

.contract-selected-additionals__list article {
    min-width: 0;
    border-bottom: 1px solid var(--line);
    padding: 12px 0;
}

.contract-selected-additionals__list article:last-child {
    border-bottom: 0;
}

.contract-selected-additionals__value {
    justify-items: end;
    text-align: right;
}

.contract-payment-selection {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.contract-payment-selection article {
    display: grid;
    align-content: start;
    gap: 5px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 17px;
    background: var(--surface);
}

.contract-payment-selection article > span,
.contract-payment-selection article > small {
    color: var(--muted);
    font-size: .72rem;
}

.contract-payment-selection article > strong {
    font-size: 1rem;
}

@media (max-width: 760px) {
    .mp-installment-options,
    .contract-payment-selection,
    .pix-invoice-options {
        grid-template-columns: 1fr;
    }

    .mp-installment-simulator__heading,
    .contract-selected-additionals__heading,
    .contract-selected-additionals__list article {
        align-items: start;
    }
}

.client-intake-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.client-intake-summary-grid > article {
    display: grid;
    align-content: start;
    gap: 12px;
}

.compact-definition-list {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--line);
}

.compact-definition-list--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 22px;
}

.compact-definition-list > div {
    display: grid;
    gap: 3px;
    min-width: 0;
    border-bottom: 1px solid var(--line);
    padding: 11px 0;
}

.compact-definition-list span {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.compact-definition-list strong {
    overflow-wrap: anywhere;
    font-size: .94rem;
}

.client-intake-section.location-picker {
    background: var(--surface);
}

.client-intake-section .ceremony-fields {
    margin-top: 2px;
}

.generated-event-name {
    display: grid;
    align-content: center;
    gap: 5px;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    background: color-mix(in srgb, var(--surface) 88%, var(--accent) 12%);
    padding: 15px 17px;
}

.generated-event-name > span {
    color: var(--accent);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.generated-event-name > strong {
    overflow-wrap: anywhere;
    font-family: var(--display);
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 500;
    line-height: 1.15;
}

.generated-event-name > small {
    color: var(--muted);
    line-height: 1.45;
}

.event-category {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--surface) 88%, var(--accent) 12%);
    color: var(--accent);
    padding: 5px 9px;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1;
}

@media (max-width: 980px) {
    .client-intake-time-grid,
    .client-intake-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .client-intake-time-grid,
    .client-intake-summary-grid,
    .compact-definition-list--grid {
        grid-template-columns: 1fr;
    }

    .client-intake-section,
    .client-intake-state,
    .client-intake-admin-summary {
        gap: 18px;
    }

    .client-intake-form .commercial-choice-total {
        align-items: stretch;
        flex-direction: column;
    }

    .client-intake-form .commercial-choice-total .button {
        width: 100%;
    }
}
/* SYSTEM EMAIL SETTINGS — FASE 5.1 */
.system-email-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(310px, .75fr); align-items: start; gap: 22px; }
.form-grid__full { grid-column: 1 / -1; }
.system-email-settings-stack, .system-email-preview-column { display: grid; gap: 22px; }
.system-email-preview-column { position: sticky; top: 24px; }
.email-toggle-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.email-toggle-card { position: relative; display: flex; min-height: 92px; align-items: center; gap: 14px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .7); padding: 16px; background: color-mix(in srgb, var(--surface) 92%, var(--accent-soft)); cursor: pointer; }
.email-toggle-card > input[type="checkbox"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.email-toggle-card__switch { position: relative; width: 46px; height: 26px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-soft); transition: .18s ease; }
.email-toggle-card__switch::after { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--muted); content: ''; transition: .18s ease; }
.email-toggle-card > input:checked + .email-toggle-card__switch { border-color: var(--accent); background: var(--accent); }
.email-toggle-card > input:checked + .email-toggle-card__switch::after { left: 23px; background: #fff; }
.email-toggle-card strong, .email-toggle-card small { display: block; }
.email-toggle-card small { margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.email-toggle-card--compact { min-height: 74px; align-self: end; }
.email-design-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.email-design-option { position: relative; display: grid; gap: 10px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .7); padding: 12px; cursor: pointer; }
.email-design-option > input { position: absolute; opacity: 0; pointer-events: none; }
.email-design-option:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.email-design-option__sample { display: grid; height: 98px; align-content: center; gap: 8px; border-radius: 8px; padding: 16px; overflow: hidden; }
.email-design-option__sample i, .email-design-option__sample b, .email-design-option__sample em { display: block; height: 7px; border-radius: 99px; }
.email-design-option__sample i { width: 45%; }
.email-design-option__sample b { width: 80%; height: 13px; }
.email-design-option__sample em { width: 62%; }
.email-design-option--classic .email-design-option__sample { border: 1px solid #d9c9be; background: #fffaf6; }
.email-design-option--classic .email-design-option__sample i, .email-design-option--classic .email-design-option__sample em { background: #cba996; }
.email-design-option--classic .email-design-option__sample b { background: #2d201a; }
.email-design-option--editorial .email-design-option__sample { border: 1px solid #5a4438; background: #2a211d; }
.email-design-option--editorial .email-design-option__sample i, .email-design-option--editorial .email-design-option__sample em { background: #d8845f; }
.email-design-option--editorial .email-design-option__sample b { background: #fff6f0; }
.email-design-option--prism .email-design-option__sample { border: 1px solid #d7d3df; background: #fff; }
.email-design-option--prism .email-design-option__sample i, .email-design-option--prism .email-design-option__sample em { background: #a772a4; }
.email-design-option--prism .email-design-option__sample b { background: #1d1724; }
.email-appearance-fields { margin-top: 20px; }
.color-field { display: flex; align-items: center; gap: 12px; min-height: 47px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .45); padding: 6px 12px; background: var(--surface); }
.color-field input { width: 48px; min-height: 34px; border: 0; padding: 0; background: transparent; }
.color-field code { color: var(--muted); }
.system-email-preview-panel { overflow: hidden; }
.system-email-preview { border-radius: calc(var(--radius) * .8); padding: 22px; background: var(--email-preview-bg); transition: background .18s ease; }
.system-email-preview article { border: 1px solid var(--email-preview-border); border-radius: 18px; padding: 24px; color: var(--email-preview-text); background: var(--email-preview-card); transition: .18s ease; }
.system-email-preview__logo { margin-bottom: 28px; font-size: 1.05rem; font-weight: 900; letter-spacing: .05em; }
.system-email-preview__logo small { color: var(--email-preview-accent); }
.system-email-preview article > span { color: var(--email-preview-accent); font-size: .58rem; font-weight: 900; letter-spacing: .14em; }
.system-email-preview h3 { margin: 12px 0 16px; color: var(--email-preview-text); font-family: var(--display); font-size: 1.9rem; font-weight: 500; line-height: 1.02; }
.system-email-preview p { color: var(--email-preview-muted); font-size: .78rem; line-height: 1.55; }
.system-email-preview article > b { display: block; margin-top: 22px; border-radius: 8px; padding: 13px; color: #fff; background: var(--email-preview-accent); font-size: .66rem; text-align: center; }
.activation-inline-result--error { margin-top: 8px; color: var(--danger); font-size: .74rem; }
.activation-delivery--muted { color: var(--muted); }
@media (max-width: 1040px) {
    .system-email-layout { grid-template-columns: 1fr; }
    .system-email-preview-column { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .email-toggle-list, .email-design-options, .system-email-preview-column { grid-template-columns: 1fr; }
    .access-event-list, .access-event-chip { width: 100%; }
    .access-event-chip > span { flex: 1; }
}

/* VISUAL COMFORT AND EVENT STATES — FASE 5.3 */
html.text-size-normal { font-size: 16px; }
html.text-size-comfortable { font-size: 17px; }
html.text-size-large { font-size: 18px; }
body.portal { font-size: 1rem; }

body.portal small { font-size: .78rem; line-height: 1.45; }
body.portal .eyebrow { font-size: .74rem; }
body.portal .status { padding: 5px 10px; font-size: .72rem; line-height: 1.25; }
body.portal th { font-size: .72rem; }
body.portal .topbar__title span,
body.portal .sidebar__label,
body.portal .event-row time span,
body.portal .status-step span,
body.portal .contract-flow > div span,
body.portal .client-workflow__status { font-size: .68rem; }
body.portal .status-step strong,
body.portal .client-workflow__step strong { font-size: .82rem; }
body.portal .client-workflow__step small,
body.portal .workflow-pending-summary p,
body.portal .event-month-item > small { font-size: .72rem; }
body.portal .event-month-item > strong { font-size: .78rem; }
body.portal .event-month-item .status { font-size: .68rem; }

.topbar-tools { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.topbar-tools .topbar-notifications { margin: 0 !important; }
.topbar-tools .appearance { margin: 0 !important; }
.topbar-tools .appearance > summary { min-height: 40px; display: flex; align-items: center; }
.topbar-tools .appearance form { z-index: 130; }

.text-size-control { position: relative; flex: 0 0 auto; }
.text-size-control > summary { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--line); border-radius: 50%; padding: 0; color: var(--ink); background: var(--surface); font-size: .82rem; font-weight: 850; list-style: none; }
.text-size-control > summary::-webkit-details-marker { display: none; }
.text-size-control > summary:hover { border-color: var(--accent); color: var(--accent); background: color-mix(in srgb, var(--accent-soft) 35%, var(--surface)); }
.text-size-control > form { position: absolute; top: 49px; right: 0; z-index: 130; width: min(360px, calc(100vw - 28px)); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; background: var(--surface); box-shadow: var(--shadow); }
.text-size-control > form > div:first-child { display: grid; gap: 4px; margin-bottom: 16px; }
.text-size-control > form .eyebrow { margin: 0; }
.text-size-control > form > div:first-child > strong { font-family: var(--display); font-size: 1.35rem; font-weight: 500; }
.text-size-control > form > div:first-child > small { color: var(--muted); }
.text-size-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.text-size-option { display: grid; min-height: 78px; place-items: center; align-content: center; gap: 3px; border: 1px solid var(--line); border-radius: calc(var(--radius) * .55); padding: 9px 6px; color: var(--ink); background: color-mix(in srgb, var(--surface) 90%, var(--accent-soft)); }
.text-size-option:hover { border-color: var(--accent); }
.text-size-option.is-active { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 12%, transparent); }
.text-size-option > span { font-weight: 850; line-height: 1; }
.text-size-option--normal > span { font-size: 1rem; }
.text-size-option--comfortable > span { font-size: 1.25rem; }
.text-size-option--large > span { font-size: 1.5rem; }
.text-size-option > small { color: inherit; font-size: .7rem; font-weight: 750; }

.event-waiting-status { display: inline-flex; min-height: 43px; align-items: center; gap: 9px; border: 1px solid color-mix(in srgb, var(--warning) 28%, var(--line)); border-radius: calc(var(--radius) * .55); padding: 9px 14px; color: color-mix(in srgb, var(--warning) 88%, var(--ink)); background: color-mix(in srgb, var(--warning) 10%, var(--surface)); font-size: .78rem; font-weight: 800; line-height: 1.25; }
.event-waiting-status i { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 5px color-mix(in srgb, var(--warning) 13%, transparent); }
.event-waiting-status--review { border-color: color-mix(in srgb, var(--accent) 28%, var(--line)); color: var(--accent); background: color-mix(in srgb, var(--accent-soft) 62%, var(--surface)); }
.event-waiting-status--review i { background: var(--accent); box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 12%, transparent); }
.event-status-badge { min-height: 34px; align-items: center; border: 1px solid color-mix(in srgb, currentColor 16%, var(--line)); padding: 7px 12px !important; font-size: .76rem !important; }

@media (max-width: 560px) {
    .topbar-tools { gap: 6px; }
    .topbar-tools .appearance > summary { min-height: 38px; padding-right: 12px; padding-left: 12px; }
    .text-size-control > summary { width: 38px; height: 38px; }
    .text-size-control > form { position: fixed; top: 76px; right: 14px; left: 14px; width: auto; }
    .hero-actions .event-waiting-status { width: 100%; justify-content: center; }
}

/* TRANSIENT NOTIFICATIONS — FASE 5.4 */
.toast-stack { position: fixed; top: 98px; right: clamp(18px, 3vw, 44px); z-index: 300; display: grid; width: min(470px, calc(100vw - 36px)); gap: 12px; pointer-events: none; }
.toast { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) 32px; align-items: start; gap: 12px; overflow: hidden; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: calc(var(--radius) * .72); padding: 15px 13px 17px 14px; color: var(--ink); background: color-mix(in srgb, var(--surface) 96%, var(--accent-soft)); box-shadow: 0 18px 55px rgba(32, 24, 29, .18); pointer-events: auto; animation: toast-enter .24s ease both; }
.toast--success { border-left-color: var(--success); }
.toast--warning { border-left-color: var(--warning); }
.toast--info { border-left-color: var(--info); }
.toast--error { border-left-color: var(--danger); }
.toast__icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-size: .9rem; font-weight: 900; }
.toast--success .toast__icon { color: var(--success); background: color-mix(in srgb, var(--success) 13%, var(--surface)); }
.toast--warning .toast__icon { color: var(--warning); background: color-mix(in srgb, var(--warning) 13%, var(--surface)); }
.toast--info .toast__icon { color: var(--info); background: color-mix(in srgb, var(--info) 12%, var(--surface)); }
.toast--error .toast__icon { color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, var(--surface)); }
.toast__body { min-width: 0; padding-top: 1px; }
.toast__body strong { display: block; margin-bottom: 3px; font-size: .86rem; }
.toast__body p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.45; overflow-wrap: anywhere; }
.toast__body ul { display: grid; max-height: 190px; gap: 4px; margin: 4px 0 0; padding-left: 18px; overflow-y: auto; color: var(--muted); font-size: .8rem; line-height: 1.4; }
.toast__close { display: grid; width: 30px; height: 30px; place-items: center; border: 0; border-radius: 50%; padding: 0; color: var(--muted); background: transparent; font-size: 1.25rem; line-height: 1; }
.toast__close:hover { color: var(--ink); background: var(--accent-soft); }
.toast__progress { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; overflow: hidden; background: color-mix(in srgb, var(--line) 70%, transparent); }
.toast__progress::after { display: block; width: 100%; height: 100%; content: ''; background: var(--accent); transform-origin: left; animation: toast-countdown var(--toast-duration, 6000ms) linear forwards; }
.toast--success .toast__progress::after { background: var(--success); }
.toast--warning .toast__progress::after { background: var(--warning); }
.toast--info .toast__progress::after { background: var(--info); }
.toast--error .toast__progress::after { background: var(--danger); }
.toast.is-paused .toast__progress::after { animation-play-state: paused; }
.toast.is-leaving { animation: toast-leave .22s ease forwards; }

@keyframes toast-enter {
    from { opacity: 0; transform: translate3d(18px, -8px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes toast-leave {
    to { opacity: 0; transform: translate3d(18px, -5px, 0); }
}

@keyframes toast-countdown {
    to { transform: scaleX(0); }
}

@media (max-width: 560px) {
    .toast-stack { top: 82px; right: 14px; left: 14px; width: auto; }
    .toast { grid-template-columns: 34px minmax(0, 1fr) 30px; gap: 10px; padding: 13px 11px 15px 12px; }
    .toast__icon { width: 32px; height: 32px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .toast, .loading-state__spinner, .skeleton::after { animation: none; }
    .toast.is-leaving { opacity: 0; }
    .button, input, select, textarea, .choice-card, .switch span, .switch span::after { transition: none; }
}

/* CONTRACT PARTY CHOICE V1 */

.contract-data-layout {
    width: min(100%, 1240px);
    margin-inline: auto;
}

.contract-data-form {
    column-gap: 18px;
    row-gap: 18px;
}

.inline-client-actions {
    margin-top: 14px;
}

.contract-party-choice {
    display: grid;
    gap: 16px;
}

.contract-party-choice__options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.contract-party-option {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px;
    cursor: pointer;
}

.contract-party-option > input[type='radio'] {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    min-height: 20px;
    margin: 2px 0 0;
    padding: 0;
    accent-color: var(--accent);
}

.contract-party-option:has(input:checked) {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.contract-party-option > span {
    display: grid;
    gap: 4px;
}

.contract-party-option small {
    color: var(--muted);
}

@media (max-width: 720px) {
    .contract-party-choice__options {
        grid-template-columns: 1fr;
    }
}

/* EVENT SHOW ACTIONS — 2026-08-17 */
.event-show-heading {
    align-items: flex-start;
    flex-wrap: wrap;
}

.event-show-heading > div:first-child {
    min-width: 0;
}

.event-show-actions {
    display: flex;
    flex: 1 0 100%;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-end;
    width: 100%;
    max-width: 100%;
    gap: 10px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
}

.event-show-actions > .button,
.event-show-actions > .event-waiting-status {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    min-height: 47px;
    justify-content: center;
    white-space: nowrap;
}

/* ==========================================================
   SCRAPBOOK OPERATIONAL REMINDERS
   Roxo = Scrapbook
   Vermelho = urgência
   Laranja permanece exclusivo da Montagem
   ========================================================== */

.status--scrapbook {
    color: #762a72 !important;
    background: rgba(118, 42, 114, .12) !important;
    border-color: rgba(118, 42, 114, .28) !important;
}

.management-alert--scrapbook {
    box-shadow: inset 4px 0 0 #762a72;
}

.service-task-card {
    border: 1px solid var(--border, rgba(118, 42, 114, .20));
    border-left: 4px solid #762a72;
    border-radius: 14px;
    padding: 20px;
}

.service-task-reminders {
    display: grid;
    gap: 8px;
    margin: 16px 0;
}

.service-task-reminder {
    display: grid;
    grid-template-columns: minmax(90px, auto) 1fr;
    gap: 4px 14px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(118, 42, 114, .055);
}

.service-task-reminder small {
    grid-column: 2;
    opacity: .72;
}

@media (max-width: 700px) {
    .service-task-reminder {
        grid-template-columns: 1fr;
    }

    .service-task-reminder small {
        grid-column: 1;
    }
}

/* ==========================================================
   ADDITIONAL SERVICE ADDENDUM UI V2
   ========================================================== */

.addendum-service-card {
    display: grid;
    gap: 18px;
    padding: 20px;
    border: 1px solid rgba(85, 64, 54, .16);
    border-radius: 16px;
    background: #fff;
}

.addendum-service-card + .addendum-service-card {
    margin-top: 14px;
}

.addendum-service-card.is-locked {
    background: rgba(85, 64, 54, .025);
}

.addendum-service-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.addendum-service-select {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin: 0;
}

.addendum-service-select > input {
    width: auto;
    margin-top: 3px;
}

.addendum-service-select > span {
    display: grid;
    gap: 3px;
}

.addendum-service-select strong {
    font-size: 15px;
}

.addendum-service-select small,
.addendum-service-description {
    color: #806d64;
}

.addendum-service-description {
    margin: -8px 0 0 27px;
    font-size: 13px;
    line-height: 1.5;
}

.addendum-service-meta {
    flex: 0 0 auto;
}

.addendum-service-pricing {
    display: grid;
    gap: 10px;
    padding-top: 16px;
    border-top: 1px solid rgba(85, 64, 54, .10);
}

.addendum-field-title {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #5d4c44;
}

.addendum-price-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.addendum-price-option {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 70px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid rgba(85, 64, 54, .16);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition:
        border-color .16s ease,
        box-shadow .16s ease,
        background .16s ease;
}

.addendum-price-option:has(input:checked) {
    border-color: #0b65a3;
    background: rgba(11, 101, 163, .045);
    box-shadow: 0 0 0 1px rgba(11, 101, 163, .10);
}

.addendum-price-option > input {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
}

.addendum-price-option > span {
    display: grid;
    gap: 3px;
}

.addendum-price-option strong {
    font-size: 14px;
}

.addendum-price-option small {
    color: #806d64;
}

.addendum-price-option.is-disabled {
    opacity: .48;
    cursor: not-allowed;
    background: rgba(85, 64, 54, .035);
}

.addendum-custom-price {
    display: grid;
    gap: 6px;
    max-width: 280px;
    margin-top: 4px;
}

.money-input-wrap {
    display: flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(85, 64, 54, .18);
    border-radius: 10px;
    background: #fff;
}

.money-input-wrap > span {
    padding: 0 0 0 13px;
    font-size: 14px;
    font-weight: 700;
    color: #806d64;
}

.money-input-wrap input {
    border: 0 !important;
    box-shadow: none !important;
}

.addendum-existing-document {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(85, 64, 54, .055);
}

.addendum-existing-document > div:first-child {
    display: grid;
    gap: 3px;
}

.addendum-existing-document small {
    color: #806d64;
}

.contract-addenda-list {
    display: grid;
    gap: 10px;
}

.contract-addendum-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 16px;
    border: 1px solid rgba(85, 64, 54, .12);
    border-radius: 12px;
}

.contract-addendum-row > div:first-child {
    display: grid;
    gap: 5px;
}

.contract-addendum-row p,
.contract-addendum-row small {
    margin: 0;
}

.contract-addendum-row small {
    color: #806d64;
}

.contract-addendum-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
}

@media (max-width: 760px) {
    .addendum-price-grid {
        grid-template-columns: 1fr;
    }

    .addendum-service-head,
    .addendum-existing-document,
    .contract-addendum-row {
        align-items: stretch;
        flex-direction: column;
    }

    .addendum-service-meta {
        align-self: flex-start;
    }

    .addendum-custom-price {
        max-width: none;
    }
}

/* ==========================================================
   CONTRACT VIEW ALIGNMENT V2
   ========================================================== */

.contract-overview-grid {
    display: grid;
    grid-template-columns:
        minmax(300px, .82fr)
        minmax(420px, 1.3fr);
    gap: 22px;
    align-items: stretch;
}

.contract-overview-grid > .panel {
    min-width: 0;
    height: 100%;
}

.contract-overview-grid .contract-actions {
    display: grid;
    gap: 10px;
    margin-top: 22px;
}

.contract-overview-grid .contract-actions > a.button,
.contract-overview-grid .contract-actions > form,
.contract-overview-grid .contract-actions > form > button {
    width: 100%;
}

.contract-overview-grid .contract-actions > a.button {
    justify-content: center;
    text-align: center;
}

/* ---------- Aditivos ---------- */

.contract-addenda {
    margin-top: 24px;
}

.contract-addenda-list {
    display: grid;
    gap: 12px;
}

.contract-addendum-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;

    padding: 18px 20px;

    border:
        1px solid
        rgba(77, 56, 47, .13);

    border-radius: 14px;

    background:
        rgba(255, 255, 255, .58);
}

.contract-addendum-main {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    gap: 10px;
}

.contract-addendum-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.contract-addendum-heading .eyebrow {
    margin-bottom: 2px;
}

.contract-addendum-heading h3 {
    margin: 0;
    font-size: 17px;
    line-height: 1.3;
}

.contract-addendum-service {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;

    font-size: 15px;
}

.contract-addendum-service > span {
    font-weight: 700;
}

.contract-addendum-service > span::before {
    content: "·";
    margin-right: 8px;
    font-weight: 400;
    opacity: .5;
}

.contract-addendum-date {
    color: #806d64;
}

.contract-addendum-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

/*
 * Remover efeito visual da primeira versão
 * caso aquelas classes ainda existam.
 */
.contract-addendum-row {
    all: unset;
}

/* ---------- Responsivo ---------- */

@media (max-width: 900px) {
    .contract-overview-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .contract-addendum-card {
        align-items: stretch;
        flex-direction: column;
        gap: 16px;
    }

    .contract-addendum-heading {
        flex-direction: column;
        gap: 8px;
    }

    .contract-addendum-actions {
        width: 100%;
    }

    .contract-addendum-actions .button {
        flex: 1 1 0;
        justify-content: center;
    }
}


/* ==========================================================
   PRISMATIC · SCROLLBARS V1
   Windows / Chromium / Firefox moderno
   ========================================================== */

:root {
    scrollbar-width: thin;
    scrollbar-color:
        #656881
        #0b0a24;
}


/*
 * Chrome / Edge / Safari / PWAs Chromium
 */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background:
        #0b0a24;
}

::-webkit-scrollbar-thumb {
    background:
        linear-gradient(
            180deg,
            #777a98 0%,
            #575b7d 55%,
            #414665 100%
        );

    border:
        2px solid #0b0a24;

    border-radius:
        999px;
}

::-webkit-scrollbar-thumb:hover {
    background:
        linear-gradient(
            180deg,
            #8d91b1 0%,
            #696e96 55%,
            #50577d 100%
        );
}

::-webkit-scrollbar-corner {
    background:
        #0b0a24;
}


/*
 * Mantém campos e componentes internos consistentes.
 */
textarea,
select,
.portal-scroll,
.fm-dialog,
.portal-pdf-viewer__body {
    scrollbar-width: thin;
    scrollbar-color:
        #656881
        #0b0a24;
}


/* ==========================================================
   PRISMATIC · AGENDA SEMANAL MOBILE V1

   Desktop:
   mantém os 7 dias lado a lado.

   Mobile:
   transforma os dias em uma agenda vertical compacta.
   ========================================================== */

@media (max-width: 760px) {

    /*
     * Remove a faixa horizontal de 7 colunas.
     */
    .week-calendar {
        grid-template-columns: 1fr;
        gap: 8px;

        overflow-x: visible;

        border: 0;
        border-radius: 0;

        background: transparent;
    }


    /*
     * Cada dia vira uma linha independente:
     *
     * DATA | EVENTOS
     */
    .week-day,
    .week-day:last-child {
        display: grid;

        grid-template-columns:
            64px
            minmax(0, 1fr);

        min-width: 0;

        overflow: hidden;

        border:
            1px solid
            var(--line);

        border-radius:
            calc(
                var(--radius) * .55
            );

        background:
            var(--surface);
    }


    /*
     * Bloco da data.
     */
    .week-day > header {
        display: grid;

        align-content: center;
        justify-items: center;

        gap: 4px;

        margin: 0;

        border: 0;

        border-right:
            1px solid
            var(--line);

        padding:
            12px
            8px;
    }


    .week-day > header span {
        font-size: .56rem;

        line-height: 1;

        text-align: center;
    }


    .week-day > header strong {
        font-size: 1.38rem;

        line-height: 1;
    }


    /*
     * Destaque discreto para hoje.
     */
    .week-day.is-today > header {
        background:
            color-mix(
                in srgb,
                var(--accent-soft) 70%,
                var(--surface)
            );
    }


    /*
     * A correção principal:
     *
     * removemos o min-height de 145px.
     *
     * Assim cada dia possui somente
     * a altura necessária para seus eventos.
     */
    .week-day__items {
        min-height: 0;

        align-content: center;

        gap: 6px;

        padding: 8px;
    }


    /*
     * Dia sem evento fica compacto.
     */
    .week-day__empty {
        display: flex;

        min-height: 38px;

        align-items: center;

        padding:
            0
            4px;
    }


    /*
     * Cards dos eventos ligeiramente
     * mais compactos no telefone.
     */
    .calendar-item {
        gap: 3px;

        padding:
            8px
            9px;
    }


    .calendar-item strong {
        font-size: .72rem;

        line-height: 1.3;
    }


    /*
     * No celular há espaço vertical.
     * Portanto não precisamos cortar
     * o subtítulo em uma única linha.
     */
    .calendar-item span {
        overflow: visible;

        text-overflow: clip;

        white-space: normal;

        line-height: 1.3;
    }
}


/*
 * iPhones menores.
 */
@media (max-width: 420px) {

    .week-day,
    .week-day:last-child {
        grid-template-columns:
            57px
            minmax(0, 1fr);
    }


    .week-day > header {
        padding:
            11px
            6px;
    }


    .week-day > header strong {
        font-size: 1.28rem;
    }
}



/* ==========================================================
   PRISMATIC · AGENDA SEMANAL MOBILE V2
   Alinhamento superior da data e conteúdo
   ========================================================== */

@media (max-width: 760px) {

    /*
     * Data sempre no topo à esquerda.
     */
    .week-day > header {
        align-content: start;
        justify-items: start;

        padding:
            13px
            10px;

        text-align: left;
    }

    .week-day > header span {
        width: 100%;

        text-align: left;

        line-height: 1;
    }

    .week-day > header strong {
        margin-top: 3px;

        text-align: left;
    }


    /*
     * Eventos também começam pelo topo.
     *
     * Isso mantém a mesma linha visual
     * entre data e primeiro compromisso.
     */
    .week-day__items {
        align-content: start;

        padding:
            12px
            9px;
    }


    /*
     * "Livre" acompanha o mesmo alinhamento.
     */
    .week-day__empty {
        min-height: auto;

        align-items: flex-start;

        padding:
            3px
            4px;
    }
}


@media (max-width: 420px) {

    .week-day > header {
        padding:
            12px
            8px;
    }

    .week-day__items {
        padding:
            11px
            8px;
    }
}


/* ==========================================================
   PRISMATIC · PWA INSTALL UI V1
   ========================================================== */

.pwa-install {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 420;

    display: grid;
    grid-template-columns:
        46px
        minmax(190px, 1fr)
        auto
        28px;

    width:
        min(
            520px,
            calc(100vw - 48px)
        );

    align-items: center;
    gap: 12px;

    border:
        1px solid
        color-mix(
            in srgb,
            var(--accent) 25%,
            var(--line)
        );

    border-radius:
        calc(
            var(--radius) * .75
        );

    padding:
        12px
        12px
        12px
        13px;

    color:
        var(--ink);

    background:
        color-mix(
            in srgb,
            var(--surface) 96%,
            var(--accent-soft)
        );

    box-shadow:
        0
        20px
        65px
        rgba(18, 15, 30, .24);

    opacity: 0;

    transform:
        translateY(12px);

    transition:
        opacity .2s ease,
        transform .2s ease;
}


.pwa-install[hidden] {
    display: none !important;
}


.pwa-install.is-visible {
    opacity: 1;
    transform: translateY(0);
}


.pwa-install__icon {
    display: grid;

    width: 46px;
    height: 46px;

    overflow: hidden;

    place-items: center;

    border-radius: 12px;

    background: #050423;
}


.pwa-install__icon img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


.pwa-install__content {
    display: grid;
    min-width: 0;
    gap: 3px;
}


.pwa-install__content strong {
    overflow: hidden;

    font-size: .82rem;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.pwa-install__content span {
    color: var(--muted);

    font-size: .7rem;

    line-height: 1.35;
}


.pwa-install__button {
    min-height: 36px;

    border: 0;
    border-radius: 9px;

    padding:
        7px
        13px;

    color: #fff;
    background: var(--accent);

    font-size: .7rem;
    font-weight: 800;

    cursor: pointer;
}


.pwa-install__button:hover {
    background:
        var(--accent-strong);
}


.pwa-install__close {
    display: grid;

    width: 28px;
    height: 28px;

    place-items: center;

    border: 0;
    border-radius: 50%;

    padding: 0;

    color: var(--muted);
    background: transparent;

    font-size: 1.2rem;

    cursor: pointer;
}


.pwa-install__close:hover {
    color: var(--ink);
    background: var(--accent-soft);
}


/* iPhone installation instructions */

.pwa-ios-dialog {
    width:
        min(
            460px,
            calc(100vw - 28px)
        );

    border:
        1px solid
        var(--line);

    border-radius:
        calc(
            var(--radius) * .9
        );

    padding: 22px;

    color: var(--ink);
    background: var(--surface);

    box-shadow:
        0
        25px
        90px
        rgba(10, 8, 20, .32);
}


.pwa-ios-dialog::backdrop {
    background:
        rgba(10, 8, 20, .52);

    backdrop-filter:
        blur(5px);
}


.pwa-ios-dialog__head {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 18px;

    margin-bottom: 22px;
}


.pwa-ios-dialog__head h2 {
    margin-bottom: 0;
}


.pwa-ios-dialog__close {
    display: grid;

    width: 34px;
    height: 34px;

    flex: 0 0 auto;

    place-items: center;

    border:
        1px solid
        var(--line);

    border-radius: 50%;

    padding: 0;

    color: var(--muted);
    background: var(--surface);

    font-size: 1.25rem;

    cursor: pointer;
}


.pwa-ios-dialog__brand {
    display: grid;

    grid-template-columns:
        72px
        minmax(0, 1fr);

    align-items: center;

    gap: 16px;

    margin-bottom: 22px;

    border:
        1px solid
        var(--line);

    border-radius:
        calc(
            var(--radius) * .65
        );

    padding: 14px;

    background:
        color-mix(
            in srgb,
            var(--surface) 92%,
            var(--accent-soft)
        );
}


.pwa-ios-dialog__brand img {
    display: block;

    width: 72px;
    height: 72px;

    border-radius: 16px;
}


.pwa-ios-dialog__brand div {
    display: grid;
    gap: 5px;
}


.pwa-ios-dialog__brand span {
    color: var(--muted);

    font-size: .76rem;

    line-height: 1.45;
}


.pwa-ios-steps {
    display: grid;

    gap: 13px;

    margin:
        0
        0
        24px;

    padding-left: 24px;

    color: var(--muted);

    font-size: .82rem;

    line-height: 1.5;
}


.pwa-ios-steps strong {
    color: var(--ink);
}


@media (max-width: 680px) {

    .pwa-install {
        right: 14px;
        bottom:
            calc(
                14px
                + env(
                    safe-area-inset-bottom,
                    0px
                )
            );
        left: 14px;

        grid-template-columns:
            42px
            minmax(0, 1fr)
            auto
            26px;

        width: auto;

        gap: 9px;

        padding:
            10px
            9px
            10px
            10px;
    }


    .pwa-install__icon {
        width: 42px;
        height: 42px;

        border-radius: 10px;
    }


    .pwa-install__content strong {
        font-size: .76rem;
    }


    .pwa-install__content span {
        font-size: .65rem;
    }


    .pwa-install__button {
        min-height: 34px;

        padding:
            6px
            10px;

        font-size: .65rem;
    }
}


@media (max-width: 430px) {

    .pwa-install {
        grid-template-columns:
            40px
            minmax(0, 1fr)
            auto;
    }


    .pwa-install__close {
        position: absolute;

        top: -9px;
        right: -7px;

        border:
            1px solid
            var(--line);

        background:
            var(--surface);
    }


    .pwa-install__content span {
        max-width: 170px;
    }
}


/* ==========================================================
   PRISMATIC · PWA INSTALL UI V1.1
   Correção do botão fechar em telas pequenas
   ========================================================== */

@media (max-width: 430px) {

    /*
     * Mantém o X dentro do card em uma coluna própria.
     */
    .pwa-install {
        grid-template-columns:
            40px
            minmax(0, 1fr)
            auto
            26px;
    }


    .pwa-install__close {
        position: static;

        top: auto;
        right: auto;

        width: 26px;
        height: 26px;

        align-self: center;
        justify-self: center;

        border: 0;

        background: transparent;

        transform: none;
    }


    .pwa-install__close:hover {
        background: var(--accent-soft);
    }


    .pwa-install__content span {
        max-width: none;
    }
}


/* ==========================================================
   PRISMATIC · PWA PUSH CARD V1
   ========================================================== */

.pwa-push-card {
    position: fixed;
    right: 24px;
    bottom:
        calc(
            24px
            + env(
                safe-area-inset-bottom,
                0px
            )
        );
    z-index: 418;

    display: grid;
    grid-template-columns:
        44px
        minmax(190px, 1fr)
        auto
        28px;

    grid-template-areas:
        "icon content actions close";

    width:
        min(
            570px,
            calc(100vw - 48px)
        );

    align-items: center;
    gap: 12px;

    border:
        1px solid
        color-mix(
            in srgb,
            var(--accent) 25%,
            var(--line)
        );

    border-radius:
        calc(
            var(--radius) * .75
        );

    padding:
        12px;

    color:
        var(--ink);

    background:
        color-mix(
            in srgb,
            var(--surface) 96%,
            var(--accent-soft)
        );

    box-shadow:
        0 20px 65px
        rgba(18, 15, 30, .24);

    opacity: 0;

    transform:
        translateY(12px);

    transition:
        opacity .2s ease,
        transform .2s ease;
}


.pwa-push-card[hidden] {
    display: none !important;
}


.pwa-push-card.is-visible {
    opacity: 1;
    transform: translateY(0);
}


.pwa-push-card__icon {
    grid-area: icon;

    display: grid;

    width: 44px;
    height: 44px;

    overflow: hidden;

    place-items: center;

    border-radius: 11px;

    background: #050423;
}


.pwa-push-card__icon img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


.pwa-push-card__content {
    grid-area: content;

    display: grid;
    min-width: 0;
    gap: 3px;
}


.pwa-push-card__content strong {
    font-size: .8rem;
}


.pwa-push-card__content span {
    color: var(--muted);

    font-size: .69rem;
    line-height: 1.35;
}


.pwa-push-card__actions {
    grid-area: actions;

    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}


.pwa-push-card__primary,
.pwa-push-card__secondary {
    min-height: 34px;

    border-radius: 9px;

    padding:
        6px
        11px;

    font-size: .66rem;
    font-weight: 800;

    cursor: pointer;
}


.pwa-push-card__primary {
    border: 0;

    color: #fff;
    background: var(--accent);
}


.pwa-push-card__secondary {
    border:
        1px solid
        var(--line);

    color: var(--muted);
    background: transparent;
}


.pwa-push-card__primary:disabled,
.pwa-push-card__secondary:disabled {
    opacity: .55;
    cursor: wait;
}


.pwa-push-card__close {
    grid-area: close;

    display: grid;

    width: 28px;
    height: 28px;

    place-items: center;

    border: 0;
    border-radius: 50%;

    padding: 0;

    color: var(--muted);
    background: transparent;

    font-size: 1.2rem;

    cursor: pointer;
}


.pwa-push-card__close:hover {
    color: var(--ink);
    background: var(--accent-soft);
}


@media (max-width: 680px) {

    .pwa-push-card {
        right: 14px;
        left: 14px;

        bottom:
            calc(
                14px
                + env(
                    safe-area-inset-bottom,
                    0px
                )
            );

        grid-template-columns:
            40px
            minmax(0, 1fr)
            26px;

        grid-template-areas:
            "icon content close"
            ". actions .";

        width: auto;

        gap:
            8px
            10px;

        padding:
            10px;
    }


    .pwa-push-card__icon {
        width: 40px;
        height: 40px;

        border-radius: 10px;
    }


    .pwa-push-card__actions {
        justify-content: flex-start;

        padding-top: 2px;
    }


    .pwa-push-card__primary,
    .pwa-push-card__secondary {
        min-height: 32px;

        padding:
            6px
            10px;
    }


    .pwa-push-card__close {
        width: 26px;
        height: 26px;
    }
}



/* ==========================================================
   PRISMATIC · PWA PUSH CARD V2
   Refinamento visual para iPhone / mobile
   ========================================================== */

@media (max-width: 680px) {

    .pwa-push-card {
        right: 14px;
        left: 14px;

        bottom:
            calc(
                14px
                + env(
                    safe-area-inset-bottom,
                    0px
                )
            );

        grid-template-columns:
            44px
            minmax(0, 1fr)
            28px;

        grid-template-areas:
            "icon content close"
            "actions actions actions";

        width: auto;

        align-items: start;

        column-gap: 12px;
        row-gap: 13px;

        padding:
            14px;

        border-radius:
            16px;
    }


    /*
     * Ícone mais integrado ao cabeçalho.
     */
    .pwa-push-card__icon {
        width: 44px;
        height: 44px;

        align-self: start;

        border-radius: 11px;
    }


    /*
     * Hierarquia mais clara.
     */
    .pwa-push-card__content {
        align-self: center;

        gap: 4px;

        padding-right: 2px;
    }


    .pwa-push-card__content strong {
        font-size: .82rem;

        line-height: 1.25;
    }


    .pwa-push-card__content span {
        font-size: .69rem;

        line-height: 1.4;
    }


    /*
     * X no canto, mas totalmente dentro do card.
     */
    .pwa-push-card__close {
        width: 28px;
        height: 28px;

        align-self: start;
        justify-self: end;

        margin-top: -2px;

        font-size: 1.15rem;
    }


    /*
     * Área dos botões ocupa toda a largura.
     */
    .pwa-push-card__actions {
        display: grid;

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        width: 100%;

        gap: 8px;

        padding-top: 0;
    }


    /*
     * Quando só existe o botão Ativar,
     * ele ocupa a largura inteira.
     */
    .pwa-push-card__actions
    > button:only-child {
        grid-column: 1 / -1;
    }


    /*
     * Como os outros botões continuam
     * no DOM com hidden, garantimos que
     * o botão visível sozinho ocupe tudo.
     */
    .pwa-push-card__actions
    > [data-pwa-push-enable]:not([hidden]) {
        grid-column: 1 / -1;
    }


    .pwa-push-card__primary,
    .pwa-push-card__secondary {
        width: 100%;

        min-height: 39px;

        justify-content: center;

        border-radius: 10px;

        padding:
            8px
            12px;

        font-size: .7rem;

        line-height: 1.1;
    }


    /*
     * Botão principal mais evidente.
     */
    .pwa-push-card__primary {
        box-shadow:
            0
            5px
            14px
            color-mix(
                in srgb,
                var(--accent) 16%,
                transparent
            );
    }


    /*
     * Desativar fica secundário.
     */
    .pwa-push-card__secondary {
        border:
            1px solid
            var(--line);

        color:
            var(--muted);

        background:
            color-mix(
                in srgb,
                var(--surface) 96%,
                var(--accent-soft)
            );
    }
}


/*
 * iPhones menores.
 */
@media (max-width: 390px) {

    .pwa-push-card {
        right: 12px;
        left: 12px;

        padding:
            13px;

        column-gap: 10px;
    }


    .pwa-push-card__content strong {
        font-size: .78rem;
    }


    .pwa-push-card__content span {
        font-size: .66rem;
    }
}


/* =========================================================
   PRISMATIC · NOTIFICATION CENTER V1
   Notificações pessoais + pendências operacionais
   ========================================================= */

.notification-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.notification-panel__header h2 {
    margin: 2px 0 0;
}

.notification-read-all {
    display: flex;
    justify-content: flex-end;
    margin: 2px 0 12px;
}

.notification-read-all .text-link {
    border: 0;
    padding: 0;
    color: var(--accent);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: .72rem;
    font-weight: 800;
}

.notification-personal-list {
    display: grid;
    gap: 7px;
}

.notification-personal-form {
    margin: 0;
}

.notification-personal-item {
    display: grid;
    width: 100%;
    grid-template-columns: 9px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    padding: 11px 12px;
    color: var(--ink);
    background: var(--surface);
    text-align: left;
    cursor: pointer;
    transition:
        border-color .18s ease,
        background .18s ease,
        transform .18s ease;
}

.notification-personal-item:hover {
    border-color:
        color-mix(
            in srgb,
            var(--accent) 38%,
            var(--line)
        );

    background:
        color-mix(
            in srgb,
            var(--accent-soft) 28%,
            var(--surface)
        );
}

.notification-personal-item.is-unread {
    border-color:
        color-mix(
            in srgb,
            var(--accent) 28%,
            var(--line)
        );

    background:
        color-mix(
            in srgb,
            var(--accent-soft) 38%,
            var(--surface)
        );
}

.notification-personal-marker {
    width: 7px;
    height: 7px;
    margin-top: 7px;
    border-radius: 999px;
    background: var(--line);
}

.notification-personal-item.is-unread
.notification-personal-marker {
    background: var(--accent);

    box-shadow:
        0 0 0 4px
        color-mix(
            in srgb,
            var(--accent) 12%,
            transparent
        );
}

.notification-personal-copy {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.notification-personal-copy > b {
    overflow: hidden;
    font-size: .82rem;
    line-height: 1.25;
    text-overflow: ellipsis;
}

.notification-personal-copy > small {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.4;
}

.notification-personal-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.notification-personal-meta strong {
    color: var(--accent);
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.notification-personal-item.is-read
.notification-personal-meta strong {
    color: var(--muted);
}

.notification-personal-meta small {
    flex: 0 0 auto;
    color: var(--muted);
    font-size: .64rem;
}

.notification-operational-section {
    margin-top: 16px;
    border-top: 1px solid var(--line);
    padding-top: 15px;
}

.notification-operational-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.notification-operational-heading strong {
    display: block;
    margin-top: 2px;
    font-size: .85rem;
}

.notification-all-alerts-link {
    display: inline-flex;
    margin-top: 11px;
}

.notification-operational-dot {
    position: absolute;
    top: 2px;
    right: 1px;
    width: 9px;
    height: 9px;
    border: 2px solid var(--canvas);
    border-radius: 999px;
    background: var(--warning);
}

/*
 * Notificação pessoal lida:
 * mantém histórico, mas visualmente secundário.
 */
.notification-personal-item.is-read {
    opacity: .76;
}

/*
 * Evita que botões internos herdem estilos
 * globais excessivos de formulários.
 */
.notification-personal-form button {
    font-family: inherit;
}

/*
 * O painel pode conter notificações pessoais
 * e pendências operacionais ao mesmo tempo.
 */
.notification-panel {
    max-height: min(
        680px,
        calc(100vh - 90px)
    );
    overflow-y: auto;
}

@media (max-width: 560px) {
    .notification-panel {
        padding: 15px !important;
    }

    .notification-personal-item {
        padding: 10px 11px;
    }

    .notification-personal-copy > small {
        font-size: .69rem;
    }

    .notification-personal-meta {
        align-items: flex-start;
    }

    .notification-panel__header h2 {
        font-size: 1.05rem;
    }
}


/* ============================================================
   PRISMATIC · REAL SITE PREVIEW + MEDIA LIBRARY V1
   ============================================================ */

.site-real-preview__browser {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}

.site-real-preview__bar {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 46px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-soft);
}

.site-real-preview__bar > span {
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
    border-radius: 999px;
    background: var(--line);
}

.site-real-preview__bar > div {
    min-width: 0;
    margin-left: 8px;
    overflow: hidden;
    color: var(--muted);
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-real-preview__frame {
    display: block;
    width: 100%;
    min-height: 78vh;
    border: 0;
    background: white;
}

.site-media-field {
    display: grid;
    gap: 12px;
}

.site-media-current {
    display: grid;
    place-items: center;
    min-height: 180px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .75);
    background: var(--surface-soft);
}

.site-media-current img {
    display: block;
    width: 100%;
    max-height: 320px;
    object-fit: contain;
}

.site-media-empty {
    padding: 28px;
    color: var(--muted);
    text-align: center;
}

.site-media-path {
    overflow-wrap: anywhere;
    color: var(--muted);
}

.site-media-dialog {
    width: min(1080px, calc(100vw - 32px));
    max-width: 1080px;
    max-height: min(88vh, 900px);
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--ink);
    box-shadow: var(--shadow);
}

.site-media-dialog::backdrop {
    background: rgba(0, 0, 0, .48);
    backdrop-filter: blur(4px);
}

.site-media-dialog__shell {
    display: flex;
    flex-direction: column;
    max-height: min(88vh, 900px);
    padding: clamp(20px, 3vw, 30px);
}

.site-media-dialog__toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
    gap: 18px;
    margin-bottom: 18px;
}

.site-media-upload {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
}

.site-media-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    min-height: 200px;
    padding: 4px;
    overflow-y: auto;
}

.site-media-card {
    display: grid;
    grid-template-rows: 130px auto;
    gap: 8px;
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .7);
    background: var(--surface);
    color: var(--ink);
    cursor: pointer;
    text-align: left;
}

.site-media-card:hover,
.site-media-card:focus-visible {
    border-color: var(--accent);
    outline: none;
}

.site-media-card__image {
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: calc(var(--radius) * .45);
    background: var(--surface-soft);
}

.site-media-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.site-media-card__name {
    overflow: hidden;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.site-media-empty-search {
    padding: 32px;
    color: var(--muted);
    text-align: center;
}

@media (max-width: 900px) {
    .site-media-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .site-media-dialog__toolbar {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .site-real-preview__frame {
        min-height: 70vh;
    }

    .site-media-dialog {
        width: calc(100vw - 20px);
        max-height: 92vh;
    }

    .site-media-dialog__shell {
        max-height: 92vh;
        padding: 16px;
    }

    .site-media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-media-upload {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · MEDIA MANAGER V1
   ============================================================ */

.site-media-manager__toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .35fr);
    gap: 14px;
    margin-top: 18px;
}

.site-media-manager__upload {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
    margin-top: 18px;
}

.site-media-manager__upload small {
    grid-column: 1 / -1;
}

.site-media-manager-card {
    display: grid;
    grid-template-rows: 150px auto;
    gap: 8px;
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .7);
    background: var(--surface);
}

.site-media-manager-card__body {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.site-media-manager-card__body strong,
.site-media-manager-card__body small {
    overflow-wrap: anywhere;
}

.site-media-manager-card__body small {
    color: var(--muted);
}

.site-media-manager-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 5px;
}

.site-media-manager-card__actions form {
    margin: 0;
}

@media (max-width: 700px) {
    .site-media-manager__toolbar,
    .site-media-manager__upload {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · MEDIA BULK SELECTION V1
   ============================================================ */

.site-media-bulk {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .7);
    background: var(--surface-soft);
}

.site-media-bulk__select-all {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
}

.site-media-bulk__select-all input {
    width: auto;
}

.site-media-bulk__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
}

.site-media-bulk__actions form {
    margin: 0;
}

.site-media-manager-card {
    position: relative;
}

.site-media-manager-card.is-selected {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px
        color-mix(
            in srgb,
            var(--accent) 15%,
            transparent
        );
}

.site-media-manager-card__select {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 2px;
    cursor: pointer;
    font-size: .75rem;
}

.site-media-manager-card__select input {
    width: auto;
}

@media (max-width: 700px) {
    .site-media-bulk {
        align-items: stretch;
        flex-direction: column;
    }

    .site-media-bulk__actions {
        align-items: stretch;
        flex-direction: column;
    }
}


/* ============================================================
   PRISMATIC · MEDIA TRASH V1
   ============================================================ */

.site-media-trash-empty {
    padding: 28px;
    border: 1px dashed var(--line);
    border-radius: var(--radius);
    text-align: center;
    background: var(--surface-soft);
}

.site-media-trash-empty p {
    margin-bottom: 0;
    color: var(--muted);
}


/* ============================================================
   PRISMATIC · FORMS BUILDER V1
   ============================================================ */

.forms-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(320px, .42fr) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.forms-empty {
    padding: 28px;
    border: 1px dashed var(--line);
    border-radius: var(--radius);
    background: var(--surface-soft);
}

.forms-empty p {
    margin-bottom: 0;
    color: var(--muted);
}

.forms-list {
    display: grid;
    gap: 10px;
}

.forms-list__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .75);
    color: inherit;
    text-decoration: none;
    background: var(--surface);
}

.forms-list__item:hover {
    border-color: var(--accent);
}

.forms-list__item > div:first-child {
    display: grid;
    gap: 4px;
}

.forms-list__item small,
.forms-list__meta {
    color: var(--muted);
}

.forms-list__meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 9px;
    font-size: .82rem;
}

.form-builder-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(285px, 350px);
    gap: 20px;
    align-items: start;
}

.form-builder-sidebar {
    position: sticky;
    top: 18px;
}

.form-builder-fields {
    display: grid;
    gap: 14px;
    margin-top: 18px;
}

.form-builder-add {
    display: flex;
    justify-content: center;
    padding-top: 18px;
}

.form-builder-field {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}

.form-builder-field__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-soft);
}

.form-builder-field__header > div:first-child {
    display: flex;
    align-items: center;
    gap: 9px;
}

.form-builder-field__number {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--line);
    border-radius: 50%;
    font-size: .8rem;
}

.form-builder-field__tools {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.form-builder-field__body {
    display: grid;
    gap: 14px;
    padding: 16px;
}

.form-builder-field__two {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 14px;
}

.form-toggle-row {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
}

.form-toggle-row input {
    width: auto;
}

.form-builder-options {
    padding: 14px;
    border: 1px dashed var(--line);
    border-radius: calc(var(--radius) * .7);
    background: var(--surface-soft);
}

.form-builder-options__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.form-builder-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
    margin-top: 7px;
}

.form-builder-publish {
    display: grid;
    gap: 9px;
}

.form-builder-publish .button {
    width: 100%;
}

.form-builder-publish small,
.form-field-type-option small {
    color: var(--muted);
}

.form-version-indicator {
    padding: 8px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: .8rem;
    color: var(--muted);
    background: var(--surface);
}

.form-field-type-dialog {
    width: min(720px, calc(100vw - 28px));
    max-height: min(82vh, 760px);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: var(--shadow);
}

.form-field-type-dialog::backdrop {
    background: rgba(0, 0, 0, .42);
}

.form-field-type-dialog__shell {
    padding: 20px;
}

.form-field-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}

.form-field-type-option {
    display: grid;
    gap: 5px;
    min-height: 92px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .7);
    text-align: left;
    color: inherit;
    background: var(--surface);
    cursor: pointer;
}

.form-field-type-option:hover,
.form-field-type-option:focus-visible {
    border-color: var(--accent);
    background: var(--surface-soft);
}

@media (max-width: 980px) {
    .forms-dashboard-grid,
    .form-builder-layout {
        grid-template-columns: 1fr;
    }

    .form-builder-sidebar {
        position: static;
    }
}

@media (max-width: 700px) {
    .forms-list__item,
    .form-builder-field__header {
        align-items: stretch;
        flex-direction: column;
    }

    .form-builder-field__two,
    .form-field-type-grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · FORM IMAGE UPLOAD FIELD V1
   ============================================================ */

.form-builder-image-settings {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px dashed var(--line);
    border-radius: calc(var(--radius) * .7);
    background: var(--surface-soft);
}

.form-builder-image-settings[hidden] {
    display: none;
}

.form-builder-image-settings small {
    color: var(--muted);
}


/* ============================================================
   PRISMATIC · FORM CHOICE OTHER V1
   ============================================================ */

.form-builder-other {
    display: grid;
    gap: 10px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.form-builder-other__fields {
    display: grid;
    grid-template-columns: minmax(0, .4fr) minmax(0, 1fr);
    gap: 10px;
}

.form-builder-other__fields[hidden] {
    display: none;
}

@media (max-width: 700px) {
    .form-builder-other__fields {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · FORMS CONDITIONAL + MEDIA V2
   ============================================================ */

.form-builder-media-settings,
.form-builder-conditional {
    display: grid;
    gap: 14px;
    padding: 15px;
    border: 1px dashed var(--line);
    border-radius: calc(var(--radius) * .7);
    background: var(--surface-soft);
}

.form-builder-media-settings[hidden],
.form-builder-conditional__body[hidden] {
    display: none;
}

.form-builder-media-types {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.form-builder-media-grid {
    display: grid;
    grid-template-columns:
        minmax(120px, .45fr)
        minmax(180px, 1fr)
        minmax(180px, 1fr);
    gap: 12px;
}

.form-builder-duration {
    display: grid;
    grid-template-columns: minmax(80px, 120px) auto;
    align-items: center;
    gap: 8px;
}

.form-builder-media-settings small,
.form-builder-conditional small,
.form-condition-note,
.form-condition-no-value {
    color: var(--muted);
}

.form-builder-conditional__heading {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.form-builder-conditional__heading > div,
.form-builder-media-settings
    .form-builder-options__heading > div {
    display: grid;
    gap: 4px;
}

.form-builder-conditional__body {
    display: grid;
    gap: 12px;
}

.form-builder-conditional-logic {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.form-builder-conditional-logic label {
    display: flex;
    align-items: center;
    gap: 6px;
}

.form-builder-conditional-logic input {
    width: auto;
}

.form-condition-row {
    display: grid;
    grid-template-columns:
        minmax(180px, 1.2fr)
        minmax(150px, .8fr)
        minmax(180px, 1fr)
        auto;
    align-items: end;
    gap: 8px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
}

.form-condition-row:first-child {
    border-top: 0;
}

.form-condition-no-value {
    display: flex;
    align-items: center;
    min-height: 42px;
    font-size: .82rem;
}

.form-condition-note {
    padding: 10px 12px;
    border-radius: calc(var(--radius) * .55);
    background: var(--surface);
    font-size: .85rem;
}

@media (max-width: 900px) {
    .form-builder-media-grid,
    .form-condition-row {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · FORMS MEDIA UX + PUBLIC LINK V2.1
   ============================================================ */

.form-builder-media-heading {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.form-builder-media-heading > div {
    display: grid;
    gap: 4px;
}

.form-builder-media-group {
    display: grid;
    gap: 10px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.form-builder-media-group[hidden] {
    display: none;
}

.form-builder-media-group__title {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--muted);
}

.form-builder-conditional:not(.is-enabled)
.form-builder-conditional__heading {
    display: none;
}

.form-builder-conditional:not(.is-enabled) {
    padding-top: 11px;
    padding-bottom: 11px;
}

.form-public-link {
    display: grid;
    gap: 12px;
}

.form-public-link__description {
    margin: 0;
    font-size: .86rem;
    color: var(--muted);
}

.form-public-link__field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.form-public-link__field input {
    min-width: 0;
    font-size: .82rem;
}

.form-public-link__status {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: .82rem;
    color: var(--muted);
}

.form-public-link__status--active {
    color: var(--text);
}

@media (max-width: 700px) {
    .form-public-link__field {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · PUBLIC FORM LINK HEADER V3
   ============================================================ */

.form-public-link-inline {
    display: grid;
    gap: 5px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);
    background: var(--surface-soft);
}

.form-public-link-inline[hidden],
[data-public-link-header-action][hidden] {
    display: none !important;
}

.form-public-link-inline > span {
    font-size: .76rem;
    font-weight: 700;
    color: var(--muted);
}

.form-public-link-inline > a {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: .8rem;
    line-height: 1.4;
}

.form-public-link-inline > small {
    color: var(--muted);
}


/* ============================================================
   PRISMATIC · FORM BUILDER DESKTOP LAYOUT V3
   Sidebar ~ 1/3 da área útil
   ============================================================ */

@media (min-width: 1181px) {

    .form-builder-layout {
        grid-template-columns:
            minmax(0, 2fr)
            minmax(390px, 1fr);
        gap: 24px;
        align-items: start;
    }

    /*
     * Na lateral não queremos o grid genérico do sistema
     * tentando colocar campos lado a lado.
     */
    .form-builder-sidebar .form-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .form-builder-sidebar .form-span,
    .form-builder-sidebar .form-toggle-row,
    .form-builder-sidebar .form-public-link-inline {
        grid-column: 1 / -1;
        width: 100%;
    }

    /*
     * Mantém a lateral visível enquanto o construtor
     * comprido é percorrido.
     */
    .form-builder-sidebar {
        position: sticky;
        top: 18px;
        min-width: 0;
    }

    .form-builder-sidebar .panel {
        min-width: 0;
    }
}


/* ============================================================
   CAMPOS DA LATERAL
   ============================================================ */

.form-builder-sidebar input,
.form-builder-sidebar select,
.form-builder-sidebar textarea {
    width: 100%;
    min-width: 0;
}

.form-builder-sidebar .form-toggle-row {
    justify-content: flex-start;
}

.form-builder-sidebar .form-toggle-row input[type="checkbox"],
.form-builder-sidebar .form-toggle-row input[type="radio"] {
    width: auto;
    flex: 0 0 auto;
}


/* ============================================================
   LINK PÚBLICO
   ============================================================ */

.form-public-link-inline {
    width: 100%;
    min-width: 0;
    padding: 12px 14px;
}

.form-public-link-inline > a {
    display: block;
    width: 100%;
    min-width: 0;

    /*
     * Permite quebra saudável sem criar aquela
     * coluna estreita da captura.
     */
    overflow-wrap: anywhere;
    word-break: normal;

    font-size: .82rem;
    line-height: 1.45;
}


/* ============================================================
   PAINÉIS DA LATERAL
   ============================================================ */

.form-builder-sidebar .section-heading {
    gap: 12px;
}

.form-builder-sidebar .section-heading h2 {
    line-height: 1.15;
}

.form-builder-sidebar textarea {
    min-height: 120px;
    resize: vertical;
}


/* ============================================================
   TABLET / NOTEBOOK MENOR
   ============================================================ */

@media (min-width: 981px) and (max-width: 1180px) {

    .form-builder-layout {
        grid-template-columns:
            minmax(0, 1.65fr)
            minmax(340px, 1fr);
        gap: 20px;
    }

    .form-builder-sidebar .form-grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 980px) {

    .form-builder-layout {
        grid-template-columns: 1fr;
    }

    .form-builder-sidebar {
        position: static;
    }

    .form-builder-sidebar .form-grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · PUBLIC LINK COMPACT V3
   ============================================================ */

.form-public-link-inline {
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
}

.form-public-link-inline > span {
    margin-bottom: 1px;
    font-size: .75rem;
    font-weight: 700;
}

.form-public-link-inline > a {
    padding: 9px 11px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .55);
    background: var(--surface-soft);
    text-decoration: none;
}

.form-public-link-inline > a:hover {
    border-color: var(--accent);
}

.form-public-link-inline > small {
    margin-top: 2px;
}


/* ============================================================
   PRISMATIC · FORM BUILDER STICKY TOOLBAR V5
   ============================================================ */

.form-builder-toolbar {
    position: sticky;
    top: 78px;
    z-index: 30;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    margin-bottom: 18px;
    padding: 11px 14px;

    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .75);

    background:
        rgba(255, 255, 255, .96);

    box-shadow:
        0 7px 24px
        rgba(44, 34, 28, .07);

    backdrop-filter:
        blur(12px);
    -webkit-backdrop-filter:
        blur(12px);
}

.form-builder-toolbar__info {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.form-builder-toolbar__info strong {
    font-size: .84rem;
}

.form-builder-toolbar__info span {
    font-size: .74rem;
    color: var(--muted);
}

.form-builder-toolbar__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
}

.form-builder-toolbar__actions .button {
    min-width: 128px;
}


/* ============================================================
   SIDEBAR ABAIXO DA TOOLBAR
   ============================================================ */

@media (min-width: 981px) {

    /*
     * A sidebar continua com scroll independente,
     * porém começa abaixo da toolbar sticky.
     */
    .form-builder-sidebar {
        top: 148px;

        max-height:
            calc(
                100vh - 166px
            );

        overflow-y: auto;
        overflow-x: hidden;
    }
}


/* ============================================================
   TOOLBAR RESPONSIVA
   ============================================================ */

@media (max-width: 980px) {

    .form-builder-toolbar {
        top: 70px;
    }

    .form-builder-toolbar__info span {
        display: none;
    }
}

@media (max-width: 620px) {

    .form-builder-toolbar {
        align-items: stretch;
        flex-direction: column;
        gap: 8px;

        padding: 10px;
    }

    .form-builder-toolbar__info {
        display: none;
    }

    .form-builder-toolbar__actions {
        width: 100%;
    }

    .form-builder-toolbar__actions .button {
        flex: 1;
        min-width: 0;
    }
}


/* ============================================================
   PRISMATIC · FORM SIDEBAR SCROLL POLISH V5
   ============================================================ */

.form-builder-sidebar .form-success-message {
    min-height: 210px;
    line-height: 1.55;
    resize: vertical;
}


@media (min-width: 981px) {

    .form-builder-sidebar {
        /*
         * Altura REAL da região rolável.
         * Usar height, em vez de somente max-height,
         * deixa o comportamento mais previsível.
         */
        height: calc(100dvh - 166px);
        max-height: calc(100dvh - 166px);

        overflow-y: auto;
        overflow-x: hidden;

        /*
         * Evita transmitir a rolagem para o documento
         * quando chega ao começo/fim da lateral.
         */
        overscroll-behavior-y: contain;
        overscroll-behavior-x: none;

        scrollbar-gutter: stable;

        /*
         * Espaço interno para a barra não ficar
         * encostada nos cards.
         */
        padding-right: 10px;

        /*
         * Firefox
         */
        scrollbar-width: thin;
        scrollbar-color:
            rgba(42, 34, 30, .28)
            transparent;
    }


    /*
     * Chrome / Edge
     */

    .form-builder-sidebar::-webkit-scrollbar {
        width: 9px;
    }

    .form-builder-sidebar::-webkit-scrollbar-track {
        margin: 8px 0;

        border-radius: 999px;

        background:
            rgba(45, 35, 30, .035);
    }

    .form-builder-sidebar::-webkit-scrollbar-thumb {
        min-height: 48px;

        border: 2px solid transparent;
        border-radius: 999px;

        background:
            rgba(46, 37, 32, .24);

        background-clip:
            padding-box;
    }

    .form-builder-sidebar::-webkit-scrollbar-thumb:hover {
        background:
            rgba(46, 37, 32, .40);

        background-clip:
            padding-box;
    }

    .form-builder-sidebar::-webkit-scrollbar-thumb:active {
        background:
            rgba(46, 37, 32, .52);

        background-clip:
            padding-box;
    }


    /*
     * Último card não termina grudado no limite.
     */
    .form-builder-sidebar > :last-child {
        margin-bottom: 14px;
    }
}


/* ============================================================
   PRISMATIC · FORM SIDEBAR SCROLL POLISH V5
   ============================================================ */

.form-builder-sidebar .form-success-message {
    min-height: 210px;
    line-height: 1.55;
    resize: vertical;
}


@media (min-width: 981px) {

    .form-builder-sidebar {
        /*
         * Altura REAL da região rolável.
         * Usar height, em vez de somente max-height,
         * deixa o comportamento mais previsível.
         */
        height: calc(100dvh - 166px);
        max-height: calc(100dvh - 166px);

        overflow-y: auto;
        overflow-x: hidden;

        /*
         * Evita transmitir a rolagem para o documento
         * quando chega ao começo/fim da lateral.
         */
        overscroll-behavior-y: contain;
        overscroll-behavior-x: none;

        scrollbar-gutter: stable;

        /*
         * Espaço interno para a barra não ficar
         * encostada nos cards.
         */
        padding-right: 10px;

        /*
         * Firefox
         */
        scrollbar-width: thin;
        scrollbar-color:
            rgba(42, 34, 30, .28)
            transparent;
    }


    /*
     * Chrome / Edge
     */

    .form-builder-sidebar::-webkit-scrollbar {
        width: 9px;
    }

    .form-builder-sidebar::-webkit-scrollbar-track {
        margin: 8px 0;

        border-radius: 999px;

        background:
            rgba(45, 35, 30, .035);
    }

    .form-builder-sidebar::-webkit-scrollbar-thumb {
        min-height: 48px;

        border: 2px solid transparent;
        border-radius: 999px;

        background:
            rgba(46, 37, 32, .24);

        background-clip:
            padding-box;
    }

    .form-builder-sidebar::-webkit-scrollbar-thumb:hover {
        background:
            rgba(46, 37, 32, .40);

        background-clip:
            padding-box;
    }

    .form-builder-sidebar::-webkit-scrollbar-thumb:active {
        background:
            rgba(46, 37, 32, .52);

        background-clip:
            padding-box;
    }


    /*
     * Último card não termina grudado no limite.
     */
    .form-builder-sidebar > :last-child {
        margin-bottom: 14px;
    }
}


/* ============================================================
   PRISMATIC · FORM TOOLBAR POLISH V5
   ============================================================ */

.form-builder-toolbar {
    border-radius: 8px;

    box-shadow:
        0 5px 18px
        rgba(40, 30, 25, .055);
}

.form-builder-toolbar__actions .button {
    min-height: 40px;
}


/* ============================================================
   PRISMATIC · RESPONSES HEADER BUTTON FIX V2
   ============================================================ */

[data-form-responses-action] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}

.form-responses-count {
    display: inline-grid;
    place-items: center;

    min-width: 21px;
    height: 21px;
    padding: 0 6px;

    border: 1px solid var(--line);
    border-radius: 999px;

    font-size: .7rem;
    font-weight: 700;
    line-height: 1;

    background: var(--surface-soft);
}


/* ============================================================
   PRISMATIC · FORM RESPONSES BULK SELECTION V1
   ============================================================ */

.form-submissions-bulk-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    margin: 18px 0 12px;
    padding: 11px 13px;

    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .65);

    background: var(--surface-soft);
}

.form-submissions-select-all {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
}

.form-submissions-select-all input,
.form-submission-list__selector input {
    width: auto;
}

.form-submissions-bulk-toolbar__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.form-submissions-selected-count {
    font-size: .78rem;
    color: var(--muted);
}

.form-submission-list__item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 0;
    overflow: hidden;
}

.form-submission-list__item.is-selected {
    border-color: var(--accent);
    background: var(--surface-soft);
}

.form-submission-list__selector {
    display: grid;
    place-items: center;

    width: 48px;
    min-height: 62px;

    border-right: 1px solid var(--line);
    cursor: pointer;
}

.form-submission-list__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    min-width: 0;
    padding: 14px 16px;

    color: inherit;
    text-decoration: none;
}

.form-submission-list__link > div:first-child {
    display: grid;
    gap: 4px;
}

@media (max-width: 700px) {

    .form-submissions-bulk-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .form-submissions-bulk-toolbar__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .form-submission-list__link {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ============================================================
   PRISMATIC · STANDARD FORM FIELDS + RESPONSE PREVIEW V1
   ============================================================ */

.form-standard-fields {
    display: grid;
    gap: 12px;
    margin-top: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.form-standard-fields__heading {
    display: grid;
    gap: 3px;
}

.form-standard-fields__heading small {
    color: var(--muted);
}

.form-standard-fields__grid {
    display: grid;
    grid-template-columns:
        repeat(
            5,
            minmax(0, 1fr)
        );
    gap: 8px;
}

.form-field-types-label {
    margin-top: 18px;
    margin-bottom: 9px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted);
}


/* RESPONSE LIST */

.form-submission-preview {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 5px 18px;
    margin-top: 10px;
}

.form-submission-preview__item {
    display: grid;
    grid-template-columns:
        minmax(80px, .55fr)
        minmax(0, 1fr);
    gap: 7px;
    font-size: .75rem;
}

.form-submission-preview__item span {
    color: var(--muted);
}

.form-submission-preview__item strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}


/* RESPONSE DETAIL */

.form-response-summary__grid {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 12px;
}

.form-response-summary__item {
    display: grid;
    gap: 4px;
    padding: 13px 14px;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) * .6);
    background: var(--surface-soft);
}

.form-response-summary__item span {
    font-size: .72rem;
    color: var(--muted);
}

.form-response-summary__item strong {
    overflow-wrap: anywhere;
}


@media (max-width: 900px) {

    .form-standard-fields__grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .form-submission-preview,
    .form-response-summary__grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   PRISMATIC · FORM LIST DIRECT RESPONSE ACTION V1
   ============================================================ */

.form-list-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;

    padding: 0;
    overflow: hidden;
}

.form-list-card__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    min-width: 0;
    padding: 15px 16px;

    color: inherit;
    text-decoration: none;
}

.form-list-card__main > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.form-list-card__main strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.form-list-card__main small {
    color: var(--muted);
}

.form-list-card__actions {
    display: flex;
    align-items: center;
    gap: 7px;

    padding-right: 12px;
}

.form-list-card__actions .button {
    white-space: nowrap;
}

.form-list-card:hover {
    border-color: var(--accent);
}

@media (max-width: 760px) {

    .form-list-card {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .form-list-card__actions {
        padding:
            0
            16px
            14px;
    }

    .form-list-card__actions .button {
        flex: 1;
    }
}


/* ============================================================
   PRISMATIC · CONTRACT IMAGE CONSENT V1
   ============================================================ */

.contract-image-consent {
    display: grid;
    gap: 18px;

    margin-top: 8px;
    padding: 20px;

    border: 1px solid var(--line);
    border-radius: var(--radius);

    background: var(--surface-soft);
}

.contract-image-consent__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.contract-image-consent__heading h2 {
    margin:
        2px
        0
        5px;
}

.contract-image-consent__choices {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 12px;
}

.contract-image-consent__choice {
    display: grid;
    grid-template-columns:
        auto
        minmax(0, 1fr);
    align-items: flex-start;
    gap: 12px;

    min-height: 132px;
    padding: 16px;

    border: 1px solid var(--line);
    border-radius: 12px;

    background: var(--surface);

    cursor: pointer;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.contract-image-consent__choice:hover {
    border-color:
        color-mix(
            in srgb,
            var(--accent) 45%,
            var(--line)
        );
}

.contract-image-consent__choice.is-selected {
    border-color: var(--accent);

    box-shadow:
        0 0 0 2px
        color-mix(
            in srgb,
            var(--accent) 12%,
            transparent
        );
}

.contract-image-consent__choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.contract-image-consent__radio {
    width: 18px;
    height: 18px;

    margin-top: 2px;

    border: 1px solid var(--line-strong);
    border-radius: 50%;

    background: var(--surface);

    box-shadow:
        inset 0 0 0 4px
        var(--surface);
}

.contract-image-consent__choice.is-selected
.contract-image-consent__radio {
    background: var(--accent);
    border-color: var(--accent);
}

.contract-image-consent__choice > span:last-child {
    display: grid;
    gap: 6px;
}

.contract-image-consent__choice small {
    line-height: 1.55;
    color: var(--muted);
}

.contract-image-consent__preview {
    padding: 15px 16px;

    border-left: 3px solid var(--accent);
    border-radius: 6px;

    background: var(--surface);
}

.contract-image-consent__preview > span {
    display: block;

    margin-bottom: 6px;

    font-size: .67rem;
    font-weight: 700;
    letter-spacing: .08em;

    color: var(--muted);
}

.contract-image-consent__preview p {
    margin: 0;
    line-height: 1.65;
}

.contract-image-consent__request {
    margin: 0;
}

.contract-image-consent__request p {
    margin:
        5px
        0
        0;
}


/* CONTRACT SHOW */

.contract-image-status-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 18px;
}

.contract-image-status-panel__content {
    display: flex;
    align-items: center;
    gap: 24px;
}

.contract-image-status-panel__value {
    padding: 7px 11px;

    border: 1px solid var(--line);
    border-radius: 999px;

    font-size: .72rem;
    letter-spacing: .05em;
}


@media (max-width: 760px) {

    .contract-image-consent__choices {
        grid-template-columns: 1fr;
    }

    .contract-image-consent__heading,
    .contract-image-status-panel,
    .contract-image-status-panel__content {
        align-items: stretch;
        flex-direction: column;
    }
}


/* ============================================================
   PRISMATIC · MOBILE PWA VIEWPORT GUARD V1
   Impede overflow horizontal da página inteira.
   Componentes que precisam rolagem mantêm scroll interno.
   ============================================================ */
@media (max-width: 840px) {
    html,
    body,
    body.portal,
    .portal-shell,
    .content-shell {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
        overflow-x: clip;
    }

    .content-shell,
    .main-content,
    .main-content > * {
        min-width: 0;
        max-width: 100%;
    }

    .main-content {
        width: 100%;
        padding-right: clamp(12px, 4vw, 20px);
        padding-left: clamp(12px, 4vw, 20px);
    }

    .main-content :where(
        .panel,
        form,
        fieldset,
        label,
        .page-heading,
        .hero-row,
        .section-heading,
        .hero-actions,
        .toolbar,
        .form-grid,
        .detail-grid
    ) {
        min-width: 0;
        max-width: 100%;
    }

    .page-heading > *,
    .hero-row > *,
    .section-heading > *,
    .hero-actions > *,
    .toolbar > * {
        min-width: 0;
        max-width: 100%;
    }

    .hero-actions,
    .toolbar,
    .form-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .search-field,
    .toolbar select,
    .toolbar input,
    .toolbar-date {
        min-width: 0;
        max-width: 100%;
    }

    .main-content :where(
        input,
        select,
        textarea,
        button,
        .button,
        img,
        svg,
        video,
        canvas
    ) {
        max-width: 100%;
    }

    .main-content :where(
        p,
        strong,
        small,
        dd,
        code,
        a
    ) {
        overflow-wrap: anywhere;
    }

    .table-wrap,
    .event-month-scroll {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .table-wrap table,
    .event-month-weekdays,
    .event-month-grid {
        max-width: none;
    }

    dialog:not(.portal-pdf-viewer) {
        max-width: calc(100dvw - 24px);
        max-height: calc(100dvh - 24px);
    }

    .topbar-tools {
        min-width: 0;
        max-width: 100%;
    }
}


/* PRISMATIC · MOBILE TOPBAR COMPACT V1 */
.appearance__icon {
    display: none;
}

@media (max-width: 560px) {
    .topbar {
        gap: 6px;
        padding-right: 10px;
        padding-left: 10px;
    }

    .menu-toggle {
        flex: 0 0 auto;
        margin-right: 2px;
        padding: 6px;
    }

    .topbar__title {
        min-width: 0;
        flex: 1 1 auto;
    }

    .topbar__title > span,
    .topbar__title > strong {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .topbar-tools {
        flex: 0 0 auto;
        gap: 4px;
        margin-left: 0;
    }

    .topbar-tools .appearance > summary,
    .topbar-notifications > summary,
    .text-size-control > summary {
        width: 36px;
        min-width: 36px;
        height: 36px;
        min-height: 36px;
        padding: 0;
        justify-content: center;
    }

    .appearance__label {
        display: none;
    }

    .appearance__icon {
        display: inline;
        font-size: 1rem;
        line-height: 1;
    }

    .appearance form,
    .text-size-control > form,
    .notification-panel {
        right: 10px;
        left: 10px;
        width: auto;
        max-width: none;
    }

    .appearance form,
    .text-size-control > form {
        position: fixed;
        top: 72px;
    }
}


/* PRISMATIC · FREELANCER CALENDAR MOBILE V1 */
@media (max-width: 760px) {
    .fm-calendar-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .fm-calendar-nav {
        display: grid;
        grid-template-columns:
            34px minmax(0, 1fr) auto 34px;
        width: 100%;
        max-width: 100%;
        gap: 6px;
    }

    .fm-calendar-nav strong {
        min-width: 0;
        overflow: hidden;
        font-size: .88rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}


/* PRISMATIC · LIST SORTING + MOBILE DATA CARDS V1 */
.table-sort-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: inherit;
    text-decoration: none;
}
.table-sort-link:hover,
.table-sort-heading--active .table-sort-link {
    color: var(--accent);
}
.table-sort-indicator {
    opacity: .48;
    font-size: .78rem;
    line-height: 1;
}
.table-sort-heading--active .table-sort-indicator {
    opacity: 1;
}
@media (max-width: 760px) {
    .page-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }
    .page-heading > .button,
    .page-heading > .hero-actions,
    .hero-actions {
        width: 100%;
    }
    .hero-actions .button {
        flex: 1 1 180px;
        justify-content: center;
    }
    .toolbar,
    .toolbar--wrap {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        gap: 10px;
        align-items: stretch;
    }
    .toolbar > *,
    .toolbar .search-field,
    .toolbar .search-field input,
    .toolbar select,
    .toolbar input,
    .toolbar .button {
        width: 100%;
        min-width: 0;
    }
    .table-wrap {
        overflow: visible;
        padding-right: 0;
        padding-left: 0;
        background: transparent;
    }
    .responsive-data-table,
    .responsive-data-table tbody {
        display: block;
        width: 100%;
    }
    .responsive-data-table thead {
        display: block;
        margin-bottom: 10px;
        overflow-x: auto;
        scrollbar-width: thin;
    }
    .responsive-data-table thead tr {
        display: flex;
        width: max-content;
        min-width: 100%;
        gap: 7px;
        border: 0;
        padding: 2px 0 6px;
        background: transparent;
    }
    .responsive-data-table thead th {
        flex: 0 0 auto;
        border: 0;
        padding: 0;
    }
    .responsive-data-table thead th:last-child {
        display: none;
    }
    .responsive-data-table .table-sort-link {
        min-height: 36px;
        border: 1px solid var(--line);
        border-radius: 999px;
        padding: 7px 10px;
        background: var(--surface);
        white-space: nowrap;
    }
    .responsive-data-table tbody {
        display: grid;
        gap: 12px;
    }
    .responsive-data-table tbody tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        border: 1px solid var(--line);
        border-radius: calc(var(--radius) * .72);
        padding: 10px 14px;
        background: var(--surface);
        box-shadow: 0 8px 24px rgba(22, 18, 14, .04);
    }
    .responsive-data-table tbody td {
        display: grid;
        grid-template-columns: minmax(96px, 34%) minmax(0, 1fr);
        align-items: start;
        gap: 10px;
        border: 0;
        padding: 7px 0;
        text-align: left;
    }
    .responsive-data-table tbody td::before {
        content: attr(data-label);
        color: var(--muted);
        font-size: .66rem;
        font-weight: 850;
        letter-spacing: .08em;
        text-transform: uppercase;
    }
    .responsive-data-table tbody td.table-action {
        display: flex;
        justify-content: flex-end;
        margin-top: 4px;
        border-top: 1px solid var(--line);
        padding-top: 11px;
    }
    .responsive-data-table tbody td.table-action::before,
    .responsive-data-table tbody td.responsive-data-table__empty::before {
        display: none;
    }
    .responsive-data-table tbody td.responsive-data-table__empty {
        display: block;
        padding: 14px 2px;
    }
    .responsive-data-table tbody td > :where(strong, small, span, a) {
        min-width: 0;
    }
    .panel {
        padding-right: clamp(14px, 4vw, 18px);
        padding-left: clamp(14px, 4vw, 18px);
    }
    .payment-row > .button,
    .payment-row > form,
    .payment-row > details {
        width: 100%;
    }
    .payment-row > form .button,
    .payment-row > details > summary {
        width: 100%;
    }
}

/* PRISMATIC · MOBILE/CLOSED TOPBAR POPOVER GUARD V1 */
details[data-topbar-popover]:not([open]) > :not(summary) {
    display: none !important;
}

/* PRISMATIC · DESKTOP WAVE 2 · CORE NAVIGATION */
.core-view-nav {
    position: sticky;
    top: 82px;
    z-index: 24;
    display: flex;
    align-items: center;
    gap: 6px;
    margin: -12px 0 var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 6px;
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    box-shadow: var(--shadow-sm);
    backdrop-filter: blur(12px);
    overflow-x: auto;
    scrollbar-width: none;
}
.core-view-nav::-webkit-scrollbar { display: none; }
.core-view-nav a {
    flex: 0 0 auto;
    border-radius: calc(var(--radius-sm) - 1px);
    padding: 8px 11px;
    color: var(--muted);
    font-size: .76rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}
.core-view-nav a:hover { color: var(--ink); background: var(--surface-subtle); }
.core-view-nav a.is-active,
.core-view-nav a[aria-current='page'] {
    color: var(--accent);
    background: var(--accent-soft);
}
.core-section-anchor { scroll-margin-top: 150px; }
.core-summary-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--line);
    overflow: hidden;
}
.core-summary-item {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 15px 17px;
    background: var(--surface);
}
.core-summary-item > span { color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.core-summary-item > strong { overflow: hidden; font-size: .94rem; text-overflow: ellipsis; white-space: nowrap; }
.core-summary-item > small { overflow: hidden; color: var(--muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.core-list-panel { padding: 0; overflow: hidden; }
.core-list-panel > .toolbar,
.core-list-panel > .event-history-navigation { margin: 0; padding: var(--space-4); }
.core-list-panel > .toolbar { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.core-list-panel > .event-history-navigation + .toolbar { border-top: 1px solid var(--line); }
.core-list-panel > .table-wrap { padding: 0 var(--space-2); }
.core-list-panel > nav[role='navigation'] { margin: 0; border-top: 1px solid var(--line); padding: var(--space-4); }
.dashboard-overview-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: var(--space-5); align-items: stretch; margin-bottom: var(--space-5); }
.dashboard-overview-grid--metrics-only { grid-template-columns: 1fr; }
.dashboard-overview-grid .dashboard-priority-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: 0; }
.dashboard-overview-grid .dashboard-priority-grid .metric-card { min-height: 0; height: 100%; }
.dashboard-priority-grid .metric-card > strong { font-size: clamp(1.8rem, 3vw, 2.45rem); }
.dashboard-alerts-card { display: flex; min-height: 100%; flex-direction: column; overflow: hidden; }
.dashboard-alerts-card .section-heading { margin-bottom: 12px; }
.dashboard-alerts-card .dashboard-alerts { min-height: 0; flex: 1; overflow: auto; margin-bottom: 12px; padding-right: 3px; }
.dashboard-alerts-card .dashboard-alerts a { padding: 9px 0; }
.dashboard-alerts-card .dashboard-alerts a strong { font-size: .88rem; line-height: 1.25; }
.dashboard-alerts-card .dashboard-alerts a small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-alerts-card > .text-link { margin-top: auto; }
@media (max-width: 980px) {
    .dashboard-overview-grid { grid-template-columns: 1fr; }
    .dashboard-alerts-card { min-height: 220px; }
}
@media (max-width: 560px) {
    .dashboard-overview-grid .dashboard-priority-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
}
.core-section-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--space-4); margin: var(--space-6) 0 var(--space-3); }
.core-section-heading h2 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.55rem); }
.core-section-heading p { margin: 3px 0 0; color: var(--muted); }
@media (max-width: 980px) {
    .core-view-nav { position: static; margin-top: 0; }
    .core-summary-strip { grid-template-columns: 1fr; }
}
.contract-history-entry {
    margin-bottom: var(--space-4);
    border-style: dashed;
    background: color-mix(in srgb, var(--accent-soft) 24%, var(--surface));
    box-shadow: none;
}
.contract-history-entry .section-heading { margin-bottom: 0; }
.contract-history-entry h2 { font-size: 1.08rem; }
.contract-history-entry .muted { max-width: 650px; }

/* PRISMATIC · DESKTOP WAVE 3 · ADMIN WORKSPACES */
.core-view-nav--compact { gap: 4px; }
.core-view-nav--compact a { padding-inline: 9px; font-size: .72rem; }
.core-view-nav--local {
    position: static;
    top: auto;
    z-index: auto;
    margin-top: calc(var(--space-2) * -1);
    border-style: dashed;
    background: color-mix(in srgb, var(--surface) 78%, transparent);
    box-shadow: none;
}
.core-view-nav--local a { font-weight: 700; }
.core-view-nav--local a::before {
    content: '↓';
    margin-right: 5px;
    color: var(--accent);
    font-size: .68rem;
}
.management-commercial-grid > #contract-objects { grid-column: 1 / -1; }
.management-commercial-grid > #contract-objects > form {
    max-width: 760px;
}
.management-commercial-grid > #contract-objects .commercial-catalog-list {
    margin-top: var(--space-4);
}
@media (max-width: 1180px) {
    .core-view-nav--compact a { padding-inline: 8px; font-size: .7rem; }
}

/* PRISMATIC · MOBILE WAVE 4 · INTERACTION POLISH */
@media (max-width: 760px) {
    .menu-toggle,
    .topbar-tools .appearance > summary,
    .topbar-notifications > summary,
    .text-size-control > summary,
    .sidebar-nav-toggle,
    .fm-icon-button {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
    }

    .menu-toggle { display: grid; place-items: center; padding: 0; }
    .sidebar__footer .link-button { min-height: 44px; padding: 10px 0; }
    .fm-calendar-nav { grid-template-columns: 44px minmax(0, 1fr) auto 44px; }
    .fm-calendar-nav .button { min-height: 44px; }
}
@media (max-width: 760px) {
    .core-view-nav {
        scroll-snap-type: x proximity;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 26px), transparent 100%);
        mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 26px), transparent 100%);
        padding-right: 28px;
    }
    .core-view-nav a {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
        scroll-snap-align: start;
    }
    .mobile-hide-workspace-nav { display: none; }
    .responsive-data-table:not(:has(.table-sort-link)) thead { display: none; }
    .responsive-data-table .table-sort-link { min-height: 44px; }
}
@media (max-width: 560px) {
    .event-commercial-panel .section-heading {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
    .event-commercial-total {
        justify-self: start;
        white-space: nowrap;
        overflow-wrap: normal !important;
    }
    .week-calendar-panel > .section-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .week-calendar-panel > .section-heading .text-link { white-space: nowrap; }
    .fm-calendar-nav strong { font-size: .82rem; }
    .pwa-push-card { grid-template-columns: 44px minmax(0, 1fr) 44px; }
    .pwa-push-card__close { width: 44px; height: 44px; margin-top: -6px; }
    .pwa-push-card__primary,
    .pwa-push-card__secondary { min-height: 44px; }
}
@media (max-width: 760px) {
    .sidebar__footer .link-button {
        display: inline-flex;
        min-width: 44px;
        min-height: 44px;
        align-items: center;
        justify-content: center;
    }
    .fm-dialog-close,
    .toast__close {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
    }
    .fm-dialog__footer .button {
        min-height: 44px;
    }
}

/* PRISMATIC · SIDEBAR RESPONSIVE/COLLAPSIBLE V2 */
.portal-shell { transition: grid-template-columns .2s ease; }
.sidebar { overflow: visible; transition: padding .2s ease, width .2s ease; }
.sidebar__nav {
    flex: 1 1 auto;
    min-height: 0;
    align-content: start;
    grid-auto-rows: max-content;
    margin-bottom: 12px;
    padding-right: 4px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.22) transparent;
}
.sidebar__footer { flex: 0 0 auto; margin-top: 0; }
.sidebar-collapse {
    position: absolute;
    top: 76px;
    right: -15px;
    z-index: 55;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
    padding: 0;
    color: #fff;
    background: color-mix(in srgb, var(--sidebar) 86%, white 14%);
    box-shadow: 0 6px 20px rgba(0,0,0,.2);
    font-size: 1.1rem;
    line-height: 1;
}
.sidebar-collapse:hover { background: color-mix(in srgb, var(--accent) 80%, black); }
.portal-shell.is-sidebar-collapsed { grid-template-columns: 82px minmax(0, 1fr); }
.portal-shell.is-sidebar-collapsed .sidebar { padding-inline: 14px; }
.portal-shell.is-sidebar-collapsed .sidebar > .brand {
    width: 52px;
    height: 46px;
    overflow: hidden;
}
.portal-shell.is-sidebar-collapsed .sidebar > .brand img {
    width: 174px !important;
    max-width: none;
}
.portal-shell.is-sidebar-collapsed .sidebar__nav { margin-top: 28px; padding-right: 0; }
.portal-shell.is-sidebar-collapsed .sidebar__label,
.portal-shell.is-sidebar-collapsed .sidebar-submenu,
.portal-shell.is-sidebar-collapsed .sidebar-nav-toggle,
.portal-shell.is-sidebar-collapsed .sidebar-user > span:last-child { display: none !important; }
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent { grid-template-columns: 1fr; }
.portal-shell.is-sidebar-collapsed .sidebar__nav > a,
.portal-shell.is-sidebar-collapsed .sidebar__disabled,
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link {
    justify-content: center;
    min-height: 44px;
    padding-inline: 0;
    font-size: 0;
}
.portal-shell.is-sidebar-collapsed .sidebar__nav > a > span,
.portal-shell.is-sidebar-collapsed .sidebar__disabled > span,
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link > span {
    width: auto;
    font-size: .88rem;
}
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link strong { display: none; }
.portal-shell.is-sidebar-collapsed .sidebar__footer { padding-inline: 0; }
.portal-shell.is-sidebar-collapsed .sidebar-user { justify-content: center; }
.portal-shell.is-sidebar-collapsed .sidebar-collapse {
    right: -15px;
    transform: rotate(180deg);
}
@media (max-width: 840px) {
    .sidebar-collapse { display: none; }
    .portal-shell.is-sidebar-collapsed { grid-template-columns: 1fr; }
    .portal-shell.is-sidebar-collapsed .sidebar { width: 260px; padding: 32px 24px 24px; }
}

/* PRISMATIC · EVENT LIST WIDTH V2 */
.events-data-table { width: 100%; table-layout: fixed; }
.events-data-table th,
.events-data-table td { min-width: 0; overflow-wrap: anywhere; }
.events-data-table th:nth-child(1) { width: 11%; }
.events-data-table th:nth-child(2) { width: 22%; }
.events-data-table th:nth-child(3) { width: 14%; }
.events-data-table th:nth-child(4) { width: 17%; }
.events-data-table th:nth-child(5) { width: 18%; }
.events-data-table th:nth-child(6) { width: 13%; }
.events-data-table th:nth-child(7) { width: 5%; }
.events-data-table .table-action { white-space: nowrap; }
@media (min-width: 761px) and (max-width: 1180px) {
    .core-list-panel .table-wrap { padding-inline: 4px; }
    .events-data-table th { padding: 9px 7px; font-size: .58rem; letter-spacing: .07em; }
    .events-data-table td { padding: 12px 7px; font-size: .76rem; line-height: 1.35; }
    .events-data-table td small { font-size: .64rem; }
    .events-data-table .status { padding-inline: 6px; font-size: .58rem; }
}

/* PRISMATIC · SAAS INFORMATION ARCHITECTURE V1 */
.sidebar-nav-parent__link.is-context-active {
    color: #fff;
    background: rgba(255,255,255,.06);
}
.sidebar-nav-parent__link.is-context-active > span { color: #fff; }
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link.is-context-active {
    background: var(--accent);
}
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link.is-context-active > span { color: #fff; }

.page-action-menu { position: relative; }
.page-action-menu > summary { list-style: none; cursor: pointer; }
.page-action-menu > summary::-webkit-details-marker { display: none; }
.page-action-menu__panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 35;
    display: grid;
    min-width: 210px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: 0 18px 45px rgba(0,0,0,.16);
}
.page-action-menu__panel a,
.page-action-menu__panel button {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    border: 0;
    border-radius: 9px;
    padding: 9px 11px;
    color: var(--ink);
    background: transparent;
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.page-action-menu__panel a:hover,
.page-action-menu__panel button:hover { background: var(--soft); }
.page-action-menu__panel .page-action-menu__danger { color: var(--danger); }
@media (max-width: 840px) {
    .page-action-menu { width: 100%; }
    .page-action-menu > summary { width: 100%; justify-content: center; }
    .page-action-menu__panel { right: 0; left: 0; min-width: 0; }
}


/* Dashboard · agenda semanal responsiva sem rolagem lateral */
.week-calendar-panel {
    container-name: dashboard-week;
    container-type: inline-size;
    overflow: hidden;
}

.week-calendar-panel .week-calendar {
    width: 100%;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    overflow-x: visible;
}

.week-calendar-panel .week-day,
.week-calendar-panel .week-day__items,
.week-calendar-panel .calendar-item {
    min-width: 0;
}

.week-calendar-panel .calendar-item {
    overflow: hidden;
}

.week-calendar-panel .calendar-item strong {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.week-calendar-panel .calendar-item span {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

@container dashboard-week (max-width: 900px) {
    .week-calendar-panel .week-calendar {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px;
        border: 0;
        background: transparent;
    }

    .week-calendar-panel .week-day,
    .week-calendar-panel .week-day:last-child {
        overflow: hidden;
        border: 1px solid var(--line);
        border-radius: calc(var(--radius) * .55);
    }

    .week-calendar-panel .week-day__items {
        min-height: 112px;
    }
}

@container dashboard-week (max-width: 700px) {
    .week-calendar-panel .week-calendar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .week-calendar-panel .section-heading {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .week-calendar-panel .section-heading .text-link {
        flex: 0 0 auto;
    }
}

@container dashboard-week (max-width: 520px) {
    .week-calendar-panel .week-calendar {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .week-calendar-panel .week-day,
    .week-calendar-panel .week-day:last-child {
        display: grid;
        grid-template-columns: 62px minmax(0, 1fr);
    }

    .week-calendar-panel .week-day > header {
        align-content: start;
        justify-items: start;
        border: 0;
        border-right: 1px solid var(--line);
        padding: 12px 9px;
        text-align: left;
    }

    .week-calendar-panel .week-day > header span,
    .week-calendar-panel .week-day > header strong {
        width: 100%;
        text-align: left;
    }

    .week-calendar-panel .week-day__items {
        min-height: 0;
        align-content: start;
        padding: 10px 9px;
    }

    .week-calendar-panel .week-day__empty {
        min-height: 0;
        padding: 2px 3px;
    }

    .week-calendar-panel > .section-heading {
        flex-direction: column;
    }
}


/* Sidebar compacto · marca e ícones reconhecíveis */
.brand-logo--compact { display: none !important; }
.sidebar-icon {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sidebar-nav-parent__link .sidebar-icon,
.sidebar__nav > a .sidebar-icon {
    color: #9d98a0;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.sidebar-nav-parent__link:hover .sidebar-icon,
.sidebar__nav > a:hover .sidebar-icon,
.sidebar-nav-parent__link.is-context-active .sidebar-icon,
.sidebar__nav > a.is-active .sidebar-icon { color: #fff; }

.portal-shell.is-sidebar-collapsed .sidebar > .brand {
    width: 54px;
    height: 54px;
    align-items: center;
    justify-content: center;
    overflow: visible;
}

.portal-shell.is-sidebar-collapsed .brand-logo--full { display: none !important; }
.portal-shell.is-sidebar-collapsed .brand-logo--compact {
    display: block !important;
    width: 48px !important;
    height: 48px !important;
    max-width: 48px !important;
}

.portal-shell.is-sidebar-collapsed .sidebar__nav > a > .sidebar-icon,
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link > .sidebar-icon {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
}

.portal-shell.is-sidebar-collapsed .sidebar__nav > a,
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link {
    border-radius: 11px;
}


/* Conta · saída sempre visível */
.sidebar-logout { margin-top: 8px; }
.sidebar-logout__button {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 9px;
    border: 0;
    border-radius: 9px;
    padding: 8px 10px;
    color: #c7c1c7;
    background: transparent;
    font: 700 .75rem/1 var(--body);
    cursor: pointer;
}
.sidebar-logout__button:hover { color: #fff; background: rgba(255,255,255,.07); }
.sidebar-logout__button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.portal-shell.is-sidebar-collapsed .sidebar-logout {
    display: grid;
    justify-items: center;
    margin-top: 6px;
}
.portal-shell.is-sidebar-collapsed .sidebar-logout__button {
    width: 44px;
    min-height: 44px;
    justify-content: center;
    padding: 0;
}
.portal-shell.is-sidebar-collapsed .sidebar-logout__button span { display: none; }

/* Usuários e permissões · áreas do painel */
.access-area-selector {
    display: grid;
    gap: 12px;
    margin: 0;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 16px;
    background: color-mix(in srgb, var(--accent-soft) 34%, var(--surface));
}
.access-area-selector[hidden] { display: none; }
.access-area-selector legend {
    padding: 0 6px;
    font-size: .82rem;
    font-weight: 800;
}

.access-area-selector > p { margin: 0; font-size: .76rem; }
.access-area-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.access-area-option {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 9px;
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 9px 11px;
    background: var(--surface);
}
.access-area-option:has(input:checked) {
    border-color: var(--accent);
    background: var(--accent-soft);
}
.access-area-option input {
    width: 17px;
    min-height: 17px;
    flex: 0 0 17px;
    accent-color: var(--accent);
}
.access-area-option span { font-size: .76rem; font-weight: 700; }

.access-area-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 5px;
}
.access-area-chips span {
    border-radius: 999px;
    padding: 3px 7px;
    color: var(--accent);
    background: var(--accent-soft);
    font-size: .6rem;
    font-weight: 800;
}
.access-area-editor {
    margin: -4px 0 14px 52px;
    border-left: 2px solid var(--accent-soft);
    padding-left: 12px;
}
.access-area-editor > summary {
    width: fit-content;
    color: var(--accent);
    font-size: .72rem;
    font-weight: 800;
}
.access-area-editor > form {
    display: grid;
    gap: 12px;
    margin-top: 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 13px;
    background: var(--surface-subtle);
}

@media (max-width: 560px) {
    .access-area-grid { grid-template-columns: 1fr; }
    .access-area-editor { margin-left: 0; }
}

/* Dashboard administrativo: preservar o grid responsivo base. */
#pendencias { margin-bottom: 22px; }

.portal-shell.is-sidebar-collapsed .sidebar__nav {
    scrollbar-width: none;
}
.portal-shell.is-sidebar-collapsed .sidebar__nav::-webkit-scrollbar {
    width: 0;
    height: 0;
}

/* Menu aberto: ação de expandir/recolher sempre no extremo direito. */
.portal-shell:not(.is-sidebar-collapsed) .sidebar-nav-parent {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) 32px;
}
.portal-shell:not(.is-sidebar-collapsed) .sidebar-nav-toggle {
    justify-self: end;
}

/* Menu compacto: centralização pelo eixo físico da coluna. */
.portal-shell.is-sidebar-collapsed .sidebar {
    padding-inline: 0;
}
.portal-shell.is-sidebar-collapsed .sidebar > .brand {
    margin-inline: auto;
}
.portal-shell.is-sidebar-collapsed .sidebar__nav,
.portal-shell.is-sidebar-collapsed .sidebar__footer {
    width: 100%;
    padding-inline: 0;
}
.portal-shell.is-sidebar-collapsed .sidebar__nav > a,
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent,
.portal-shell.is-sidebar-collapsed .sidebar-user,
.portal-shell.is-sidebar-collapsed .sidebar-logout {
    width: 44px;
    margin-inline: auto;
}
.portal-shell.is-sidebar-collapsed .sidebar__nav > a,
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent__link {
    width: 44px;
    height: 44px;
    min-height: 44px;
    max-height: 44px;
    justify-content: center;
    gap: 0;
    padding: 0;
    border-radius: 11px;
}
.portal-shell.is-sidebar-collapsed .sidebar-nav-parent {
    height: 44px;
}
.portal-shell.is-sidebar-collapsed .sidebar-logout__button {
    width: 44px;
}

/* EVENTOS · VISITA TÉCNICA + INSTALAÇÃO */
.field-operations-summary,
.field-operations-inline-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.field-operations-summary { margin-bottom: 22px; }
.field-operations-summary > .panel,
.field-operations-inline-summary > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.field-operations-summary span,
.field-operations-inline-summary span { color: var(--muted); font-size: .72rem; }
.field-operations-summary strong,
.field-operations-inline-summary strong { font-size: 1rem; }
.field-operations-summary small,
.field-operations-inline-summary small { color: var(--muted); }
.event-field-operations-card { display: grid; gap: 18px; }
.field-operation-section { display: grid; gap: 20px; margin-bottom: 22px; }
.field-operation-list { display: grid; gap: 14px; }
.field-operation-record {
    display: grid;
    gap: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 16px;
    background: var(--surface-subtle);
}
.field-operation-record.is-completed { background: var(--surface); }
.field-operation-record__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.field-operation-record__head > div { display: grid; gap: 2px; min-width: 0; }
.field-operation-record__head small { color: var(--muted); }
.operation-form { margin-top: 12px; }
.operation-upload-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    grid-column: 1 / -1;
}
.operation-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}
.operation-media-card {
    display: grid;
    align-content: start;
    gap: 8px;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 8px;
    background: var(--surface);
}
.operation-media-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    object-fit: cover;
}
.operation-media-card > div { display: grid; gap: 2px; }
.operation-media-card small { overflow-wrap: anywhere; color: var(--muted); }
.operation-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
}
.operation-detail-grid > div {
    display: grid;
    gap: 4px;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 12px;
    background: var(--surface);
}
.operation-detail-grid dt { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.operation-detail-grid dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.operation-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin: 0;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px;
}
.operation-checklist legend { padding: 0 6px; font-weight: 800; }
.operation-checklist > p { grid-column: 1 / -1; margin: 0; }
.operation-checklist label,
.operation-checklist--readonly span {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-height: 38px;
    border-radius: 9px;
    padding: 9px 10px;
    background: var(--surface-subtle);
}
.operation-checklist input { margin-top: 3px; accent-color: var(--accent); }
.operation-checklist--readonly .is-ok { color: var(--success); }
@media (max-width: 760px) {
    .field-operations-summary,
    .field-operations-inline-summary,
    .operation-detail-grid,
    .operation-checklist,
    .operation-upload-fields { grid-template-columns: 1fr; }
    .field-operation-record__head { align-items: stretch; flex-direction: column; }
}


/* PRISMATIC · OPERAÇÃO DE CAMPO OFFLINE V1 */
.field-offline-bar {
    display: flex;
    gap: var(--space-4);
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 14px 16px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}
.field-offline-bar__state,
.field-offline-bar__actions {
    display: flex;
    gap: var(--space-3);
    align-items: center;
}
.field-offline-bar__state > div {
    display: grid;
    gap: 2px;
}
.field-offline-bar__state small { color: var(--muted); }
.field-offline-dot {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    border-radius: 50%;
    background: var(--muted);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--muted) 12%, transparent);
}
.field-offline-dot.is-online {
    background: var(--success);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--success) 14%, transparent);
}
.field-offline-dot.is-offline {
    background: var(--warning);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--warning) 15%, transparent);
}
.field-offline-dot.has-conflict {
    background: var(--danger);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--danger) 14%, transparent);
}
.field-offline-pending {
    border-radius: var(--radius-pill);
    padding: 5px 9px;
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 10%, white);
    font-size: .78rem;
    font-weight: 800;
}

.field-offline-queue { margin-bottom: var(--space-5); }
.field-offline-queue__item {
    display: flex;
    gap: var(--space-4);
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--line);
    padding: 12px 0;
}
.field-offline-queue__item:first-child { border-top: 0; padding-top: 0; }
.field-offline-queue__item > div { display: grid; gap: 3px; min-width: 0; }
.field-offline-queue__item small { color: var(--muted); }
.field-offline-queue__item.is-conflict { border-left: 3px solid var(--danger); padding-left: 12px; }
.field-offline-queue__item.is-error { border-left: 3px solid var(--warning); padding-left: 12px; }
.field-offline-queue__error { color: var(--danger) !important; }
.operation-form.is-offline-pending,
form[data-offline-sync].is-offline-pending {
    position: relative;
    opacity: .72;
}
.operation-form.is-offline-pending::after,
form[data-offline-sync].is-offline-pending::after {
    content: 'Alteração salva neste tablet · sincronize antes de editar novamente';
    display: block;
    grid-column: 1 / -1;
    border: 1px dashed color-mix(in srgb, var(--warning) 35%, var(--line));
    border-radius: var(--radius-sm);
    padding: 8px 10px;
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 6%, white);
    font-size: .78rem;
    font-weight: 700;
}
@media (max-width: 760px) {
    .field-offline-bar {
        align-items: stretch;
        flex-direction: column;
    }
    .field-offline-bar__actions {
        align-items: stretch;
        flex-wrap: wrap;
    }
    .field-offline-bar__actions .button { flex: 1 1 auto; }
    .field-offline-queue__item { align-items: flex-start; }
}

/* PRISMATIC-PUSH-STACK-20261013: push ao lado da Pri; no mobile, empilhado acima. */
.album-management-main{display:grid;align-content:start;gap:18px;min-width:0}
.album-drive-card{display:grid;align-content:start;gap:15px}
.album-drive-card__current{margin-top:0}
.album-drive-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.album-drive-card__actions form{margin:0}
.pwa-push-card{z-index:1210;left:auto;right:88px;bottom:calc(18px + env(safe-area-inset-bottom,0px));width:min(490px,calc(100vw - 118px))}
@media(max-width:680px){.pwa-push-card{left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom,0px));width:auto;max-width:none}}

/* PRISMATIC-ALBUM-DRIVE-PICKER-20261013 */
.album-drive-card__health {
    margin: 10px 0 0;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid var(--line);
    background: var(--surface-subtle);
    line-height: 1.45;
}
.album-drive-card__health[data-level="warning"] {
    color: #844219;
    border-color: #e6c39a;
    background: #fff6e8;
}
.album-drive-card__health[data-level="success"] {
    color: #275f46;
    border-color: #b6daca;
    background: #eef9f3;
}
.album-drive-picker {
    width: min(720px, calc(100vw - 24px));
    max-width: min(720px, calc(100vw - 24px));
    max-height: min(860px, calc(100dvh - 24px));
    margin: auto;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--surface);
    color: var(--ink);
    box-shadow: 0 24px 100px rgba(28, 20, 16, .33);
    overflow: auto;
}
.album-drive-picker::backdrop {
    background: rgba(18, 16, 20, .58);
    backdrop-filter: blur(4px);
}
.album-drive-picker__inner {
    display: grid;
    gap: 14px;
    padding: clamp(16px, 3vw, 28px);
}
.album-drive-picker__header {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    justify-content: space-between;
}
.album-drive-picker__header h2 {
    margin: 4px 0 7px;
    font-size: clamp(1.2rem, 2.6vw, 1.7rem);
}
.album-drive-picker__header p:not(.eyebrow) {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
}
.album-drive-picker__close {
    border: 1px solid var(--line);
    background: var(--surface-subtle);
    border-radius: 50%;
    flex: 0 0 36px;
    height: 36px;
    font-size: 1.5rem;
    cursor: pointer;
}
.album-drive-picker__quick,
.album-drive-picker__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.album-drive-picker__breadcrumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    min-height: 40px;
}
.album-drive-picker__crumb {
    border: 0;
    background: none;
    padding: 5px 7px;
    border-radius: 7px;
    color: var(--ink);
    cursor: pointer;
    font: inherit;
}
.album-drive-picker__crumb:not(:disabled):hover { background: var(--surface-subtle); }
.album-drive-picker__crumb[aria-current="location"] { font-weight: 800; cursor: default; }
.album-drive-picker__search input { width: 100%; }
.album-drive-picker__status {
    margin: 0;
    color: var(--muted);
    font-size: .85rem;
}
.album-drive-picker__status[data-level="error"] { color: var(--danger); }
.album-drive-picker__list {
    list-style: none;
    padding: 5px;
    margin: 0;
    height: min(38vh, 330px);
    min-height: 150px;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface-subtle);
}
.album-drive-picker__list li { margin: 0; }
.album-drive-picker__folder {
    display: flex;
    align-items: center;
    gap: 13px;
    width: 100%;
    min-height: 44px;
    border: 0;
    border-radius: 9px;
    padding: 9px 10px;
    color: var(--ink);
    background: transparent;
    text-align: left;
    font: inherit;
    cursor: pointer;
}
.album-drive-picker__folder:not(:disabled):hover {
    background: var(--surface);
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.album-drive-picker__folder-name {
    flex: 1;
    min-width: 0;
    overflow-wrap: anywhere;
}
.album-drive-picker__empty { padding: 20px 12px; color: var(--muted); }
.album-drive-picker__inspection {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    line-height: 1.45;
}
.album-drive-picker__inspection[data-level="warning"] {
    background: #fff6e8;
    border-color: #e6c39a;
    color: #844219;
}
.album-drive-picker__inspection[data-level="success"] {
    background: #eef9f3;
    border-color: #b6daca;
    color: #275f46;
}
.album-drive-picker__footer {
    justify-content: flex-end;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
@media (max-width: 620px) {
    .album-drive-picker { border-radius: 15px; max-height: calc(100dvh - 12px); }
    .album-drive-picker__list { height: min(40vh, 310px); }
    .album-drive-picker__footer .button { flex: 1; }
}


/* PRISMATIC-SOCIAL-PREVIEW-20261014: mostra a mesma arte servida no Open Graph. */
.album-social-preview__link {
    display: block;
    overflow: hidden;
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #4b3027;
    color: #fff;
    text-align: center;
    margin-bottom: 8px;
}
.album-social-preview__link img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1200 / 630;
    object-fit: cover;
}
.album-social-preview__link[aria-disabled="true"] {
    padding: 45px 12px;
    cursor: default;
    text-decoration: none;
}
.album-social-preview__note {
    color: var(--muted);
    font-size: .8rem;
    margin: 8px 0 18px;
}
