/* Adapt to the card itself, not the viewport. All content lives in normal
   grid/flex flow; time and avatars never float over a title. */
.event-card {
  position: absolute;
  top: calc(var(--start) * var(--hour) + 2px);
  height: calc(var(--duration) * var(--hour) - 4px);
  left: calc(var(--lane, 0) * 100% / var(--lanes, 1) + 3px);
  width: calc(100% / var(--lanes, 1) - 6px);
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 1px solid var(--edge);
  border-radius: clamp(4px, calc(10px / var(--lanes, 1)), 8px);
  background: var(--wash);
  color: var(--card-foreground, var(--card-ink, var(--ink)));
  text-align: left;
  overflow: hidden;
  z-index: 3;
  container: event / size;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  touch-action: pan-y;
  cursor: grab;
  transition: border-color .18s, box-shadow .18s, opacity .18s;
}
.event-layout {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) 26px;
  gap: 5px 9px;
  width: 100%;
  height: 100%;
  padding: 7px;
  align-items: start;
}
.event-layout > .event-icon { width: 32px; height: 32px; }
.event-copy { display: flex; flex-direction: column; gap: 4px; min-width: 0; max-height: 100%; overflow: hidden; }
.event-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
  flex-shrink: 0;
}
.event-time { display: flex; flex-wrap: nowrap; column-gap: 1px; min-width:0; white-space:nowrap; font-size: 10px; line-height: 1.2; font-variant-numeric: tabular-nums; flex-shrink: 0; }
.event-time > span { white-space: nowrap; }
.event-owner { grid-column: 1 / -1; grid-row: 2; display:flex; align-items:center; justify-content:flex-end; gap:6px; min-width:0; align-self:end; color:var(--card-secondary,var(--card-muted,var(--muted))); }
.event-avatars { display:flex; flex:none; align-items:center; }
.event-avatars .avatar { width:26px; height:26px; font-size:11px; border:2px solid var(--wash); }
.event-avatars .avatar + .avatar { margin-left:-8px; }
.event-avatars .avatar-more { display:grid;place-items:center;background:var(--surface);color:var(--ink);font-size:9px;font-weight:700; }
.event-owner-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; line-height:1.1; }
.event-card:hover { border-color: var(--tone); box-shadow: 0 3px 9px #21345c10; z-index: 5; }
.event-card.done { opacity: .65; }
.event-card.done .event-title { text-decoration: line-through; color: var(--card-secondary,var(--card-muted,var(--muted))); }
.event-card.pressing { animation: press-charge 1s ease-out; box-shadow: 0 0 0 3px #377fd420; }
.event-card.drag-source { opacity: .2; box-shadow: none; }
.event-card.drag-ghost {
  position: fixed; left: 0; top: 0; margin: 0; z-index: 200;
  pointer-events: none; opacity: .98; border-color: var(--tone);
  box-shadow: 0 15px 32px #283b562c, 0 3px 8px #283b5612;
  transform-origin: 50% 25%; will-change: transform;
  transition: none; animation: none; cursor: grabbing;
}
.first-load .event-card { animation: appear .45s var(--ease) both; animation-delay: calc(var(--index, 0) * 18ms); }
.event-card.landing { animation: land .4s var(--ease); }
.overlap-deck-card{z-index:calc(7 + var(--deck-order));box-shadow:0 8px 22px #253c611b;transition:border-color .18s,box-shadow .18s,opacity .18s,transform .22s cubic-bezier(.16,1,.3,1)}
.overlap-deck-card:not(.is-active){pointer-events:none;transform:translate(calc(var(--deck-order)*3px),calc(var(--deck-order)*3px));filter:saturate(.9)}
.overlap-deck-card.is-active{z-index:14;overflow:visible;box-shadow:0 12px 28px #253c6130;animation:deck-breathe 3.2s cubic-bezier(.45,0,.55,1) infinite;animation-delay:calc(var(--index)*-90ms)}
.overlap-deck-card.is-active::after{content:attr(data-deck-label);position:absolute;right:2px;bottom:-22px;z-index:2;padding:0;background:none;color:var(--muted);font-size:11px;font-weight:700;line-height:1.2;letter-spacing:0;white-space:nowrap;opacity:0;transform:translateY(-7px);transition:opacity .18s ease,transform .28s cubic-bezier(.16,1,.3,1);box-shadow:none;pointer-events:none}
.overlap-deck-card.is-active:hover,.overlap-deck-card.is-active:focus-visible{z-index:14;animation-play-state:paused;transform:translateY(-4px);box-shadow:0 15px 30px #253c6138}
.overlap-deck-card.is-active:hover::after,.overlap-deck-card.is-active:focus-visible::after{opacity:1;transform:translateY(0)}
.overlap-deck-card.drag-source,.overlap-deck-card.drag-ghost{animation:none}
.overlap-deck-card.drag-ghost::after{display:none}
@keyframes deck-breathe{0%,100%{transform:translateY(-1px)}50%{transform:translateY(-5px)}}
.event-card.schedule-draft{z-index:18;pointer-events:none;box-shadow:0 12px 30px #253c6128}
.event-card.schedule-draft.inserted{border-style:dashed;border-color:var(--blue);animation:conflict-arrive .3s cubic-bezier(.16,1,.3,1)}
.event-card.schedule-draft.remainder{filter:none;opacity:1;box-shadow:inset 0 0 0 1px #ffffffb8}
@keyframes conflict-arrive{from{opacity:.55;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.event-card.drag-conflict-source{opacity:.12!important;box-shadow:none!important}
.drag-split-fragment{position:absolute;top:calc(var(--start)*var(--hour) + 2px);height:calc(var(--duration)*var(--hour) - 4px);left:3px;right:3px;z-index:16;display:flex;flex-direction:column;justify-content:center;min-height:8px;padding:6px 8px;border:1px solid var(--edge);border-radius:8px;background:var(--wash);color:var(--card-foreground,var(--card-ink,var(--ink)));opacity:1;filter:none;pointer-events:none;overflow:hidden;box-shadow:0 8px 20px #253c611f;animation:split-preview-in .22s cubic-bezier(.16,1,.3,1)}.drag-split-fragment strong,.drag-split-fragment small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drag-split-fragment strong{font-size:11px}.drag-split-fragment small{margin-top:2px;color:var(--card-secondary,var(--card-muted,var(--muted)));font-size:9px;font-variant-numeric:tabular-nums}@keyframes split-preview-in{from{transform:scaleY(.96)}to{transform:scaleY(1)}}
@media(hover:none),(pointer:coarse){.overlap-deck-card.is-active::after{content:attr(data-deck-label)}}

/* Short events retain title + time. Avatars yield their space first. */
@container event (height < 82px) {
  .event-layout { grid-template-rows: minmax(0, 1fr); grid-template-columns:26px minmax(0,1fr); gap: 0 7px; padding: 5px 6px; }
  .event-layout > .event-icon { width:26px; height:26px; }
  .event-owner { display:none; }
  .event-title { -webkit-line-clamp: 1; }
  .event-copy { gap: 3px; }
}
@container event (height < 38px) {
  .event-layout { align-items: center; padding: 2px 5px; grid-template-columns: 16px minmax(0, 1fr); }
  .event-layout > .event-icon { width: 16px; height: 16px; }
  .event-time { display: none; }
  .event-title { font-size: 11px; line-height: 1.15; }
}
@container event (height >= 38px) and (height < 82px) and (width > 140px) {
  .event-layout { grid-template-columns:26px minmax(0,1fr) auto; grid-template-rows:minmax(0,1fr) 20px; column-gap:7px; row-gap:1px; align-items:center; }
  .event-layout > .event-icon { grid-column:1; grid-row:1 / 3; align-self:center; }
  .event-copy { display:contents; }
  .event-title { grid-column:2 / 4; grid-row:1; align-self:end; -webkit-line-clamp:2; line-height:1.15; }
  .event-time { grid-column:2; grid-row:2; align-self:center; }
  .event-reminder-badge { display:none; }
  .event-owner { display:flex; grid-column:3; grid-row:2; align-self:center; max-width:52px; gap:0; }
  .event-avatars { display:flex; }
  .event-avatars .avatar { width:20px; height:20px; }
  .event-avatars .avatar + .avatar { margin-left:-7px; }
  .event-owner-name { display:none; }
}
@container event (height < 18px) {
  .event-layout { grid-template-columns: minmax(0, 1fr); padding: 0 3px; }
  .event-layout > .event-icon { display: none; }
  .event-title { font-size: 10px; line-height: 10px; }
}
/* Overlapping events can be narrow even on a very wide screen. */
@container event (width < 88px) {
  .event-layout { grid-template-columns: minmax(0, 1fr); padding-inline: 5px; }
  .event-layout > .event-icon { display: none; }
  .event-title { font-size: 11px; }
  .event-time { font-size: 10px; }
  .event-owner-name { display:none; }
}
@container event (height >= 38px) and (height < 82px) and (width <= 140px) {
  .event-owner { display:none; }
}
@container event (width < 65px) and (height < 82px) {
  .event-time .time-end { display: none; }
}
@container event (width < 36px) {
  .event-layout { padding-inline: 2px; }
  .event-time { display: none; }
  .event-owner { display:none; }
}
@container event (width > 160px) and (height > 60px) {
  .event-title { font-size: 14px; }
  .event-time { font-size: 11px; }
}

@media (max-width: 760px) {
  .agenda .event-card {
    position: relative; left: auto; top: auto; width: 100%;
    height: 64px; min-height: 64px; border-radius: 6px;
  }
}
/* This class travels with a touch drag clone too. */
.card-agenda .event-layout { padding: 8px 10px; grid-template-columns: 32px minmax(0, 1fr) auto; grid-template-rows: minmax(0, 1fr); column-gap: 11px; align-items: center; }
.card-agenda .event-layout > .event-icon { display: block; width: 32px; height: 32px; }
.card-agenda .event-title { font-size: 14px; -webkit-line-clamp: 1; }
.card-agenda .event-time { display: flex; font-size: 12px; }
.card-agenda .event-copy { gap: 4px; }
.card-agenda .event-owner { grid-column:3; grid-row:1; display:flex; align-self:center; max-width:132px; }
.card-agenda .event-avatars { display:flex; }
.card-agenda .event-avatars .avatar { width:28px; height:28px; font-size:11px; }
.card-agenda .event-owner-name { display:block; font-size:11px; }
.card-agenda .event-time .time-end { display: inline; }
@media (prefers-reduced-motion: reduce) {
  .event-card, .event-card.drag-ghost, .first-load .event-card, .event-card.landing, .overlap-deck-card, .overlap-stack-summary, .overlap-stack-card, .overlap-stack-more { animation: none; transition: none; will-change: auto; }
}
.event-symbol{display:block;max-width:none;object-fit:contain;flex:none;pointer-events:none;user-select:none;-webkit-user-drag:none}
.overlap-stack{position:absolute;top:calc(var(--start)*var(--hour) + 2px);height:calc(var(--duration)*var(--hour) - 4px);left:3px;right:3px;z-index:4;min-height:28px;isolation:isolate}.overlap-stack-summary{position:absolute;inset:0;z-index:12;display:grid;grid-template-columns:32px minmax(0,1fr) 16px;align-items:center;gap:8px;width:100%;padding:6px 7px;border:1px solid var(--blue-edge);border-radius:9px;background:var(--surface);box-shadow:3px 3px 0 var(--green-edge),6px 6px 0 var(--coral-edge),0 7px 18px #253c6118;text-align:left;overflow:hidden;transition:opacity .16s ease,transform .22s cubic-bezier(.16,1,.3,1),box-shadow .18s}.overlap-stack-summary:hover{border-color:var(--blue)}.overlap-cluster-count{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--blue);color:#fff;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}.overlap-cluster-copy{display:flex;flex-direction:column;min-width:0;gap:2px}.overlap-cluster-copy strong,.overlap-cluster-copy span,.overlap-cluster-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlap-cluster-copy strong{font-size:11px;line-height:1.15}.overlap-cluster-copy span{color:var(--muted);font-size:10px;line-height:1.15}.overlap-cluster-copy small{color:var(--blue);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.overlap-stack-summary>.icon{width:15px;height:15px;color:var(--blue)}
.overlap-stack-card,.overlap-stack-more{position:absolute;left:0;top:0;z-index:calc(15 + var(--stack-i));width:100%;height:72px;padding:8px 9px;border:1px solid var(--edge);border-radius:10px;background:var(--wash);color:var(--card-foreground,var(--card-ink,var(--ink)));box-shadow:0 10px 25px #253c6129;text-align:left;opacity:.01;pointer-events:none;transform:translate(calc(var(--stack-i)*2px),0) scale(.97);transform-origin:center bottom;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .14s ease,box-shadow .18s,border-color .18s}.overlap-stack-card>span{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;width:100%;height:100%;min-width:0}.overlap-stack-card>span>span{display:flex;flex-direction:column;justify-content:center;min-width:0}.overlap-stack-icon{width:32px!important;height:32px!important}.overlap-stack-card time,.overlap-stack-card strong,.overlap-stack-card small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlap-stack-card time{color:var(--tone);font-size:10px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}.overlap-stack-card strong{font-size:12px;line-height:1.2}.overlap-stack-card small{margin-top:2px;color:var(--card-secondary,var(--card-muted,var(--muted)));font-size:9px;line-height:1.1}.overlap-stack-more{display:flex;flex-direction:column;justify-content:center;background:var(--surface);color:var(--blue)}.overlap-stack-more strong{font-size:13px}.overlap-stack-more small{margin-top:3px;color:var(--muted);font-size:10px}
@media(hover:hover) and (pointer:fine){.overlap-stack:hover,.overlap-stack:focus-within{z-index:30}.overlap-stack:hover .overlap-stack-summary,.overlap-stack:focus-within .overlap-stack-summary{opacity:0;pointer-events:none;transform:translateY(-5px) scale(.97)}.overlap-stack:hover .overlap-stack-card,.overlap-stack:hover .overlap-stack-more,.overlap-stack:focus-within .overlap-stack-card,.overlap-stack:focus-within .overlap-stack-more{opacity:1;pointer-events:auto;transform:translate(calc(var(--stack-i)*2px),var(--stack-y)) scale(1)}.overlap-stack-card:hover,.overlap-stack-card:focus-visible,.overlap-stack-more:hover,.overlap-stack-more:focus-visible{z-index:40;border-color:var(--tone,var(--blue));transform:translate(6px,var(--stack-y)) scale(1.025);box-shadow:0 16px 34px #253c6140}}
.overlap-list{display:grid;gap:8px}.overlap-list-item{display:grid;grid-template-columns:62px 32px minmax(0,1fr) auto 16px;align-items:center;gap:10px;min-width:0;min-height:62px;padding:9px 10px;border:1px solid var(--edge);border-radius:12px;background:var(--wash);color:var(--card-foreground,var(--card-ink,var(--ink)));text-align:left}.overlap-list-item:hover{border-color:var(--tone)}.overlap-list-time{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.overlap-list-time small,.overlap-list-copy small{display:block;margin-top:3px;color:var(--card-secondary,var(--card-muted,var(--muted)));font-size:10px;font-weight:400}.overlap-list-icon{width:32px!important;height:32px!important}.overlap-list-copy{min-width:0}.overlap-list-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.overlap-list-avatars{display:flex}.overlap-list-avatars .avatar{width:27px;height:27px;border:2px solid var(--wash);font-size:10px}.overlap-list-avatars .avatar+.avatar{margin-left:-8px}.overlap-list-item>.icon:last-child{width:15px;height:15px;color:var(--card-secondary,var(--card-muted,var(--muted)))}
.overlap-stack.is-short .overlap-stack-summary{grid-template-columns:23px minmax(0,1fr) 13px;gap:5px;padding:3px 5px}.overlap-stack.is-short .overlap-cluster-count{width:22px;height:22px;border-radius:7px;font-size:11px}.overlap-stack.is-short .overlap-cluster-copy span{display:none}.overlap-stack.is-short .overlap-cluster-copy strong,.overlap-stack.is-short .overlap-cluster-copy small{font-size:9px}
@media(max-width:520px){.overlap-list-item{grid-template-columns:52px 28px minmax(0,1fr) 14px}.overlap-list-avatars{display:none}.overlap-list-icon{width:28px!important;height:28px!important}}
@media(hover:none),(pointer:coarse){.overlap-stack-card,.overlap-stack-more{display:none}.overlap-stack-summary{min-height:44px}}
