/* ==========================================================================
   METALRAIL · Sistema de gestão industrial — design system
   Grafite + aço escovado + vermelho incandescente + dourado
   ========================================================================== */

:root {
    --mr-grafite-950: #07080a;
    --mr-grafite-900: #0c0e12;
    --mr-grafite-850: #11141a;
    --mr-grafite-800: #171b22;
    --mr-grafite-700: #232833;
    --mr-aco-500: #6b7383;
    --mr-aco-400: #8b93a3;
    --mr-aco-300: #b3bac6;

    --mr-vermelho: #e4231c;
    --mr-vermelho-escuro: #b3160f;
    --mr-vermelho-brilho: #ff4b3e;
    --mr-laranja: #ff7a1a;
    --mr-dourado: #f0b429;

    --mr-fundo: #f1f2f4;
    --mr-superficie: #ffffff;
    --mr-superficie-2: #f7f8fa;
    --mr-borda: #e3e6ea;
    --mr-borda-forte: #d3d8de;
    --mr-texto: #11141a;
    --mr-texto-suave: #5f6775;
    --mr-texto-fraco: #99a0ac;

    --mr-grad-vermelho: linear-gradient(135deg, #ff5244 0%, #e4231c 48%, #a9130d 100%);
    --mr-grad-dourado: linear-gradient(135deg, #ffd36b 0%, #f0b429 50%, #c98a0b 100%);
    --mr-grad-aco: linear-gradient(135deg, #8391a8 0%, #4a5a73 55%, #2d384a 100%);
    --mr-grad-grafite: linear-gradient(135deg, #3d4350 0%, #1b1f27 100%);
    --mr-grad-verde: linear-gradient(135deg, #3be07f 0%, #1fae5b 55%, #11803f 100%);

    --mr-raio: 16px;
    --mr-raio-md: 12px;
    --mr-sombra-1: 0 1px 2px rgba(17, 20, 26, .04), 0 1px 3px rgba(17, 20, 26, .06);
    --mr-sombra-2: 0 14px 30px -14px rgba(17, 20, 26, .22), 0 3px 8px -3px rgba(17, 20, 26, .07);
    --mr-sombra-3: 0 32px 64px -16px rgba(7, 8, 10, .38), 0 8px 20px -8px rgba(7, 8, 10, .18);
    --mr-brilho-vermelho: 0 8px 22px -8px rgba(228, 35, 28, .65);

    --mr-side-w: 268px;
    --mr-side-w-min: 84px;
    --mr-fonte: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --mr-fonte-display: "Archivo", "Inter", system-ui, sans-serif;
    --mr-ease: cubic-bezier(.2, .8, .2, 1);
}

/* ---------- Base ---------- */
body {
    font-family: var(--mr-fonte);
    color: var(--mr-texto);
    background: var(--mr-fundo);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--mr-fonte-display);
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--mr-texto);
}

::selection { background: rgba(228, 35, 28, .2); }

kbd {
    font-family: var(--mr-fonte);
    font-size: .68rem;
    font-weight: 600;
    color: var(--mr-texto-suave);
    background: var(--mr-superficie-2);
    border: 1px solid var(--mr-borda);
    border-bottom-width: 2px;
    border-radius: 6px;
    padding: 1px 6px;
    box-shadow: none;
}

@keyframes mr-surgir { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes mr-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mr-girar { to { transform: rotate(360deg); } }

.mr-revelar {
    opacity: 0;
    animation: mr-surgir .65s var(--mr-ease) forwards;
    animation-delay: calc(var(--i, 0) * 70ms);
}

/* ==========================================================================
   Estrutura: barra lateral + barra superior + conteúdo
   ========================================================================== */
.mr-layout { display: flex; min-height: 100vh; }

.mr-side {
    position: sticky;
    top: 0;
    height: 100vh;
    width: var(--mr-side-w);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    padding: 18px 14px 14px;
    color: var(--mr-aco-300);
    background:
        radial-gradient(130% 55% at 0% 0%, rgba(228, 35, 28, .22), transparent 62%),
        radial-gradient(90% 40% at 100% 100%, rgba(240, 180, 41, .06), transparent 70%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 3px),
        linear-gradient(180deg, #14171d 0%, #0b0d11 100%);
    border-right: 1px solid rgba(255, 255, 255, .05);
    z-index: 50;
    transition: width .28s var(--mr-ease), transform .28s var(--mr-ease), padding .28s var(--mr-ease);
    overflow: hidden;
}

/* Marca: logo oficial (versão negativa) + faixa "Corte laser & metalurgia" */
.mr-marca {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px 4px 20px;
    text-decoration: none;
}

.mr-logo { display: inline-flex; flex-direction: column; width: 196px; }

.mr-logo-img {
    display: block;
    width: 100%;
    height: auto;
    clip-path: inset(0 0 3% 0);
    filter: drop-shadow(0 6px 18px rgba(228, 35, 28, .25));
}

.mr-logo-faixa {
    display: block;
    margin-top: 2px;
    padding: 2px 6px 2px 0;
    background: var(--mr-vermelho);
    color: #fff;
    font-family: var(--mr-fonte-display);
    font-size: .54rem;
    font-weight: 800;
    letter-spacing: .15em;
    line-height: 1.5;
    text-align: right;
    text-transform: uppercase;
    white-space: nowrap;
}

.mr-logo.grande { width: 280px; }
.mr-logo.grande .mr-logo-faixa { margin-top: 3px; padding: 3px 9px 3px 0; font-size: .74rem; }

/* Marca compacta, só com o menu recolhido */
.mr-marca-compacta {
    display: none;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 13px;
    background: var(--mr-grad-vermelho);
    color: #fff;
    font-family: var(--mr-fonte-display);
    font-size: 1.45rem;
    font-weight: 900;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 10px 26px -8px rgba(228, 35, 28, .85);
}

/* Navegação */
.mr-nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    margin: 0 -6px;
    padding: 0 6px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .12) transparent;
}

.mr-nav-secao {
    padding: 16px 12px 8px;
    font-size: .63rem;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #596070;
    white-space: nowrap;
}

.mr-nav-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    margin-bottom: 2px;
    border-radius: 10px;
    color: #a4acb9;
    font-weight: 500;
    font-size: .92rem;
    text-decoration: none;
    white-space: nowrap;
    transition: background .18s ease, color .18s ease;
}

.mr-nav-icone {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: #767e8d;
    transition: color .18s ease, filter .18s ease;
}

.mr-nav-item:hover { background: rgba(255, 255, 255, .05); color: #fff; }
.mr-nav-item:hover .mr-nav-icone { color: #d7dce4; }

.mr-nav-item.ativo {
    color: #fff;
    background: linear-gradient(90deg, rgba(228, 35, 28, .3), rgba(228, 35, 28, .07) 72%, transparent);
    box-shadow: inset 0 0 0 1px rgba(255, 90, 78, .16);
}

.mr-nav-item.ativo::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    bottom: 9px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--mr-vermelho-brilho);
    box-shadow: 0 0 12px 1px rgba(255, 75, 62, .8);
}

.mr-nav-item.ativo .mr-nav-icone { color: #ff5a4d; filter: drop-shadow(0 0 6px rgba(255, 75, 62, .6)); }

/* Usuário logado */
.mr-side-rodape { margin-top: 10px; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .06); }

.mr-usuario-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .035);
    border: 1px solid rgba(255, 255, 255, .06);
}

.mr-avatar {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 11px;
    display: grid;
    place-items: center;
    font-family: var(--mr-fonte-display);
    font-weight: 800;
    font-size: .8rem;
    letter-spacing: .03em;
    color: #2b1d00;
    background: var(--mr-grad-dourado);
    box-shadow: 0 0 0 2px rgba(240, 180, 41, .22), 0 6px 16px -6px rgba(240, 180, 41, .7);
}

.mr-usuario-info { flex: 1; min-width: 0; line-height: 1.25; }
.mr-usuario-nome { color: #fff; font-weight: 600; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mr-usuario-papel { color: var(--mr-aco-500); font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.mr-btn-sair {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--mr-aco-400);
    transition: background .18s, color .18s;
}

.mr-btn-sair:hover { background: rgba(228, 35, 28, .18); color: #ff6a5e; }

/* Menu recolhido (desktop) */
@media (min-width: 992px) {
    body.mr-side-recolhida .mr-side { width: var(--mr-side-w-min); padding-left: 14px; padding-right: 14px; }
    body.mr-side-recolhida .mr-some-recolhido { display: none !important; }
    body.mr-side-recolhida .mr-marca { padding-left: 0; padding-right: 0; }
    body.mr-side-recolhida .mr-marca-compacta { display: grid; }
    body.mr-side-recolhida .mr-nav { padding-top: 10px; }
    body.mr-side-recolhida .mr-nav-item { justify-content: center; padding: 11px 0; }
    body.mr-side-recolhida .mr-usuario-card { flex-direction: column; gap: 8px; padding: 8px 0; background: transparent; border-color: transparent; }
}

/* Área principal */
.mr-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background-image: radial-gradient(rgba(17, 20, 26, .06) 1px, transparent 1px);
    background-size: 22px 22px;
}

.mr-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    height: 66px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 30px;
    background: rgba(241, 242, 244, .82);
    -webkit-backdrop-filter: saturate(1.6) blur(14px);
    backdrop-filter: saturate(1.6) blur(14px);
    border-bottom: 1px solid rgba(17, 20, 26, .07);
}

.mr-topbar-btn {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border: 1px solid var(--mr-borda);
    border-radius: 10px;
    background: #fff;
    color: var(--mr-texto-suave);
    box-shadow: var(--mr-sombra-1);
    transition: color .18s, border-color .18s, box-shadow .18s;
}

.mr-topbar-btn:hover { color: var(--mr-texto); border-color: var(--mr-borda-forte); box-shadow: var(--mr-sombra-2); }

.mr-trilha { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: .86rem; color: var(--mr-texto-fraco); white-space: nowrap; }
.mr-trilha strong { color: var(--mr-texto); font-weight: 600; }
.mr-trilha svg { flex-shrink: 0; color: #c2c7cf; }

.mr-topbar-direita { margin-left: auto; display: flex; align-items: center; gap: 10px; }

.mr-busca-global {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 300px;
    height: 40px;
    padding: 0 8px 0 14px;
    border: 1px solid var(--mr-borda);
    border-radius: 11px;
    background: #fff;
    color: var(--mr-texto-fraco);
    font-size: .88rem;
    text-align: left;
    box-shadow: var(--mr-sombra-1);
    transition: border-color .18s, color .18s, box-shadow .18s;
}

.mr-busca-global span { flex: 1; }
.mr-busca-global:hover { border-color: var(--mr-borda-forte); color: var(--mr-texto-suave); box-shadow: var(--mr-sombra-2); }

.mr-data-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 14px;
    border-radius: 11px;
    background: var(--mr-grafite-850);
    color: #e9ecf1;
    font-size: .84rem;
    font-weight: 500;
    white-space: nowrap;
    box-shadow: var(--mr-sombra-1), inset 0 1px 0 rgba(255, 255, 255, .06);
}

.mr-data-chip svg { color: var(--mr-dourado); }

.mr-conteudo {
    width: 100%;
    max-width: 1500px;
    padding: 30px 32px 56px;
    animation: mr-surgir .45s var(--mr-ease) both;
}

.mr-side-fundo { display: none; }

@media (max-width: 991.98px) {
    .mr-side {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        transform: translateX(-104%);
        box-shadow: var(--mr-sombra-3);
    }
    body.mr-side-aberta .mr-side { transform: none; }
    body.mr-side-aberta .mr-side-fundo {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 45;
        background: rgba(7, 8, 10, .5);
        -webkit-backdrop-filter: blur(2px);
        backdrop-filter: blur(2px);
        animation: mr-fade .2s ease;
    }
    .mr-topbar { padding: 0 16px; }
    .mr-trilha > span, .mr-trilha > svg { display: none; }
    .mr-busca-global { width: 40px; padding: 0; justify-content: center; }
    .mr-busca-global span, .mr-busca-global kbd, .mr-data-chip { display: none; }
    .mr-conteudo { padding: 22px 16px 40px; }
}

