:root {
    --blue: #0B2D59;
    --teal: #1464C0;
    --amber: #1464C0;
    --bg: #F5F8FD;
    --border: #D8E5F5;
    --concluido: #137A50;
}
body { color: var(--blue); background: var(--bg); }
.sidebar { background: linear-gradient(165deg, #0B2D59, #104780); box-shadow: 4px 0 24px #0b2d5912; }
.sidebar p { color: #c6ddf6; }
.sidebar nav a[aria-current="page"] { background: #1464C0; box-shadow: inset 3px 0 #BBD9FF; }
.sidebar nav a:hover { background: #1464C070; }
.topbar { border-color: var(--border); }
.topbar .empresa-conectada strong { color: var(--blue); }
.primary { background: #1464C0; color: white; }
.secondary { background: #0B2D59; color: white; }
.attention { background: #EAF3FF; color: #0B2D59; border: 1px solid #b7d5f8; }
.notice { background: #EAF3FF; border-left-color: #1464C0; color: #0B2D59; }
.badge, .badge.teal, .badge.amber { background: #EAF3FF; color: #0B2D59; }
.metric { border-top-color: #0B2D59; box-shadow: 0 5px 18px #0b2d5905; }
.metric.teal, .metric.amber { border-top-color: #1464C0; }
.metric.success { border-top-color: var(--concluido); }
.metric.success strong, .resultado-concluido { color: var(--concluido); }
.badge.success { background: #e5f4ed; color: #137A50; }
.funnel-step.amber, .funnel-step.teal { background: #1464C0; color: white; }
.funnel-step.success { background: var(--concluido); color: white; }
.auth { background: radial-gradient(ellipse at 15% 15%, #EAF3FF 0%, transparent 50%), linear-gradient(135deg, #0B2D59 0%, #1464C0 44%, #EAF3FF 44%, #ffffff 100%); }
.auth-card { border: 1px solid #D8E5F5; box-shadow: 0 24px 70px #0b2d5933; position: relative; }
.auth-card .brand img.brand-hero { max-height: 150px; object-fit: contain; }
.auth-card .brand { padding-block: 6px; }
.auth-card > p { text-align: center; color: #0B2D59; }
.panel { box-shadow: 0 4px 18px #0b2d5904; }
.page-heading, .pagina-heading { margin-bottom: 24px; }
.eyebrow { color: #1464C0; }
.chart-legend button { border-color: var(--border); }
.field-validation-error, .validation-summary-errors { border-left-color: #1464C0; }
:where(a, button, input, select, textarea, summary):focus-visible { outline-color: #1464C0; }
input[type=checkbox] { accent-color: #1464C0; }
@media(max-width:700px) {
    .auth { background: linear-gradient(150deg, #0B2D59, #1464C0 45%, #EAF3FF 45%); }
    .auth-card { margin-top: 90px; }
}
/* Contraste dos ícones de ação sobre botões preenchidos. */
button .app-icon:not([class*="icon-menu-"]), .button .app-icon:not([class*="icon-menu-"]) { filter: brightness(0) invert(1); }
.attention .app-icon:not([class*="icon-menu-"]) { filter: none; }

/* Ajustes das ações de prospecção e catálogo. */
.vinculo-empresa-linha { display:flex; align-items:center; gap:8px; margin:0 0 10px; }
.vinculo-empresa-linha > select, .vinculo-empresa-linha > .cliente-combobox { flex:1; min-width:170px; }
.vinculo-empresa-linha > button { flex-shrink:0; white-space:nowrap; }
.acoes-prospeccao-linha { display:flex; align-items:center; gap:12px; margin-top:10px; white-space:nowrap; }
.acoes-segmento { white-space:nowrap; }
.acoes-segmento form { display:inline-block; margin:0 6px 0 0; vertical-align:middle; }
.historico-manual-tabela { table-layout:fixed; width:100%; min-width:1050px; }
.historico-manual-tabela td:nth-child(2) { overflow-wrap:anywhere; }
.historico-manual-tabela th:nth-child(n+3), .historico-manual-tabela td:nth-child(n+3) { white-space:nowrap; }
@media (max-width:700px) {
    .vinculo-empresa-linha, .acoes-prospeccao-linha { flex-wrap:wrap; white-space:normal; }
    .historico-manual-tabela colgroup { display:none; }
    .historico-manual-tabela th:nth-child(n+3), .historico-manual-tabela td:nth-child(n+3) { white-space:normal; }
    .acoes-segmento { white-space:normal; }
}

.acoes-segmento-botoes { display:flex; align-items:center; gap:6px; max-width:100%; overflow-x:auto; }
.acoes-segmento-botoes > form { width:auto; flex:0 0 auto; margin:0; }
.acoes-segmento-botoes button { white-space:nowrap; }
@media (max-width:700px) {
    .historico-manual-tabela { min-width:0; }
    .lista-paginada .acoes-segmento-botoes button { padding-inline:8px; font-size:12px; }
    .acoes-segmento-botoes .app-icon { --icon-size:18px; }
}

/* Refinamentos de navegacao e consulta. */
.topbar { position:sticky; top:0; z-index:50; }
.dashboard-grid.dashboard-atividades { grid-template-columns:minmax(0,2.1fr) minmax(0,0.9fr); }
.resumo-acompanhamento { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:8px 6px; }
.resumo-acompanhamento dt, .resumo-acompanhamento dd { margin:0; }
.acoes-modelo-botoes { display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:22px; max-width:100%; overflow-x:auto; }
.lista-paginada .acoes-modelo-botoes form { margin:0; width:auto; }
.acoes-modelo-botoes > * { flex:0 0 auto; white-space:nowrap; }
.lista-paginada .acoes-modelo-botoes button { white-space:nowrap; }
.horarios-atendimento { max-height:none; width:min(100%,760px); overflow-y:visible; }
.horarios-atendimento th { position:static; }
.horarios-atendimento td { padding:6px 8px; }
.horarios-atendimento input[type=time] { width:135px; max-width:100%; padding:6px 8px; margin:0; min-height:36px; font-size:14px; }
.acoes-prospeccao-compactas { gap:8px; flex-wrap:nowrap; }
.acoes-prospeccao-compactas > * { flex:0 0 auto; }
.acoes-prospeccao-compactas .acao-icone { width:40px; height:40px; border:1px solid var(--border); border-radius:7px; background-size:24px 24px; background-position:center; }
.acoes-prospeccao-compactas .icon-edit { background-image:url('../images/brand/acoes/edit.svg'); }
.acao-icone:hover { background-color:var(--blue-light, #EAF3FF); }
@media (max-width:900px) {
    .dashboard-grid.dashboard-atividades { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:700px) {
    .resumo-acompanhamento { display:block; }
    .resumo-acompanhamento dt { display:inline; }
    .resumo-acompanhamento dd { display:inline; }
    .resumo-acompanhamento dd::after { content:""; display:block; margin-bottom:8px; }
    .lista-paginada .acoes-prospeccao-compactas .acao-icone { width:44px; height:44px; padding:0; }
    .acoes-prospeccao-compactas { overflow-x:auto; max-width:100%; }
    .lista-paginada .acoes-prospeccao-compactas > .button { white-space:nowrap; }
}

@media (max-width:700px) { .horarios-atendimento input[type=time] { min-height:44px; } }

/* Mantem os dados das atividades em uma linha no computador. */
@media (min-width:701px) {
    .dashboard-atividades table th, .dashboard-atividades table td { white-space:nowrap; }
}

/* Grade compacta dos sete dias, preservando os demais cartões responsivos. */
@media (max-width:700px) {
    .horarios-atendimento .tabela-responsiva thead {
        display:block; position:static; width:100%; height:auto; padding:0;
        overflow:visible; clip-path:none; white-space:normal;
    }
    .horarios-atendimento .tabela-responsiva thead tr,
    .horarios-atendimento .tabela-responsiva tbody tr {
        display:grid; grid-template-columns:minmax(0,1fr) 44px repeat(2,minmax(0,96px));
        align-items:center; gap:4px; margin:0; padding:4px 0;
        border:0; border-bottom:1px solid var(--border); border-radius:0;
    }
    .horarios-atendimento .tabela-responsiva th {
        padding:6px 0; border:0; font-size:11px; text-align:center;
    }
    .horarios-atendimento .tabela-responsiva th:first-child { text-align:left; }
    .horarios-atendimento .tabela-responsiva th:nth-child(2) { font-size:10px; white-space:nowrap; }
    .horarios-atendimento .tabela-responsiva tbody td {
        display:flex; align-items:center; justify-content:center; width:100%;
        min-width:0; padding:0; border:0; font-size:12px;
    }
    .horarios-atendimento .tabela-responsiva tbody td:first-child { justify-content:flex-start; }
    .horarios-atendimento .rotulo-celula { display:none; }
    .horarios-atendimento .tabela-responsiva input[type=time] {
        box-sizing:border-box; width:100%; min-width:0; max-width:100%;
        min-height:44px; margin:0; padding:6px 4px; font-size:16px;
    }
    .horarios-atendimento input[type=time]::-webkit-calendar-picker-indicator { display:none; }
    .horarios-atendimento .tabela-responsiva input[type=checkbox] { margin:0; }
}
@media (max-width:379px) {
    .horarios-atendimento .tabela-responsiva thead {
        position:absolute; width:1px; height:1px; padding:0;
        overflow:hidden; clip-path:inset(50%); white-space:nowrap;
    }
    .horarios-atendimento .tabela-responsiva tbody tr {
        grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; padding:8px 0;
    }
    .horarios-atendimento .tabela-responsiva tbody td:nth-child(2) { justify-content:flex-end; gap:6px; }
    .horarios-atendimento .tabela-responsiva tbody td:nth-child(n+3) { flex-direction:column; align-items:stretch; }
    .horarios-atendimento .tabela-responsiva tbody td:not(:first-child) .rotulo-celula { display:block; margin:0; }
}

/* No celular, muda a linha das ações sem cortar os botões dos modelos. */
@media (max-width:700px) {
    .acoes-modelo-botoes { flex-wrap:wrap; gap:12px 18px; overflow:visible; }
    .lista-paginada .acoes-modelo-botoes form { max-width:100%; }
}
