/* =============================================================================
   HelpRex Agent - barra do topo ("espinha"), D.0.10 / D.4 passo 5 (folha 43
   ESP-P0-TOPO). hx.css nao e tocado (D.0.11): toda a emenda da barra do topo
   vive neste arquivo proprio. A folha 43 cria o arquivo com as classes do
   contrato; a 45 (parte A) e a 52 (parte B) so acrescentam regras, nessa
   ordem (D.1). Tokens reaproveitados de hx.css (:root), carregado antes deste
   arquivo em _Layout.cshtml.
   ============================================================================= */

.hx-topbar {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 48px;
    padding: 0 16px;
    border-bottom: 1px solid var(--hx-line);
    background: var(--hx-paper);
    flex: none;
}

.hx-topbar-back {
    flex: none;
    display: flex;
    align-items: center;
    gap: 5px;
    height: 30px;
    padding: 0 8px 0 4px;
    margin-left: -4px;
    border: none;
    border-radius: 6px;
    background: none;
    font-size: 12.5px;
    color: var(--hx-ink3);
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
}
.hx-topbar-back:hover { color: var(--hx-brand-deep); background: var(--hx-sunken); text-decoration: none; opacity: 1; }

/* Divisor como elemento irmao de .hx-topbar-back, fora da area clicavel/hover do link (fora do
   gap e do fundo do hover), desenhado por _PageTop.cshtml logo depois do <a>. */
.hx-topbar-sep {
    flex: none;
    width: 1px;
    height: 20px;
    background: var(--hx-line);
}

/* Agrupa crumb + h1 (nao e uma classe do contrato D.0.10; so layout interno de _PageTop/_SettingsTop). */
.hx-topbar-heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1px;
    min-width: 0;
    flex: 1 1 auto;
}

