/* ===========================
   Admin » Agenda Semanal (BLINDADA AO ESCOPO)
   Tudo restrito à Agenda (nada do DataTables é afetado)
   =========================== */

/* Acessibilidade utilitária */
#sfv-agenda-semanal .screen-reader-text{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  white-space:nowrap !important;
}

/* ========== AGENDA (escopo blindado) ========== */
#sfv-agenda-semanal.sfv-agenda{
  --sfv-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --sfv-text: #0f172a;
  --sfv-muted: #5b6472;
  --sfv-surface: #ffffff;
  --sfv-surface-2: #f7f9fc;
  --sfv-border: #d6dbe5;
  --sfv-head: #eaf0ff;   /* cabeçalho (dias) */
  --sfv-label: #eef1f5;  /* coluna de rótulos */
  --sfv-ring: rgba(37,99,235,.35);
  --sfv-deepblue:#1e3a8a; /* azul-escuro do Reset */

  isolation: isolate;
  color-scheme: light;
  font-family: var(--sfv-font);
  color: var(--sfv-text);

  background: #fff;
  border:1px solid var(--sfv-border);
  border-radius: 12px;
  padding: 16px;
}


.sfv-agenda-title{
 font-size: 25px;
 font-family: var(--sfv-font);
 font-weight: 700;
 color: var(--sfv-text);
 isolation: isolate;
}

/* Reset seguro no escopo */
#sfv-agenda-semanal.sfv-agenda *,
#sfv-agenda-semanal.sfv-agenda *::before,
#sfv-agenda-semanal.sfv-agenda *::after{
  box-sizing: border-box;
  font-family: inherit;
}

/* Badge SOMENTE da Agenda (namespaced) */
#sfv-agenda-semanal .sfv-agenda-badge{
  display:inline-block;
  border-radius: 999px;
  padding: 4px 10px;
  font-size:.9rem;
  font-weight:600;
}
#sfv-agenda-semanal .sfv-agenda-badge.sfv-agenda-badge--on{  background:#22c55e; color:#fff; }
#sfv-agenda-semanal .sfv-agenda-badge.sfv-agenda-badge--off{ background:#ef4444; color:#fff; }

/* ================== MATRIZ ================== */
#sfv-agenda-semanal .sfv-table-wrap{
  width: 100%;
  overflow: visible;
}
#sfv-agenda-semanal .sfv-matrix{
  display: grid;
  grid-template-columns: minmax(160px, 1fr) repeat(7, minmax(110px, 1fr));
  background: #fff;
  border:1px solid var(--sfv-border);
  border-radius:12px;
  overflow: hidden;
}
/*Espaço entre o botão de status e a tabela*/
.sfv-agenda-header{
  margin-bottom: 15px;
}

/* Células */
#sfv-agenda-semanal .cell{
  padding:10px 12px;
  border-right:1px solid var(--sfv-border);
  border-bottom:1px solid var(--sfv-border);
  background:#fff;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--sfv-text);
}
#sfv-agenda-semanal .cell--head{
  background: var(--sfv-head);
  font-weight:700;
  text-align:center;
}
#sfv-agenda-semanal .cell--head.cell--label{
  background: var(--sfv-deepblue);
  color:#fff;
}
#sfv-agenda-semanal .cell--label,
#sfv-agenda-semanal .cell--rowlabel{
  background: var(--sfv-label);
  font-weight:600;
  justify-content:flex-start;
}
#sfv-agenda-semanal .cell--reset{
  background: var(--sfv-deepblue);
  /* alinhar input e botão de reset na mesma linha */
  justify-content: space-between;
  gap: 10px;
}

#sfv-agenda-semanal .cell--reset .sfv-btn-reset-manual{
  margin-left: 12px;          /* ajuste fino do botão */
}

#sfv-agenda-semanal .cell--spacer{
  height:10px;
  background:#fff;
  border-top:2px solid var(--sfv-border);
  border-bottom:2px solid var(--sfv-border);
}

