/* Home do Self-Service (/Helpdesk): esconde o cabecalho "Como podemos ajuda-lo?"
   (busca + ilustracoes) e os cartoes de acesso rapido, mantendo so a lista de chamados. */
.helpdesk-home-container .search-banner,
.helpdesk-home-container .tiles-banner {
    display: none !important;
}

/* Barra lateral com a contagem de chamados por status (ver js/helpdesk-sidebar.js) */
.helpdesk-home-container .tickets-banner .hm-with-sidebar {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.helpdesk-home-container .hm-sidebar {
    flex: 0 0 300px;
}

.helpdesk-home-container .hm-with-sidebar > .card-tabs {
    flex: 1 1 auto;
    min-width: 0;
}

/* Status proprios ("Aguardando Terceiro", "Aguardando Usuario"...): a cor de cada um vem do
   servidor (PLUGIN_HIDEMENUS_STATUSES no hook.php) e e aplicada direto no icone. */

/* Visao por status: mostra a lista filtrada no lugar do conteudo das abas */
.helpdesk-home-container .card-tabs .hm-status-list {
    display: none;
}

.helpdesk-home-container .card-tabs.hm-filtering .hm-status-list {
    display: block;
}

.helpdesk-home-container .card-tabs.hm-filtering > .tab-content,
.helpdesk-home-container .card-tabs.hm-filtering > div > .tab-content {
    display: none;
}

@media (max-width: 991.98px) {
    .helpdesk-home-container .tickets-banner .hm-with-sidebar {
        flex-direction: column;
    }

    .helpdesk-home-container .hm-sidebar {
        flex-basis: auto;
        width: 100%;
    }
}

/* Topo do site: esconde "Assistencia" (trilha), "Padroes" e "Kanban global".
   Nao tem classe propria; identificados pelo icone e pelo link. So visual: as URLs continuam
   acessiveis conforme os direitos do perfil. */
.header-container .breadcrumb-item:has(> a > i.ti-headset),
.header-container .navbar-nav > li.nav-item:has(> a > i.ti-template),
.header-container .navbar-nav > li.nav-item:has(> a[href*="showglobalkanban"]) {
    display: none !important;
}

/* Home do Self-Service: sem as abas (Chamados em andamento, solucionados, Dashboard);
   a barra lateral de status as substitui. O conteudo da aba ativa continua carregando. */
.helpdesk-home-container .tickets-banner .card-tabs > .nav-tabs,
.helpdesk-home-container .tickets-banner .card-tabs > select {
    display: none !important;
}

/* Topo: seletor de perfil (botao colorido) e de entidade (caixa), no lugar do texto ao lado
   do avatar. Em telas estreitas continua valendo o menu nativo do avatar. */
.hm-switcher {
    display: none;
}

@media (min-width: 992px) {
    .user-menu.hm-has-switcher {
        align-items: center;
    }

    /* Grade de 2 colunas: rotulos a esquerda, controles alinhados (mesma largura) a direita */
    .user-menu.hm-has-switcher .hm-switcher {
        display: grid;
        grid-template-columns: auto minmax(150px, 1fr);
        align-items: center;
        gap: 4px 8px;
        margin-right: 0.75rem;
        min-width: 230px;
        max-width: 300px;
    }

    .hm-switcher .hm-row {
        display: contents;
    }

    .hm-switcher .hm-label {
        font-size: 12px;
        font-weight: 600;
        opacity: 0.85;
        white-space: nowrap;
    }

    .hm-switcher .hm-profile-btn {
        width: 100%;
        text-align: center;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.2;
        padding: 2px 12px;
        border: 1px solid transparent;
        border-radius: 999px;
        cursor: pointer;
    }

    .hm-switcher .hm-profile-btn:disabled {
        cursor: default;
        opacity: 0.85;
    }

    .hm-switcher .hm-entity-select {
        width: 100%;
        min-width: 0;
        font-size: 12px;
        padding: 1px 22px 1px 6px;
        height: 24px;
        border-radius: 4px;
    }


    /* Esconde o texto antigo (perfil / entidade) e as linhas de troca do menu do avatar */
    .user-menu.hm-has-switcher .user-menu-dropdown-toggle > .pe-2 {
        display: none !important;
    }

    .user-menu.hm-has-switcher [data-testid="user-menu-dropdown"] > .dropdown {
        display: none !important;
    }
}

/* Abertura de chamado: nome da entidade na faixa "Chamado sera adicionado na entidade"
   em destaque (maior e em amarelo forte). */
form[action*="ticket.form.php"] .alert-info .glpi-badge,
.hm-entity-banner .glpi-badge {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.2rem 0.7rem;
    border-radius: 6px;
    background-color: #ffc400;
    border: 1px solid #e0a800;
    color: #1f1f1f;
}

form[action*="ticket.form.php"] .alert-info .glpi-badge .text-nowrap,
.hm-entity-banner .glpi-badge .text-nowrap {
    color: inherit;
}

/* Faixa da entidade nos formularios do Self-Service: texto e selo alinhados na mesma linha. */
.hm-entity-banner {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 1.25rem;
    padding: 0.7rem 1rem;
}

.hm-entity-banner .glpi-badge {
    margin-left: 0 !important;
}

/* Lista de chamados do Super-Admin: campo "Chamados por tecnico" no espaco do meio da barra. */
/* Empurra o campo para a direita, encostado nos icones (modo tabela, lixeira, colunas...). */
.search-controls .middle-controls {
    margin-left: auto;
    margin-right: 0.75rem;
}

.search-controls .middle-controls .hm-tech-filter {
    gap: 8px;
    margin: 0;
}

.search-controls .middle-controls .hm-tech-label {
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    opacity: 0.85;
}


/* Formularios do Self-Service: barra lateral com a lista de formularios, a esquerda. */
.page-body.hm-with-form-sidebar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center;
    align-items: flex-start;
    gap: 1.5rem;
}

