/* ═══════════════════════════════════════════════════════════════
   sollas-crud.css — Classes globais compartilhadas por todas as
   páginas de listagem do Sollas ERP
   ─────────────────────────────────────────────────────────────── */

/* ── Grid de stat cards ──────────────────────────────────────── */
.lp-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .9rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 1100px) { .lp-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .lp-stats { grid-template-columns: 1fr; } }

/* ── Stat card base ──────────────────────────────────────────── */
.lp-stat-card {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    padding: 1.25rem 1.2rem 1.05rem;
    border: 1px solid var(--sollas-border);
    background: var(--sollas-surface);
    display: flex;
    flex-direction: column;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.6),
        0 1px 3px rgba(0,0,0,.05),
        0 4px 14px rgba(0,0,0,.07),
        0 18px 40px rgba(0,0,0,.05);
    transition: transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s;
    cursor: default;
}

.lp-stat-card:hover {
    transform: translateY(-3px) scale(1.008);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.6),
        0 4px 10px rgba(0,0,0,.09),
        0 12px 32px rgba(0,0,0,.11),
        0 32px 64px rgba(0,0,0,.07);
}

/* Color glow no hover */
.lp-card-green:hover  { box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 10px rgba(0,0,0,.08), 0 12px 32px rgba(16,185,129,.12), 0 32px 64px rgba(16,185,129,.06); }
.lp-card-blue:hover   { box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 10px rgba(0,0,0,.08), 0 12px 32px rgba(59,130,246,.12), 0 32px 64px rgba(59,130,246,.06); }
.lp-card-purple:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 10px rgba(0,0,0,.08), 0 12px 32px rgba(139,92,246,.12), 0 32px 64px rgba(139,92,246,.06); }
.lp-card-orange:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 10px rgba(0,0,0,.08), 0 12px 32px rgba(245,158,11,.12), 0 32px 64px rgba(245,158,11,.06); }
.lp-card-red:hover    { box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 10px rgba(0,0,0,.08), 0 12px 32px rgba(239,68,68,.12),  0 32px 64px rgba(239,68,68,.06); }

/* Reflexo de vidro */
.lp-card-shine {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.06) 42%, transparent 62%);
    border-radius: inherit;
    pointer-events: none;
}

/* Faixa de acento colorida no topo do card */
.lp-stat-accent {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3.5px;
    border-radius: 16px 16px 0 0;
}