/* ==========================================================================
   Cabeçalho de página
   ========================================================================== */
.mr-page-head,
.mr-lista-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px !important;
}

.mr-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--mr-vermelho);
}

.mr-eyebrow::before { content: ""; width: 18px; height: 2px; border-radius: 2px; background: var(--mr-grad-vermelho); }

.mr-page-titulo,
.mr-lista-header h3,
.mr-conteudo > h3 {
    margin: 0;
    font-family: var(--mr-fonte-display);
    font-weight: 800;
    font-size: clamp(1.6rem, 2.2vw, 2.1rem);
    line-height: 1.1;
    letter-spacing: -.02em;
}

.mr-conteudo > h3 { margin-bottom: 22px; }

.mr-page-sub,
.mr-lista-header p { margin: 6px 0 0; font-size: .92rem; color: var(--mr-texto-suave); }

.mr-page-acoes { display: flex; flex-wrap: wrap; gap: 10px; }

/* ==========================================================================
   Botões
   ========================================================================== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: .6rem 1.1rem;
    border-radius: 10px;
    font-weight: 600;
    font-size: .9rem;
    transition: transform .15s var(--mr-ease), box-shadow .15s, background-color .15s, border-color .15s, color .15s, filter .15s;
}

.btn-sm { padding: .36rem .75rem; font-size: .8rem; border-radius: 8px; gap: 6px; }

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--mr-vermelho);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--mr-vermelho);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--mr-vermelho-escuro);
    --bs-btn-active-border-color: transparent;
    --bs-btn-focus-shadow-rgb: 228, 35, 28;
    background-image: var(--mr-grad-vermelho);
    box-shadow: var(--mr-brilho-vermelho), inset 0 1px 0 rgba(255, 255, 255, .22);
}

.btn-primary:hover { transform: translateY(-1px); filter: saturate(1.1) brightness(1.04); box-shadow: 0 14px 28px -10px rgba(228, 35, 28, .8), inset 0 1px 0 rgba(255, 255, 255, .22); }
.btn-primary:active { transform: none; }

.btn-outline-secondary {
    --bs-btn-color: var(--mr-texto);
    --bs-btn-bg: #fff;
    --bs-btn-border-color: var(--mr-borda);
    --bs-btn-hover-color: var(--mr-texto);
    --bs-btn-hover-bg: #f6f7f9;
    --bs-btn-hover-border-color: var(--mr-borda-forte);
    --bs-btn-active-color: var(--mr-texto);
    --bs-btn-active-bg: #eef0f3;
    --bs-btn-active-border-color: var(--mr-borda-forte);
    box-shadow: var(--mr-sombra-1);
}

.btn-outline-danger {
    --bs-btn-color: #c0271f;
    --bs-btn-bg: #fff;
    --bs-btn-border-color: #f3cfcc;
    --bs-btn-hover-color: #a3150e;
    --bs-btn-hover-bg: #fdeeed;
    --bs-btn-hover-border-color: #eeb3ae;
    --bs-btn-active-bg: #fbe1df;
    --bs-btn-active-color: #a3150e;
}

.btn-outline-success {
    --bs-btn-color: #0f7a37;
    --bs-btn-bg: #fff;
    --bs-btn-border-color: #c9eed6;
    --bs-btn-hover-color: #0b6a2f;
    --bs-btn-hover-bg: #e9f8ef;
    --bs-btn-hover-border-color: #a7e2bd;
    --bs-btn-active-bg: #dcf4e5;
    --bs-btn-active-color: #0b6a2f;
}

.btn-vidro {
    color: #fff;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .18);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.btn-vidro:hover { color: #fff; background: rgba(255, 255, 255, .15); border-color: rgba(255, 255, 255, .3); transform: translateY(-1px); }

/* ==========================================================================
   Cartões, tabelas e listas
   ========================================================================== */
.mr-card {
    background: var(--mr-superficie);
    border: 1px solid var(--mr-borda);
    border-radius: var(--mr-raio);
    box-shadow: var(--mr-sombra-1);
}

.mr-card-cabeca { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 22px 0; }
.mr-card-titulo { margin: 0; font-family: var(--mr-fonte-display); font-weight: 700; font-size: 1.05rem; }
.mr-card-sub { margin: 3px 0 0; font-size: .8rem; color: var(--mr-texto-fraco); }
.mr-card-corpo { padding: 18px 22px 22px; }

.mr-tabela-card,
.mr-conteudo > .table-responsive {
    background: var(--mr-superficie);
    border: 1px solid var(--mr-borda);
    border-radius: var(--mr-raio);
    box-shadow: var(--mr-sombra-1);
    overflow: hidden;
}

.mr-tabela-topo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--mr-borda);
    background: linear-gradient(180deg, #fff, #fbfbfc);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: transparent;
    --bs-table-hover-bg: #f8f9fb;
    --bs-table-border-color: #eef0f3;
    margin-bottom: 0;
    font-size: .9rem;
    color: var(--mr-texto);
}

.table > :not(caption) > * > * { padding: 14px 14px; }
.table > :not(caption) > * > *:first-child { padding-left: 18px; }
.table > :not(caption) > * > *:last-child { padding-right: 18px; }

.table thead th {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    background: var(--mr-superficie-2);
    border-bottom: 1px solid var(--mr-borda) !important;
    font-family: var(--mr-fonte);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--mr-texto-suave);
}

.table td,
.table th { white-space: nowrap; vertical-align: middle; }

.table tbody tr > * { transition: background-color .15s; }
.table tbody tr:hover > * { background-color: #fafbfc; }
.table tbody tr:last-child > * { border-bottom: 0; }
.table tbody td[colspan] { padding: 56px 16px; text-align: center; color: var(--mr-texto-fraco); white-space: normal; }

th a.mr-th-link { color: inherit; text-decoration: none; }
th a.mr-th-link:hover { color: var(--mr-texto); }
.mr-th-ordenavel { display: inline-flex; align-items: center; gap: 5px; }
.mr-th-seta { opacity: .45; font-size: .85em; }
.mr-th-seta.ativa { opacity: 1; color: var(--mr-vermelho); }

.mr-celula-pessoa { display: flex; align-items: center; gap: 12px; }
.mr-celula-titulo, .mr-celula-pessoa .fw-medium { font-weight: 600; }
.table .mr-celula-titulo { max-width: 230px; overflow: hidden; text-overflow: ellipsis; }

.mr-secundario { display: block; margin-top: 1px; font-size: .76rem; font-weight: 400; color: var(--mr-texto-fraco); }

.mr-endereco-resumo { display: inline-block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }

/* Pílulas */
.mr-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    text-decoration: none;
}

.mr-pill-codigo {
    border-radius: 8px;
    border-color: #e2e6ec;
    background: #f1f3f6;
    color: #2f3642;
    font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .02em;
}

