/* Keep the wide workflow inside one keyboard-scrollable region. */
.board-tabs { position: relative; display: flex; overflow-x: auto; max-width: 100%; gap: .25rem 1rem; border-bottom: 1px solid #d6d3d1; min-width: 0; }
.board-tab { flex-shrink: 0; display: inline-flex; align-items: center; gap: .5rem; min-height: 2.25rem; padding: .5rem 0; border-bottom: 3px solid transparent; font-size: .75rem; font-weight: 600; text-transform: uppercase; color: #57534e; }
.board-tab[aria-current="page"] { border-bottom-color: #105b4d; color: #105b4d; }
.board-tab:hover { color: #105b4d; }
.board-tab:focus-visible { outline-offset: -2px; }
.board-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; min-width: 0; }
.board-head > div { flex: 1 1 12rem; }
.board-head h1 { font-size: 1.5rem; line-height: 1.2; }
.board-head .eyebrow { margin-bottom: .25rem; }
.board-add { min-width: 0; max-width: 100%; margin-left: auto; }
.board-add[open] { flex-basis: 100%; }
.board-add > summary { display: flex; width: fit-content; margin-left: auto; }
.board-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .75rem; padding: .5rem 0; min-width: 0; }
.board-search { position: relative; flex: 1 1 18rem; }
.board-filter { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .75rem; }
.board-filter[data-active="true"] { border-radius: .5rem; background: #edf8f4; padding: 0 .5rem; }
.board-help { min-width: 0; }
.board-help[open] { flex-basis: 100%; }
.board-status:empty { margin: 0; }
.board-status:not(:empty) { margin-bottom: .75rem; }
.kanban-scroll { position: relative; max-width: 100%; min-width: 0; overflow-x: auto; padding: .25rem .25rem 1rem; scroll-snap-type: x proximity; overscroll-behavior-x: contain; border-radius: .75rem; }
.kanban-columns { display: flex; align-items: stretch; gap: .75rem; width: max-content; }
.kanban-column { position: relative; width: 17rem; flex: 0 0 17rem; min-width: 0; border-radius: .75rem; background: #f5f5f4; scroll-snap-align: start; border: 1px solid #e7e5e4; }
.kanban-group { padding: .75rem .75rem .5rem; font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: #57534e; }
.kanban-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-height: 4rem; padding: .75rem 1.5rem .75rem .75rem; background: #105b4d; color: white; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 10px 50%); }
.kanban-heading h2 { padding-left: .5rem; line-height: 1.4; }
.kanban-column[data-group="doing"] .kanban-heading { background: #147360; }
.kanban-column[data-group="done"] .kanban-heading { background: #44403c; }
.kanban-count { flex-shrink: 0; min-width: 1.5rem; text-align: center; border-radius: 999px; background: #ffffff26; font-size: .75rem; padding: .125rem .375rem; }
.kanban-cards { display: flex; flex-direction: column; gap: .75rem; min-height: 12rem; padding: .75rem; }
.task-card { min-width: 0; border: 1px solid #e7e5e4; border-radius: .75rem; background: white; padding: 1rem; box-shadow: 0 1px 2px #1c191705; overflow-wrap: anywhere; }
.task-card-reference { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .75rem; font-weight: 600; }
.task-card-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.5; }
.task-card-title:hover { color: #105b4d; text-decoration: underline; }
.task-card-title:focus-visible { outline-offset: -2px; }
.task-card-subject { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .75rem; }
.task-reference { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .25rem; max-width: 100%; min-height: 2.75rem; border: 1px solid #e7e5e4; border-radius: .5rem; padding: .25rem .5rem; font-size: .7rem; overflow-wrap: anywhere; }
/* Board references share a wrapping row; detail-page controls retain 44px targets. */
.kanban-column .task-references { gap: .375rem; }
.kanban-column .task-reference-item { display: contents; }
.kanban-column .task-reference { min-width: 0; min-height: 2rem; gap: .25rem; padding: .125rem .375rem; font-size: .7rem; }
.kanban-column .task-stage, .kanban-column .task-unscored { display: none; }
.kanban-column.is-drop-target { background: #edf8f4; box-shadow: inset 0 0 0 2px #147360; }
.task-card.is-dragging { opacity: .5; }
.task-card[aria-busy="true"] { opacity: .7; }
@media (max-width: 420px) {
  .board-toolbar { column-gap: .5rem; }
  .board-filter, .board-help > summary { font-size: .7rem; }
  .kanban-column { width: 16rem; flex-basis: 16rem; }
}

/* Board-only workspace; other pages keep the shared reading width. */
.board-shell { min-width: 0; }
.board-workspace { min-width: 0; }
.board-workspace > header { display: none; }
.board-main { width: 100%; max-width: none; min-width: 0; padding: .5rem; }
.board-main > [role="status"], .board-main > [role="alert"] { max-height: 20vh; overflow: auto; margin-bottom: .5rem; }
.board-page, .board-body { min-width: 0; }
.board-topbar { position: sticky; top: 0; z-index: 10; display: flex; flex-direction: column; background: #fafaf9; padding-bottom: .375rem; }
.board-head { margin: 0; justify-content: flex-start; gap: .25rem .5rem; }
.board-head h1 { min-width: 0; font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.board-head p { font-size: .7rem; margin: 0; }
.board-menu-toggle { display: none; margin-left: auto; min-height: 2rem; font-size: .75rem; white-space: nowrap; }
.board-tabs { order: 1; gap: .875rem; }
.board-tab { gap: .25rem; min-height: 2.25rem; font-size: .65rem; }
.board-tab .badge { padding: .0625rem .25rem; font-size: inherit; background: transparent; }
.board-tab .badge::before { content: "("; }
.board-tab .badge::after { content: ")"; }
.board-toolbar { position: relative; gap: .125rem .625rem; padding: .25rem 0; }
.board-search { flex: 1 1 100%; gap: .25rem; }
.board-search input[type="search"] { min-height: 2rem; padding: .375rem .5rem; font-size: .75rem; }
.board-search .btn-secondary { min-height: 2rem; padding: .375rem .5rem; font-size: .7rem; }
.board-filter, .board-help > summary { min-height: 2.25rem; padding: .25rem 0; font-size: .7rem; white-space: nowrap; }
.board-filter[data-active="true"] { padding: .25rem .375rem; }
.board-help { position: static; }
.board-help[open] { flex-basis: auto; }
.board-help > div { position: absolute; top: 100%; right: 0; z-index: 20; width: min(23rem, calc(100vw - 2rem)); max-height: 60dvh; overflow: auto; padding: 1rem; font-size: .8rem; box-shadow: 0 8px 24px #1c19171a; }
.board-add { margin: 0 0 0 auto; }
.board-add[open] { flex-basis: auto; }
.board-add > summary { min-height: 2.25rem; padding: .375rem .625rem; font-size: .75rem; white-space: nowrap; }
.board-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.board-task-dialog { box-sizing: border-box; width: min(38rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; padding: 1.25rem; overflow: auto; border: 1px solid #d6d3d1; border-radius: .75rem; background: white; color: #292524; }
.board-task-dialog::backdrop { background: #1c191780; }
.board-task-dialog:not(:modal) { position: static; margin-top: .5rem; }
.board-dialog-close { display: none; }
.board-task-dialog:modal .board-dialog-close { display: inline-flex; }
/* Remains available to assistive technology without adding another toolbar row. */
#board-closed-help { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.board-status:not(:empty) { margin: .25rem 0; max-height: 4rem; overflow: auto; font-size: .75rem; }
.kanban-scroll { height: calc(100dvh - 19rem); min-height: 10rem; padding: 0 0 .25rem; border: 1px solid #d6d3d1; border-radius: .375rem; overflow: auto hidden; scrollbar-gutter: stable; overscroll-behavior: contain; }
.kanban-columns { gap: 0; height: 100%; min-height: 0; }
.kanban-column { display: flex; flex-direction: column; width: 85vw; flex: 0 0 85vw; min-height: 0; border: 0; border-right: 1px solid #d6d3d1; border-radius: 0; }
.kanban-group { flex: 0 0 auto; margin: 0; border-top: 3px solid #105b4d; padding: .25rem .625rem; font-size: .55rem; line-height: 1.2; letter-spacing: .06em; }
.kanban-column[data-group="doing"] .kanban-group { border-color: #147360; }
.kanban-column[data-group="done"] .kanban-group { border-color: #78716c; }
.kanban-column[data-unscored="true"] .kanban-group::after { content: " · Not scored"; letter-spacing: 0; }
.kanban-heading { position: relative; flex: 0 0 auto; justify-content: flex-start; gap: .25rem; min-height: 2.5rem; padding: .5rem .875rem .5rem .625rem; clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 50%, calc(100% - 9px) 100%, 0 100%, 9px 50%); }
.kanban-heading h2 { padding-left: .25rem; font-size: .7rem; line-height: 1.3; }
.kanban-column[data-unscored="true"] .kanban-heading { background: #57534e; }
.kanban-count { min-width: 0; padding: 0; background: transparent; font-size: .7rem; }
.kanban-count::before { content: "("; }
.kanban-count::after { content: ")"; }
.kanban-cards { flex: 1 1 auto; min-height: 0; padding: .375rem; gap: .375rem; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; }
.kanban-cards > * { flex-shrink: 0; }
.task-move-icon { display: none; }
.kanban-column .task-card { position: relative; padding: .5rem; border-radius: .375rem; }
.kanban-column .task-card-top { display: block; padding-right: 2rem; }
.kanban-column .task-card-reference { min-height: 1.5rem; font-size: .65rem; }
.kanban-column .task-card-type { display: block; width: fit-content; margin-top: .125rem; padding: 0; background: none; color: #57534e; font-size: .6rem; font-weight: 500; }
.kanban-column .task-card h3 { margin-top: .25rem; }
.kanban-column .task-card-title { font-size: .8rem; line-height: 1.35; }
.kanban-column .task-card-subject { margin-top: .125rem; font-size: .65rem; }
.kanban-column .task-card-badges { margin-top: .375rem; gap: .25rem; }
.kanban-column .task-card-badges .badge { font-size: .6rem; padding: .125rem .375rem; }
.kanban-column .task-card-people { display: flex; align-items: center; justify-content: space-between; gap: .375rem; margin-top: .375rem; }
.kanban-column .task-card-assignee { flex: 1; margin: 0; gap: .25rem; font-size: .6rem; }
.kanban-column .task-card-assignee > span:first-child { width: 1.25rem; height: 1.25rem; font-size: .55rem; }
.kanban-column .task-card-assignee > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kanban-column [data-task-due] { flex: 0 1 auto; margin: 0; text-align: right; font-size: .6rem; }
.kanban-column .task-card-links { margin-top: .375rem; }
.kanban-column .task-reference { min-height: 1.5rem; font-size: .6rem; }
.kanban-column .task-card-move { position: absolute; top: .25rem; right: .25rem; margin: 0; padding: 0; border: 0; }
.kanban-column .task-card-move > summary { display: flex; align-items: center; justify-content: center; width: 1.75rem; min-height: 1.75rem; padding: 0; list-style: none; border-radius: .25rem; }
.kanban-column .task-card-move > summary::-webkit-details-marker { display: none; }
.kanban-column .task-card-move > summary:hover { background: #edf8f4; }
.kanban-column .task-move-icon { display: inline; font-size: 1.25rem; line-height: 1; }
.kanban-column .task-move-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.kanban-column .task-card-move[open] { position: static; margin-top: .375rem; }
.kanban-column .task-card-move[open] > summary { position: absolute; top: .25rem; right: .25rem; background: #edf8f4; }
.kanban-column .task-card-move form { border-top: 1px solid #e7e5e4; padding-top: .5rem; }
.kanban-column .empty { padding: 1rem .5rem; font-size: .75rem; }
.board-page :is(a, button, summary, input, select, textarea):focus-visible { outline: 2px solid #105b4d; outline-offset: 2px; }
@media (min-width: 1200px) {
  .kanban-column { width: 14rem; flex-basis: 14rem; }
  .board-topbar { display: grid; grid-template-columns: minmax(12rem, 1fr) auto; align-items: center; column-gap: .75rem; }
  .board-head { grid-column: 1; grid-row: 1; }
  .board-toolbar { grid-column: 2; grid-row: 1; flex-wrap: nowrap; }
  .board-tabs { grid-column: 1 / -1; grid-row: 2; }
  .board-search { flex: 0 1 13rem; width: 13rem; }
  .board-menu-toggle { display: inline-flex; align-items: center; }
}
@media (min-width: 1024px) {
  .board-shell { height: 100dvh; overflow: hidden; }
  .board-shell > aside { min-height: 0; overflow-y: auto; }
  .board-shell.board-menu-hidden { grid-template-columns: minmax(0, 1fr); }
  .board-menu-hidden > aside { display: none; }
  .board-main { padding: .5rem .75rem; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .board-menu-toggle { display: none; }
  .board-search { width: 10rem; }
}
@media (prefers-reduced-motion: reduce) {
  .kanban-scroll { scroll-behavior: auto; scroll-snap-type: none; }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .kanban-column { width: 14rem; flex-basis: 14rem; }
  .board-search { flex: 1 1 12rem; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .board-menu-toggle { display: inline-flex; align-items: center; }
}

.board-shell:not([data-board-ready]) .board-menu-toggle { display: none; }
@media (min-width: 1200px) {
  .board-head { flex-wrap: nowrap; }
  .board-head h1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .board-head p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