.hx-topbar-crumb {
    font-size: 12px;
    line-height: 1.2;
    color: var(--hx-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hx-topbar-title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--hx-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hx-topbar-actions {
    flex: none;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
.hx-topbar-actions > * { height: 30px; }

.hx-topbar-tabs {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 0 16px;
    min-height: 36px;
    border-bottom: 1px solid var(--hx-line);
    background: var(--hx-paper);
    flex: none;
    overflow-x: auto;
    overflow-y: hidden;
}

.hx-page-lead {
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--hx-ink3);
}

/* Ramo HxShell: PageLead e filho direto de .hx-main. Ramo legado: PageLead fica dentro de
   .hx-legacy.main, que ja tem padding proprio (site.css .main) — aqui so a margem inferior. */
.hx-main > .hx-page-lead { padding: 10px 16px 0; }
.hx-legacy > .hx-page-lead { padding: 0; margin: 0 0 12px; }

/* =============================================================================
   Folha 52 UX-P0-TOPO-CAIXA (parte B): Caixa de entrada, Novo ticket e visoes
   salvas (C4, linhas C1 e C2; prototipo aprovado Navegacao 02 com os ajustes 6,
   7, 8 e 9). So acrescenta regras: as classes da 43 e as regras acima ficam como
   estao. hx-inbox.css, saved-views.css e hx-forms.css carregam DEPOIS deste
   arquivo (secao Styles das views); onde uma regra deles concorre, o seletor
   daqui e mais especifico.
   ============================================================================= */

/* ----- Caixa de entrada: barra de uma linha de 48 px ----- */
/* Lado de 20 px: o mesmo alinhamento da faixa de filtros e do painel avancado de hoje (.hx-filters,
   .hx-adv), que continuam como estao. */
.hx-inbox > .hx-inbox-bar { gap: 14px; padding: 0 20px; }
.hx-inbox-bar > .hx-topbar-title { flex: none; }
/* Visoes com contagem + "+" Salvar visao: ocupam o meio da barra e rolam POR DENTRO (a rolagem
   lateral fica aqui, nunca em hx-inbox.css - w2-agent-core.test.js); nenhuma aba encolhe. */
.hx-inbox-bar > .hx-inbox-bar-views { flex: 1 1 auto; min-width: 0; gap: 2px; padding-bottom: 0; overflow-x: auto; overflow-y: hidden; }
.hx-inbox-bar-views .hx-view,
.hx-inbox-bar-views .hx-saved-view { flex: none; }
.hx-inbox-bar .hx-view-save { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 28px; margin-left: 0; padding: 0 10px; font-size: 12px; line-height: 1; white-space: nowrap; }
.hx-inbox-bar .hx-view-save-icon { font-size: 14px; line-height: 1; }
/* UX-16: Arquivados e Spam sao visoes da Caixa, em texto ao lado de "Ao vivo" (a visao atual fica marcada). */
.hx-inbox-bar .hx-inbox-bins { display: flex; align-items: center; gap: 2px; flex: none; }
.hx-inbox-bar .hx-inbox-bin { display: inline-flex; align-items: center; height: 28px; padding: 0 9px; border-radius: 6px; font-size: 12px; color: var(--hx-ink3); text-decoration: none; white-space: nowrap; }
.hx-inbox-bar .hx-inbox-bin:hover { background: var(--hx-paper); color: var(--hx-ink); text-decoration: none; }
.hx-inbox-bar .hx-inbox-bin.is-active { background: var(--hx-ink); color: var(--hx-paper); font-weight: 600; }
/* "Ao vivo" sem moldura, como no prototipo. O involucro .hx-inbox-live carrega o relogio no title,
   fora de role=status (O7). */
.hx-inbox-bar .hx-inbox-live { display: flex; align-items: center; }
.hx-inbox-bar .hx-live { height: 28px; gap: 6px; padding: 0 9px; border: none; background: none; }
.hx-inbox-bar .hx-live-label { font-size: 11.5px; color: var(--hx-ink3); white-space: nowrap; }
.hx-inbox-bar .hx-topbar-actions .hx-btn-primary { gap: normal; padding: 0 12px; }

/* Abaixo de 1440, "Ao vivo" desligado (reconectando ou sem conexao) encolhe para caber a faixa de
   visoes. O texto inteiro continua no DOM, dentro de role=status: e ele o nome acessivel. */
@media (max-width: 1439px) {
    .hx-inbox-bar .hx-live.is-offline .hx-live-label { max-width: 8em; overflow: hidden; text-overflow: ellipsis; }
}

/* ----- Caixa de entrada: explicacao do filtro de status (ajuste 7/O4) ----- */
/* Linha fina propria, logo abaixo da faixa de filtros, sempre visivel (quebra linha em vez de cortar). */
.hx-inbox-filter-note { flex: none; min-height: 26px; padding: 4px 20px; border-bottom: 1px solid var(--hx-line); background: var(--hx-paper); font-size: 12px; line-height: 1.5; color: var(--hx-mute); }
/* _InboxStatusFilter termina com um separador pensado para o antigo subtitulo; nesta linha ele sobra.
   O partial nao muda (InboxStatusFilterWiringRegressionTests). */
.hx-inbox-filter-note > span[aria-hidden="true"]:last-child { display: none; }

/* ----- Novo ticket: barra de 48 px com trilha, titulo, estado, Cancelar e Criar ----- */
/* Barra branca e lado de 24 px, como a moldura de Configuracoes e o conteudo do formulario. */
.hx-form > .hx-form-bar { padding: 0 24px; background: var(--hx-surface); }
.hx-form-bar .hx-topbar-crumb a { color: var(--hx-ink3); text-decoration: none; }
.hx-form-bar .hx-topbar-crumb a:hover { color: var(--hx-brand-deep); text-decoration: underline; opacity: 1; }
.hx-form-bar .hx-topbar-actions > .hx-save-state { height: auto; }
/* A mensagem do 400 nomeia os campos: na barra ela ocupa no maximo duas linhas; o texto inteiro fica no
   aviso do topo do formulario (role=alert) e no proprio role=status. */
.hx-form-bar .hx-form-top-actions .hx-save-state.is-error { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; max-width: 420px; line-height: 1.3; white-space: normal; }
/* A frase de apoio (antigo subtitulo) abre o conteudo que rola. */
.hx-form-body > .hx-page-lead { max-width: 620px; margin: 0 0 14px; }
