/* Identidade visual comum à vitrine, aos portais e às áreas autenticadas. */
:root {
    --jmf-purple: #5007cc;
    --jmf-purple-dark: #350879;
    --jmf-orange: #ff8900;
    --jmf-ink: #27183f;
    --jmf-soft: #f6f3fc;
}
body, body:has(.jmf-login:not([hidden])) {
    background: var(--jmf-soft) !important;
    color: var(--jmf-ink);
}
a { color: var(--jmf-purple); }
h1, h2, h3 { color: var(--jmf-purple-dark); }
.jmf-company-logo {
    display: block;
    width: 145px;
    height: 108px;
    object-fit: contain;
    background: #fff;
    border-radius: 8px;
}
.jmf-login .jmf-company-logo { width: 170px; height: 126px; margin: 0 auto 20px; }
.jmf-login .brand, .catalog-brand, .sva-isp-header .brand { letter-spacing: normal; }
header.sva-isp-header, .catalog-header {
    background: #fff;
    border-bottom: 3px solid var(--jmf-orange);
}
.sva-isp-header .identity { color: var(--jmf-purple-dark); }
nav.sva-main-menu {
    background: var(--jmf-purple-dark) !important;
    border-bottom: 3px solid var(--jmf-orange);
}
nav.sva-main-menu > a, nav.sva-main-menu > details > summary {
    color: #fff !important;
}
nav.sva-main-menu > a:hover, nav.sva-main-menu > details > summary:hover,
nav.sva-main-menu > details[open] > summary {
    background: var(--jmf-purple) !important;
    color: #fff !important;
}
.sva-menu-dropdown { background: #fff !important; }
.sva-menu-dropdown a { color: var(--jmf-purple-dark) !important; }
.sva-menu-dropdown a:hover { background: #f1e8ff !important; }
button, .button, .jmf-login button, .sva-isp-header button {
    background: var(--jmf-purple);
    color: #fff;
}
.jmf-login button, .sva-isp-header button { background: var(--jmf-purple) !important; color: #fff !important; }
button:hover, .button:hover { filter: brightness(1.08); }
button:focus-visible, a:focus-visible, summary:focus-visible {
    outline: 3px solid var(--jmf-orange);
    outline-offset: 3px;
}
input, select, textarea, .jmf-login input, .jmf-login select { accent-color: var(--jmf-purple); border-color: #d8cbea; }
input:focus, select:focus, textarea:focus, .jmf-login input:focus, .jmf-login select:focus {
    outline: 2px solid var(--jmf-purple) !important;
    outline-offset: 1px;
}
thead { background: #f1e8ff; color: var(--jmf-purple-dark); }
.notice { border-left: 4px solid var(--jmf-orange); background: #fff3e3; color: #653500; }
/* Erros, exclusões e estados de segurança conservam sua identificação semântica. */
.error, .danger, button.danger, .button.danger { color: #a32232; }
button.danger, .button.danger { background: #ffe5e8; }
.catalog-eyebrow, .catalog-header nav a { color: var(--jmf-purple); }
.catalog-artwork h3 { color: #fff; }
.catalog-sales-card .catalog-provider { color: #fff; }
.catalog-card-description summary { color: var(--jmf-purple); }
@media (max-width: 650px) {
    .jmf-company-logo { width: 112px; height: 83px; }
    .catalog-header { gap: 16px; flex-wrap: wrap; }
}
/* Componentes carregados pelos módulos mantêm a mesma paleta. */
.catalog-carousel-controls button { background: #fff; color: var(--jmf-purple); border-color: #d8cbea; }
.catalog-carousel-controls button:hover { background: #f1e8ff; }
.sva-programming-table th, .sva-programming-dialog .sva-programming-table th { background: #f1e8ff; color: var(--jmf-purple-dark); }
.sva-programming-dialog .sva-channel-icon-choose { color: var(--jmf-purple); background: #f6f3fc; }
.secondary, button.secondary, .button.secondary { color: var(--jmf-purple-dark); background: #eee6fa; }
