:root {
  --taskchef-page: light-dark(#f3f5f2, #171a18);
  --taskchef-surface-muted: light-dark(#f6f7f5, #252a27);
  --taskchef-border: light-dark(#dfe3de, #363c38);
  --taskchef-text: light-dark(#202521, #edf1ee);
  --taskchef-muted: light-dark(#657068, #aab4ad);
  --taskchef-accent: light-dark(#087f5b, #38d9a9);
  --taskchef-page-max-width: 1510px;
  --taskchef-content-max-width: 1080px;
  --taskchef-page-gutter: clamp(16px, 3vw, 48px);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--taskchef-page);
  color: var(--taskchef-text);
}

.taskchef-shell { min-height: 100vh; background: var(--taskchef-page); }
.taskchef-header-shell { border-bottom: 1px solid var(--taskchef-border); }
.taskchef-header { max-width: var(--taskchef-page-max-width); padding: 10px var(--taskchef-page-gutter); }
.taskchef-header-layout { min-width: 0; min-height: 36px; gap: 8px; }
.taskchef-header-copy { min-width: 0; }
.taskchef-header-actions { flex: none; }
.taskchef-connection { flex: none; margin-inline-start: 5px; }
.taskchef-icon-button { flex: none; }
.taskchef-brand-title { min-width: 0; color: var(--taskchef-accent); font-size: 0.875rem; font-weight: 750; letter-spacing: 0.035em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.taskchef-version { margin-inline-start: 0.45rem; color: var(--taskchef-muted); font-size: 0.78em; font-weight: 600; letter-spacing: 0; text-transform: none; }
.taskchef-brand-icon, .taskchef-brand-icon img { display: block; flex: none; width: 28px; height: 28px; }
.taskchef-main { max-width: var(--taskchef-page-max-width); padding-top: 8px; padding-inline: var(--taskchef-page-gutter); }
.taskchef-list-layout { --taskchef-content-max-width: 600px; max-width: calc(var(--taskchef-content-max-width) + 2 * var(--taskchef-page-gutter)); }
.taskchef-content { width: 100%; max-width: var(--taskchef-content-max-width); }
.taskchef-toolbar { max-width: none; margin-bottom: 22px; padding: 8px 0 var(--mantine-spacing-md); border: 0; border-bottom: 1px solid var(--taskchef-border); background: transparent; box-shadow: none; }
.taskchef-toolbar-filters { width: min(100%, 488px); min-width: 0; }
.taskchef-toolbar-filters .mantine-InputWrapper-root { flex: 1 1 0; width: 0; min-width: 0; max-width: 240px; }
.taskchef-toolbar .mantine-InputWrapper-label, .taskchef-filter-label { font-size: var(--mantine-font-size-sm); font-weight: 600; line-height: var(--mantine-line-height-sm); }
.taskchef-toolbar .mantine-SegmentedControl-root { max-width: 650px; }
.taskchef-results-summary { max-width: var(--taskchef-content-max-width); margin-top: 12px; color: var(--taskchef-muted); font-size: var(--mantine-font-size-xs); line-height: 1.35; white-space: nowrap; }
.taskchef-list { max-width: var(--taskchef-content-max-width); }
.taskchef-settings-fields {
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--mantine-spacing-sm);
  width: min(100%, 36rem);
}
.taskchef-task-row { container-type: inline-size; }
.taskchef-task-row,
.taskchef-section { background: light-dark(#fff, #202421); box-shadow: 0 1px 0 light-dark(rgb(22 31 25 / 3%), transparent); }
.taskchef-task-row:hover { border-color: light-dark(var(--mantine-color-teal-4), var(--mantine-color-teal-8)); }
.taskchef-task-main { min-width: 0; flex: 1; }
.taskchef-card-heading,
.taskchef-turn-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--mantine-spacing-sm); }
.taskchef-card-metadata { width: max-content; min-width: 0; max-width: min(25rem, 45cqw); }
.taskchef-list-card-footer { display: flex; align-items: end; gap: 4px; min-width: 0; }
.taskchef-list-card-footer .taskchef-card-stats { flex: 1 1 auto; min-width: 0; margin-top: 2px; }
.taskchef-status-badge { flex: none; font-size: var(--mantine-font-size-xs); }
.taskchef-title-button {
  all: unset;
  border-radius: 3px;
  cursor: pointer;
  overflow-wrap: anywhere;
}
.taskchef-title-button:hover { color: var(--taskchef-accent); text-decoration: underline; text-underline-offset: 3px; }
.taskchef-title-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--mantine-color-teal-6) 35%, transparent); outline-offset: 3px; }
.taskchef-summary-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; max-width: 84ch; }
.taskchef-summary-grid .taskchef-field-label:not(:first-child) { margin-top: 7px; }
.taskchef-field-label { font-weight: 700; letter-spacing: 0.035em; text-transform: uppercase; }
.taskchef-preserve-lines { white-space: pre-wrap; overflow-wrap: anywhere; }
.taskchef-github-link { color: var(--taskchef-accent); text-decoration: none; }
.taskchef-github-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.taskchef-github-link:focus-visible { outline: 2px solid var(--mantine-color-teal-6); outline-offset: 2px; border-radius: 2px; }
.taskchef-github-groups { display: grid; min-width: 0; gap: 3px; }
.taskchef-github-group { min-width: 0; }
.taskchef-github-reference-ambiguous { border-bottom: 2px dotted var(--mantine-color-yellow-7); cursor: help; }
.taskchef-github-reference-ambiguous:focus-visible { outline: 2px solid var(--mantine-color-yellow-7); outline-offset: 2px; }
.taskchef-time, .taskchef-stat-content { display: inline-flex; align-items: center; gap: 6px; width: fit-content; max-width: 100%; padding: 3px 4px; border-radius: 4px; color: var(--taskchef-muted); font-size: var(--mantine-font-size-xs); font-weight: 400; letter-spacing: normal; line-height: var(--mantine-line-height-xs); text-transform: none; }
.taskchef-time:hover { color: var(--taskchef-text); background: var(--taskchef-surface-muted); }
.taskchef-time:focus-visible { outline: 2px solid var(--mantine-color-teal-6); outline-offset: 2px; }
.taskchef-time-label, .taskchef-stat-content bdi { min-width: 0; overflow-wrap: anywhere; unicode-bidi: isolate; }
.taskchef-stat-content:focus-visible { outline: 2px solid var(--mantine-color-teal-6); outline-offset: 2px; }
.taskchef-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 2px; }
.taskchef-stat { display: flex; align-items: center; min-width: 0; padding: 4px 10px; }
.taskchef-stat:first-child { padding-inline-start: 0; }
.taskchef-stat + .taskchef-stat { border-inline-start: 1px solid var(--taskchef-border); }
.taskchef-empty { border-style: dashed; background: transparent; }

