/* Componente isolado: não altera .table nem os estilos compilados do tema. */
.sf-table {
    --sf-border:var(--bs-border-color,#e1e3e7);
    --sf-muted:var(--bs-secondary-color,#686b72);
    --sf-surface:var(--bs-body-bg,#fff);
    --sf-row:var(--bs-tertiary-bg,#f7f7f8);
    color:var(--bs-body-color,#24262a);
    background:var(--sf-surface);
    border:1px solid var(--sf-border);
    border-radius:14px;
    box-shadow:0 1px 3px #18212e0c;
    font-size:14px;
    position:relative;
    min-width:0;
    margin-bottom:1rem;
}

.sf-table-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:20px 22px 8px;
}

.sf-table-heading h2 {
    font-size:19px;
    margin:0;
    font-weight:650;
}

.sf-table-count {
    font-size:12px;
    color:var(--sf-muted);
    white-space:nowrap;
}

.sf-table-toolbar {
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 18px 14px;
}

.sf-table-search {
    display:flex;
    align-items:center;
    gap:10px;
    flex:1;
    min-width:120px;
    color:var(--sf-muted);
    margin:0;
}

.sf-table-search input {
    border:0;
    background:transparent;
    padding:9px 4px;
    width:100%;
    color:inherit;
    font:inherit;
    min-width:0;
}

.sf-table-search input:focus {
    outline:none;
}

.sf-table-search:focus-within {
    box-shadow:0 2px 0 var(--brand-primary,#007a3f);
}

.sf-table-button,.sf-table-column-toggle {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid var(--sf-border);
    border-radius:7px;
    background:var(--sf-surface);
    padding:7px 10px;
    color:inherit;
    font:inherit;
    font-size:13px;
    cursor:pointer;
    white-space:nowrap;
    text-decoration:none;
}

.sf-table-button:hover,.sf-table-column-toggle:hover {
    background:var(--sf-row);
}

.sf-table button:disabled {
    opacity:.4;
    cursor:default;
}

.sf-table button:focus-visible,.sf-table summary:focus-visible,.sf-table select:focus-visible,.sf-table input:focus-visible,.sf-table-row-link:focus-visible,.sf-table-scroll:focus-visible {
    outline:2px solid var(--brand-primary,#007a3f);
    outline-offset:3px;
}

.sf-table-details {
    position:static;
}

.sf-table-details summary {
    list-style:none;
}

.sf-table-details summary::-webkit-details-marker {
    display:none;
}

.sf-table-details[open]>summary {
    border-color:var(--brand-primary,#007a3f);
    color:var(--brand-primary,#007a3f);
}

.sf-table-panel {
    position:absolute;
    right:14px;
    top:104px;
    z-index:25;
    width:350px;
    max-width:calc(100% - 28px);
    max-height:65vh;
    overflow-y:auto;
    padding:18px;
    border:1px solid var(--sf-border);
    border-radius:14px;
    background:var(--sf-surface);
    box-shadow:0 10px 35px #18212e26;
}

.sf-table-panel>strong {
    display:block;
    font-size:13px;
    margin:6px 0 12px;
    color:var(--sf-muted);
}

.sf-table-field {
    display:flex;
    flex-direction:column;
    gap:7px;
    margin:0 0 16px;
    font-size:13px;
}

.sf-table select,.sf-table-panel input {
    border:1px solid var(--sf-border);
    border-radius:6px;
    padding:7px;
    min-width:0;
    width:100%;
    background:var(--sf-surface);
    color:inherit;
    font:inherit;
}

.sf-table-range {
    display:flex;
    gap:6px;
}

.sf-table-column {
    display:flex;
    align-items:center;
    gap:5px;
    margin-bottom:5px;
}

.sf-table-column.is-hidden .sf-table-column-toggle {
    color:var(--sf-muted);
}

.sf-table-column-toggle {
    flex:1;
    justify-content:flex-start;
    border:0;
    white-space:normal;
    text-align:left;
}

.sf-table-column>.sf-table-button {
    padding:6px;
    border:0;
}

.sf-table-column-toggle i {
    flex-shrink:0;
}

.sf-table-scroll {
    overflow-x:auto;
    border-top:1px solid var(--sf-border);
    border-bottom:1px solid var(--sf-border);
}

.sf-table-grid {
    width:100%;
    border-collapse:collapse;
    margin:0;
}

.sf-table-grid th,.sf-table-grid td {
    padding:11px 16px;
    text-align:left;
    border-bottom:1px solid var(--sf-border);
    vertical-align:middle;
    white-space:nowrap;
}

.sf-table-grid th {
    background:var(--sf-row);
    font-weight:600;
    color:var(--sf-muted);
    font-size:13px;
}

.sf-table-grid tbody tr:nth-child(even) {
    background:var(--sf-row);
}

.sf-table-grid tbody tr:last-child td {
    border-bottom:0;
}

.sf-table-grid tbody tr.sf-table-clickable:hover,.sf-table-grid tbody tr:focus-within {
    background:rgba(var(--brand-primary-rgb,0,122,63),.065);
}

.sf-table-clickable {
    cursor:pointer;
}

.sf-table-sort {
    display:inline-flex;
    flex-direction:row-reverse;
    align-items:center;
    gap:6px;
    border:0;
    padding:0;
    background:none;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:pointer;
}

.sf-table-sort i {
    font-size:11px;
}

.sf-table-grid th[aria-sort=ascending],.sf-table-grid th[aria-sort=descending] {
    color:var(--brand-primary,#007a3f);
}

.sf-table-cell {
    display:block;
    max-width:440px;
    overflow:hidden;
    text-overflow:ellipsis;
}

.sf-table-secondary {
    display:block;
    color:var(--sf-muted);
    max-width:440px;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:12px;
    margin-top:3px;
}

.sf-table-row-link {
    display:block;
    color:inherit;
    text-decoration:none;
    font-weight:550;
}

.sf-table-row-link:hover {
    color:inherit;
}

.sf-table-grid td.sf-table-numeric {
    text-align:right;
    font-variant-numeric:tabular-nums;
}

.sf-table-badge {
    display:inline-flex;
    align-items:center;
    gap:7px;
    border-radius:24px;
    padding:3px 10px;
    background:#ebecee;
    color:#555b62;
    font-size:12px;
    white-space:nowrap;
}

.sf-table-badge::before {
    content:'';
    width:7px;
    height:7px;
    border-radius:50%;
    background:currentColor;
}

.sf-table-badge-success {
    background:#d8eee3;
    color:#20744b;
}

.sf-table-badge-danger {
    background:#fce0e0;
    color:#a33232;
}

.sf-table-badge-warning {
    background:#fff2ce;
    color:#896317;
}

.sf-table-badge-info {
    background:#d6f4fb;
    color:#176478;
}

.sf-table-people {
    display:flex;
    gap:5px;
}

.sf-table-avatar {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:29px;
    height:29px;
    border-radius:50%;
    background:rgba(var(--brand-primary-rgb,0,122,63),.1);
    color:var(--brand-primary,#007a3f);
    font-size:11px;
    font-weight:600;
}

.sf-table-grid td.sf-table-empty {
    text-align:center;
    padding:36px 16px;
    color:var(--sf-muted);
    white-space:normal;
}

.sf-table-footer {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:14px;
    padding:12px 18px;
    font-size:12px;
    color:var(--sf-muted);
}

.sf-table-summary {
    margin-right:auto;
}

.sf-table-pagination {
    display:flex;
    align-items:center;
    gap:10px;
}

.sf-table-size {
    display:flex;
    align-items:center;
    gap:8px;
    white-space:nowrap;
    margin:0;
}

.sf-table-size select {
    width:auto;
    padding:5px;
}

.sf-table-pagination button {
    font-size:12px;
}

@media(max-width:575.98px) {
    .sf-table-heading {
        padding:16px 14px 6px;
        align-items:flex-start;
    }

    .sf-table-heading h2 {
        font-size:17px;
    }

    .sf-table-toolbar {
        flex-wrap:wrap;
        padding:8px 12px 12px;
    }

    .sf-table-search {
        flex-basis:100%;
    }

    .sf-table-panel {
        top:148px;
    }

    .sf-table-grid th,.sf-table-grid td {
        padding:10px 12px;
    }

    .sf-table-cell,.sf-table-secondary {
        max-width:260px;
    }

    .sf-table-footer {
        padding:12px;
        gap:10px;
    }

    .sf-table-summary {
        flex-basis:100%;
    }

    .sf-table-pagination {
        margin-left:auto;
    }

}

@media print {
    .sf-table-toolbar,.sf-table-footer {
        display:none;
    }

    .sf-table {
        box-shadow:none;
    }

    .sf-table-scroll {
        overflow:visible;
    }

}