/* Inputs (somente Agenda) */
#sfv-agenda-semanal input[type="time"],
#sfv-agenda-semanal input[type="text"]{
  width: 100%;
  max-width: 110px;
  height: 36px;
  padding: 0 10px;
  padding-right: 44px;                 /* reserva para o ícone */
  border: 1px solid var(--sfv-border);
  border-radius: 10px;
  background: #fff;
  color: var(--sfv-text);
  line-height:1.3;
  outline: none;
}
#sfv-agenda-semanal input[type="time"]::-webkit-datetime-edit,
#sfv-agenda-semanal input[type="time"]::-webkit-datetime-edit-text,
#sfv-agenda-semanal input[type="time"]::-webkit-datetime-edit-hour-field,
#sfv-agenda-semanal input[type="time"]::-webkit-datetime-edit-minute-field{
  color: var(--sfv-text);
}

#sfv-agenda-semanal input[type="time"]::-webkit-calendar-picker-indicator{ 
  opacity:.9;
 }

/* Input de hora no Reset */
#sfv-agenda-semanal .cell--reset input[type="time"]{
  background: #fff;
  color:#0f172a;
  border-color: rgba(255,255,255,.35);
  max-width:140px;
  border-radius: 10px;
}
#sfv-agenda-semanal .cell--reset input[type="time"]::-webkit-calendar-picker-indicator{
  filter: none;
  opacity: .9;
}

/* ===== Botão Reset Manual (compacto) ===== */
#sfv-agenda-semanal .sfv-btn-reset-manual{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:36px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.45);
  background:#ffdc18;
  color: var(--sfv-deepblue);
  font-weight:700;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}
#sfv-agenda-semanal .sfv-btn-reset-manual:hover{ filter:brightness(1.02); }
#sfv-agenda-semanal .sfv-btn-reset-manual:active{ transform: translateY(0.5px); }
#sfv-agenda-semanal .sfv-btn-reset-manual[disabled]{ opacity:.6; cursor:not-allowed; }
#sfv-agenda-semanal .sfv-btn-reset-manual svg{
  display:block;
  width:16px; height:16px;
  pointer-events:none;
}

/* Focus ring */
#sfv-agenda-semanal :where(input,button):focus-visible{
  outline:2px solid transparent;
  box-shadow: 0 0 0 3px var(--sfv-ring);
}

/* Toggle Aberto/Fechado */
#sfv-agenda-semanal .sfv-toggle{
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 36px;
  border-radius: 18px;
  font-weight: 700;
  border: 1px solid transparent;
  cursor: pointer;
  user-select: none;
  text-align:center;
}
#sfv-agenda-semanal .sfv-toggle.is-on{
  background:#22c55e !important;
  color:#fff !important;
  border-color:#16a34a !important;
}
#sfv-agenda-semanal .sfv-toggle.is-off{
  background:#ef4444 !important;
  color:#fff !important;
  border-color:#b91c1c !important;
}

/* Checkbox oculto (compatibilidade JS) */
#sfv-agenda-semanal .sfv-hidden-toggle{
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
}

/* ===== Botões: AGENDA e CARDS (escopo explícito) ===== */

/* Ações globais (somente Agenda) */
#sfv-agenda-semanal .sfv-actions{ margin-top: 12px; }

/* Botão “Salvar Agenda” (custom, não é .btn do Bootstrap) */
#sfv-agenda-semanal .sfv-btn-primary{
  background:#2563eb; color:#fff; border:none; border-radius:10px;
  padding:10px 16px; font-weight:600; cursor:pointer;
}
#sfv-agenda-semanal .sfv-btn-primary:hover{ filter: brightness(1.05); }

/* Botões dos Cartões de Controle (topo) — classe própria */
.sfv-cards{
  background:#fff !important;
  color:#0f172a !important;
  border:1px solid #DFE6EE !important;
  box-shadow:0 10px 30px rgba(2,6,23,.18) !important;
  border-radius: 12px;
  padding: .72rem .9rem;
  margin-bottom: 20px;
}

#sfv-admin-cards .sfv-card-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 12px; border-radius:12px;
  font-weight:600; line-height:1.2;
  gap:6px;  
  margin-top: 5px;
  margin-bottom: 30px;
}

