/* ==========================================================
   HamContact - layout consolidado
   Gerado a partir dos patches que o index atual carregava.
   Este passa a ser o ÚNICO CSS de correções/layout incremental.
   ========================================================== */

/* ===== sticky-right.css ===== */

/* ==========================================================
   HAMCONTACT - COLUNA DIREITA STICKY
   Mapa + Contatos anteriores permanecem visíveis no tablet
   paisagem/desktop enquanto a coluna esquerda rola.
   ========================================================== */


/*
 * Só aplicamos quando existem DUAS colunas.
 *
 * Abaixo de 850 px o HamContact usa layout em uma coluna,
 * então mapa e histórico continuam no fluxo normal.
 */
@media (min-width: 850px) {

    /*
     * O grid não deve esticar a coluna direita até a altura
     * da coluna esquerda. Isso é fundamental para sticky funcionar.
     */
    .dashboard-right {
        align-self: start;

        position: sticky;
        top: 10px;

        /*
         * A coluna inteira permanece dentro da viewport.
         * Caso o conteúdo ultrapasse a altura disponível,
         * evitamos que ela empurre o layout da página.
         */
        max-height: calc(100vh - 20px);

        overflow: hidden;
    }

}

.mapa-indicativo-icon{background:transparent!important;border:0!important}.mapa-operador-identificado,.mapa-contato-identificado{display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));white-space:nowrap}.mapa-operador-identificado span{font-size:34px;line-height:28px;color:#1976d2;-webkit-text-stroke:2px #fff}.mapa-contato-identificado span{width:17px;height:17px;border-radius:50%;background:#ef3340;border:3px solid #fff}.mapa-operador-identificado strong,.mapa-contato-identificado strong{margin-top:2px;padding:2px 7px;border-radius:8px;color:#fff;font-size:11px;line-height:1.2;background:#1976d2}.mapa-contato-identificado strong{background:#ef3340}


/* ==========================================================
   EDIÇÃO DE CONTATO — AVISO E AÇÕES
   Aviso discreto imediatamente acima da barra. O botão
   Cancelar permanece entre Salvar e Apagar em todas as telas.
   ========================================================== */
.hc-edicao-aviso{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;

    width:100%;
    margin:0 0 6px;
    padding:5px 10px;

    border:1px solid #f2cf67;
    border-radius:8px;
    background:#fff8dc;
    color:#7a5700;

    font-size:.73rem;
    font-weight:800;
    letter-spacing:.025em;
    line-height:1.15;
}

.hc-actions-shell.hc-editando .hc-actions-grid{
    grid-template-columns:auto auto minmax(180px,1fr) auto auto !important;
}

.hc-actions-shell .btn-cancelar-edicao{
    min-width:105px !important;
    white-space:nowrap !important;
}

.historico-table tbody tr{
    touch-action:manipulation;
    -webkit-tap-highlight-color:rgba(13,110,253,.12);
}

@media (max-width:849px){
    .hc-edicao-aviso{
        position:fixed;
        left:8px;
        right:8px;
        bottom:calc(var(--hc-footer-height) + var(--hc-mobile-actions-height) + 12px);
        z-index:1044;
        width:calc(100vw - 16px);
        margin:0;
        box-shadow:0 2px 8px rgba(0,0,0,.10);
    }

    .hc-actions-shell.hc-editando .hc-actions-grid{
        display:flex !important;
    }

    .hc-actions-shell .btn-cancelar-edicao{
        flex:0 0 48px !important;
        min-width:48px !important;
        width:48px !important;
        max-width:48px !important;
        padding-left:0 !important;
        padding-right:0 !important;
        font-size:0 !important;
    }

    .hc-actions-shell .btn-cancelar-edicao i{
        margin:0 !important;
        font-size:1rem !important;
    }
}


/* ==========================================================
   TABLET PAISAGEM
   850px até 1180px - inclui 1024 x 768
   ========================================================== */

@media (min-width: 850px) and (max-width: 1180px) {

    /*
     * O mapa original tinha 390px nesta resolução.
     * Em uma tela de 768px de altura isso deixa pouco espaço
     * para "Contatos anteriores".
     *
     * 280px permite manter MAPA + GRID simultaneamente visíveis.
     */
    .dashboard-right #mapa {
        height: 280px;
    }


    /*
     * Histórico ocupa o restante da coluna.
     */
    .dashboard-right .historico-card {
        min-height: 0;
        flex: 1 1 auto;
    }


    .dashboard-right .historico-card .card-body {
        display: flex;
        min-height: 0;
        flex-direction: column;
    }


    /*
     * Se houver muitos contatos anteriores, apenas o CORPO
     * da grade rola internamente.
     *
     * O mapa e o card do histórico continuam parados na tela.
     */
    .dashboard-right .historico-card .table-responsive {
        min-height: 0;
        max-height: 255px;
        overflow-x: auto;
        overflow-y: auto;
    }


    /*
     * Cabeçalho da tabela permanece visível enquanto
     * os contatos anteriores rolam internamente.
     */
    .dashboard-right .historico-table thead th {
        position: sticky;
        top: 0;
        z-index: 2;
    }

}


/* ==========================================================
   DESKTOP
   Também mantém mapa + histórico acompanhando a viewport,
   mas conserva o tamanho normal do mapa.
   ========================================================== */

@media (min-width: 1181px) {

    .dashboard-right {
        overflow-y: auto;
        scrollbar-width: thin;
    }

}


/* ==========================================================
   TABLET RETRATO / CELULAR
   Volta explicitamente ao comportamento normal.
   ========================================================== */

@media (max-width: 849px) {

    .dashboard-right {
        position: static;
        top: auto;
        max-height: none;
        overflow: visible;
    }


    .dashboard-right .historico-card .table-responsive {
        max-height: none;
        overflow-y: visible;
    }

}


/* ===== layout-operacional.css ===== */


:root{
  --hc-header-height:72px;
  --hc-footer-height:34px;
  --hc-gap:10px;
}

html{
  scroll-padding-top:calc(var(--hc-header-height) + var(--hc-gap));
}

#formContato,#dadosIndicativo,#resultadoAnatel,#mapaCard,#historicoCard,
.estacao-operador-card,.contato-card{
  scroll-margin-top:calc(var(--hc-header-height) + var(--hc-gap));
}