.taskchef-toolbar .mantine-Select-input { width: 100%; }
.taskchef-toolbar-view .mantine-SegmentedControl-root, .taskchef-toolbar-status .mantine-SegmentedControl-root { width: max-content; max-width: 100%; height: 30px; padding: 0; }
.taskchef-toolbar-view .mantine-SegmentedControl-label, .taskchef-toolbar-status .mantine-SegmentedControl-label { display: flex; align-items: center; height: 100%; padding-inline: 12px; font-size: var(--mantine-font-size-xs); text-align: start; }
.taskchef-board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(340px, calc(100% - 36px));
  align-items: stretch;
  gap: 18px;
  width: 100%;
  min-width: 0;
  min-height: max(360px, calc(100dvh - 270px));
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}
.taskchef-board:focus-visible { outline: 2px solid var(--mantine-color-teal-6); outline-offset: 2px; }
.taskchef-board-dragging { scroll-snap-type: none; user-select: none; cursor: grabbing; }
.taskchef-board-lane { min-width: 0; scroll-snap-align: start; cursor: grab; }
.taskchef-board-lane-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 0 13px 6px; margin-bottom: 6px; }
.taskchef-board-lane-heading h2 { font-size: var(--mantine-font-size-sm); font-weight: 680; }
.taskchef-board-empty { padding: 12px 4px; }
.taskchef-board-card { display: flex; flex-direction: column; min-width: 0; cursor: auto; background: light-dark(#fff, #202421); border-color: var(--taskchef-border); box-shadow: 0 1px 2px light-dark(rgb(22 31 25 / 3%), transparent); }
.taskchef-board-card:hover { border-color: light-dark(#bdc8c0, #5b685e); }
.taskchef-board-project { color: var(--taskchef-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.taskchef-board-title { line-height: 1.3; }
.taskchef-board-project { margin-top: 8px; }
.taskchef-board-title .taskchef-title-button { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.taskchef-board-excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; margin-top: 18px; color: var(--taskchef-text); }
.taskchef-board-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; margin-top: auto; padding-top: 10px; }
.taskchef-board-card-footer .taskchef-time { padding-inline-start: 0; }
.taskchef-board-chat { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--taskchef-muted); cursor: pointer; }
.taskchef-board-chat:hover { background: var(--taskchef-surface-muted); color: var(--taskchef-text); }
.taskchef-board-chat:focus-visible { outline: 2px solid var(--mantine-color-teal-6); outline-offset: 2px; }
.taskchef-open-chat, .taskchef-detail-more { height: 26px; min-height: 26px; }
.taskchef-open-chat .mantine-Button-section[data-position="left"] { margin-inline-end: 4px; }
.taskchef-detail-more { width: 26px; min-width: 26px; }
.taskchef-board-link-pending { text-align: right; }
.taskchef-board-more { align-self: flex-start; padding-inline: 4px; color: var(--taskchef-muted); }

.taskchef-notifications {
  position: fixed;
  z-index: 400;
  right: 18px;
  bottom: 18px;
  width: min(360px, calc(100vw - 48px));
  background: light-dark(#fff, #202421);
}
.taskchef-notification { background: var(--taskchef-surface-muted); }
.taskchef-notification-list { padding-inline-end: 10px; }
.taskchef-notification-open { all: unset; display: block; min-width: 0; flex: 1; border-radius: var(--mantine-radius-sm); cursor: pointer; }
.taskchef-notification-open:focus-visible { outline: 3px solid color-mix(in srgb, var(--mantine-color-teal-6) 35%, transparent); outline-offset: 2px; }

.taskchef-subtle-panel { background: var(--taskchef-surface-muted); }
.taskchef-metric { min-width: 0; background: transparent; }
.taskchef-metric-value { overflow-wrap: anywhere; }
.taskchef-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: var(--mantine-spacing-xs); }
.taskchef-turn { container-type: inline-size; background: var(--taskchef-surface-muted); }
.taskchef-turn-highlighted { border-color: var(--mantine-color-teal-6); box-shadow: inset 3px 0 var(--mantine-color-teal-6); outline: 3px solid color-mix(in srgb, var(--mantine-color-teal-6) 22%, transparent); }
.taskchef-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; overflow-wrap: anywhere; }
.taskchef-code-panel { max-height: 280px; margin: 0; padding: 12px; overflow: auto; border-radius: var(--mantine-radius-md); background: var(--taskchef-surface-muted); white-space: pre-wrap; overflow-wrap: anywhere; font: 0.78rem/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.taskchef-metadata { display: grid; grid-template-columns: minmax(120px, 150px) minmax(0, 1fr); margin: 0; font-size: var(--mantine-font-size-sm); }
.taskchef-metadata dt, .taskchef-metadata dd { padding: 8px 0; border-bottom: 1px solid var(--taskchef-border); overflow-wrap: anywhere; }
.taskchef-metadata dt { color: var(--taskchef-muted); }
.taskchef-metadata dd { margin: 0; }

.taskchef-shimmer {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  color: var(--taskchef-muted);
  background: linear-gradient(100deg, var(--taskchef-muted) 48%, var(--taskchef-text) 50%, var(--taskchef-muted) 52%);
  background-size: 250% 100%;
  background-position: 100% 0;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: taskchef-text-shimmer 6.4s linear infinite;
}

@keyframes taskchef-text-shimmer {
  0% { background-position: 100% 0; }
  72%, 100% { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .taskchef-shimmer { background: none; animation: none; -webkit-text-fill-color: currentcolor; }
}

.taskchef-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 48em) {
  .taskchef-toolbar-filters .mantine-InputWrapper-root { max-width: none; }
  .taskchef-toolbar .mantine-Group-root { align-items: stretch; }
  .taskchef-toolbar .mantine-SegmentedControl-root { overflow-x: auto; }
  .taskchef-notifications { right: 16px; bottom: 16px; width: min(330px, calc(100vw - 32px)); }
  .taskchef-metadata { grid-template-columns: 1fr; }
  .taskchef-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .taskchef-metadata dt { padding-bottom: 0; border-bottom: 0; }
}

@media (max-width: 34em) {
  .taskchef-header { padding-inline: 8px; padding-block: 7px; }
  .taskchef-header-layout { min-height: 32px; gap: 4px; }
  .taskchef-header-copy { gap: 5px; }
  .taskchef-brand-title { font-size: clamp(0.625rem, 2.7vw, 0.75rem); letter-spacing: 0.015em; line-height: 1.15; white-space: normal; }
  .taskchef-version { margin-inline-start: 0.3rem; }
  .taskchef-brand-icon, .taskchef-brand-icon img { width: 24px; height: 24px; }
  .taskchef-header-actions { gap: 0; }
  .taskchef-icon-button { width: 32px; min-width: 32px; height: 32px; min-height: 32px; }
  .taskchef-connection { gap: 5px; margin-inline-start: 2px; }
}

@container (max-width: 27.5rem) {
  .taskchef-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .taskchef-stat { padding-block: 8px; }
  .taskchef-stat:nth-child(3) { border-inline-start: 0; padding-inline-start: 0; }
  .taskchef-stat:nth-child(n + 3) { border-top: 1px solid var(--taskchef-border); }
}

.taskchef-refresh-spinning {
  animation: taskchef-refresh-spin 800ms linear infinite;
  transform-origin: center;
}

@keyframes taskchef-refresh-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .taskchef-refresh-spinning { animation: none; }
}