/* ================== RESPONSIVO ================== */
@media (max-width: 980px){
  #sfv-agenda-semanal .sfv-table-wrap{
    width:auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--sfv-border);
    border-radius: 12px;
    background: #fff;
  }
  #sfv-agenda-semanal .sfv-matrix{
    border: 0;
    min-width: 980px;
    width: max-content;
  }
  #sfv-agenda-semanal .cell--label,
  #sfv-agenda-semanal .cell--rowlabel{
    position: sticky;
    left: 0;
    z-index: 2;
  }
  #sfv-agenda-semanal .cell--head.cell--label{ z-index: 3; }
}

/* Ajustes mobile – (vale para todas as larguras; aqui só corrigimos o espaçamento do ícone) */
#sfv-agenda-semanal input[type="time"]{ padding-right: 20px !important; }             /* <= ajustado */
#sfv-agenda-semanal input[type="time"]::-webkit-calendar-picker-indicator{ 
  margin-right: -10px !important; }  /* <= ajustado */

/* ≤900px: cards verticais — reforço de prioridade para vencer o tema */
@media (max-width: 900px){
  #sfv-agenda-semanal .sfv-table-wrap{
    display:block !important;
    overflow:visible !important;
    border:0; border-radius:0; background:transparent;
  }

  #sfv-agenda-semanal .sfv-matrix{
    display:grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-rows:min-content;
    gap:0;
    min-width:initial !important;
    width:100% !important;
    border:1px solid var(--sfv-border);
    border-radius:12px;
    overflow:visible !important;
    background:#ffffff;
  }

  #sfv-agenda-semanal .sfv-matrix .cell--rowlabel,
  #sfv-agenda-semanal .sfv-matrix .cell--spacer{
    display:none !important;
  }

  #sfv-agenda-semanal .sfv-matrix .cell--head.cell--label{
    display:flex !important;
    grid-column:1 !important;
    align-items:center; justify-content:flex-start;
    padding:14px 16px;
    margin-top:14px;
    background:var(--sfv-deepblue); color:#fff;
    border:1px solid var(--sfv-border);
    border-radius:12px 12px 0 0;
  }

  .sfv-reset-title{
    column-gap: 15px;
  }

  #sfv-agenda-semanal .sfv-matrix .cell--reset{
    grid-column: 1 / -1 !important;
    display:grid !important;
    grid-template-columns: 1fr auto !important; 
    align-items:center;
    gap:12px;
    padding:12px 16px;
    background:var(--sfv-deepblue); color:#fff;
    border:1px solid var(--sfv-border);
    border-top:0;
    border-radius:0 0 12px 12px;
    margin-bottom:10px;
  }
  #sfv-agenda-semanal .sfv-matrix .cell--reset[data-row="reset"]::before{
    content:"Horário";
    display:block;
    padding:12px 14px;
    font-weight:600;
    font-size:14px;
    line-height:1.2;
    color:#0f172a;
    background:var(--sfv-label);
    border-right:1px solid var(--sfv-border);
    border-radius:10px;
  }
  #sfv-agenda-semanal .sfv-matrix .cell--reset input[type="time"]{
    height:auto;
    padding:12px 14px;
    padding-right:34px;
    background:#fff; color:#0f172a;
    border:1px solid var(--sfv-border);
    border-radius:10px;
    max-width:140px;
  }
  #sfv-agenda-semanal .sfv-matrix .cell--reset input[type="time"]::-webkit-calendar-picker-indicator{
    margin-right:8px; opacity:.9;
  }

  #sfv-agenda-semanal .sfv-matrix .cell--head:not(.cell--label){
    grid-column:1 !important;
    display:flex !important; align-items:center; justify-content:center;
    padding:14px 16px;
    background: var(--sfv-head);
    border:1px solid var(--sfv-border);
    border-radius: 12px 12px 0 0;
    margin-top:14px;
  }

  #sfv-agenda-semanal .sfv-matrix .cell[data-row="status"]{
    grid-column:1 !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
    padding:14px 16px;
    border-left:1px solid var(--sfv-border);
    border-right:1px solid var(--sfv-border);
    border-bottom:1px solid var(--sfv-border);
    background:#fff;
    min-height:56px;
  }
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="status"]::before{ content:none !important; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="status"] .sfv-toggle{
    width:160px; min-height:44px; border-radius:999px; font-weight:700;
  }

  /* linhas de horário viram grid label+input */
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="start"],
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="end"],
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="sstart"],
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="send"]{
    grid-column:1 !important;
    display:grid !important;
    grid-template-columns: 1fr auto !important;
    align-items:center;
    gap:12px;
    padding:0;
    border-left:1px solid var(--sfv-border);
    border-right:1px solid var(--sfv-border);
    border-bottom:1px solid var(--sfv-border);
    background:transparent;
    min-height:56px;
  }

  /* rótulos dos cards */
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="start"]::before{
    content:"Início Fila Virtual";
    display:block; padding:12px 14px; font-weight:600;
    background: var(--sfv-label); color: var(--sfv-text);
    border-right:1px solid var(--sfv-border);
  }
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="end"]::before{
    content:"Fim Fila Virtual";
    display:block; padding:12px 14px; font-weight:600;
    background: var(--sfv-label); color: var(--sfv-text);
    border-right:1px solid var(--sfv-border);
  }
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="sstart"]::before{
    content:"Início Atendimento";
    display:block; padding:12px 14px; font-weight:600;
    background: var(--sfv-label); color: var(--sfv-text);
    border-right:1px solid var(--sfv-border);
  }
  #sfv-agenda-semanal .sfv-matrix .cell[data-row="send"]::before{
    content:"Fim Atendimento";
    display:block; padding:12px 14px; font-weight:600;
    background: var(--sfv-label); color: var(--sfv-text);
    border-right:1px solid var(--sfv-border);
  }

  #sfv-agenda-semanal .sfv-matrix .cell[data-row] > *{
    padding:12px 16px;
    background:#fff;
    display:inline-flex; align-items:center; justify-content:center;
    border-radius:10px;
  }

  #sfv-agenda-semanal .sfv-matrix .cell[data-row="send"]{
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    margin-bottom: 4px;
  }

  /* ordem dos blocos */
  #sfv-agenda-semanal .sfv-matrix .cell--head.cell--label { grid-row: 1; }
  #sfv-agenda-semanal .sfv-matrix .cell--reset         { grid-row: 2; }

  #sfv-agenda-semanal .sfv-matrix .cell--head[data-col="sun"] { grid-row: 4; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sun"][data-row="status"] { grid-row: 5; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sun"][data-row="start"]  { grid-row: 6; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sun"][data-row="end"]    { grid-row: 7; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sun"][data-row="sstart"] { grid-row: 8; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sun"][data-row="send"]   { grid-row: 9; }

  #sfv-agenda-semanal .sfv-matrix .cell--head[data-col="mon"] { grid-row: 11; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="mon"][data-row="status"] { grid-row: 12; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="mon"][data-row="start"]  { grid-row: 13; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="mon"][data-row="end"]    { grid-row: 14; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="mon"][data-row="sstart"] { grid-row: 15; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="mon"][data-row="send"]   { grid-row: 16; }

  #sfv-agenda-semanal .sfv-matrix .cell--head[data-col="tue"] { grid-row: 18; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="tue"][data-row="status"] { grid-row: 19; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="tue"][data-row="start"]  { grid-row: 20; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="tue"][data-row="end"]    { grid-row: 21; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="tue"][data-row="sstart"] { grid-row: 22; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="tue"][data-row="send"]   { grid-row: 23; }

  #sfv-agenda-semanal .sfv-matrix .cell--head[data-col="wed"] { grid-row: 25; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="wed"][data-row="status"] { grid-row: 26; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="wed"][data-row="start"]  { grid-row: 27; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="wed"][data-row="end"]    { grid-row: 28; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="wed"][data-row="sstart"] { grid-row: 29; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="wed"][data-row="send"]   { grid-row: 30; }

  #sfv-agenda-semanal .sfv-matrix .cell--head[data-col="thu"] { grid-row: 32; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="thu"][data-row="status"] { grid-row: 33; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="thu"][data-row="start"]  { grid-row: 34; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="thu"][data-row="end"]    { grid-row: 35; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="thu"][data-row="sstart"] { grid-row: 36; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="thu"][data-row="send"]   { grid-row: 37; }

  #sfv-agenda-semanal .sfv-matrix .cell--head[data-col="fri"] { grid-row: 39; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="fri"][data-row="status"] { grid-row: 40; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="fri"][data-row="start"]  { grid-row: 41; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="fri"][data-row="end"]    { grid-row: 42; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="fri"][data-row="sstart"] { grid-row: 43; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="fri"][data-row="send"]   { grid-row: 44; }

  #sfv-agenda-semanal .sfv-matrix .cell--head[data-col="sat"] { grid-row: 46; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sat"][data-row="status"] { grid-row: 47; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sat"][data-row="start"]  { grid-row: 48; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sat"][data-row="end"]    { grid-row: 49; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sat"][data-row="sstart"] { grid-row: 50; }
  #sfv-agenda-semanal .sfv-matrix .cell[data-col="sat"][data-row="send"]   { grid-row: 51; }
}