body{
  padding-bottom:calc(var(--hc-footer-height) + 8px);
}

/* Estação do operador: mantém o card, mas sem ficar preso na viewport */
.estacao-operador-card{
  position:static !important;
  top:auto !important;
  bottom:auto !important;
  z-index:auto !important;
  margin-bottom:10px;
}
.estacao-operador-card .card-body{
  padding-top:10px;
  padding-bottom:10px;
}
.estacao-operador-header{
  margin-bottom:7px !important;
}
.estacao-operador-help{
  margin-top:1px !important;
  line-height:1.15;
}

/* Data/Hora/QSL mais compactos */
.contato-datahora-prioritaria{
  --bs-gutter-y:.45rem;
  --bs-gutter-x:.65rem;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.contato-datahora-prioritaria .form-label{
  margin-bottom:.25rem;
}
.contato-datahora-prioritaria .qsl-box{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.contato-datahora-prioritaria + .row{
  margin-top:.25rem !important;
}

/* Rodapé sempre visível e compacto */
.dev-signature-section{
  position:fixed !important;
  left:0;
  right:0;
  bottom:0;
  z-index:1050;
  height:var(--hc-footer-height);
  display:flex !important;
  align-items:center;
  justify-content:center;
  padding:3px 10px !important;
  margin:0 !important;
  background:var(--bs-body-bg);
  border-top:1px solid var(--bs-border-color);
  box-shadow:0 -2px 8px rgba(0,0,0,.08);
}
.dev-signature-card{
  width:auto !important;
  max-width:none !important;
  min-height:0 !important;
  display:flex;
  align-items:center;
  gap:7px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
.dev-signature-card .dev-logo{
  width:auto !important;
  height:22px !important;
  max-height:22px !important;
}
.dev-signature-card .dev-divider{
  height:18px !important;
  margin:0 3px !important;
}
.dev-signature-card .dev-info{
  display:flex !important;
  flex-direction:row !important;
  align-items:center;
  gap:5px;
  font-size:.68rem !important;
  line-height:1 !important;
}
.dev-signature-card .dev-title,
.dev-signature-card .dev-email{
  margin:0 !important;
  line-height:1 !important;
}

@media (min-width:850px){

  .dashboard-right{
    align-self:start;
    position:sticky !important;
    top:calc(var(--hc-header-height) + var(--hc-gap)) !important;
    max-height:calc(100vh - var(--hc-header-height) - var(--hc-footer-height) - (var(--hc-gap) * 2)) !important;
    overflow:hidden !important;
    display:flex;
    flex-direction:column;
    gap:8px;
  }

  .dashboard-right > .app-card{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }

  .dashboard-right .historico-card{
    min-height:0;
    flex:1 1 auto;
  }

  .dashboard-right .historico-card .card-body{
    min-height:0;
    display:flex;
    flex-direction:column;
  }

  .dashboard-right .historico-card .table-responsive{
    min-height:0;
    flex:1 1 auto;
    overflow-x:auto;
    overflow-y:auto;
  }

  .dashboard-right .historico-table thead th{
    position:sticky;
    top:0;
    z-index:3;
    background:var(--bs-body-bg);
  }

  /* Barra de ações fica abaixo do histórico */
  .dashboard-right .contato-actions-sticky{
    position:static !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    z-index:10;
    flex:0 0 auto;
    width:100%;
    padding:8px !important;
    margin:0 !important;
    border:1px solid var(--bs-border-color);
    border-radius:var(--bs-border-radius-lg);
    background:var(--bs-body-bg);
    box-shadow:0 -2px 10px rgba(0,0,0,.08);
  }

  .dashboard-right .contato-actions-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px;
  }

  .dashboard-right .btn-registrar{
    width:100%;
    min-width:0;
  }

  .dashboard-right .btn-excluir-contato{
    min-width:105px;
  }
}

@media (min-width:850px) and (max-width:1180px){

  .dashboard-right #mapa{
    height:245px !important;
  }

  .dashboard-right .mapa-card .card-body,
  .dashboard-right .historico-card .card-body{
    padding:10px;
  }

  .dashboard-right .historico-table{
    font-size:.75rem;
  }

  .dashboard-right .historico-table th,
  .dashboard-right .historico-table td{
    padding-top:.35rem;
    padding-bottom:.35rem;
  }

  .dashboard-right .btn-registrar,
  .dashboard-right .btn-excluir-contato{
    min-height:44px;
    padding-top:.45rem;
    padding-bottom:.45rem;
    font-size:.88rem;
  }
}

@media (max-width:849px){

  :root{
    --hc-footer-height:30px;
  }

  .dashboard-right{
    position:static !important;
    top:auto !important;
    max-height:none !important;
    display:block;
    overflow:visible !important;
  }

  .contato-actions-sticky{
    position:static !important;
    width:100%;
    margin-top:1rem !important;
  }

  .dev-signature-card .dev-logo{
    height:19px !important;
  }

  .dev-signature-card .dev-info{
    font-size:.62rem !important;
  }
}


/* ===== sessao-compacta.css ===== */


/* ==========================================================
   HAMCONTACT - SESSÃO COMPACTA + AÇÕES MOBILE
   Carregar por último.
   ========================================================== */

:root{
    --hc-header-height:72px;
    --hc-footer-height:34px;
    --hc-session-height:44px;
    --hc-mobile-actions-height:58px;
}

/* ==========================================================
   BARRA DE SESSÃO COMPACTA
   ========================================================== */

.hc-session-bar{
    position:sticky;
    top:var(--hc-header-height);
    z-index:1035;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;

    min-height:var(--hc-session-height);

    padding:7px 12px;
    margin:0;

    background:var(--bs-body-bg);
    border-bottom:1px solid var(--bs-border-color);
    box-shadow:0 2px 8px rgba(0,0,0,.06);
}

.hc-session-rodadas + .hc-session-main{flex:1}

.hc-session-main{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
    overflow:hidden;
}

.hc-session-operator,
.hc-session-station{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
    white-space:nowrap;
}

.hc-session-operator strong,
.hc-session-station strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.hc-session-secondary{
    color:var(--bs-secondary-color);
    font-size:.78rem;
}

.hc-session-toggle{
    flex:0 0 auto;
    min-width:40px;
}

.hc-session-panel{
    border-bottom:1px solid var(--bs-border-color);
    background:var(--bs-body-bg);
    box-shadow:0 3px 10px rgba(0,0,0,.05);
}

.hc-session-panel-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) auto;
    gap:12px;
    align-items:stretch;

    max-width:1400px;
    margin:0 auto;
    padding:12px 16px;
}

