:root {
    --fundo-externo: #081824;
    --fundo-painel: #f4f8fc;
    --fundo-cartao: #ffffff;
    --fundo-escuro: #0d2234;
    --fundo-escuro-secundario: #123149;
    --texto: #173042;
    --texto-suave: #6d8192;
    --texto-claro: #eaf7ff;
    --borda: rgba(15, 53, 79, 0.10);
    --borda-escura: rgba(110, 219, 255, 0.14);
    --primaria: #18b5da;
    --primaria-escura: #0d6f8c;
    --primaria-clara: #d8f7ff;
    --sucesso: #dff8eb;
    --sucesso-texto: #176244;
    --alerta: #fff4d6;
    --sombra-forte: 0 24px 80px rgba(2, 18, 31, 0.32);
    --sombra-card: 0 18px 40px rgba(9, 33, 51, 0.08);
    --raio-grande: 28px;
    --raio-medio: 20px;
    --raio-pequeno: 14px;
}

* {
    box-sizing: border-box;
}

html {
    font-size: 16px;
}

body {
    margin: 0;
    font-family: "Bahnschrift", "Trebuchet MS", "Segoe UI", sans-serif;
    color: var(--texto);
    background:
        radial-gradient(circle at top left, rgba(24, 181, 218, 0.18), transparent 28%),
        radial-gradient(circle at top right, rgba(59, 132, 246, 0.12), transparent 24%),
        linear-gradient(180deg, #0a1b28 0%, #06131d 100%);
}

.pagina-login {
    min-height: 100vh;
    padding: 22px;
    background:
        radial-gradient(circle at top left, rgba(23, 198, 191, 0.16), transparent 26%),
        radial-gradient(circle at bottom right, rgba(13, 99, 231, 0.16), transparent 24%),
        linear-gradient(135deg, #081a29 0%, #0f2940 52%, #0a1f31 100%);
}

.login-shell {
    min-height: calc(100vh - 44px);
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
    border-radius: 36px;
    overflow: hidden;
    border: 1px solid rgba(117, 213, 255, 0.18);
    box-shadow: var(--sombra-forte);
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(16px);
}

.login-hero {
    display: grid;
    align-items: center;
    padding: 48px;
    background:
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.12), transparent 32%),
        linear-gradient(135deg, rgba(9, 28, 44, 0.92), rgba(11, 44, 68, 0.86));
}

.login-hero__conteudo {
    display: grid;
    gap: 30px;
    justify-items: center;
}

.login-hero__logo {
    width: min(260px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 50%;
    filter: drop-shadow(0 24px 40px rgba(2, 18, 31, 0.18));
}

.login-hero__texto {
    max-width: 560px;
    text-align: center;
    color: var(--texto-claro);
}

.login-hero__texto h1 {
    margin: 10px 0 0;
    font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
    font-size: clamp(2rem, 4vw, 3.35rem);
    line-height: 1.08;
}

.login-hero__texto p {
    margin: 18px 0 0;
    font-size: 1.05rem;
    line-height: 1.75;
    color: rgba(234, 247, 255, 0.78);
}

.etiqueta-login {
    display: inline-block;
    color: #8bdcf1;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
}

.login-card {
    display: grid;
    align-content: center;
    gap: 20px;
    padding: 48px;
    background:
        radial-gradient(circle at top right, rgba(24, 181, 218, 0.08), transparent 22%),
        linear-gradient(180deg, #f3f8fc 0%, #ffffff 100%);
}

.login-card__topo h2 {
    margin: 10px 0 0;
    font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
    font-size: 2.4rem;
    color: #102b3d;
}

.login-card__topo p {
    margin: 14px 0 0;
    color: var(--texto-suave);
    line-height: 1.7;
}

.formulario-login {
    display: grid;
    gap: 18px;
}

.alerta-login {
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid transparent;
    font-weight: 700;
    line-height: 1.5;
}

.alerta-login--erro {
    background: #fff0ed;
    border-color: rgba(221, 74, 58, 0.18);
    color: #a9362b;
}

.alerta-login--sucesso {
    background: #e8fbf1;
    border-color: rgba(23, 140, 84, 0.18);
    color: #176244;
}

.alerta-moderno--erro {
    background: #fff1ee;
    border-color: rgba(221, 74, 58, 0.18);
    color: #a33d33;
}

.alerta-moderno--info {
    background: #eef9fd;
    border-color: rgba(16, 156, 194, 0.2);
    color: #135f78;
}

.alerta-moderno--atencao {
    background: #fff3d4;
    border-color: rgba(232, 163, 41, 0.28);
    color: #8c5e0c;
}

.botao--login {
    min-height: 54px;
    font-size: 1rem;
}

.checklist-senha {
    display: grid;
    gap: 6px;
    margin: -6px 0 4px;
    padding: 0;
    list-style: none;
}

.checklist-senha li {
    position: relative;
    padding-left: 26px;
    font-size: 0.86rem;
    font-weight: 600;
    color: #9aa9b4;
    transition: color 160ms ease;
}

.checklist-senha li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    border: 2px solid #c7d3da;
    box-sizing: border-box;
    transition: border-color 160ms ease, background 160ms ease;
}

.checklist-senha li.checklist-senha__ok {
    color: #176244;
}

.checklist-senha li.checklist-senha__ok::before {
    border-color: #17b56a;
    background: #17b56a;
}

.checklist-senha li.checklist-senha__ok::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 5px;
    width: 6px;
    height: 3px;
    border-left: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    transform: rotate(-45deg);
}

.link-login-secundario {
    display: block;
    text-align: center;
    margin-top: 2px;
    color: #0f86a8;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
}

.link-login-secundario:hover {
    text-decoration: underline;
}

.pagina-app {
    min-height: 100vh;
    padding: 18px;
}

.app-shell {
    min-height: calc(100vh - 36px);
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    background: linear-gradient(180deg, rgba(9, 24, 37, 0.98), rgba(5, 16, 25, 0.98));
    border: 1px solid rgba(117, 213, 255, 0.12);
    border-radius: 34px;
    overflow: hidden;
    box-shadow: var(--sombra-forte);
}

