    .recommend {
      border: 1px solid var(--line);
      border-radius: var(--radius-card);
      padding: var(--card-padding);
      background: linear-gradient(135deg, var(--task-surface-subtle) 0, var(--panel) 42%);
      box-shadow: 0 1px 2px rgba(66,44,20,.04);
    }
    .recommend.is-child-view {
      margin-left: var(--task-indent-small, 0px);
      border-left: 3px solid var(--task-border-strong);
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
    }

    .recommend b {
      display: flex;
      align-items: center;
      gap: var(--sp-2);
      font-size: var(--fs-body-lg);
      margin-bottom: 7px;
    }

    .recommend b::before {
      content: "";
      flex: 0 0 auto;
      width: 8px;
      height: 8px;
      border-radius: var(--r-full);
      background: var(--task-color, var(--accent-mid));
      box-shadow: 0 0 0 4px var(--task-overlay);
    }

    .recommend p {
      margin: 0;
      color: var(--muted);
      font-size: var(--fs-label);
      line-height: 1.5;
    }

    .recommend-groups { display: grid; gap: var(--sp-4); }
    .recommend-group {
      overflow: hidden;
      border: 1px solid var(--hair);
      border-radius: var(--overview-stat-radius);
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
      background: var(--ground);
    }
    .recommend-group-head {
      display: flex;
      min-height: 48px;
      align-items: center;
      justify-content: space-between;
      gap: var(--sp-3);
      padding: var(--sp-3) var(--sp-4);
      border-left: 3px solid var(--espresso);
      border-bottom: 1px solid var(--hair);
      background: var(--band-strong);
    }
    .recommend-group.is-recurring .recommend-group-head { border-left-color: var(--color-project-2); }
    .recommend-group-head > div { display: flex; align-items: center; gap: var(--sp-3); }
    .recommend-group-mark { display: none; }
    .recommend-group.is-recurring .recommend-group-mark { background: var(--color-recurring); }
    .recommend-group-head h3 { margin: 0; color: var(--color-matrix-deep); font-size: var(--fs-body); }
    .recommend-group-head small { color: var(--muted); font-size: var(--fs-caption); }
    .recommend-group .recommend-tree { gap: 0; padding: 0; background: var(--panel); }
    .today .recommend-group .recommend-tree .recommend {
      display: grid;
      grid-template-columns: 24px minmax(0, 1fr) 96px 96px var(--priority-pill-width);
      align-items: center;
      column-gap: var(--sp-3);
      min-height: 68px;
      margin-left: 0;
      padding: 14px var(--sp-4);
      border: 0;
      border-bottom: 1px solid var(--hair);
      border-radius: 0;
      background: transparent;
      box-shadow: inset 3px 0 var(--task-color, var(--accent));
    }
    .today .recommend-group .recommend:last-child { border-bottom: 0; }
    .today .recommend-group .recommend.is-child-view { border-left: 0; }
    .today .recommend-group .recommend-tree .recommend.is-child-view::before { display: none; }
    .recommend-group .recommend b { display: block; margin: 0; color: var(--color-matrix-deep); font-size: var(--fs-body); font-weight: 600; }
    .recommend-group .recommend b::before { display: none; }
    .recommend-group .recommend p { margin-top: var(--sp-1); font-size: var(--fs-caption); line-height: 1.5; }
    .recommend-code { color: var(--color-matrix-faint); font-size: var(--fs-caption); }
    .recommend-cadence {
      justify-self: stretch;
      color: var(--muted);
      font-size: var(--fs-label);
      text-align: center;
      white-space: nowrap;
    }
    .recommend-stage {
      display: inline-flex;
      justify-self: stretch;
      align-items: center;
      justify-content: center;
      gap: var(--sp-2);
      color: var(--muted);
      font-size: var(--fs-label);
      text-align: center;
      white-space: nowrap;
    }
    .recommend-stage i { width: 6px; height: 6px; border-radius: var(--r-full); background: var(--color-project-2); }
    .recommend-stage.is-planned i { background: var(--accent); }
    .recommend-priority { display: flex; width: 100%; justify-content: center; }
    .recommend-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); margin-top: var(--sp-2); }
    .recommend-meta span,
    .recommend-meta strong { padding: 3px 7px; border-radius: var(--r-full); font-size: var(--fs-caption); font-weight: 600; }
    .recommend-meta span { background: var(--task-surface); color: var(--muted); }
    .recommend-meta strong { background: var(--accent-pale); color: var(--accent); }
    .recommend-group-empty { padding: 24px 14px; color: var(--muted); font-size: var(--fs-caption); text-align: center; }

    .board {
      display: block;
      gap: var(--sp-2);
      min-width: 0;
      max-width: 100%;
      padding-bottom: 4px;
      overscroll-behavior-inline: contain;
    }

    .task-table-wrap {
      overflow-x: auto;
      padding-bottom: 2px;
      border-radius: var(--radius-card);
    }
    .task-table {
      width: 100%;
      min-width: 1040px;
      border-collapse: separate;
      border-spacing: 0;
      table-layout: fixed;
      font-size: var(--fs-label);
    }
    .task-col-title { width: auto; }
    .task-col-cadence { width: 112px; }
    .task-col-stage { width: 108px; }
    .task-col-owner { width: 96px; }
    .task-col-priority { width: 110px; }
    .task-col-time { width: 124px; }
    .task-col-menu { width: 66px; }
    .task-table th,
    .task-table td {
      padding: 16px 18px;
      border-bottom: 1px solid var(--line);
      text-align: left;
      vertical-align: middle;
    }
    .task-table th:nth-child(n + 2) { text-align: center; }
    .task-table td:nth-child(2),
    .task-table td:nth-child(3),
    .task-table td:nth-child(4),
    .task-table td:nth-child(5),
    .task-table td:nth-child(6) { text-align: center; }
    .task-table td:nth-child(5) .priority-pill { margin-inline: auto; }
    .task-table td:empty::after { color: var(--text-muted-faint); content: "—"; }
    .task-table th {
      border-bottom-color: var(--espresso-deep);
      background: var(--espresso);
      color: var(--on-espresso);
      font-size: var(--fs-caption);
      font-weight: 650;
      letter-spacing: .06em;
      line-height: 1.5;
      white-space: nowrap;
    }
    .task-table tbody td:not(:first-child) { white-space: nowrap; }
    .task-table tbody tr:hover td {
      background: var(--task-surface-hover);
    }
    .task-table-title { min-width: 250px; }
    .task-table-row .task-table-title { padding-left: 18px; }
    .task-title-button {
      display: flex;
      min-height: 32px;
      align-items: center;
      gap: var(--sp-3);
      padding: 0;
      border: 0;
      background: transparent;
      color: var(--ink);
      font-size: var(--fs-body);
      font-weight: 650;
      text-align: left;
    }
    .task-title-button:hover { background: transparent; color: var(--accent); }
    .task-title-button::before {
      content: "";
      flex: 0 0 auto;
      width: 8px;
      height: 8px;
      border-radius: var(--r-full);
      background: var(--task-color, var(--accent-mid));
      box-shadow: 0 0 0 4px var(--task-overlay);
    }
    .task-row-description { display: block; margin-top: 6px; color: var(--muted); font-size: var(--fs-caption); line-height: 1.65; max-width: 520px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .project-group-spacer td {
      height: 16px;
      padding: 0;
      border: 0;
      background: transparent;
    }
    .project-group-spacer td:empty::after { content: none; }
    .task-table tbody .project-group-spacer:hover td { background: transparent; }
    .project-group-row td {
      border-top: 1px solid var(--hair);
      background: var(--panel);
    }
    .project-group-row td:first-child {
      border-left: 3px solid var(--task-color, var(--accent));
      border-top-left-radius: 0;
    }
    .project-group-row td:last-child {
      border-right: 1px solid var(--hair);
      border-top-right-radius: var(--radius-card);
    }
    .project-group-title { display: grid; min-width: 0; gap: var(--sp-2); }
    .project-group-title .task-title-button::before { width: 9px; height: 9px; box-shadow: 0 0 0 4px var(--task-overlay); }
    .project-group-description {
      overflow: hidden;
      color: var(--muted);
      font-size: var(--fs-caption);
      line-height: 1.5;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .project-group-tools { display: flex; flex: 0 0 auto; align-items: center; gap: var(--sp-1); }
    .project-group-meta { display: block; overflow: hidden; color: var(--muted); font-size: var(--fs-caption); line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
    .project-child-row td {
      background: var(--surface-soft);
    }
    .project-child-row td:first-child {
      border-left: 3px solid var(--task-color, var(--accent));
    }
    .project-child-row td:last-child { border-right: 1px solid var(--hair); }
    .project-child-row .task-table-title {
      padding-left: calc(18px + var(--project-indent, 20px));
    }
    .project-child-row .task-table-title::before {
      content: none;
    }
    .project-child-row .task-table-title::after {
      content: none;
    }
    .project-child-row .task-title-button::before { width: 6px; height: 6px; box-shadow: none; }
    .project-empty-child td {
      padding: 12px 18px 13px 40px;
      border-right: 1px solid var(--hair);
      border-left: 3px solid var(--task-color, var(--accent));
      background: var(--surface-soft);
      color: var(--muted);
    }
    .project-empty-child button {
      min-height: 34px;
      border-color: transparent;
      background: transparent;
      color: var(--muted);
      font-size: var(--fs-caption);
    }
    .project-inline-child td {
      padding: 12px 18px 12px calc(40px + var(--project-indent, 0px));
      border-right: 1px solid var(--hair);
      border-left: 3px solid var(--task-color, var(--accent));
      background: var(--surface-soft);
    }
    .project-group > tr:last-child > td {
      border-bottom: 1px solid var(--hair);
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
    }
    .project-group > tr:last-child > td:last-child { border-bottom-right-radius: var(--radius-card); }
    .inline-child-form { display: flex; max-width: 620px; align-items: center; gap: var(--sp-2); }
    .inline-child-form input { min-height: 34px; flex: 1 1 auto; border-radius: var(--r-md); }
    .inline-child-form button { min-height: 32px; white-space: nowrap; }
    .project-row-menu { position: relative; }
    .project-row-menu summary {
      display: grid;
      width: 30px;
      min-height: 30px;
      place-items: center;
      border-radius: var(--r-md);
      color: var(--muted);
      cursor: pointer;
      font-size: var(--fs-title);
      letter-spacing: 1px;
      list-style: none;
      user-select: none;
    }
    .project-row-menu summary::-webkit-details-marker { display: none; }
    .project-row-menu summary:hover,
    .project-row-menu[open] summary { background: var(--soft); color: var(--ink); }
    .project-row-menu-popover {
      display: grid;
      position: absolute;
      top: 34px;
      right: 0;
      z-index: 30;
      width: 168px;
      padding: 5px;
      border: 1px solid var(--line);
      border-radius: var(--radius-panel);
      background: var(--panel);
      box-shadow: 0 14px 34px rgba(66,44,20,.15);
    }
    .project-row-menu-popover button {
      min-height: 32px;
      padding: 0 9px;
      border: 0;
      border-radius: var(--r-sm);
      background: transparent;
      font-size: var(--fs-caption);
      text-align: left;
    }
    .project-row-menu-popover button:hover { background: var(--soft); }
    .project-row-menu-popover .danger {
      margin-top: 3px;
      border-top: 1px solid var(--line);
      border-radius: 0 0 var(--r-sm) var(--r-sm);
      color: var(--danger);
    }
    .project-table-menu-cell { width: 150px; text-align: right !important; }
    .project-row-actions {
      display: flex;
      align-items: flex-start;
      justify-content: flex-end;
      gap: var(--sp-2);
      min-width: 0;
    }
    .project-row-actions .decision-link-group {
      flex: 1 1 auto;
      justify-content: flex-end;
    }
    .project-row-actions .project-row-menu { flex: 0 0 auto; }

    .task-title-line {
      display: inline-flex;
      min-width: 0;
      max-width: 100%;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--sp-2);
    }
    .task-title-line > .decision-link-group { flex: 0 0 auto; }
    .task-title-line > h3 { margin: 0; }

    .decision-link-group {
      display: flex;
      min-width: 0;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--sp-1) var(--sp-2);
    }
    .decision-count-badge {
      display: inline-flex;
      min-height: 24px;
      flex: 0 0 auto;
      align-items: center;
      gap: var(--sp-1);
      padding: 0 var(--sp-2);
      border: 1px solid var(--accent-border);
      border-radius: var(--r-full);
      background: var(--accent-surface-subtle);
      color: var(--espresso);
      font-size: var(--fs-caption);
      font-weight: 650;
      line-height: 1;
      white-space: nowrap;
    }
    .decision-count-badge .decision-flag {
      width: 12px;
      height: 13px;
      transform: translateY(.5px);
    }
    .decision-flag {
      display: inline-block;
      width: 14px;
      height: 16px;
      flex: 0 0 auto;
      color: currentColor;
      overflow: visible;
    }
    .decision-flag-pole,
    .decision-flag-face {
      fill: none;
      stroke: currentColor;
      stroke-width: 1.25;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    .decision-flag.is-filled .decision-flag-face { fill: currentColor; }
    .decision-count-badge:hover {
      border-color: var(--accent-border-strong);
      background: var(--accent-surface);
      color: var(--espresso-deep);
    }
    .decision-count-badge:focus-visible {
      outline: 2px solid var(--accent);
      outline-offset: 2px;
    }
    .decision-count-badge.is-overdue {
      border-color: var(--danger-border-mixed);
      background: var(--danger-surface);
      color: var(--danger);
    }
    .decision-count-overdue {
      padding-left: var(--sp-1);
      border-left: 1px solid var(--danger-border-mixed);
      font-weight: 700;
    }
    .recurring-card-actions button.decision-count-badge,
    .recurring-child-meta button.decision-count-badge {
      border-color: var(--accent-border);
      background: var(--accent-surface-subtle);
      color: var(--espresso);
    }
    .recurring-card-actions button.decision-count-badge.is-overdue,
    .recurring-child-meta button.decision-count-badge.is-overdue {
      border-color: var(--danger-border-mixed);
      background: var(--danger-surface);
      color: var(--danger);
    }
    .recurring-card .recurring-card-actions {
      flex-wrap: wrap;
      align-items: center;
    }
    .recurring-card-actions .decision-link-group {
      flex: 1 1 100%;
    }
    .recurring-child .recurring-child-meta {
      flex-wrap: wrap;
      white-space: nowrap;
    }
    .recurring-child-meta .decision-link-group {
      flex: 1 1 100%;
      justify-content: flex-end;
    }
    .recurring-child-main .task-title-line { overflow: visible; color: inherit; }
    .recurring-child-main .task-title-line > strong { color: var(--ink); font-size: var(--fs-label); }
    .recurring-child-main .task-title-line .decision-count-badge { color: var(--espresso); }
    .priority-pill {
      --priority-pill-border: var(--line);
      --priority-pill-bg: var(--panel);
      --priority-pill-text: var(--matrix-label);
      --priority-pill-marker: var(--matrix-label-faint);
      display: inline-flex;
      width: var(--priority-pill-width);
      min-height: 28px;
      min-width: var(--priority-pill-width);
      flex: 0 0 auto;
      align-items: center;
      justify-content: center;
      gap: var(--sp-1);
      padding: 5px 8px;
      border: 1px solid var(--priority-pill-border);
      border-radius: var(--r-full);
      background: var(--priority-pill-bg);
      color: var(--priority-pill-text);
      font-size: var(--fs-caption);
      line-height: 1.15;
      white-space: nowrap;
      box-shadow: var(--matrix-chip-shadow);
    }
    .priority-pill-marker {
      width: 6px;
      height: 6px;
      flex: 0 0 6px;
      border-radius: var(--r-full);
      background: var(--priority-pill-marker);
    }
    .priority-pill-label { font-weight: 700; }
    .priority-pill-value {
      display: inline-block;
      min-width: 3ch;
      flex: 0 0 auto;
      font-variant-numeric: tabular-nums;
      text-align: right;
      opacity: .76;
    }
    .priority-pill.is-high {
      --priority-pill-border: var(--matrix-priority-high-border);
      --priority-pill-bg: var(--matrix-priority-high-bg);
      --priority-pill-text: var(--matrix-priority-high);
      --priority-pill-marker: var(--matrix-priority-high);
    }
    .priority-pill.is-medium {
      --priority-pill-border: var(--matrix-priority-medium-border);
      --priority-pill-bg: var(--matrix-priority-medium-bg);
      --priority-pill-text: var(--matrix-priority-medium);
      --priority-pill-marker: var(--matrix-priority-medium);
    }
    .priority-pill.is-low {
      --priority-pill-border: var(--matrix-priority-low-border);
      --priority-pill-bg: var(--matrix-priority-low-bg);
      --priority-pill-text: var(--matrix-priority-low);
      --priority-pill-marker: var(--matrix-priority-low);
    }

    .decision-toolbar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: var(--sp-2);
      margin-bottom: 10px;
    }
    .decision-list { display: grid; }
    .decision-card {
      display: grid;
      gap: var(--sp-2);
      padding: var(--sp-4);
      border: 0;
      border-bottom: 1px solid var(--border-subtle);
      border-radius: 0;
      background: var(--panel);
    }
    .decision-card:last-child { border-bottom: 0; }
    .decision-card:focus-visible,
    .decision-card.is-linked-target {
      position: relative;
      z-index: 1;
      outline: 2px solid var(--accent);
      outline-offset: -2px;
      background: var(--accent-surface);
    }
    .decision-card.is-overdue {
      border-left: 3px solid var(--danger);
      background: var(--danger-surface);
    }
    .decision-card.is-orphan {
      border-left: 3px solid var(--accent);
      background: var(--accent-surface-strong);
    }
    .decision-card-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: var(--sp-3);
    }
    .decision-card-title-row {
      display: flex;
      flex: 1 1 auto;
      min-width: 0;
      align-items: center;
      flex-wrap: wrap;
      gap: var(--sp-2);
    }
    .decision-card-title-row h3 { min-width: 0; }
    .decision-states {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: var(--sp-1);
    }
    .decision-state {
      display: inline-flex;
      min-height: 22px;
      align-items: center;
      padding: 0 var(--sp-2);
      border: 1px solid var(--accent-border-subtle);
      border-radius: var(--r-full);
      background: var(--accent-surface-subtle);
      color: var(--espresso);
      font-size: var(--fs-caption);
      font-weight: 650;
      white-space: nowrap;
    }
    .decision-state.is-overdue {
      border-color: var(--danger-border-mixed);
      background: var(--danger-surface);
      color: var(--danger);
    }
    .decision-state.is-orphan {
      border-color: var(--accent-border-strong);
      background: var(--accent-surface);
      color: var(--accent-strong);
    }
    .decision-state.is-decided {
      border-color: var(--line);
      background: var(--surface-soft);
      color: var(--muted);
    }
    .decision-state .decision-flag {
      width: 12px;
      height: 14px;
      margin-right: 5px;
    }
    .decision-card h3 { margin: 0; font-size: var(--fs-body-lg); line-height: 1.3; }
    .decision-card p { margin: 0; color: var(--muted); font-size: var(--fs-caption); line-height: 1.5; }
    .decision-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--sp-2) var(--sp-3);
    }
    .decision-meta-facts {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--sp-1) var(--sp-3);
      color: var(--muted);
      font-size: var(--fs-caption);
    }
    .decision-meta-facts > span {
      white-space: nowrap;
    }
    .decision-meta-facts > span + span {
      position: relative;
      padding-left: var(--sp-3);
    }
    .decision-meta-facts > span + span::before {
      content: "·";
      position: absolute;
      left: 3px;
      color: var(--text-muted-faint);
      font-weight: 700;
    }
    .decision-deadline.is-overdue {
      color: var(--danger);
      font-weight: 650;
    }
    .decision-result {
      display: grid;
      gap: var(--sp-1);
      margin-top: var(--sp-1);
      padding: var(--sp-2) var(--sp-3);
      border: 0;
      border-left: 3px solid var(--accent-mid);
      border-radius: 0;
      background: var(--accent-surface-subtle);
    }
    .decision-result strong {
      color: var(--espresso);
      font-size: var(--fs-caption);
      font-weight: 700;
    }
    .decision-result p {
      color: var(--ink);
      font-size: var(--fs-label);
      white-space: pre-wrap;
      overflow-wrap: anywhere;
    }
    .decision-result.is-empty {
      border-left-color: var(--border-muted);
      background: var(--surface-soft);
    }
    .decision-card[data-decision-expandable="true"] { cursor: pointer; }
    .decision-card[data-decision-expandable="true"]:hover { background: var(--accent-surface-subtle); }
    .decision-card.is-collapsed .decision-context,
    .decision-card.is-collapsed .decision-meta,
    .decision-card.is-collapsed .decision-result { display: none; }
    .decision-result.is-empty strong,
    .decision-result.is-empty p { color: var(--muted); }
    .decision-actions {
      display: flex;
      flex: 0 0 auto;
      align-items: center;
      justify-content: flex-end;
      flex-wrap: wrap;
      gap: var(--sp-1);
    }
    .decision-actions button { min-height: 31px; padding: 0 9px; font-size: var(--fs-caption); }
    .decision-actions button:disabled,
    .decision-actions button[aria-disabled="true"] {
      border-color: var(--border-subtle);
      background: var(--surface-soft);
      color: var(--muted);
      cursor: not-allowed;
      opacity: .66;
    }
    .decision-section-count {
      flex: 0 0 auto;
      color: var(--muted);
      font-size: var(--fs-caption);
      font-variant-numeric: tabular-nums;
      font-style: normal;
      white-space: nowrap;
    }
    .decision-related-link,
    .decision-related-missing {
      display: inline-flex;
      width: fit-content;
      max-width: 100%;
      min-height: 27px;
      align-items: center;
      gap: var(--sp-2);
      padding: 3px 8px;
      border: 1px solid var(--accent-border-subtle);
      border-radius: var(--r-full);
      background: var(--accent-surface-subtle);
      color: var(--espresso);
      font-size: var(--fs-caption);
    }
    .decision-related-link span {
      color: var(--accent);
      font-size: var(--fs-caption);
      font-weight: 650;
    }
    .decision-related-link strong {
      min-width: 0;
      overflow: hidden;
      color: var(--espresso);
      font-size: var(--fs-caption);
      font-weight: 600;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .decision-related-link:hover {
      border-color: var(--accent-border-strong);
      background: var(--accent-surface);
    }
    .decision-related-missing {
      border-style: dashed;
      color: var(--muted);
    }
    .decision-orphan-block {
      overflow: hidden;
      margin-top: var(--sp-4);
      border: 1px solid var(--accent-border-strong);
      border-radius: var(--radius-card);
      background: var(--panel);
    }
    .decision-orphan-block > header {
      display: flex;
      min-height: 48px;
      align-items: center;
      justify-content: space-between;
      gap: var(--sp-3);
      padding: var(--sp-3) var(--sp-4);
      border-bottom: 1px solid var(--accent-border-strong);
      background: var(--accent-surface-strong);
    }
    .decision-orphan-block > header > div {
      display: grid;
      gap: var(--sp-1);
    }
    .decision-orphan-block > header strong {
      color: var(--ink);
      font-size: var(--fs-body);
    }
    .decision-orphan-block > header span {
      color: var(--muted);
      font-size: var(--fs-caption);
    }
    .decision-orphan-block > header em {
      display: grid;
      min-width: 22px;
      height: 22px;
      place-items: center;
      border-radius: var(--r-full);
      background: var(--espresso);
      color: var(--on-espresso);
      font-size: var(--fs-caption);
      font-style: normal;
      font-weight: 700;
    }
    .decision-orphan-block .decision-list { background: var(--panel); }
    .decision-search { display: grid; gap: var(--sp-1); margin-bottom: var(--sp-3); }
    .decision-search label { color: var(--muted); font-size: var(--fs-caption); font-weight: 700; }
    .decision-search input { min-height: var(--height-control); padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--panel); color: var(--ink); }
    .decision-archive { margin-top: 14px; }
    .decision-archive summary { cursor: pointer; color: var(--muted); font-size: var(--fs-label); }

    @media (max-width: 640px) {
      .today .recommend-group .recommend-tree .recommend {
        grid-template-columns: 24px minmax(0, 1fr) minmax(0, 1fr) var(--priority-pill-width);
        grid-template-areas:
          "code main main main"
          ". cadence stage priority";
        align-items: center;
        row-gap: var(--sp-3);
        column-gap: var(--sp-2);
        min-height: 0;
        padding: var(--sp-3) var(--sp-4);
      }
      .today .recommend-group .recommend-code { grid-area: code; padding-top: 2px; }
      .today .recommend-group .recommend-main { grid-area: main; min-width: 0; }
      .today .recommend-group .recommend-cadence { grid-area: cadence; width: auto; justify-self: stretch; }
      .today .recommend-group .recommend-stage { grid-area: stage; width: auto; justify-self: stretch; }
      .today .recommend-group .recommend-priority { grid-area: priority; width: auto; justify-self: end; }
      .decision-card-head {
        align-items: stretch;
        flex-direction: column;
      }
      .decision-card-title-row,
      .decision-actions { width: 100%; }
      .decision-actions { justify-content: flex-start; }
    }

    .idea-card-copy {
      display: grid;
      min-width: 0;
      justify-items: start;
      gap: var(--sp-1);
    }
    .idea-card-copy .task-title-line { width: 100%; flex-wrap: nowrap; }
    .idea-card-copy .task-title-line h3 {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .idea-card-copy .decision-link-group { width: auto; margin: 0; flex: 0 0 auto; }

    .decision-result-field small {
      color: var(--muted);
      font-size: var(--fs-caption);
      font-weight: 400;
      line-height: 1.5;
    }
    .decision-result-field textarea[aria-invalid="true"] {
      border-color: var(--danger-border-mixed);
      outline: 2px solid var(--danger-surface);
      outline-offset: 1px;
    }
    .decision-result-field textarea[aria-invalid="true"] + small {
      color: var(--danger);
      font-weight: 650;
    }
    .decision-result-field textarea[readonly] {
      border-style: dashed;
      background: var(--surface-soft);
      color: var(--muted);
      cursor: not-allowed;
    }

    .task-list {
      display: grid;
      gap: var(--sp-2);
    }

    .task {
      border: 1px solid var(--line);
      border-radius: var(--radius-card);
      background: var(--panel);
      box-shadow: var(--shadow);
      padding: 10px;
      display: grid;
      gap: var(--sp-2);
      min-width: 0;
      overflow: hidden;
    }

    .task-top {
      display: flex;
      justify-content: space-between;
      align-items: start;
      gap: var(--sp-2);
      min-width: 0;
    }

    .task h3 {
      margin: 0;
      min-height: 35px;
      font-size: var(--fs-body-lg);
      line-height: 1.3;
      overflow-wrap: anywhere;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
    }

    .badges {
      display: flex;
      flex-wrap: wrap;
      gap: var(--sp-1);
      min-width: 0;
    }

    .badge {
      display: inline-flex;
      align-items: center;
      min-height: 22px;
      border-radius: var(--r-full);
      padding: 0 8px;
      font-size: var(--fs-caption);
      color: var(--muted);
      background: var(--soft);
      border: 1px solid transparent;
      max-width: 100%;
      overflow: hidden;
      overflow-wrap: normal;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .badge.codex { color: var(--codex); background: rgba(168,104,38,.10); }
    .badge.claude { color: var(--claude); background: rgba(212,165,116,.18); }
    .badge.hot { color: var(--color-danger-strong); background: var(--color-danger-soft); }
    .badge.category { color: var(--accent-strong); background: var(--accent-soft); }
    .badge.cadence { color: var(--accent-strong); background: var(--soft); }
    .badge.stage { color: var(--muted); background: var(--soft); }

    .next {
      margin: 0;
      color: var(--color-body-warm);
      line-height: 1.5;
      font-size: var(--fs-label);
    }

    .small {
      color: var(--muted);
      font-size: var(--fs-caption);
      overflow-wrap: anywhere;
      word-break: break-word;
    }

    .card-actions {
      display: flex;
      gap: var(--sp-1);
      flex-wrap: wrap;
    }

    .card-actions button {
      min-height: 30px;
      font-size: var(--fs-label);
      padding: 0 8px;
      flex: 1 1 54px;
    }

    .task-dialog {
      position: fixed;
      inset: 0;
      z-index: 50;
      display: none;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0;
      padding: 14px;
      background: rgba(54, 39, 23, .28);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
    }

    .task-dialog.is-open { display: flex; }
    .task-dialog > .panel-head,
    .task-dialog > form {
      width: min(760px, calc(100vw - 28px));
      background: var(--panel);
    }
    .task-dialog > .panel-head {
      border: 1px solid var(--line);
      border-bottom: 0;
      border-radius: var(--radius-panel) var(--radius-panel) 0 0;
    }
    .task-dialog > form {
      max-height: calc(100vh - 100px);
      overflow-y: auto;
      border: 1px solid var(--line);
      border-top: 0;
      border-radius: 0 0 var(--radius-panel) var(--radius-panel);
    }

    .task-dialog.sync-dialog { --sync-radius: var(--radius-control); }
    body.is-sync-dialog-open { overflow: hidden; }
    .task-dialog.sync-dialog > .panel-head,
    .task-dialog.sync-dialog > .sync-panel-body { width: min(960px, calc(100vw - 28px)); background: var(--panel); }
    .task-dialog.sync-dialog > .panel-head {
      align-items: center;
      min-height: auto;
      padding: 18px 22px;
      border-radius: var(--sync-radius) var(--sync-radius) 0 0;
    }
    .sync-panel-title { display: grid; min-width: 0; gap: var(--sp-1); }
    .task-dialog.sync-dialog .sync-panel-title h2 { margin: 0; font-size: var(--fs-title); line-height: 1.3; letter-spacing: -.02em; }
    .sync-panel-title p { margin: 0; color: var(--muted); font-size: var(--fs-caption); line-height: 1.5; }
    .task-dialog.sync-dialog .panel-head .dialog-close { width: 36px; min-height: 36px; }
    .sync-panel-body {
      min-height: 0;
      max-height: calc(100vh - 100px);
      max-height: calc(100dvh - 100px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      padding: 0;
      border: 1px solid var(--line);
      border-top: 0;
      border-radius: 0 0 var(--sync-radius) var(--sync-radius);
    }
    .sync-panel-content {
      display: grid;
      min-height: 0;
      align-content: start;
      flex: 1 1 auto;
      gap: var(--sp-4);
      padding: 18px 22px;
      overflow-y: auto;
      overscroll-behavior: contain;
      scrollbar-gutter: stable;
    }
    .task-dialog.sync-dialog button,
    .task-dialog.sync-dialog input,
    .task-dialog.sync-dialog select { border-radius: var(--sync-radius); }
    .task-dialog.sync-dialog select { border-radius: var(--sync-radius); }
    .sync-direction-card {
      display: grid;
      gap: var(--sp-4);
      padding: 18px;
      border: 1px solid var(--accent-border-subtle);
      border-radius: var(--sync-radius);
      background: var(--accent-surface-subtle);
    }
    .sync-direction-card[hidden] { display: none; }
    .sync-card-head { display: flex; align-items: flex-start; gap: var(--sp-3); }
    .sync-card-copy { display: grid; gap: var(--sp-1); }
    .sync-card-copy strong { font-size: var(--fs-body-lg); }
    .sync-card-copy span { color: var(--muted); font-size: var(--fs-label); line-height: 1.65; }
    .sync-direction-fields {
      --sync-field-height: 52px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
      align-items: end;
      gap: var(--sp-3);
    }
    .sync-direction-fields > label {
      display: grid;
      grid-template-rows: auto var(--sync-field-height);
      gap: var(--sp-2);
      color: var(--color-body-warm);
      font-size: var(--fs-label);
    }
    .sync-direction-fields select {
      width: 100%;
      height: var(--sync-field-height);
      min-height: var(--sync-field-height);
      padding: 10px 38px 10px 13px;
      border: 1px solid var(--line);
      background-color: rgba(255,255,255,.82);
      box-sizing: border-box;
      box-shadow: none;
      line-height: 1.5;
    }
    .sync-task-picker {
      display: grid;
      position: relative;
      min-width: 0;
      grid-column: 1 / -1;
      gap: var(--sp-2);
    }
    .sync-task-picker-row {
      display: grid;
      min-width: 0;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
      align-items: start;
      gap: var(--sp-3);
    }
    .sync-task-picker-label {
      color: var(--color-body-warm);
      font-size: var(--fs-label);
    }
    .sync-task-select {
      position: relative;
      min-width: 0;
    }
    .sync-task-select > summary {
      display: grid;
      min-width: 0;
      min-height: var(--sync-field-height);
      grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center;
      gap: var(--sp-3);
      padding: 0 14px;
      border: 1px solid var(--line);
      border-radius: var(--sync-radius);
      background: rgba(255,255,255,.82);
      color: var(--accent-strong);
      cursor: pointer;
      list-style: none;
      box-shadow: none;
    }
    .sync-task-select > summary::-webkit-details-marker { display: none; }
    .sync-task-select > summary::after {
      content: "";
      width: 8px;
      height: 8px;
      margin: -4px 3px 0 0;
      border-right: 1.5px solid var(--accent);
      border-bottom: 1.5px solid var(--accent);
      transform: rotate(45deg);
      transition: transform .14s ease, margin .14s ease;
    }
    .sync-task-select[open] > summary {
      border-color: var(--accent-border-strong);
      box-shadow: 0 0 0 3px var(--accent-overlay);
    }
    .sync-task-select[open] > summary::after {
      margin-top: 4px;
      transform: rotate(225deg);
    }
    #localExportTaskPickerLabel {
      overflow: hidden;
      font-size: var(--fs-label);
      font-weight: 650;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .sync-task-select > summary #localExportTaskSummary {
      color: var(--muted);
      font-size: var(--fs-caption);
      font-weight: 650;
      white-space: nowrap;
    }
    .sync-task-select-popover {
      position: static;
      display: grid;
      gap: var(--sp-2);
      margin-top: var(--sp-2);
      padding: var(--sp-3);
      border: 1px solid var(--accent-border-subtle);
      border-radius: var(--sync-radius);
      background: var(--panel);
      box-shadow: 0 12px 28px rgba(28, 52, 43, .1);
    }
    .sync-task-picker-head {
      display: flex;
      min-width: 0;
      align-items: center;
      justify-content: space-between;
      gap: var(--sp-3);
    }
    .sync-task-picker-head > span {
      color: var(--muted);
      font-size: var(--fs-caption);
      line-height: 1.5;
    }
    .sync-task-picker-actions {
      display: flex;
      flex: 0 0 auto;
      align-items: center;
      gap: var(--sp-2);
    }
    .sync-task-picker-actions button {
      min-height: 32px;
      padding: 0 var(--sp-2);
      border-color: transparent;
      background: transparent;
      color: var(--muted);
      font-size: var(--fs-caption);
      box-shadow: none;
    }
    .sync-task-picker-actions button:hover {
      border-color: var(--accent-border-subtle);
      background: var(--accent-pale);
      color: var(--accent);
    }
    .sync-task-options {
      display: grid;
      height: clamp(248px, 34dvh, 304px);
      max-height: none;
      grid-template-columns: 1fr;
      gap: var(--sp-2);
      padding: var(--sp-1);
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      scrollbar-gutter: stable;
      border: 0;
      background: transparent;
    }
    .sync-task-option {
      display: grid;
      min-width: 0;
      min-height: 52px;
      grid-template-columns: auto minmax(0, 1fr);
      align-items: center;
      gap: var(--sp-2);
      padding: 7px 10px;
      border: 1px solid var(--line-soft);
      border-radius: calc(var(--sync-radius) - 2px);
      background: var(--panel);
      cursor: pointer;
      transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
    }
    .sync-task-option:hover {
      border-color: var(--accent-border);
      background: var(--accent-pale);
    }
    .sync-task-option:has(input:checked) {
      border-color: var(--accent-border-strong);
      background: var(--accent-surface);
      box-shadow: inset 3px 0 0 var(--accent);
    }
    .sync-task-option input {
      width: 18px;
      height: 18px;
      margin: 0;
      accent-color: var(--accent);
    }
    .sync-task-option > span {
      display: grid;
      min-width: 0;
      gap: var(--sp-1);
    }
    .sync-task-option strong,
    .sync-task-option small {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .sync-task-option strong {
      color: var(--ink);
      font-size: var(--fs-label);
      font-weight: 650;
    }
    .sync-task-option small {
      color: var(--muted);
      font-size: var(--fs-caption);
    }
    .sync-task-options-empty {
      grid-column: 1 / -1;
      padding: 18px;
      color: var(--muted);
      font-size: var(--fs-caption);
      text-align: center;
    }
    .sync-export-folder-choice { grid-column: auto; }
    .sync-folder-choice {
      display: grid;
      min-width: 0;
      grid-template-columns: auto minmax(0, 1fr);
      height: var(--sync-field-height);
      min-height: var(--sync-field-height);
      align-items: center;
      gap: var(--sp-2);
      padding: 0;
      overflow: visible;
      border: 0;
      border-radius: var(--sync-radius);
      background: transparent;
      box-sizing: border-box;
    }
    .sync-folder-choice[hidden] { display: none; }
    .sync-folder-choice > button {
      align-self: stretch;
      width: 140px;
      height: var(--sync-field-height);
      min-height: var(--sync-field-height);
      padding-inline: 15px;
      border: 1px solid var(--line);
      border-radius: var(--sync-radius);
      background: var(--soft);
      box-shadow: none;
    }
    .sync-direction-submit {
      height: var(--sync-field-height);
      min-height: var(--sync-field-height);
      min-width: 118px;
    }
    .sync-picker-selection {
      display: grid;
      height: var(--sync-field-height);
      min-height: var(--sync-field-height);
      min-width: 0;
      align-content: center;
      gap: 0;
      padding: 6px 12px;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--sync-radius);
      background: rgba(255,255,255,.82);
      box-sizing: border-box;
    }
    .sync-picker-selection strong {
      overflow: hidden;
      color: var(--ink);
      font-size: var(--fs-body);
      line-height: 1.15;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .sync-picker-selection span {
      overflow: hidden;
      color: var(--muted);
      font-size: var(--fs-caption);
      line-height: 1.15;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .sync-folder-preview {
      display: grid;
      gap: var(--sp-3);
      padding: var(--sp-3);
      border: 1px solid var(--line);
      border-radius: var(--sync-radius);
      background: rgba(255,255,255,.48);
    }
    .sync-folder-preview[hidden] { display: none; }
    .sync-folder-preview-head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: var(--sp-3);
    }
    .sync-folder-preview-head > div { display: grid; gap: var(--sp-1); }
    .sync-folder-preview-head strong { color: var(--ink); font-size: var(--fs-caption); }
    .sync-folder-preview-head span { color: var(--muted); font-size: var(--fs-caption); }
    .sync-folder-tree {
      max-height: 248px;
      overflow: auto;
      border: 1px solid var(--line);
      border-radius: var(--sync-radius);
      background: var(--panel);
    }
    .sync-folder-tree-row {
      display: grid;
      grid-template-columns: 18px minmax(0, 1fr) auto;
      min-height: 38px;
      align-items: center;
      gap: var(--sp-2);
      padding: 6px 10px;
      border-bottom: 1px solid var(--line-soft);
      color: var(--color-body-warm);
      font-size: var(--fs-caption);
    }
    .sync-folder-tree-row:last-child { border-bottom: 0; }
    .sync-folder-tree-row.is-depth-2 { padding-left: 32px; }
    .sync-folder-tree-row.is-depth-3 { padding-left: 54px; }
    .sync-folder-tree-branch {
      width: 10px;
      height: 10px;
      border-bottom: 1px solid var(--accent-border);
      border-left: 1px solid var(--accent-border);
    }
    .sync-folder-tree-row.is-depth-1 .sync-folder-tree-branch {
      width: 8px;
      height: 8px;
      border: 0;
      border-radius: var(--r-full);
      background: var(--accent);
    }
    .sync-folder-tree-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .sync-folder-tree-status { color: var(--muted); font-size: var(--fs-caption); white-space: nowrap; }
    .sync-folder-tree-status.is-new { color: var(--accent-strong); font-weight: 650; }
    .sync-folder-tree-status.is-invalid { color: var(--danger); font-weight: 700; }
    .task-form-secondary-actions,
    .task-form-actions-primary {
      display: flex;
      align-items: center;
      gap: var(--sp-2);
    }
    .task-form-secondary-actions button,
    .task-form-actions-primary button {
      white-space: nowrap;
    }
    @media (max-width: 760px) {
      .task-dialog.sync-dialog {
        overflow: hidden;
        overscroll-behavior: contain;
        touch-action: pan-y pinch-zoom;
      }
      .task-dialog.sync-dialog > .sync-panel-body {
        overscroll-behavior: contain;
        touch-action: pan-y pinch-zoom;
      }
      .sync-panel-content {
        padding: 14px;
        touch-action: pan-y pinch-zoom;
        -webkit-overflow-scrolling: touch;
      }
      .sync-direction-fields { grid-template-columns: 1fr; }
      .sync-task-picker-row { grid-template-columns: 1fr; }
      .sync-task-picker-head {
        align-items: flex-start;
        flex-direction: column;
      }
      .sync-task-select > summary { min-height: 52px; }
      .sync-task-select-popover {
        padding: var(--sp-2);
        box-shadow: 0 14px 34px rgba(28, 52, 43, .18);
      }
      .sync-task-picker-actions {
        width: 100%;
        flex-wrap: wrap;
      }
      .sync-task-picker-actions button { min-height: 44px; }
      .sync-task-picker-actions strong { margin-right: auto; }
      .sync-task-options {
        height: clamp(224px, 42dvh, 288px);
        grid-template-columns: 1fr;
      }
      .sync-export-folder-choice { grid-column: auto; }
      .sync-folder-choice {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
        padding: 0;
        overflow: visible;
      }
      .sync-folder-choice > button {
        width: 100%;
        margin: 0;
        border-radius: var(--sync-radius);
      }
      .sync-folder-choice .sync-picker-selection { padding: 6px 12px; }
      .sync-direction-submit { width: 100%; }
      .sync-folder-preview-head { align-items: flex-start; flex-direction: column; }
    }