.hc-session-panel .app-card{
    margin:0 !important;
}

.hc-session-panel .hc-session-actions{
    display:flex;
    align-items:stretch;
}

.hc-session-panel .hc-session-actions .btn{
    min-width:170px;
}

/* Card do operador e estação ficam exclusivos do painel */
.hc-session-panel .operador-card,
.hc-session-panel .estacao-operador-card{
    display:block !important;
}

/* ==========================================================
   MAIN: remove os cards originais quando já foram movidos
   ========================================================== */

.dashboard-left > .operador-card.hc-moved,
.dashboard-left > .estacao-operador-card.hc-moved{
    display:none !important;
}

/* ==========================================================
   MOBILE ACTION BAR
   ========================================================== */

@media (max-width:849px){

    :root{
        --hc-footer-height:30px;
    }

    body{
        padding-bottom:calc(
            var(--hc-footer-height) +
            var(--hc-mobile-actions-height) +
            10px
        ) !important;
    }

    .hc-session-bar{
        top:var(--hc-header-height);
        padding:7px 10px;
    }

    .hc-session-main{
        gap:8px;
    }

    .hc-session-operator{
        max-width:42%;
    }

    .hc-session-station{
        max-width:48%;
    }

    .hc-session-secondary{
        display:none;
    }

    .hc-session-panel-inner{
        grid-template-columns:1fr;
        padding:10px;
    }

    .hc-session-panel .hc-session-actions .btn{
        width:100%;
        min-width:0;
    }

    /*
     * Botões voltam a flutuar no celular/retrato,
     * acima do rodapé fixo.
     */
    .contato-actions-sticky{
        position:fixed !important;

        left:8px !important;
        right:8px !important;
        bottom:calc(var(--hc-footer-height) + 6px) !important;

        z-index:1045 !important;

        display:grid !important;
        grid-template-columns:minmax(0,1fr) auto !important;
        gap:7px !important;

        width:auto !important;
        min-height:var(--hc-mobile-actions-height);

        padding:7px !important;
        margin:0 !important;

        border:1px solid var(--bs-border-color);
        border-radius:12px;

        background:var(--bs-body-bg);
        box-shadow:0 -3px 14px rgba(0,0,0,.14);
    }

    .contato-actions-sticky .btn-registrar{
        width:100%;
        min-width:0;
    }

    .contato-actions-sticky .btn-excluir-contato{
        min-width:52px;
        width:auto;
        padding-left:12px;
        padding-right:12px;
    }

    /*
     * No mobile o botão apagar pode ficar só com o ícone.
     */
    .contato-actions-sticky .btn-excluir-contato{
        font-size:0;
    }

    .contato-actions-sticky .btn-excluir-contato i{
        font-size:1rem;
        margin:0 !important;
    }
}

/* ==========================================================
   TABLET / DESKTOP
   Mantém a barra compacta sem roubar largura.
   ========================================================== */

@media (min-width:850px){

    .hc-session-bar{
        padding-left:16px;
        padding-right:16px;
    }

    .hc-session-operator{
        max-width:34vw;
    }

    .hc-session-station{
        max-width:42vw;
    }
}


/* ===== acoes-lista-modal-v2.css ===== */


/* ==========================================================
   HAMCONTACT - AÇÕES + LISTA EM MODAL + SESSÃO V2
   Carregar POR ÚLTIMO.
   ========================================================== */

:root{
    --hc-header-height:72px;
    --hc-footer-height:32px;
    --hc-session-height:44px;
    --hc-mobile-actions-height:58px;
    --hc-gap:10px;
}

/* ==========================================================
   1) BARRA DE SESSÃO
   Destaque discreto, sem competir com o cabeçalho azul.
   ========================================================== */

.hc-session-bar{
    position:sticky;
    top:var(--hc-header-height);
    z-index:1025;

    min-height:var(--hc-session-height);

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;

    padding:7px 14px;

    background:
        linear-gradient(
            90deg,
            rgba(13,110,253,.10),
            rgba(13,110,253,.04)
        );

    border-bottom:1px solid rgba(13,110,253,.22);
    box-shadow:0 2px 7px rgba(0,0,0,.05);
}

.hc-session-main{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
    overflow:hidden;
}

.hc-session-operator,
.hc-session-station{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
    white-space:nowrap;
}

.hc-session-operator strong,
.hc-session-station strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.hc-session-secondary{
    color:var(--bs-secondary-color);
    font-size:.76rem;
}

.hc-session-toggle{
    flex:0 0 auto;
    border-color:rgba(13,110,253,.35) !important;
}

.hc-session-panel{
    position:relative;
    z-index:1020;

    background:var(--bs-body-bg);
    border-bottom:1px solid var(--bs-border-color);
    box-shadow:0 4px 10px rgba(0,0,0,.05);
}

.hc-session-panel-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
    gap:12px;

    max-width:1400px;
    margin:0 auto;
    padding:12px 16px;
}

.hc-session-panel .app-card{
    margin:0 !important;
}

/* ==========================================================
   2) RODAPÉ
   Fica visível, mas SEM cobrir menu / sair / conteúdo.
   ========================================================== */

.dev-signature-section{
    position:fixed !important;
    left:0;
    right:0;
    bottom:0;

    z-index:1010 !important;

    height:var(--hc-footer-height);

    display:flex !important;
    align-items:center;
    justify-content:center;

    padding:2px 8px !important;
    margin:0 !important;

    background:var(--bs-body-bg);
    border-top:1px solid var(--bs-border-color);
    box-shadow:0 -2px 7px rgba(0,0,0,.06);
}

body{
    padding-bottom:calc(var(--hc-footer-height) + 8px) !important;
}

/* ==========================================================
   3) BARRA DE AÇÕES
   LISTAR sempre aparece.
   REGISTRAR/APAGAR só aparecem quando o formulário está ativo.
   ========================================================== */

.hc-actions-shell{
    width:100%;
}

.hc-actions-grid{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:7px;
    width:100%;
}

.hc-actions-grid .btn{
    min-height:46px;
}

