/* ---------- Calendario ---------- */
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.cal-nav{display:flex;align-items:center;gap:4px;}
.cal-month{font-size:17px;font-weight:600;margin:0 10px;min-width:170px;letter-spacing:-0.02em;}
.cal-arrow{width:30px;height:30px;padding:0;border-radius:var(--r-md);}
.cal-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.cal-actions .dd{width:200px;}
.cal-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-faint);margin-bottom:10px;}
.cal-legend span{display:inline-flex;align-items:center;gap:6px;}
.cal-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;box-shadow:none !important;}
.cal-legend span:nth-child(1) i{background:var(--meet) !important;}
.cal-legend span:nth-child(2) i{background:var(--st-pend) !important;}
.cal-legend span:nth-child(3) i{background:var(--danger) !important;}
.cal-legend span:last-child{margin-left:auto;}
.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start;}
@media (max-width:1100px){ .cal-layout{grid-template-columns:1fr;} .cal-legend span:last-child{margin-left:0;} }
.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.cal-weekdays span{font-size:11.5px;font-weight:500;color:var(--ink-faint);padding:0 8px 6px;}
.cal-grid{
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  overflow:hidden;
}
.cal-cell{
  background:var(--surface);
  min-height:108px;
  padding:6px;
  display:flex;
  flex-direction:column;
  gap:3px;
  cursor:pointer;
  min-width:0;
  transition:background .1s ease;
}
.cal-cell:hover{background:var(--surface-2);background:color-mix(in srgb, var(--surface-2) 55%, var(--surface));}
.cal-cell:focus-visible{outline:2px solid var(--accent-solid);outline-offset:-2px;}
.cal-cell.is-other{background:var(--surface-2);background:color-mix(in srgb, var(--surface-2) 45%, var(--surface));}
.cal-cell.is-other .cal-num{color:var(--ink-faint);}
.cal-cell.is-selected{box-shadow:inset 0 0 0 1.5px var(--accent-solid);}
.cal-cell.drag-over{background:var(--surface);background:color-mix(in srgb, var(--accent-solid) 7%, var(--surface));}
.cal-num{
  font-size:12px;
  font-weight:500;
  color:var(--ink-soft);
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:6px;
  font-variant-numeric:tabular-nums;
  flex:none;
}
.cal-cell.is-today .cal-num{background:var(--accent-solid);color:var(--accent-ink);font-weight:600;}
.cal-items{display:flex;flex-direction:column;gap:2px;min-width:0;}
.cal-chip{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:11.5px;
  line-height:1.3;
  font-weight:500;
  height:20px;
  padding:0 6px 0 5px;
  border-radius:var(--r-sm);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  background:var(--surface-2);
  color:var(--ink);
  cursor:pointer;
}
.cal-chip::before{content:"";width:6px;height:6px;border-radius:50%;flex:none;background:var(--c, var(--st-pend));}
.cal-chip:hover{background:var(--surface-3);}
.cal-chip.is-meeting{background:var(--meet-bg);color:var(--meet);}
.cal-chip.is-meeting::before{background:var(--meet);}
.cal-chip.is-meeting b{font-weight:600;font-variant-numeric:tabular-nums;}
.cal-chip.is-overdue{background:var(--danger-bg);color:var(--danger);}
.cal-chip.is-overdue::before{background:var(--danger);}
.cal-chip.is-done{text-decoration:line-through;color:var(--ink-faint);}
.cal-chip.dragging{opacity:0.4;}
.cal-more{font-size:11px;font-weight:500;color:var(--ink-faint);padding-left:5px;}
.cal-dots{display:none;gap:3px;flex-wrap:wrap;padding-left:2px;}
.cal-dot{width:5px;height:5px;border-radius:50%;display:block;background:var(--st-pend);}
.cal-dot.is-meeting{background:var(--meet);}
.cal-dot.is-overdue{background:var(--danger);}
@media (max-width:640px){
  .cal-cell{min-height:52px;padding:4px;align-items:center;}
  .cal-items{display:none;}
  .cal-dots{display:flex;justify-content:center;}
  .cal-month{font-size:16px;min-width:0;}
  .cal-weekdays span{padding:0 0 6px;text-align:center;}
  .cal-actions .dd{flex:1;width:auto;}
}

/* Agenda del día */
.cal-day{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  padding:16px;
}
.cal-day-kicker{
  display:inline-block;
  font-size:11.5px;
  font-weight:500;
  color:var(--accent);
  margin:0 0 2px;
}
.cal-day-kicker.is-muted{color:var(--ink-faint);}
.cal-day h3{font-size:16px;font-weight:600;margin:0 0 12px;text-wrap:balance;}
.cal-day-actions{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap;}
.cal-day-label{font-size:12px;font-weight:500;color:var(--ink-faint);margin:16px 0 6px;}
.cal-empty{font-size:13px;color:var(--ink-faint);margin:14px 0 2px;}
.agenda-item{
  --bar:var(--st-pend);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:1px 10px;
  padding:8px 10px;
  border-radius:var(--r-md);
  margin:0 -10px 1px;
  cursor:pointer;
  transition:background .1s ease;
}
.agenda-item:hover{background:var(--hover);}
.agenda-item.is-meeting{--bar:var(--meet);}
.agenda-item.is-overdue{--bar:var(--danger);}
.agenda-item.is-done{--bar:var(--st-done);}
.agenda-item > .agenda-time{grid-column:1;grid-row:1;}
.agenda-item > a{grid-column:2;grid-row:1 / span 2;align-self:center;}
.agenda-item > .agenda-main{grid-column:1;grid-row:2;}
.agenda-time{
  white-space:nowrap;
  font-size:11.5px;
  font-weight:500;
  color:var(--ink-faint);
  font-variant-numeric:tabular-nums;
  display:flex;
  align-items:center;
  gap:6px;
}
.agenda-time::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bar);flex:none;}
.agenda-time .dot{display:none;}
.agenda-item.is-meeting .agenda-time{color:var(--meet);}
.agenda-item.is-overdue .agenda-time{color:var(--danger);}
.agenda-main{min-width:0;padding-left:12px;}
.agenda-title{font-size:13.5px;font-weight:500;line-height:1.35;overflow-wrap:anywhere;}
.agenda-item.is-done .agenda-title{text-decoration:line-through;color:var(--ink-faint);}
.agenda-meta{font-size:12px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Vista de semana y de día */
.cal-actions .segmented{flex:none;}
.cal-grid.is-week .cal-cell{min-height:320px;}
#viewCalendar.cal-mode-day #calGridWrap{display:none;}
#viewCalendar.cal-mode-day .cal-layout{grid-template-columns:minmax(0,1fr);}
#viewCalendar.cal-mode-day .cal-day{max-width:760px;}
#viewCalendar.cal-mode-day .cal-hint{display:none;}
@media (max-width:640px){
  .cal-grid.is-week{grid-template-columns:1fr;}
  #viewCalendar.cal-mode-week .cal-weekdays{display:none;}
  .cal-grid.is-week .cal-cell{min-height:0;align-items:stretch;padding:10px 12px;}
  .cal-grid.is-week .cal-items{display:flex;}
  .cal-grid.is-week .cal-dots{display:none;}
  .cal-grid.is-week .cal-cell .cal-num{align-self:flex-start;}
}
.cal-wd{display:none;}
@media (max-width:640px){
  .cal-grid.is-week .cal-cell{position:relative;}
  .cal-grid.is-week .cal-wd{display:block;position:absolute;top:12px;left:46px;font-size:12.5px;color:var(--ink-soft);}
}