/* ≤640px: compactar botão Reset (mostrar só ícone) */
@media (max-width: 640px){
  #sfv-agenda-semanal .sfv-btn-reset-manual span{ display:none; }
  #sfv-agenda-semanal .sfv-btn-reset-manual{ padding:0 10px; }
}

/* ≤420px: reduzir controles */
@media (max-width: 420px){
  #sfv-agenda-semanal input[type="time"],
  #sfv-agenda-semanal input[type="text"]{
    max-width: 96px;
    height: 34px;
    font-size: 14px;
  }
  #sfv-agenda-semanal .sfv-toggle{
    min-height: 34px;
    font-size: 14px;
  }
}

/* ===== (LEGADO) .sfv-grid — escopado ===== */
#sfv-agenda-semanal .sfv-grid{
  display: grid;
  grid-template-columns: 150px 120px 90px 120px 120px 140px 140px;
  gap: 10px 12px;
  align-items: center;
}
#sfv-agenda-semanal .sfv-grid .sfv-head,
#sfv-agenda-semanal .sfv-grid .sfv-row{ display: contents; }
#sfv-agenda-semanal .sfv-grid .sfv-head > div{
  font-weight: 600;
  color: var(--sfv-text);
  padding-bottom: 6px;
  border-bottom: 1px solid var(--sfv-border);
}
#sfv-agenda-semanal .sfv-grid input[type="time"],
#sfv-agenda-semanal .sfv-grid input[type="text"]{
  width: 100%;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--sfv-border);
  border-radius: 8px;
  background: #fff;
  color: var(--sfv-text);
}
#sfv-agenda-semanal .sfv-grid input[type="checkbox"]{
  opacity:0; width:1px; height:1px; pointer-events:none;
}
@media (max-width: 1080px){
  #sfv-agenda-semanal .sfv-grid{
    grid-template-columns: 120px 110px 70px 110px 110px 120px 120px;
    gap: 8px 10px;
  }
}
@media (max-width: 820px){
  #sfv-agenda-semanal .sfv-grid{
    grid-template-columns: 1fr 110px 0px 1fr 1fr 1fr 1fr;
  }
  #sfv-agenda-semanal .sfv-grid > *:nth-child(3),
  #sfv-agenda-semanal .sfv-grid .sfv-row > *:nth-child(3),
  #sfv-agenda-semanal .sfv-grid .sfv-head > *:nth-child(3){ display:none; }
}

/* ================== GUARDA-CORPOS PARA OS CARDS ================== */
/* Se algum CSS global alterar .btn, garantimos que os cards fiquem como esperado */
#sfv-admin-cards .sfv-card-btn.btn{
  /* força o tamanho apenas nos botões dos cards, sem afetar DataTables */
  padding: 8px 12px !important;
  line-height: 1.2 !important;
  border-radius: 12px !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
#sfv-admin-cards .sfv-card-btn.btn:hover{ filter:brightness(1.05); }