
:root {
    --action-text: #ffffff;

    --action-view: #0ea5e9;
    --action-view-hover: #0284c7;

    --action-edit: #3b82f6;
    --action-edit-hover: #2563eb;

    --action-delete: #ef4444;
    --action-delete-hover: #dc2626;

    --action-pdf: #8b5cf6;
    --action-pdf-hover: #7c3aed;

    --action-neutral: #64748b;
    --action-neutral-hover: #475569;

    --action-warning: #f59e0b;
    --action-warning-hover: #d97706;

    --action-success: #22c55e;
    --action-success-hover: #16a34a;
}

.btn {
    min-height: 44px;
    padding: 0 var(--space-lg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    font-family: var(--font-family);
    font-size: var(--font-md);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    transition: var(--transition);
}

.btn svg {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
}

.btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.03);
}

.btn:active {
    transform: translateY(0);
    filter: brightness(0.97);
    box-shadow: none;
}

.btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-soft);
}

.btn:disabled,
.btn.disabled {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

.btn:hover,
.btn:focus,
.btn:active {
    text-decoration: none;
}

.btn-primary {
    background: var(--btn-primary-bg);
    color: var(--btn-primary-text);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background: var(--btn-primary-hover);
    color: var(--btn-primary-text);
    box-shadow: var(--btn-primary-shadow);
}

.btn-secondary {
    background: var(--btn-secondary-bg);
    color: var(--btn-secondary-text);
    border-color: var(--btn-secondary-border);
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
    background: var(--btn-secondary-hover);
    color: var(--btn-secondary-text);
    border-color: var(--btn-secondary-border);
    box-shadow: var(--btn-secondary-shadow);
}

.btn-success {
    background: var(--btn-success-bg);
    color: var(--btn-success-text);
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active {
    background: var(--btn-success-hover);
    color: var(--btn-success-text);
    box-shadow: var(--btn-success-shadow);
}

.btn-danger {
    background: var(--btn-danger-bg);
    color: var(--btn-danger-text);
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active {
    background: var(--btn-danger-hover);
    color: var(--btn-danger-text);
    box-shadow: var(--btn-danger-shadow);
}

.btn-block {
    width: 100%;
}

.btn-sm {
    min-height: 36px;
    padding: 0 var(--space-md);
    font-size: var(--font-sm);
}

.btn-lg {
    min-height: 50px;
    padding: 0 var(--space-xl);
    font-size: var(--font-lg);
}

.lista-filtros-acoes .btn.btn-primary,
.lista-filtros-acoes .btn.btn-secondary,
.lista-filtros-acoes .btn-limpar {
    width: 50px;
    min-width: 84px;
    height: 38px;
    min-height: 38px;
    padding: 0 11px;
    gap: 5px;
    border-radius: 9px;
    font-size: 0.76rem;
}

.lista-filtros-acoes .btn.btn-primary svg,
.lista-filtros-acoes .btn.btn-secondary svg,
.lista-filtros-acoes .btn-limpar svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.form-actions {
    width: 100%;
    margin-top: var(--space-lg);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-md);
    flex-wrap: wrap;
}

.td-acoes,
.actions-cell,
.professores-acoes,
.acoes-wrapper {
    min-width: 96px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
}

.actions-cell > .inline-form,
.td-acoes > .inline-form,
.actions-cell > .form-acao,
.td-acoes > .form-acao,
.acoes-wrapper > .form-acao {
    display: contents;
}

.btn-action,
.button-link {
    width: 104px;
    min-height: 36px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: var(--action-neutral);
    color: var(--action-text);
    border: none;
    border-radius: 10px;
    font-family: var(--font-family, "Inter", sans-serif);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    transition:
        transform 0.18s ease,
        background 0.22s ease,
        color 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease;
}

.btn-action svg,
.button-link svg,
.btn-action i[data-lucide],
.button-link i[data-lucide] {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.btn-action:hover,
.button-link:hover {
    color: var(--action-text);
    text-decoration: none;
    transform: translateY(-2px);
}

.btn-action:active,
.button-link:active {
    transform: translateY(0);
    box-shadow: none;
}

.btn-action:focus-visible,
.button-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-soft);
}

.btn-action--view,
.button-link.view,
.button-link.visualizar,
.btn-action--edit,
.button-link.edit,
.button-link.editar,
.btn-action--delete,
.button-link.delete,
.button-link.excluir,
.btn-action--success,
.button-link.reopen,
.btn-action--warning,
.button-link.close,
.button-link.inativar,
.button-link.excluir-correcao,
.btn-action--pdf,
.button-link.pdf,
.btn-action--neutral,
.button-link.corrigir-manual,
.button-link.duplicar,
.button-link.gabarito {
    width: 96px;
    min-height: 31px;
    padding: 0 8px;
    gap: 5px;
    border-radius: 8px;
    font-size: 0.7rem;
}

.btn-action--view,
.button-link.view,
.button-link.visualizar {
    background: var(--action-view);
}

.btn-action--view:hover,
.button-link.view:hover,
.button-link.visualizar:hover {
    background: var(--action-view-hover);
    box-shadow: 0 8px 18px rgba(2, 132, 199, 0.28);
}

.button-link.gabarito {
    background: var(--action-view);
}

.button-link.gabarito:hover {
    background: var(--action-view-hover);
    box-shadow: 0 8px 18px rgba(2, 132, 199, 0.28);
}

.btn-action--edit,
.button-link.edit,
.button-link.editar {
    background: var(--action-edit);
}

.btn-action--edit:hover,
.button-link.edit:hover,
.button-link.editar:hover {
    background: var(--action-edit-hover);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
}

.btn-action--delete,
.button-link.delete,
.button-link.excluir {
    background: var(--action-delete);
}

.btn-action--delete:hover,
.button-link.delete:hover,
.button-link.excluir:hover {
    background: var(--action-delete-hover);
    box-shadow: 0 8px 18px rgba(239, 68, 68, 0.28);
}

.btn-action--view svg,
.button-link.view svg,
.button-link.visualizar svg,
.btn-action--edit svg,
.button-link.edit svg,
.button-link.editar svg,
.btn-action--delete svg,
.button-link.delete svg,
.button-link.excluir svg,
.btn-action--success svg,
.button-link.reopen svg,
.btn-action--warning svg,
.button-link.close svg,
.button-link.inativar svg,
.button-link.excluir-correcao svg,
.btn-action--pdf svg,
.button-link.pdf svg,
.btn-action--neutral svg,
.button-link.corrigir-manual svg,
.button-link.duplicar svg,
.button-link.gabarito svg,
.btn-action--view i[data-lucide],
.button-link.view i[data-lucide],
.button-link.visualizar i[data-lucide],
.btn-action--edit i[data-lucide],
.button-link.edit i[data-lucide],
.button-link.editar i[data-lucide],
.btn-action--delete i[data-lucide],
.button-link.delete i[data-lucide],
.button-link.excluir i[data-lucide],
.btn-action--success i[data-lucide],
.button-link.reopen i[data-lucide],
.btn-action--warning i[data-lucide],
.button-link.close i[data-lucide],
.button-link.inativar i[data-lucide],
.button-link.excluir-correcao i[data-lucide],
.btn-action--pdf i[data-lucide],
.button-link.pdf i[data-lucide],
.btn-action--neutral i[data-lucide],
.button-link.corrigir-manual i[data-lucide],
.button-link.duplicar i[data-lucide],
.button-link.gabarito i[data-lucide] {
    width: 13px;
    height: 13px;
}

.btn-action--pdf,
.button-link.pdf {
    background: var(--action-pdf);
}

.btn-action--pdf:hover,
.button-link.pdf:hover {
    background: var(--action-pdf-hover);
    box-shadow: 0 8px 18px rgba(124, 58, 237, 0.28);
}

.btn-action--neutral,
.button-link.corrigir-manual,
.button-link.duplicar {
    background: var(--action-neutral);
}

.btn-action--neutral:hover,
.button-link.corrigir-manual:hover,
.button-link.duplicar:hover {
    background: var(--action-neutral-hover);
    box-shadow: 0 8px 18px rgba(71, 85, 105, 0.28);
}

.btn-action--warning,
.button-link.inativar,
.button-link.close,
.button-link.excluir-correcao {
    background: var(--action-warning);
}

.btn-action--warning:hover,
.button-link.inativar:hover,
.button-link.close:hover,
.button-link.excluir-correcao:hover {
    background: var(--action-warning-hover);
    box-shadow: 0 8px 18px rgba(217, 119, 6, 0.28);
}

.btn-action--success,
.button-link.reopen {
    background: var(--action-success);
}

.btn-action--success:hover,
.button-link.reopen:hover {
    background: var(--action-success-hover);
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.28);
}