.hc-btn-listar{
    min-width:150px;
    font-weight:700;
}

.hc-actions-grid .btn-registrar{
    width:100%;
}

.hc-actions-grid .btn-excluir-contato{
    min-width:105px;
}

.hc-action-hidden{
    display:none !important;
}

/* ==========================================================
   4) DUAS COLUNAS
   Ações abaixo do histórico; coluna direita continua sticky.
   ========================================================== */

@media (min-width:850px){

    .dashboard-right{
        align-self:start;
        position:sticky !important;

        top:calc(
            var(--hc-header-height) +
            var(--hc-session-height) +
            var(--hc-gap)
        ) !important;

        max-height:calc(
            100vh -
            var(--hc-header-height) -
            var(--hc-session-height) -
            var(--hc-footer-height) -
            (var(--hc-gap) * 2)
        ) !important;

        overflow:hidden !important;

        display:flex;
        flex-direction:column;
        gap:8px;
    }

    .dashboard-right .historico-card{
        min-height:0;
        flex:1 1 auto;
    }

    .dashboard-right .historico-card .card-body{
        min-height:0;
        display:flex;
        flex-direction:column;
    }

    .dashboard-right .historico-card .table-responsive{
        min-height:0;
        flex:1 1 auto;
        overflow-x:auto;
        overflow-y:auto;
    }

    .dashboard-right .historico-table thead th{
        position:sticky;
        top:0;
        z-index:3;
        background:var(--bs-body-bg);
    }

    .dashboard-right .hc-actions-shell{
        flex:0 0 auto;

        padding:8px;
        margin:0;

        background:var(--bs-body-bg);
        border:1px solid var(--bs-border-color);
        border-radius:var(--bs-border-radius-lg);

        box-shadow:0 -2px 10px rgba(0,0,0,.06);
    }

    /* Se só LISTAR estiver visível, ele não vira um botão gigante */
    .dashboard-right .hc-actions-shell.hc-only-list .hc-actions-grid{
        grid-template-columns:auto;
        justify-content:start;
    }

    .dashboard-right .hc-actions-shell.hc-only-list .hc-btn-listar{
        min-width:180px;
    }
}

/* ==========================================================
   5) TABLET PAISAGEM
   ========================================================== */

@media (min-width:850px) and (max-width:1180px){

    .dashboard-right #mapa{
        height:245px !important;
    }

    .dashboard-right .historico-table{
        font-size:.75rem;
    }

    .dashboard-right .historico-table th,
    .dashboard-right .historico-table td{
        padding-top:.35rem;
        padding-bottom:.35rem;
    }

    .hc-actions-grid .btn{
        min-height:44px;
        font-size:.84rem;
    }

    .hc-btn-listar{
        min-width:135px;
    }

    .hc-actions-grid .btn-excluir-contato{
        min-width:95px;
    }
}

/* ==========================================================
   6) MOBILE / RETRATO
   Barra de ações fixa acima do rodapé.
   ========================================================== */

@media (max-width:849px){

    :root{
        --hc-footer-height:29px;
    }

    body{
        padding-bottom:calc(
            var(--hc-footer-height) +
            var(--hc-mobile-actions-height) +
            12px
        ) !important;
    }

    .hc-session-bar{
        padding:7px 10px;
    }

    .hc-session-main{
        gap:8px;
    }

    .hc-session-operator{
        max-width:42%;
    }

    .hc-session-station{
        max-width:48%;
    }

    .hc-session-secondary{
        display:none;
    }

    .hc-session-panel-inner{
        grid-template-columns:1fr;
        padding:10px;
    }

    .hc-actions-shell{
        position:fixed !important;

        left:8px !important;
        right:8px !important;
        bottom:calc(var(--hc-footer-height) + 6px) !important;

        z-index:1040 !important;

        width:auto !important;

        padding:7px;
        margin:0;

        background:var(--bs-body-bg);
        border:1px solid var(--bs-border-color);
        border-radius:12px;

        box-shadow:0 -3px 14px rgba(0,0,0,.15);
    }

    .hc-actions-grid{
        grid-template-columns:auto minmax(0,1fr) auto;
        gap:6px;
    }

    .hc-btn-listar{
        min-width:48px;
        width:48px;
        padding-left:0;
        padding-right:0;
        font-size:0 !important;
    }

    .hc-btn-listar i{
        font-size:1rem;
    }

    .hc-actions-grid .btn-excluir-contato{
        min-width:48px;
        width:48px;
        padding-left:0;
        padding-right:0;
        font-size:0 !important;
    }

    .hc-actions-grid .btn-excluir-contato i{
        font-size:1rem;
        margin:0 !important;
    }

    .hc-actions-shell.hc-only-list .hc-actions-grid{
        grid-template-columns:1fr;
    }

    .hc-actions-shell.hc-only-list .hc-btn-listar{
        width:100%;
        min-width:0;
        font-size:.9rem !important;
    }

    .hc-actions-shell.hc-only-list .hc-btn-listar i{
        margin-right:.35rem !important;
    }
}

/* ==========================================================
   7) MODAL DA LISTA
   ========================================================== */

#hcListaContatosModal .modal-dialog{
    max-width:1100px;
}

#hcListaContatosModal .modal-content{
    overflow:hidden;
}

#hcListaContatosModal .modal-body{
    padding:12px;
}

#hcListaContatosModal #painelListaContatos{
    display:block !important;
    margin:0 !important;
    border:0 !important;
    box-shadow:none !important;
}

#hcListaContatosModal #painelListaContatos > .card-body{
    padding:0 !important;
}

@media (max-width:575.98px){

    #hcListaContatosModal .modal-dialog{
        margin:0;
        max-width:none;
        height:100%;
    }

    #hcListaContatosModal .modal-content{
        min-height:100%;
        border:0;
        border-radius:0;
    }
}


/* ===== layout-v3-ajustes.css ===== */


/* ==========================================================
   HAMCONTACT - LAYOUT V3 AJUSTES
   Carregar POR ÚLTIMO.
   ========================================================== */

:root{
    --hc-header-height:72px;
    --hc-session-height:44px;
    --hc-footer-height:32px;
    --hc-gap:10px;
}


/* ==========================================================
   1) ESTADO INICIAL SEM MAPA/HISTÓRICO
   Não deixa uma caixa branca vazia no topo da direita.
   ========================================================== */