.page-body.hm-with-form-sidebar > .container-narrow {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: 860px !important;
    min-width: 0;
    margin: 0 !important;
}

.page-body.hm-with-form-sidebar > .hm-form-sidebar {
    flex: 0 0 250px !important;
    width: 250px;
    align-self: flex-start;
    margin-top: 0;
    padding: 1rem;
    border: 1px solid var(--tblr-border-color, #dadfe5);
    border-radius: 8px;
    background: var(--tblr-bg-surface, #fff);
}

.hm-form-sidebar-title {
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #ffc400;
}

.hm-form-sidebar-hint {
    margin: 0.6rem 0 0.4rem;
    font-size: 0.8rem;
    line-height: 1.35;
    opacity: 0.7;
}

.hm-form-sidebar-category {
    margin: 1.1rem 0 0.3rem;
    padding: 0 0.6rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.55;
}

.hm-form-sidebar-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.hm-form-sidebar-link {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.5rem 0.6rem;
    border-radius: 6px;
    font-size: 0.92rem;
    line-height: 1.25;
    color: inherit;
    text-decoration: none;
}

.hm-form-sidebar-icon {
    flex: 0 0 auto;
    font-size: 1.1rem;
    opacity: 0.7;
}

.hm-form-sidebar-link:hover {
    background: rgba(255, 196, 0, 0.18);
}

.hm-form-sidebar-link.active {
    font-weight: 700;
    background: #ffc400;
    color: #1f1f1f;
}

.hm-form-sidebar-link.active .hm-form-sidebar-icon {
    opacity: 1;
}

/* Celular / tela estreita: a lista de formularios fica ACIMA do formulario, recolhida; tocar no
   titulo "Formularios" abre e fecha. */
@media (max-width: 991.98px) {
    .page-body.hm-with-form-sidebar {
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0.75rem;
    }

    .page-body.hm-with-form-sidebar > .container-narrow {
        max-width: none !important;
        width: 100% !important;
        flex: 0 0 auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* O formulario tem uma margem negativa que o puxa para cima; com a lista acima dele ela
       faria o titulo ficar por baixo da lista. */
    .page-body.hm-with-form-sidebar > .container-narrow .form-renderer {
        margin-top: 0 !important;
    }

    .page-body.hm-with-form-sidebar > .hm-form-sidebar {
        flex: 0 0 auto !important;
        align-self: stretch !important;
        width: auto !important;
        max-width: none;
        margin: 0 !important;
        padding: 0.75rem 1rem;
    }

    .hm-form-sidebar-title {
        position: relative;
        padding-bottom: 0;
        border-bottom: 0;
        cursor: pointer;
    }

    .hm-form-sidebar-title::after {
        content: "▾";
        position: absolute;
        right: 0;
        top: 0;
        font-size: 1rem;
    }

    .hm-form-sidebar.hm-open .hm-form-sidebar-title {
        padding-bottom: 0.5rem;
        border-bottom: 2px solid #ffc400;
    }

    .hm-form-sidebar.hm-open .hm-form-sidebar-title::after {
        content: "▴";
    }

    .hm-form-sidebar:not(.hm-open) > :not(.hm-form-sidebar-title) {
        display: none;
    }
}

/* O formulario permanece visivel enquanto a entidade e a barra lateral carregam.
   O espaco da barra e reservado pelo placeholder montado em form-sidebar.js. */

/* Topo: o texto antigo de perfil/entidade ao lado do avatar nunca aparece (o seletor o substitui). */
@media (min-width: 992px) {
    .user-menu .user-menu-dropdown-toggle > .pe-2 {
        display: none !important;
    }
}

/* Telas de chamado (central). Feito em CSS (e nao em JS) para que nada apareca e depois suma:
   a regra vale antes de a tela ser desenhada.
   Em QUALQUER chamado (novo ou aberto): "Itens", "Objetos de assistencia relacionados" e o bloco
   "OLA" (dentro de "Niveis de servicos"; o "SLA" continua). */
form#itil-form[action*="ticket.form.php"] section.accordion-item:has(#items-heading),
form#itil-form[action*="ticket.form.php"] section.accordion-item:has(#linked_itilobjects-heading),
form#itil-form[action*="ticket.form.php"] .mt-2:has(> .d-grid > #ola_dropdown_placeholder) {
    display: none !important;
}

/* Em QUALQUER chamado (novo ou aberto): Origem da requisicao, Impacto, Prioridade, Localizacao e
   Duracao total. Os campos continuam no formulario e enviam os valores atuais/padrao; so a exibicao
   muda. */
form#itil-form[action*="ticket.form.php"] .form-field[data-testid="form-field-requesttypes_id"],
form#itil-form[action*="ticket.form.php"] .form-field[data-testid="form-field-impact"],
form#itil-form[action*="ticket.form.php"] .form-field[data-testid="form-field-priority"],
form#itil-form[action*="ticket.form.php"] .form-field[data-testid="form-field-locations_id"],
form#itil-form[action*="ticket.form.php"] .form-field[data-testid="form-field-actiontime"] {
    display: none !important;
}

/* "Aguardando Terceiro" sem atraso: um "Pendente" ainda nao conferido pelo list-status.js fica
   invisivel (nao aparece o status errado e depois o certo). A conferencia leva milissegundos;
   se o script falhar, a animacao revela a celula em 1,5 s. */
table.search-results td[data-searchopt-content-id="12"]:has(i.itilstatus.waiting:not([data-hm-checked])),
h1.navigationheader-title i.itilstatus.waiting:not([data-hm-checked]) {
    visibility: hidden;
    animation: hm-show 0s linear 1.5s forwards;
}

@keyframes hm-show {
    to {
        visibility: visible;
    }
}

/* Painel de cartoes do topo da lista de chamados: os icones do painel (atualizar, modo noturno,
   editar) ficam em coluna, na coluna livre a direita dos 8 cartoes (8 x 4 = 32 de 33 colunas),
   em vez de ficarem por cima do ultimo cartao. */
.dashboard.mini > span.toolbar:not(.left-toolbar) {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

/* Painel de cartoes do topo da lista: menos espaco branco acima e abaixo dos cartoes.
   A barra do modo de edicao ("Redefinir painel") fica invisivel mas ocupava 16 px; so aparece
   quando o painel esta em edicao. O recuo interno do quadro tambem foi reduzido. */
.dashboard.mini:not(.edit-mode) > .toolbar.left-toolbar {
    display: none !important;
}

.card.dashboard-card > .card-body.p-2 {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}

/* Niveis de servicos (SLA) na tela do chamado: com o painel estreito, cada linha (bandeira, data,
   selo "Medio - Solucao" e lixeira) nao quebrava e o selo ficava por baixo da lixeira. Agora a
   linha quebra: o que nao couber desce para a linha de baixo, alinhado. */
form#itil-form #service-levels .d-grid > .d-flex {
    min-width: 0;
}

form#itil-form #service-levels [id^="dropdown_assign_la_"] {
    flex-wrap: wrap;
    align-items: center;
    row-gap: 4px;
    min-width: 0;
}