.app-shell--central {
    grid-template-columns: minmax(0, 1fr);
    background:
        radial-gradient(circle at top left, rgba(24, 181, 218, 0.14), transparent 24%),
        radial-gradient(circle at bottom right, rgba(13, 99, 231, 0.10), transparent 28%),
        linear-gradient(180deg, #edf5fb 0%, #f7fbfe 100%);
}

.barra-lateral {
    padding: 28px 22px;
    background:
        radial-gradient(circle at top left, rgba(24, 181, 218, 0.24), transparent 38%),
        linear-gradient(180deg, #0b1f31 0%, #071522 100%);
    border-right: 1px solid var(--borda-escura);
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.marca-app {
    display: flex;
    align-items: center;
    gap: 14px;
    color: var(--texto-claro);
}

.marca-app strong {
    display: block;
    font-size: 1.5rem;
    letter-spacing: 0.01em;
}

.marca-app span {
    color: rgba(234, 247, 255, 0.72);
    font-size: 0.95rem;
}

.marca-app__simbolo {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    padding: 7px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(233, 247, 255, 0.92));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.marca-app__logo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.marca-app--central {
    display: grid;
    gap: 12px;
}

.marca-app__logo-ampla {
    width: min(120px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 50%;
    display: block;
    filter: drop-shadow(0 14px 26px rgba(2, 18, 31, 0.20));
}

.marca-app--central span {
    color: rgba(234, 247, 255, 0.72);
    font-size: 0.92rem;
    line-height: 1.45;
}

.barra-lateral__topo-mobile {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.menu-mobile-alternador {
    display: none;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: 1px solid rgba(84, 217, 255, 0.22);
    background: rgba(255, 255, 255, 0.06);
    color: #eaf7ff;
    cursor: pointer;
}

.menu-mobile-alternador svg {
    width: 22px;
    height: 22px;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    stroke-linecap: round;
}

.menu-lateral {
    display: grid;
    gap: 8px;
}

.menu-lateral__form {
    margin: 0;
}

.grupo-menu {
    border-radius: 18px;
    border: 1px solid transparent;
    overflow: hidden;
    transition: background 160ms ease, border-color 160ms ease;
}

.grupo-menu[open],
.grupo-menu--ativo {
    background: rgba(24, 181, 218, 0.08);
    border-color: rgba(84, 217, 255, 0.18);
}

.grupo-menu__titulo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 50px;
    padding: 0 16px;
    border-radius: 16px;
    color: rgba(234, 247, 255, 0.92);
    cursor: pointer;
    list-style: none;
    font-weight: 700;
}

.grupo-menu__titulo::-webkit-details-marker {
    display: none;
}

.grupo-menu__titulo::after {
    content: "+";
    color: rgba(234, 247, 255, 0.70);
    font-size: 1rem;
    transition: transform 160ms ease, color 160ms ease;
}

.grupo-menu[open] .grupo-menu__titulo::after {
    content: "-";
    color: #ffffff;
}

.grupo-menu__titulo:hover {
    background: rgba(24, 181, 218, 0.10);
}

.menu-lateral__item {
    display: flex;
    align-items: center;
    min-height: 50px;
    padding: 0 16px;
    border-radius: 16px;
    color: rgba(234, 247, 255, 0.86);
    text-decoration: none;
    border: 1px solid transparent;
    transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
}

.menu-lateral__item--botao {
    width: 100%;
    border: none;
    background: rgba(255, 255, 255, 0.04);
    text-align: left;
    font: inherit;
}

.menu-lateral__item:hover {
    transform: translateX(4px);
    background: rgba(24, 181, 218, 0.10);
    border-color: rgba(24, 181, 218, 0.22);
}

.menu-lateral__item--ativo {
    background: linear-gradient(135deg, rgba(24, 181, 218, 0.32), rgba(24, 181, 218, 0.14));
    border-color: rgba(84, 217, 255, 0.28);
    color: #ffffff;
}

.submenu {
    display: none;
    gap: 6px;
    padding: 0 8px 10px 8px;
}

.grupo-menu[open] .submenu {
    display: grid;
}

.submenu__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
    padding: 0 14px;
    margin-left: 10px;
    border-radius: 14px;
    color: rgba(234, 247, 255, 0.78);
    text-decoration: none;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid transparent;
    font-size: 0.95rem;
}

.submenu__item:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(84, 217, 255, 0.16);
}

.submenu__item--ativo {
    color: #ffffff;
    background: rgba(24, 181, 218, 0.20);
    border-color: rgba(84, 217, 255, 0.22);
}

.submenu__item--planejado {
    color: rgba(234, 247, 255, 0.86);
}

.submenu__item small {
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    color: rgba(234, 247, 255, 0.80);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}

.submenu-aninhado {
    display: grid;
    gap: 5px;
    margin-left: 10px;
    padding: 8px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid transparent;
}

.submenu-aninhado--ativo {
    border-color: rgba(84, 217, 255, 0.14);
    background: rgba(24, 181, 218, 0.08);
}

.submenu-aninhado__titulo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2px 8px 5px;
    color: rgba(234, 247, 255, 0.92);
    font-size: 0.94rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.submenu-aninhado__titulo::-webkit-details-marker {
    display: none;
}

.submenu-aninhado__titulo::after {
    content: "+";
    color: rgba(234, 247, 255, 0.60);
    font-size: 0.9rem;
    font-weight: 700;
}

.submenu-aninhado[open] .submenu-aninhado__titulo::after {
    content: "-";
    color: #ffffff;
}

.submenu-aninhado__itens {
    display: none;
    gap: 5px;
    margin-top: 3px;
}

.submenu-aninhado[open] .submenu-aninhado__itens {
    display: grid;
}

.submenu__item--nivel-dois {
    min-height: 38px;
    margin-left: 0;
    padding-left: 18px;
    font-size: 0.9rem;
    justify-content: flex-start;
}

.submenu__item--nivel-dois::before {
    content: "•";
    margin-right: 8px;
    color: rgba(84, 217, 255, 0.72);
}

.barra-lateral__rodape {
    margin-top: auto;
    display: grid;
    gap: 12px;
}

.barra-lateral__usuario {
    display: grid;
    gap: 6px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(84, 217, 255, 0.12);
}

.barra-lateral__usuario span {
    color: rgba(234, 247, 255, 0.62);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.barra-lateral__usuario strong {
    color: #ffffff;
    font-size: 0.95rem;
    word-break: break-word;
}

.area-principal {
    padding: 26px;
    background:
        radial-gradient(circle at top right, rgba(24, 181, 218, 0.08), transparent 26%),
        linear-gradient(180deg, #edf5fb 0%, #f7fbfe 100%);
    overflow: auto;
}

.area-principal--central {
    padding: 32px;
    background: transparent;
}

.grade-central {
    display: grid;
    grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.25fr);
    gap: 20px;
    margin-top: 22px;
    align-items: start;
}

.painel--central-formulario {
    position: sticky;
    top: 24px;
}

.painel--central-lista {
    min-height: 760px;
}

.topo-app,
.hero,
.cartao-kpi,
.painel,
.alerta-moderno {
    animation: subir 420ms ease both;
}

.topo-app {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-bottom: 22px;
}

.topo-app h1,
.hero h2,
.painel h3 {
    margin: 0;
    font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
    letter-spacing: 0.01em;
}

.topo-app h1 {
    font-size: clamp(2rem, 4vw, 2.8rem);
    color: #102b3d;
}

.topo-app__contexto {
    display: block;
    margin-bottom: 6px;
    color: #4c8aa2;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.topo-app p {
    margin: 8px 0 0;
    color: var(--texto-suave);
}

.topo-app__etiqueta,
.etiqueta {
    margin: 0 0 6px;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: #4c8aa2;
}

.topo-app__acoes {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.9fr);
    gap: 22px;
    padding: 28px;
    border-radius: var(--raio-grande);
    background:
        radial-gradient(circle at top right, rgba(60, 202, 242, 0.16), transparent 30%),
        linear-gradient(135deg, #0d2436 0%, #12364f 55%, #164661 100%);
    color: var(--texto-claro);
    box-shadow: var(--sombra-card);
    overflow: hidden;
}

.hero--compacto {
    grid-template-columns: minmax(0, 1fr);
}

.hero__selo {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(148, 227, 252, 0.24);
    font-size: 0.84rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.hero h2 {
    margin-top: 18px;
    font-size: clamp(1.7rem, 3vw, 2.5rem);
    line-height: 1.1;
}

.hero p {
    margin: 14px 0 0;
    max-width: 760px;
    color: rgba(234, 247, 255, 0.82);
    line-height: 1.7;
}

.hero__resumo {
    display: grid;
    gap: 14px;
}

.hero__resumo--unico {
    grid-template-columns: 1fr;
}

.hero__resumo div {
    padding: 18px 20px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(148, 227, 252, 0.18);
    backdrop-filter: blur(10px);
}

.hero__resumo span {
    display: block;
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    color: rgba(234, 247, 255, 0.68);
}

.hero__resumo strong {
    display: block;
    margin-top: 8px;
    font-size: 1.32rem;
    color: #ffffff;
}

.grade-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 22px;
}

.grade-kpis--tres {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grade-kpis--duas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grade-kpis--quatro {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cartao-kpi {
    padding: 22px;
    border-radius: 22px;
    background: var(--fundo-cartao);
    border: 1px solid var(--borda);
    box-shadow: var(--sombra-card);
}

.cartao-kpi span {
    display: block;
    color: #5d7990;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.77rem;
}

.cartao-kpi strong {
    display: block;
    margin: 14px 0 10px;
    font-size: clamp(1.8rem, 3vw, 2.3rem);
    color: #0d2d3f;
}

.cartao-kpi p {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.6;
}

.grade-kpis--central {
    gap: 20px;
}

.cartao-kpi--central {
    position: relative;
    padding: 24px;
    border-radius: 26px;
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgba(24, 181, 218, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 253, 0.98));
    border: 1px solid rgba(24, 181, 218, 0.10);
    box-shadow: 0 18px 38px rgba(9, 33, 51, 0.09);
}

.cartao-kpi--central::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    border-radius: 26px 0 0 26px;
    background: linear-gradient(180deg, rgba(24, 181, 218, 0.92), rgba(23, 116, 154, 0.72));
}

.cartao-kpi__topo {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.cartao-kpi__icone {
    width: 52px;
    height: 52px;
    display: inline-grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(24, 181, 218, 0.14), rgba(15, 134, 168, 0.08));
    border: 1px solid rgba(24, 181, 218, 0.14);
    color: #137ea1;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.cartao-kpi__icone svg {
    width: 24px;
    height: 24px;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cartao-kpi__rodape {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(15, 53, 79, 0.08);
    color: #597488;
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.cartao-kpi--clientes::before {
    background: linear-gradient(180deg, #18b5da 0%, #1285a9 100%);
}

.cartao-kpi--ativos::before {
    background: linear-gradient(180deg, #1cc98c 0%, #149766 100%);
}

.cartao-kpi--financeiro::before {
    background: linear-gradient(180deg, #ffb547 0%, #e4871b 100%);
}

.cartao-kpi--travados::before {
    background: linear-gradient(180deg, #ff7a6a 0%, #dd4a3a 100%);
}

.cartao-kpi--destaque {
    background: linear-gradient(180deg, #f8fdff 0%, #e7f9ff 100%);
    border-color: rgba(24, 181, 218, 0.22);
}

.grade-conteudo,
.grade-pacientes,
.grade-formulario {
    display: grid;
    gap: 18px;
    margin-top: 22px;
}

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

.grade-conteudo--prontuarios,
.grade-conteudo--prontuario-ficha {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grade-pacientes,
.grade-formulario {
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
}

.pilha-paineis {
    display: grid;
    gap: 18px;
    margin-top: 22px;
}

.filtro-listagem {
    margin-bottom: 18px;
}

.filtro-listagem__grade {
    display: grid;
    gap: 16px;
    margin-bottom: 16px;
}

.filtro-listagem__grade--duplo,
.filtro-listagem__grade--orcamentos {
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: end;
}

.filtro-listagem__grade--triplo {
    grid-template-columns: minmax(0, 1fr) 220px 220px;
    align-items: end;
}

.filtro-listagem__grade--datas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
}

.filtro-listagem__grade--datas-triplo {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
}

.campo--data-filtro {
    max-width: 320px;
}

.filtro-listagem__linha {
    display: flex;
    gap: 12px;
    align-items: center;
}

.filtro-listagem__linha input {
    flex: 1 1 auto;
}

.painel-scroll-listagem {
    max-height: 760px;
    overflow: auto;
    padding-right: 4px;
}

.painel-scroll-listagem--dez {
    max-height: 620px;
}

.painel-scroll-listagem--vinte {
    max-height: 840px;
}

.tabela-responsiva--itens {
    max-height: 346px;
    overflow: auto;
    border-radius: 18px;
    padding: 2px 4px 4px;
}

.tabela-responsiva--orcamento-itens {
    overflow: auto;
}

.grade-agenda {
    display: grid;
    grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.6fr);
    gap: 18px;
    margin-top: 22px;
    align-items: start;
}

.area-principal--modal {
    display: grid;
    align-content: start;
}

.painel {
    padding: 24px;
    border-radius: var(--raio-grande);
    background: var(--fundo-cartao);
    border: 1px solid var(--borda);
    box-shadow: var(--sombra-card);
}

.painel--agenda {
    background:
        linear-gradient(180deg, rgba(24, 181, 218, 0.05), rgba(24, 181, 218, 0.01)),
        var(--fundo-cartao);
}

.painel--agenda-semanal {
    margin-top: 22px;
    padding: 18px;
    overflow: hidden;
}

.painel--tabela {
    overflow: hidden;
}

.painel--central-listagem {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 254, 0.98));
    border: 1px solid rgba(24, 181, 218, 0.10);
    box-shadow: 0 22px 42px rgba(9, 33, 51, 0.09);
}

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

.painel h3 {
    font-size: 1.45rem;
    color: #102d41;
}

.painel__topo--central {
    margin-bottom: 22px;
}

.painel__descricao {
    margin: 10px 0 0;
    color: #678093;
    line-height: 1.7;
}

.filtro-listagem--central {
    padding: 18px;
    margin-bottom: 22px;
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(24, 181, 218, 0.05), rgba(255, 255, 255, 0.96));
    border: 1px solid rgba(24, 181, 218, 0.10);
}

.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    background: #e7fbef;
    color: #156543;
    font-weight: 700;
    font-size: 0.86rem;
}

.lista-status,
.lista-check {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 14px;
}

.lista-status li,
.lista-check li {
    padding: 16px 18px;
    border-radius: 18px;
    background: #f7fbfe;
    border: 1px solid rgba(15, 53, 79, 0.08);
}

.lista-status strong,
.lista-check li {
    color: #113146;
}

.lista-status span {
    display: block;
    margin-top: 6px;
    color: var(--texto-suave);
}

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

.blocos-mini--quatro {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bloco-mini {
    padding: 18px;
    border-radius: 18px;
    background: #f7fbfe;
    border: 1px solid rgba(15, 53, 79, 0.08);
}

.bloco-mini strong {
    display: block;
    color: #12354a;
    margin-bottom: 8px;
}

.bloco-mini p,
.texto-painel {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.7;
}

.prontuario-cabecalho {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 26px;
    align-items: start;
    margin-top: 22px;
}

.prontuario-cabecalho__dados {
    display: grid;
    gap: 16px;
}

.abas-prontuario {
    display: grid;
    gap: 18px;
    margin-top: 22px;
}

.abas-prontuario__navegacao {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.abas-prontuario__botao {
    min-height: 46px;
    padding: 0 18px;
    border-radius: 14px;
    border: 1px solid rgba(15, 53, 79, 0.10);
    background: #ffffff;
    color: #123145;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.abas-prontuario__botao:hover {
    transform: translateY(-1px);
    border-color: rgba(24, 181, 218, 0.24);
    background: #f4fbfe;
}

.abas-prontuario__botao--ativo {
    background: linear-gradient(135deg, #18b5da 0%, #0f86a8 100%);
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 14px 28px rgba(24, 181, 218, 0.20);
}

.abas-prontuario__painel {
    display: none;
}

.abas-prontuario__painel--ativo {
    display: block;
}

.lista-registros {
    display: grid;
    gap: 14px;
}

.lista-registros__item {
    padding: 18px 20px;
    border-radius: 18px;
    background: #f7fbfe;
    border: 1px solid rgba(15, 53, 79, 0.08);
}

.lista-registros__cabecalho {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
}

.lista-registros__cabecalho strong {
    display: block;
    color: #123145;
    font-size: 1.02rem;
}

.lista-registros__cabecalho span {
    display: block;
    margin-top: 6px;
    color: var(--texto-suave);
}

.lista-registros__corpo {
    margin-top: 12px;
    color: #163345;
}

.lista-registros__corpo p {
    margin: 0;
    line-height: 1.7;
}

.lista-registros__meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.lista-registros__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: #eaf3f8;
    color: #4d6d81;
    font-size: 0.84rem;
}

.campo__ajuda {
    color: var(--texto-suave);
    font-size: 0.88rem;
}

.campo__obrigatorio {
    color: #b02222;
    text-decoration: none;
    cursor: help;
    margin-left: 2px;
    font-weight: 700;
}

.grupo-permissoes {
    margin: 0;
    padding: 0;
    border: none;
}

.grupo-permissoes legend {
    margin-bottom: 10px;
    padding: 0;
    font-weight: 700;
    color: #19384b;
}

.permissoes-por-modulo > .campo__ajuda {
    display: block;
    margin: -2px 0 14px;
}

.permissoes-abas {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 6px;
    border: 1px solid rgba(15, 53, 79, 0.10);
    border-radius: 16px;
    background: #f1f7fb;
    scrollbar-width: thin;
}

.permissoes-aba {
    flex: 0 0 auto;
    padding: 11px 18px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #547083;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.permissoes-aba:hover {
    color: #123145;
    background: rgba(255, 255, 255, 0.7);
}

.permissoes-aba--ativa {
    color: #ffffff;
    background: linear-gradient(135deg, #11b8d4, #118eae);
    box-shadow: 0 8px 18px rgba(17, 142, 174, 0.22);
}

.permissoes-painel {
    display: none;
    margin-top: 14px;
    padding: 20px;
    border: 1px solid rgba(15, 53, 79, 0.10);
    border-radius: 20px;
    background: #fbfdff;
}

.permissoes-painel--ativo {
    display: block;
}

.permissoes-painel__topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.permissoes-painel__topo > div {
    display: grid;
    gap: 4px;
}

.permissoes-painel__topo strong {
    color: #123145;
    font-size: 1.08rem;
}

.permissoes-painel__topo span {
    color: var(--texto-suave);
    font-size: 0.88rem;
}

.botao-selecao-modulo {
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid rgba(17, 142, 174, 0.24);
    border-radius: 10px;
    background: #edf9fc;
    color: #087f9c;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 800;
    cursor: pointer;
}

.botao-selecao-modulo:hover {
    background: #dff4f9;
}

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

.grade-permissoes--duas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.permissao-card {
    display: grid;
    gap: 10px;
    align-content: start;
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid rgba(15, 53, 79, 0.10);
    background: #f8fbfe;
    cursor: pointer;
}

.permissao-card input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.permissao-card span {
    font-weight: 700;
    color: #123145;
}

.permissao-card small {
    color: var(--texto-suave);
    line-height: 1.6;
}

.permissao-card--grande {
    min-height: 132px;
}

.lista-permissoes {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.permissao-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: #edf7fc;
    color: #3f687f;
    font-size: 0.8rem;
    font-weight: 700;
}

.permissao-pill--vazia {
    background: #f1f3f5;
    color: #71808b;
}

.bloco-anamnese-personalizada {
    display: grid;
    gap: 16px;
    margin-top: 6px;
    padding: 20px;
    border-radius: 22px;
    background: #f8fbfe;
    border: 1px solid rgba(15, 53, 79, 0.08);
}

.bloco-anamnese-personalizada__topo {
    display: grid;
    gap: 6px;
}

.bloco-anamnese-personalizada__topo h4 {
    margin: 0;
    font-size: 1.1rem;
    color: #103045;
}

.bloco-anamnese-personalizada__topo p,
.bloco-anamnese-personalizada__vazio {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.6;
}

.lista-perguntas-anamnese {
    display: grid;
    gap: 14px;
}

.pergunta-anamnese-card {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid rgba(15, 53, 79, 0.08);
}

.pergunta-anamnese-card__cabecalho {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.pergunta-anamnese-card__cabecalho strong {
    color: #123145;
}

.pergunta-anamnese-card__cabecalho span {
    color: #5a7a8f;
    font-size: 0.84rem;
    font-weight: 700;
}

.odontograma-anamnese {
    display: grid;
    gap: 16px;
    margin-top: 6px;
    padding: 22px;
    border-radius: 22px;
    background:
        radial-gradient(circle at top left, rgba(24, 181, 218, 0.10), transparent 28%),
        linear-gradient(180deg, #fafdff 0%, #f2fbff 100%);
    border: 1px solid rgba(24, 181, 218, 0.18);
    box-shadow:
        inset 0 0 0 1px rgba(24, 181, 218, 0.04),
        0 10px 24px rgba(15, 53, 79, 0.05);
}

.odontograma-anamnese__painel {
    display: grid;
    gap: 14px;
}

.odontograma-anamnese__arcadas {
    display: grid;
    gap: 14px;
}

.odontograma-anamnese__arcada {
    position: relative;
    padding: 16px 18px 12px;
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(24, 181, 218, 0.10);
    overflow: hidden;
}

.odontograma-anamnese__arcada::before {
    content: "";
    position: absolute;
    left: 5%;
    right: 5%;
    height: 54px;
    border: 2px solid rgba(24, 181, 218, 0.22);
    border-bottom: none;
    border-radius: 999px 999px 0 0;
    pointer-events: none;
}

.odontograma-anamnese__arcada--superior::before {
    top: 12px;
}

.odontograma-anamnese__arcada--inferior::before {
    bottom: 12px;
    border: 2px solid rgba(24, 181, 218, 0.18);
    border-top: none;
    border-radius: 0 0 999px 999px;
}

.odontograma-anamnese__cabecalho,
.odontograma-anamnese__rodape {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.odontograma-anamnese__lado {
    text-align: center;
    color: #5f90a7;
    font-weight: 700;
    font-size: 1rem;
}

.odontograma-anamnese__grupos {
    display: grid;
    grid-template-columns: 3fr 2fr 1fr 2fr 1fr 2fr 3fr;
    gap: 8px;
    align-items: end;
}

.odontograma-anamnese__grupo-titulo {
    position: relative;
    text-align: center;
    color: #4e7f95;
    font-size: 0.84rem;
    font-weight: 700;
    padding-bottom: 10px;
}

.odontograma-anamnese__grupo-titulo::after {
    content: "";
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 0;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(24, 181, 218, 0.12), rgba(24, 181, 218, 0.7), rgba(24, 181, 218, 0.12));
}

.odontograma-anamnese__linha {
    position: relative;
    display: grid;
    grid-template-columns: repeat(16, minmax(0, 1fr));
    gap: 10px;
}

.odontograma-anamnese__linha .odontograma-anamnese__dente:nth-child(8) {
    margin-right: 10px;
}

.odontograma-anamnese__linha .odontograma-anamnese__dente:nth-child(9) {
    margin-left: 10px;
}

.odontograma-anamnese__divisoria {
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(24, 181, 218, 0.18), rgba(24, 181, 218, 0.8), rgba(24, 181, 218, 0.18));
    margin: 2px 0;
}

.odontograma-anamnese__dente {
    display: grid;
    justify-items: center;
    gap: 8px;
    transition: transform 180ms ease;
}

.odontograma-anamnese__dente:hover {
    transform: translateY(-3px);
}

.odontograma-anamnese__dente i {
    position: relative;
    display: block;
    width: 34px;
    height: 52px;
    background: linear-gradient(180deg, #fffef8 0%, #f6f0df 55%, #efe5c8 100%);
    border: 1px solid rgba(194, 183, 148, 0.82);
    box-shadow:
        inset 0 -6px 10px rgba(214, 203, 169, 0.36),
        0 6px 16px rgba(15, 53, 79, 0.08);
}

.odontograma-anamnese__dente span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(15, 53, 79, 0.08);
    color: #123145;
    font-weight: 700;
    font-size: 0.84rem;
}

.odontograma-anamnese__dente--molar i {
    width: 38px;
    clip-path: polygon(18% 4%, 32% 0, 44% 6%, 56% 0, 70% 4%, 82% 16%, 80% 46%, 70% 64%, 60% 100%, 48% 78%, 36% 100%, 26% 64%, 18% 46%, 16% 16%);
    border-radius: 12px 12px 18px 18px;
}

.odontograma-anamnese__dente--premolar i {
    width: 32px;
    clip-path: polygon(24% 4%, 38% 0, 50% 8%, 62% 0, 76% 4%, 80% 26%, 74% 50%, 62% 68%, 52% 100%, 40% 72%, 28% 100%, 18% 68%, 26% 50%, 20% 26%);
    border-radius: 12px 12px 18px 18px;
}

.odontograma-anamnese__dente--canino i {
    width: 28px;
    clip-path: polygon(48% 0, 74% 16%, 72% 48%, 58% 68%, 52% 100%, 42% 66%, 28% 48%, 26% 16%);
    border-radius: 14px 14px 20px 20px;
}

.odontograma-anamnese__dente--incisivo i {
    width: 24px;
    clip-path: polygon(28% 0, 72% 0, 76% 36%, 62% 74%, 52% 100%, 42% 74%, 24% 36%);
    border-radius: 12px 12px 18px 18px;
}

.odontograma-anamnese__dente--inferior i {
    transform: rotate(180deg);
}

.odontograma-plano {
    display: grid;
    gap: 10px;
    margin: 4px 0 6px;
}

.odontograma-plano__arco {
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border-radius: 20px;
    background: rgba(238, 241, 246, 0.5);
}

.odontograma-plano__dente {
    display: grid;
    justify-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: transform 150ms ease;
    font-family: inherit;
}

.odontograma-plano__dente:hover {
    transform: translateY(-3px);
}

.odontograma-plano__dente i {
    position: relative;
    display: block;
    width: 30px;
    height: 44px;
    background: linear-gradient(180deg, #eef1f6 0%, #e3e7ee 100%);
    border: 1px solid #d7deea;
}

.odontograma-plano__dente span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    min-height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(15, 53, 79, 0.08);
    color: #7c8aa0;
    font-weight: 700;
    font-size: 0.7rem;
}

.odontograma-plano__dente--molar i {
    width: 34px;
    clip-path: polygon(18% 4%, 32% 0, 44% 6%, 56% 0, 70% 4%, 82% 16%, 80% 46%, 70% 64%, 60% 100%, 48% 78%, 36% 100%, 26% 64%, 18% 46%, 16% 16%);
    border-radius: 10px 10px 16px 16px;
}

.odontograma-plano__dente--premolar i {
    width: 28px;
    clip-path: polygon(24% 4%, 38% 0, 50% 8%, 62% 0, 76% 4%, 80% 26%, 74% 50%, 62% 68%, 52% 100%, 40% 72%, 28% 100%, 18% 68%, 26% 50%, 20% 26%);
    border-radius: 10px 10px 16px 16px;
}

.odontograma-plano__dente--canino i {
    width: 24px;
    clip-path: polygon(48% 0, 74% 16%, 72% 48%, 58% 68%, 52% 100%, 42% 66%, 28% 48%, 26% 16%);
    border-radius: 12px 12px 18px 18px;
}

.odontograma-plano__dente--incisivo i {
    width: 20px;
    clip-path: polygon(28% 0, 72% 0, 76% 36%, 62% 74%, 52% 100%, 42% 74%, 24% 36%);
    border-radius: 10px 10px 16px 16px;
}

.odontograma-plano__arco--inferior .odontograma-plano__dente i {
    transform: rotate(180deg);
}

.odontograma-plano__dente--sem-item i {
    opacity: 0.45;
}

.odontograma-plano__dente--sem-agendamento i {
    background: linear-gradient(180deg, #fff3d4 0%, #f4d99f 100%);
    border-color: #e8a329;
}

.odontograma-plano__dente--agendado i {
    background: linear-gradient(180deg, #e3f6fb 0%, #b9e6f2 100%);
    border-color: #18b5da;
}

.odontograma-plano__dente--atrasado i {
    background: linear-gradient(180deg, #ffe1dc 0%, #f4b7b0 100%);
    border-color: #e05246;
}

.odontograma-plano__dente--realizado i {
    background: linear-gradient(180deg, #dff8e9 0%, #aee6c7 100%);
    border-color: #32ae69;
}

.odontograma-plano__dente--sem-agendamento span,
.odontograma-plano__dente--agendado span,
.odontograma-plano__dente--atrasado span,
.odontograma-plano__dente--realizado span {
    color: #123145;
}

.odontograma-plano__legenda {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    font-size: 0.78rem;
    color: var(--texto-suave);
}

.odontograma-plano__legenda span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.odontograma-plano__legenda i {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 4px;
    border: 1px solid transparent;
}

.odontograma-plano__legenda i.odontograma-plano__dente--sem-item { background: #e3e7ee; opacity: 1; }
.odontograma-plano__legenda i.odontograma-plano__dente--sem-agendamento { background: #f4d99f; border-color: #e8a329; }
.odontograma-plano__legenda i.odontograma-plano__dente--agendado { background: #b9e6f2; border-color: #18b5da; }
.odontograma-plano__legenda i.odontograma-plano__dente--atrasado { background: #f4b7b0; border-color: #e05246; }
.odontograma-plano__legenda i.odontograma-plano__dente--realizado { background: #aee6c7; border-color: #32ae69; }

.linha-destacada {
    animation: destaque-linha 1.6s ease;
}

@keyframes destaque-linha {
    0% { background-color: rgba(24, 181, 218, 0.28); }
    100% { background-color: transparent; }
}

.comparativo {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}

.comparativo__item {
    min-height: 140px;
    padding: 20px;
    border-radius: 20px;
    background:
        linear-gradient(180deg, rgba(24, 181, 218, 0.10), rgba(255, 255, 255, 0.96)),
        var(--fundo-cartao);
    border: 1px solid rgba(24, 181, 218, 0.18);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.comparativo__item span {
    color: #4d7e95;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.74rem;
}

.comparativo__item strong {
    margin-top: 8px;
    font-size: 1.16rem;
    color: #123044;
}

.alerta-moderno {
    margin-top: 22px;
    padding: 20px 22px;
    border-radius: 20px;
    border: 1px solid rgba(41, 155, 97, 0.16);
    background: var(--sucesso);
    color: var(--sucesso-texto);
}

.alerta-moderno strong,
.alerta-moderno p {
    margin: 0;
}

.alerta-moderno p {
    margin-top: 6px;
}

.coluna-infos {
    display: grid;
    gap: 18px;
    align-content: start;
}

.tabela-responsiva {
    overflow-x: auto;
}

.tabela {
    width: 100%;
    border-collapse: collapse;
}

.tabela--moderna thead th {
    padding: 0 20px 14px 0;
    text-align: left;
    color: #648296;
    font-size: 0.79rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid rgba(15, 53, 79, 0.10);
}

.tabela--moderna thead th:last-child {
    padding-right: 0;
}

.tabela--moderna tbody td {
    padding: 18px 20px 18px 0;
    border-bottom: 1px solid rgba(15, 53, 79, 0.08);
    color: #163345;
}

.tabela--moderna tbody td:last-child {
    padding-right: 0;
}

.tabela--moderna tbody tr:last-child td {
    border-bottom: none;
}

.tabela--moderna tbody tr:hover td {
    background: rgba(17, 136, 170, 0.045);
}

.tabela__acoes {
    width: 220px;
}

.tabela__descricao {
    margin-top: 8px;
    color: var(--texto-suave);
    line-height: 1.6;
}

.acoes-tabela {
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    align-items: center;
}

.painel--interno {
    margin-top: 16px;
    background: rgba(245, 250, 255, 0.76);
}

.item-orcamento-editor {
    margin-bottom: 18px;
}

.item-orcamento-editor--topo {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 0.55fr);
}

.orcamento-itens {
    display: grid;
    gap: 16px;
}

.orcamento-item {
    padding: 18px;
    border: 1px solid rgba(15, 53, 79, 0.1);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.88);
}

.orcamento-resumo {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 20px;
}

.campo--acoes {
    justify-content: flex-end;
}

.campo--acoes .botao {
    align-self: flex-start;
}

.campo--acoes .acoes-item-orcamento {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.orcamento-item-linha--em-edicao {
    background: rgba(24, 181, 218, 0.08);
}

.tabela-itens-orcamento td .botao-acao-tabela {
    margin-left: auto;
}

.orcamento-item__valor-editavel {
    width: 110px;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(245, 163, 74, 0.55);
    background: #fff8ee;
    font: inherit;
    color: #123145;
}

.tabela-itens-orcamento {
    min-width: 960px;
    width: 100%;
}

.tabela-itens-orcamento thead th:first-child,
.tabela-itens-orcamento tbody td:first-child {
    padding-left: 16px;
}

.tabela-itens-orcamento thead th:last-child,
.tabela-itens-orcamento tbody td:last-child {
    padding-right: 16px;
}

.orcamento-itens__vazio td {
    color: var(--texto-suave);
}

.tabela__apoio {
    margin-top: 6px;
    color: var(--texto-suave);
    font-size: 0.9rem;
}

.acoes-tabela form {
    margin: 0;
}

.acoes-tabela--linha {
    flex-wrap: nowrap;
}

.texto-acessivel {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.botao-acao-tabela {
    width: 38px;
    height: 38px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border-radius: 12px;
    border: 1px solid rgba(15, 53, 79, 0.12);
    background: #ffffff;
    color: #123145;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 0 8px 16px rgba(9, 33, 51, 0.06);
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.botao-acao-tabela:hover {
    transform: translateY(-1px);
    border-color: rgba(24, 181, 218, 0.30);
    background: #eef8fd;
}

.botao-acao-tabela svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.botao-acao-tabela--primario {
    background: linear-gradient(135deg, #18b5da 0%, #0f86a8 100%);
    color: #ffffff;
    border-color: transparent;
}

.botao-acao-tabela--perigo {
    background: linear-gradient(135deg, #ff7a6a 0%, #dd4a3a 100%);
    color: #ffffff;
    border-color: transparent;
}

.botao-acao-tabela--info {
    background: linear-gradient(135deg, #22c1c3 0%, #1a8f91 100%);
    color: #ffffff;
    border-color: transparent;
}

.botao-acao-tabela--sucesso {
    background: linear-gradient(135deg, #3ed17e 0%, #269a5b 100%);
    color: #ffffff;
    border-color: transparent;
}

.botao-acao-tabela--perigo-suave {
    color: #c44a3d;
    background: #fff4f2;
    border-color: rgba(221, 74, 58, 0.18);
}

.botao-acao-tabela--aviso {
    background: linear-gradient(135deg, #ffb74a 0%, #e8922a 100%);
    color: #ffffff;
    border-color: transparent;
}

.botao-acao-tabela--texto {
    width: auto;
    min-width: 74px;
    height: 34px;
    padding: 0 12px;
    font-size: 0.82rem;
    font-weight: 700;
}

.status-tabela {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 700;
}

.status-tabela--ativo {
    background: #e7fbef;
    color: #156543;
}

.status-tabela--inativo {
    background: #eef3f7;
    color: #60788c;
}

.status-tabela--pendente {
    background: #fff4d9;
    color: #8a5a00;
}

.status-tabela--alerta {
    background: #fff1ee;
    color: #a33d33;
}

/* Destaques financeiros compartilhados pelo paciente e pelas contas a receber. */
.status-financeiro {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 11px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

.status-financeiro--grande {
    min-height: 38px;
    padding: 0 15px;
    font-size: 0.86rem;
}

.status-financeiro--pago {
    color: #14633f;
    background: #dff8e9;
}

.status-financeiro--atrasado {
    color: #a33d33;
    background: #ffebe8;
}

.status-financeiro--parcial {
    color: #6632a4;
    background: #f0e7ff;
}

.status-financeiro--pendente {
    color: #875b0f;
    background: #fff3d4;
}

.status-financeiro--cancelado,
.status-financeiro--neutro {
    color: #60788c;
    background: #eef3f7;
}

.tabela--moderna tbody tr[class*="linha-financeira--"] td:first-child {
    padding-left: 14px;
}

.tabela--moderna tbody tr.linha-financeira--pago td {
    background: rgba(56, 190, 112, 0.075);
}

.tabela--moderna tbody tr.linha-financeira--pago td:first-child {
    box-shadow: inset 4px 0 #32ae69;
}

.tabela--moderna tbody tr.linha-financeira--atrasado td {
    background: rgba(230, 79, 67, 0.075);
}

.tabela--moderna tbody tr.linha-financeira--atrasado td:first-child {
    box-shadow: inset 4px 0 #e05246;
}

.tabela--moderna tbody tr.linha-financeira--parcial td {
    background: rgba(124, 69, 190, 0.075);
}

.tabela--moderna tbody tr.linha-financeira--parcial td:first-child {
    box-shadow: inset 4px 0 #7b45bd;
}

.tabela--moderna tbody tr.linha-financeira--pendente td {
    background: rgba(236, 169, 54, 0.055);
}

.tabela--moderna tbody tr.linha-financeira--pendente td:first-child {
    box-shadow: inset 4px 0 #e8a329;
}

.tabela--moderna tbody tr.linha-financeira--cancelado td {
    background: rgba(96, 120, 140, 0.045);
}

.topo-app--financeiro-paciente {
    align-items: flex-end;
}

.financeiro-paciente__sobrelinha {
    display: block;
    margin-bottom: 7px;
    color: var(--primaria-escura);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.financeiro-paciente__identificacao {
    display: flex;
    gap: 9px;
    margin: 8px 0 0;
    color: var(--texto-suave);
}

.financeiro-paciente__acoes-topo {
    align-items: center;
}

.financeiro-paciente__kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 22px 0;
}

.financeiro-kpi {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 112px;
    padding: 19px;
    border: 1px solid var(--borda);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--sombra-card);
}

.financeiro-kpi__icone,
.financeiro-pagamento__icone {
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
}

.financeiro-kpi svg,
.financeiro-pagamento__icone svg,
.aba-financeiro svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.financeiro-kpi div {
    display: grid;
    min-width: 0;
    gap: 5px;
}

.financeiro-kpi div span {
    color: var(--texto-suave);
    font-size: 0.8rem;
    font-weight: 700;
}

.financeiro-kpi div strong {
    color: #153247;
    font-size: clamp(1.05rem, 1.5vw, 1.38rem);
}

.financeiro-kpi--pago { border-top: 4px solid #32ae69; }
.financeiro-kpi--pago .financeiro-kpi__icone { color: #177448; background: #dff8e9; }
.financeiro-kpi--atrasado { border-top: 4px solid #e05246; }
.financeiro-kpi--atrasado .financeiro-kpi__icone { color: #b13c33; background: #ffebe8; }
.financeiro-kpi--parcial { border-top: 4px solid #7b45bd; }
.financeiro-kpi--parcial .financeiro-kpi__icone { color: #6937a5; background: #f0e7ff; }
.financeiro-kpi--pendente { border-top: 4px solid #e8a329; }
.financeiro-kpi--pendente .financeiro-kpi__icone { color: #8c5e0c; background: #fff3d4; }

.abas-financeiro {
    display: inline-flex;
    gap: 6px;
    margin-bottom: 18px;
    padding: 6px;
    border: 1px solid var(--borda);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.76);
}

.aba-financeiro {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 17px;
    border: 0;
    border-radius: 11px;
    color: var(--texto-suave);
    background: transparent;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.aba-financeiro.is-active {
    color: #fff;
    background: linear-gradient(135deg, var(--primaria), var(--primaria-escura));
    box-shadow: 0 8px 20px rgba(13, 111, 140, 0.18);
}

[data-painel-financeiro][hidden] {
    display: none !important;
}

.grade-financeiro-paciente {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.financeiro-paciente__bloco {
    min-width: 0;
}

.financeiro-paciente__bloco-topo {
    align-items: center;
    gap: 16px;
}

.financeiro-paciente__bloco-topo h3,
.financeiro-paciente__bloco-topo p {
    margin: 0;
}

.financeiro-paciente__bloco-topo p {
    margin-top: 5px;
    color: var(--texto-suave);
    font-size: 0.88rem;
}

.financeiro-paciente__orcamentos,
.financeiro-paciente__historico {
    margin-top: 18px;
}

.financeiro-vazio {
    display: grid;
    justify-items: center;
    gap: 6px;
    padding: 38px 20px;
    border: 1px dashed rgba(15, 53, 79, 0.16);
    border-radius: 16px;
    color: var(--texto-suave);
    text-align: center;
}

.financeiro-vazio strong { color: var(--texto); }

.financeiro-lancamentos,
.financeiro-pagamentos {
    display: grid;
    gap: 10px;
}

.financeiro-lancamento {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 16px;
    padding: 14px 15px 14px 18px;
    border: 1px solid var(--borda);
    border-left: 4px solid #e8a329;
    border-radius: 15px;
    background: #fff;
}

.financeiro-lancamento--atrasado { border-left-color: #e05246; background: #fff9f8; }
.financeiro-lancamento--parcial { border-left-color: #7b45bd; background: #fcfaff; }
.financeiro-lancamento--pago { border-left-color: #32ae69; background: #f9fffb; }

.financeiro-lancamento__principal,
.financeiro-lancamento__vencimento {
    display: grid;
    gap: 5px;
}

.financeiro-lancamento__principal span,
.financeiro-lancamento__vencimento > span:first-child,
.financeiro-pagamento div span {
    color: var(--texto-suave);
    font-size: 0.8rem;
}

.financeiro-lancamento__valor { white-space: nowrap; }

.financeiro-pagamento {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 13px;
    border: 1px solid rgba(48, 173, 104, 0.15);
    border-radius: 15px;
    background: #f9fffb;
}

.financeiro-pagamento__icone { color: #177448; background: #dff8e9; }
.financeiro-pagamento div { display: grid; gap: 4px; }

.linha-tempo-financeira {
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.linha-tempo-financeira__item {
    position: relative;
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 18px;
    min-height: 76px;
    margin-left: 8px;
    padding: 13px 0 13px 30px;
    border-left: 2px solid #d8e3eb;
}

.linha-tempo-financeira__marcador {
    position: absolute;
    left: -8px;
    top: 30px;
    width: 14px;
    height: 14px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #7c91a1;
    box-shadow: 0 0 0 2px #d8e3eb;
}

.linha-tempo-financeira__item--pago .linha-tempo-financeira__marcador { background: #32ae69; box-shadow: 0 0 0 2px #aee6c7; }
.linha-tempo-financeira__item--atrasado .linha-tempo-financeira__marcador { background: #e05246; box-shadow: 0 0 0 2px #f4b7b0; }
.linha-tempo-financeira__item--parcial .linha-tempo-financeira__marcador { background: #7b45bd; box-shadow: 0 0 0 2px #cfb9e9; }
.linha-tempo-financeira__item--pendente .linha-tempo-financeira__marcador { background: #e8a329; box-shadow: 0 0 0 2px #f4d99f; }

.linha-tempo-financeira__item time {
    color: var(--texto-suave);
    font-size: 0.8rem;
    font-weight: 700;
}

.linha-tempo-financeira__conteudo { display: grid; gap: 5px; }
.linha-tempo-financeira__conteudo span { color: var(--texto-suave); font-size: 0.88rem; }
.linha-tempo-financeira__valor { white-space: nowrap; }

.stepper-situacao {
    display: flex;
    align-items: flex-start;
    margin: 4px 0 20px;
}

.stepper-situacao__passo {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    position: relative;
}

.stepper-situacao__linha {
    position: absolute;
    top: 16px;
    left: -50%;
    width: 100%;
    height: 2px;
    background: #d7deea;
    z-index: 0;
}

.stepper-situacao__passo:first-child .stepper-situacao__linha {
    display: none;
}

.stepper-situacao__bolha {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef1f6;
    color: #7c8aa0;
    font-weight: 700;
    font-size: 0.85rem;
    border: 2px solid #d7deea;
    position: relative;
    z-index: 1;
}

.stepper-situacao__passo--concluido .stepper-situacao__bolha {
    background: #32ae69;
    border-color: #32ae69;
    color: #fff;
}

.stepper-situacao__passo--concluido .stepper-situacao__linha {
    background: #32ae69;
}

.stepper-situacao__passo--ativo .stepper-situacao__bolha {
    background: #18b5da;
    border-color: #18b5da;
    color: #fff;
    box-shadow: 0 0 0 4px rgba(24, 181, 218, 0.18);
}

.stepper-situacao__passo--ativo .stepper-situacao__linha {
    background: #18b5da;
}

.stepper-situacao__rotulo {
    margin-top: 8px;
    font-size: 0.8rem;
    color: var(--texto-suave);
    text-align: center;
}

.stepper-situacao__passo--concluido .stepper-situacao__rotulo,
.stepper-situacao__passo--ativo .stepper-situacao__rotulo {
    color: #123145;
    font-weight: 600;
}

@media (max-width: 720px) {
    .stepper-situacao__rotulo { font-size: 0.72rem; }
}

@media (max-width: 1180px) {
    .financeiro-paciente__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grade-financeiro-paciente { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .topo-app--financeiro-paciente { align-items: stretch; }
    .financeiro-paciente__acoes-topo { align-items: stretch; }
    .financeiro-paciente__kpis { grid-template-columns: 1fr; }
    .financeiro-lancamento { grid-template-columns: 1fr; }
    .financeiro-pagamento { grid-template-columns: auto minmax(0, 1fr) auto; }
    .financeiro-pagamento > .botao-acao-tabela { grid-column: 2 / -1; }
    .linha-tempo-financeira__item { grid-template-columns: 1fr auto; gap: 8px 12px; }
    .linha-tempo-financeira__item time { grid-column: 1 / -1; }
}

.subtitulo-pagina {
    margin: 7px 0 0;
    color: var(--texto-suave);
    line-height: 1.45;
}

.cartao-kpi--perigo {
    border-top: 4px solid #e05246;
    background: linear-gradient(180deg, #fff 0%, #fff8f7 100%);
}

.cartao-kpi--sucesso {
    border-top: 4px solid #32ae69;
    background: linear-gradient(180deg, #fff 0%, #f6fff9 100%);
}

.texto-limitado {
    max-width: 420px;
    overflow: hidden;
    color: var(--texto-suave);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.texto-perigo { color: #b33e34 !important; font-weight: 800; }
.texto-sucesso { color: #177448 !important; font-weight: 800; }

.tabela-guia-itens {
    min-width: 1120px;
}

.tabela-guia-itens select,
.tabela-guia-itens input {
    width: 100%;
    min-width: 92px;
    padding: 10px 11px;
    border: 1px solid rgba(15, 53, 79, 0.14);
    border-radius: 11px;
    color: var(--texto);
    background: #f8fbfd;
    font: inherit;
}

.tabela-guia-itens td:first-child select { min-width: 245px; }
.tabela-guia-itens td { padding-top: 12px; padding-bottom: 12px; }

.convenio-guia-totais {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.convenio-guia-totais span {
    display: grid;
    gap: 4px;
    min-width: 165px;
    padding: 13px 16px;
    border: 1px solid var(--borda);
    border-radius: 14px;
    color: var(--texto-suave);
    background: #f8fbfd;
    font-size: 0.79rem;
}

.convenio-guia-totais strong {
    color: var(--texto);
    font-size: 1.02rem;
}

.link-tabela {
    color: #1188aa;
    text-decoration: none;
    font-weight: 700;
}

.link-tabela:hover {
    text-decoration: underline;
}

.formulario-moderno {
    display: grid;
    gap: 18px;
}

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

.campo {
    display: grid;
    align-content: start;
    gap: 8px;
}

.campo--largo {
    grid-column: 1 / -1;
}

.campo span {
    font-weight: 700;
    color: #19384b;
}

.campo input,
.campo select,
.campo textarea {
    width: 100%;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(15, 53, 79, 0.12);
    background: #f8fbfe;
    color: #123145;
    font: inherit;
    transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
    resize: vertical;
}

.campo input:focus,
.campo select:focus,
.campo textarea:focus {
    outline: none;
    border-color: rgba(24, 181, 218, 0.60);
    box-shadow: 0 0 0 4px rgba(24, 181, 218, 0.12);
    background: #ffffff;
}

.acoes-formulario {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.central-status {
    display: grid;
    gap: 8px;
    justify-items: start;
}

.acoes-tabela--central {
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 8px;
}

.tabela__acoes--central {
    width: 110px;
}

.menu-acoes-central {
    position: relative;
}

.menu-acoes-central__lista {
    display: none;
    position: fixed;
    z-index: 1000;
    min-width: 240px;
    padding: 8px;
    background: #ffffff;
    border: 1px solid rgba(15, 53, 79, 0.10);
    border-radius: 16px;
    box-shadow: 0 18px 40px rgba(9, 33, 51, 0.16);
}

.menu-acoes-central__lista form {
    margin: 0;
}

.menu-acoes-central__item {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: #163345;
    font-size: 0.88rem;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: background 140ms ease, color 140ms ease;
}

.menu-acoes-central__item:hover {
    background: #eef8fd;
}

.menu-acoes-central__item svg {
    flex: none;
    width: 17px;
    height: 17px;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.menu-acoes-central__item--positivo:hover {
    background: #e7fbef;
    color: #156543;
}

.menu-acoes-central__item--alerta:hover {
    background: #fff6e6;
    color: #a8650f;
}

.menu-acoes-central__item--perigo {
    color: #c44a3d;
}

.menu-acoes-central__item--perigo:hover {
    background: #fff4f2;
    color: #a8332a;
}

.menu-acoes-central__separador {
    height: 1px;
    margin: 6px 4px;
    background: rgba(15, 53, 79, 0.10);
}

.linha-central--paga td {
    background: rgba(23, 140, 84, 0.05);
}

.linha-central--devendo td {
    background: rgba(221, 74, 58, 0.07);
}

.linha-central--pendente td {
    background: rgba(255, 191, 71, 0.07);
}

.linha-central--paga td:first-child,
.linha-central--devendo td:first-child,
.linha-central--pendente td:first-child {
    padding-left: 14px;
    border-top-left-radius: 16px;
    border-bottom-left-radius: 16px;
}

.linha-central--paga td:last-child,
.linha-central--devendo td:last-child,
.linha-central--pendente td:last-child {
    padding-right: 14px;
    border-top-right-radius: 16px;
    border-bottom-right-radius: 16px;
}

.painel-scroll-listagem--central {
    max-height: 760px;
}

.central-resumo-rapido {
    display: grid;
    gap: 14px;
}

.central-resumo-rapido__item {
    padding: 18px;
    border-radius: 18px;
    background: #f7fbfe;
    border: 1px solid rgba(15, 53, 79, 0.08);
}

.central-resumo-rapido__item span {
    display: block;
    color: #597386;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.central-resumo-rapido__item strong {
    display: block;
    margin-top: 8px;
    color: #123145;
    line-height: 1.5;
}

.campo-arquivo-escondido {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.foto-paciente {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}

.paciente-cabecalho-formulario {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    padding: 18px;
}

.paciente-cabecalho-formulario__foto,
.paciente-cabecalho-formulario__dados {
    margin: 0;
}

.paciente-cabecalho-formulario__foto {
    padding: 6px 2px 6px 0;
}

.paciente-cabecalho-formulario__dados .painel__topo {
    margin-bottom: 14px;
}

.foto-paciente__coluna {
    display: grid;
    justify-items: center;
    gap: 12px;
}

.foto-paciente__moldura {
    width: min(100%, 210px);
    aspect-ratio: 3 / 4;
    border-radius: 24px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(24, 181, 218, 0.08), rgba(255, 255, 255, 0.96)),
        #f7fbfe;
    border: 1px solid rgba(15, 53, 79, 0.10);
    box-shadow: var(--sombra-card);
}

.foto-paciente__imagem {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.foto-paciente__imagem--oculta {
    display: none;
}

.foto-paciente__placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    text-align: center;
    gap: 6px;
    padding: 18px;
    color: #5d7990;
}

.foto-paciente__placeholder strong {
    font-size: 1.15rem;
    color: #153346;
}

.foto-paciente__placeholder span,
.foto-paciente__observacao {
    color: var(--texto-suave);
    line-height: 1.6;
}

.foto-paciente__placeholder--oculto {
    display: none;
}

.foto-paciente__acoes {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.foto-paciente__acoes--icones {
    justify-content: center;
    gap: 10px;
}

.botao-icone {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border-radius: 14px;
    border: 1px solid rgba(15, 53, 79, 0.12);
    background: #f8fbfe;
    color: #123145;
    cursor: pointer;
    box-shadow: 0 8px 16px rgba(9, 33, 51, 0.06);
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.botao-icone:hover {
    transform: translateY(-1px);
    border-color: rgba(24, 181, 218, 0.32);
    background: #eef8fd;
}

.botao-icone svg {
    width: 19px;
    height: 19px;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.botao-icone--primario {
    background: linear-gradient(135deg, #18b5da 0%, #0f86a8 100%);
    color: #ffffff;
    border-color: transparent;
}

.botao-icone--alerta {
    color: #b43d3d;
}

.modal-webcam {
    display: grid;
    gap: 18px;
}

.modal-webcam__conteudo {
    display: grid;
    gap: 14px;
}

.modal-webcam__video {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 22px;
    background: #0d2234;
    box-shadow: var(--sombra-card);
}

.modal-webcam__mensagem {
    margin: 0;
    color: var(--texto-suave);
    line-height: 1.6;
}

.botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 20px;
    border-radius: 14px;
    border: none;
    cursor: pointer;
    background: linear-gradient(135deg, #18b5da 0%, #0f86a8 100%);
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    box-shadow: 0 14px 28px rgba(24, 181, 218, 0.20);
    transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
}

.botao span {
    color: inherit;
}

.botao svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.botao:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 34px rgba(24, 181, 218, 0.24);
}

.botao--secundario {
    background: #e8f7fb;
    color: #0f6a86;
    border: 1px solid rgba(15, 134, 168, 0.18);
    box-shadow: none;
}

.botao--secundario:hover {
    background: #d8f0f7;
}

.botao--aviso {
    background: linear-gradient(135deg, #ffb74a 0%, #e8922a 100%);
    color: #ffffff;
    box-shadow: 0 14px 28px rgba(232, 146, 42, 0.22);
}

.botao--sucesso {
    background: linear-gradient(135deg, #3ed17e 0%, #269a5b 100%);
    color: #ffffff;
    box-shadow: 0 14px 28px rgba(38, 154, 91, 0.22);
}

.botao--pequeno {
    min-height: 38px;
    padding: 0 14px;
    border-radius: 12px;
    font-size: 0.92rem;
    box-shadow: none;
}

.botao--perigo {
    background: linear-gradient(135deg, #ff7a6a 0%, #dd4a3a 100%);
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(221, 74, 58, 0.16);
}

.painel__topo--agenda {
    align-items: end;
}

.agenda-semanal__topo {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.agenda-semanal__navegacao,
.agenda-semanal__acoes {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.agenda-semanal__topo--com-filtros {
    align-items: center;
}

.agenda-semanal__acoes--com-filtros {
    justify-content: flex-end;
}

.grupo-modos {
    display: inline-flex;
    gap: 8px;
    padding: 4px;
    border-radius: 16px;
    background: #f4f8fc;
    border: 1px solid rgba(15, 53, 79, 0.08);
}

.agenda-semanal__navegacao strong {
    font-size: 1.15rem;
    color: #102d41;
}

.agenda-semanal__seta {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: inline-grid;
    place-items: center;
    text-decoration: none;
    color: #123145;
    background: #f4f8fc;
    border: 1px solid rgba(15, 53, 79, 0.10);
}

.agenda-semanal {
    border: 1px solid rgba(15, 53, 79, 0.10);
    border-radius: 24px;
    overflow: hidden;
    background: #ffffff;
    --agenda-colunas: 5;
}

.agenda-semanal__cabecalho {
    display: grid;
    grid-template-columns: 76px repeat(var(--agenda-colunas), minmax(180px, 1fr));
    border-bottom: 1px solid rgba(15, 53, 79, 0.10);
    background: #ffffff;
}

.agenda-semanal__coluna-hora {
    border-right: 1px solid rgba(15, 53, 79, 0.10);
    background: #f8fbfe;
}

.agenda-semanal__dia {
    min-height: 78px;
    padding: 14px 14px 10px;
    border-right: 1px solid rgba(15, 53, 79, 0.10);
    display: grid;
    align-content: start;
    gap: 2px;
}

.agenda-semanal__dia:last-child {
    border-right: none;
}

.agenda-semanal__dia strong {
    font-size: 2rem;
    line-height: 1;
    color: #5a56cc;
}

.agenda-semanal__dia span {
    color: #4f6e82;
}

.agenda-semanal__dia--hoje {
    background: linear-gradient(180deg, rgba(90, 86, 204, 0.08), rgba(255, 255, 255, 0.88));
}

.agenda-semanal__corpo {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    max-height: 980px;
    overflow: auto;
}

.agenda-semanal__horarios {
    background: #ffffff;
    border-right: 1px solid rgba(15, 53, 79, 0.10);
}

.agenda-semanal__horario {
    height: 44px;
    padding: 10px 10px 0;
    color: #698397;
    font-size: 0.84rem;
    border-bottom: 1px dashed rgba(15, 53, 79, 0.08);
}

.agenda-semanal__grade {
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--agenda-colunas), minmax(180px, 1fr));
    grid-template-rows: repeat(var(--agenda-linhas, 30), 44px);
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(15, 53, 79, 0.08) 0,
            rgba(15, 53, 79, 0.08) 1px,
            transparent 1px,
            transparent 44px
        );
}

.agenda-semanal__grade::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to right, rgba(15, 53, 79, 0.10) 1px, transparent 1px);
    background-size: calc(100% / var(--agenda-colunas)) 100%;
    pointer-events: none;
}

.agenda-semanal__slot {
    display: block;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-right: 1px solid rgba(15, 53, 79, 0.06);
    border-bottom: 1px dashed rgba(15, 53, 79, 0.05);
    z-index: 1;
}

.agenda-semanal__slot:hover {
    background: rgba(90, 86, 204, 0.08);
}

.agenda-semanal__evento {
    display: block;
    width: calc(100% - 10px);
    height: calc(100% - 2px);
    margin: 1px 5px;
    padding: 8px 10px;
    border-radius: 14px;
    border: none;
    background: linear-gradient(135deg, var(--evento-cor-principal, #5c63d7) 0%, var(--evento-cor-secundaria, #4b55c2) 100%);
    color: var(--evento-cor-texto, #ffffff);
    box-shadow: 0 10px 18px rgba(15, 53, 79, 0.18);
    z-index: 2;
    overflow: hidden;
    text-align: left;
    font: inherit;
    cursor: pointer;
    align-self: stretch;
    box-sizing: border-box;
}

.agenda-semanal__evento--compacto {
    padding: 6px 10px;
}

.agenda-semanal__evento--compacto p,
.agenda-semanal__evento--compacto .agenda-semanal__evento-meta {
    display: none;
}

.agenda-semanal__evento--compacto strong {
    margin-top: 2px;
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.agenda-semanal__evento--agendado {
    --evento-cor-principal: #5c63d7;
    --evento-cor-secundaria: #4b55c2;
    --evento-cor-texto: #ffffff;
}

.agenda-semanal__evento--confirmado {
    --evento-cor-principal: #26b56c;
    --evento-cor-secundaria: #1c9958;
    --evento-cor-texto: #ffffff;
}

.agenda-semanal__evento--em_atendimento {
    --evento-cor-principal: #f5a34a;
    --evento-cor-secundaria: #df8237;
    --evento-cor-texto: #102d41;
}

.agenda-semanal__evento--finalizado {
    --evento-cor-principal: #3c5a7f;
    --evento-cor-secundaria: #284461;
    --evento-cor-texto: #ffffff;
}

.agenda-semanal__evento--cancelado,
.agenda-semanal__evento--falta {
    --evento-cor-principal: #ef7163;
    --evento-cor-secundaria: #d94c3e;
    --evento-cor-texto: #ffffff;
}

.agenda-semanal__evento-horario {
    font-size: 0.82rem;
    opacity: 0.95;
}

.agenda-semanal__evento strong {
    display: block;
    margin-top: 4px;
    font-size: 0.96rem;
}

.agenda-semanal__evento p {
    margin: 6px 0 0;
    font-size: 0.88rem;
    line-height: 1.35;
    opacity: 0.94;
}

.agenda-semanal__evento-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.agenda-semanal__evento-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 0.75rem;
}

.agenda-semanal__evento:hover {
    filter: brightness(1.03);
}

.janela-agendamento {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(15, 53, 79, 0.10);
    border-radius: 28px;
    box-shadow: var(--sombra-forte);
    overflow: hidden;
}

.janela-agendamento__barra {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(15, 53, 79, 0.10);
    background: #f8fbfe;
}

.janela-agendamento__barra strong {
    display: block;
    font-size: 1.25rem;
    color: #102d41;
}

.janela-agendamento__barra span {
    color: var(--texto-suave);
}

.janela-agendamento__acoes {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.janela-agendamento__conteudo {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.72fr);
    gap: 14px;
    padding: 16px;
}

.janela-agendamento__formulario,
.janela-agendamento__preview {
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(15, 53, 79, 0.10);
    background: #ffffff;
}

.janela-agendamento__preview-topo {
    display: grid;
    gap: 4px;
    margin-bottom: 14px;
}

.janela-agendamento__preview-topo strong {
    color: #102d41;
}

.janela-agendamento__preview-topo span {
    color: #5a56cc;
    font-weight: 700;
}

.preview-agenda {
    position: relative;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr);
    grid-template-rows: repeat(var(--preview-linhas, 30), 24px);
    border-radius: 18px;
    overflow: hidden;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(15, 53, 79, 0.08) 0,
            rgba(15, 53, 79, 0.08) 1px,
            transparent 1px,
            transparent 24px
        );
    border: 1px solid rgba(15, 53, 79, 0.10);
}

.preview-agenda__horario {
    grid-column: 1;
    padding: 4px 8px 0 10px;
    font-size: 0.76rem;
    color: #6a8295;
    border-right: 1px solid rgba(15, 53, 79, 0.08);
    border-bottom: 1px dashed rgba(15, 53, 79, 0.05);
    background: rgba(248, 251, 254, 0.82);
}

.preview-agenda__horario span {
    display: block;
}

.preview-agenda__evento {
    align-self: stretch;
    margin: 3px 8px;
    padding: 10px 12px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--preview-cor-principal, #5c63d7) 0%, var(--preview-cor-secundaria, #4b55c2) 100%);
    color: var(--preview-cor-texto, #ffffff);
    z-index: 2;
}

.preview-agenda__evento strong {
    display: block;
}

.preview-agenda__evento span {
    display: block;
    margin-top: 6px;
    font-size: 0.86rem;
}

.campo-busca {
    position: relative;
}

.campo-busca--combobox::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 7px solid #17384e;
    transform: translateY(-35%);
    pointer-events: none;
}

.campo-busca--combobox > input {
    padding-right: 48px;
}

/* Em layouts com vários paineis empilhados em grid (ex.: formulário + tabela na mesma tela),
   o painel que contém um combo digitável aberto precisa ficar acima dos paineis seguintes,
   senão o dropdown de sugestões renderiza atrás do próximo painel. */
.pilha-paineis > .painel:has(.campo-busca__lista--ativa) {
    position: relative;
    z-index: 5;
}

.campo-busca__lista {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    display: none;
    padding: 8px;
    border-radius: 18px;
    border: 1px solid rgba(15, 53, 79, 0.10);
    background: #ffffff;
    box-shadow: 0 18px 36px rgba(9, 33, 51, 0.12);
    z-index: 20;
}

.campo-busca__lista--ativa {
    display: grid;
    gap: 6px;
}

.campo-busca__lista--tuss {
    max-height: 300px;
    overflow-y: auto;
}

.campo-busca__lista--rolagem {
    max-height: 320px;
    overflow-y: auto;
}

.campo-busca__item {
    width: 100%;
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    text-align: left;
    border: 1px solid transparent;
    border-radius: 14px;
    background: #f8fbfe;
    cursor: pointer;
    color: #123145;
    font: inherit;
}

.campo-busca__item:hover {
    background: #eef7ff;
    border-color: rgba(24, 181, 218, 0.18);
}

.campo-busca__item--ativo {
    background: #eef7ff;
    border-color: rgba(24, 181, 218, 0.32);
}

.campo-busca__item--tuss {
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}

.campo-busca__item--tuss strong {
    color: #0d7898;
    letter-spacing: 0.02em;
}

.campo-busca__item--tuss span {
    font-size: 0.9rem;
    color: #29485c;
}

.campo-busca__item strong {
    font-size: 0.95rem;
}

.campo-busca__item span {
    font-size: 0.82rem;
    color: var(--texto-suave);
}

.campo-busca__fonte {
    display: none;
}

.integracao-tiss-portal {
    margin-top: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(24, 181, 218, 0.2);
    border-radius: 16px;
    background: #f1fbfe;
    color: #17384e;
}

.integracao-tiss-portal p {
    margin: 6px 0 0;
    color: var(--texto-suave);
}

.campo__titulo-com-acao {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.campo__link-acao {
    font-size: 0.88rem;
    color: #1188aa;
    text-decoration: none;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    font: inherit;
}

.botao--ativo {
    background: linear-gradient(135deg, #18b5da 0%, #1a8fc4 100%);
    color: #ffffff;
    border-color: transparent;
}

.agenda-mensal {
    display: grid;
    gap: 14px;
}

.agenda-mensal__cabecalho,
.agenda-mensal__grade {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
}

.agenda-mensal__cabecalho span {
    min-height: 42px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #f4f8fc;
    color: #597284;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 0.78rem;
}

.agenda-mensal__dia {
    min-height: 190px;
    display: grid;
    align-content: start;
    gap: 12px;
    padding: 14px;
    border-radius: 20px;
    border: 1px solid rgba(15, 53, 79, 0.10);
    background: #ffffff;
}

.agenda-mensal__dia--fora {
    opacity: 0.5;
    background: #f8fbfe;
}

.agenda-mensal__dia--hoje {
    border-color: rgba(24, 181, 218, 0.34);
    box-shadow: 0 12px 24px rgba(24, 181, 218, 0.10);
}

.agenda-mensal__topo-dia {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.agenda-mensal__topo-dia strong {
    color: #123145;
    font-size: 1.15rem;
}

.agenda-mensal__botao-novo {
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    border: none;
    border-radius: 10px;
    background: #18b5da;
    color: #ffffff;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
}

.agenda-mensal__resumo {
    display: grid;
    gap: 10px;
}

.agenda-mensal__contador {
    font-size: 0.86rem;
    color: #58758a;
    font-weight: 700;
}

.agenda-mensal__lista {
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.agenda-mensal__lista li,
.agenda-mensal__vazio {
    margin: 0;
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8fbfe;
    color: #25465b;
    font-size: 0.86rem;
    line-height: 1.45;
}

.modal-app {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(8, 25, 39, 0.56);
    z-index: 120;
}

.modal-app--aberto {
    display: flex;
}

.modal-app__janela {
    width: min(760px, 100%);
    max-height: calc(100vh - 48px);
    overflow: auto;
}

.modal-app__janela--larga {
    width: min(1320px, 100%);
}

.modal-app__janela--detalhe {
    width: min(560px, 100%);
}

.painel--modal {
    padding: 22px;
}

.painel__topo--modal {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.popover-evento {
    position: fixed;
    z-index: 60;
    width: min(430px, calc(100vw - 32px));
    display: none;
}

.popover-evento--aberto {
    display: block;
}

.modal-detalhe-evento {
    position: relative;
    padding: 18px 18px 16px;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 22px 48px rgba(9, 33, 51, 0.18);
    overflow: hidden;
}

.modal-detalhe-evento__faixa {
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--detalhe-cor-principal, #1f79db) 0%, var(--detalhe-cor-secundaria, #18b5da) 100%);
}

.modal-detalhe-evento__topo {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    padding-top: 10px;
}

.modal-detalhe-evento__etiqueta {
    display: inline-block;
    margin-bottom: 8px;
    color: #5c6f7f;
    font-weight: 800;
    font-size: 0.95rem;
}

.modal-detalhe-evento__topo h3 {
    margin: 0;
    color: #3d4d5a;
    font-size: 2rem;
    line-height: 1.18;
}

.modal-detalhe-evento__topo p {
    margin: 8px 0 0;
    color: #6f7d88;
    font-size: 1.02rem;
    font-weight: 700;
}

.modal-detalhe-evento__fechar {
    border: none;
    background: transparent;
    color: #657786;
    cursor: pointer;
    font-size: 2rem;
    line-height: 1;
}

.modal-detalhe-evento__bloco {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 16px 0;
    border-top: 1px solid rgba(15, 53, 79, 0.10);
}

.modal-detalhe-evento__bloco--coluna {
    display: block;
}

.modal-detalhe-evento__icone {
    color: #6f7d88;
    font-size: 1.25rem;
    line-height: 1;
}

.modal-detalhe-evento__bloco p {
    margin: 0;
    color: #5f6e7a;
    font-size: 1rem;
    line-height: 1.55;
}

.modal-detalhe-evento__linha {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.modal-detalhe-evento__avatar {
    width: 36px;
    height: 36px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: #e8a3cf;
    color: #7b2559;
    font-size: 0.78rem;
    font-weight: 800;
    flex: 0 0 auto;
}

.modal-detalhe-evento__linha strong {
    display: block;
    margin-bottom: 6px;
    color: #4b5b68;
    font-size: 1rem;
}

.modal-detalhe-evento__rodape {
    padding-top: 6px;
}

.modal-detalhe-evento__status {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--detalhe-cor-principal, #edf6fb) 0%, var(--detalhe-cor-secundaria, #dbeef8) 100%);
    color: var(--detalhe-cor-texto, #ffffff);
    font-weight: 700;
}

.campo--sem-espacamento {
    gap: 6px;
}

.paleta-agenda__amostra {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    min-width: 180px;
    padding: 0 18px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--paleta-principal, #5c63d7) 0%, var(--paleta-secundaria, #4b55c2) 100%);
    color: var(--paleta-texto, #ffffff);
    font-weight: 700;
    box-shadow: 0 10px 18px rgba(15, 53, 79, 0.12);
}

.filtro-agenda {
    display: flex;
    gap: 12px;
    align-items: end;
    flex-wrap: wrap;
}

.agenda-grade {
    display: grid;
    border: 1px solid rgba(15, 53, 79, 0.10);
    border-radius: 24px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(24, 181, 218, 0.05), rgba(255, 255, 255, 0.9)),
        #ffffff;
}

.agenda-faixa {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    min-height: 88px;
    border-bottom: 1px solid rgba(15, 53, 79, 0.08);
}

.agenda-faixa:last-child {
    border-bottom: none;
}

.agenda-faixa__hora {
    padding: 18px 14px;
    background: rgba(244, 249, 252, 0.95);
    border-right: 1px solid rgba(15, 53, 79, 0.08);
    color: #58758a;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.agenda-faixa__conteudo {
    display: grid;
    gap: 12px;
    padding: 12px 14px;
    align-content: start;
}

.agenda-faixa__vazio {
    min-height: 62px;
    display: flex;
    align-items: center;
    padding: 0 16px;
    border: 1px dashed rgba(15, 53, 79, 0.10);
    border-radius: 18px;
    color: #8aa0b2;
    background: rgba(248, 251, 254, 0.88);
}

.agenda-evento {
    padding: 16px 18px;
    border-radius: 18px;
    border-left: 6px solid var(--primaria);
    background: #ffffff;
    box-shadow: 0 10px 22px rgba(9, 33, 51, 0.08);
}

.agenda-evento--agendado {
    border-left-color: #20b2d6;
}

.agenda-evento--confirmado {
    border-left-color: #31b96b;
}

.agenda-evento--em_atendimento {
    border-left-color: #ffb347;
}

.agenda-evento--finalizado {
    border-left-color: #355f7d;
}

.agenda-evento--cancelado,
.agenda-evento--falta {
    border-left-color: #dd4a3a;
}

.agenda-evento__cabecalho {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.agenda-evento__cabecalho strong {
    color: #123145;
}

.agenda-evento__cabecalho span {
    color: #4d7e95;
    font-size: 0.88rem;
    font-weight: 700;
}

.agenda-evento p {
    margin: 8px 0 0;
    color: #1a3a4e;
    font-weight: 700;
}

.agenda-evento__meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.agenda-evento__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: #eff5f9;
    color: #45687d;
    font-size: 0.84rem;
}

.painel-relatorio-preview {
    display: grid;
}

.configuracao-relatorio-personalizada {
    display: grid;
    gap: 22px;
}

.campo--cartao {
    display: grid;
    gap: 10px;
}

.permissao-card--compacta {
    min-height: auto;
    padding: 18px;
}

.is-hidden {
    display: none !important;
}

.painel-relatorio-preview__folha {
    position: relative;
    display: grid;
    gap: 18px;
    min-height: 520px;
    padding: 26px;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid rgba(15, 53, 79, 0.10);
    background:
        linear-gradient(180deg, rgba(24, 181, 218, 0.04), rgba(255, 255, 255, 0.96)),
        #ffffff;
}

.painel-relatorio-preview__folha--timbrada {
    min-height: 640px;
    padding: 118px 52px 104px;
}

.painel-relatorio-preview__timbrado {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center top;
    opacity: 1;
    pointer-events: none;
}

.painel-relatorio-preview__marca {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%) rotate(-28deg);
    font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.1;
    color: rgba(48, 126, 158, 0.12);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-align: center;
    pointer-events: none;
}

.painel-relatorio-preview__topo {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.painel-relatorio-preview__folha--timbrada .painel-relatorio-preview__topo {
    margin-top: 8px;
}

.painel-relatorio-preview__topo strong {
    display: block;
    color: #123145;
    font-size: 1.18rem;
}

.painel-relatorio-preview__topo span {
    display: block;
    margin-top: 6px;
    color: #668296;
}

.painel-relatorio-preview__topo img {
    width: 96px;
    max-height: 96px;
    object-fit: contain;
}

.painel-relatorio-preview__corpo {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 14px;
}

.painel-relatorio-preview__corpo h4 {
    margin: 0;
    font-size: 1.3rem;
    color: #123145;
}

.painel-relatorio-preview__corpo p {
    margin: 0;
    color: #587488;
    line-height: 1.7;
}

.painel-relatorio-preview__assinatura {
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(15, 53, 79, 0.10);
}

.painel-relatorio-preview__assinatura span,
.painel-relatorio-preview__assinatura small {
    display: block;
    color: #668296;
}

.painel-relatorio-preview__assinatura span {
    margin-bottom: 6px;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.painel-relatorio-preview__assinatura strong {
    display: block;
    color: #123145;
    font-size: 1rem;
}

.painel-relatorio-preview__assinatura small {
    margin-top: 4px;
}

.painel-relatorio-preview__rodape {
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid rgba(15, 53, 79, 0.10);
    color: #5a778a;
    line-height: 1.65;
}

.painel-relatorio-preview__folha--timbrada .painel-relatorio-preview__rodape {
    margin-bottom: 10px;
    background: rgba(255, 255, 255, 0.74);
    border-radius: 14px;
    padding: 12px 14px 0;
}

.erro {
    color: #b02222;
    min-height: 1rem;
    font-size: 0.92rem;
}

@keyframes subir {
    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1260px) {
    .grade-kpis,
    .grade-conteudo {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .blocos-mini,
    .comparativo {
        grid-template-columns: 1fr;
    }

    .blocos-mini--quatro {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1080px) {
    .app-shell {
        grid-template-columns: 1fr;
    }

    .login-shell {
        grid-template-columns: 1fr;
    }

    .barra-lateral {
        border-right: none;
        border-bottom: 1px solid var(--borda-escura);
        gap: 16px;
    }

    .menu-mobile-alternador {
        display: inline-flex;
    }

    .menu-lateral,
    .barra-lateral__rodape {
        display: none;
    }

    .barra-lateral--menu-aberto .menu-lateral,
    .barra-lateral--menu-aberto .barra-lateral__rodape {
        display: grid;
    }

    .grade-pacientes,
    .grade-formulario,
    .grade-central,
    .hero,
    .grade-agenda,
    .janela-agendamento__conteudo,
    .foto-paciente,
    .prontuario-cabecalho,
    .paciente-cabecalho-formulario {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .pagina-app {
        padding: 10px;
    }

    .pagina-login {
        padding: 12px;
    }

    .app-shell {
        min-height: calc(100vh - 20px);
        border-radius: 24px;
    }

    .login-shell {
        min-height: calc(100vh - 24px);
        border-radius: 26px;
    }

    .area-principal,
    .barra-lateral {
        padding: 20px;
    }

    .login-hero,
    .login-card {
        padding: 24px;
    }

    .topo-app {
        flex-direction: column;
        align-items: flex-start;
    }

    .grade-kpis,
    .grade-conteudo,
    .grid-campos,
    .orcamento-resumo,
    .filtro-listagem__grade--triplo,
    .filtro-listagem__grade--duplo,
    .filtro-listagem__grade--orcamentos,
    .filtro-listagem__grade--datas,
    .filtro-listagem__grade--datas-triplo {
        grid-template-columns: 1fr;
    }

    .grade-permissoes,
    .grade-permissoes--duas,
    .odontograma-anamnese__linha {
        grid-template-columns: 1fr;
    }

    .permissoes-painel {
        padding: 16px;
    }

    .permissoes-painel__topo {
        align-items: flex-start;
        flex-direction: column;
    }

    .odontograma-anamnese__arcada {
        padding: 18px 14px;
    }

    .odontograma-anamnese__arcada::before,
    .odontograma-anamnese__linha .odontograma-anamnese__dente:nth-child(8),
    .odontograma-anamnese__linha .odontograma-anamnese__dente:nth-child(9) {
        margin: 0;
    }

    .odontograma-anamnese__cabecalho,
    .odontograma-anamnese__rodape,
    .odontograma-anamnese__grupos {
        grid-template-columns: 1fr;
    }

    .acoes-tabela {
        flex-wrap: wrap;
    }

    .agenda-semanal__cabecalho,
    .agenda-semanal__corpo {
        min-width: 980px;
    }

    .agenda-faixa {
        grid-template-columns: 1fr;
    }

    .painel-relatorio-preview__topo {
        flex-direction: column;
    }

    .painel-relatorio-preview__folha--timbrada {
        min-height: 560px;
        padding: 96px 24px 90px;
    }

    .agenda-faixa__hora {
        border-right: none;
        border-bottom: 1px solid rgba(15, 53, 79, 0.08);
    }

    .hero,
    .painel,
    .cartao-kpi {
        padding: 20px;
    }
}
input[type="text"]:not([readonly]):not([disabled]):not([data-caixa-alta="ignorar"]),
input:not([type]):not([readonly]):not([disabled]):not([data-caixa-alta="ignorar"]),
input[type="search"]:not([readonly]):not([disabled]):not([data-caixa-alta="ignorar"]),
input[type="tel"]:not([readonly]):not([disabled]):not([data-caixa-alta="ignorar"]),
textarea:not([readonly]):not([disabled]):not([data-caixa-alta="ignorar"]) {
    text-transform: uppercase;
}

.portal-orcamento__acoes {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.portal-orcamento__observacoes {
    margin: 18px 0;
    padding: 16px 18px;
    border: 1px solid #cfe4ed;
    border-radius: 14px;
    background: #f4fbfe;
    color: #16334a;
}

.portal-orcamento__observacoes strong {
    display: block;
    margin-bottom: 8px;
}

.portal-orcamento__observacoes p {
    margin: 0;
    white-space: pre-line;
}

.portal-orcamento__recusa {
    margin-top: 20px;
    padding: 20px;
    border: 1px solid rgba(201, 67, 67, 0.22);
    border-radius: 18px;
    background: rgba(255, 244, 244, 0.72);
}

.portal-orcamento__recusa fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.portal-orcamento__recusa legend {
    color: var(--texto);
    font-size: 1rem;
    font-weight: 800;
}

.portal-orcamento__motivos {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.portal-orcamento__motivo {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--borda);
    border-radius: 14px;
    background: var(--fundo-cartao);
    cursor: pointer;
}

.portal-orcamento__motivo input {
    margin-top: 3px;
}

.portal-orcamento__outros {
    margin-top: 16px;
}

.orcamento-recusado p span:first-child {
    font-weight: 700;
}

.baixa-composicao {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--borda);
    border-radius: 16px;
    background: rgba(240, 249, 253, 0.7);
}

.baixa-composicao__topo,
.baixa-composicao__resumo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.baixa-composicao__topo span,
.baixa-composicao__topo strong {
    display: block;
}

.baixa-composicao__topo span {
    margin-bottom: 3px;
    color: var(--texto-suave);
    font-size: 0.82rem;
    font-weight: 700;
}

.baixa-composicao__topo strong {
    color: var(--texto);
    font-size: 1.18rem;
}

#linhasPagamentoBaixa {
    display: grid;
    gap: 12px;
}

.baixa-composicao__linha {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(130px, 0.48fr) auto;
    align-items: end;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid var(--borda);
}

.baixa-composicao__remover {
    margin-bottom: 2px;
}

.baixa-composicao__resumo {
    padding-top: 12px;
    border-top: 1px dashed var(--borda);
    color: var(--texto-suave);
    font-size: 0.88rem;
}

.baixa-composicao__resumo strong {
    color: var(--texto);
}

.baixa-composicao__excedente strong,
.baixa-composicao__erro {
    color: #b33939;
}

.baixa-composicao__erro {
    min-height: 18px;
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
}

#confirmarBaixa:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

@media (max-width: 640px) {
    .baixa-composicao__linha {
        grid-template-columns: 1fr;
    }

    .baixa-composicao__remover {
        justify-self: start;
    }
}

.modal-app__janela--baixa {
    width: min(860px, 100%);
}

.modal-app__janela--baixa .painel--modal {
    padding: 20px;
}

.modal-app__janela--baixa .formulario-moderno {
    gap: 14px;
}

.modal-app__janela--baixa .campo {
    gap: 6px;
}

.modal-app__janela--baixa .campo input,
.modal-app__janela--baixa .campo select {
    padding: 12px 14px;
    border-radius: 13px;
}

.modal-app__janela--baixa .baixa-composicao {
    gap: 12px;
    padding: 14px;
}

.baixa-parcial__opcao {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px 16px;
    border: 1px solid rgba(18, 166, 199, 0.28);
    border-radius: 15px;
    background: rgba(231, 249, 254, 0.72);
    cursor: pointer;
}

.baixa-parcial__opcao input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.baixa-parcial__opcao span,
.baixa-parcial__opcao strong,
.baixa-parcial__opcao small {
    display: block;
}

.baixa-parcial__opcao small {
    margin-top: 3px;
    color: var(--texto-suave);
    line-height: 1.4;
}

.baixa-parcial__saldo {
    padding: 15px;
    border: 1px solid var(--borda);
    border-radius: 16px;
    background: #f8fbfd;
}

.baixa-parcial__saldo-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 15px;
}

.baixa-parcial__saldo-topo strong {
    color: var(--primaria-escura);
    font-size: 1.12rem;
}

.baixa-parcial__saldo .grade-formulario {
    grid-template-columns: minmax(130px, 0.48fr) minmax(180px, 0.8fr) minmax(210px, 1fr);
    gap: 12px;
    margin-top: 0;
}

.baixa-parcial__saldo > p {
    margin: 12px 0 0;
    color: var(--texto-suave);
    font-size: 0.82rem;
}

@media (max-width: 760px) {
    .baixa-parcial__saldo .grade-formulario {
        grid-template-columns: 1fr;
    }
}

.historico-baixa__resumo {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(150px, 0.55fr));
    gap: 18px;
    margin-bottom: 18px;
}

.historico-baixa__resumo span,
.historico-baixa__resumo strong,
.historico-baixa__valores span,
.historico-baixa__valores strong {
    display: block;
}

.historico-baixa__resumo span,
.historico-baixa__valores span {
    margin-bottom: 4px;
    color: var(--texto-suave);
    font-size: 0.78rem;
    font-weight: 700;
}

.historico-baixa {
    position: relative;
    display: grid;
    gap: 16px;
    padding-left: 24px;
}

.historico-baixa::before {
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: 8px;
    width: 2px;
    background: rgba(18, 166, 199, 0.25);
    content: "";
}

.historico-baixa__item {
    position: relative;
    padding: 20px;
}

.historico-baixa__marcador {
    position: absolute;
    top: 22px;
    left: -32px;
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 3px solid var(--fundo-painel);
    border-radius: 50%;
    background: var(--primaria);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
}

.historico-baixa__topo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.historico-baixa__topo > div > span {
    color: var(--texto-suave);
    font-size: 0.78rem;
}

.historico-baixa__topo h3 {
    margin: 4px 0 0;
}

.historico-baixa__valores {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 14px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--borda);
}

.historico-baixa__pagamentos {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding: 14px;
    border-radius: 13px;
    background: #f4fafc;
}

.historico-baixa__pagamento {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) auto;
    gap: 12px;
    color: var(--texto-suave);
    font-size: 0.86rem;
}

.historico-baixa__pagamento strong {
    color: var(--texto);
}

@media (max-width: 760px) {
    .historico-baixa__resumo,
    .historico-baixa__valores {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 520px) {
    .historico-baixa__resumo,
    .historico-baixa__valores,
    .historico-baixa__pagamento {
        grid-template-columns: 1fr;
    }
}

/* Central inteligente de documentos e coleta de assinaturas */
.documento-recomendacoes {
    margin: 0 20px 18px;
    padding: 16px;
    border: 1px solid #bce8f0;
    border-radius: 16px;
    background: linear-gradient(135deg, #effbfc, #f7fbff);
}

.documento-recomendacoes > strong { color: #0c6175; }
.documento-recomendacoes__lista { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.documento-sugestao {
    border: 1px solid #69c9d8;
    border-radius: 999px;
    padding: 8px 13px;
    background: #fff;
    color: #0b6074;
    font: inherit;
    font-size: .86rem;
    font-weight: 700;
    cursor: pointer;
}
.documento-sugestao:hover { background: #dff7fa; }
.documento-evidencias { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.documento-evidencias span,
.documento-evidencias code {
    padding: 5px 9px;
    border-radius: 8px;
    background: #edf8f2;
    color: #176744;
    font-size: .78rem;
}
.documento-assinatura,
.documento-auditoria,
.documento-cancelamento {
    margin-top: 12px;
    border-top: 1px solid #e3ebef;
    padding-top: 12px;
}
.documento-assinatura summary,
.documento-auditoria summary,
.documento-cancelamento summary { color: #164c64; font-weight: 700; cursor: pointer; }
.assinatura-canvas {
    display: block;
    width: 100%;
    max-width: 720px;
    height: 180px;
    margin-top: 12px;
    border: 2px dashed #9eb8c5;
    border-radius: 14px;
    background: #fff;
    touch-action: none;
}
.documento-acao-destaque { margin-top: 14px; }
.documento-auditoria ol { display: grid; gap: 8px; margin: 12px 0 0; padding-left: 22px; }
.documento-auditoria li span,
.documento-auditoria li small { display: block; color: var(--texto-suave); }
.documento-cancelamento form { display: flex; gap: 8px; margin-top: 10px; }
.documento-cancelamento input { flex: 1; min-width: 180px; }

.documentos-hero {
    padding: 24px;
    border-radius: 20px;
    background: linear-gradient(135deg, #082f47, #126b7e);
    color: #fff;
}
.documentos-hero h2 { margin: 0 0 8px; }
.documentos-hero p { max-width: 780px; margin: 0; color: #d9f4f8; }
.variaveis-documento { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.variaveis-documento code { padding: 5px 8px; border-radius: 7px; background: #eef5f7; color: #19546a; }

@media (max-width: 620px) {
    .documento-cancelamento form { flex-direction: column; }
    .assinatura-canvas { height: 140px; }
}
.assinatura-profissional-config {
    margin-top: 22px;
}

.assinatura-profissional-config__grade {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, .8fr);
    gap: 24px;
    align-items: start;
}

.assinatura-profissional-config__papel {
    position: relative;
    overflow: hidden;
    min-height: 190px;
    border: 1px solid #c9dbe5;
    border-radius: 14px;
    background: linear-gradient(180deg, #fff, #fbfdfe);
}

.assinatura-profissional-config__papel .assinatura-canvas {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    height: 190px;
    touch-action: none;
    cursor: crosshair;
}

.assinatura-profissional-config__linha {
    position: absolute;
    z-index: 1;
    right: 8%;
    bottom: 38px;
    left: 8%;
    border-bottom: 1px solid #9db2be;
}

.assinatura-profissional-config__preview {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid #d9e6ec;
    border-radius: 12px;
    background: #fff;
}

.assinatura-profissional-config__preview img {
    width: 100%;
    max-width: 280px;
    max-height: 100px;
    object-fit: contain;
    object-position: left center;
}

@media (max-width: 880px) {
    .assinatura-profissional-config__grade {
        grid-template-columns: 1fr;
    }
}

/* Dashboard gerencial BI */
.pagina-bi {
    --bi-fundo: #07111f;
    --bi-painel: rgba(14, 29, 48, .86);
    --bi-borda: rgba(124, 158, 196, .17);
    --bi-texto: #edf6ff;
    --bi-suave: #8da5bd;
    --bi-ciano: #27d8ca;
    --bi-violeta: #8b7cff;
    --bi-rosa: #ff5c8a;
    --bi-verde: #61e6a7;
    background: var(--bi-fundo);
}

.pagina-bi .app-shell {
    background: var(--bi-fundo);
}

.bi-principal {
    min-width: 0;
    color: var(--bi-texto);
    background:
        radial-gradient(circle at 95% 0%, rgba(39, 216, 202, .12), transparent 31rem),
        radial-gradient(circle at 12% 26%, rgba(139, 124, 255, .10), transparent 25rem),
        linear-gradient(145deg, #07111f 0%, #091526 58%, #07101c 100%);
}

.bi-principal::before {
    content: "";
    position: fixed;
    inset: 0 0 0 280px;
    pointer-events: none;
    opacity: .22;
    background-image: linear-gradient(rgba(118, 153, 188, .07) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(118, 153, 188, .07) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, #000, transparent 70%);
}

.bi-hero,
.bi-filtros,
.bi-kpis,
.bi-grade,
.bi-principal > .bi-painel {
    position: relative;
    z-index: 1;
}

.bi-hero {
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 18px;
    padding: 30px 34px;
    border: 1px solid rgba(78, 220, 213, .19);
    border-radius: 24px;
    background: linear-gradient(125deg, rgba(18, 42, 66, .96), rgba(10, 25, 43, .9));
    box-shadow: 0 24px 60px rgba(0, 0, 0, .24), inset 0 1px rgba(255, 255, 255, .04);
}

.bi-hero::after {
    content: "";
    position: absolute;
    width: 320px;
    height: 320px;
    right: -75px;
    top: -145px;
    border: 1px solid rgba(39, 216, 202, .2);
    border-radius: 50%;
    box-shadow: 0 0 90px rgba(39, 216, 202, .13), inset 0 0 80px rgba(139, 124, 255, .08);
}

.bi-hero__conteudo,
.bi-pulse {
    position: relative;
    z-index: 1;
}

.bi-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #79e9df;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.bi-eyebrow > i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--bi-ciano);
    box-shadow: 0 0 12px var(--bi-ciano);
}

.bi-hero h1 {
    margin: 7px 0 5px;
    color: #fff;
    font-size: clamp(2rem, 3vw, 3.15rem);
    line-height: 1;
    letter-spacing: -.045em;
}

.bi-hero__conteudo > p {
    margin: 0;
    color: #a9bdd1;
    font-size: .98rem;
}

.bi-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.bi-hero__meta span,
.bi-chip {
    padding: 6px 10px;
    border: 1px solid rgba(123, 160, 194, .18);
    border-radius: 999px;
    color: #a9bfd5;
    background: rgba(4, 14, 27, .32);
    font-size: .72rem;
    font-weight: 700;
}

.bi-pulse {
    display: grid;
    justify-items: center;
    min-width: 145px;
}

.bi-pulse__anel {
    display: grid;
    place-items: center;
    width: 108px;
    height: 108px;
    border-radius: 50%;
    background: conic-gradient(var(--bi-ciano) calc(var(--pulse) * 3.6deg), rgba(105, 138, 168, .15) 0);
    box-shadow: 0 0 30px rgba(39, 216, 202, .15);
}

.bi-pulse__anel::before {
    content: "";
    position: absolute;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #0c1c2f;
    box-shadow: inset 0 0 20px rgba(39, 216, 202, .08);
}

.bi-pulse__anel div {
    position: relative;
    display: flex;
    align-items: baseline;
}

.bi-pulse__anel strong { color: #fff; font-size: 2rem; line-height: 1; }
.bi-pulse__anel span { color: var(--bi-suave); font-size: .7rem; }
.bi-pulse > span { margin-top: 9px; color: #fff; font-size: .82rem; font-weight: 800; }
.bi-pulse small { color: var(--bi-suave); font-size: .68rem; }

.bi-filtros {
    margin-bottom: 18px;
    padding: 15px 18px 12px;
    border: 1px solid var(--bi-borda);
    border-radius: 18px;
    background: rgba(12, 27, 46, .86);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .14);
}

.bi-filtros form {
    display: grid;
    grid-template-columns: minmax(145px, .75fr) minmax(145px, .75fr) minmax(190px, 1.2fr) auto auto;
    align-items: end;
    gap: 11px;
}

.bi-filtros label { display: grid; gap: 5px; }
.bi-filtros label span { color: var(--bi-suave); font-size: .69rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.bi-filtros input,
.bi-filtros select {
    min-width: 0;
    height: 42px;
    border: 1px solid rgba(125, 159, 193, .24);
    border-radius: 11px;
    color: #e6f1fb;
    background: rgba(5, 16, 29, .68);
    color-scheme: dark;
}
.bi-filtros select option { background: #0c1b2d; color: #fff; }
.bi-filtros .botao { min-height: 42px; white-space: nowrap; border-radius: 11px; }
.bi-botao-filtrar { box-shadow: 0 8px 22px rgba(18, 170, 193, .18); }
.bi-botao-exportar { color: #b8cadc; border-color: rgba(137, 167, 196, .25); background: rgba(255, 255, 255, .025); }
.bi-filtros > p { margin: 9px 2px 0; color: #738da5; font-size: .72rem; }
.bi-filtros > p strong { color: #9db3c8; }

.bi-kpis {
    display: grid;
    gap: 14px;
    margin-bottom: 18px;
}
.bi-kpis--principais { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bi-kpis--operacao { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.bi-kpi,
.bi-painel {
    border: 1px solid var(--bi-borda);
    background: linear-gradient(145deg, rgba(17, 34, 55, .94), rgba(10, 24, 41, .92));
    box-shadow: 0 16px 38px rgba(0, 0, 0, .17), inset 0 1px rgba(255, 255, 255, .025);
}

.bi-kpi {
    position: relative;
    overflow: hidden;
    min-width: 0;
    padding: 18px;
    border-radius: 17px;
}
.bi-kpi::after { content: ""; position: absolute; inset: auto -20px -45px auto; width: 100px; height: 100px; border-radius: 50%; background: var(--bi-acento, #4c91bb); filter: blur(43px); opacity: .13; }
.bi-kpi--ciano { --bi-acento: var(--bi-ciano); }
.bi-kpi--violeta { --bi-acento: var(--bi-violeta); }
.bi-kpi--rosa { --bi-acento: var(--bi-rosa); }
.bi-kpi--verde { --bi-acento: var(--bi-verde); }
.bi-kpi--alerta { --bi-acento: #ffb052; }
.bi-kpi__topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.bi-kpi__topo > span,
.bi-kpi--compacto > span { color: var(--bi-suave); font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.bi-icone { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid color-mix(in srgb, var(--bi-acento, #4c91bb) 35%, transparent); border-radius: 9px; color: var(--bi-acento, #7fb8da); background: color-mix(in srgb, var(--bi-acento, #4c91bb) 9%, transparent); font-style: normal; }
.bi-kpi > strong { display: block; overflow: hidden; margin: 13px 0 10px; color: #fff; font-size: clamp(1.3rem, 2vw, 1.75rem); line-height: 1; letter-spacing: -.035em; text-overflow: ellipsis; }
.bi-kpi__rodape { display: flex; align-items: center; gap: 8px; }
.bi-kpi__rodape small,
.bi-kpi--compacto small { color: #6f89a2; font-size: .68rem; }
.bi-variacao { padding: 4px 7px; border-radius: 7px; font-size: .68rem; font-weight: 900; }
.bi-variacao--positiva { color: #63e4aa; background: rgba(52, 210, 143, .1); }
.bi-variacao--negativa { color: #ff779b; background: rgba(255, 92, 138, .1); }
.bi-kpi--compacto { display: grid; align-content: center; min-height: 116px; }
.bi-kpi--compacto > strong { margin: 10px 0 4px; font-size: 1.42rem; }

.bi-grade { display: grid; gap: 14px; margin-bottom: 18px; }
.bi-grade--fluxo { grid-template-columns: minmax(0, 2.1fr) minmax(260px, .9fr); }
.bi-grade--insights { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
.bi-painel { min-width: 0; padding: 20px; border-radius: 19px; }
.bi-painel__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 17px; }
.bi-painel__topo h2 { margin: 4px 0 0; color: #f5f9ff; font-size: 1.05rem; letter-spacing: -.015em; }
.bi-legenda { display: flex; gap: 12px; color: #91a8be; font-size: .68rem; }
.bi-legenda span { display: inline-flex; align-items: center; gap: 5px; }
.bi-legenda i { width: 8px; height: 8px; border-radius: 50%; }
.bi-legenda .receita { background: var(--bi-ciano); box-shadow: 0 0 8px rgba(39,216,202,.55); }
.bi-legenda .despesa { background: var(--bi-rosa); box-shadow: 0 0 8px rgba(255,92,138,.45); }
.bi-grafico { height: 260px; }
.bi-grafico canvas { display: block; width: 100%; height: 100%; }
.bi-projecao { display: block; margin: 7px 0 10px; color: #fff; font-size: clamp(1.8rem, 3vw, 2.5rem); letter-spacing: -.045em; }
.bi-painel--pulse > p { color: #7f98b0; font-size: .78rem; line-height: 1.6; }
.bi-mini-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 20px; }
.bi-mini-kpis div { display: grid; gap: 5px; padding: 12px; border: 1px solid rgba(125,160,194,.14); border-radius: 12px; background: rgba(5,15,28,.35); }
.bi-mini-kpis span { color: #7892aa; font-size: .68rem; }
.bi-mini-kpis strong { color: #dff7f5; font-size: .9rem; }

.bi-ao-vivo { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 999px; color: #69dfab; background: rgba(52,210,143,.08); font-size: .65rem; font-weight: 800; }
.bi-ao-vivo i { width: 6px; height: 6px; border-radius: 50%; background: #61e6a7; box-shadow: 0 0 9px #61e6a7; animation: bi-piscar 1.8s infinite; }
@keyframes bi-piscar { 50% { opacity: .3; } }
.bi-insights { display: grid; gap: 9px; }
.bi-insight { --insight: #6faac9; display: grid; grid-template-columns: 7px 1fr; gap: 11px; padding: 11px 12px; border: 1px solid rgba(130,160,190,.1); border-radius: 12px; background: rgba(6,17,30,.34); }
.bi-insight > i { width: 6px; height: 100%; min-height: 34px; border-radius: 999px; background: var(--insight); box-shadow: 0 0 12px color-mix(in srgb, var(--insight) 55%, transparent); }
.bi-insight strong { color: #dfeaf5; font-size: .78rem; }
.bi-insight p { margin: 3px 0 0; color: #7e97af; font-size: .72rem; line-height: 1.4; }
.bi-insight--positivo { --insight: var(--bi-verde); }
.bi-insight--atencao { --insight: #ffb052; }
.bi-insight--critico { --insight: var(--bi-rosa); }
.bi-insight--oportunidade { --insight: var(--bi-violeta); }

.bi-ranking { display: grid; gap: 13px; }
.bi-ranking__linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bi-ranking__linha > span { display: flex; align-items: center; min-width: 0; gap: 8px; }
.bi-ranking__linha b,
.bi-posicao { display: inline-grid; place-items: center; flex: 0 0 auto; width: 23px; height: 23px; border: 1px solid rgba(99,214,204,.19); border-radius: 7px; color: #6fe0d6; background: rgba(39,216,202,.07); font-size: .68rem; }
.bi-ranking__linha strong { overflow: hidden; color: #dbe7f2; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.bi-ranking__linha em { color: #fff; font-size: .75rem; font-style: normal; font-weight: 800; white-space: nowrap; }
.bi-ranking__barra { overflow: hidden; height: 5px; margin: 7px 0 5px 31px; border-radius: 999px; background: rgba(112,145,177,.12); }
.bi-ranking__barra i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--bi-ciano), var(--bi-violeta)); box-shadow: 0 0 10px rgba(39,216,202,.28); }
.bi-ranking__item small { margin-left: 31px; color: #69839c; font-size: .64rem; }
.bi-vazio { padding: 28px 8px; color: #718ba3; text-align: center; font-size: .78rem; }

.bi-painel--tabela { margin-bottom: 8px; }
.bi-tabela { color: #abc0d2; }
.bi-tabela thead th { color: #728ca5; border-color: rgba(121,153,184,.13); background: rgba(4,14,26,.36); font-size: .66rem; text-transform: uppercase; letter-spacing: .045em; }
.bi-tabela tbody td { border-color: rgba(121,153,184,.1); font-size: .74rem; }
.bi-tabela tbody tr:hover { background: rgba(39,216,202,.025); }
.bi-tabela strong { color: #dce8f3; }
.bi-texto-positivo { color: #65dfa9; font-weight: 800; }
.bi-margem { display: inline-block; padding: 5px 8px; border-radius: 8px; color: #6be0d6; background: rgba(39,216,202,.08); font-weight: 900; }
.grupo-menu--bi > summary::after { color: #21bcb5; }

@media (max-width: 1280px) {
    .bi-filtros form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bi-botao-filtrar, .bi-botao-exportar { width: 100%; }
    .bi-kpis--principais { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
    .bi-principal::before { inset: 0; }
    .bi-grade--fluxo,
    .bi-grade--insights { grid-template-columns: 1fr; }
    .bi-kpis--operacao { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .bi-hero { align-items: flex-start; padding: 24px 20px; }
    .bi-pulse { min-width: 100px; }
    .bi-pulse__anel { width: 88px; height: 88px; }
    .bi-pulse__anel::before { width: 72px; height: 72px; }
    .bi-pulse__anel strong { font-size: 1.55rem; }
    .bi-filtros form,
    .bi-kpis--principais,
    .bi-kpis--operacao { grid-template-columns: 1fr; }
    .bi-filtros__profissional { grid-column: auto; }
    .bi-painel { padding: 16px; }
    .bi-painel__topo { flex-wrap: wrap; }
}

@media (max-width: 480px) {
    .bi-hero { display: grid; }
    .bi-pulse { grid-template-columns: auto 1fr; grid-template-rows: auto auto; justify-items: start; column-gap: 10px; }
    .bi-pulse__anel { grid-row: 1 / 3; }
    .bi-pulse > span { align-self: end; }
    .bi-pulse small { align-self: start; }
}