@media (min-width:850px){

    /*
     * Quando mapa e histórico ainda não existem,
     * LISTAR CONTATOS vira um dock discreto no canto inferior
     * direito, em vez de ocupar o topo de uma coluna vazia.
     */
    .hc-actions-shell.hc-empty-right{
        position:fixed !important;

        right:18px !important;
        bottom:calc(var(--hc-footer-height) + 12px) !important;

        z-index:1015 !important;

        width:auto !important;
        min-width:190px;
        max-width:min(520px, calc(100vw - 36px));

        margin:0 !important;
    }


    .hc-actions-shell.hc-empty-right.hc-only-list{
        padding:0 !important;
        border:0 !important;
        box-shadow:none !important;
        background:transparent !important;
    }


    .hc-actions-shell.hc-empty-right.hc-only-list .hc-actions-grid{
        display:block !important;
    }


    .hc-actions-shell.hc-empty-right.hc-only-list .hc-btn-listar{
        min-width:190px;
        box-shadow:0 3px 12px rgba(0,0,0,.10);
        background:var(--bs-body-bg);
    }


    /*
     * Quando aparece mapa ou histórico, volta ao fluxo da
     * coluna direita abaixo dos contatos anteriores.
     */
    .hc-actions-shell:not(.hc-empty-right){
        position:static !important;
        right:auto !important;
        bottom:auto !important;
    }
}


/* ==========================================================
   2) ALINHAMENTO INICIAL DAS DUAS COLUNAS
   ========================================================== */

@media (min-width:850px){

    .dashboard-layout{
        align-items:start !important;
    }


    .dashboard-left,
    .dashboard-right{
        margin-top:0 !important;
        padding-top:0 !important;
    }


    /*
     * Remove qualquer margem antiga que tenha sobrado depois
     * de mover Operador/Estação para a barra superior.
     */
    .dashboard-left > .contato-card{
        margin-top:0 !important;
    }


    /*
     * O primeiro card visível da direita também começa sem
     * margem extra.
     */
    .dashboard-right > .mapa-card,
    .dashboard-right > .historico-card{
        margin-top:0 !important;
    }
}


/* ==========================================================
   3) BARRA DE SESSÃO
   Um pouco mais destacada.
   ========================================================== */

.hc-session-bar{
    background:
        linear-gradient(
            90deg,
            rgba(13,110,253,.14),
            rgba(13,110,253,.055)
        ) !important;

    border-bottom:
        1px solid rgba(13,110,253,.28) !important;
}


[data-bs-theme="dark"] .hc-session-bar{
    background:
        linear-gradient(
            90deg,
            rgba(13,110,253,.28),
            rgba(13,110,253,.12)
        ) !important;
}


/* ==========================================================
   4) RODAPÉ
   Fica abaixo de menus/dropdowns.
   ========================================================== */

.dev-signature-section{
    z-index:700 !important;
}


/*
 * Garante que cabeçalho/menu sempre venham na frente.
 */
.app-header{
    z-index:1100 !important;
}


.dropdown-menu,
.offcanvas,
.app-menu,
.menu-dropdown,
.menu-panel{
    z-index:1120 !important;
}


/* ==========================================================
   5) MODAL DA LISTA
   Mais claro visualmente no desktop.
   ========================================================== */

#hcListaContatosModal .modal-header{
    background:
        linear-gradient(
            90deg,
            rgba(13,110,253,.08),
            transparent
        );
}


#hcListaContatosModal .lista-contatos-item{
    cursor:pointer;
}


/*
 * Feedback de que a linha pode ser escolhida.
 */
@media (hover:hover){

    #hcListaContatosModal .lista-contatos-item:hover{
        background-color:
            rgba(13,110,253,.075) !important;
    }
}


/* ==========================================================
   6) SCROLL / MENU
   Ao carregar algo, não deixa o conteúdo atrás da sessão/menu.
   ========================================================== */

html{
    scroll-padding-top:
        calc(
            var(--hc-header-height) +
            var(--hc-session-height) +
            var(--hc-gap)
        ) !important;
}


.dashboard-layout,
.contato-card,
#formContato,
#mapaCard,
#historicoCard{
    scroll-margin-top:
        calc(
            var(--hc-header-height) +
            var(--hc-session-height) +
            var(--hc-gap)
        ) !important;
}


/* ==========================================================
   AJUSTE FINAL - ALINHAMENTO DAS DUAS COLUNAS
   Novo contato e Locais dos contatos começam na mesma altura.
   ========================================================== */
@media (min-width: 850px) {
    .app-page {
        padding-top: 8px !important;
    }

    .dashboard-layout,
    .dashboard-left,
    .dashboard-right {
        margin-top: 0 !important;
        padding-top: 0 !important;
        align-self: start !important;
    }

    .dashboard-left > .contato-card:first-of-type,
    .dashboard-right > #mapaCard:first-child,
    .dashboard-right > .mapa-card:first-child {
        margin-top: 0 !important;
    }

    /* Se os cards de sessão forem movidos para a barra superior,
       não deixam espaço fantasma na coluna esquerda. */
    .dashboard-left > .operador-card:empty,
    .dashboard-left > .estacao-operador-card:empty,
    .dashboard-left > .lista-contatos-launcher:empty {
        display: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* O mapa pode existir mesmo sem contatos. */
#mapaCard.hc-mapa-operador {
    display: block !important;
}

#mapaCard.hc-mapa-operador #quantidadeLocais {
    display: none !important;
}


/* ==========================================================
   AJUSTE FINAL - TOPO DAS DUAS COLUNAS
   Novo contato e Locais dos contatos iniciam na mesma altura.
   ========================================================== */
