/* ---------------------------------------------------------------------------
   Seleção e ações em massa — discreta
   Selecionar em massa é uma ferramenta ocasional, não o assunto da tela. As
   caixas ficam apagadas até o ponteiro chegar perto ou haver alguma marcada, e
   a barra de ações só existe quando há seleção. Sem faixa escura permanente.
   --------------------------------------------------------------------------- */

/* --- Caixa de seleção ---------------------------------------------------- */

.bulk-pick{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;cursor:pointer}
.bulk-pick input{
    appearance:none;-webkit-appearance:none;margin:0;position:relative;
    width:16px;height:16px;border:1.5px solid #cbd8d3;border-radius:5px;background:#fff;
    cursor:pointer;opacity:.4;
    transition:opacity .18s ease,border-color .18s ease,background-color .18s ease;
}
.bulk-pick input:hover{border-color:var(--green,#0b7a57);opacity:1}
.bulk-pick input:checked{background:var(--green,#0b7a57);border-color:var(--green,#0b7a57);opacity:1}
.bulk-pick input:checked::after{
    content:'';position:absolute;left:4.5px;top:1px;width:4px;height:8px;
    border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}
.bulk-pick input:indeterminate{background:var(--green,#0b7a57);border-color:var(--green,#0b7a57);opacity:1}
.bulk-pick input:indeterminate::after{content:'';position:absolute;left:3px;top:6.5px;width:8px;border-bottom:2px solid #fff}
.bulk-pick input:focus-visible{outline:2px solid var(--green,#0b7a57);outline-offset:2px;opacity:1}

/* Desperta ao aproximar o ponteiro, ou quando já existe seleção na tela. */
.bulk-selectable:hover .bulk-pick input,
tr:hover .bulk-pick input,
body:has([data-bulk-check]:checked) .bulk-pick input{opacity:1}

/* Em toque não existe hover: mantém sempre legível. */
@media(hover:none){.bulk-pick input{opacity:1}}

/* Posicionamento em cartões e em tabelas. */
.bulk-pick-card{position:absolute;left:11px;top:11px;z-index:3}
.bulk-selectable{position:relative}
.bulk-selectable:has(.bulk-pick input:checked){box-shadow:0 0 0 1.5px color-mix(in srgb,var(--green,#0b7a57) 50%,transparent)}

table td.bulk-cell,table th.bulk-cell{width:34px;padding-right:0}
table tr:has(.bulk-pick input:checked){background:#f2faf7}

/* --- Barra de ações ------------------------------------------------------ */

/* Aparece só com algo marcado. Em CSS, para não piscar no carregamento. */
body:not(:has([data-bulk-check]:checked)) .bulk-bar{display:none}
.bulk-bar[data-empty]{display:none}

.bulk-bar{
    position:sticky;bottom:14px;z-index:40;
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    margin:14px 0 2px;padding:8px 12px;
    background:#fff;border:1px solid var(--line,#dfe9e5);border-radius:11px;
    box-shadow:0 6px 18px #14342a12;
    font-size:12px;color:#5f6e68;
    animation:bulk-bar-in .22s var(--ease-out,cubic-bezier(.22,.8,.28,1)) both;
}
@keyframes bulk-bar-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.bulk-select-all{display:inline-flex;align-items:center;gap:7px;color:#68766f;cursor:pointer;white-space:nowrap}
.bulk-count{margin-right:auto;white-space:nowrap;color:#7d8b85}
.bulk-count b{color:#22362f;font-weight:700}

.bulk-buttons{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.bulk-bar .text-btn{color:#8a9792;font-size:11.5px;font-weight:600;padding:6px 8px;border-radius:7px}
.bulk-bar .text-btn:hover{color:#3f524a;background:#f2f6f4}

/* Botões contidos: contorno e texto, sem preenchimento chamativo. */
.bulk-bar .btn{
    border:1px solid var(--line,#dfe9e5);background:#fff;border-radius:8px;
    padding:7px 11px;font-size:11.5px;font-weight:600;color:#4d6058;cursor:pointer;
    display:inline-flex;align-items:center;gap:6px;
    transition:background-color .18s ease,border-color .18s ease,color .18s ease;
}
.bulk-bar .btn .app-icon{width:14px;height:14px}
.bulk-bar .btn:hover{background:#f4f8f6;border-color:#c8d8d2}
.bulk-bar .btn.danger{color:#b8453b;border-color:#f0d5d2}
.bulk-bar .btn.danger:hover{background:#fdf2f1;border-color:#e2b5af;color:#a53a31}
.bulk-bar .btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}

/* O realce genérico de botão sacudiria a barra inteira; aqui não cabe. */
.bulk-bar .btn:hover,.bulk-bar .btn:active,
.bulk-bar .text-btn:hover,.bulk-bar .text-btn:active{transform:none;box-shadow:none}

@media(max-width:620px){
    .bulk-bar{bottom:calc(76px + env(safe-area-inset-bottom));gap:8px}
    .bulk-count{width:100%;margin-right:0;order:-1}
    .bulk-buttons{width:100%}
    .bulk-bar .btn{flex:1 1 auto;justify-content:center}
}

@media print{.bulk-bar,.bulk-pick,.bulk-cell{display:none !important}}
