2026-11-07 23:43:26 +00:00
|
|
|
.graph.tasks { grid-template-columns: minmax(0, 1fr); }
|
|
|
|
|
.tasks-body { min-width: 0; }
|
|
|
|
|
.tasks .controls input[type="search"] { flex: 1; min-width: min(240px, 100%); }
|
|
|
|
|
.tasks > .chips { margin-bottom: 0; }
|
2026-11-09 06:53:55 +00:00
|
|
|
body.fit .graph.tasks > .tasks-body, body.fit .graph.tasks > .inbox { flex: 1; min-height: 0; overflow: auto; }
|
|
|
|
|
.choice-request { gap: var(--sp-2) var(--sp-3); }
|
|
|
|
|
.choice-agents { display: grid; gap: 6px; max-height: 40vh; overflow: auto; }
|
2026-11-07 23:43:26 +00:00
|
|
|
.chip .count { margin-left: 2px; }
|
|
|
|
|
.task-list, .task-cards { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
|
|
|
|
|
.task-row { display: grid; gap: 6px; min-width: 0; padding: var(--sp-3); border: 1px solid var(--line); border-radius: 12px; background: var(--glass-card); }
|
|
|
|
|
.task-row .head-row { margin-bottom: 0; }
|
|
|
|
|
.task-row > .linkish { justify-self: start; font-size: var(--fs-lg); text-align: left; }
|
|
|
|
|
.task-row.open-work, .task-card.open-work, .wt.open-work, .matrix tr.open-work > th { box-shadow: inset 3px 0 0 var(--warn); }
|
|
|
|
|
.task-row.ended, .task-card.ended { opacity: .72; }
|
|
|
|
|
.task-id { font-size: var(--fs-sm); color: var(--muted); overflow-wrap: anywhere; }
|
|
|
|
|
.task-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; min-width: 0; color: var(--muted); font-size: var(--fs-sm); }
|
|
|
|
|
.task-meta code { overflow-wrap: anywhere; }
|
|
|
|
|
.task-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 12px; align-items: start; }
|
|
|
|
|
.task-column { display: grid; gap: 8px; min-width: 0; padding: var(--sp-3); }
|
|
|
|
|
.task-card { display: grid; gap: 4px; min-width: 0; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--sunken); font-size: var(--fs-sm); }
|
|
|
|
|
.task-card .linkish { overflow-wrap: anywhere; }
|
|
|
|
|
.flow { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; min-width: 0; font-size: var(--fs-sm); }
|
|
|
|
|
.flow-label { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-weight: 650; }
|
|
|
|
|
.flow-side { display: inline-flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
|
|
|
|
|
.flow-ref { padding: 0 6px; border: 1px solid var(--line); border-radius: 6px; background: var(--sunken); line-height: 20px; overflow-wrap: anywhere; }
|
|
|
|
|
.flow-ref.here { border-color: transparent; background: var(--accent-soft); color: var(--accent); font-weight: 650; }
|
|
|
|
|
.flow-arrow { display: inline-flex; color: var(--muted); }
|
|
|
|
|
.flow.invalid { gap: 6px; color: var(--bad); }
|
|
|
|
|
.states.work .state { gap: 5px; }
|
|
|
|
|
.matrix-box { display: grid; gap: 8px; min-width: 0; }
|
|
|
|
|
.matrix-scroll { max-width: 100%; max-height: 70vh; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--glass-card); }
|
|
|
|
|
table.matrix { border-collapse: separate; border-spacing: 0; font-size: var(--fs-sm); }
|
|
|
|
|
table.matrix th, table.matrix td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; white-space: nowrap; }
|
|
|
|
|
table.matrix thead th { position: sticky; top: 0; z-index: 1; background: var(--panel); vertical-align: bottom; }
|
|
|
|
|
table.matrix th[scope="row"], table.matrix thead th:first-child { position: sticky; left: 0; background: var(--panel); text-align: left; }
|
|
|
|
|
table.matrix thead th:first-child { z-index: 2; }
|
|
|
|
|
table.matrix th[scope="row"] { z-index: 1; min-width: min(240px, 52vw); max-width: 320px; white-space: normal; }
|
|
|
|
|
.matrix-task { display: grid; gap: 2px; }
|
|
|
|
|
.matrix .party { display: inline-block; max-height: 150px; overflow: hidden; text-overflow: ellipsis; writing-mode: vertical-rl; transform: rotate(180deg); }
|
|
|
|
|
.matrix td .letter + .letter { margin-left: 2px; }
|
|
|
|
|
.task-edit { display: grid; gap: 8px; }
|
|
|
|
|
.task-edit h3 { margin: 6px 0 0; color: var(--muted); font-size: var(--fs-xs); font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
|
|
|
|
|
.task-form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
|
|
|
|
|
.task-form label { display: grid; gap: 4px; color: var(--muted); font-size: var(--fs-sm); }
|
|
|
|
|
.task-form input[type="number"] { width: 120px; }
|
2026-11-09 06:53:55 +00:00
|
|
|
.plan-bar { gap: var(--sp-2) var(--sp-3); }
|
|
|
|
|
.plan-bar [hidden] { display: none; }
|
|
|
|
|
.plan-group { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--muted); font-size: var(--fs-sm); }
|
|
|
|
|
.plan-group select.field { width: auto; min-width: 0; max-width: min(260px, 100%); }
|
|
|
|
|
.task-pick { margin: 0; accent-color: var(--accent); }
|
|
|
|
|
.gantt-box, .burn-box { display: grid; gap: 8px; min-width: 0; }
|
|
|
|
|
.gantt-scroll { max-width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--glass-card); }
|
|
|
|
|
.gantt-scroll svg.gantt { display: block; max-width: none; }
|
|
|
|
|
svg .gantt-bar, svg .gantt-dot { fill: color-mix(in srgb, var(--c, var(--accent)) 70%, var(--panel)); stroke: var(--c, var(--accent)); stroke-width: 1; }
|
|
|
|
|
svg .gantt-bar.forecast, svg .gantt-dot.forecast { fill: url(#gantt-hatch); stroke-dasharray: 3 2; }
|
|
|
|
|
svg .tone-ok { --c: var(--ok); }
|
|
|
|
|
svg .tone-bad { --c: var(--bad); }
|
|
|
|
|
svg .tone-info { --c: var(--info); }
|
|
|
|
|
svg .tone-warn { --c: var(--warn); }
|
|
|
|
|
svg .tone-neutral { --c: var(--muted); }
|
|
|
|
|
svg .hatch-ground { fill: var(--accent-soft); }
|
|
|
|
|
svg .hatch-line { stroke: var(--accent); stroke-width: 3; }
|
|
|
|
|
svg .gantt-edge { fill: none; stroke: var(--c); stroke-width: 1.6; opacity: .8; }
|
|
|
|
|
svg .gantt-edge.k-after, .gantt-key.k-after { --c: var(--violet); }
|
|
|
|
|
svg .gantt-edge.k-base, .gantt-key.k-base { --c: var(--info); }
|
|
|
|
|
svg .gantt-edge.k-queue, .gantt-key.k-queue { --c: var(--warn); }
|
|
|
|
|
svg .gantt-tip { fill: var(--muted); }
|
|
|
|
|
.gantt-key, .burn-key { display: inline-flex; align-items: center; gap: 6px; }
|
|
|
|
|
.gantt-key::before, .burn-key::before { content: ""; width: 18px; height: 4px; border-radius: 2px; background: var(--c, var(--accent)); }
|
|
|
|
|
.gantt-key.forecast::before { height: 10px; background: repeating-linear-gradient(45deg, var(--accent) 0 3px, var(--accent-soft) 3px 6px); }
|
|
|
|
|
svg.burn { width: 100%; height: auto; max-height: 60vh; }
|
|
|
|
|
svg .burn-line { fill: none; stroke: var(--c); stroke-width: 2.4; }
|
|
|
|
|
svg .burn-line.k-scope, .burn-key.k-scope { --c: var(--info); }
|
|
|
|
|
svg .burn-line.k-done, .burn-key.k-done { --c: var(--ok); }
|
|
|
|
|
svg .burn-line.k-remaining, .burn-key.k-remaining { --c: var(--accent); }
|
|
|
|
|
svg .burn-line.k-unestimated, .burn-key.k-unestimated { --c: var(--warn); }
|
|
|
|
|
svg .burn-line.k-unestimated { stroke-dasharray: 6 4; }
|
2026-11-07 23:43:26 +00:00
|
|
|
svg .node.a-worktree.open circle { stroke: var(--warn); stroke-width: 2.6; stroke-dasharray: 3 2; }
|
|
|
|
|
svg .edge.flow { stroke-dasharray: 2 5; }
|