.lp-card-green  .lp-stat-accent { background: linear-gradient(90deg, #10B981 0%, rgba(16,185,129,.15) 100%); }
.lp-card-blue   .lp-stat-accent { background: linear-gradient(90deg, #3B82F6 0%, rgba(59,130,246,.15) 100%); }
.lp-card-purple .lp-stat-accent { background: linear-gradient(90deg, #8B5CF6 0%, rgba(139,92,246,.15) 100%); }
.lp-card-orange .lp-stat-accent { background: linear-gradient(90deg, #F59E0B 0%, rgba(245,158,11,.15) 100%); }
.lp-card-red    .lp-stat-accent { background: linear-gradient(90deg, #EF4444 0%, rgba(239,68,68,.15) 100%); }

/* Glow do acento no hover */
.lp-card-green:hover  .lp-stat-accent { box-shadow: 0 0 12px rgba(16,185,129,.6); }
.lp-card-blue:hover   .lp-stat-accent { box-shadow: 0 0 12px rgba(59,130,246,.6); }
.lp-card-purple:hover .lp-stat-accent { box-shadow: 0 0 12px rgba(139,92,246,.6); }
.lp-card-orange:hover .lp-stat-accent { box-shadow: 0 0 12px rgba(245,158,11,.6); }
.lp-card-red:hover    .lp-stat-accent { box-shadow: 0 0 12px rgba(239,68,68,.6); }

/* Conteúdo do card */
.lp-stat-content {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    position: relative;
    z-index: 1;
}

.lp-stat-icon {
    width: 44px; height: 44px;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: transform .2s, box-shadow .2s;
}

.lp-stat-card:hover .lp-stat-icon { transform: scale(1.06); }

.lp-icon-green  { background: rgba(16,185,129,.12); color: #10B981; border: 1px solid rgba(16,185,129,.2);  box-shadow: 0 2px 8px rgba(16,185,129,.15); }
.lp-icon-blue   { background: rgba(59,130,246,.12);  color: #3B82F6;  border: 1px solid rgba(59,130,246,.2);  box-shadow: 0 2px 8px rgba(59,130,246,.15); }
.lp-icon-purple { background: rgba(139,92,246,.12);  color: #8B5CF6;  border: 1px solid rgba(139,92,246,.2);  box-shadow: 0 2px 8px rgba(139,92,246,.15); }
.lp-icon-orange { background: rgba(245,158,11,.12);  color: #F59E0B;  border: 1px solid rgba(245,158,11,.2);  box-shadow: 0 2px 8px rgba(245,158,11,.15); }
.lp-icon-red    { background: rgba(239,68,68,.12);   color: #EF4444;  border: 1px solid rgba(239,68,68,.2);   box-shadow: 0 2px 8px rgba(239,68,68,.15); }

.lp-stat-info { display: flex; flex-direction: column; gap: .16rem; min-width: 0; flex: 1; }

.lp-stat-label {
    font-size: .68rem;
    font-weight: 700;
    color: var(--sollas-text-muted);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.lp-stat-value {
    font-size: 1.75rem;
    font-weight: 900;
    letter-spacing: -.04em;
    color: var(--sollas-text-main);
    line-height: 1.05;
}

.lp-stat-date { font-size: 1.15rem; }
.lp-stat-sm   { font-size: 1.15rem; }

/* Cores de valor de stat (para colorir o número principal) */
.lp-val-green  { color: #10B981; }
.lp-val-blue   { color: #3B82F6; }
.lp-val-purple { color: #8B5CF6; }
.lp-val-orange { color: #F59E0B; }
.lp-val-red    { color: #EF4444; }

.lp-stat-sub {
    font-size: .69rem;
    font-weight: 600;
    margin-top: .06rem;
    display: flex;
    align-items: center;
    gap: .25rem;
}

.lp-sub-green  { color: #10B981; }
.lp-sub-blue   { color: #3B82F6; }
.lp-sub-purple { color: #8B5CF6; }
.lp-sub-orange { color: #F59E0B; }
.lp-sub-red    { color: #EF4444; }

/* Sparkline — flow natural no flex-column, margens negativas = flush com borda */
.lp-sparkline-wrap {
    height: 68px;
    margin: 0 -1.2rem -1.05rem;
    overflow: hidden;
    opacity: .4;
    transition: opacity .2s;
}

.lp-stat-card:hover .lp-sparkline-wrap { opacity: 1; }

/* ── Painel principal ────────────────────────────────────────── */
.lp-panel {
    border-radius: 18px;
    border: 1px solid var(--sollas-border);
    background: var(--sollas-surface);
    overflow: hidden;
    position: relative;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.55),
        0 2px 4px rgba(0,0,0,.04),
        0 8px 24px rgba(0,0,0,.07),
        0 24px 64px rgba(0,0,0,.05);
}

.lp-panel::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2.5px;
    background: linear-gradient(90deg, var(--sollas-primary) 0%, rgba(29,158,117,.25) 60%, transparent 100%);
    border-radius: 18px 18px 0 0;
    z-index: 1;
}

/* ── Header icon badge ───────────────────────────────────────── */
.lp-header-icon-badge {
    width: 50px; height: 50px;
    border-radius: 14px;
    background: linear-gradient(135deg, #10B981 0%, #059669 100%);
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    flex-shrink: 0;
    box-shadow:
        0 2px 8px rgba(29,158,117,.32),
        0 8px 24px rgba(29,158,117,.24),
        inset 0 1px 0 rgba(255,255,255,.22),
        inset 0 -1px 0 rgba(0,0,0,.08);
    transition: transform .2s, box-shadow .2s;
}

.lp-header-icon-badge:hover {
    transform: scale(1.05) rotate(2deg);
    box-shadow:
        0 4px 14px rgba(29,158,117,.40),
        0 14px 36px rgba(29,158,117,.28),
        inset 0 1px 0 rgba(255,255,255,.22);
}

/* ── Paginação (shared) ──────────────────────────────────────── */
.lp-page-btn {
    min-width: 32px; height: 32px;
    padding: 0 .5rem;
    border-radius: 8px;
    border: 1.5px solid var(--sollas-border);
    background: var(--sollas-surface);
    color: var(--sollas-text-muted);
    font-size: .76rem;
    font-weight: 600;
    font-family: var(--sollas-font, 'Plus Jakarta Sans', sans-serif);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s, border-color .15s, color .15s;
}

.lp-page-btn:hover:not(:disabled):not(.active) {
    background: var(--sollas-primary-light);
    border-color: rgba(29,158,117,.3);
    color: var(--sollas-primary);
}

.lp-page-btn.active {
    background: var(--sollas-primary);
    border-color: var(--sollas-primary);
    color: #fff;
    box-shadow: 0 2px 8px rgba(29,158,117,.3);
    cursor: default;
}

.lp-page-btn:disabled { opacity: .35; cursor: not-allowed; }

/* ═══════════════════════════════════════════════════════════════
   DARK MODE
   ─────────────────────────────────────────────────────────────── */

[data-theme="dark"] .lp-header-icon-badge {
    box-shadow:
        0 2px 8px rgba(29,158,117,.22),
        0 10px 28px rgba(29,158,117,.16),
        inset 0 1px 0 rgba(255,255,255,.1);
}

[data-theme="dark"] .lp-stat-card {
    background: linear-gradient(135deg, #132030 0%, #0F1B2D 100%);
    border-color: rgba(255,255,255,.07);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.07),
        0 4px 16px rgba(0,0,0,.35),
        0 20px 48px rgba(0,0,0,.28);
}

[data-theme="dark"] .lp-stat-card:hover {
    background: linear-gradient(135deg, #162538 0%, #112030 100%);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.09),
        0 6px 20px rgba(0,0,0,.45),
        0 28px 56px rgba(0,0,0,.35);
}

[data-theme="dark"] .lp-card-green:hover  { box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 6px 20px rgba(16,185,129,.18), 0 28px 56px rgba(16,185,129,.1); }
[data-theme="dark"] .lp-card-blue:hover   { box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 6px 20px rgba(59,130,246,.18), 0 28px 56px rgba(59,130,246,.1); }
[data-theme="dark"] .lp-card-purple:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 6px 20px rgba(139,92,246,.18), 0 28px 56px rgba(139,92,246,.1); }
[data-theme="dark"] .lp-card-orange:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 6px 20px rgba(245,158,11,.18), 0 28px 56px rgba(245,158,11,.1); }
[data-theme="dark"] .lp-card-red:hover    { box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 6px 20px rgba(239,68,68,.18),  0 28px 56px rgba(239,68,68,.1); }

[data-theme="dark"] .lp-card-shine {
    background: linear-gradient(135deg, rgba(255,255,255,.07) 0%, rgba(255,255,255,.02) 40%, transparent 60%);
}

[data-theme="dark"] .lp-icon-green  { background: rgba(16,185,129,.14); border-color: rgba(16,185,129,.22); }
[data-theme="dark"] .lp-icon-blue   { background: rgba(59,130,246,.14);  border-color: rgba(59,130,246,.22); }
[data-theme="dark"] .lp-icon-purple { background: rgba(139,92,246,.14);  border-color: rgba(139,92,246,.22); }
[data-theme="dark"] .lp-icon-orange { background: rgba(245,158,11,.14);  border-color: rgba(245,158,11,.22); }
[data-theme="dark"] .lp-icon-red    { background: rgba(239,68,68,.14);   border-color: rgba(239,68,68,.22); }

[data-theme="dark"] .lp-panel {
    background: var(--sollas-surface);
    border-color: rgba(255,255,255,.07);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.05),
        0 4px 16px rgba(0,0,0,.3),
        0 24px 64px rgba(0,0,0,.25);
}

[data-theme="dark"] .lp-panel::before {
    background: linear-gradient(90deg, rgba(29,158,117,.6) 0%, rgba(29,158,117,.15) 50%, transparent 100%);
}

[data-theme="dark"] .lp-page-btn {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.08);
}

/* ═══════════════════════════════════════════════════════════════
   ESTRUTURA DE LISTA PREMIUM — usada por todas as telas de grid
   (OSList, PedidoList, ClientList, etc.)
   ─────────────────────────────────────────────────────────────── */

/* ── ① Toolbar ───────────────────────────────────────────────── */
.lp-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .9rem 1.25rem;
    border-bottom: 1px solid var(--sollas-border);
    background: rgba(0,0,0,.01);
    gap: 1rem;
}

.lp-toolbar-left { display: flex; align-items: center; gap: .6rem; }

.lp-toolbar-icon {
    width: 26px; height: 26px;
    border-radius: 7px;
    background: var(--sollas-primary-light);
    border: 1px solid rgba(29,158,117,.15);
    display: flex; align-items: center; justify-content: center;
    color: var(--sollas-primary);
    flex-shrink: 0;
}

.lp-toolbar-title {
    font-size: .82rem;
    font-weight: 700;
    color: var(--sollas-text-main);
    letter-spacing: -.01em;
}

.lp-toolbar-count {
    padding: .2rem .55rem;
    border-radius: 999px;
    background: var(--sollas-primary-light);
    color: var(--sollas-primary);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    border: 1px solid rgba(29,158,117,.15);
}

.lp-filter-clear-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .7rem;
    border-radius: 7px;
    border: 1.5px solid rgba(239,68,68,.25);
    background: rgba(239,68,68,.06);
    color: #EF4444;
    font-size: .72rem;
    font-weight: 600;
    font-family: var(--sollas-font, 'Plus Jakarta Sans', sans-serif);
    cursor: pointer;
    transition: background .16s, border-color .16s;
    white-space: nowrap;
}

.lp-filter-clear-btn:hover { background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.4); }

/* ══════════════════════════════════════════════════════════════
   SISTEMA GLOBAL DE LISTAGEM (padrão ClientList)
   As 4 camadas (cabeçalho, filtros, linhas, skeleton) compartilham
   o mesmo grid. Cada página define APENAS suas colunas via variável:
       .lp-page { --lp-grid: minmax(150px,1.5fr) minmax(96px,.5fr) ... 88px; }
   e redefine --lp-grid nos breakpoints. Nada mais é necessário.
   ══════════════════════════════════════════════════════════════ */
.lp-col-header, .lp-filter-bar, .lp-card-row, .lp-skel-row, .lp-list-header {
    display: grid;
    grid-template-columns: var(--lp-grid, none);
    column-gap: 12px;
    align-items: center;
}

/* Neutraliza larguras legadas (theme.css: .col-valor {width:130px} etc.)
   que impedem células E campos de pesquisa de esticarem até o fim do track */
.lp-col-header .lp-ch-cell,
.lp-card-row  .lp-cr-col,
.lp-skel-row  .lp-cr-col,
.lp-filter-bar .lp-ff,
.lp-filter-bar .lp-ff-spacer,
.lp-filter-bar .lp-ff-acoes-spacer {
    width: auto; min-width: 0; max-width: none;
}

/* Recuo padrão: alinha o texto das células com o texto interno
   dos campos de filtro (1.5px de borda + padding do input ≈ 13px) */
.lp-ch-cell, .lp-cr-col { padding-left: 13px; padding-right: 13px; box-sizing: border-box; }

/* Coluna de ações: sem recuo, conteúdo à direita */
.lp-ch-cell.col-acoes  { padding: 0; text-align: right; }
.lp-cr-col.col-acoes   { padding: 0; justify-content: flex-end; }
.lp-ff-spacer.col-acoes { padding: 0; }

/* Colunas de data, status e parcela: centralizadas por padrão em todo o
   sistema — cabeçalho, valor da célula E o texto do campo de pesquisa */
.lp-ch-cell.col-data,  .lp-ch-cell.col-status, .lp-ch-cell.col-venc,
.lp-ch-cell.col-receb, .lp-ch-cell.col-pagto,  .lp-ch-cell.col-parc {
    text-align: center;
    justify-content: center;
}
.lp-cr-col.col-data,  .lp-cr-col.col-status, .lp-cr-col.col-venc,
.lp-cr-col.col-receb, .lp-cr-col.col-pagto,  .lp-cr-col.col-parc {
    justify-content: center;
}
.lp-ff.col-data  .lp-ff-input, .lp-ff.col-venc .lp-ff-input,
.lp-ff.col-receb .lp-ff-input, .lp-ff.col-pagto .lp-ff-input,
.lp-ff.col-parc  .lp-ff-input {
    text-align: center;
}
.lp-ff.col-status .fsel-trigger { justify-content: center; }

/* Header mesclado (rótulo + filtro empilhados): alinha pelo topo */
.lp-list-header { align-items: stretch; }

/* ── ② Cabeçalho de colunas ──────────────────────────────────── */
.lp-col-header {
    padding: .45rem 1.25rem .45rem 1.5rem;
    border-bottom: 1px solid var(--sollas-border);
    background: rgba(0,0,0,.015);
}

.lp-ch-cell {
    font-size: .6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--sollas-text-muted);
    white-space: nowrap;
    overflow: hidden;
}

/* ── ③ Barra de filtros ──────────────────────────────────────── */
.lp-filter-bar {
    padding: .55rem 1.25rem .55rem 1.5rem;
    border-bottom: 2px solid var(--sollas-border);
    background: rgba(0,0,0,.01);
}

.lp-ff {
    display: flex;
    align-items: center;
    gap: .45rem;
    height: 34px;
    padding: 0 .7rem;
    border-radius: 9px;
    border: 1.5px solid var(--sollas-border);
    background: var(--sollas-bg);
    transition: border-color .18s, box-shadow .18s, background .18s;
    cursor: text;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

.lp-ff:focus-within {
    border-color: var(--sollas-primary);
    background: var(--sollas-surface);
    box-shadow: 0 0 0 3px rgba(29,158,117,.10), 0 1px 4px rgba(29,158,117,.08);
}

.lp-ff-icon {
    color: var(--sollas-text-muted);
    flex-shrink: 0;
    transition: color .18s;
    display: flex;
    align-items: center;
}

.lp-ff:focus-within .lp-ff-icon { color: var(--sollas-primary); }

.lp-ff-wpp { color: #25D366 !important; }

.lp-ff-input {
    border: none;
    background: transparent;
    outline: none;
    font-size: .76rem;
    color: var(--sollas-text-main);
    font-family: var(--sollas-font, 'Plus Jakarta Sans', sans-serif);
    width: 100%;
    min-width: 0;
}

.lp-ff-input::placeholder { color: var(--sollas-text-muted); opacity: .7; }

.lp-ff-spacer {
    flex-shrink: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    cursor: default;
    height: auto;
    padding: 0;
}

/* ── ④ Corpo da lista ────────────────────────────────────────── */
.lp-list-body { display: flex; flex-direction: column; }

.lp-card-row {
    position: relative;
    padding: .82rem 1.25rem .82rem 1.5rem;
    border-bottom: 1px solid var(--sollas-border);
    transition: background .15s, padding-left .15s;
    cursor: default;
}

.lp-card-row:last-child { border-bottom: none; }

/* Barra de acento lateral */
.lp-card-row::before {
    content: '';
    position: absolute;
    left: 0; top: 20%; bottom: 20%;
    width: 0;
    background: var(--sollas-primary);
    border-radius: 0 3px 3px 0;
    transition: width .15s ease, top .15s, bottom .15s;
}

.lp-card-row:hover::before { width: 3px; top: 10%; bottom: 10%; }
.lp-card-row:hover { background: rgba(16,185,129,.035); padding-left: 1.65rem; }

.lp-cr-col { display: flex; align-items: center; min-width: 0; overflow: hidden; }

/* Coluna de ações — o track do grid (definido em --lp-grid) dá a largura */

/* ── Botões de ação ───────────────────────────────────────────── */
.lp-acoes-wrap {
    display: flex;
    align-items: center;
    gap: .45rem;
    opacity: .45;
    transition: opacity .18s;
}

.lp-card-row:hover .lp-acoes-wrap { opacity: 1; }

.lp-btn-acao {
    width: 32px; height: 32px;
    border-radius: 8px;
    border: 1.5px solid var(--sollas-border);
    background: var(--sollas-surface);
    color: var(--sollas-text-muted);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s, transform .15s, box-shadow .15s;
}

.lp-btn-acao:hover {
    background: var(--sollas-primary-light);
    border-color: rgba(29,158,117,.3);
    color: var(--sollas-primary);
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(29,158,117,.15);
}

.lp-btn-acao.lp-btn-danger:hover {
    background: rgba(239,68,68,.1);
    border-color: rgba(239,68,68,.3);
    color: #EF4444;
    box-shadow: 0 3px 10px rgba(239,68,68,.15);
}

.lp-btn-acao:active { transform: translateY(0); }

/* ── ⑤ Skeleton ──────────────────────────────────────────────── */
.lp-skel-row {
    padding: .82rem 1.25rem .82rem 1.5rem;
    border-bottom: 1px solid var(--sollas-border);
}

.lp-skel-avatar {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: var(--sollas-border);
    flex-shrink: 0;
    animation: lp-shimmer 1.6s infinite linear;
    background-size: 200% 100%;
}

.lp-skel-lines { display: flex; flex-direction: column; gap: .35rem; flex: 2; }

.lp-skel {
    display: block;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, var(--sollas-border) 25%, rgba(255,255,255,.3) 50%, var(--sollas-border) 75%);
    background-size: 200% 100%;
    animation: lp-shimmer 1.6s infinite linear;
}

@keyframes lp-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ── Estado vazio ─────────────────────────────────────────────── */
.lp-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3.5rem 2rem;
    gap: .65rem;
}

.lp-empty-icon {
    width: 56px; height: 56px;
    border-radius: 16px;
    background: var(--sollas-primary-light);
    border: 1px solid rgba(29,158,117,.15);
    display: flex; align-items: center; justify-content: center;
    color: var(--sollas-primary);
    margin-bottom: .25rem;
}

.lp-empty-title { font-size: .95rem; font-weight: 700; color: var(--sollas-text-main); margin: 0; }
.lp-empty-sub   { font-size: .78rem; color: var(--sollas-text-muted); margin: 0; }

.lp-empty-btn {
    margin-top: .5rem;
    padding: .5rem 1.1rem;
    border-radius: 8px;
    border: 1.5px solid rgba(29,158,117,.3);
    background: var(--sollas-primary-light);
    color: var(--sollas-primary);
    font-size: .78rem;
    font-weight: 600;
    font-family: var(--sollas-font, 'Plus Jakarta Sans', sans-serif);
    cursor: pointer;
    transition: background .16s, border-color .16s;
}

.lp-empty-btn:hover { background: rgba(29,158,117,.14); border-color: rgba(29,158,117,.45); }

/* ── ⑥ Rodapé ─────────────────────────────────────────────────── */
.lp-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1.25rem;
    border-top: 1px solid var(--sollas-border);
    background: rgba(0,0,0,.015);
    gap: 1rem;
    flex-wrap: wrap;
}

.lp-footer-left { display: flex; align-items: center; gap: .6rem; }

.lp-footer-icon-wrap { position: relative; width: 28px; height: 28px; flex-shrink: 0; }
.lp-footer-icon-wrap svg { color: var(--sollas-primary); position: absolute; top: 0; left: 0; }

.lp-footer-check {
    position: absolute;
    bottom: -1px; right: -1px;
    width: 12px; height: 12px;
    border-radius: 50%;
    background: #10B981;
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    border: 1.5px solid var(--sollas-surface);
}

.lp-footer-text { display: flex; flex-direction: column; gap: .05rem; }
.lp-footer-bold  { font-size: .78rem; font-weight: 700; color: var(--sollas-text-main); }
.lp-footer-muted { font-size: .68rem; color: var(--sollas-text-muted); }

.lp-pagination { display: flex; align-items: center; gap: .3rem; }

/* ── Modal de confirmação global ─────────────────────────────── */
.lp-confirm-backdrop {
    position: fixed; inset: 0;
    background: rgba(0,0,0,.45);
    backdrop-filter: blur(4px);
    display: flex; align-items: center; justify-content: center;
    z-index: 9000;
    animation: lp-fade-in .15s ease;
}

@keyframes lp-fade-in { from { opacity: 0; } to { opacity: 1; } }

.lp-confirm-box {
    background: var(--sollas-surface);
    border-radius: 18px;
    border: 1px solid var(--sollas-border);
    padding: 1.75rem 1.75rem 1.5rem;
    max-width: 340px;
    width: calc(100% - 2rem);
    box-shadow: 0 4px 16px rgba(0,0,0,.15), 0 24px 64px rgba(0,0,0,.2);
    display: flex; flex-direction: column; align-items: center;
    gap: .55rem; text-align: center;
    animation: lp-scale-in .18s ease;
}

@keyframes lp-scale-in { from { opacity: 0; transform: scale(.95); } to { opacity: 1; transform: scale(1); } }

.lp-confirm-icon {
    width: 54px; height: 54px;
    border-radius: 16px;
    background: rgba(239,68,68,.1);
    border: 1.5px solid rgba(239,68,68,.2);
    display: flex; align-items: center; justify-content: center;
    color: #EF4444;
    margin-bottom: .35rem;
}

.lp-confirm-title { font-size: 1rem; font-weight: 800; color: var(--sollas-text-main); margin: 0; }
.lp-confirm-sub   { font-size: .8rem; color: var(--sollas-text-muted); margin: 0; line-height: 1.45; }

.lp-confirm-actions { display: flex; gap: .65rem; margin-top: .85rem; width: 100%; }

.lp-confirm-cancel {
    flex: 1; padding: .6rem;
    border-radius: 10px;
    border: 1.5px solid var(--sollas-border);
    background: transparent;
    color: var(--sollas-text-muted);
    font-size: .82rem; font-weight: 600;
    font-family: var(--sollas-font, 'Plus Jakarta Sans', sans-serif);
    cursor: pointer;
    transition: background .15s, color .15s;
}

.lp-confirm-cancel:hover { background: var(--sollas-primary-light); color: var(--sollas-primary); border-color: rgba(29,158,117,.3); }

.lp-confirm-ok {
    flex: 1; padding: .6rem;
    border-radius: 10px;
    border: none;
    background: linear-gradient(135deg, #EF4444, #DC2626);
    color: #fff;
    font-size: .82rem; font-weight: 700;
    font-family: var(--sollas-font, 'Plus Jakarta Sans', sans-serif);
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(239,68,68,.3);
    transition: filter .15s, transform .15s;
}

.lp-confirm-ok:hover  { filter: brightness(1.08); transform: translateY(-1px); }
.lp-confirm-ok:active { filter: brightness(.97);  transform: translateY(0); }

/* ── Dark mode — estrutura de lista ─────────────────────────── */
[data-theme="dark"] .lp-toolbar      { background: rgba(255,255,255,.02);  border-bottom-color: rgba(255,255,255,.06); }
[data-theme="dark"] .lp-col-header   { background: rgba(255,255,255,.025); border-bottom-color: rgba(255,255,255,.06); }
[data-theme="dark"] .lp-filter-bar   { background: rgba(255,255,255,.015); border-bottom-color: rgba(255,255,255,.07); }
[data-theme="dark"] .lp-footer       { background: rgba(255,255,255,.015); border-top-color:    rgba(255,255,255,.06); }

[data-theme="dark"] .lp-ff { background: var(--sollas-bg); border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .lp-ff:focus-within {
    background: rgba(255,255,255,.07);
    border-color: rgba(29,158,117,.5);
    box-shadow: 0 0 0 3px rgba(29,158,117,.12), 0 1px 6px rgba(29,158,117,.08);
}

[data-theme="dark"] .lp-card-row { border-bottom-color: rgba(255,255,255,.05); }
[data-theme="dark"] .lp-card-row:hover { background: rgba(16,185,129,.04); }

[data-theme="dark"] .lp-btn-acao { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .lp-btn-acao:hover { background: rgba(29,158,117,.14); border-color: rgba(29,158,117,.35); box-shadow: 0 3px 12px rgba(29,158,117,.2); }
[data-theme="dark"] .lp-btn-acao.lp-btn-danger:hover { background: rgba(239,68,68,.12); box-shadow: 0 3px 12px rgba(239,68,68,.2); }

[data-theme="dark"] .lp-skel-row    { border-bottom-color: rgba(255,255,255,.05); }
[data-theme="dark"] .lp-skel-avatar { background: rgba(255,255,255,.07); }
[data-theme="dark"] .lp-skel {
    background: linear-gradient(90deg, rgba(255,255,255,.06) 25%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.06) 75%);
    background-size: 200% 100%;
}

[data-theme="dark"] .lp-confirm-backdrop { background: rgba(0,0,0,.65); }
[data-theme="dark"] .lp-confirm-box { box-shadow: 0 8px 32px rgba(0,0,0,.4), 0 32px 80px rgba(0,0,0,.35); }
[data-theme="dark"] .lp-footer-check { border-color: #1a2235; }