.btn-action--toggle,
.button-link.list-toggle {
    width: auto;
    min-width: 0;
    min-height: 26px;
    margin-top: 4px;
    padding: 1px 0;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    align-self: flex-start;
    gap: 6px;
    background: transparent;
    color: var(--primary);
    border: none;
    border-radius: 6px;
    box-shadow: none;
    font-family: var(--font-family, "Inter", sans-serif);
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition:
        color 0.18s ease,
        opacity 0.18s ease;
}

.btn-action--toggle[hidden],
.button-link.list-toggle[hidden] {
    display: none !important;
}

.btn-action--toggle:hover,
.button-link.list-toggle:hover {
    background: transparent;
    color: var(--primary-dark);
    border: none;
    box-shadow: none;
    filter: none;
    transform: none;
}

.btn-action--toggle:hover [data-toggle-label],
.button-link.list-toggle:hover [data-toggle-label] {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.btn-action--toggle:active,
.button-link.list-toggle:active {
    color: var(--primary);
    background: transparent;
    box-shadow: none;
    transform: none;
    opacity: 0.75;
}

.btn-action--toggle:focus-visible,
.button-link.list-toggle:focus-visible {
    outline: none;
    background: transparent;
    box-shadow: 0 0 0 3px var(--primary-soft);
}

.btn-action--toggle svg,
.button-link.list-toggle svg,
.btn-action--toggle i[data-lucide],
.button-link.list-toggle i[data-lucide] {
    width: 12px;
    height: 12px;
    padding: 3px;
    box-sizing: content-box;
    flex-shrink: 0;
    background: var(--primary-soft);
    color: currentColor;
    border-radius: 50%;
    transition:
        transform 0.2s ease,
        background 0.18s ease,
        color 0.18s ease;
}

.btn-action--toggle:hover svg,
.button-link.list-toggle:hover svg {
    background: var(--hover-primary);
}

.btn-action--toggle[aria-expanded="true"] svg,
.button-link.list-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.btn-chip {
    min-height: 32px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: var(--card-soft);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 999px;
    font-family: var(--font-family, "Inter", sans-serif);
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}

.btn-chip:hover {
    background: var(--card-hover);
    color: var(--text);
    border-color: var(--border-strong);
}

.pagination-btn {
    min-width: 44px;
    min-height: 42px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: var(--card-soft);
    color: var(--primary);
    border: none;
    border-radius: 12px;
    font-family: var(--font-family, "Inter", sans-serif);
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition:
        background 0.2s ease,
        transform 0.15s ease,
        box-shadow 0.2s ease;
}

.pagination-btn:hover {
    background: var(--primary-soft);
    color: var(--primary);
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}

.pagination-btn--active,
.pagination-btn.pagination-btn--active {
    background: var(--primary);
    color: var(--text-white);
}

.pagination-btn--active:hover,
.pagination-btn.pagination-btn--active:hover {
    background: var(--btn-primary-hover);
    color: var(--text-white);
}

.pagination-btn svg {
    width: 16px;
    height: 16px;
}

button.btn-primary:not(.btn),
a.btn-primary:not(.btn) {
    min-height: 40px;
    padding: 0 var(--space-lg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    background: var(--btn-primary-bg);
    color: var(--btn-primary-text);
    border: none;
    border-radius: var(--radius-md);
    font-family: var(--font-family, "Inter", sans-serif);
    font-size: var(--font-md);
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: var(--transition);
}

button.btn-primary:not(.btn):hover,
a.btn-primary:not(.btn):hover {
    background: var(--btn-primary-hover);
    color: var(--btn-primary-text);
    box-shadow: var(--btn-primary-shadow);
    transform: translateY(-2px);
}

@media (max-width: 768px) {
    .lista-filtros-acoes .btn.btn-primary,
    .lista-filtros-acoes .btn.btn-secondary,
    .lista-filtros-acoes .btn-limpar {
        width: 100%;
        min-width: 0;
    }

    .form-actions {
        flex-direction: column;
    }

    .form-actions .btn {
        width: 100%;
        max-width: 360px;
    }

    .td-acoes,
    .actions-cell,
    .professores-acoes,
    .acoes-wrapper {
        min-width: 0;
    }

    .btn-action,
    .button-link {
        width: auto;
        min-width: 0;
        max-width: none;
        flex: 1 1 auto;
    }

    .btn-action--view,
    .button-link.view,
    .button-link.visualizar,
    .btn-action--edit,
    .button-link.edit,
    .button-link.editar,
    .btn-action--delete,
    .button-link.delete,
    .button-link.excluir,
    .btn-action--success,
    .button-link.reopen,
    .btn-action--warning,
    .button-link.close,
    .button-link.inativar,
    .button-link.excluir-correcao,
    .btn-action--pdf,
    .button-link.pdf,
    .btn-action--neutral,
    .button-link.corrigir-manual,
    .button-link.duplicar,
    .button-link.gabarito {
        width: auto;
        min-width: 72px;
        max-width: none;
        flex: 1 1 auto;
    }

    .btn-action--toggle,
    .button-link.list-toggle {
        width: auto;
        max-width: none;
    }
}

html[data-theme="dark"] .btn-action--toggle,
html[data-theme="dark"] .button-link.list-toggle {
    background: transparent;
    color: var(--primary-light);
}

html[data-theme="dark"] .btn-action--toggle:hover,
html[data-theme="dark"] .button-link.list-toggle:hover {
    background: transparent;
    color: var(--primary-dark);
}

html[data-theme="dark"] .btn-action--toggle svg,
html[data-theme="dark"] .button-link.list-toggle svg {
    background: var(--primary-soft);
}

@media (prefers-reduced-motion: reduce) {
    .btn,
    .btn-action,
    .button-link,
    .pagination-btn,
    .btn-chip {
        transition: none;
    }

    .btn-action--toggle svg,
    .button-link.list-toggle svg {
        transition: none;
    }
}

th.th-acoes,
th.actions-header {
    width: 56px;
    min-width: 56px;
    text-align: center;
    white-space: nowrap;
}

.ciclo-ordem-header {
    width: 90px;
    text-align: center;
}

/* =========================================================
   Menu de ações (⋮) — padrão SITRE
   ========================================================= */

.td-acoes,
.actions-cell,
td.actions-column {
    position: relative;
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
}

.td-acoes.has-acoes-menu {
    min-width: 0;
    width: 1%;
}

.td-acoes.has-acoes-menu,
.actions-cell.has-acoes-menu,
td.actions-column.has-acoes-menu {
    text-align: center;
}

.acoes-menu {
    position: relative;
    display: inline-flex;
    justify-content: center;
}

.acoes-menu-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--border, rgba(15, 23, 42, 0.12));
    border-radius: 8px;
    background: var(--card, #fff);
    color: var(--text-soft, #64748b);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.acoes-menu-trigger:hover {
    background: var(--bg-page, #f8fafc);
    color: var(--text, #0f172a);
    border-color: rgba(15, 23, 42, 0.18);
}

.acoes-menu-trigger:focus-visible {
    outline: 2px solid var(--primary, #2563eb);
    outline-offset: 2px;
}

.acoes-menu-trigger svg,
.acoes-menu-trigger i[data-lucide] {
    width: 18px;
    height: 18px;
}

.acoes-menu-panel {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 200;
    min-width: 168px;
    padding: 0.35rem 0;
    background: var(--card, #fff);
    border: 1px solid var(--border, rgba(15, 23, 42, 0.1));
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
}

.acoes-menu-panel.is-fixed {
    position: fixed;
    top: auto;
    right: auto;
    left: auto;
    bottom: auto;
}

.acoes-menu-panel.open-up {
    top: auto;
    bottom: calc(100% + 4px);
}

.acoes-menu-panel .acoes-menu-item,
.acoes-menu-panel a.btn-action,
.acoes-menu-panel a.button-link,
.acoes-menu-panel a.pendencia-action,
.acoes-menu-panel button.btn-action {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0.55rem 0.9rem;
    border: none;
    border-radius: 0;
    background: transparent;
    color: var(--text, #0f172a);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    flex: none;
}

.acoes-menu-panel .acoes-menu-item:hover,
.acoes-menu-panel a.btn-action:hover,
.acoes-menu-panel a.button-link:hover,
.acoes-menu-panel a.pendencia-action:hover,
.acoes-menu-panel button.btn-action:hover {
    background: var(--bg-page, #f1f5f9);
    color: var(--text, #0f172a);
}

.acoes-menu-panel .acoes-menu-item--danger,
.acoes-menu-panel .btn-action--delete,
.acoes-menu-panel .button-link.delete,
.acoes-menu-panel .button-link.excluir {
    color: var(--danger, #dc2626);
}

.acoes-menu-panel .acoes-menu-item--danger:hover,
.acoes-menu-panel .btn-action--delete:hover,
.acoes-menu-panel .button-link.delete:hover,
.acoes-menu-panel .button-link.excluir:hover {
    background: #fef2f2;
    color: #b91c1c;
}

.acoes-menu-panel .btn-action svg,
.acoes-menu-panel .btn-action i[data-lucide],
.acoes-menu-panel .button-link svg,
.acoes-menu-panel .button-link i[data-lucide] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.acoes-menu-form {
    display: block;
    margin: 0;
    padding: 0;
}

.acoes-menu-panel .form-acao,
.acoes-menu-panel .form-excluir,
.acoes-menu-panel .form-excluir-correcao,
.acoes-menu-panel .inline-form {
    display: block;
}

.acoes-menu-form button {
    width: 100%;
}

html[data-theme="dark"] .acoes-menu-trigger {
    background: var(--card, #1e293b);
    border-color: rgba(148, 163, 184, 0.2);
    color: #cbd5e1;
}

html[data-theme="dark"] .acoes-menu-trigger:hover {
    background: #334155;
    color: #f8fafc;
}

html[data-theme="dark"] .acoes-menu-panel {
    background: var(--card, #1e293b);
    border-color: rgba(148, 163, 184, 0.2);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

html[data-theme="dark"] .acoes-menu-panel a.btn-action:hover,
html[data-theme="dark"] .acoes-menu-panel button.btn-action:hover {
    background: rgba(148, 163, 184, 0.12);
}