/* Source, task, and board occupy fixed grid tracks with edge-to-edge connectors. */ .flow-heading { max-width: 850px; } .flow-bridge { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: center; } .flow-sources { grid-column: span 4; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: white; position: relative; min-width: 0; } .flow-panel-kicker { display: block; font-size: 13px; color: var(--muted); margin-bottom: 24px; } .flow-source-list { display: grid; gap: 8px; } .flow-source-list > div { display: flex; align-items: center; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 12px; } .flow-source-list > div:last-child { border: 0; } .flow-source-list > div > .icon { width: 16px; height: 16px; color: var(--muted); flex-shrink: 0; } .flow-count { display: inline-flex; align-items: center; justify-content: center; min-width: 23px; padding: 3px 6px; font-size: 12px; font-weight: 400; border-radius: 4px; background: var(--de-brand-100); color: var(--teal); font-variant-numeric: tabular-nums; } .flow-source-list .flow-count { margin-left: auto; } .flow-count-amber { background: #f7eee1; color: #966b36; } .flow-count-indigo { background: var(--de-indigo-100); color: #60548d; } .flow-count-neutral { background: var(--surface); color: var(--muted); } .flow-inbox-card { grid-column: span 4; padding: 24px; margin: 0; min-width: 0; position: relative; border-color: var(--line); } .flow-sources::after, .flow-inbox-card::after { content: ""; position: absolute; left: 100%; top: 50%; width: 25px; height: 1px; background: #b9c9cc; } .flow-inbox-card .task-source { font-size: 12px; } .flow-inbox-card .avatar { width: 23px; height: 23px; } .flow-inbox-card .task-title { font-size: 23px; font-weight: 400; line-height: 1.35; margin: 28px 0 32px; } .flow-inbox-card .timestamp { font-size: 10px; } .flow-inbox-card .mini-action { padding: 8px 10px; gap: 8px; font-size: 11px; } .flow-inbox-card .mini-action .icon { width: 13px; height: 13px; } .flow-board-field { grid-column: span 4; min-width: 0; padding: 16px; border-radius: 8px; border: 1px solid var(--line); background: var(--surface); } .flow-board { background: white; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; } .flow-board-nav { display: flex; align-items: center; gap: 14px; padding: 16px; font-size: 12px; color: var(--muted); } .flow-board-nav strong { font-weight: 400; margin-right: auto; color: var(--ink); } .flow-board-nav .icon { width: 13px; height: 13px; } .flow-board-toolbar { display: flex; align-items: center; justify-content: space-between; border-block: 1px solid var(--line); padding: 12px; font-size: 11px; } .flow-board-columns { display: grid; gap: 10px; padding: 12px; background: var(--surface); } .flow-board-columns .task-card { min-height: 152px; padding: 14px; margin: 0; display: flex; flex-direction: column; } .flow-board-columns .task-source { font-size: 10px; gap: 6px; } .flow-board-columns .avatar { width: 18px; height: 18px; flex-shrink: 0; } .flow-board-columns .task-title { font-size: 15px; line-height: 1.4; margin: 18px 0; } .flow-board-columns .task-footer { margin-top: auto; gap: 6px; } .flow-board-columns .timestamp, .flow-board-columns .mini-action { font-size: 10px; } /* The wide frame keeps the surrounding workflow visible, without 3D decoration. */ .pano-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 44px; } .pano-controls { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; } .pano-focus-control { display: inline-flex; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 4px; gap: 4px; } .pano-focus-control button { display: flex; align-items: center; gap: 8px; min-height: 38px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--muted); font-size: 12px; padding: 7px 12px; } .pano-focus-control button[aria-pressed="true"] { background: white; border-color: var(--line); color: var(--ink); } .pano-focus-control .flow-count { font-size: 10px; min-width: 18px; } .pano-move-button { display: inline-flex; align-items: center; gap: 12px; border: 0; background: transparent; color: var(--teal); min-height: 44px; font-size: 12px; padding: 8px 0; } .pano-move-button .icon { width: 16px; height: 16px; } .pano-scroll { overflow-x: auto; overflow-y: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); scrollbar-width: thin; scrollbar-color: #bed0d4 transparent; scroll-snap-type: x proximity; } .pano-scroll:focus-visible { outline: 2px solid var(--teal); outline-offset: 5px; } .pano-board { display: grid; grid-template-columns: 1fr 1fr 1.35fr 1fr; min-width: 1040px; min-height: 550px; } .pano-column { min-width: 0; padding: 22px 14px 32px; border-right: 1px solid var(--line); scroll-snap-align: start; } .pano-column:last-child { border-right: 0; } .pano-column h3 { display: flex; align-items: center; gap: 9px; font-size: 15px; letter-spacing: -0.015em; padding: 0 2px 23px; } .pano-col-waiting { background: var(--surface); } .pano-col-done { background: var(--surface); } .pano-card-stack { display: grid; gap: 12px; } .pano-card-stack .task-card { margin: 0; padding: 17px 15px; } .pano-card-stack .task-source { font-size: 11px; } .pano-card-stack .task-title { font-size: 16px; margin: 20px 0 22px; } .pano-card-stack .mini-action { font-size: 11px; } .pano-card-stack .timestamp { font-size: 10px; } .pano-moving-card { border-color: #8bb9c3; position: relative; } .pano-moving-card::before { position: absolute; content: ""; left: -1px; top: 20px; bottom: 20px; width: 3px; background: var(--teal); border-radius: 0 3px 3px 0; } .pano-task-detail { display: flex; gap: 6px; margin: -7px 0 25px; flex-wrap: wrap; } .pano-task-detail > span { background: var(--de-indigo-100); color: #695990; font-size: 10px; padding: 4px 6px; border-radius: 3px; } .pano-completed-card { border-color: #d9e3dc; } .pano-empty-state { display: flex; align-items: center; gap: 7px; font-size: 11px; padding: 22px 8px; color: #57776f; } .pano-empty-state .icon { width: 14px; height: 14px; } [data-pano-focus="waiting"] .pano-column:not(.pano-col-waiting) .pano-card-stack { opacity: 0.42; } [data-pano-state="done"] .pano-moving-card { border-color: #8db5a7; } [data-pano-state="done"] .pano-moving-card::before { background: #527e6e; } [data-pano-state="done"] [data-pano-task-badge] { background: #e8f2ec; color: #46715e; } /* Equal stages share card and footer baselines; selection does not move the grid. */ .progress-heading { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: end; } .progress-staircase { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 48px; } .progress-step { min-width: 0; display: flex; flex-direction: column; } .progress-selector { display: flex; align-items: flex-start; gap: 12px; width: 100%; text-align: left; border: 0; background: transparent; padding: 0 0 20px; color: var(--ink); min-height: 48px; } .progress-selector strong { display: block; font-weight: 400; font-size: 23px; letter-spacing: -0.035em; margin-bottom: 8px; } .progress-selector > .icon { width: 15px; height: 15px; margin: 6px 0 0 auto; opacity: 0.25; flex-shrink: 0; } .progress-selector[aria-pressed="true"] > .icon { opacity: 1; color: var(--teal); } .progress-card-field { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 20px; flex: 1; display: flex; flex-direction: column; } .progress-stage-label { display: flex; align-items: center; gap: 9px; font-size: 12px; padding-bottom: 20px; } .progress-card-field .task-card { padding: 20px; margin: 0; min-height: 230px; display: flex; flex-direction: column; flex: 1; } .progress-card-field .task-source { font-size: 11px; } .progress-card-field .task-title { font-size: 20px; font-weight: 400; line-height: 1.35; margin: 26px 0; } .progress-card-field .task-footer { margin-top: auto; } .progress-card-field .mini-action { font-size: 11px; } .progress-reviewed { display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; border-radius: 4px; background: #eaf3ec; color: #496e59; font-size: 10px; } .progress-reviewed .icon { width: 12px; height: 12px; } .progress-count-done { background: #e8f2ec; color: #46715e; } [data-progress-stage="see"] [data-progress-card="see"] .task-card, [data-progress-stage="review"] [data-progress-card="review"] .task-card, [data-progress-stage="move"] [data-progress-card="move"] .task-card { border-color: var(--teal); } [data-flow-motion="true"] .pano-card-stack { transition: opacity 180ms ease; } [data-flow-motion="true"] .progress-card-field .task-card { transition: border-color 180ms ease; } [data-flow-motion="true"] .progress-selector > .icon { transition: opacity 160ms ease; } @media (max-width: 1100px) { .flow-sources, .flow-inbox-card { padding: 20px; } .flow-board-field { padding: 12px; } .flow-inbox-card .task-title { font-size: 21px; } .progress-card-field { padding: 14px; } .progress-card-field .task-card { padding: 16px; } .progress-card-field .task-title { font-size: 18px; } } @media (max-width: 800px) { .flow-bridge { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 32px 24px; } .flow-sources, .flow-inbox-card, .flow-board-field { grid-column: 2 / 6; } .flow-sources::after, .flow-inbox-card::after { left: 50%; top: 100%; width: 1px; height: 33px; } .flow-source-list > div { font-size: 13px; } .flow-inbox-card .task-title { font-size: 24px; } .flow-board-columns .task-source { font-size: 12px; } .flow-board-columns .task-title { font-size: 18px; } .pano-heading { gap: 24px; align-items: flex-start; flex-direction: column; } .progress-heading { grid-template-columns: 1fr; gap: 24px; } .progress-staircase { grid-template-columns: 1fr; gap: 28px; } .progress-selector { min-height: 0; } .progress-card-field .task-card { min-height: 205px; } } @media (max-width: 540px) { .flow-bridge { grid-template-columns: 1fr; } .flow-sources, .flow-inbox-card, .flow-board-field { grid-column: 1; } .pano-heading { margin-bottom: 28px; } .pano-controls { align-items: flex-start; flex-direction: column; gap: 10px; } .pano-focus-control button { min-height: 36px; padding-inline: 10px; } .pano-move-button { font-size: 12px; padding-block: 4px; min-height: 36px; } .pano-board { min-width: 1110px; grid-template-columns: 260px 260px 320px 270px; min-height: 510px; } .pano-column { padding: 20px 12px; } .progress-staircase { margin-top: 32px; } .progress-card-field { padding: 20px; } .progress-card-field .task-card { padding: 20px; } .progress-card-field .task-title { font-size: 21px; } }