.mr-pill-ativo { color: #0f7a37; background: #e9f8ef; border-color: #c9eed6; }
.mr-pill-inativo { color: #b3160f; background: #fdeeed; border-color: #f7d1ce; }
.mr-pill-neutro { color: var(--mr-texto-suave); background: #f1f3f6; border-color: #e2e6ec; }
.mr-pill-dourado { color: #8a5d00; background: #fdf5e1; border-color: #f6e2ad; }
.mr-pill-aco { color: #33425a; background: #eef2f7; border-color: #d9e1ec; }
.mr-pill-vermelho { color: #b3160f; background: #fdeeed; border-color: #f7d1ce; }

.mr-pill-ativo::before,
.mr-pill-inativo::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);
}

/* Avatares nas linhas */
.mr-avatar-linha {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 11px;
    display: grid;
    place-items: center;
    font-family: var(--mr-fonte-display);
    font-weight: 800;
    font-size: .78rem;
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16), 0 5px 12px -5px rgba(17, 20, 26, .45);
}

.av-vermelho { background: var(--mr-grad-vermelho); }
.av-dourado { background: var(--mr-grad-dourado); color: #2b1d00; }
.av-aco { background: var(--mr-grad-aco); }
.av-grafite { background: var(--mr-grad-grafite); }

/* Ícones de ação (ligar, WhatsApp, mapa) */
.mr-icon-link {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 10px;
    color: #fff;
    text-decoration: none;
    background: var(--mr-grad-grafite);
    box-shadow: 0 4px 10px -4px rgba(17, 20, 26, .5), inset 0 1px 0 rgba(255, 255, 255, .12);
    transition: transform .15s var(--mr-ease), box-shadow .15s;
}

.mr-icon-link:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 10px 18px -8px rgba(17, 20, 26, .6), inset 0 1px 0 rgba(255, 255, 255, .12); }
.mr-icon-whatsapp { background: var(--mr-grad-verde); box-shadow: 0 4px 12px -4px rgba(31, 174, 91, .65), inset 0 1px 0 rgba(255, 255, 255, .22); }
.mr-icon-mapa { background: var(--mr-grad-vermelho); box-shadow: 0 4px 12px -4px rgba(228, 35, 28, .65), inset 0 1px 0 rgba(255, 255, 255, .22); }

/* Estado vazio */
.mr-vazio { padding: 34px 20px; text-align: center; color: var(--mr-texto-suave); }

.mr-vazio-icone {
    width: 56px;
    height: 56px;
    margin: 0 auto 14px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: var(--mr-superficie-2);
    border: 1px dashed var(--mr-borda-forte);
    color: var(--mr-texto-fraco);
}

.mr-vazio strong { display: block; margin-bottom: 4px; font-size: .95rem; color: var(--mr-texto); }
.mr-vazio p { max-width: 340px; margin: 0 auto; font-size: .85rem; }

/* ==========================================================================
   Formulários
   ========================================================================== */
.mr-form-card {
    max-width: 1060px;
    padding: 30px 32px;
    background: var(--mr-superficie);
    border: 1px solid var(--mr-borda);
    border-radius: var(--mr-raio);
    box-shadow: var(--mr-sombra-1);
}

.mr-form-card.estreito { max-width: 620px; }

.mr-form-card hr { margin: 28px 0 22px; border: 0; border-top: 1px dashed var(--mr-borda-forte); opacity: 1; }

.mr-form-card h5 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px !important;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.mr-form-card h5::before { content: ""; width: 18px; height: 3px; border-radius: 3px; background: var(--mr-grad-vermelho); }

.mr-form-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--mr-borda);
}

.mr-aviso-obrigatorio { margin: -4px 0 20px; font-size: .74rem; color: var(--mr-texto-fraco); }

.form-label { margin-bottom: 6px; font-size: .8rem; font-weight: 600; color: #394150; }

.form-control,
.form-select,
.mr-form-card input[type="text"],
.mr-form-card input[type="email"],
.mr-form-card input[type="password"],
.mr-form-card input[type="date"],
.mr-form-card select,
.mr-form-card textarea {
    display: block;
    width: 100%;
    padding: .62rem .85rem;
    border: 1px solid #dde1e7;
    border-radius: 10px;
    background-color: #fff;
    color: var(--mr-texto);
    font-size: .92rem;
    box-shadow: 0 1px 2px rgba(17, 20, 26, .03);
    transition: border-color .15s, box-shadow .15s, background-color .15s;
}

.form-control::placeholder { color: #a9afba; }
.form-control:hover, .mr-form-card input:hover { border-color: #cbd0d8; }

.form-control:focus,
.form-select:focus,
.mr-form-card input:focus,
.mr-form-card select:focus,
.mr-form-card textarea:focus {
    outline: 0;
    border-color: var(--mr-vermelho);
    box-shadow: 0 0 0 4px rgba(228, 35, 28, .12);
}

.mr-campo-readonly,
.form-control[readonly] {
    background-color: var(--mr-superficie-2) !important;
    border-style: dashed;
    color: var(--mr-texto-suave);
}

input[type="file"].form-control { padding: .45rem .55rem; }

input[type="file"].form-control::file-selector-button {
    margin-right: 12px;
    padding: .38rem .85rem;
    border: 0;
    border-radius: 8px;
    background: var(--mr-grafite-850);
    color: #fff;
    font-weight: 600;
}

.form-check-input { width: 1.15em; height: 1.15em; border-color: #c9ced6; cursor: pointer; }
.form-check-input:checked { background-color: var(--mr-vermelho); border-color: var(--mr-vermelho); }
.form-check-input:focus { border-color: var(--mr-vermelho); box-shadow: 0 0 0 4px rgba(228, 35, 28, .12); }
.form-check-label { cursor: pointer; font-size: .88rem; }
.form-text { font-size: .76rem; color: var(--mr-texto-fraco); }
.form-text ul { margin: 4px 0 0; padding-left: 1.1rem; }

.mr-form-card input[type="checkbox"] { accent-color: var(--mr-vermelho); width: 16px; height: 16px; }

/* Perfis de acesso como cartões selecionáveis */
#id_grupos { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }

#id_grupos label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 13px;
    border: 1px solid var(--mr-borda);
    border-radius: 11px;
    background: #fff;
    font-size: .88rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color .15s, background .15s, box-shadow .15s;
}

#id_grupos label:hover { border-color: var(--mr-borda-forte); }
#id_grupos label:has(input:checked) { border-color: rgba(228, 35, 28, .5); background: #fff6f5; box-shadow: 0 0 0 3px rgba(228, 35, 28, .08); }

/* Alternativas (Sim/Não, tipo de pessoa, material) em formato segmentado */
.mr-toggle-botoes {
    position: relative;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 1rem;
    padding: 4px;
    border: 1px solid var(--mr-borda);
    border-radius: 12px;
    background: #eef0f3;
}

.mr-toggle-botoes input { position: absolute; opacity: 0; pointer-events: none; }

.mr-toggle-botoes label {
    margin: 0;
    padding: .5rem 1.2rem;
    border-radius: 9px;
    font-size: .88rem;
    font-weight: 600;
    color: var(--mr-texto-suave);
    cursor: pointer;
    user-select: none;
    transition: background .18s var(--mr-ease), color .18s, box-shadow .18s;
}

.mr-toggle-botoes label:hover { color: var(--mr-texto); background: rgba(255, 255, 255, .7); }

.mr-toggle-botoes input:checked + label {
    color: #fff;
    background: var(--mr-grad-vermelho);
    box-shadow: var(--mr-brilho-vermelho), inset 0 1px 0 rgba(255, 255, 255, .2);
}

.mr-toggle-botoes input:focus-visible + label { outline: 2px solid var(--mr-vermelho); outline-offset: 2px; }

/* Campo de busca com ícone */
.mr-busca-wrap { position: relative; flex: 1; min-width: 220px; }
.mr-busca-wrap > svg { position: absolute; left: 14px; top: 50%; z-index: 2; transform: translateY(-50%); color: var(--mr-texto-fraco); pointer-events: none; }
/* !important: regras genéricas de campo (.mr-form-card input[type=...]) têm prioridade maior e zerariam o espaço do ícone */
.mr-busca-wrap input.form-control { height: 44px; padding-left: 42px !important; border-radius: 12px; }

.mr-filtros { margin-bottom: 16px; }

/* Lista de sugestões (autocomplete) */
.mr-autocomplete-lista {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 260px;
    margin: 0;
    padding: 6px;
    overflow-y: auto;
    list-style: none;
    background: #fff;
    border: 1px solid var(--mr-borda);
    border-radius: 12px;
    box-shadow: var(--mr-sombra-3);
    animation: mr-fade .15s ease;
}

.mr-autocomplete-item { padding: 9px 12px; border-radius: 8px; cursor: pointer; font-size: .9rem; font-weight: 500; }
.mr-autocomplete-item .mr-secundario { display: inline; margin-left: 8px; }
.mr-autocomplete-item:hover, .mr-autocomplete-item.ativo { background: #f4f5f7; }
.mr-autocomplete-item.ativo { box-shadow: inset 3px 0 0 var(--mr-vermelho); }
.mr-autocomplete-vazio { padding: 10px 12px; font-size: .85rem; color: var(--mr-texto-fraco); }

.alert { border: 1px solid; border-radius: 12px; font-size: .9rem; }
.alert-danger { background: #fdeeed; border-color: #f7d1ce; color: #9f150e; }

/* ==========================================================================
   Notificações (toasts)
   ========================================================================== */
.mr-toasts {
    position: fixed;
    top: 80px;
    right: 24px;
    z-index: 1080;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(380px, calc(100vw - 32px));
    pointer-events: none;
}

.mr-toast {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 12px 14px 14px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    background: rgba(17, 20, 26, .95);
    color: #eef1f5;
    font-size: .9rem;
    box-shadow: var(--mr-sombra-3);
    pointer-events: auto;
    animation: mr-toast-entra .5s var(--mr-ease) both;
}

.mr-toast::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    transform-origin: left;
    animation: mr-toast-tempo var(--mr-toast-dur, 5s) linear forwards;
}

.mr-toast.pausado::after { animation-play-state: paused; }
.mr-toast-icone { width: 30px; height: 30px; flex-shrink: 0; border-radius: 9px; display: grid; place-items: center; }
.mr-toast-texto { flex: 1; padding-top: 5px; line-height: 1.4; }
.mr-toast-fechar { padding: 0 4px; border: 0; background: none; color: #8b93a3; font-size: 1.35rem; line-height: 1; }
.mr-toast-fechar:hover { color: #fff; }

.mr-toast-sucesso .mr-toast-icone { background: rgba(34, 197, 94, .16); color: #4ade80; }
.mr-toast-sucesso::after { background: #22c55e; }
.mr-toast-erro .mr-toast-icone { background: rgba(228, 35, 28, .22); color: #ff6a5e; }
.mr-toast-erro::after { background: var(--mr-vermelho-brilho); }
.mr-toast-alerta .mr-toast-icone { background: rgba(240, 180, 41, .18); color: var(--mr-dourado); }
.mr-toast-alerta::after { background: var(--mr-dourado); }
.mr-toast-info .mr-toast-icone { background: rgba(59, 130, 246, .18); color: #60a5fa; }
.mr-toast-info::after { background: #3b82f6; }

.mr-toast.saindo { animation: mr-toast-sai .35s var(--mr-ease) forwards; }

@keyframes mr-toast-entra { from { opacity: 0; transform: translateX(28px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes mr-toast-sai { to { opacity: 0; transform: translateX(28px); } }
@keyframes mr-toast-tempo { from { transform: scaleX(1); } to { transform: scaleX(0); } }

/* ==========================================================================
   Paleta de comandos (Ctrl+K)
   ========================================================================== */
.mr-paleta {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 12vh;
    background: rgba(7, 8, 10, .55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    animation: mr-fade .18s ease both;
}

.mr-paleta[hidden],
.mr-paleta [hidden] { display: none !important; }

.mr-paleta-caixa {
    width: min(620px, calc(100vw - 32px));
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--mr-sombra-3), 0 0 0 1px rgba(17, 20, 26, .06);
    animation: mr-paleta-entra .24s var(--mr-ease) both;
}

@keyframes mr-paleta-entra { from { opacity: 0; transform: translateY(-10px) scale(.98); } to { opacity: 1; transform: none; } }

.mr-paleta-busca { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--mr-borda); color: var(--mr-texto-fraco); }
.mr-paleta-busca input { flex: 1; border: 0; outline: 0; background: transparent; color: var(--mr-texto); font-size: 1.02rem; }
.mr-paleta-lista { max-height: 380px; overflow-y: auto; padding: 8px; }
.mr-paleta-grupo { padding: 10px 10px 6px; font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--mr-texto-fraco); }

.mr-paleta-item { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 10px; color: var(--mr-texto); font-size: .92rem; font-weight: 500; text-decoration: none; }
.mr-paleta-item:hover, .mr-paleta-item.ativo { background: #f4f5f7; color: var(--mr-texto); }
.mr-paleta-item.ativo { box-shadow: inset 3px 0 0 var(--mr-vermelho); }
.mr-paleta-item-icone { width: 32px; height: 32px; flex-shrink: 0; border-radius: 9px; display: grid; place-items: center; background: #f1f3f6; color: var(--mr-texto-suave); }
.mr-paleta-item-icone.acao { background: var(--mr-grad-vermelho); color: #fff; box-shadow: var(--mr-brilho-vermelho); }
.mr-paleta-item-secao { margin-left: auto; font-size: .74rem; color: var(--mr-texto-fraco); }
.mr-paleta-vazio { padding: 28px; text-align: center; font-size: .9rem; color: var(--mr-texto-fraco); }
.mr-paleta-rodape { display: flex; gap: 18px; padding: 10px 16px; border-top: 1px solid var(--mr-borda); background: var(--mr-superficie-2); font-size: .75rem; color: var(--mr-texto-fraco); }
.mr-paleta-rodape kbd { margin-right: 3px; }

/* ==========================================================================
   Visão Geral (dashboard)
   ========================================================================== */
.mr-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-bottom: 22px;
    padding: 34px 36px 38px;
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 22px;
    color: #fff;
    background:
        radial-gradient(60% 130% at 100% 0%, rgba(228, 35, 28, .48), transparent 62%),
        radial-gradient(40% 80% at 80% 115%, rgba(255, 122, 26, .2), transparent 70%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 3px),
        linear-gradient(135deg, #1c2029 0%, #0c0e12 62%);
    box-shadow: var(--mr-sombra-3);
}

.mr-hero canvas { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }

.mr-hero-grade {
    position: absolute;
    inset: 0;
    z-index: -2;
    background-image:
        linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
    background-size: 40px 40px;
    -webkit-mask-image: radial-gradient(80% 100% at 80% 10%, #000, transparent 75%);
    mask-image: radial-gradient(80% 100% at 80% 10%, #000, transparent 75%);
}

.mr-hero-conteudo { position: relative; display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 24px; }

.mr-hero-data {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--mr-dourado);
}

.mr-hero-data::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--mr-dourado); box-shadow: 0 0 12px 2px rgba(240, 180, 41, .7); }

.mr-hero h1 { margin: 0 0 10px; color: #fff; font-size: clamp(1.85rem, 3vw, 2.6rem); font-weight: 800; letter-spacing: -.025em; }

.mr-hero h1 span {
    background: linear-gradient(90deg, #ff6a5e 0%, #ff9a4d 55%, #ffc65c 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.mr-hero p { max-width: 560px; margin: 0; font-size: .98rem; color: #b8bfcb; }
.mr-hero p strong { color: #fff; }
.mr-hero-acoes { display: flex; flex-wrap: wrap; gap: 10px; }

.mr-hero-laser {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #ff4b3e, #ffb36b, transparent) no-repeat;
    background-size: 35% 100%;
    animation: mr-laser 5s ease-in-out infinite;
    filter: drop-shadow(0 0 6px #ff4b3e);
}

@keyframes mr-laser { 0% { background-position: -60% 0; } 100% { background-position: 170% 0; } }

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

.mr-kpi-card {
    position: relative;
    overflow: hidden;
    padding: 20px;
    border: 1px solid var(--mr-borda);
    border-radius: var(--mr-raio);
    background: #fff;
    box-shadow: var(--mr-sombra-1);
    transition: transform .22s var(--mr-ease), box-shadow .22s;
}

.mr-kpi-card:hover { transform: translateY(-3px); box-shadow: var(--mr-sombra-2); }

.mr-kpi-card::after {
    content: "";
    position: absolute;
    top: -46px;
    right: -46px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--kpi-cor), transparent 70%);
    pointer-events: none;
}

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

.mr-kpi-icone {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--kpi-grad);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 10px 20px -10px var(--kpi-sombra);
}

.mr-kpi-icone svg { width: 22px; height: 22px; }

.k-vermelho { --kpi-grad: var(--mr-grad-vermelho); --kpi-cor: rgba(228, 35, 28, .1); --kpi-sombra: rgba(228, 35, 28, .9); }
.k-dourado { --kpi-grad: var(--mr-grad-dourado); --kpi-cor: rgba(240, 180, 41, .14); --kpi-sombra: rgba(201, 138, 11, .9); }
.k-aco { --kpi-grad: var(--mr-grad-aco); --kpi-cor: rgba(74, 90, 115, .12); --kpi-sombra: rgba(45, 56, 74, .9); }
.k-verde { --kpi-grad: var(--mr-grad-verde); --kpi-cor: rgba(31, 174, 91, .12); --kpi-sombra: rgba(17, 128, 63, .9); }
.k-dourado .mr-kpi-icone { color: #2b1d00; }

.mr-kpi-rotulo { margin-bottom: 4px; font-size: .8rem; font-weight: 600; color: var(--mr-texto-suave); }

.mr-kpi-valor {
    font-family: var(--mr-fonte-display);
    font-weight: 800;
    font-size: 2.2rem;
    line-height: 1.05;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}

.mr-kpi-valor small { margin-left: 2px; font-size: .5em; font-weight: 700; color: var(--mr-texto-fraco); }
.mr-kpi-rodape { margin-top: 10px; font-size: .78rem; color: var(--mr-texto-fraco); }

.mr-tendencia { display: inline-flex; align-items: center; gap: 3px; padding: 3px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.mr-tendencia.sobe { color: #0f7a37; background: #e9f8ef; }
.mr-tendencia.desce { color: #b3160f; background: #fdeeed; }
.mr-tendencia.neutra { color: var(--mr-texto-suave); background: #f1f3f6; }

.mr-grid-2 { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 16px; margin-bottom: 22px; }
.mr-grid-2.igual { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.mr-grafico { position: relative; height: 270px; }

.mr-grafico-vazio {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    text-align: center;
    background: linear-gradient(180deg, rgba(255, 255, 255, .55), rgba(255, 255, 255, .92));
}

.mr-donut { position: relative; width: 190px; height: 190px; margin: 4px auto 0; }
.mr-donut-centro { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; pointer-events: none; }
.mr-donut-centro strong { font-family: var(--mr-fonte-display); font-size: 2rem; font-weight: 800; line-height: 1; }
.mr-donut-centro span { font-size: .74rem; color: var(--mr-texto-fraco); }

.mr-legenda { display: flex; flex-direction: column; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.mr-legenda li { display: flex; align-items: center; gap: 10px; font-size: .87rem; }
.mr-legenda-cor { width: 10px; height: 10px; border-radius: 3px; }
.mr-legenda strong { margin-left: auto; font-variant-numeric: tabular-nums; }

.mr-recentes { margin: 0; padding: 8px 10px 12px; list-style: none; }

.mr-recente { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 12px; color: inherit; text-decoration: none; transition: background .15s; }
.mr-recente:hover { background: var(--mr-superficie-2); color: inherit; }
.mr-recente-info { flex: 1; min-width: 0; }
.mr-recente-titulo { overflow: hidden; font-size: .9rem; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.mr-recente-sub { font-size: .78rem; color: var(--mr-texto-fraco); }
.mr-recente-lado { font-size: .76rem; color: var(--mr-texto-fraco); text-align: right; white-space: nowrap; }

.mr-modulos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }

.mr-modulo {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--mr-borda);
    border-radius: 14px;
    background: #fff;
    color: var(--mr-texto);
    text-decoration: none;
    transition: transform .2s var(--mr-ease), box-shadow .2s, border-color .2s;
}

.mr-modulo:hover { color: var(--mr-texto); transform: translateY(-3px); border-color: rgba(228, 35, 28, .35); box-shadow: var(--mr-sombra-2); }
.mr-modulo strong { display: block; font-size: .92rem; }
.mr-modulo small { font-size: .76rem; color: var(--mr-texto-fraco); }

.mr-modulo-icone {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    border-radius: 12px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--mr-grad-grafite);
    transition: background .2s, box-shadow .2s;
}

.mr-modulo:hover .mr-modulo-icone { background: var(--mr-grad-vermelho); box-shadow: var(--mr-brilho-vermelho); }

@media (max-width: 1199.98px) {
    .mr-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* minmax(0, 1fr): sem isso, um nome comprido numa lista alarga o cartão além da tela */
    .mr-grid-2, .mr-grid-2.igual { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 575.98px) {
    .mr-kpi-grid { grid-template-columns: 1fr; }
    .mr-hero { padding: 26px 22px 30px; }
}

/* Tela "em construção" */
.mr-construcao {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 64px 32px 56px;
    border-radius: 22px;
    text-align: center;
    color: #fff;
    background:
        radial-gradient(60% 90% at 50% 0%, rgba(228, 35, 28, .35), transparent 65%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 3px),
        linear-gradient(160deg, #1c2029, #0c0e12 70%);
    box-shadow: var(--mr-sombra-3);
}

.mr-faixa-obra { position: absolute; top: 0; left: 0; right: 0; height: 8px; background: repeating-linear-gradient(135deg, var(--mr-dourado) 0 14px, #15171c 14px 28px); }

.mr-construcao-icone {
    width: 78px;
    height: 78px;
    margin: 0 auto 22px;
    border-radius: 22px;
    display: grid;
    place-items: center;
    background: var(--mr-grad-vermelho);
    box-shadow: 0 22px 44px -14px rgba(228, 35, 28, .85), inset 0 1px 0 rgba(255, 255, 255, .25);
}

.mr-construcao-selo {
    display: inline-block;
    margin-bottom: 14px;
    padding: 4px 12px;
    border: 1px solid rgba(240, 180, 41, .35);
    border-radius: 999px;
    background: rgba(240, 180, 41, .1);
    color: var(--mr-dourado);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.mr-construcao h2 { margin: 0 0 10px; color: #fff; font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 800; }
.mr-construcao p { max-width: 560px; margin: 0 auto 28px; color: #b8bfcb; }

/* ==========================================================================
   Tela de login
   ========================================================================== */
body.mr-publico { min-height: 100vh; background: var(--mr-grafite-950); color: #e8ebf0; }

.mr-login {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(440px, .88fr);
    min-height: 100vh;
    overflow: hidden;
    background:
        radial-gradient(70% 90% at 15% 110%, rgba(228, 35, 28, .22), transparent 60%),
        radial-gradient(50% 60% at 100% 0%, rgba(240, 180, 41, .07), transparent 70%),
        linear-gradient(180deg, #0d0f13, #07080a);
}

.mr-login-faiscas { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }

.mr-login-grade {
    position: absolute;
    inset: 0;
    z-index: -2;
    background-image:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 56px 56px;
    -webkit-mask-image: radial-gradient(90% 80% at 30% 45%, #000 25%, transparent 80%);
    mask-image: radial-gradient(90% 80% at 30% 45%, #000 25%, transparent 80%);
}

.mr-login-painel {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 40px;
    padding: 52px clamp(32px, 6vw, 92px) 48px;
}

.mr-login-marca { display: flex; align-items: center; }

.mr-login-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--mr-dourado);
}

.mr-login-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--mr-dourado); box-shadow: 0 0 10px rgba(240, 180, 41, .7); }

.mr-login-titulo {
    max-width: 15ch;
    margin: 20px 0;
    color: #fff;
    font-size: clamp(2.3rem, 4.3vw, 3.9rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -.03em;
}

.mr-login-titulo .destaque {
    background: linear-gradient(90deg, #ff5a4d 0%, #ff8a3d 55%, #ffc65c 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.mr-login-texto { max-width: 520px; margin: 0; color: #9aa3b2; font-size: 1.03rem; line-height: 1.65; }

.mr-login-processos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }

.mr-login-processos span {
    padding: 6px 13px;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 999px;
    background: rgba(255, 255, 255, .035);
    color: #c9cfd9;
    font-size: .8rem;
    font-weight: 500;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.mr-login-numeros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; max-width: 760px; }

.mr-login-numero {
    padding: 16px 16px 14px;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 14px;
    background: rgba(255, 255, 255, .03);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.mr-login-numero strong {
    display: block;
    white-space: nowrap;
    font-family: var(--mr-fonte-display);
    font-size: clamp(1.25rem, 1.9vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -.01em;
    color: var(--mr-dourado);
    text-shadow: 0 0 26px rgba(240, 180, 41, .35);
}

.mr-login-numero span { font-size: .78rem; color: #8b93a3; }

.mr-login-painel > * { animation: mr-surgir .9s var(--mr-ease) both; }
.mr-login-painel > :nth-child(2) { animation-delay: .12s; }
.mr-login-painel > :nth-child(3) { animation-delay: .24s; }

.mr-login-lado-form {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 32px 70px;
}

.mr-login-card {
    position: relative;
    width: 100%;
    max-width: 420px;
    padding: 38px 36px 30px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(24, 28, 35, .78), rgba(12, 14, 18, .84));
    box-shadow: 0 40px 90px -24px rgba(0, 0, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .06);
    -webkit-backdrop-filter: blur(18px) saturate(1.3);
    backdrop-filter: blur(18px) saturate(1.3);
    animation: mr-login-entra .9s var(--mr-ease) both .15s;
}

.mr-login-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    padding: 1px;
    border-radius: inherit;
    background: linear-gradient(160deg, rgba(255, 90, 78, .6), rgba(255, 255, 255, .06) 35%, rgba(255, 255, 255, .02) 65%, rgba(240, 180, 41, .38));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

@keyframes mr-login-entra { from { opacity: 0; transform: translateY(20px) scale(.98); } to { opacity: 1; transform: none; } }

.mr-login-marca-mobile { display: none; justify-content: center; margin-bottom: 26px; }
.mr-login-saudacao { font-size: .76rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #ff6a5e; }
.mr-login-card h2 { margin: 8px 0 6px; color: #fff; font-size: 1.8rem; font-weight: 800; letter-spacing: -.02em; }
.mr-login-card > p { margin-bottom: 26px; color: #8b93a3; font-size: .92rem; }

.mr-campo-login { margin-bottom: 16px; }
.mr-campo-login label { display: block; margin-bottom: 7px; font-size: .78rem; font-weight: 600; color: #aab2bf; }

.mr-entrada { position: relative; }

.mr-entrada input {
    width: 100%;
    height: 52px;
    padding: 0 48px 0 46px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 13px;
    outline: 0;
    background: rgba(255, 255, 255, .04);
    color: #fff;
    font-size: .98rem;
    transition: border-color .2s, background .2s, box-shadow .2s;
}

.mr-entrada input::placeholder { color: #545c6b; }
.mr-entrada input:hover { border-color: rgba(255, 255, 255, .18); }

.mr-entrada input:focus {
    border-color: rgba(255, 75, 62, .85);
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 0 0 4px rgba(228, 35, 28, .18), 0 0 28px -6px rgba(228, 35, 28, .55);
}

.mr-entrada input:-webkit-autofill {
    -webkit-text-fill-color: #fff;
    caret-color: #fff;
    box-shadow: 0 0 0 100px #161a21 inset !important;
    transition: background-color 9999s;
}

.mr-entrada-icone { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #6b7383; pointer-events: none; transition: color .2s; }
.mr-entrada input:focus ~ .mr-entrada-icone { color: #ff6a5e; }

.mr-olho {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #6b7383;
    transition: color .2s, background .2s;
}

.mr-olho:hover { color: #fff; background: rgba(255, 255, 255, .07); }

.mr-capslock { display: none; align-items: center; gap: 6px; margin-top: 8px; font-size: .76rem; color: var(--mr-dourado); }
.mr-capslock.visivel { display: flex; }

.mr-login-erro {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid rgba(228, 35, 28, .38);
    border-radius: 12px;
    background: rgba(228, 35, 28, .12);
    color: #ffb4ad;
    font-size: .88rem;
    animation: mr-tremer .45s ease;
}

@keyframes mr-tremer { 0%, 100% { transform: translateX(0); } 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }

.mr-btn-entrar {
    position: relative;
    width: 100%;
    height: 54px;
    margin-top: 10px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 13px;
    background: var(--mr-grad-vermelho);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    box-shadow: 0 16px 34px -14px rgba(228, 35, 28, .95), inset 0 1px 0 rgba(255, 255, 255, .25);
    transition: transform .18s var(--mr-ease), box-shadow .18s;
}

.mr-btn-entrar::before {
    content: "";
    position: absolute;
    top: 0;
    left: -60%;
    width: 40%;
    height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .38), transparent);
    transform: skewX(-20deg);
    animation: mr-brilho-botao 3.4s ease-in-out infinite 1.4s;
}

@keyframes mr-brilho-botao { 0% { left: -60%; } 55%, 100% { left: 130%; } }

.mr-btn-entrar:hover { transform: translateY(-1px); box-shadow: 0 20px 40px -14px rgba(228, 35, 28, 1), inset 0 1px 0 rgba(255, 255, 255, .25); }
.mr-btn-rotulo { display: inline-flex; align-items: center; gap: 10px; }
.mr-btn-rotulo svg { transition: transform .2s; }
.mr-btn-entrar:hover .mr-btn-rotulo svg { transform: translateX(4px); }

.mr-spinner { position: absolute; display: none; width: 22px; height: 22px; border: 2.5px solid rgba(255, 255, 255, .35); border-top-color: #fff; border-radius: 50%; animation: mr-girar .7s linear infinite; }
.mr-btn-entrar.carregando { pointer-events: none; }
.mr-btn-entrar.carregando .mr-btn-rotulo { visibility: hidden; }
.mr-btn-entrar.carregando .mr-spinner { display: block; }

.mr-login-seguro { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 22px; font-size: .76rem; color: #6b7383; }
.mr-login-rodape { position: absolute; left: 0; right: 0; bottom: 24px; text-align: center; font-size: .74rem; color: #4f5664; }

@media (max-width: 991.98px) {
    .mr-login { grid-template-columns: 1fr; }
    .mr-login-painel { display: none; }
    .mr-login-marca-mobile { display: flex; }
    .mr-login-lado-form { padding: 32px 18px 70px; }
    .mr-login-card { padding: 32px 24px 26px; }
}

/* ==========================================================================
   Acessibilidade: menos movimento
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .mr-revelar { opacity: 1; }
}

/* ---------- Atendimento: anexos múltiplos ---------- */
.mr-arquivos-bloco { margin-top: 18px; padding: 16px 18px; border: 1px dashed var(--mr-borda-forte); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-arquivos-bloco[hidden] { display: none; }
.mr-arquivos-novos:not(:empty),
.mr-arquivos-atuais { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; }

.mr-arquivo-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 4px 10px;
    border: 1px solid var(--mr-borda);
    border-radius: 999px;
    background: #fff;
    font-size: .8rem;
    color: var(--mr-texto);
    cursor: pointer;
}
.mr-arquivo-chip.novo { border-color: rgba(228, 35, 28, .35); background: #fff6f5; cursor: default; }
.mr-arquivo-chip a { overflow: hidden; color: inherit; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.mr-arquivo-chip a:hover { color: var(--mr-vermelho); text-decoration: underline; }
.mr-arquivo-chip input[name="remover_arquivo"] { display: none; }
.mr-arquivo-x { flex-shrink: 0; color: var(--mr-texto-fraco); }
.mr-arquivo-chip:hover .mr-arquivo-x { color: var(--mr-vermelho); }
.mr-arquivo-chip:has(input[name="remover_arquivo"]:checked) { border-color: rgba(228, 35, 28, .5); background: #fdecea; opacity: .75; }
.mr-arquivo-chip:has(input[name="remover_arquivo"]:checked) a { text-decoration: line-through; }

/* ---------- Atendimento: tabela de peças ---------- */
.mr-pecas-cabecalho { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.mr-pecas-wrap { border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); overflow: hidden; }

.mr-pecas-tabela { min-width: 900px; margin: 0; }
.mr-pecas-tabela[hidden] { display: none; }
.mr-pecas-tabela thead th {
    padding: 10px 8px;
    border-bottom: 1px solid var(--mr-borda);
    background: #eef0f3;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--mr-texto-suave);
    white-space: nowrap;
}
.mr-pecas-tabela td { padding: 8px; border-bottom: 1px solid var(--mr-borda); vertical-align: top; }
.mr-pecas-tabela tbody tr:last-child td { border-bottom: 0; }
.mr-pecas-tabela tr[hidden] { display: none; }
.mr-pecas-tabela .form-control { padding: .5rem .65rem; font-size: .88rem; }

.mr-pecas-tabela .col-item { width: 52px; text-align: center; }
.mr-pecas-tabela .col-descricao { min-width: 150px; }
.mr-pecas-tabela .col-qtd { width: 76px; }
.mr-pecas-tabela .col-material { width: 120px; }
.mr-pecas-tabela .col-acabamento { width: 140px; }
.mr-pecas-tabela .form-select { padding: .5rem 1.6rem .5rem .65rem; font-size: .88rem; }
.mr-pecas-tabela .col-espessura { width: 104px; }
.mr-pecas-tabela .col-obs { width: 130px; }
.mr-pecas-tabela .col-anexo { width: 140px; }
.mr-pecas-tabela td .text-danger { margin-top: 3px; font-size: .72rem; line-height: 1.25; }

.mr-peca-item {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    height: 30px;
    margin-top: 4px;
    border-radius: 8px;
    background: var(--mr-grad-grafite);
    color: #fff;
    font-family: var(--mr-fonte-display);
    font-size: .85rem;
    font-weight: 700;
}

.mr-campo-sufixo { position: relative; }
/* !important: a regra genérica .mr-form-card input[type=text] zeraria o espaço do "mm" */
.mr-campo-sufixo input.form-control { padding-right: 40px !important; text-align: right; }
.mr-campo-sufixo span { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); font-size: .78rem; color: var(--mr-texto-fraco); pointer-events: none; }

.mr-anexo-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 108px;
    margin: 4px 0 0;
    padding: 5px 10px;
    border: 1px dashed var(--mr-borda-forte);
    border-radius: 8px;
    font-size: .8rem;
    font-weight: 600;
    color: var(--mr-texto-suave);
    cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
}
.mr-anexo-btn:hover { border-color: var(--mr-vermelho); color: var(--mr-vermelho); }
.mr-anexo-btn input { display: none; }
.mr-anexo-btn.tem-arquivo { border-style: solid; border-color: rgba(228, 35, 28, .4); background: #fff6f5; color: var(--mr-vermelho); }
.mr-peca-acoes { display: flex; align-items: center; gap: 4px; }
.mr-peca-acoes .mr-anexo-btn { margin-top: 0; }
.mr-peca-acoes .mr-peca-remover { margin-top: 0; }
.mr-pecas-tabela .col-anexo .mr-peca-acoes { margin-top: 4px; }
.mr-anexo-nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mr-anexo-atual { display: block; margin-top: 4px; font-size: .74rem; color: var(--mr-texto-suave); }

.mr-peca-remover {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    margin-top: 4px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--mr-texto-fraco);
    transition: background .15s, color .15s;
}
.mr-peca-remover:hover { background: #fdecea; color: var(--mr-vermelho); }

.mr-pecas-vazio { padding: 26px 16px; text-align: center; font-size: .88rem; color: var(--mr-texto-fraco); }
.mr-pecas-vazio[hidden] { display: none; }

.mr-tabela-vazia { padding: 28px 16px !important; text-align: center; color: var(--mr-texto-fraco); }

/* ---------- Abas (filtros em forma de guia) ---------- */
.mr-abas { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--mr-borda); border-radius: 12px; background: #eef0f3; }
.mr-abas a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: .45rem 1rem;
    border-radius: 9px;
    font-size: .86rem;
    font-weight: 600;
    color: var(--mr-texto-suave);
    text-decoration: none;
    transition: background .18s var(--mr-ease), color .18s;
}
.mr-abas a:hover { color: var(--mr-texto); background: rgba(255, 255, 255, .7); }
.mr-abas a.ativa { color: var(--mr-texto); background: #fff; box-shadow: 0 1px 3px rgba(17, 20, 26, .12); }
.mr-abas-contador { min-width: 22px; padding: 1px 7px; border-radius: 999px; background: var(--mr-grad-grafite); color: #fff; font-size: .72rem; text-align: center; }
.mr-abas a.ativa .mr-abas-contador { background: var(--mr-grad-vermelho); }

/* ---------- Pré-projeto: dados do atendimento ---------- */
.mr-info-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.mr-info-grade > div { padding: 12px 14px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-info-grade span,
.mr-info-rotulo { display: block; margin-bottom: 6px; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mr-texto-fraco); }
.mr-info-grade strong { display: block; font-size: .92rem; color: var(--mr-texto); }
.mr-info-grade em { display: block; margin-top: 2px; font-size: .78rem; font-style: normal; color: var(--mr-texto-suave); }
.mr-info-rotulo + .mr-arquivo-chip,
.mr-arquivo-chip + .mr-arquivo-chip { margin: 0 4px 4px 0; }
a.mr-arquivo-chip { text-decoration: none; }
a.mr-arquivo-chip:hover { border-color: var(--mr-vermelho); color: var(--mr-vermelho); }
.mr-pecas-leitura { min-width: 640px; }
.mr-pecas-leitura td { vertical-align: middle; font-size: .88rem; }
.mr-pecas-leitura .mr-peca-item { margin-top: 0; }

/* ---------- Pré-projeto: perguntas ---------- */
.mr-pergunta { padding: 16px 0; border-top: 1px solid var(--mr-borda); }
.mr-pergunta:first-of-type { border-top: 0; }
#perguntas-seguintes[hidden] { display: none; }
.mr-pergunta-linha,
.mr-resposta { display: flex; align-items: center; gap: 14px; }
.mr-pergunta-num {
    display: inline-grid;
    flex-shrink: 0;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: var(--mr-grad-grafite);
    color: #fff;
    font-family: var(--mr-fonte-display);
    font-size: .9rem;
    font-weight: 700;
}
.mr-pergunta-texto { flex: 1; font-size: .96rem; font-weight: 600; color: var(--mr-texto); }
.mr-pergunta-texto .mr-secundario { margin-top: 2px; font-weight: 400; }
.mr-pergunta-detalhe { margin: 14px 0 0 46px; padding: 16px 18px; border: 1px dashed var(--mr-borda-forte); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-pergunta-detalhe[hidden] { display: none; }
.mr-campo-horas { max-width: 160px; }

.mr-resposta { padding: 12px 0; border-top: 1px solid var(--mr-borda); }
.mr-resposta:first-of-type { border-top: 0; }
.mr-resposta-detalhe { margin: 0 0 12px 46px; padding: 12px 16px; border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); font-size: .9rem; }

@media (max-width: 575.98px) {
    .mr-pergunta-linha { flex-wrap: wrap; }
    .mr-pergunta-linha .mr-toggle-botoes { margin-left: 46px; }
    .mr-pergunta-detalhe, .mr-resposta-detalhe { margin-left: 0; }
}

/* ---------- Histórico de passagens entre setores ---------- */
.mr-historico { margin: 0; padding: 0 0 0 18px; list-style: none; border-left: 2px solid var(--mr-borda); }
.mr-historico li { position: relative; padding: 0 0 14px 14px; font-size: .9rem; }
.mr-historico li::before { content: ""; position: absolute; top: 5px; left: -25px; width: 12px; height: 12px; border: 2px solid #fff; border-radius: 50%; background: var(--mr-vermelho); box-shadow: 0 0 0 2px var(--mr-borda); }
.mr-historico-obs { margin-top: 4px; padding: 8px 12px; border-radius: 8px; background: #fdeeed; color: #7c1510; font-size: .84rem; }

/* ---------- Submenus da barra lateral (ex.: Orçamentos) — menu sanfona ---------- */
.mr-nav-linha { position: relative; }
.mr-nav-linha .mr-nav-item { padding-right: 40px; }
.mr-nav-seta {
    position: absolute;
    top: 50%;
    right: 6px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #767e8d;
    transform: translateY(-50%);
    transition: background .18s ease, color .18s ease;
}
.mr-nav-seta:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.mr-nav-seta svg { transition: transform .25s var(--mr-ease); }
.mr-nav-grupo.aberto .mr-nav-seta svg { transform: rotate(180deg); }

/* Abre e fecha com animação suave (a altura cresce de 0 até o tamanho do conteúdo) */
.mr-nav-filhos { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s var(--mr-ease); }
.mr-nav-filhos > div { min-height: 0; overflow: hidden; }
.mr-nav-grupo.aberto .mr-nav-filhos { grid-template-rows: 1fr; }
.mr-sanfona.sem-animacao .mr-nav-filhos,
.mr-sanfona.sem-animacao .mr-nav-bloco-itens,
.mr-sanfona.sem-animacao svg { transition: none !important; }

/* Seções do menu (Início, Comercial...) também abrem e fecham */
.mr-nav-bloco-itens { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s var(--mr-ease); }
.mr-nav-bloco-itens > div { min-height: 0; overflow: hidden; }
.mr-nav-bloco.aberto > .mr-nav-bloco-itens { grid-template-rows: 1fr; }
button.mr-nav-secao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: color .18s ease;
}
button.mr-nav-secao:hover { color: #aab1bd; }
button.mr-nav-secao svg { opacity: .7; transform: rotate(-90deg); transition: transform .25s var(--mr-ease), opacity .18s; }
.mr-nav-bloco.aberto > button.mr-nav-secao svg { transform: rotate(0deg); }
button.mr-nav-secao:hover svg { opacity: 1; }

/* Barra recolhida (só ícones): as seções ficam sempre abertas */
@media (min-width: 992px) {
    body.mr-side-recolhida .mr-nav-bloco-itens { grid-template-rows: 1fr; }
}

.mr-nav-subitem {
    position: relative;
    display: flex;
    align-items: center;
    margin: 0 0 2px 22px;
    padding: 7px 12px 7px 20px;
    border-left: 1px solid rgba(255, 255, 255, .09);
    border-radius: 0 8px 8px 0;
    color: #8b93a1;
    font-size: .84rem;
    text-decoration: none;
    white-space: nowrap;
    transition: background .18s ease, color .18s ease;
}
.mr-nav-subitem::before { content: ""; position: absolute; left: -3px; top: 50%; width: 5px; height: 5px; border-radius: 50%; background: #4a515e; transform: translateY(-50%); transition: background .18s; }
.mr-nav-subitem:hover { background: rgba(255, 255, 255, .05); color: #fff; }
.mr-nav-subitem.ativo { color: #fff; background: linear-gradient(90deg, rgba(228, 35, 28, .22), transparent 80%); }
.mr-nav-subitem.ativo::before { background: var(--mr-vermelho-brilho); box-shadow: 0 0 8px 1px rgba(255, 75, 62, .8); }

/* ---------- Orçamentos ---------- */
.mr-campo-prefixo { position: relative; }
.mr-campo-prefixo span { position: absolute; top: 50%; left: 14px; transform: translateY(-50%); font-size: .86rem; font-weight: 600; color: var(--mr-texto-suave); pointer-events: none; }
/* !important: a regra genérica .mr-form-card input[type=text] zeraria o espaço do "R$" */
.mr-campo-prefixo input.form-control { padding-left: 44px !important; text-align: right; font-weight: 600; }
.mr-valor { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.mr-celula-motivo { max-width: 320px; font-size: .86rem; color: var(--mr-texto-suave); }
.mr-campo-sufixo input[type="number"] { padding-right: 52px !important; }

/* Tipos de registro no histórico: início do trabalho (dourado) e alteração de dados (aço) */
.mr-historico li.mr-historico-inicio::before { background: var(--mr-dourado); }
.mr-historico li.mr-historico-edicao::before { background: #6b7a92; }
.mr-historico-detalhes { margin: 6px 0 0; padding: 8px 12px 8px 26px; border-radius: 8px; background: var(--mr-superficie-2); font-size: .82rem; color: var(--mr-texto-suave); }
.mr-historico-detalhes li { padding: 1px 0; }
.mr-historico-detalhes li::before { display: none; }
.mr-historico-detalhes li { list-style: disc; }

/* Botão "Iniciar" (análise / orçamento) */
.mr-iniciar-card { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.mr-iniciar-icone { display: grid; flex-shrink: 0; place-items: center; width: 54px; height: 54px; border-radius: 14px; background: var(--mr-grad-vermelho); color: #fff; box-shadow: var(--mr-brilho-vermelho); }
.mr-iniciar-texto { flex: 1; min-width: 240px; }
.mr-iniciar-texto p { font-size: .88rem; color: var(--mr-texto-suave); }
.mr-iniciar-card .mr-iniciar-texto h5::before { display: none; }
.mr-inicio-registrado { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; padding: 6px 12px; border-radius: 999px; background: #fdf5e1; color: #8a5d00; font-size: .8rem; }
.mr-historico-obs.neutra { background: var(--mr-superficie-2); color: var(--mr-texto-suave); }

/* Nomes longos no menu (ex.: "Criação da ordem de serviço") quebram linha em vez de cortar */
.mr-nav-item > span,
.mr-nav-subitem > span { white-space: normal; line-height: 1.25; }

/* ---------- Painel Comercial ---------- */
.k-grafite { --kpi-grad: var(--mr-grad-grafite); --kpi-cor: rgba(27, 31, 39, .08); --kpi-sombra: rgba(17, 20, 26, .9); }
.mr-painel .mr-card { display: flex; flex-direction: column; }
.mr-painel-titulo { display: flex; align-items: center; gap: 12px; }
.mr-painel-titulo .mr-kpi-icone { flex-shrink: 0; width: 40px; height: 40px; border-radius: 12px; }
.mr-painel-titulo .mr-kpi-icone svg { width: 20px; height: 20px; }

.mr-painel-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; padding: 18px 22px 4px; }
.mr-painel-kpis > div { padding: 14px 16px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-painel-kpis > div.destaque { background: #fff; box-shadow: var(--mr-sombra-1); }
.mr-painel-kpis span { display: block; margin-bottom: 4px; font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mr-texto-fraco); }
.mr-painel-kpis strong { display: block; font-family: var(--mr-fonte-display); font-size: 2rem; font-weight: 800; line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--mr-texto); }
.mr-painel-kpis strong.mr-valor { font-size: 1.55rem; }
.mr-painel-kpis strong small { margin-left: 2px; font-size: .5em; color: var(--mr-texto-fraco); }
.mr-painel-kpis em { display: block; margin-top: 6px; font-size: .76rem; font-style: normal; color: var(--mr-texto-suave); }

.mr-painel-lista-titulo { margin: 16px 22px 0; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--mr-texto-suave); }
.mr-painel .mr-recentes { padding-top: 4px; }
.mr-painel-posicao { flex-shrink: 0; width: 18px; font-family: var(--mr-fonte-display); font-size: .8rem; font-weight: 700; color: var(--mr-texto-fraco); text-align: center; }
.mr-painel .mr-recente-lado strong { display: block; font-size: .86rem; color: var(--mr-texto); }
.mr-painel-tempo { display: block; }
.mr-painel-vazio { margin: 10px 22px 22px; padding: 18px; border: 1px dashed var(--mr-borda-forte); border-radius: var(--mr-raio-md); font-size: .86rem; color: var(--mr-texto-fraco); text-align: center; }

/* ---------- Visão Geral: frase da empresa e módulos por seção ---------- */
.mr-hero p.mr-hero-frase { max-width: 720px; font-size: 1.06rem; line-height: 1.6; color: #c9ced8; }
.mr-hero p.mr-hero-frase strong { color: #fff; font-weight: 700; }
.mr-modulos-secao { margin: 22px 0 10px; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--mr-texto-fraco); }
.mr-modulos-secao:first-child { margin-top: 0; }
.mr-hero-emoji { font-style: normal; white-space: nowrap; }

/* Perguntas Sim/Não do atendimento lado a lado, cada uma com a largura do próprio conteúdo */
.mr-linha-perguntas { display: flex; flex-wrap: wrap; gap: 8px 44px; }
.mr-pergunta-bloco .mr-toggle-botoes { margin-bottom: .5rem; }

/* ---------- Prazo de 48h (Pré-projeto) ---------- */
/* Quadros compactos: título em cima, número embaixo, largura só do conteúdo */
.mr-prazo-kpis { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
.mr-prazo-kpi { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 16px; text-align: center; border: 1px solid var(--mr-borda); border-radius: 12px; background: #fff; box-shadow: var(--mr-sombra-1); }
.mr-prazo-kpi span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; line-height: 1.25; text-transform: uppercase; color: var(--mr-texto-fraco); }
.mr-prazo-kpi strong { font-family: var(--mr-fonte-display); font-size: 1.6rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.mr-prazo-kpi em { display: block; margin-top: 2px; font-size: .7rem; font-weight: 400; font-style: normal; letter-spacing: 0; text-transform: none; color: var(--mr-texto-fraco); }
.mr-prazo-kpi.alerta { border-color: #f7d1ce; background: #fff6f5; }
.mr-prazo-kpi.alerta strong,
.mr-prazo-kpi.alerta span { color: #b3160f; }

/* Linha do card que passou do prazo: vermelha e em negrito */
.mr-linha-atrasada > td { background: #fff4f3 !important; color: #b3160f; font-weight: 700; }
.mr-linha-atrasada > td:first-child { box-shadow: inset 3px 0 0 var(--mr-vermelho); }
.mr-linha-atrasada .mr-celula-titulo,
.mr-linha-atrasada .mr-secundario { color: #b3160f; }
.mr-prazo-texto { display: block; margin-top: 1px; font-size: .76rem; font-weight: 700; color: #b3160f; }

/* Feriados: formulário em edição e linha correspondente destacados */
.mr-form-card.mr-editando { border-color: rgba(240, 180, 41, .6); box-shadow: 0 0 0 4px rgba(240, 180, 41, .12), var(--mr-sombra-1); }
.mr-linha-editando > td { background: #fdf5e1 !important; }

/* ---------- Feriados em calendário ---------- */
.mr-cal-cabeca { flex-wrap: wrap; align-items: center; }
.mr-cal-ano { display: flex; align-items: center; gap: 10px; }
.mr-cal-ano .mr-card-titulo { min-width: 64px; font-size: 1.5rem; text-align: center; }
.mr-cal-seta { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--mr-borda); border-radius: 10px; color: var(--mr-texto-suave); transition: border-color .15s, color .15s; }
.mr-cal-seta:hover { border-color: var(--mr-vermelho); color: var(--mr-vermelho); }
.mr-cal-dica { padding: 0 22px; }

.mr-cal-legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; font-size: .78rem; color: var(--mr-texto-suave); }
.mr-cal-legenda li { display: flex; align-items: center; gap: 6px; }
.mr-cal-amostra { width: 14px; height: 14px; border-radius: 4px; }

.mr-cal-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; padding: 18px 22px 24px; }
.mr-cal-mes { padding: 14px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-cal-mes-nome { margin-bottom: 8px; font-family: var(--mr-fonte-display); font-weight: 700; font-size: .95rem; }
.mr-cal-dias { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.mr-cal-semana { padding-bottom: 4px; font-size: .66rem; font-weight: 700; color: var(--mr-texto-fraco); text-align: center; }

.mr-cal-dia {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    border: 2px solid transparent;
    border-radius: 8px;
    font-size: .8rem;
    font-weight: 500;
    color: var(--mr-texto);
    text-decoration: none;
    font-variant-numeric: tabular-nums;
    transition: background .15s, border-color .15s, transform .15s;
}
a.mr-cal-dia:hover { z-index: 5; background: #fff; border-color: var(--mr-borda-forte); }
.mr-cal-dia.fds { color: var(--mr-texto-fraco); }
.mr-cal-dia.hoje { box-shadow: inset 0 0 0 2px var(--mr-texto); }

/* Cores por tipo de feriado (texto sempre legível sobre o fundo) */
.t-nacional { --cal-cor: var(--mr-vermelho); --cal-texto: #fff; }
.t-estadual { --cal-cor: #4a5a73; --cal-texto: #fff; }
.t-municipal { --cal-cor: var(--mr-dourado); --cal-texto: #2b1d00; }
.t-facultativo { --cal-cor: #cfd5dd; --cal-texto: #2b3240; }
.mr-cal-amostra { background: var(--cal-cor); }
.mr-cal-amostra.expediente { background: #fff; box-shadow: inset 0 0 0 2px var(--cal-cor); }

.mr-cal-dia.feriado { background: var(--cal-cor); color: var(--cal-texto); font-weight: 800; }
.mr-cal-dia.feriado:hover { background: var(--cal-cor); border-color: var(--mr-texto); transform: scale(1.12); }
/* Com expediente: só o contorno na cor do tipo (o dia conta no prazo) */
.mr-cal-dia.feriado.expediente { background: #fff; border-color: var(--cal-cor); color: var(--mr-texto); }
.mr-cal-dia.selecionado { outline: 3px solid rgba(240, 180, 41, .7); outline-offset: 1px; }

/* Balão com a descrição ao passar o mouse */
.mr-cal-dia[data-dica]::after {
    content: attr(data-dica);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    z-index: 20;
    width: max-content;
    max-width: 230px;
    padding: 8px 11px;
    border-radius: 9px;
    background: #11141a;
    color: #fff;
    font-size: .76rem;
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    white-space: pre-line;
    box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .45);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 4px);
    transition: opacity .15s, transform .15s;
}
.mr-cal-dia[data-dica]:hover::after,
.mr-cal-dia[data-dica]:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
/* Nas colunas das pontas o balão abre para dentro, sem sair do cartão */
.mr-cal-dias > :nth-child(7n + 1)[data-dica]::after,
.mr-cal-dias > :nth-child(7n + 2)[data-dica]::after { left: 0; transform: translate(0, 4px); }
.mr-cal-dias > :nth-child(7n + 1)[data-dica]:hover::after,
.mr-cal-dias > :nth-child(7n + 2)[data-dica]:hover::after { transform: translate(0, 0); }
.mr-cal-dias > :nth-child(7n)[data-dica]::after,
.mr-cal-dias > :nth-child(7n + 6)[data-dica]::after { left: auto; right: 0; transform: translate(0, 4px); }
.mr-cal-dias > :nth-child(7n)[data-dica]:hover::after,
.mr-cal-dias > :nth-child(7n + 6)[data-dica]:hover::after { transform: translate(0, 0); }

@media (max-width: 1399.98px) { .mr-cal-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991.98px) { .mr-cal-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .mr-cal-grade { grid-template-columns: minmax(0, 1fr); padding: 14px; } }

/* Férias coletivas no calendário (verde) */
.t-ferias { --cal-cor: #1fae5b; }
.mr-cal-amostra.t-ferias { background: #d8f3e3; box-shadow: inset 0 0 0 2px #1fae5b; }
.mr-cal-dia.ferias { background: #d8f3e3; color: #0f6b35; font-weight: 700; }
.mr-cal-dia.ferias:hover { background: #c3ecd4; border-color: #1fae5b; }
.mr-cal-dia.ferias-inicio { box-shadow: inset 3px 0 0 #1fae5b; }
.mr-cal-dia.ferias-fim { box-shadow: inset -3px 0 0 #1fae5b; }
.mr-cal-dia.ferias-inicio.ferias-fim { box-shadow: inset 3px 0 0 #1fae5b, inset -3px 0 0 #1fae5b; }
.mr-cal-ferias-resumo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 22px 0; font-size: .8rem; color: var(--mr-texto-suave); }
.mr-pill-ferias { color: #0f6b35; background: #e3f7eb; border-color: #bfe9cf; text-decoration: none; }
.mr-pill-ferias:hover { color: #0a5129; border-color: #1fae5b; }
.mr-form-ferias { border-color: rgba(31, 174, 91, .45); }
.mr-cal-ferias-resumo .mr-pill-ferias { max-width: 100%; white-space: normal; line-height: 1.35; }

/* ---------- Anexos: tirar da escolha, selecionar e baixar ---------- */
.mr-arquivo-chip { max-width: 100%; cursor: default; }
.mr-arquivo-chip .mr-arquivo-nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mr-arquivo-chip input.mr-baixar-item { flex-shrink: 0; width: 15px; height: 15px; margin: 0; cursor: pointer; accent-color: var(--mr-vermelho); }
.mr-arquivo-chip:has(input.mr-baixar-item:checked) { border-color: rgba(228, 35, 28, .45); background: #fff6f5; }
.mr-arquivo-tirar { display: inline-grid; flex-shrink: 0; place-items: center; width: 20px; height: 20px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--mr-texto-fraco); cursor: pointer; transition: background .15s, color .15s; }
.mr-arquivo-tirar:hover { background: #fdecea; color: var(--mr-vermelho); }

.mr-download-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 14px 0 4px; padding: 10px 14px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-baixar-todos { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: .82rem; font-weight: 600; color: var(--mr-texto-suave); cursor: pointer; }
.mr-baixar-todos input { width: 15px; height: 15px; accent-color: var(--mr-vermelho); }
.mr-download-barra .btn[disabled] { opacity: .5; pointer-events: none; }
.mr-download-dica { flex-basis: 100%; font-size: .74rem; color: var(--mr-texto-fraco); }
@media (min-width: 992px) { .mr-download-dica { flex-basis: auto; margin-left: auto; } }

/* ---------- Histórico em blocos por setor (início, fim, quem, horas) ---------- */
.mr-hist-blocos { padding-left: 22px; }
.mr-hist-bloco { padding: 0 0 18px 16px; }
.mr-hist-bloco::before { top: 3px; }
.mr-hist-bloco.resultado-ok::before { background: #1fae5b; }
.mr-hist-bloco.resultado-nao::before { background: #4a5a73; }
.mr-hist-titulo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; font-size: .96rem; }
.mr-hist-linha { padding: 1px 0; font-size: .87rem; color: var(--mr-texto-suave); }
.mr-hist-linha strong { color: var(--mr-texto); font-weight: 600; }
.mr-hist-espera { font-style: italic; color: var(--mr-texto-fraco); }
.mr-hist-edicao { margin-top: 2px; font-size: .8rem; color: var(--mr-texto-fraco); }
.mr-hist-total { display: inline-block; margin-top: 8px; padding: 4px 12px; border-radius: 999px; background: var(--mr-superficie-2); border: 1px solid var(--mr-borda); font-size: .82rem; color: var(--mr-texto-suave); }
.mr-hist-total strong { color: var(--mr-texto); }
.mr-hist-total-geral { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 4px; padding: 14px 18px; border-radius: var(--mr-raio-md); background: var(--mr-grad-grafite); color: #d7dce4; }
.mr-hist-total-item span { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #8b93a1; }
.mr-hist-total-item strong { display: block; margin-top: 2px; font-family: var(--mr-fonte-display); font-size: 1.35rem; line-height: 1.1; color: #fff; font-variant-numeric: tabular-nums; }
.mr-hist-total-item.destaque { padding: 6px 14px; border-radius: 10px; background: rgba(228, 35, 28, .22); box-shadow: inset 0 0 0 1px rgba(255, 90, 78, .35); }
.mr-hist-total-item.destaque span { color: #ffb4ad; }
.mr-hist-total-sinal { font-size: 1.3rem; font-weight: 700; color: #596070; }
.mr-hist-total-nota { flex-basis: 100%; margin: 0; font-size: .74rem; color: #8b93a1; }

/* Arquivos anexados: um por linha, um embaixo do outro */
.mr-info-rotulo ~ .mr-arquivo-chip,
.mr-resposta-detalhe .mr-arquivo-chip { display: flex; width: fit-content; max-width: 100%; margin: 0 0 6px; }
.mr-resposta-detalhe .mr-arquivo-chip + .mr-arquivo-chip { margin-top: 0; }
.mr-arquivos-atuais,
.mr-arquivos-novos:not(:empty) { flex-direction: column; align-items: flex-start; gap: 6px; }

/* ---------- Pausa do trabalho ---------- */
dialog.mr-dialogo { width: min(440px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: var(--mr-raio); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .55); }
dialog.mr-dialogo::backdrop { background: rgba(17, 20, 26, .55); backdrop-filter: blur(2px); }
.mr-dialogo-corpo { padding: 24px; }
.mr-dialogo-opcoes { display: grid; gap: 8px; }
.mr-dialogo-opcao { display: flex; align-items: center; gap: 12px; margin: 0; padding: 11px 14px; border: 1px solid var(--mr-borda); border-radius: 12px; font-size: .92rem; font-weight: 500; cursor: pointer; transition: border-color .15s, background .15s; }
.mr-dialogo-opcao:hover { border-color: var(--mr-borda-forte); background: var(--mr-superficie-2); }
.mr-dialogo-opcao input { width: 17px; height: 17px; accent-color: var(--mr-vermelho); }
.mr-dialogo-opcao:has(input:checked) { border-color: rgba(228, 35, 28, .55); background: #fff6f5; }
.mr-dialogo .mr-form-acoes { margin-top: 20px; }
.mr-pausado-card { border-color: rgba(228, 35, 28, .35); background: #fff9f8; }
.mr-pausado-icone { background: var(--mr-grad-grafite); box-shadow: none; }
.mr-hist-pausa { margin-left: 2px; padding-left: 10px; border-left: 2px solid #f7d1ce; }
.mr-hist-pausa .mr-pill { font-size: .72rem; }

/* Botão amarelo de pausar */
.btn-pausar { display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 10px; background: var(--mr-grad-dourado); color: #2b1d00; font-weight: 700; box-shadow: 0 8px 20px -8px rgba(201, 138, 11, .75), inset 0 1px 0 rgba(255, 255, 255, .35); transition: transform .15s, box-shadow .15s, filter .15s; }
.btn-pausar:hover, .btn-pausar:focus { color: #2b1d00; filter: brightness(1.05); transform: translateY(-1px); box-shadow: 0 12px 24px -8px rgba(201, 138, 11, .85), inset 0 1px 0 rgba(255, 255, 255, .35); }
.btn-pausar:active { transform: translateY(0); }

/* Aviso: o Pré-projeto devolveu o atendimento (precisa de projeto) */
.mr-aviso-retorno { display: flex; max-width: 1060px; gap: 16px; margin-bottom: 18px; padding: 18px 20px; border: 1px solid rgba(240, 180, 41, .55); border-radius: var(--mr-raio); background: #fffaf0; }
.mr-aviso-retorno-icone { display: grid; flex-shrink: 0; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--mr-grad-dourado); color: #2b1d00; }
.mr-aviso-retorno h5 { margin: 0 0 4px; font-family: var(--mr-fonte-display); font-weight: 700; font-size: 1rem; }
.mr-aviso-retorno h5::before { display: none; }
.mr-aviso-retorno p { margin: 0 0 12px; font-size: .9rem; color: var(--mr-texto-suave); }
.mr-aviso-retorno-dados { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.mr-aviso-retorno-dados > div { padding: 10px 14px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: #fff; }
.mr-aviso-retorno-dados span { display: block; margin-bottom: 3px; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mr-texto-fraco); }
.mr-aviso-retorno-dados strong { display: block; font-size: .92rem; }
.mr-aviso-retorno-dados em { display: block; font-size: .76rem; font-style: normal; color: var(--mr-texto-suave); }

/* Linha clicável que abre o card */
tr[data-href] { cursor: pointer; }
tr[data-href]:hover > td { background: rgba(228, 35, 28, .035); }

/* Proposta do projeto (Atendimento) */
.mr-proposta-fixo { display: flex; align-items: center; min-height: 38px; padding: 0 14px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); font-weight: 700; }
.mr-proposta-fixo.destaque { font-family: var(--mr-fonte-display); font-size: 1.1rem; color: var(--mr-vermelho); }
.mr-aviso-diferenca { padding: 14px 16px; border: 1px solid rgba(240, 180, 41, .55); border-radius: var(--mr-raio-md); background: #fffaf0; }
.mr-aviso-diferenca[hidden] { display: none; }

/* Histórico: rola dentro do próprio quadro para a tela não crescer sem fim */
.mr-hist-rolagem { max-height: 520px; overflow-y: auto; padding-right: 8px; margin-right: -8px; scrollbar-width: thin; scrollbar-color: var(--mr-borda-forte, #c3c8d0) transparent; }
.mr-hist-rolagem::-webkit-scrollbar { width: 8px; }
.mr-hist-rolagem::-webkit-scrollbar-thumb { background: var(--mr-borda-forte, #c3c8d0); border-radius: 8px; }
.mr-hist-total-item { text-align: center; }

#dica-reenvio[hidden], #btn-enviar-pre-projeto[hidden] { display: none; }

/* Filtro de atendente ao lado dos quadros */
.mr-filtro-atendente { align-items: flex-start; }
.mr-filtro-atendente > span { margin-bottom: 4px; }
.mr-filtro-atendente .mr-filtro-botoes { margin-bottom: 0; padding: 3px; }
.mr-filtro-atendente .mr-filtro-botoes label { padding: .35rem .9rem; font-size: .84rem; }

/* Dica logo abaixo de uma pergunta do Pré-projeto */
.mr-pergunta-dica { margin-top: 10px; padding: 8px 12px; border-left: 3px solid var(--mr-dourado); border-radius: 0 8px 8px 0; background: #fffaf0; font-size: .84rem; color: var(--mr-texto-suave); }
.mr-aviso-icone-vermelho { background: var(--mr-grad-vermelho) !important; color: #fff !important; }

/* Dados da pintura (abre quando "Tem pintura?" = Sim) */
.mr-pintura-bloco { margin: 6px 0 18px; padding: 16px 18px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-pintura-bloco[hidden] { display: none; }

/* Atalho "Cadastrar novo cliente" quando a busca não acha ninguém */
.mr-autocomplete-novo { display: flex; align-items: center; gap: 8px; margin-top: 4px; color: var(--mr-vermelho); font-weight: 700; border-top: 1px solid var(--mr-borda); border-radius: 0 0 8px 8px; }

/* Aviso simples dentro de um formulário */
.mr-aviso-retorno-simples { margin-bottom: 14px; padding: 9px 14px; border-left: 3px solid var(--mr-dourado); border-radius: 0 8px 8px 0; background: #fffaf0; font-size: .86rem; color: var(--mr-texto-suave); }

/* Fluxo de setores do card: verde = já passou, amarelo = ainda falta, amarelo com anel = onde está agora */
.mr-fluxo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 4px; margin: 0; padding: 0; list-style: none; }
.mr-fluxo-passo { position: relative; padding: 4px 11px; border: 1px solid transparent; border-radius: 999px; font-size: .76rem; font-weight: 600; line-height: 1.3; white-space: nowrap; }
.mr-fluxo-passo:not(:last-child)::after { content: "›"; margin-left: 8px; font-size: .95rem; line-height: 1; opacity: .55; }
.mr-fluxo-passo.feito { background: #e3f6ea; border-color: #b7e4c7; color: #146c37; }
.mr-fluxo-passo.pendente { background: #fff7db; border-color: #f4dc8a; color: #8a6100; }
.mr-fluxo-passo.atual { background: #ffe9a3; border-color: #e6b800; color: #5c3f00; box-shadow: 0 0 0 3px rgba(240, 180, 41, .35); }

/* Validade de 48h do prazo de entrega dado pelo PCP */
.mr-validade-prazo { margin: 12px 0 4px; padding: 9px 14px; border-left: 3px solid var(--mr-borda-forte); border-radius: 0 8px 8px 0; background: var(--mr-superficie-2); font-size: .85rem; color: var(--mr-texto-suave); }
.mr-validade-prazo.vencida { border-left-color: var(--mr-vermelho); background: #fff4f3; color: #8f1712; }
.mr-prazo-revalidado { margin: 12px 0 4px; padding: 10px 14px; border-left: 3px solid #1fae5b; border-radius: 0 8px 8px 0; background: #eefaf2; font-size: .86rem; color: #14532d; }
.mr-prazo-revalidado.nova-data { border-left-color: var(--mr-dourado); background: #fffaf0; color: #6b4a00; }

/* Quadro com valor em R$ (cabe junto dos quadros de quantidade) */
.mr-prazo-kpi strong.mr-kpi-valor { font-size: 1.3rem; line-height: 1.25; }

/* Tempo no setor logo abaixo do fluxo de setores (lista de Orçamentos) */
.mr-fluxo-tempo { margin-top: 6px; font-size: .78rem; }
.mr-fluxo-tempo .mr-secundario { display: inline; }

/* Dados da aprovação (Em espera de aprovação → Aprovado) */
.mr-aprovacao-bloco { margin: 14px 0 6px; padding: 16px 18px; border: 1px solid var(--mr-borda); border-radius: var(--mr-raio-md); background: var(--mr-superficie-2); }
.mr-aprovacao-bloco[hidden], #bloco-frete[hidden], #bloco-transportadora[hidden], #bloco-endereco-cif[hidden], #bloco-endereco-entrega[hidden], [data-frete-rotulo][hidden] { display: none !important; }

/* Boleto: em quantas vezes e os dias de cada parcela */
.mr-boleto-bloco { margin: -4px 0 16px; padding: 12px 14px; border: 1px dashed var(--mr-borda-forte); border-radius: var(--mr-raio-md); background: #fff; }
.mr-boleto-bloco[hidden], .mr-boleto-dia[hidden] { display: none !important; }
.mr-boleto-dias { display: flex; flex-wrap: wrap; gap: 10px; }
.mr-boleto-dia { width: 120px; }
.mr-boleto-dia > span { display: block; margin-bottom: 3px; font-size: .74rem; font-weight: 600; color: var(--mr-texto-suave); }
/* Campos numéricos com sufixo (x, dias): sem as setinhas do navegador por cima do sufixo */
.mr-campo-sufixo input[type=number] { -moz-appearance: textfield; appearance: textfield; }
.mr-campo-sufixo input[type=number]::-webkit-outer-spin-button,
.mr-campo-sufixo input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

#bloco-transportadora[hidden], #bloco-transporte-interno[hidden] { display: none !important; }

/* Contador com setinhas (parcelas do boleto): escolhe sem digitar */
.mr-contador { position: relative; display: flex; align-items: stretch; }
.mr-contador input.form-control { padding-right: 62px !important; text-align: right; background: #fff; cursor: default; -moz-appearance: textfield; appearance: textfield; }
.mr-contador input::-webkit-outer-spin-button, .mr-contador input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.mr-contador-sufixo { position: absolute; top: 50%; right: 42px; transform: translateY(-50%); font-size: .8rem; color: var(--mr-texto-fraco); pointer-events: none; }
.mr-contador-setas { position: absolute; top: 3px; right: 3px; bottom: 3px; display: flex; flex-direction: column; width: 32px; overflow: hidden; border-radius: 8px; border: 1px solid var(--mr-borda); }
.mr-contador-setas button { flex: 1; display: grid; place-items: center; padding: 0; border: 0; background: var(--mr-superficie-2); color: var(--mr-texto-suave); cursor: pointer; }
.mr-contador-setas button + button { border-top: 1px solid var(--mr-borda); }
.mr-contador-setas button:hover { background: var(--mr-vermelho); color: #fff; }
/* O contador é só leitura (escolhe pelas setinhas), mas tem cara de campo normal */
.mr-form-card .mr-contador input.form-control[readonly],
.mr-contador input.form-control[readonly] { background: #fff !important; border: 1px solid var(--mr-borda-forte) !important; border-style: solid !important; color: var(--mr-texto) !important; font-weight: 700; box-shadow: none; }
.mr-contador { width: 140px; }
.mr-contador input.form-control { text-align: center; padding-left: 12px !important; }

/* Saldo que o cliente ainda deve pagar (aparece ao informar a entrada) */
.mr-saldo-pagar { display: inline-flex; align-items: baseline; gap: 8px; padding: 8px 14px; border-radius: 10px; background: #fff; border: 1px solid var(--mr-borda); font-size: .88rem; color: var(--mr-texto-suave); }
.mr-saldo-pagar strong { font-family: var(--mr-fonte-display); font-size: 1.05rem; color: var(--mr-texto); }

/* Boleto: o contador e os campos de dias na mesma altura */
.mr-boleto-subrotulo,
.mr-boleto-dia > span { display: block; height: 18px; margin-bottom: 3px; font-size: .74rem; font-weight: 600; line-height: 18px; color: var(--mr-texto-suave); }
.mr-contador input.form-control,
.mr-boleto-dia input.form-control { height: 46px; }

/* Entrada: comprovante (obrigatório) ou confirmação de recebimento em dinheiro */
#bloco-comprovante-entrada[hidden], #bloco-dinheiro-entrada[hidden] { display: none !important; }
.mr-confirma-dinheiro { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid rgba(240, 180, 41, .6); border-radius: 10px; background: #fffaf0; font-size: .9rem; cursor: pointer; }
.mr-confirma-dinheiro input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--mr-vermelho); }
.mr-confirma-dinheiro em { display: block; margin-top: 2px; font-style: normal; font-size: .8rem; color: var(--mr-texto-suave); }

/* Pergunta de marcar/desmarcar em formato de chave (ex.: cliente habilitado para boleto) */
.mr-switch-pergunta { display: flex; align-items: center; gap: 12px; padding-left: 0; }
.mr-switch-pergunta .form-check-input { float: none; width: 2.6em; height: 1.4em; margin: 0; cursor: pointer; }
.mr-switch-pergunta .form-check-input:checked { background-color: var(--mr-vermelho); border-color: var(--mr-vermelho); }
.mr-switch-pergunta .form-check-label { font-weight: 600; cursor: pointer; }
.mr-form-card .mr-switch-pergunta input.form-check-input[type="checkbox"] {
    width: 2.6em !important; height: 1.4em !important; border-radius: 2em !important; flex-shrink: 0;
    background-color: #fff; border: 1px solid var(--mr-borda-forte);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23b8bec8'/%3e%3c/svg%3e") !important;
    background-position: left center !important; background-repeat: no-repeat; background-size: contain !important;
    transition: background-position .15s ease-in-out;
}
.mr-form-card .mr-switch-pergunta input.form-check-input[type="checkbox"]:checked {
    background-color: var(--mr-vermelho) !important; border-color: var(--mr-vermelho) !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
    background-position: right center !important;
}

/* Opção indisponível (ex.: Boleto para cliente não habilitado) */
.mr-toggle-botoes label.mr-opcao-desativada { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.mr-toggle-botoes label.mr-opcao-desativada:hover { background: transparent; color: var(--mr-texto-suave); }
.mr-aviso-boleto { margin: -8px 0 14px; font-size: .8rem; color: #8a6100; }
