/* The shared lane (items owned by both founders, shown once) and one-line task cards. */

.shared-lane {
  margin-bottom: 22px;
  padding: 20px 18px 16px;
  border-radius: var(--radius-board);
  background: linear-gradient(
    180deg,
    color-mix(in oklab, var(--accent-soft) 70%, var(--surface)),
    var(--surface)
  );
  border: 1px solid color-mix(in oklab, var(--accent) 22%, var(--rule));
  box-shadow: var(--shadow-2);
}
.avatar-pair {
  display: inline-flex;
  flex: none;
}
.avatar-pair .avatar + .avatar {
  margin-left: -12px;
  box-shadow: 0 0 0 3px var(--surface);
}
.avatar-pair .avatar:first-child {
  background: var(--accent);
  color: var(--on-accent);
}
.lane-note {
  margin: 4px 0 0;
  font-size: 14px;
  color: var(--ink-3);
}
.lane-board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(270px, 1fr);
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  padding-bottom: 6px;
  scrollbar-width: thin;
}
.lane-col {
  scroll-snap-align: start;
  min-width: 0;
}
.lane-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 2px 0 10px;
  font: 700 16px/1.2 var(--display);
}
.lane-decide .lane-head .bucket-count {
  background: var(--accent);
  color: var(--on-accent);
}
.lane-overdue .lane-head {
  color: var(--bad);
}
.lane-overdue .lane-head .bucket-count {
  background: var(--bad-bg);
  color: var(--bad);
}
.lane-col .task-list {
  margin-bottom: 0;
}

/* One line per task until you point at it or tab to it; then it opens in place. Only where a
   pointer can hover: on a touch screen a tap follows the link, so the title would never open. */
.task-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  margin-bottom: 4px;
}
@media (hover: hover) {
  .task-title {
    -webkit-line-clamp: 1;
  }
  .task:hover .task-title,
  .task:focus-within .task-title {
    -webkit-line-clamp: 6;
  }
  .task-hint {
    display: none;
  }
  .task:hover .task-hint,
  .task:focus-within .task-hint {
    display: block;
  }
}
.task-due {
  color: var(--ink);
}
.task.is-overdue .task-due {
  color: var(--bad);
}

/* Runway ⇄ lists: a chosen day lights up its tasks and dims the rest. */
.day-filter {
  display: none;
  align-items: center;
  gap: 10px;
  margin: -12px 0 18px;
  padding: 10px 14px;
  border-radius: 12px;
  background: var(--marker);
  color: var(--marker-ink);
  font-weight: 700;
}
.day-filter.is-on {
  display: flex;
}
.day-filter a {
  color: var(--marker-ink); /* the accent link on the marker was 1.7:1 in dark mode */
  text-decoration: underline;
  text-underline-offset: 2px;
}
.day-filter button {
  margin-left: auto;
  border: 0;
  border-radius: 8px;
  padding: 6px 12px;
  background: var(--marker-ink);
  color: var(--marker);
  font: 700 14px/1 var(--body);
  cursor: pointer;
}
.is-day-filtered .task:not(.is-on-day) {
  opacity: 0.5; /* dimmed, still readable: these are live links (0.28 put the title at 1.8:1) */
  filter: saturate(0.4);
}
.is-day-filtered .task.is-on-day {
  box-shadow:
    0 0 0 3px var(--marker),
    var(--shadow-2);
  background: var(--surface);
}
.task.is-linked {
  box-shadow: 0 0 0 3px var(--marker);
}
.pin.is-lit .pin-head {
  box-shadow:
    0 0 0 4px var(--marker),
    0 18px 30px -10px rgb(0 0 0 / 0.7);
}
.pin {
  cursor: pointer;
}
.day-filter { max-width: none; }

/* Runs on: who does the work. Claude API, Reza's machine, Morteza's machine; ad-account work is by hand. */
.runs-on { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 12.5px; }
.runs-label { font-weight: 700; color: var(--ink-3); }
.runner { padding: 2px 8px; border-radius: 999px; font-weight: 700; border: 1px solid transparent; white-space: nowrap; }
.runner-claude { background: color-mix(in oklab, #7b3fe4 14%, var(--surface)); color: color-mix(in oklab, #7b3fe4 80%, var(--ink)); border-color: color-mix(in oklab, #7b3fe4 30%, transparent); }
.runner-reza { background: var(--accent-soft); color: var(--accent); }
.runner-morteza { background: var(--warn-bg); color: var(--warn); }
.runner-none { background: var(--surface-3); color: var(--ink-3); font-style: italic; }
.runner-hand { background: transparent; color: var(--bad); border-color: color-mix(in oklab, var(--bad) 45%, transparent); }
.item-owner .runs-label { display: none; }
.session-runner { margin: 2px 0; }
