/* ═══════════════════════════════════════════════════════════════════
   BUTTONS — .ia-btn e variantes (--primary, --ghost, --danger, --switch, --chip)
   Extraído de base.css na Sessão 5. Carregado em base_master.html
   antes de base.css; ordem do cascade preservada.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Botões genéricos de form/admin ─────────────────────────────── */
.ia-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    font-size: .88rem;
    font-weight: 500;
    font-family: var(--font-body);
    line-height: 1.25;
    border: 1px solid var(--border-color);
    background: var(--bg-surface);
    color: var(--text-primary);
    text-decoration: none;
    cursor: pointer;
    white-space: normal;
    transition: background .15s, border-color .15s, box-shadow .15s, transform .08s;
}
.ia-btn:hover {
    background: var(--bg-elevated);
    border-color: var(--text-secondary);
}
.ia-btn:active {
    transform: translateY(1px);
}
.ia-btn:disabled,
.ia-btn.is-disabled {
    opacity: 0.5;
    pointer-events: none;
}

.ia-btn--primary {
    background: var(--accent-solid);
    border-color: var(--accent-solid);
    color: var(--text-on-accent);
}
.ia-btn--primary:hover {
    background: var(--accent-solid-hover);
    border-color: var(--accent-solid-hover);
    box-shadow: 0 0 0 3px var(--accent-glow);
}

.ia-btn--ghost {
    background: transparent;
}
.ia-btn--ghost:hover {
    background: var(--bg-surface);
}

.ia-btn--danger {
    color: var(--badge-red-text);
    border-color: rgba(239, 68, 68, 0.3);
    background: rgba(239, 68, 68, 0.08);
}
.ia-btn--danger:hover {
    background: rgba(239, 68, 68, 0.16);
    border-color: var(--color-red);
}

/* Chave liga/desliga: <button role="switch" aria-checked> de um form POST, cada clique
   grava (lista de empregos anteriores da ficha). Herda foco e estado desabilitado do .ia-btn. */
.ia-btn--switch {
    position: relative;
    width: 2.4rem;
    height: 1.35rem;
    padding: 0;
    border-radius: 999px;
    background: var(--bg-elevated);
    vertical-align: middle;
}
.ia-btn--switch::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: calc(1.35rem - 6px);
    height: calc(1.35rem - 6px);
    border-radius: 50%;
    background: var(--text-secondary);
    transition: transform .15s, background .15s;
}
.ia-btn--switch[aria-checked="true"],
.ia-btn--switch[aria-checked="true"]:hover {
    background: var(--accent-solid);
    border-color: var(--accent-solid);
}
.ia-btn--switch[aria-checked="true"]::after {
    transform: translateX(1.05rem);
    background: var(--text-on-accent);
}
.ia-btn--switch:focus-visible {
    outline: 2px solid var(--accent-glow);
    outline-offset: 2px;
}

/* Chip liga/desliga: <button aria-pressed> em pílula (seletor de colunas das tabelas,
   shared/tabela-colunas.js). Herda foco e estado desabilitado do .ia-btn. */
.ia-btn--chip {
    padding: 4px 12px;
    border-radius: 999px;
    background: transparent;
    color: var(--text-secondary);
    font-size: .85rem;
}
.ia-btn--chip[aria-pressed="true"],
.ia-btn--chip[aria-pressed="true"]:hover {
    background: var(--accent-solid);
    border-color: var(--accent-solid);
    color: var(--text-on-accent);
}
.ia-btn--chip:focus-visible {
    outline: 2px solid var(--accent-glow);
    outline-offset: 2px;
}

/* ── Dropdown (details/summary nativo) ── */
details.ia-dropdown {
    position: relative;
    display: inline-block;
}
details.ia-dropdown > summary {
    list-style: none;
    cursor: pointer;
}
details.ia-dropdown > summary::-webkit-details-marker { display: none; }
details.ia-dropdown .ia-dropdown-content {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 40;
    min-width: 240px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
    padding: .75rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

/* Variante menu (lista de ações, ex.: "Mais opções" > Logs / Portal / Imprimir).
   Fecha ao clicar fora ou com Esc (static/shared/nav.js). */
details.ia-dropdown .ia-dropdown-content--menu {
    min-width: 200px;
    padding: .35rem 0;
    gap: 0;
}
.ia-dropdown-content--menu > a {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .45rem .95rem;
    color: var(--text-primary);
    text-decoration: none;
    font-size: .9rem;
    white-space: nowrap;
}
.ia-dropdown-content--menu > a:hover,
.ia-dropdown-content--menu > a:focus-visible {
    background: var(--bg-deep);
}
.ia-dropdown-content--menu > a.ia-dropdown-subitem {
    padding-left: 2.2rem;
}
.ia-dropdown-label {
    padding: .5rem .95rem .2rem;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-secondary);
}
.ia-dropdown-sep {
    border: 0;
    border-top: 1px solid var(--border-color);
    margin: .3rem 0;
}

/* ── Link-button: botão sem aparência (usado em menus dropdown e dialogs) ── */
.ia-link-btn {
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    cursor: pointer;
    color: inherit;
    text-align: left;
    width: 100%;
}
.ia-link-btn--danger { color: var(--badge-red-text); }
