.ccweb-task-board { position: relative; isolation: isolate; display: grid; grid-template-rows: auto minmax(0, 1fr); width: 100%; height: 100%; min-width: 0; min-height: 32rem; overflow: hidden; color: var(--text-primary); background: var(--bg-primary); font-family: var(--font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans CJK SC", sans-serif); line-height: 1.45; animation: ccweb-task-board-enter 180ms ease-out both; } .ccweb-task-board *, .ccweb-task-board *::before, .ccweb-task-board *::after, .ccweb-task-tracking, .ccweb-task-tracking *, .ccweb-task-tracking *::before, .ccweb-task-tracking *::after { box-sizing: border-box; } .ccweb-task-board button, .ccweb-task-board input, .ccweb-task-board select, .ccweb-task-board textarea, .ccweb-task-tracking input { font: inherit; } .ccweb-task-board [hidden] { display: none !important; } .ccweb-task-board__sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; } .ccweb-task-board__toolbar { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(9rem, auto) minmax(0, 1fr); align-items: center; gap: 1rem; padding: 0.75rem 1rem; border-bottom: 1px solid var(--border-color); background: var(--bg-primary); } .ccweb-task-board__heading { min-width: 0; } .ccweb-task-board__title, .ccweb-task-board__summary, .ccweb-task-board__column-title, .ccweb-task-board__empty h3, .ccweb-task-board__empty p, .ccweb-task-board__status-title, .ccweb-task-board__status-summary { margin: 0; } .ccweb-task-board__title { color: var(--text-primary); font-size: clamp(1.05rem, 1.6vw, 1.28rem); font-weight: 760; letter-spacing: -0.025em; } .ccweb-task-board__summary { margin-top: 0.16rem; color: var(--text-muted); font-size: 0.76rem; } .ccweb-task-board[data-error] .ccweb-task-board__summary { color: var(--danger); } .ccweb-task-board__controls { display: grid; grid-template-columns: minmax(13rem, 1fr) auto auto; align-items: center; justify-content: end; gap: 0.55rem; min-width: 0; } .ccweb-task-board__search { position: relative; display: flex; align-items: center; min-width: 0; } .ccweb-task-board__search-glyph { position: absolute; left: 0.76rem; z-index: 1; color: var(--text-muted); font-size: 1.2rem; line-height: 1; pointer-events: none; } .ccweb-task-board__input, .ccweb-task-board__field-control, .ccweb-task-board__card-select { width: 100%; min-width: 0; border: 1px solid var(--border-color); border-radius: 0.72rem; outline: 0; color: var(--text-primary); background: var(--bg-tertiary); transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease; } .ccweb-task-board__input { height: 2.6rem; } .ccweb-task-board__input { padding: 0 0.8rem 0 2.25rem; } .ccweb-task-board__input::placeholder, .ccweb-task-board__field-control::placeholder { color: var(--text-muted); opacity: 0.84; } .ccweb-task-board__button, .ccweb-task-board__icon-button, .ccweb-task-board__card-action { appearance: none; border: 1px solid var(--border-color); outline: 0; color: var(--text-secondary); background: transparent; cursor: pointer; transition: color 140ms ease, border-color 140ms ease, background-color 140ms ease, transform 140ms ease; } .ccweb-task-board__button { min-height: 2.6rem; padding: 0.55rem 0.76rem; border-radius: 0.72rem; white-space: nowrap; font-size: 0.78rem; font-weight: 680; } .ccweb-task-board__button--primary { border-color: var(--accent); color: var(--accent-ink, var(--surface-strong)); background: var(--accent); } .ccweb-task-board__button--danger { border-color: color-mix(in srgb, var(--danger) 38%, var(--border-color)); color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, transparent); } .ccweb-task-board__icon-button { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; padding: 0; border-radius: 0.72rem; font-size: 1.12rem; } .ccweb-task-board__button:hover, .ccweb-task-board__icon-button:hover, .ccweb-task-board__card-action:hover { border-color: var(--accent); color: var(--text-primary); background: var(--accent-light); } .ccweb-task-board__button--primary:hover { border-color: var(--accent-hover); color: var(--accent-ink, var(--surface-strong)); background: var(--accent-hover); } .ccweb-task-board__button--danger:hover { border-color: var(--danger); color: var(--text-primary); background: color-mix(in srgb, var(--danger) 20%, transparent); } .ccweb-task-board__button:disabled, .ccweb-task-board__icon-button:disabled, .ccweb-task-board__card-action:disabled, .ccweb-task-board__card-select:disabled { cursor: not-allowed; opacity: 0.42; } .ccweb-task-board__workspace { min-width: 0; min-height: 0; overflow: hidden; } .ccweb-task-board__clock { display: none; } .ccweb-task-board__wall { display: none; } .ccweb-task-board__lanes { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(18.5rem, 22rem); align-items: stretch; gap: 0.9rem; width: 100%; height: 100%; min-height: 0; padding: 1rem; overflow-x: auto; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: color-mix(in srgb, var(--text-muted) 50%, transparent) transparent; scrollbar-width: thin; } .ccweb-task-board__lanes:focus-visible { outline: 2px solid var(--accent-light); outline-offset: -3px; } .ccweb-task-board__lanes::-webkit-scrollbar, .ccweb-task-board__status-body::-webkit-scrollbar { width: 0.55rem; height: 0.55rem; } .ccweb-task-board__lanes::-webkit-scrollbar-thumb, .ccweb-task-board__status-body::-webkit-scrollbar-thumb { border: 0.12rem solid transparent; border-radius: 999px; background: color-mix(in srgb, var(--text-muted) 50%, transparent); background-clip: padding-box; } .ccweb-task-board__column { --task-board-status-color: var(--text-muted); position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 100%; overflow: visible; border: 1px solid var(--border-color); border-radius: 1rem; background: var(--bg-secondary); } .ccweb-task-board__column--motion { z-index: 3; } .ccweb-task-board__column-header { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 0.65rem; min-height: 3.65rem; padding: 0.88rem 0.9rem; border-bottom: 1px solid var(--border-color); border-radius: 1rem 1rem 0 0; background: var(--bg-secondary); } .ccweb-task-board__column-title-wrap { display: flex; align-items: center; min-width: 0; gap: 0.55rem; } .ccweb-task-board__column-dot, .ccweb-task-board__definition-dot { display: inline-block; flex: 0 0 auto; width: 0.58rem; height: 0.58rem; border-radius: 50%; background: var(--task-board-status-color); box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--task-board-status-color) 18%, transparent); } .ccweb-task-board__column-title { overflow: hidden; color: var(--text-primary); font-size: 0.97rem; font-weight: 730; text-overflow: ellipsis; white-space: nowrap; } .ccweb-task-board__column-count { display: inline-grid; place-items: center; min-width: 1.55rem; height: 1.42rem; padding: 0 0.4rem; border-radius: 999px; color: var(--text-secondary); background: var(--accent-light); font-size: 0.72rem; font-variant-numeric: tabular-nums; } .ccweb-task-board__column-disabled { flex: 0 0 auto; color: var(--text-muted); font-size: 0.68rem; } .ccweb-task-board__column-body { display: flex; flex: 1 0 auto; flex-direction: column; gap: 0.68rem; min-height: 11rem; padding: 0.7rem; } .ccweb-task-board__column-empty { display: grid; place-items: center; align-content: center; gap: 0.25rem; min-height: 9rem; color: var(--text-muted); font-size: 0.79rem; } .ccweb-task-board__column-empty-mark { color: var(--task-board-status-color); font-size: 1.65rem; line-height: 1; } .ccweb-task-board__card { --task-board-status-color: var(--text-muted); position: relative; display: flex; flex-direction: column; gap: 0.68rem; padding: 0.78rem; border: 1px solid var(--border-color); border-radius: 0.82rem; background: var(--surface-strong); box-shadow: none; transition: transform 150ms ease, border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease; } .ccweb-task-board__card[data-motion] { pointer-events: none; transition: none; will-change: height, opacity, transform; } .ccweb-task-board__card[data-motion="moving"] { z-index: 4; } .ccweb-task-board__card[data-motion="entering"], .ccweb-task-board__card[data-motion="leaving"] { overflow: hidden; transform-origin: 50% 0; } .ccweb-task-board__card:hover, .ccweb-task-board__card:focus-within { z-index: 1; border-color: var(--accent); background: var(--bg-tertiary); box-shadow: none; transform: translateY(-2px); } .ccweb-task-board__card-top, .ccweb-task-board__card-footer, .ccweb-task-board__card-actions, .ccweb-task-board__state-row, .ccweb-task-board__metadata { display: flex; align-items: center; } .ccweb-task-board__card-top, .ccweb-task-board__card-footer { justify-content: space-between; gap: 0.6rem; } .ccweb-task-board__session-id { overflow: hidden; color: var(--text-muted); font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; } .ccweb-task-board__card-open { appearance: none; display: flex; flex-direction: column; gap: 0.28rem; width: 100%; padding: 0; border: 0; outline: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; } .ccweb-task-board__card-title { display: -webkit-box; overflow: hidden; color: var(--text-primary); font-size: 0.94rem; font-weight: 680; letter-spacing: -0.012em; line-height: 1.42; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } .ccweb-task-board__card-summary { display: -webkit-box; overflow: hidden; color: var(--text-secondary); font-size: 0.76rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .ccweb-task-board__state-row { flex-wrap: wrap; gap: 0.34rem; } .ccweb-task-board__runtime-state { display: inline-flex; align-items: center; min-height: 1.45rem; padding: 0.16rem 0.42rem; border-radius: 0.38rem; font-size: 0.66rem; line-height: 1.2; } .ccweb-task-board__runtime-state { border: 1px dashed var(--accent); color: var(--text-secondary); background: var(--bg-tertiary); } /* 暗金荒野:运行态只来自 data-runtime-state,不从显示文案反推。 */ html[data-theme='wasteland'] .ccweb-task-board__card[data-runtime-state='running']::before { content: ''; position: absolute; top: 0.62rem; bottom: 0.62rem; left: -0.12rem; width: 0.22rem; border-radius: 999px; background: linear-gradient( 180deg, var(--wasteland-gold-bright), var(--wasteland-green), var(--wasteland-gold-bright) ); box-shadow: 0 0 0.28rem color-mix(in srgb, var(--wasteland-gold-bright) 32%, transparent); opacity: 0.74; pointer-events: none; } html[data-theme='wasteland'] .ccweb-task-board__card[data-runtime-state='running']::after { content: ''; position: absolute; top: 0.72rem; left: -0.17rem; width: 0.28rem; height: 0.28rem; border-radius: 50%; background: var(--wasteland-gold-bright); box-shadow: 0 0 0.25rem color-mix(in srgb, var(--wasteland-gold-bright) 72%, transparent), 0 0 0.45rem color-mix(in srgb, var(--wasteland-green) 46%, transparent); pointer-events: none; animation: ccweb-task-board-wasteland-runtime-tracer 2.8s ease-in-out infinite; } html[data-theme='wasteland'] .ccweb-task-board__card[data-runtime-state='running'] .ccweb-task-board__runtime-state { gap: 0.34rem; border-style: solid; border-color: color-mix(in srgb, var(--wasteland-green) 74%, var(--wasteland-gold)); color: var(--wasteland-gold-bright); background: color-mix(in srgb, var(--wasteland-green) 16%, var(--bg-tertiary)); font-weight: 760; } html[data-theme='wasteland'] .ccweb-task-board__card[data-runtime-state='running'] .ccweb-task-board__runtime-state::before { content: ''; flex: 0 0 auto; width: 0.38rem; height: 0.38rem; border-radius: 50%; background: var(--wasteland-green); box-shadow: 0 0 0.22rem color-mix(in srgb, var(--wasteland-green) 48%, transparent); } .ccweb-task-board__card-footer { align-items: flex-end; padding-top: 0.12rem; border-top: 1px solid var(--border-color); } .ccweb-task-board__metadata { flex: 1 1 auto; flex-direction: column; align-items: flex-start; min-width: 0; color: var(--text-muted); font-size: 0.65rem; } .ccweb-task-board__metadata span, .ccweb-task-board__metadata time { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ccweb-task-board__card-actions { flex: 0 0 auto; gap: 0.34rem; } .ccweb-task-board__status-select-wrap { display: block; width: 6.8rem; } .ccweb-task-board__card-select { height: 1.85rem; padding: 0 1.35rem 0 0.45rem; font-size: 0.67rem; cursor: pointer; } .ccweb-task-board__card-action { min-height: 1.85rem; padding: 0.22rem 0.48rem; border-radius: 0.48rem; font-size: 0.67rem; } .ccweb-task-board__empty { display: grid; grid-column: 1 / -1; place-items: center; align-content: center; width: min(31rem, calc(100vw - 3rem)); min-height: 19rem; padding: 2rem; border: 1px dashed var(--border-color); border-radius: 1rem; color: var(--text-muted); text-align: center; } .ccweb-task-board__empty-mark { color: var(--accent); font-size: 2.5rem; line-height: 1; } .ccweb-task-board__empty h3 { margin-top: 0.85rem; color: var(--text-primary); font-size: 1rem; } .ccweb-task-board__empty p { max-width: 26rem; margin-top: 0.35rem; font-size: 0.78rem; } .ccweb-task-board__status-layer { position: absolute; inset: 0; z-index: 20; display: grid; grid-template-columns: minmax(0, 1fr) minmax(22rem, 32rem); } .ccweb-task-board__status-scrim { appearance: none; width: 100%; min-width: 0; padding: 0; border: 0; background: color-mix(in srgb, var(--bg-primary) 72%, transparent); cursor: default; animation: ccweb-task-board-fade-in 160ms ease-out both; } .ccweb-task-board__status-panel { display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; min-height: 0; border-left: 1px solid var(--accent); background: var(--bg-primary); box-shadow: none; animation: ccweb-task-board-panel-in 180ms ease-out both; } .ccweb-task-board__status-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.05rem; border-bottom: 1px solid var(--border-color); } .ccweb-task-board__status-title { color: var(--text-primary); font-size: 1.08rem; } .ccweb-task-board__status-summary { margin-top: 0.2rem; color: var(--text-muted); font-size: 0.72rem; } .ccweb-task-board__status-body { min-height: 0; padding: 0.9rem; overflow-y: auto; scrollbar-color: color-mix(in srgb, var(--text-muted) 50%, transparent) transparent; scrollbar-width: thin; } .ccweb-task-board__add-status { margin-bottom: 0.8rem; border: 1px solid var(--border-color); border-radius: 0.8rem; background: var(--bg-secondary); } .ccweb-task-board__add-status-summary { padding: 0.78rem 0.86rem; color: var(--accent); font-size: 0.78rem; font-weight: 700; cursor: pointer; } .ccweb-task-board__add-status[open] > .ccweb-task-board__add-status-summary { border-bottom: 1px solid var(--border-color); } .ccweb-task-board__definition-list { display: flex; flex-direction: column; gap: 0.7rem; } .ccweb-task-board__definition { --task-board-status-color: var(--text-muted); display: flex; flex-direction: column; gap: 0.72rem; padding: 0.82rem; border: 1px solid var(--border-color); border-left-color: var(--task-board-status-color); border-radius: 0.76rem; background: var(--bg-secondary); } .ccweb-task-board__add-status .ccweb-task-board__definition { border: 0; border-radius: 0 0 0.76rem 0.76rem; } .ccweb-task-board__definition-header, .ccweb-task-board__definition-identity, .ccweb-task-board__definition-actions, .ccweb-task-board__migration { display: flex; align-items: center; } .ccweb-task-board__definition-header { justify-content: space-between; gap: 0.8rem; } .ccweb-task-board__definition-identity { min-width: 0; gap: 0.5rem; color: var(--text-primary); font-size: 0.8rem; } .ccweb-task-board__definition-identity strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ccweb-task-board__definition-kind { flex: 0 0 auto; color: var(--text-muted); font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 0.58rem; letter-spacing: 0.09em; } .ccweb-task-board__definition-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.58rem; } .ccweb-task-board__field { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; } .ccweb-task-board__field--wide { grid-column: 1 / -1; } .ccweb-task-board__field--checkbox { align-self: end; flex-direction: row; align-items: center; min-height: 2.28rem; padding: 0 0.15rem; } .ccweb-task-board__field--checkbox .ccweb-task-board__field-label { order: 2; } .ccweb-task-board__field-label, .ccweb-task-board__migration > span { color: var(--text-muted); font-size: 0.65rem; } .ccweb-task-board__field-control { min-height: 2.28rem; padding: 0.42rem 0.55rem; font-size: 0.73rem; } .ccweb-task-board__field-control:disabled { cursor: not-allowed; opacity: 0.55; } .ccweb-task-board__prompt { min-height: 3.4rem; resize: vertical; } .ccweb-task-board__color-input { padding: 0.22rem; } .ccweb-task-board__definition-enabled { width: 1rem; height: 1rem; margin: 0; accent-color: var(--accent); } .ccweb-task-board__definition-actions { justify-content: flex-end; flex-wrap: wrap; gap: 0.55rem; } .ccweb-task-board__definition-actions .ccweb-task-board__button { min-height: 2.15rem; } .ccweb-task-board__migration { flex: 1 1 12rem; justify-content: flex-start; gap: 0.42rem; min-width: 0; } .ccweb-task-board__migration .ccweb-task-board__field-control { flex: 1 1 auto; } .ccweb-task-board__status-empty { margin: 0; padding: 2rem 1rem; color: var(--text-muted); text-align: center; font-size: 0.78rem; } .ccweb-task-board :is( .ccweb-task-board__input, .ccweb-task-board__field-control, .ccweb-task-board__card-select, .ccweb-task-board__button, .ccweb-task-board__icon-button, .ccweb-task-board__card-action, .ccweb-task-board__card-open, .ccweb-task-board__status-scrim, summary ):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; box-shadow: 0 0 0 0.25rem var(--accent-light); } .ccweb-task-board[data-view='archived'] .ccweb-task-board__toolbar { box-shadow: inset 0 -2px var(--accent); } .ccweb-task-board[aria-busy='true'] .ccweb-task-board__title::after { content: ''; display: inline-block; width: 0.46rem; height: 0.46rem; margin-left: 0.52rem; border-radius: 50%; background: var(--accent); animation: ccweb-task-board-pulse 800ms ease-in-out infinite alternate; vertical-align: 0.12em; } .ccweb-task-tracking { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; gap: 0.34rem; width: auto; max-width: 100%; min-width: 0; min-height: 1.75rem; padding: 0.25rem 0.625rem; border: 1px solid var(--border-color); border-radius: 999px; color: var(--text-muted); background: var(--bg-tertiary); cursor: pointer; font-size: 0.6875rem; font-weight: 800; line-height: 1; transition: color 150ms ease, border-color 150ms ease, background-color 150ms ease, opacity 150ms ease; } .ccweb-task-tracking__title { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ccweb-task-tracking:hover { border-color: var(--accent); color: var(--text-primary); background: var(--accent-light); } .ccweb-task-tracking[data-enabled='true'] { color: var(--success); } .ccweb-task-tracking[data-pending='true'] { color: var(--accent); } .ccweb-task-tracking__dot { display: block; flex: 0 0 auto; width: 0.44rem; height: 0.44rem; border: 1px solid currentColor; border-radius: 50%; background: transparent; transition: color 150ms ease, background-color 150ms ease, transform 150ms ease; } .ccweb-task-tracking__input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; } .ccweb-task-tracking__status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; } .ccweb-task-tracking[data-enabled='true'] .ccweb-task-tracking__dot, .ccweb-task-tracking[data-pending='true'] .ccweb-task-tracking__dot { background: currentColor; } .ccweb-task-tracking:has(.ccweb-task-tracking__input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; box-shadow: 0 0 0 0.25rem var(--accent-light); } .ccweb-task-tracking__input:disabled { cursor: not-allowed; } .ccweb-task-tracking:has(.ccweb-task-tracking__input:disabled) { cursor: not-allowed; opacity: 0.58; } .ccweb-task-tracking[data-pending='true'] .ccweb-task-tracking__dot { animation: ccweb-task-board-pulse 700ms ease-in-out infinite alternate; } .task-board-panel { position: absolute; inset: 0; z-index: 20; display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; min-height: 0; overflow: hidden; background: var(--bg-primary); animation: ccweb-task-board-panel-in 180ms ease-out both; } .task-board-panel[hidden] { display: none !important; } .task-board-panel__header { display: flex; justify-content: flex-end; align-items: center; min-height: 3.1rem; padding: 0.42rem 0.7rem; border-bottom: 1px solid var(--border-color); } .task-board-panel__root { min-width: 0; min-height: 0; overflow: hidden; } .task-tracking-control { display: inline-flex; align-items: center; flex: 0 0 auto; width: auto; max-width: 100%; margin: 0 0 0 auto; padding: 0; } .chat-controls > .task-tracking-control { margin-left: auto; } .task-tracking-control[hidden] { display: none !important; } @media (max-width: 520px) { .task-board-panel__header { min-height: 2.8rem; } .task-tracking-control { flex-basis: auto; margin-left: auto; } } @media (max-width: 480px) { .chat-controls > .task-tracking-control { justify-self: end; align-self: center; } } @keyframes ccweb-task-board-enter { from { opacity: 0; } to { opacity: 1; } } @keyframes ccweb-task-board-panel-in { from { opacity: 0; transform: translateX(1rem); } to { opacity: 1; transform: translateX(0); } } @keyframes ccweb-task-board-fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes ccweb-task-board-pulse { from { opacity: 0.42; } to { opacity: 1; } } @keyframes ccweb-task-board-wasteland-runtime-tracer { 0%, 100% { top: 0.72rem; opacity: 0.55; transform: scale(0.72); } 50% { top: calc(100% - 1.04rem); opacity: 1; transform: scale(1); } } @media (max-width: 1180px) { .ccweb-task-board__toolbar { grid-template-columns: 1fr; gap: 0.75rem; } .ccweb-task-board__controls { grid-template-columns: minmax(13rem, 1fr) auto auto; } } @media (max-width: 820px) { .ccweb-task-board { min-height: 28rem; } .ccweb-task-board__toolbar { padding: 0.8rem; } .ccweb-task-board__controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .ccweb-task-board__search { grid-column: 1 / -1; } .ccweb-task-board__button { min-width: 0; } .ccweb-task-board__lanes { grid-auto-columns: min(84vw, 20rem); gap: 0.7rem; padding: 0.75rem; scroll-snap-type: x proximity; } .ccweb-task-board__column { scroll-snap-align: start; } .ccweb-task-board__status-layer { grid-template-columns: minmax(0, 1fr) minmax(20rem, 88vw); } } @media (max-width: 520px) { .ccweb-task-board__controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .ccweb-task-board__search { grid-column: 1 / -1; } .ccweb-task-board__lanes { grid-auto-columns: calc(100vw - 2rem); padding: 0.6rem; } .ccweb-task-board__card-footer { align-items: stretch; flex-direction: column; } .ccweb-task-board__card-actions, .ccweb-task-board__status-select-wrap { width: 100%; } .ccweb-task-board__card-actions > * { flex: 1 1 50%; } .ccweb-task-board__status-layer { display: block; } .ccweb-task-board__status-scrim { position: absolute; inset: 0; } .ccweb-task-board__status-panel { position: absolute; inset: 0; width: 100%; border-left: 0; } .ccweb-task-board__definition-grid { grid-template-columns: 1fr; } .ccweb-task-tracking { gap: 0.3rem; padding: 0.25rem 0.5rem; } } /* 横屏常亮模式:看板覆盖完整网页视口,宿主聊天界面不再参与排版。 */ @media (orientation: landscape) and (max-height: 768px) { body:has(.task-board-panel:not([hidden])) .menu-btn { display: none !important; } .task-board-panel { position: fixed; inset: 0; z-index: 400; display: block; width: 100vw; height: 100vh; height: 100dvh; min-width: 0; min-height: 0; overflow: hidden; background: var(--bg-primary); } .task-board-panel__root { position: absolute; inset: 0; width: 100vw; height: 100vh; height: 100dvh; min-width: 0; min-height: 0; overflow: hidden; } .task-board-panel__header { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 0.3rem); right: calc(env(safe-area-inset-right, 0px) + 0.35rem); z-index: 50; display: block; width: 1.9rem; min-height: 0; padding: 0; border: 0; background: transparent; pointer-events: none; } .task-board-panel__header .usage-dashboard__icon-button { width: 1.9rem; min-width: 1.9rem; height: 1.9rem; padding: 0; border: 1px solid var(--border-color); border-radius: 0.5rem; color: var(--text-secondary); background: var(--bg-tertiary); pointer-events: auto; } .ccweb-task-board { position: absolute; inset: 0; grid-template-rows: minmax(0, 1fr); width: auto; height: auto; min-height: 0; animation: none; } .ccweb-task-board__toolbar { display: none; grid-template-columns: minmax(0, auto) minmax(5.2rem, 1fr) auto; gap: 0.45rem; min-height: 2.3rem; padding: calc(env(safe-area-inset-top, 0px) + 0.22rem) calc(env(safe-area-inset-right, 0px) + 2.4rem) 0.22rem calc(env(safe-area-inset-left, 0px) + 0.42rem); border-bottom: 1px solid var(--border-color); background: var(--bg-primary); } .ccweb-task-board__heading { display: flex; align-items: baseline; gap: 0.38rem; min-width: 0; } .ccweb-task-board__title { flex: 0 0 auto; font-size: 0.78rem; letter-spacing: -0.015em; white-space: nowrap; } .ccweb-task-board__summary { display: none; } .ccweb-task-board__clock { display: flex; min-width: 0; min-height: 0; padding: clamp(0.65rem, 2.2vw, 1.2rem); flex-direction: column; align-items: flex-start; justify-content: center; gap: clamp(0.35rem, 1.4vh, 0.65rem); color: var(--text-primary); white-space: nowrap; background: var(--bg-secondary); } .ccweb-task-board__clock-time { color: var(--text-primary); font-size: clamp(2.25rem, 6.4vw, 4.6rem); font-weight: 680; font-variant-numeric: tabular-nums; letter-spacing: -0.07em; line-height: 0.9; } .ccweb-task-board__clock-date { color: var(--text-secondary); font-size: clamp(0.6rem, 1.2vw, 0.78rem); font-weight: 560; letter-spacing: 0.025em; } .ccweb-task-board__controls { display: flex; align-items: center; justify-content: flex-end; gap: 0.28rem; } .ccweb-task-board__search { flex: 0 1 min(9rem, 30vw); width: min(9rem, 30vw); transition: flex-basis 160ms ease, width 160ms ease; } .ccweb-task-board__search:not(:focus-within) { flex-basis: 1.9rem; width: 1.9rem; } .ccweb-task-board[data-search-active='true'] .ccweb-task-board__search, .ccweb-task-board__search:focus-within { flex-basis: min(9rem, 30vw); width: min(9rem, 30vw); } .ccweb-task-board__search-glyph { left: 0.55rem; font-size: 0.9rem; } .ccweb-task-board__input { height: 1.75rem; padding: 0 0.5rem 0 1.65rem; border-radius: 0.5rem; font-size: 0.65rem; } .ccweb-task-board[data-search-active='false'] .ccweb-task-board__search:not(:focus-within) .ccweb-task-board__input { padding-right: 0; color: transparent; cursor: pointer; } .ccweb-task-board[data-search-active='false'] .ccweb-task-board__search:not(:focus-within) .ccweb-task-board__input::placeholder { opacity: 0; } .ccweb-task-board__button { min-height: 1.75rem; padding: 0.2rem 0.4rem; border-radius: 0.42rem; font-size: 0.6rem; } .ccweb-task-board__workspace { display: block; height: 100%; min-height: 0; padding: 0; } .ccweb-task-board__wall { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); overflow: hidden; background: var(--border-color); } .ccweb-task-board__wall-grid { display: grid; grid-template-columns: repeat(var(--task-board-wall-columns), minmax(0, 1fr)); grid-template-rows: repeat(var(--task-board-wall-rows), minmax(0, 1fr)); width: 100%; height: 100%; min-width: 0; min-height: 0; overflow: hidden; gap: 1px; background: var(--border-color); } .ccweb-task-board__wall-column { --task-board-status-color: var(--text-muted); display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; min-height: 0; overflow: hidden; background: var(--bg-primary); } .ccweb-task-board__wall-column-header, .ccweb-task-board__wall-column-identity, .ccweb-task-board__wall-card-meta, .ccweb-task-board__wall-card-runtime { display: flex; align-items: center; } .ccweb-task-board__wall-column-header { min-width: 0; min-height: clamp(2rem, 6.8vh, 2.55rem); padding: clamp(0.35rem, 1.2vh, 0.58rem) clamp(0.5rem, 1.4vw, 0.82rem); justify-content: space-between; gap: 0.5rem; border-bottom: 1px solid var(--border-color); background: var(--bg-secondary); } .ccweb-task-board__wall-column-identity { min-width: 0; gap: clamp(0.34rem, 0.8vw, 0.52rem); } .ccweb-task-board__wall-column-dot { display: block; flex: 0 0 auto; width: clamp(0.38rem, 0.8vw, 0.5rem); height: clamp(0.38rem, 0.8vw, 0.5rem); border-radius: 50%; background: var(--task-board-status-color); box-shadow: 0 0 0 0.12rem color-mix(in srgb, var(--task-board-status-color) 18%, transparent); } .ccweb-task-board__wall-column-title { margin: 0; overflow: hidden; color: var(--text-primary); font-size: clamp(0.7rem, 1.5vw, 0.98rem); font-weight: 680; letter-spacing: -0.015em; text-overflow: ellipsis; white-space: nowrap; } .ccweb-task-board__wall-column-count { flex: 0 0 auto; color: var(--text-secondary); font-size: clamp(0.6rem, 1.15vw, 0.76rem); font-variant-numeric: tabular-nums; } .ccweb-task-board__wall-column-page { flex: 0 0 auto; color: var(--text-muted); font-size: clamp(0.55rem, 1vw, 0.68rem); font-variant-numeric: tabular-nums; } .ccweb-task-board__wall-column-body { display: grid; grid-auto-rows: minmax(0, 1fr); min-width: 0; min-height: 0; padding: clamp(0.35rem, 1.1vw, 0.65rem); overflow: hidden; gap: clamp(0.28rem, 0.8vw, 0.5rem); } .ccweb-task-board__wall-card { --task-board-status-color: var(--text-muted); position: relative; z-index: 1; display: flex; min-width: 0; min-height: 0; padding: clamp(0.4rem, 1.15vw, 0.72rem) clamp(0.45rem, 1.25vw, 0.78rem); overflow: hidden; flex-direction: column; gap: clamp(0.22rem, 0.8vh, 0.42rem); border: 1px solid var(--border-color); border-left: 0.16rem solid var(--task-board-status-color); border-radius: clamp(0.35rem, 0.8vw, 0.55rem); color: var(--text-primary); background: var(--bg-secondary); transform-origin: 0 50%; will-change: opacity, transform, clip-path; } .ccweb-task-board__wall-card-title { margin: 0; color: var(--text-primary); font-size: clamp(0.68rem, 1.45vw, 1rem); font-weight: 690; letter-spacing: -0.018em; line-height: 1.28; overflow-wrap: anywhere; } .ccweb-task-board__wall-card-summary { display: block; margin: 0; color: var(--text-secondary); font-size: clamp(0.56rem, 1.12vw, 0.76rem); line-height: 1.38; overflow-wrap: anywhere; white-space: normal; } .ccweb-task-board__wall-card-meta { margin-top: auto; flex-wrap: wrap; justify-content: space-between; gap: 0.3rem 0.6rem; color: var(--text-muted); font-size: clamp(0.52rem, 1vw, 0.68rem); } .ccweb-task-board__wall-card-runtime { gap: 0.3rem; } .ccweb-task-board__wall-card-runtime-dot { width: 0.36rem; height: 0.36rem; border-radius: 50%; background: var(--text-muted); } .ccweb-task-board__wall-card-runtime[data-running='true'] { color: var(--success); } .ccweb-task-board__wall-card-runtime[data-running='true'] .ccweb-task-board__wall-card-runtime-dot { background: currentColor; animation: ccweb-task-board-pulse 850ms ease-in-out infinite alternate; } .ccweb-task-board__wall-card-updated { color: var(--text-muted); } .ccweb-task-board__wall-column-empty, .ccweb-task-board__wall-empty { display: flex; min-width: 0; min-height: 0; align-items: center; justify-content: center; gap: 0.38rem; color: var(--text-muted); font-size: clamp(0.58rem, 1.15vw, 0.76rem); } .ccweb-task-board__wall-empty { flex-direction: column; background: var(--bg-primary); } .ccweb-task-board__wall-column-empty-mark, .ccweb-task-board__wall-empty-mark { color: var(--text-muted); font-size: 1.1rem; } .ccweb-task-board__lanes { display: none; grid-auto-flow: row; grid-auto-columns: auto; grid-auto-rows: auto; align-items: stretch; gap: 0; height: 100%; padding: 0; overflow-y: hidden; scroll-snap-type: none; } .ccweb-task-board__lanes[data-column-layout='fit'] { grid-template-columns: repeat(var(--task-board-column-count), minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); overflow-x: hidden; } .ccweb-task-board__lanes[data-column-layout='scroll'] { grid-template-columns: repeat(var(--task-board-column-count), minmax(10rem, 1fr)); grid-template-rows: minmax(0, 1fr); overflow-x: auto; } .ccweb-task-board__column { height: 100%; min-height: 0; overflow: hidden; border: 0; border-left: 1px solid var(--border-color); border-radius: 0; scroll-snap-align: none; } .ccweb-task-board__column:last-child { border-right: 1px solid var(--border-color); } .ccweb-task-board__column-header { position: static; flex: 0 0 auto; min-height: 1.72rem; gap: 0.3rem; padding: 0.27rem 0.36rem; border-radius: 0; } .ccweb-task-board__column-title-wrap { gap: 0.32rem; } .ccweb-task-board__column-dot { width: 0.4rem; height: 0.4rem; box-shadow: 0 0 0 0.12rem color-mix(in srgb, var(--task-board-status-color) 18%, transparent); } .ccweb-task-board__column-title { font-size: clamp(0.6rem, 1.08vw, 0.72rem); } .ccweb-task-board__column-count { min-width: 1.15rem; height: 1.08rem; padding: 0 0.25rem; font-size: 0.56rem; } .ccweb-task-board__column-disabled, .ccweb-task-board__column-empty { display: none; } .ccweb-task-board__column-body { flex: 1 1 auto; gap: 0.28rem; min-height: 0; padding: 0.3rem; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; -webkit-overflow-scrolling: touch; } .ccweb-task-board__card { flex: 0 0 auto; gap: 0.24rem; padding: 0.34rem; border-radius: 0.38rem; } .ccweb-task-board__card:hover, .ccweb-task-board__card:focus-within { transform: none; } .ccweb-task-board__card-top, .ccweb-task-board__card-summary, .ccweb-task-board__metadata { display: none; } .ccweb-task-board__card-title { font-size: clamp(0.61rem, 1.05vw, 0.72rem); line-height: 1.26; -webkit-line-clamp: 2; } .ccweb-task-board__card[data-runtime-state='idle'] .ccweb-task-board__state-row { display: none; } .ccweb-task-board__state-row { gap: 0.2rem; } .ccweb-task-board__runtime-state { min-height: 1.05rem; padding: 0.08rem 0.23rem; border-radius: 0.3rem; font-size: 0.52rem; } .ccweb-task-board__card-footer { align-items: center; flex-direction: row; padding-top: 0.22rem; } .ccweb-task-board__card-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; width: 100%; gap: 0.22rem; } .ccweb-task-board__status-select-wrap { width: auto; min-width: 0; } .ccweb-task-board__card-select { height: 1.36rem; padding: 0 1rem 0 0.32rem; border-radius: 0.35rem; font-size: 0.52rem; } .ccweb-task-board__card-action { min-height: 1.36rem; padding: 0.15rem 0.34rem; border-radius: 0.35rem; font-size: 0.52rem; } .ccweb-task-board__empty { width: 100%; height: 100%; min-height: 0; padding: 1rem; } .ccweb-task-board__status-layer { display: none !important; grid-template-columns: minmax(0, 1fr) minmax(19rem, 70vw); } .ccweb-task-board__status-header { padding: 0.55rem 0.7rem; } .ccweb-task-board__status-body { padding: 0.55rem; } } @media (orientation: landscape) and (max-height: 430px) { .ccweb-task-board__toolbar { min-height: 2.15rem; padding-top: calc(env(safe-area-inset-top, 0px) + 0.2rem); padding-bottom: 0.2rem; } .ccweb-task-board__title { font-size: 0.78rem; } .ccweb-task-board__summary { display: none; } .ccweb-task-board__clock-time { font-size: clamp(2.25rem, 5.5vw, 3.25rem); } .ccweb-task-board__clock-date { display: block; } .ccweb-task-board__clock { padding: 0.55rem; } .ccweb-task-board__wall-column-header { min-height: 1.8rem; padding: 0.28rem 0.48rem; } .ccweb-task-board__wall-column-body { padding: 0.28rem; gap: 0.24rem; } .ccweb-task-board__wall-card { padding: 0.32rem 0.42rem; gap: 0.18rem; } .ccweb-task-board__wall-card-title { font-size: clamp(0.64rem, 1.4vw, 0.82rem); } .ccweb-task-board__wall-card-summary { font-size: clamp(0.52rem, 1.05vw, 0.66rem); line-height: 1.3; } .ccweb-task-board__column-header { min-height: 1.72rem; padding-block: 0.24rem; } .ccweb-task-board__column-body { gap: 0.28rem; padding: 0.28rem; } .ccweb-task-board__card { gap: 0.24rem; padding: 0.34rem; } .ccweb-task-board__card-title { -webkit-line-clamp: 2; } } @media (prefers-reduced-motion: reduce) { html[data-theme='wasteland'] .ccweb-task-board__card[data-runtime-state='running']::after { top: 50%; opacity: 1; transform: translateY(-50%); animation: none; } .ccweb-task-board, .ccweb-task-board *, .ccweb-task-board *::before, .ccweb-task-board *::after, .ccweb-task-tracking, .ccweb-task-tracking *, .ccweb-task-tracking *::before, .ccweb-task-tracking *::after { scroll-behavior: auto !important; animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; } .ccweb-task-board__card:hover, .ccweb-task-board__card:focus-within { transform: none; } .ccweb-task-board__wall-card { will-change: auto; } } @media (forced-colors: active) { .ccweb-task-board__column-dot, .ccweb-task-board__definition-dot, .ccweb-task-board__wall-column-dot, .ccweb-task-board__wall-card-runtime-dot { border: 1px solid CanvasText; } .ccweb-task-board__button--primary { color: ButtonText; background: ButtonFace; } .ccweb-task-tracking[data-enabled='true'] .ccweb-task-tracking__dot { background: ButtonText; } }