@media (min-width: 850px) {

    .dashboard-layout {
        align-items: flex-start !important;
    }

    .dashboard-left,
    .dashboard-right {
        align-self: flex-start !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    /* Remove especificamente o deslocamento superior do card
       Novo contato, sem alterar o espaçamento interno dele. */
    .dashboard-left > .contato-card,
    .dashboard-left > #contatoCard,
    .dashboard-left > .card:first-child {
        margin-top: 0 !important;
        transform: none !important;
    }

    /* O mapa também começa exatamente no topo da coluna direita. */
    .dashboard-right > #mapaCard,
    .dashboard-right > .mapa-card,
    .dashboard-right > .card:first-child {
        margin-top: 0 !important;
        transform: none !important;
    }
}


/* ==========================================================
   CORREÇÃO REAL DO DESALINHAMENTO ENTRE AS COLUNAS

   O botão "LISTAR CONTATOS" é movido por JavaScript para a
   barra de ações/modal, mas o container original
   .lista-contatos-launcher permanecia na coluna esquerda e
   continuava ocupando altura/margem.

   Isso criava exatamente o espaço vazio antes de "Novo contato".
   ========================================================== */

.lista-contatos-launcher:not(:has(button)) {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/*
 * O painel de lista também é movido para o modal.
 * Enquanto estiver no ponto original do HTML, não deve reservar espaço.
 */
.dashboard-left > #painelListaContatos {
    margin: 0 !important;
}

/*
 * Garante o alinhamento das duas colunas depois que os elementos
 * auxiliares forem removidos do fluxo.
 */
@media (min-width: 850px) {

    .dashboard-layout {
        align-items: flex-start !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    .dashboard-left,
    .dashboard-right {
        align-self: flex-start !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    .dashboard-left > .contato-card,
    .dashboard-right > #mapaCard {
        margin-top: 0 !important;
    }
}


/* ==========================================================
   AÇÕES - REGRA FINAL CONSOLIDADA
   LISTAR | QSL | REGISTRAR | APAGAR
   Corrige overrides acumulados dos layouts anteriores.
   ========================================================== */

.hc-actions-shell{
    box-sizing:border-box !important;
}

.hc-actions-shell .hc-actions-grid{
    display:grid !important;
    grid-template-columns:auto auto minmax(0,1fr) auto !important;
    align-items:stretch !important;
    gap:7px !important;
    width:100% !important;
}

.hc-actions-shell .hc-actions-grid > .btn,
.hc-actions-shell .hc-actions-grid > a.btn{
    min-height:44px !important;
    margin:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
}

.hc-actions-shell .hc-btn-listar{
    min-width:145px !important;
}

.hc-actions-shell .hc-btn-qsl{
    min-width:92px !important;
    font-weight:700;
}

.hc-actions-shell .btn-registrar{
    min-width:0 !important;
    width:100% !important;
}

.hc-actions-shell .btn-excluir-contato{
    min-width:100px !important;
}

.hc-actions-shell.hc-only-list .hc-actions-grid{
    grid-template-columns:auto !important;
}

.hc-actions-shell.hc-only-list .hc-btn-listar{
    min-width:190px !important;
}

.hc-actions-shell.hc-only-list .hc-btn-qsl,
.hc-actions-shell.hc-only-list .btn-registrar,
.hc-actions-shell.hc-only-list .btn-excluir-contato{
    display:none !important;
}

.hc-btn-qsl.qsl-sem-contato{
    display:none !important;
}

@media (max-width:849px){

    .hc-actions-shell .hc-actions-grid{
        grid-template-columns:48px 48px minmax(0,1fr) 48px !important;
        gap:6px !important;
    }

    .hc-actions-shell .hc-btn-listar,
    .hc-actions-shell .hc-btn-qsl,
    .hc-actions-shell .btn-excluir-contato{
        min-width:48px !important;
        width:48px !important;
        padding-left:0 !important;
        padding-right:0 !important;
        font-size:0 !important;
    }

    .hc-actions-shell .hc-btn-listar i,
    .hc-actions-shell .hc-btn-qsl i,
    .hc-actions-shell .btn-excluir-contato i{
        margin:0 !important;
        font-size:1rem !important;
    }

    .hc-actions-shell .btn-registrar{
        font-size:.84rem !important;
        white-space:nowrap;
    }

    .hc-actions-shell.hc-only-list .hc-actions-grid{
        grid-template-columns:1fr !important;
    }

    .hc-actions-shell.hc-only-list .hc-btn-listar{
        width:100% !important;
        min-width:0 !important;
        font-size:.88rem !important;
    }

    .hc-actions-shell.hc-only-list .hc-btn-listar i{
        margin-right:.35rem !important;
    }
}


/* ==========================================================
   FIX QSL - BARRA DE AÇÕES EM INDICATIVO ANATEL NÃO PERSISTIDO
   ========================================================== */

.hc-actions-shell,
.hc-actions-shell .hc-actions-grid,
.hc-actions-shell .contato-actions-sticky{
    box-sizing:border-box !important;
}

.hc-actions-shell .hc-actions-grid{
    display:grid !important;
    grid-template-columns:auto auto minmax(0,1fr) auto !important;
    align-items:stretch !important;
    gap:7px !important;
    width:100% !important;
}

.hc-actions-shell .hc-actions-grid > *{
    min-width:0;
}

.hc-actions-shell .hc-btn-listar,
.hc-actions-shell .hc-btn-qsl,
.hc-actions-shell .btn-registrar,
.hc-actions-shell .btn-excluir-contato{
    position:static !important;
    float:none !important;
    transform:none !important;
    margin:0 !important;
}

.hc-actions-shell .hc-btn-listar{
    min-width:145px !important;
}

.hc-actions-shell .hc-btn-qsl{
    min-width:92px !important;
}

.hc-actions-shell .btn-registrar{
    width:100% !important;
}

.hc-actions-shell .btn-excluir-contato{
    min-width:100px !important;
}

/*
 * Indicativo encontrado apenas na ANATEL:
 * o formulário pode estar visível mesmo sem ContatoId.
 * Nesse estado:
 * - LISTAR continua visível;
 * - QSL some;
 * - REGISTRAR continua normal;
 * - APAGAR pode continuar desabilitado.
 */
.hc-actions-shell.hc-form-ativo-sem-contato .hc-actions-grid{
    grid-template-columns:auto minmax(0,1fr) auto !important;
}

.hc-actions-shell.hc-form-ativo-sem-contato .hc-btn-qsl{
    display:none !important;
}

@media (max-width:849px){

    .hc-actions-shell .hc-actions-grid{
        grid-template-columns:48px 48px minmax(0,1fr) 48px !important;
        gap:6px !important;
    }

    .hc-actions-shell.hc-form-ativo-sem-contato .hc-actions-grid{
        grid-template-columns:48px minmax(0,1fr) 48px !important;
    }

    .hc-actions-shell .hc-btn-listar,
    .hc-actions-shell .hc-btn-qsl,
    .hc-actions-shell .btn-excluir-contato{
        min-width:48px !important;
        width:48px !important;
    }
}




/* ==========================================================
   CORREÇÃO DEFINITIVA - BARRA DE AÇÕES
   Estados:
   - sem formulário: LISTAR
   - formulário sem QSO: LISTAR | REGISTRAR | APAGAR
   - formulário com QSO: LISTAR | QSL | REGISTRAR | APAGAR
   ========================================================== */

.hc-actions-shell{
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
}

.hc-actions-shell .hc-actions-grid{
    width:100% !important;
    max-width:none !important;

    display:grid !important;
    grid-template-columns:auto auto minmax(180px,1fr) auto !important;
    gap:7px !important;
    align-items:stretch !important;

    box-sizing:border-box !important;
}

.hc-actions-shell .hc-actions-grid > *{
    min-width:0 !important;
    margin:0 !important;
    float:none !important;
    position:static !important;
    transform:none !important;
}

.hc-actions-shell .hc-btn-listar{
    min-width:150px !important;
    white-space:nowrap !important;
}

.hc-actions-shell .hc-btn-qsl{
    min-width:82px !important;
    white-space:nowrap !important;
}

.hc-actions-shell .btn-registrar{
    width:100% !important;
    min-width:180px !important;
    white-space:nowrap !important;
}

.hc-actions-shell .btn-excluir-contato{
    min-width:105px !important;
    white-space:nowrap !important;
}

/* Tela de ANATEL / indicativo ainda sem QSO */
.hc-actions-shell.hc-form-ativo-sem-contato{
    position:static !important;
    right:auto !important;
    bottom:auto !important;
    width:100% !important;
    max-width:none !important;
}

.hc-actions-shell.hc-form-ativo-sem-contato .hc-actions-grid{
    grid-template-columns:auto minmax(180px,1fr) auto !important;
}

.hc-actions-shell.hc-form-ativo-sem-contato .hc-btn-qsl{
    display:none !important;
}

/* Enquanto o formulário está ativo, não deixa regra antiga
   hc-empty-right transformar a barra em dock estreito/flutuante. */
.hc-actions-shell.hc-form-ativo{
    position:static !important;
    right:auto !important;
    left:auto !important;
    bottom:auto !important;

    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
}

/* Estado inicial: mantém só LISTAR */
.hc-actions-shell.hc-only-list .hc-actions-grid{
    grid-template-columns:auto !important;
}

.hc-actions-shell.hc-only-list .hc-btn-qsl,
.hc-actions-shell.hc-only-list .btn-registrar,
.hc-actions-shell.hc-only-list .btn-excluir-contato{
    display:none !important;
}

@media (max-width:849px){

    .hc-actions-shell .hc-actions-grid{
        grid-template-columns:48px 48px minmax(0,1fr) 48px !important;
        gap:6px !important;
    }

    .hc-actions-shell.hc-form-ativo-sem-contato .hc-actions-grid{
        grid-template-columns:48px minmax(0,1fr) 48px !important;
    }

    .hc-actions-shell .hc-btn-listar,
    .hc-actions-shell .hc-btn-qsl,
    .hc-actions-shell .btn-excluir-contato{
        min-width:48px !important;
        width:48px !important;
        max-width:48px !important;
    }

    .hc-actions-shell .btn-registrar{
        min-width:0 !important;
        width:100% !important;
        white-space:nowrap !important;
    }
}


/* ==========================================================
   BARRA DE AÇÕES MOBILE - ESTADO FINAL ESTÁVEL

   A busca do indicativo adiciona hc-form-ativo e, em alguns
   fluxos, hc-form-ativo-sem-contato. Regras anteriores dessas
   classes colocavam a barra novamente no fluxo da página.
   Este bloco deve permanecer por último até a consolidação
   definitiva dos estilos antigos.
   ========================================================== */

@media (max-width:849px){

    .hc-actions-shell,
    .hc-actions-shell.hc-form-ativo,
    .hc-actions-shell.hc-form-ativo-sem-contato,
    .hc-actions-shell.hc-only-list{
        position:fixed !important;
        left:8px !important;
        right:8px !important;
        bottom:calc(var(--hc-footer-height) + 6px) !important;
        z-index:1045 !important;

        display:block !important;
        width:calc(100vw - 16px) !important;
        inline-size:calc(100vw - 16px) !important;
        max-width:none !important;
        min-width:0 !important;
        min-height:var(--hc-mobile-actions-height) !important;

        padding:7px !important;
        margin:0 !important;

        box-sizing:border-box !important;
        border:1px solid var(--bs-border-color) !important;
        border-radius:12px !important;

        background:var(--bs-body-bg) !important;
        box-shadow:0 -3px 14px rgba(0,0,0,.14) !important;
        transform:none !important;
        float:none !important;
    }

    .hc-actions-shell .hc-actions-grid{
        display:flex !important;
        flex-flow:row nowrap !important;
        align-items:stretch !important;
        gap:6px !important;

        width:100% !important;
        inline-size:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
        box-sizing:border-box !important;
    }

    .hc-actions-shell.hc-form-ativo-sem-contato .hc-actions-grid{
        display:flex !important;
    }

    .hc-actions-shell.hc-only-list .hc-actions-grid{
        display:flex !important;
    }

    .hc-actions-shell .hc-actions-grid > .btn{
        position:static !important;
        float:none !important;
        transform:none !important;

        min-height:44px !important;
        max-width:100% !important;
        overflow:hidden !important;
        margin:0 !important;

        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
    }

    .hc-actions-shell .hc-btn-listar,
    .hc-actions-shell .hc-btn-qsl,
    .hc-actions-shell .btn-excluir-contato{
        flex:0 0 48px !important;
        min-width:48px !important;
        width:48px !important;
        max-width:48px !important;

        padding-left:0 !important;
        padding-right:0 !important;

        font-size:0 !important;
    }

    .hc-actions-shell .hc-btn-listar i,
    .hc-actions-shell .hc-btn-qsl i,
    .hc-actions-shell .btn-excluir-contato i{
        margin:0 !important;
        font-size:1rem !important;
    }

    .hc-actions-shell .btn-registrar{
        flex:1 1 0 !important;
        min-width:0 !important;
        width:100% !important;
        max-width:none !important;

        padding-left:8px !important;
        padding-right:8px !important;

        font-size:clamp(.72rem, 3.15vw, .84rem) !important;
        white-space:nowrap !important;
        text-overflow:ellipsis !important;
    }

    .hc-actions-shell.hc-only-list .hc-btn-listar{
        display:inline-flex !important;
        flex:1 1 auto !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;

        padding-left:12px !important;
        padding-right:12px !important;

        font-size:.88rem !important;
    }

    .hc-actions-shell.hc-only-list .hc-btn-listar i{
        margin-right:.35rem !important;
    }

    .hc-actions-shell.hc-only-list .hc-btn-qsl,
    .hc-actions-shell.hc-only-list .btn-registrar,
    .hc-actions-shell.hc-only-list .btn-excluir-contato,
    .hc-actions-shell.hc-form-ativo-sem-contato .hc-btn-qsl,
    .hc-actions-shell .hc-btn-qsl.qsl-sem-contato{
        display:none !important;
    }
}

/* Celulares muito estreitos: preserva todas as ações e prioriza
   a largura do botão principal sem permitir estouro lateral. */
@media (max-width:389px){

    .hc-actions-shell .hc-actions-grid{
        display:flex !important;
        gap:4px !important;
    }

    .hc-actions-shell.hc-form-ativo-sem-contato .hc-actions-grid{
        display:flex !important;
    }

    .hc-actions-shell .hc-btn-listar,
    .hc-actions-shell .hc-btn-qsl,
    .hc-actions-shell .btn-excluir-contato{
        flex-basis:44px !important;
        min-width:44px !important;
        width:44px !important;
        max-width:44px !important;
    }

    .hc-actions-shell .btn-registrar{
        padding-left:4px !important;
        padding-right:4px !important;
        font-size:.70rem !important;
    }
}

/* ==========================================================
   MOBILE - BARRA DO OPERADOR E INTERAÇÃO DO MAPA
   ========================================================== */
@media (max-width:849px){

    .hc-session-bar{
        background:#eaf2ff !important;
        background-image:none !important;
        opacity:1 !important;
        isolation:isolate !important;
        backdrop-filter:none !important;
        -webkit-backdrop-filter:none !important;
        box-shadow:0 2px 8px rgba(15,23,42,.14) !important;
    }

    html[data-theme="dark"] .hc-session-bar,
    [data-bs-theme="dark"] .hc-session-bar{
        background:#17243a !important;
        background-image:none !important;
    }

    #mapa.hc-map-mobile-scroll{
        touch-action:pan-y !important;
    }

    #mapa.hc-map-mobile-active{
        touch-action:none !important;
    }

    .hc-map-touch-toggle{
        position:absolute;
        top:10px;
        right:10px;
        z-index:1000;

        min-height:36px;
        padding:6px 9px;

        border:1px solid rgba(13,110,253,.50);
        border-radius:8px;
        background:rgba(255,255,255,.96);
        color:#0d6efd;
        box-shadow:0 2px 8px rgba(0,0,0,.16);

        font-size:.72rem;
        font-weight:700;
        line-height:1;
    }

    .hc-map-touch-toggle.is-active{
        background:#0d6efd;
        color:#fff;
        border-color:#0d6efd;
    }
}

