.hlp-agenda { display:flex; flex-direction:column; gap:8px; }
.hlp-agenda-toolbar { display:flex; align-items:center; justify-content:center; gap:8px; }
.hlp-agenda-grade { border:1px solid var(--mud-palette-lines-default); border-radius:4px; overflow-x:auto; }
.hlp-agenda-canto { background:var(--mud-palette-background-grey); position:sticky; left:0; }
.hlp-agenda-cabecalho {
    background:var(--mud-palette-background-grey); text-align:center; font-size:0.75rem;
    padding:4px 2px; border-left:1px solid var(--mud-palette-lines-default); line-height:1.3;
}
.hlp-agenda-cabecalho.feriado { background:var(--mud-palette-error-lighten); color:var(--mud-palette-error-darken); }
.hlp-agenda-hora {
    display:flex; align-items:center; justify-content:flex-end; padding-right:6px;
    font-size:0.7rem; color:var(--mud-palette-text-secondary); border-top:1px solid var(--mud-palette-lines-default);
    position:sticky; left:0; background:var(--mud-palette-surface);
}
.hlp-agenda-celula {
    border-top:1px solid var(--mud-palette-lines-default); border-left:1px solid var(--mud-palette-lines-default);
    cursor:pointer; font-size:0.65rem; text-align:center; display:flex; align-items:center; justify-content:center;
    overflow:hidden; white-space:nowrap;
}
.hlp-agenda-celula.vazio {
    cursor:default;
    background:repeating-linear-gradient(45deg, var(--mud-palette-background-grey), var(--mud-palette-background-grey) 4px, transparent 4px, transparent 8px);
}
.hlp-agenda-celula.livre { background:var(--mud-palette-success-lighten); }
.hlp-agenda-celula.livre:hover { filter:brightness(0.95); }
.hlp-agenda-celula.selecionada { background:var(--mud-palette-primary); color:var(--mud-palette-primary-text); font-weight:700; }
.hlp-agenda-celula.ocupada-este { background:var(--mud-palette-info); color:var(--mud-palette-info-text); cursor:default; font-weight:600; }
.hlp-agenda-celula.ocupada-outro { background:var(--mud-palette-warning-lighten); color:var(--mud-palette-warning-darken); cursor:default; }
.hlp-agenda-celula.indisponivel { background:var(--mud-palette-background-grey); cursor:default; opacity:0.5; }
.hlp-agenda-celula.livre.alvo-arraste { outline:2px dashed var(--mud-palette-primary); outline-offset:-2px; }

.hlp-agenda-legenda { display:flex; gap:12px; font-size:0.75rem; flex-wrap:wrap; }
.hlp-legenda-item { display:flex; align-items:center; gap:4px; }
.hlp-legenda-item::before { content:""; display:inline-block; width:12px; height:12px; border-radius:2px; }
.hlp-legenda-item.livre::before { background:var(--mud-palette-success-lighten); }
.hlp-legenda-item.selecionada::before { background:var(--mud-palette-primary); }
.hlp-legenda-item.ocupada-este::before { background:var(--mud-palette-info); }
.hlp-legenda-item.ocupada-outro::before { background:var(--mud-palette-warning-lighten); }
.hlp-legenda-item.indisponivel::before { background:var(--mud-palette-background-grey); opacity:0.5; }

/* § Agenda Geral — cor por técnico (identidade), separada da cor de estado (livre/ocupado/etc)
   usada na grade de um único técnico. --cor-tecnico é definida inline por célula/cabeçalho. */
.hlp-agenda-cabecalho { border-top:3px solid var(--cor-tecnico, transparent); }
.hlp-agenda-celula.ocupada-tecnico { background:var(--cor-tecnico, var(--mud-palette-info)); color:#fff; cursor:grab; font-weight:600; }
.hlp-agenda-celula.ocupada-tecnico:active { cursor:grabbing; }
.hlp-legenda-tecnico { display:inline-flex; align-items:center; gap:4px; font-size:0.75rem; margin-right:4px; }
.hlp-legenda-swatch { display:inline-block; width:12px; height:12px; border-radius:2px; background:var(--cor-tecnico); }
