portal_publico/static/css/ramais-lookup.css

229 lines
5.3 KiB
CSS

/* Modal de consulta rápida de ramais, aberto pelo botão "Acessar Ramais" do topbar
(portal.html, links-ferramentas.html, calendario-individual.html) — mostra a
mesma listagem mesclada de /api/ramais/ (ver ramais.css/ramais.js pra tela
completa), só que como lookup somente-leitura com busca/ordenação/paginação
client-side, sem os controles de administração daquela tela. */
.ram-lookup-card {
width: min(900px, 94vw);
max-width: none;
max-height: 88vh;
}
.ram-lookup-header {
display: flex;
align-items: center;
justify-content: space-between;
}
.ram-lookup-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-4);
flex-wrap: wrap;
}
.ram-lookup-show {
display: flex;
align-items: center;
gap: var(--space-2);
font-size: 0.85rem;
color: var(--text-secondary);
white-space: nowrap;
}
.ram-lookup-show select {
padding: var(--space-2) var(--space-6) var(--space-2) var(--space-3);
border-radius: var(--radius-sm);
border: 1px solid var(--border-subtle);
background-color: var(--bg-canvas);
color: var(--text-primary);
font-size: 0.85rem;
outline: none;
appearance: none;
-webkit-appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a8598' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right var(--space-2) center;
}
.ram-lookup-show select:focus {
border-color: var(--accent);
}
.ram-lookup-search {
position: relative;
flex: 1;
min-width: 220px;
max-width: 320px;
}
.ram-lookup-search input {
width: 100%;
padding: var(--space-2) var(--space-6) var(--space-2) var(--space-3);
border-radius: var(--radius-sm);
border: 1px solid var(--border-subtle);
background: var(--bg-canvas);
color: var(--text-primary);
font-size: 0.85rem;
outline: none;
}
.ram-lookup-search input:focus {
border-color: var(--accent);
}
.ram-lookup-search svg {
position: absolute;
right: var(--space-3);
top: 50%;
transform: translateY(-50%);
color: var(--text-muted);
}
.ram-lookup-depto-filters {
display: flex;
flex-wrap: wrap;
gap: var(--space-2);
}
.ram-lookup-depto-btn {
padding: var(--space-1) var(--space-3);
border-radius: var(--radius-pill);
border: 1px solid var(--border-subtle);
background: var(--bg-canvas);
color: var(--text-secondary);
font-size: 0.8rem;
white-space: nowrap;
}
.ram-lookup-depto-btn:hover {
color: var(--text-primary);
background: var(--bg-surface-raised);
}
.ram-lookup-depto-btn.is-active {
background: var(--accent);
border-color: var(--accent);
color: var(--accent-contrast);
}
/* Tabela autocontida (não reaproveita .pa-table de perfis-acesso.css porque essas
3 páginas não carregam esse CSS). */
.ram-lookup-table-wrap {
flex: 1;
min-height: 0;
overflow-y: auto;
/* Rolar até o fim da lista não passa a rolar a página atrás do modal. */
overscroll-behavior: contain;
border: 1px solid var(--border-subtle);
border-radius: var(--radius-md);
}
.ram-lookup-table {
width: 100%;
border-collapse: collapse;
}
.ram-lookup-table th {
position: sticky;
top: 0;
text-align: left;
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--text-muted);
padding: var(--space-3) var(--space-4);
background: var(--bg-surface-raised);
border-bottom: 1px solid var(--border-subtle);
}
.ram-lookup-table td {
padding: var(--space-3) var(--space-4);
border-bottom: 1px solid var(--border-subtle);
font-size: 0.88rem;
color: var(--text-primary);
transition: background var(--transition-fast);
}
.ram-lookup-table tr:last-child td {
border-bottom: none;
}
.ram-lookup-table tr:hover td {
background: var(--card-bg-hover);
}
/* Coluna Ramal: algarismos de mesma largura alinham os números. */
.ram-lookup-table td.ram-lookup-num {
font-variant-numeric: tabular-nums;
}
.ram-lookup-empty-row td {
text-align: center;
color: var(--text-muted);
padding: var(--space-6);
}
.ram-lookup-table th[data-sort] {
cursor: pointer;
user-select: none;
white-space: nowrap;
}
.ram-lookup-sort-icon {
color: var(--text-muted);
font-size: 0.7rem;
}
.ram-lookup-table-wrap th[data-sort].is-sort-asc .ram-lookup-sort-icon,
.ram-lookup-table-wrap th[data-sort].is-sort-desc .ram-lookup-sort-icon {
color: var(--accent);
}
.ram-lookup-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-3);
font-size: 0.8rem;
color: var(--text-muted);
flex-wrap: wrap;
}
.ram-lookup-pagination {
display: flex;
align-items: center;
gap: var(--space-1);
}
.ram-lookup-page-btn {
min-width: 28px;
height: 28px;
padding: 0 var(--space-2);
border-radius: var(--radius-sm);
font-size: 0.8rem;
color: var(--text-secondary);
}
.ram-lookup-page-btn:hover:not(:disabled) {
background: var(--bg-surface-raised);
color: var(--text-primary);
}
.ram-lookup-page-btn.is-active {
background: var(--accent);
color: var(--accent-contrast);
}
.ram-lookup-page-btn:disabled {
opacity: 0.4;
cursor: default;
}
.ram-lookup-page-ellipsis {
color: var(--text-muted);
padding: 0 var(--space-1);
font-size: 0.8rem;
}