@media (min-width:850px), (pointer:fine){
    .hc-map-touch-toggle{
        display:none !important;
    }
}

/* A barra sticky também precisa ser opaca no desktop para que
   cartões e textos não apareçam através dela durante a rolagem. */
@media (min-width:850px){

    .hc-session-bar{
        background:#eaf2ff !important;
        background-image:none !important;
        opacity:1 !important;
        isolation:isolate !important;
        backdrop-filter:none !important;
        -webkit-backdrop-filter:none !important;
        box-shadow:0 2px 8px rgba(15,23,42,.12) !important;
    }

    html[data-theme="dark"] .hc-session-bar,
    [data-bs-theme="dark"] .hc-session-bar{
        background:#17243a !important;
        background-image:none !important;
    }
}


/* ==========================================================
   VISIBILIDADE FINAL DAS AÇÕES DE EDIÇÃO
   Mantido no fim do arquivo para prevalecer sobre os blocos
   históricos de layout e sobre os estados inicial/mobile.
   ========================================================== */
.hc-actions-shell .btn-cancelar-edicao.d-none,
.hc-actions-shell .btn-excluir-contato.d-none,
.hc-actions-shell .btn-cancelar-edicao[hidden],
.hc-actions-shell .btn-excluir-contato[hidden]{
    display:none !important;
}