form#itil-form #service-levels [id^="dropdown_assign_la_"] .level_name.badge {
    max-width: 100%;
}

form#itil-form #service-levels [id^="dropdown_assign_la_"] .level_name.badge .text-truncate {
    white-space: normal;
}

/* Listas (todas as telas de busca do GLPI): sem o botao "Mostrar no mapa" ao lado de "Exibir como
   tabela" e sem o botao "Selecione os itens padroes a serem mostrados" (escolha de colunas).
   Painel de cartoes do topo das listas: sem o botao de editar o painel (lapis). */
.search-controls #show_as_map,
.search-controls label[for="show_as_map"],
.search-controls .show_displaypreference_modal,
.dashboard.mini .toolbar .edit-dashboard {
    display: none !important;
}

/* Coluna "Setor" (search option 500, "Categoria do requerente", alimentada pelo departamento do AD):
   fica nas colunas padrao da lista de chamados, mas so aparece em "Meus Chamados"
   (meus-chamados.css), no lugar de "Atribuido - Tecnico". Nas demais listas fica escondida. */
table.search-results th[data-searchopt-id="500"],
table.search-results td[data-searchopt-content-id="500"] {
    display: none !important;
}

/* Status "Em Atendimento" (2, atribuido): bolinha no mesmo verde do cartao "Em Atendimento" do
   painel (#8fce00), em todo lugar (listas, campo Status, barra lateral, titulo do chamado). */
.itilstatus.assigned {
    color: #8fce00 !important;
}

