/* Shared company calendar (rtb-calendar.js). */
.rtb-cal { margin: 0 var(--space-4); padding: var(--space-3); background: var(--app-surface); border: 1px solid var(--app-border); border-radius: var(--radius-md); }
.rtb-cal-nav { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.rtb-cal-nav b { flex: 1; text-align: center; font-size: var(--text-md); }
.rtb-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.rtb-cal-head { padding-bottom: 4px; font-size: var(--text-xs); font-weight: 650; text-align: center; text-transform: uppercase; color: var(--app-text-muted); }
.rtb-cal-cell { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; min-height: 56px; padding: 4px 2px; font: inherit; color: var(--app-text-primary); background: transparent; border: 0; border-radius: 8px; cursor: pointer; }
.rtb-cal-cell.is-blank { cursor: default; }
.rtb-cal-cell:hover:not(.is-blank) { background: var(--app-surface-2); }
.rtb-cal-cell.is-selected { background: var(--app-accent-soft); }
.rtb-cal-num { display: grid; place-items: center; width: 26px; height: 26px; font-size: var(--text-sm); font-variant-numeric: tabular-nums; border-radius: 50%; }
.rtb-cal-cell.is-selected .rtb-cal-num { font-weight: 700; color: var(--app-accent); }
.rtb-cal-cell.is-today .rtb-cal-num { font-weight: 700; color: #fff; background: var(--app-accent); }
.rtb-cal-dots { display: flex; gap: 3px; height: 8px; }
.rtb-cal-dots i, .rtb-cal-legend i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; }
.rtb-cal-chips { display: none; width: 100%; }
.rtb-cal-chip { display: block; margin-top: 2px; padding: 1px 4px; overflow: hidden; font-size: 11px; font-weight: 600; text-align: left; white-space: nowrap; text-overflow: ellipsis; background: color-mix(in srgb, var(--c) 18%, transparent); border-left: 2px solid var(--c); border-radius: 3px; }
.rtb-cal-more { display: block; font-size: 11px; text-align: left; color: var(--app-text-muted); }
/* Wide screens have room for titles; phones keep the dots. */
@media (min-width: 760px) {
  .rtb-cal-cell { align-items: stretch; min-height: 96px; }
  .rtb-cal-num { align-self: center; }
  .rtb-cal-dots { display: none; }
  .rtb-cal-chips { display: block; }
}
.rtb-cal-row { grid-template-columns: 4px minmax(0, 1fr) auto; }
div.rtb-cal-row { grid-template-columns: 4px auto minmax(0, 1fr) auto; }
div.rtb-cal-row[draggable="true"] { cursor: grab; }
.rtb-cal-move { gap: 2px; white-space: nowrap; }
.rtb-cal-move .rtb-ic { width: 14px; height: 14px; }
.rtb-cal-cell.is-drop { outline: 2px dashed var(--app-accent); outline-offset: -2px; background: color-mix(in srgb, var(--app-accent) 10%, transparent); }
.rtb-cal-open { align-self: stretch; display: flex; flex-direction: column; justify-content: center; margin: calc(-1 * var(--space-3)) 0; padding: var(--space-3) 0; font: inherit; color: inherit; text-align: left; background: none; border: 0; cursor: pointer; }
.rtb-cal-open:hover { background: var(--app-surface-2); }
.rtb-cal-open:focus-visible { outline: 3px solid color-mix(in srgb, var(--app-accent) 35%, white); outline-offset: -3px; }
.rtb-row.is-done .rtb-cal-stripe, .rtb-cal-chip.is-done, .rtb-cal-dots i.is-done { opacity: 0.4; }
.rtb-cal-chip.is-done { text-decoration: line-through; }
.rtb-cal-stripe { align-self: stretch; width: 4px; min-height: 32px; background: var(--c); border-radius: 2px; }
.rtb-cal-notes { white-space: pre-line; }
.rtb-cal-by { opacity: 0.75; }
.rtb-cal-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); padding: var(--space-4) var(--space-4) 0; font-size: var(--text-xs); color: var(--app-text-muted); }
.rtb-cal-legend i { margin-right: 5px; width: 8px; height: 8px; }
.rtb-cal-delete { margin-right: auto; color: var(--app-danger); }