@media (min-width:850px) and (max-width:1400px) and (pointer:coarse){
    .hc-actions-shell.hc-editando .btn-cancelar-edicao,
    .hc-actions-shell.hc-editando .btn-excluir-contato{
        width:46px !important;
        min-width:46px !important;
        max-width:46px !important;
        padding-left:0 !important;
        padding-right:0 !important;
        font-size:0 !important;
    }

    .hc-actions-shell.hc-editando .btn-cancelar-edicao i,
    .hc-actions-shell.hc-editando .btn-excluir-contato i{
        margin:0 !important;
        font-size:1rem !important;
    }

    .hc-actions-shell.hc-editando .btn-registrar{
        min-width:0 !important;
        padding-left:8px !important;
        padding-right:8px !important;
        font-size:clamp(.76rem,1.45vw,.95rem) !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }
}


/* ==========================================================
   SELO PORTABLE — BARRA RESUMIDA DO OPERADOR
   ========================================================== */
.hc-session-portable-badge{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:4px;

    padding:3px 7px;
    border:1px solid rgba(217,119,6,.55);
    border-radius:999px;

    background:#fff7df;
    color:#9a5b00;

    font-size:.68rem;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}

.hc-session-portable-badge i{
    color:#dc7500;
    font-size:.68rem;
}

html[data-theme="dark"] .hc-session-portable-badge,
[data-bs-theme="dark"] .hc-session-portable-badge{
    border-color:rgba(251,191,36,.55);
    background:#3c2b0c;
    color:#fcd56b;
}

@media (max-width:620px){
    .hc-session-portable-badge{
        padding:3px 6px;
        font-size:.64rem;
    }

    .hc-session-portable-badge i{
        font-size:.64rem;
    }
}
