:root {
  --primary: #2563eb;
  --primary-hover: #1d4ed8;
  --page: #f7f8fa;
  --surface: #ffffff;
  --ink: #171a21;
  --muted: #697386;
  --line: #e4e7ec;
  --line-strong: #d0d5dd;
  --danger: #b42318;
  --success: #067647;
  --warning: #b54708;
  --control-height: 32px;
  --control-radius: 6px;
  --focus-ring: 0 0 0 3px rgba(37, 99, 235, .16);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--page);
  font: 14px/1.5 Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.container { width: min(1280px, calc(100% - 48px)); margin: 0 auto; }

.app-header {
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, .96);
}

.header-inner { height: 64px; display: flex; align-items: center; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 700; letter-spacing: -.01em; }
.brand-mark { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; color: #fff; background: #111827; font-size: 14px; }
.top-nav { display: flex; align-self: stretch; gap: 24px; margin-left: 42px; }
.nav-link { display: flex; align-items: center; padding: 0 4px; border-bottom: 2px solid transparent; color: var(--muted); font-weight: 600; }
.nav-link.active { border-bottom-color: var(--ink); color: var(--ink); }
.user-menu { display: flex; align-items: center; gap: 12px; margin-left: auto; color: var(--muted); font-weight: 600; }
.login-slogan-header { border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .96); }
.login-slogan { display: flex; height: 64px; align-items: center; justify-content: center; color: var(--ink); font-size: 18px; font-weight: 700; letter-spacing: .06em; }

.main-content { padding-top: 38px; padding-bottom: 56px; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.page-heading h1 { margin: 0; font-size: 28px; line-height: 1.25; letter-spacing: -.025em; }
.page-heading p { margin: 7px 0 0; color: var(--muted); }

.card { border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 1px 2px rgba(16, 24, 40, .03); }
.button {
  display: inline-flex;
  min-height: var(--control-height);
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 10px;
  border: 1px solid #bfd3ee;
  border-radius: var(--control-radius);
  color: #175cd3;
  background: #fff;
  box-shadow: none;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.button:hover { border-color: #2f6feb; color: #175cd3; background: #f0f6ff; }
.button-primary { border-color: #84adf7; color: #175cd3; background: #eff6ff; }
.button-primary:hover { border-color: #2f6feb; color: #175cd3; background: #dbeafe; }
.button:disabled { border-color: #d0d5dd; color: #475467; background: #eaecf0; cursor: not-allowed; }
.brief-export-button { border-color: #84adf7; background: #eff6ff; }
.brief-export-button:hover { border-color: #2f6feb; background: #dbeafe; }

.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.summary-card { position: relative; min-height: 132px; padding: 18px 19px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 1px 2px rgba(16, 24, 40, .03); }
.summary-label { display: block; color: #475467; font-weight: 600; }
.summary-dot { position: absolute; top: 22px; right: 20px; width: 8px; height: 8px; border-radius: 50%; }
.dot-neutral { background: #98a2b3; }
.dot-blue { background: var(--primary); }
.dot-green { background: #12b76a; }
.dot-danger { background: #f97066; }
.dot-warning { background: #f79009; }
.summary-value { display: block; margin-top: 13px; font-size: 30px; line-height: 1.15; letter-spacing: -.025em; }
.summary-caption { display: block; margin-top: 7px; color: #98a2b3; font-size: 12px; }

.section-heading, .table-header { display: flex; align-items: center; justify-content: space-between; }
.section-heading { margin-bottom: 17px; }
.section-heading h2, .table-header h2 { margin: 0; font-size: 15px; }
.section-heading p, .table-header p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }

.search-card { margin-bottom: 18px; padding: 14px; }
.search-grid { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 10px; align-items: end; }
label { display: grid; gap: 4px; color: #667085; font-size: 12px; font-weight: 700; }
input, select, textarea {
  width: 100%;
  min-height: var(--control-height);
  padding: 4px 9px;
  border: 1px solid #bfd3ee;
  border-radius: var(--control-radius);
  outline: none;
  color: #344054;
  background: #fff;
  font-size: 13px;
  font-weight: 550;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
input:hover, select:hover, textarea:hover { border-color: #84adf7; background: #fff; }
input::placeholder, textarea::placeholder { color: #98a2b3; font-weight: 400; }
input:focus, select:focus, textarea:focus { border-color: var(--primary); background: #fff; box-shadow: var(--focus-ring); }
input[type="date"],
input[type="datetime-local"],
select { padding-right: 34px; }
textarea { min-height: 84px; line-height: 1.65; resize: vertical; }
.filter-field { display: grid; gap: 4px; color: #667085; font-size: 12px; font-weight: 700; }
.filter-label { display: block; }
.multi-dropdown { position: relative; }
.multi-dropdown summary {
  display: flex;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 9px;
  border: 1px solid #bfd3ee;
  border-radius: 6px;
  color: #344054;
  background: #fff;
  cursor: pointer;
  list-style: none;
  font-weight: 500;
}
.multi-dropdown summary:hover { border-color: #84adf7; background: #fff; }
.multi-dropdown summary::-webkit-details-marker { display: none; }
.multi-dropdown summary::after { content: "⌄"; color: #667085; font-size: 14px; }
.multi-dropdown[open] summary { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(37, 99, 235, .1); }
.multi-dropdown[open] summary::after { transform: rotate(180deg); }
.multi-dropdown-menu { position: absolute; z-index: 80; top: calc(100% + 6px); left: 0; width: 100%; min-width: 180px; padding: 6px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgba(16, 24, 40, .14); }
.multi-option { display: flex; min-height: 34px; align-items: center; grid-template-columns: none; gap: 8px; padding: 6px 8px; border-radius: 6px; color: #344054; font-size: 13px; font-weight: 500; cursor: pointer; }
.multi-option:hover { background: #f8fafc; }
.multi-option input { width: 14px; min-height: 14px; margin: 0; accent-color: var(--primary); }
.search-actions { display: flex; gap: 6px; }
.search-actions .button { width: auto; min-width: 64px; }

/* Requirement management */
.requirement-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.requirement-summary-card { min-height: 104px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.requirement-summary-card div { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 12px; font-weight: 650; }
.requirement-summary-card strong { display: block; margin-top: 12px; font-size: 28px; line-height: 1.2; }
.requirement-summary-card p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.requirement-summary-dot { width: 8px; height: 8px; border-radius: 50%; }
.requirement-filter-card { margin-bottom: 18px; padding: 14px; }
.requirement-filter-form { display: grid; grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(140px, 1fr)) auto; gap: 10px; align-items: end; }
.requirement-filter-actions, .requirement-actions { display: flex; align-items: center; gap: 8px; }
.requirement-table-card { overflow: hidden; }
.requirement-table-card > header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.requirement-table-card h2 { margin: 0; font-size: 15px; }
.requirement-table-card > header span { color: var(--muted); font-size: 12px; }
.requirement-table-card table { min-width: 1100px; }
.requirement-table-card tbody tr { min-height: 64px; }
.requirement-table-card tbody tr:hover { background: #f8fbff; }
.requirement-name-link { display: grid; gap: 3px; min-width: 260px; }
.requirement-name-link strong { color: var(--ink); }
.requirement-name-link span { color: var(--muted); font-size: 12px; }
.requirement-priority, .requirement-status { display: inline-flex; align-items: center; min-height: 24px; gap: 5px; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.requirement-status i { width: 6px; height: 6px; flex: 0 0 6px; border: 1px solid currentColor; border-radius: 50%; background: currentColor; }
.priority-高, .status-已取消 { color: var(--danger); background: #fef3f2; }
.priority-中, .status-待确认, .status-已暂停 { color: var(--warning); background: #fffaeb; }
.priority-低, .status-草稿 { color: #475467; background: #f2f4f7; }
.status-已确认, .status-进行中, .status-待验收 { color: #175cd3; background: #eff6ff; }
.status-已完成 { color: var(--success); background: #ecfdf3; }
.requirement-progress { display: block; width: 84px; height: 6px; margin-top: 4px; overflow: hidden; border-radius: 999px; background: #eaecf0; }
.requirement-progress i { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.requirement-progress-text { font-size: 12px; font-weight: 650; }
.requirement-actions form { margin: 0; }
.requirement-actions a, .requirement-actions button { border: 0; padding: 0; color: #175cd3; background: transparent; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.requirement-actions button { color: var(--danger); }
.requirement-pagination { display: flex; align-items: center; justify-content: space-between; min-height: 58px; padding: 0 16px; color: var(--muted); font-size: 12px; }
.requirement-pagination nav { display: flex; align-items: center; gap: 6px; }
.requirement-pagination nav a, .requirement-pagination nav span { display: inline-flex; min-width: 30px; min-height: 30px; align-items: center; justify-content: center; border-radius: 6px; }
.requirement-pagination nav a { color: #175cd3; border: 1px solid var(--line); background: #fff; font-size: 17px; font-weight: 700; }
.requirement-pagination nav span { color: #175cd3; background: #eff6ff; font-weight: 700; }
.requirement-detail-page { display: grid; gap: 18px; color: var(--ink); }
.requirement-breadcrumb { display: flex; gap: 8px; margin-bottom: 12px; color: var(--muted); font-size: 12px; }
.requirement-breadcrumb a { color: #175cd3; font-weight: 700; }
.requirement-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.requirement-detail-heading h1 { margin: 0; font-size: 28px; line-height: 1.25; }
.requirement-detail-heading p { margin: 7px 0 0; color: var(--muted); }
.requirement-detail-actions { display: flex; flex: 0 0 auto; gap: 10px; }
.requirement-change-action::before { margin-right: 4px; content: "＋"; }
.requirement-detail-tabs { display: flex; min-height: 56px; align-items: stretch; gap: 4px; overflow-x: auto; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.requirement-detail-tabs a { position: relative; display: inline-flex; min-width: max-content; align-items: center; gap: 5px; padding: 0 12px; color: var(--muted); font-size: 13px; font-weight: 650; }
.requirement-detail-tabs a::after { position: absolute; right: 12px; bottom: 0; left: 12px; height: 3px; border-radius: 3px 3px 0 0; background: transparent; content: ""; }
.requirement-detail-tabs a.is-active { color: #175cd3; }
.requirement-detail-tabs a.is-active::after { background: var(--primary); }
.requirement-detail-tabs span { color: inherit; font-size: 11px; }
.requirement-detail-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr); gap: 18px; }
.requirement-detail-main, .requirement-detail-side { display: grid; align-content: start; gap: 18px; }
.requirement-detail-card { padding: 20px; }
.requirement-detail-card { scroll-margin-top: 18px; }
.requirement-detail-card h2 { margin: 0 0 18px; font-size: 16px; }
.requirement-detail-card h3 { margin: 24px 0 8px; color: #475467; font-size: 12px; }
.requirement-detail-card p { margin: 0; line-height: 1.7; }
.requirement-meta-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; }
.requirement-meta-grid div { min-width: 0; }
.requirement-meta-grid dt { color: var(--muted); font-size: 12px; font-weight: 650; }
.requirement-meta-grid dd { margin: 5px 0 0; color: var(--ink); font-weight: 650; }
.requirement-code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.requirement-copy-block { margin-top: 28px; }
.requirement-copy-block p { max-width: 72ch; white-space: pre-wrap; }
.requirement-acceptance-list { display: grid; gap: 8px; max-width: 72ch; margin: 0; padding: 0; list-style: none; }
.requirement-acceptance-list li { position: relative; padding-left: 24px; line-height: 1.65; }
.requirement-acceptance-list li::before { position: absolute; left: 0; color: var(--success); font-weight: 800; content: "✓"; }
.requirement-progress-section { margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--line); scroll-margin-top: 18px; }
.requirement-progress-large { width: 100%; height: 9px; }
.requirement-milestones { display: grid; gap: 0; margin: 24px 0 0; padding: 0; list-style: none; }
.requirement-milestones li { position: relative; display: grid; grid-template-columns: 18px 120px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 42px; color: var(--muted); font-size: 12px; }
.requirement-milestones li:not(:last-child)::after { position: absolute; top: 28px; bottom: -14px; left: 6px; width: 2px; background: #e4e7ec; content: ""; }
.requirement-milestones li > i { width: 14px; height: 14px; border: 2px solid #98a2b3; border-radius: 50%; background: #fff; }
.requirement-milestones li strong { color: var(--ink); font-size: 13px; }
.requirement-milestones li.is-complete > i { border-color: var(--success); background: var(--success); box-shadow: inset 0 0 0 3px #fff; }
.requirement-milestones li.is-complete span { color: var(--success); }
.requirement-milestones li.is-current > i { border-color: var(--primary); background: var(--primary); box-shadow: inset 0 0 0 3px #fff; }
.requirement-milestones li.is-current span { color: #175cd3; font-weight: 650; }
.requirement-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.requirement-card-heading h2 { margin: 0; }
.requirement-card-heading > span { color: #175cd3; font-size: 11px; font-weight: 700; }
.requirement-related-item { display: grid; gap: 4px; padding: 12px 0; border-top: 1px solid #edf0f4; }
.requirement-related-item span { color: var(--muted); font-size: 11px; }
.requirement-related-item strong { color: #175cd3; font-size: 13px; }
.requirement-change-item { padding: 13px 0; border-top: 1px solid #edf0f4; }
.requirement-change-item header { display: flex; justify-content: space-between; gap: 12px; }
.requirement-change-item time, .requirement-change-item small { color: var(--muted); font-size: 11px; }
.requirement-change-item p { margin: 6px 0 3px; font-size: 13px; }
.requirement-trace-note { margin-top: 14px !important; color: var(--muted); font-size: 11px; }
.requirement-activity-card dl { display: grid; gap: 12px; margin: 0; }
.requirement-activity-card dl div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; }
.requirement-activity-card dt { color: var(--muted); font-size: 12px; }
.requirement-activity-card dd { margin: 0; font-size: 13px; }
.requirement-danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 2px; }
.requirement-danger-zone strong { color: var(--danger); font-size: 12px; }
.requirement-danger-zone p { display: inline; margin: 0 0 0 8px; color: var(--muted); font-size: 11px; }
.requirement-danger-zone form { margin: 0; }
.requirement-danger-zone button { min-height: 34px; padding: 0 12px; border: 1px solid #f5b7b1; border-radius: 6px; color: var(--danger); background: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.requirement-danger-zone button:hover { border-color: var(--danger); background: #fef3f2; }
.requirement-edit-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 22px; }
.requirement-form-actions { display: flex; justify-content: flex-end; gap: 8px; }
.requirement-create-context { display: grid; grid-template-columns: 160px minmax(260px, 1fr); gap: 16px; align-items: center; margin-bottom: 18px; padding: 18px 22px; }
.requirement-create-context label { color: var(--muted); font-weight: 700; }
.requirement-empty-source { display: grid; justify-items: start; gap: 12px; padding: 28px; }
.requirement-empty-source h2, .requirement-empty-source p { margin: 0; }

@media (max-width: 980px) {
  .requirement-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .requirement-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .requirement-detail-layout { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .requirement-summary-grid, .requirement-filter-form, .requirement-edit-form, .requirement-meta-grid, .requirement-create-context { grid-template-columns: 1fr; }
  .requirement-detail-heading { align-items: flex-start; flex-direction: column; }
  .requirement-detail-actions { width: 100%; flex-wrap: wrap; }
  .requirement-detail-actions .button { flex: 1 1 140px; }
  .requirement-milestones li { grid-template-columns: 18px minmax(92px, auto) minmax(0, 1fr); }
  .requirement-danger-zone { align-items: flex-start; flex-direction: column; }
  .requirement-danger-zone p { display: block; margin: 5px 0 0; }
}

/* Shared keyboard treatment. Keep it visible without making dense tables visually noisy. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.table-card { overflow: hidden; }
.table-header { padding: 14px 16px; border-bottom: 1px solid var(--line); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; table-layout: auto; }
th, td { height: 44px; padding: 8px 12px; border-bottom: 1px solid #edf0f4; text-align: left; vertical-align: middle; white-space: nowrap; }
th { color: #667085; background: #f8fafc; font-size: 12px; font-weight: 650; letter-spacing: .01em; }
td { color: #475467; }
tbody tr { transition: background .15s ease; }
tbody tr:hover { background: #f8fbff; }
tbody tr:focus-within { background: #f8fbff; }
td:first-child { white-space: normal; }
td small { display: block; max-width: 260px; margin-top: 3px; overflow: hidden; color: #98a2b3; text-overflow: ellipsis; white-space: nowrap; }
.issue-worklist-table { min-width: 1220px; table-layout: fixed; }
.issue-worklist-table th,
.issue-worklist-table td { height: 56px; padding: 7px 10px; }
.issue-worklist-table th:nth-child(1), .issue-worklist-table td:nth-child(1) { width: 64px; min-width: 64px; }
.issue-worklist-table th:nth-child(2), .issue-worklist-table td:nth-child(2) { width: 92px; min-width: 92px; }
.issue-worklist-table th:nth-child(3), .issue-worklist-table td:nth-child(3) { width: 390px; min-width: 390px; }
.issue-worklist-table th:nth-child(4), .issue-worklist-table td:nth-child(4) { width: 190px; min-width: 190px; }
.issue-worklist-table th:nth-child(5), .issue-worklist-table td:nth-child(5) { width: 100px; min-width: 100px; }
.issue-worklist-table th:nth-child(6), .issue-worklist-table td:nth-child(6) { width: 108px; min-width: 108px; }
.issue-worklist-table th:nth-child(7), .issue-worklist-table td:nth-child(7) { width: 82px; min-width: 82px; }
.issue-worklist-table th:nth-child(8), .issue-worklist-table td:nth-child(8) { width: 130px; min-width: 130px; }
.issue-worklist-table th:last-child, .issue-worklist-table td:last-child { width: 70px; min-width: 70px; }
.issue-worklist-table .project-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.issue-worklist-table { min-width: 1460px; }
.issue-worklist-table th:nth-child(1), .issue-worklist-table td:nth-child(1) { width: 72px; min-width: 72px; }
.issue-worklist-table th:nth-child(2), .issue-worklist-table td:nth-child(2) { width: 96px; min-width: 96px; }
.issue-worklist-table th:nth-child(3), .issue-worklist-table td:nth-child(3) { width: 390px; min-width: 390px; }
.issue-worklist-table th:nth-child(4), .issue-worklist-table td:nth-child(4) { width: 190px; min-width: 190px; }
.issue-worklist-table th:nth-child(5), .issue-worklist-table td:nth-child(5) { width: 110px; min-width: 110px; }
.issue-worklist-table th:nth-child(6), .issue-worklist-table td:nth-child(6) { width: 120px; min-width: 120px; }
.issue-worklist-table th:nth-child(7), .issue-worklist-table td:nth-child(7) { width: 90px; min-width: 90px; }
.issue-worklist-table th:nth-child(8), .issue-worklist-table td:nth-child(8) { width: 130px; min-width: 130px; }
.issue-worklist-table th:nth-child(9), .issue-worklist-table td:nth-child(9) { width: 90px; min-width: 90px; }
.issue-worklist-table th:nth-child(10), .issue-worklist-table td:nth-child(10) { width: 140px; min-width: 140px; }
.issue-worklist-table th:nth-child(11), .issue-worklist-table td:nth-child(11) { width: 140px; min-width: 140px; }
.module-view-tabs { display:flex; gap:4px; width:fit-content; padding:4px; border:1px solid #e2eaf4; border-radius:9px; background:#f7f9fc; }
.module-view-tabs a { padding:8px 16px; border:1px solid transparent; border-radius:6px; color:#667085; font-size:13px; font-weight:700; }
.module-view-tabs a.active { border-color:#d6e6ff; color:#175cd3; background:#fff; }
.issue-board { display:grid; grid-template-columns:repeat(8,minmax(190px,1fr)); gap:12px; overflow-x:auto; align-items:stretch; }
.issue-board-column { position:relative; display:flex; height:clamp(480px,68vh,680px); min-height:360px; flex-direction:column; padding:0; overflow:hidden; border-color:#e1e8f1; border-radius:9px; }
.issue-board-column::before { position:absolute; inset:0 0 auto; height:4px; background:#98a2b3; content:""; }
.issue-board-column.status-column-处理中::before { background:#12b76a; }.issue-board-column.status-column-待验证::before { background:#f79009; }.issue-board-column.status-column-已解决::before { background:#2f6feb; }.issue-board-column.status-column-已关闭::before { background:#667085; }.issue-board-column.status-column-取消::before { background:#d92d20; }
.issue-board-column-header { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:10px 12px; border-bottom:1px solid #edf1f6; background:#fbfcfe; }
.issue-board-column-header h2 { margin:0; font-size:13px; }.issue-board-column-header strong { color:#667085; font-size:13px; }.issue-board-cards { display:grid; min-height:0; flex:1; grid-auto-rows:max-content; align-content:start; gap:10px; padding:14px 14px 16px; overflow-y:auto; overscroll-behavior:contain; scrollbar-color:#c8d2e1 transparent; scrollbar-gutter:stable; scrollbar-width:thin; }
.issue-board-card { display:grid; min-width:0; gap:8px; padding:11px; overflow:hidden; border:1px solid #e4eaf2; border-radius:7px; background:#fff; }.issue-board-card-top,.issue-board-meta { display:flex; min-width:0; align-items:center; justify-content:space-between; gap:8px; }.issue-board-card-top>*,.issue-board-meta>* { min-width:0; }.issue-board-title { color:#344054; font-size:13px; font-weight:700; line-height:1.45; overflow-wrap:anywhere; }.issue-board-meta { color:#667085; font-size:11px; }.issue-board-meta span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.issue-board-empty { margin:0; padding:18px 8px; color:#98a2b3; font-size:12px; text-align:center; }
.summary-grid:has(.summary-card:nth-child(6)) { grid-template-columns:repeat(6,minmax(0,1fr)); }
.issue-title-cell { overflow: hidden; white-space: nowrap; }
.issue-title-cell .task-type { margin-right: 8px; vertical-align: middle; }
.issue-title-cell .task-name { display: inline-block; max-width: calc(100% - 64px); overflow: hidden; text-overflow: ellipsis; vertical-align: middle; white-space: nowrap; }
.issue-title-cell small { max-width: 100%; }
.issue-due { color: #667085; font-variant-numeric: tabular-nums; }
.issue-due.is-overdue { color: #b42318; font-weight: 720; }
.issue-due.is-today { color: #b54708; font-weight: 720; }
.issue-row-closed { opacity: .68; }
.issue-row-closed:hover { opacity: 1; }
.plans-list-table { min-width: 1460px; }
.issue-worklist-table { min-width: 1400px; }
.issue-worklist-table th:nth-child(1), .issue-worklist-table td:nth-child(1) { width: 390px; min-width: 390px; }
.issue-worklist-table th:nth-child(2), .issue-worklist-table td:nth-child(2) { width: 110px; min-width: 110px; }
.issue-worklist-table th:nth-child(3), .issue-worklist-table td:nth-child(3) { width: 72px; min-width: 72px; }
.issue-worklist-table th:nth-child(4), .issue-worklist-table td:nth-child(4) { width: 96px; min-width: 96px; }
.issue-worklist-table th:nth-child(5), .issue-worklist-table td:nth-child(5) { width: 110px; min-width: 110px; }
.issue-worklist-table th:nth-child(6), .issue-worklist-table td:nth-child(6) { width: 120px; min-width: 120px; }
.issue-worklist-table th:nth-child(7), .issue-worklist-table td:nth-child(7) { width: 190px; min-width: 190px; }
.issue-worklist-table th:nth-child(8), .issue-worklist-table td:nth-child(8) { width: 90px; min-width: 90px; }
.issue-worklist-table th:nth-child(9), .issue-worklist-table td:nth-child(9) { width: 140px; min-width: 140px; }
.issue-worklist-table th:nth-child(10), .issue-worklist-table td:nth-child(10) { width: 140px; min-width: 140px; }
.issue-board { grid-template-columns: repeat(6, minmax(190px, 1fr)); }
.summary-grid:has(.summary-card:nth-child(7)) { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.status-待处理 { color: #667085; background: #f2f4f7; }
.status-处理中 { color: #067647; background: #ecfdf3; }
.status-待验证 { color: #b54708; background: #fffaeb; }
.status-已解决 { color: #175cd3; background: #eff8ff; }
.status-已关闭 { color: #344054; background: #e4e7ec; }
.status-取消 { color: #b42318; background: #fef3f2; }
.plans-list-table th:first-child,
.plans-list-table td:first-child { width: 220px; min-width: 220px; white-space: normal; word-break: keep-all; }
.plans-list-table th:nth-child(2),
.plans-list-table td:nth-child(2) { width: 360px; min-width: 360px; white-space: normal; }
.plans-list-table th:nth-child(n+3):not(:last-child),
.plans-list-table td:nth-child(n+3):not(:last-child) { width: 1%; }
.schedule-item-table { table-layout: auto; }
.dashboard-page { display: grid; gap: 18px; }
.dashboard-heading { margin-bottom: 0; }
.dashboard-heading h1 { letter-spacing: -.02em; }
.dashboard-heading p { font-size: 13px; }
.dashboard-filters { display: flex; align-items: end; gap: 10px; margin: 0; }
.dashboard-filters label { display: grid; gap: 5px; color: #667085; font-size: 12px; font-weight: 700; }
.dashboard-filters select { min-width: 260px; min-height: 32px; padding: 4px 30px 4px 9px; border: 1px solid #bfd3ee; border-radius: 6px; color: #344054; background: #fff; font: inherit; }
.dashboard-tabs { display: flex; gap: 5px; padding: 5px; border: 1px solid #e2eaf4; border-radius: 9px; background: #f7f9fc; }
.dashboard-tabs a { padding: 8px 15px; border: 1px solid transparent; border-radius: 6px; color: #667085; font-size: 13px; font-weight: 700; }
.dashboard-tabs a:hover { color: #175cd3; background: #f3f8ff; }
.dashboard-tabs a.active { border-color: #d6e6ff; color: #175cd3; background: #fff; box-shadow: 0 1px 3px rgba(16, 24, 40, .08); }
.dashboard-context-bar { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; min-height: 38px; padding: 8px 14px; border-left: 3px solid #2f6feb; border-radius: 0 7px 7px 0; color: #667085; background: #f7faff; font-size: 12px; }
.dashboard-context-bar b { color: #344054; }
.dashboard-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.business-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dashboard-metrics article { position: relative; display: grid; min-height: 108px; align-content: start; gap: 7px; padding: 16px 17px; border: 1px solid #e2e9f2; border-radius: 9px; background: #fff; box-shadow: 0 4px 14px rgba(16, 24, 40, .045); overflow: hidden; }
.dashboard-metrics article::before { position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: #2f6feb; content: ""; }
.dashboard-metrics span { color: #667085; font-size: 12px; font-weight: 700; }
.dashboard-metrics strong { color: #101828; font-size: 25px; line-height: 1.15; }
.dashboard-metrics small { color: #98a2b3; font-size: 12px; font-weight: 600; }
.metric-healthy { color: #067647 !important; }
.metric-warning { color: #b54708 !important; }
.metric-risk { color: #b42318 !important; }
.metric-neutral { color: #475467 !important; }
.dashboard-status { padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.dashboard-status.metric-healthy { background: #ecfdf3; }
.dashboard-status.metric-warning { background: #fffaeb; }
.dashboard-status.metric-risk { background: #fef3f2; }
.dashboard-grid { display: grid; gap: 16px; }
.dashboard-grid-wide { grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr); }
.dashboard-card { min-height: 220px; border-color: #e1e8f1; border-radius: 10px; box-shadow: 0 4px 16px rgba(16, 24, 40, .04); }
.dashboard-card .section-heading { margin-bottom: 13px; padding-bottom: 12px; border-bottom: 1px solid #edf1f6; }
.dashboard-card .section-heading h2 { display: inline-flex; align-items: center; gap: 8px; color: #172b4d; font-size: 15px; }
.dashboard-card .section-heading h2::before { width: 3px; height: 15px; border-radius: 99px; background: #2f6feb; content: ""; }
.dashboard-list { display: grid; gap: 0; }
.dashboard-list > a, .dashboard-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 11px 10px; border-bottom: 1px solid #edf1f6; color: #475467; }
.dashboard-list > a:hover { border-radius: 6px; background: #f7faff; }.dashboard-list > a:hover strong { color: #175cd3; }
.dashboard-list strong { overflow: hidden; color: #344054; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-list span { overflow: hidden; color: #667085; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-list em { color: #667085; font-size: 12px; font-style: normal; font-weight: 700; white-space: nowrap; }
.dashboard-list em.late { color: #b42318; }
.dashboard-list em.ahead { color: #067647; }
.dashboard-definition { display: grid; gap: 0; margin: 0; }
.dashboard-definition div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 12px; padding: 11px 10px; border-bottom: 1px solid #edf1f6; background: linear-gradient(90deg, #fbfdff, #fff); }
.dashboard-definition dt { color: #667085; font-size: 13px; font-weight: 700; }
.dashboard-definition dd { margin: 0; overflow: hidden; color: #344054; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-alerts { display: grid; gap: 8px; }
.dashboard-alerts a { padding: 10px 12px; border-left: 3px solid #f97066; border-radius: 0 6px 6px 0; color: #b42318; background: #fff7f6; font-size: 13px; font-weight: 700; }
.dashboard-alerts a:hover { background: #fef3f2; }
.dashboard-status-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.dashboard-status-grid div { display: grid; gap: 5px; padding: 12px; border: 1px solid #e6edf5; border-radius: 7px; background: #fbfdff; }
.dashboard-status-grid span { color: #667085; font-size: 12px; font-weight: 700; }
.dashboard-status-grid strong { color: #175cd3; font-size: 21px; }
.dashboard-conclusion { min-height: 66px; margin: 0 0 14px; color: #475467; line-height: 1.7; white-space: pre-wrap; }
.dashboard-empty { display: grid; justify-items: start; gap: 10px; padding: 36px; }
.dashboard-empty h2, .dashboard-empty p { margin: 0; }

/* APS command-center dashboard */
.dashboard-command-center { gap: 12px; }
.dashboard-command-center .dashboard-heading { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 12px; }
.dashboard-command-center .dashboard-execution-heading { grid-template-columns: minmax(0, 1fr) minmax(560px, 52%); align-items: end; }
.dashboard-heading-copy { min-width: 0; }
.dashboard-heading-copy h1 { overflow-wrap: anywhere; }
.dashboard-execution-toolbar { display: grid; min-width: 0; grid-template-columns: minmax(190px, 1fr) 132px auto 132px auto; align-items: center; gap: 7px; margin: 0; }
.dashboard-execution-toolbar select,
.dashboard-execution-toolbar input { width: 100%; min-width: 0; min-height: 34px; padding: 5px 9px; border: 1px solid #d6dee9; border-radius: 6px; color: #344054; background: #fff; font: inherit; font-size: 12px; }
.dashboard-overview { gap: 16px; }
.dashboard-overview .dashboard-context-bar { padding: 11px 18px; }
.dashboard-overview .dashboard-command-metrics article { padding: 18px; }
.dashboard-overview .dashboard-fixed-panel,
.dashboard-overview .dashboard-compact-panel { padding: 18px 20px; }
.dashboard-sync { margin-left: auto; }
.dashboard-command-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; }
.dashboard-command-metrics article { position: relative; display: grid; min-height: 92px; align-content: start; gap: 6px; padding: 14px; border: 1px solid #e1e7ef; border-radius: 8px; background: #fff; overflow: hidden; }
.dashboard-command-metrics article::before { position: absolute; inset: 0 0 auto; height: 3px; background: #2f6feb; content: ""; }
.dashboard-command-metrics article.healthy::before { background: #12b76a; }
.dashboard-command-metrics article.warning::before { background: #f79009; }
.dashboard-command-metrics article.risk::before { background: #d92d20; }
.dashboard-command-metrics span { color: #667085; font-size: 11px; font-weight: 700; }
.dashboard-command-metrics strong { color: #101828; font-size: 27px; line-height: 1.1; }
.dashboard-command-metrics small { color: #98a2b3; font-size: 10px; }
.dashboard-command-grid { display: grid; gap: 10px; }
.dashboard-command-grid-primary { grid-template-columns: 1.55fr 1fr; }
.dashboard-command-grid-three { grid-template-columns: 1.1fr 1fr 1fr; }
.dashboard-execution-primary { grid-template-columns: 1.65fr .9fr; }
.dashboard-execution-secondary { grid-template-columns: 1.35fr 1fr .78fr; }
.dashboard-fixed-panel,
.dashboard-compact-panel { display: flex; min-height: 0; flex-direction: column; border-color: #dfe6ef; border-radius: 8px; box-shadow: none; }
.dashboard-fixed-panel { height: 300px; }
.dashboard-compact-panel { height: 210px; }
.dashboard-execution-panel { padding-left: 8px; }
.dashboard-fixed-panel .section-heading,
.dashboard-compact-panel .section-heading { flex: 0 0 auto; margin-bottom: 8px; padding-bottom: 9px; border-bottom: 1px solid #edf1f5; }
.dashboard-fixed-panel .section-heading h2,
.dashboard-compact-panel .section-heading h2 { font-size: 14px; }
.dashboard-fixed-panel .section-heading h2::before,
.dashboard-compact-panel .section-heading h2::before { display: none; }
.dashboard-project-rows,
.dashboard-risk-list { display: grid; min-height: 0; overflow: hidden; }
.dashboard-project-rows a { display: grid; grid-template-columns: minmax(0, 1.4fr) auto 90px 65px 80px; gap: 10px; align-items: center; min-height: 41px; padding: 7px 8px; border-bottom: 1px solid #edf1f5; color: #475467; font-size: 11px; }
.dashboard-project-rows strong,
.dashboard-risk-list strong { overflow: hidden; color: #344054; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-project-rows em { color: #667085; font-style: normal; }
.dashboard-project-rows em.late { color: #b42318; }
.dashboard-risk-list { gap: 7px; }
.dashboard-risk-list a { display: grid; grid-template-columns: 4px minmax(0, 1fr) auto; gap: 9px; align-items: center; min-height: 53px; padding: 8px; border: 1px solid #f0e2df; border-radius: 6px; color: #344054; background: #fffaf9; }
.dashboard-risk-list .risk-rail,
.dashboard-risk-list .warning-rail { align-self: stretch; border-radius: 99px; background: #d92d20; }
.dashboard-risk-list .warning-rail { background: #f79009; }
.dashboard-risk-list small { display: block; overflow: hidden; margin-top: 3px; color: #667085; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-risk-list em { color: #b42318; font-size: 10px; font-style: normal; font-weight: 700; white-space: nowrap; }
.dashboard-panel-footer { display: flex; flex: 0 0 auto; align-items: center; min-height: 28px; margin-top: auto; padding-top: 8px; border-top: 1px solid #edf1f5; color: #98a2b3; font-size: 10px; }
.dashboard-panel-controls { display: flex; gap: 6px; align-items: center; margin-left: auto; }
.dashboard-panel-controls > a,
.dashboard-panel-controls > span { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #dbe2eb; border-radius: 4px; color: #667085; background: #fff; }
.dashboard-panel-controls > span { color: #c8d0db; background: #f8fafc; }
.dashboard-panel-controls b { color: #667085; font-size: 10px; }
.dashboard-panel-controls > a.dashboard-panel-all { width: auto; padding: 0 3px; border-color: transparent; color: #175cd3; background: transparent; font-weight: 700; }
.dashboard-progress-list { display: grid; gap: 12px; }
.dashboard-progress-list > div { display: grid; grid-template-columns: 90px minmax(0, 1fr) 38px; gap: 8px; align-items: center; color: #667085; font-size: 11px; }
.dashboard-progress-list i,
.dashboard-inline-progress { display: block; height: 8px; border-radius: 99px; background: #edf1f5; overflow: hidden; }
.dashboard-progress-list i b,
.dashboard-inline-progress i { display: block; height: 100%; border-radius: inherit; background: #2f6feb; }
.dashboard-progress-list i b.high { background: #f79009; }
.dashboard-progress-list i b.overload { background: #d92d20; }
.dashboard-progress-list em { color: #475467; font-style: normal; font-weight: 700; }
.dashboard-milestone-list { display: grid; }
.dashboard-milestone-list > div { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 8px; align-items: center; min-height: 43px; border-bottom: 1px solid #edf1f5; }
.dashboard-milestone-list strong { color: #175cd3; font-size: 17px; }
.dashboard-milestone-list span { color: #344054; font-size: 11px; font-weight: 700; }
.dashboard-milestone-list small { display: block; margin-top: 3px; color: #98a2b3; font-size: 9px; font-weight: 500; }
.dashboard-milestone-list time,
.dashboard-milestone-list em { color: #667085; font-size: 10px; font-style: normal; }
.dashboard-cycle-overview { display: grid; grid-template-columns: 250px minmax(0, 1fr); border: 1px solid #dce4ef; border-radius: 8px; background: #fff; overflow: hidden; }
.dashboard-launch-countdown { display: grid; align-content: center; gap: 8px; padding: 20px; border-right: 1px solid #e5eaf1; background: #f7faff; }
.dashboard-launch-countdown span { color: #667085; font-size: 16px; font-weight: 700; }
.dashboard-launch-countdown strong { color: #b42318; font-size: 46px; }
.dashboard-launch-countdown small { color: #667085; font-size: 14px; }
.dashboard-phase-list { display: flex; min-width: 0; overflow-x: auto; }
.dashboard-phase-list article { position: relative; min-width: 230px; flex: 1 0 230px; min-height: 142px; padding: 18px 16px; border-right: 1px solid #edf1f5; }
.dashboard-phase-list article::before { position: absolute; inset: 0 0 auto; height: 3px; background: #2f6feb; content: ""; }
.dashboard-phase-list article.done::before { background: #12b76a; }
.dashboard-phase-list article.current { background: #fff8eb; box-shadow: inset 0 0 0 1px #fdb022; }
.dashboard-phase-list article.current::before { height: 4px; background: #f79009; }
.dashboard-phase-list b,
.dashboard-phase-list time,
.dashboard-phase-list span { display: block; }
.dashboard-phase-list b { margin-bottom: 13px; color: #344054; font-size: 16px; }
.dashboard-phase-list time { color: #344054; font-size: 14px; font-weight: 700; }
.dashboard-phase-list span { margin-top: 5px; color: #667085; font-size: 13px; }
.dashboard-phase-list small { display: block; margin-top: 4px; color: #667085; font-size: 13px; }
.dashboard-phase-list em { position: absolute; top: 16px; right: 10px; color: #98a2b3; font-size: 12px; font-style: normal; }
.dashboard-phase-list article.current em { padding: 3px 7px; border-radius: 4px; color: #fff; background: #f79009; font-weight: 700; }
.dashboard-phase-list article.pending::before { background: #98a2b3; }
.dashboard-execution-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.dashboard-execution-metrics article { padding: 11px 13px; border: 1px solid #e2e7ee; border-radius: 7px; background: #fff; }
.dashboard-execution-metrics strong { display: block; font-size: 22px; }
.dashboard-execution-metrics span { color: #667085; font-size: 10px; }
.dashboard-task-table { table-layout: fixed; font-size: 11px; }
.dashboard-task-table th,
.dashboard-task-table td { padding: 9px 8px; }
.dashboard-task-table td:first-child a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-inline-progress { width: 76px; }
.dashboard-next-days { display: flex; align-items: baseline; gap: 6px; color: #b54708; font-size: 27px; }
.dashboard-next-days small { color: #b54708; font-size: 11px; }
.empty-inline { margin: 18px 0; color: #98a2b3; font-size: 13px; }
@media (max-width: 1100px) { .dashboard-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .dashboard-heading { align-items: start; } .dashboard-filters select { min-width: 200px; } .dashboard-metrics, .dashboard-grid-wide { grid-template-columns: 1fr; } .dashboard-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-list > a, .dashboard-list > div { grid-template-columns: 1fr; gap: 3px; } }
@media (max-width: 1100px) {
  .dashboard-command-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-execution-secondary { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .dashboard-command-center .dashboard-heading,
  .dashboard-command-center .dashboard-execution-heading { grid-template-columns: 1fr; align-items: stretch; }
  .dashboard-execution-toolbar { width: 100%; grid-template-columns: 1fr auto 1fr; }
  .dashboard-execution-toolbar select,
  .dashboard-execution-toolbar .button { grid-column: 1 / -1; }
  .dashboard-command-metrics,
  .dashboard-execution-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-command-grid-primary,
  .dashboard-command-grid-three,
  .dashboard-execution-primary,
  .dashboard-execution-secondary,
  .dashboard-cycle-overview { grid-template-columns: 1fr; }
  .dashboard-launch-countdown { border-right: 0; border-bottom: 1px solid #e5eaf1; }
  .dashboard-project-rows a { grid-template-columns: 1fr auto; }
  .dashboard-project-rows a > span:not(.dashboard-status),
  .dashboard-project-rows a > em { display: none; }
}

/* Research report workbench */
.research-workbench-entry { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:18px 0; padding:18px 20px; border-color:#cfe0ff; background:#f7faff; }
.research-workbench-entry h2 { margin:4px 0 6px; font-size:20px; }
.research-workbench-entry p { margin:0; color:#63728a; }
.research-entry-eyebrow { color:#1d5fd1; font-size:13px; font-weight:700; letter-spacing:.04em; }
.research-workbench-entry-actions { display:flex; gap:10px; flex-shrink:0; }
@media (max-width:720px) { .research-workbench-entry { align-items:flex-start; flex-direction:column; } .research-workbench-entry-actions { width:100%; } }
.schedule-item-table thead th { text-align: center; }
.schedule-step-col { width: 76px; }
.schedule-phase-col { width: 100px; }
.schedule-milestone-col { width: 120px; }
.schedule-duration-col { width: 68px; }
.schedule-item-table .schedule-select-col,
.schedule-item-table .schedule-select-cell { width: 42px; min-width: 42px; max-width: 42px; text-align: center; white-space: nowrap; }
.schedule-item-table th:nth-child(2),
.schedule-item-table td:nth-child(2) { width: 76px; min-width: 76px; max-width: 76px; text-align: center; white-space: nowrap; }
.schedule-task-tree { display: flex; min-width: 0; align-items: center; gap: 5px; padding-left: calc(var(--tree-depth) * 15px); }
.schedule-hierarchy-code { margin-right: 5px; color: #526581; font-weight: 800; }
.tree-toggle, .tree-toggle-spacer { flex: 0 0 16px; width: 16px; height: 16px; }
.tree-toggle { display: inline-grid; place-items: center; padding: 0; border: 0; border-radius: 3px; color: #526581; background: transparent; font-size: 16px; font-weight: 800; line-height: 1; cursor: pointer; }
.tree-toggle:hover { color: #175cd3; background: #edf4ff; }
.tree-toggle-spacer { display: inline-block; }
[data-tree-node][hidden] { display: none !important; }
.schedule-item-table th:nth-child(4),
.schedule-item-table td:nth-child(4) { width: 100px; min-width: 100px; max-width: 100px; white-space: normal; }
.schedule-item-table th:nth-child(5),
.schedule-item-table td:nth-child(5) { width: 120px; min-width: 120px; max-width: 120px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.schedule-item-table th:nth-child(8),
.schedule-item-table td:nth-child(8) { min-width: 190px; white-space: nowrap; }
.schedule-item-table th:nth-child(9),
.schedule-item-table td:nth-child(9) { width: 68px; min-width: 68px; max-width: 68px; text-align: center; white-space: nowrap; }
.wbs-schedule-table {
  min-width: 1900px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}
.wbs-schedule-table th,
.wbs-schedule-table td {
  padding: 3px 8px;
}
.wbs-schedule-table tbody td {
  height: 40px;
}
.wbs-schedule-table tbody tr.wbs-level-one-row > td {
  height: 42px;
}
.wbs-schedule-table thead th {
  height: 34px;
  color: #40516a;
  background: #f6f8fb;
  font-size: 13px;
  font-weight: 750;
  text-align: center;
}
.wbs-schedule-table tbody tr {
  transition: background .15s ease, box-shadow .15s ease;
}
.wbs-schedule-table tbody tr:hover {
  background: #f8fbff;
  box-shadow: inset 0 0 0 999px rgba(37, 99, 235, .018);
}
.wbs-schedule-table .schedule-step-col { width: 64px; }
.wbs-schedule-table .schedule-task-col { width: 310px; }
.wbs-schedule-table .schedule-status-col { width: 84px; }
.wbs-schedule-table .schedule-phase-col { width: 100px; }
.wbs-schedule-table .schedule-milestone-col { width: 116px; }
.wbs-schedule-table .schedule-effort-col { width: 124px; }
.wbs-schedule-table .schedule-duration-col { width: 88px; }
.schedule-effort-cell { text-align: center; white-space: nowrap; }
.schedule-effort-cell span, .schedule-effort-cell small { display: block; }
.schedule-effort-cell small { margin-top: 2px; color: #667085; font-size: 11px; }
.wbs-schedule-table .schedule-select-col,
.wbs-schedule-table .schedule-select-cell {
  width: 42px;
  min-width: 42px;
  max-width: 42px;
  text-align: center;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(2),
.wbs-schedule-table td:nth-child(2) {
  width: 64px;
  min-width: 64px;
  max-width: 64px;
  text-align: center;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(3),
.wbs-schedule-table td:nth-child(3) {
  width: 310px;
  min-width: 310px;
  max-width: 310px;
  white-space: normal;
}
.wbs-schedule-table th:nth-child(4),
.wbs-schedule-table td:nth-child(4) {
  width: 188px;
  min-width: 188px;
  max-width: 188px;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(5),
.wbs-schedule-table td:nth-child(5) {
  width: 88px;
  min-width: 88px;
  max-width: 88px;
  text-align: center;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(6),
.wbs-schedule-table td:nth-child(6) {
  width: 112px;
  min-width: 112px;
  max-width: 112px;
  overflow: hidden;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(7),
.wbs-schedule-table td:nth-child(7) {
  width: 160px;
  min-width: 160px;
  max-width: 160px;
  white-space: nowrap;
  overflow: hidden;
}
.wbs-schedule-table th:nth-child(8),
.wbs-schedule-table td:nth-child(8) {
  width: 96px;
  min-width: 96px;
  max-width: 96px;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(9),
.wbs-schedule-table td:nth-child(9) {
  width: 84px;
  min-width: 84px;
  max-width: 84px;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(10),
.wbs-schedule-table td:nth-child(10) {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(11),
.wbs-schedule-table td:nth-child(11) {
  width: 200px;
  min-width: 200px;
  max-width: 200px;
  white-space: normal;
}
.wbs-schedule-table th:nth-child(12),
.wbs-schedule-table td:nth-child(12) {
  width: 116px;
  min-width: 116px;
  max-width: 116px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wbs-schedule-table th:nth-child(13),
.wbs-schedule-table td:nth-child(13) {
  width: 120px;
  min-width: 120px;
  max-width: 120px;
  white-space: normal;
}
.wbs-schedule-table th:nth-child(14),
.wbs-schedule-table td:nth-child(14) {
  width: 132px;
  min-width: 132px;
  max-width: 132px;
  white-space: nowrap;
}
.wbs-schedule-table th:nth-child(15),
.wbs-schedule-table td:nth-child(15) {
  width: 88px;
  min-width: 88px;
  max-width: 88px;
  white-space: nowrap;
}
.wbs-schedule-table th:first-child,
.wbs-schedule-table td:first-child,
.wbs-schedule-table th:nth-child(2),
.wbs-schedule-table td:nth-child(2),
.wbs-schedule-table th:nth-child(3),
.wbs-schedule-table td:nth-child(3) {
  position: sticky;
  z-index: 3;
}
.wbs-schedule-table th:first-child,
.wbs-schedule-table td:first-child {
  left: 0;
}
.wbs-schedule-table th:nth-child(2),
.wbs-schedule-table td:nth-child(2) {
  left: 42px;
}
.wbs-schedule-table th:nth-child(3),
.wbs-schedule-table td:nth-child(3) {
  left: 106px;
  box-shadow: 1px 0 0 #eef0f3;
}
.wbs-schedule-table th:last-child,
.wbs-schedule-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  box-shadow: -1px 0 0 #eef0f3;
}
.wbs-schedule-table tbody td:first-child,
.wbs-schedule-table tbody td:nth-child(2),
.wbs-schedule-table tbody td:nth-child(3),
.wbs-schedule-table tbody td:last-child {
  background: #fff;
}
.wbs-parent-row td:first-child,
.wbs-parent-row td:nth-child(2),
.wbs-parent-row td:nth-child(3),
.wbs-parent-row td:last-child {
  background: #fbfdff;
}
.wbs-schedule-table tbody tr:hover td:first-child,
.wbs-schedule-table tbody tr:hover td:nth-child(2),
.wbs-schedule-table tbody tr:hover td:nth-child(3),
.wbs-schedule-table tbody tr:hover td:last-child {
  background: #f8fbff;
}
.wbs-schedule-table thead th:first-child,
.wbs-schedule-table thead th:nth-child(2),
.wbs-schedule-table thead th:nth-child(3),
.wbs-schedule-table thead th:last-child {
  z-index: 4;
  background: #f6f8fb;
}
.wbs-parent-row {
  background: #fbfdff;
}
.wbs-parent-row td:first-child {
  position: sticky;
}
.wbs-parent-row td:first-child::before {
  position: absolute;
  top: 7px;
  bottom: 7px;
  left: 0;
  width: 3px;
  border-radius: 999px;
  background: var(--primary);
  content: "";
}
.wbs-cancelled-row .task-name,
.wbs-cancelled-row small {
  color: #98a2b3;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.wbs-schedule-table .schedule-task-tree {
  align-items: center;
  gap: 6px;
  padding-left: calc(var(--tree-depth) * 20px);
}
.wbs-schedule-table .tree-toggle,
.wbs-schedule-table .tree-toggle-spacer {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
}
.wbs-schedule-table .tree-toggle {
  border: 1px solid #d8e0ec;
  border-radius: 5px;
  color: #475569;
  background: #fff;
  font-size: 12px;
}
.wbs-schedule-table .tree-toggle:hover {
  color: var(--primary);
  background: #eff6ff;
}
.wbs-schedule-table .task-name {
  overflow: hidden;
  color: #111827;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wbs-parent-row .task-name {
  font-size: 13px;
  font-weight: 760;
}
.wbs-level-one-row,
.wbs-schedule-table tbody tr.wbs-level-one-row td:first-child,
.wbs-schedule-table tbody tr.wbs-level-one-row td:nth-child(2),
.wbs-schedule-table tbody tr.wbs-level-one-row td:nth-child(3),
.wbs-schedule-table tbody tr.wbs-level-one-row td:last-child,
.wbs-schedule-table tbody tr.wbs-level-one-row:hover,
.wbs-schedule-table tbody tr.wbs-level-one-row:hover td:first-child,
.wbs-schedule-table tbody tr.wbs-level-one-row:hover td:nth-child(2),
.wbs-schedule-table tbody tr.wbs-level-one-row:hover td:nth-child(3),
.wbs-schedule-table tbody tr.wbs-level-one-row:hover td:last-child {
  background: #c2d6ff;
}
.wbs-level-one-row .wbs-empty,
.wbs-level-one-row.wbs-cancelled-row .task-name {
  color: #475467;
}
.schedule-select-cell input,
.schedule-select-col input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #175cd3;
}
.schedule-select-cell input:focus-visible,
.schedule-select-col input:focus-visible {
  outline: 2px solid #175cd3;
  outline-offset: 2px;
}
.wbs-task-tooltip {
  position: fixed;
  z-index: 3000;
  display: none;
  max-width: min(560px, calc(100vw - 32px));
  padding: 9px 12px;
  border: 1px solid #dbe5f2;
  border-radius: 8px;
  color: #1f2937;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .16);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.55;
  pointer-events: none;
  white-space: normal;
}
.wbs-task-tooltip.is-visible {
  display: block;
}
.wbs-status-tag,
.wbs-stage-tag,
.wbs-milestone-tag,
.wbs-deliverable-tag {
  display: inline-flex;
  max-width: 100%;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  padding: 1px 6px;
  border: 1px solid transparent;
  border-radius: 999px;
  overflow: hidden;
  font-size: 11px;
  font-weight: 720;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wbs-status-进行中 {
  border-color: #bbf7d0;
  color: #16a34a;
  background: #f0fdf4;
}
.wbs-status-已完成 {
  border-color: #bfdbfe;
  color: #2563eb;
  background: #eff6ff;
}
.wbs-status-未开始 {
  border-color: #e2e8f0;
  color: #64748b;
  background: #f1f5f9;
}
.wbs-status-暂停,
.wbs-status-已暂停 {
  border-color: #fed7aa;
  color: #d97706;
  background: #fff7ed;
}
.wbs-status-取消 {
  border-color: #e5e7eb;
  color: #6b7280;
  background: #f3f4f6;
}
.wbs-stage-init { color: #1d4ed8; background: #eff6ff; }
.wbs-stage-survey { color: #7c3aed; background: #f5f3ff; }
.wbs-stage-solution { color: #0891b2; background: #ecfeff; }
.wbs-stage-design { color: #d97706; background: #fff7ed; }
.wbs-stage-build { color: #16a34a; background: #f0fdf4; }
.wbs-stage-test { color: #9333ea; background: #faf5ff; }
.wbs-stage-online { color: #0f172a; background: #e2e8f0; }
.wbs-milestone-tag {
  border-color: #dbeafe;
  color: #1d4ed8;
  background: #eff6ff;
}
.wbs-empty {
  color: #98a2b3;
  font-size: 12px;
}
.wbs-note-indicator {
  display: inline-flex;
  height: 16px;
  align-items: center;
  padding: 0 4px;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  color: #2563eb;
  background: #eff6ff;
  font-size: 10px;
  font-weight: 750;
  line-height: 1;
  white-space: nowrap;
}
.wbs-period {
  color: #334155;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.wbs-days-pill {
  display: inline-flex;
  min-width: 36px;
  height: 20px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border-radius: 7px;
  color: #334155;
  background: #f1f5f9;
  font-weight: 760;
  white-space: nowrap;
}
.wbs-dependency {
  display: inline-flex;
  max-width: 82px;
  height: 20px;
  align-items: center;
  padding: 0 6px;
  overflow: hidden;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  color: #1d4ed8;
  background: #eff6ff;
  font-size: 11px;
  font-weight: 740;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wbs-deliverables {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.wbs-deliverable-tag {
  max-width: 70px;
  border-color: #e2e8f0;
  color: #475569;
  background: #f8fafc;
}
.wbs-more-count {
  color: #667085;
  font-size: 11px;
  font-weight: 760;
  white-space: nowrap;
}
.wbs-schedule-table .owner {
  gap: 5px;
  max-width: 100%;
  font-weight: 680;
  overflow: hidden;
}
.wbs-schedule-table .avatar {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  font-size: 11px;
}
.wbs-schedule-table .owner-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wbs-schedule-table .owner-extra {
  flex: 0 0 auto;
  padding: 1px 5px;
  border-radius: 999px;
  color: #175cd3;
  background: #eff6ff;
  font-size: 11px;
  font-weight: 780;
}
.wbs-schedule-table .row-actions {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.wbs-schedule-table .row-actions > a,
.wbs-schedule-table .row-actions > form,
.wbs-schedule-table .row-actions > details {
  margin-left: 0;
}
.wbs-more-actions {
  position: relative;
  display: inline-flex;
}
.wbs-more-actions[open] {
  z-index: 30;
}
.wbs-more-actions summary {
  display: inline-grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid #d8e0ec;
  border-radius: 999px;
  color: #667085;
  background: #fff;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  list-style: none;
}
.wbs-more-actions summary::-webkit-details-marker {
  display: none;
}
.wbs-more-actions summary:hover {
  border-color: #b8c2d2;
  color: var(--primary);
  background: #f8fbff;
}
.wbs-more-menu {
  position: absolute;
  top: 50%;
  right: calc(100% + 6px);
  z-index: 80;
  display: flex;
  min-width: max-content;
  transform: translateY(-50%);
  padding: 5px;
  border: 1px solid #d8e0ec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .14);
}
.wbs-more-menu form {
  margin: 0;
}
.wbs-more-menu button {
  width: auto;
  min-width: 68px;
  min-height: 28px;
  padding: 0 8px;
  border: 0;
  border-radius: 6px;
  color: #475569;
  background: transparent;
  font-size: 12px;
  font-weight: 650;
  text-align: left;
  cursor: pointer;
}
.wbs-more-menu button:hover {
  color: var(--primary);
  background: #f8fbff;
}
.wbs-more-menu button.danger:hover {
  color: var(--danger);
  background: #fff4f2;
}
.wbs-fullscreen-toggle {
  min-height: 30px;
  padding: 4px 10px;
  border: 1px solid #bfd3ee;
  border-radius: 6px;
  color: #175cd3;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.wbs-fullscreen-toggle:hover {
  border-color: #2f6feb;
  background: #f0f6ff;
}
.wbs-table-actions { display: inline-flex; align-items: center; gap: 8px; }
.plan-export-dialog { width: min(480px, calc(100vw - 32px)); padding: 0; border: 1px solid #d8e1ee; border-radius: 12px; box-shadow: 0 22px 52px rgba(16, 24, 40, .2); }
.plan-export-dialog::backdrop { background: rgba(15, 23, 42, .36); }
.plan-export-dialog form { padding: 20px; }
.plan-export-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.plan-export-dialog h3 { margin: 0; color: #1d2939; font-size: 18px; }
.plan-export-dialog p { margin: 5px 0 0; color: #667085; font-size: 13px; line-height: 1.55; }
.dialog-close { width: 28px; height: 28px; border: 0; border-radius: 6px; color: #667085; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; }
.dialog-close:hover { color: #344054; background: #f2f4f7; }
.plan-export-date-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.plan-export-hint { color: #98a2b3 !important; font-size: 12px !important; }
.plan-export-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.schedule-bulk-edit-dialog { width: min(620px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: hidden; border: 1px solid #d8e1ee; border-radius: 12px; box-shadow: 0 22px 52px rgba(16, 24, 40, .2); }
.schedule-bulk-edit-dialog::backdrop { background: rgba(15, 23, 42, .36); }
.schedule-bulk-edit-dialog form { display: grid; max-height: calc(100vh - 34px); grid-template-rows: auto minmax(0, 1fr) auto; padding: 20px; }
.schedule-bulk-edit-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.schedule-bulk-edit-heading h3 { margin: 0; color: #1d2939; font-size: 18px; }
.schedule-bulk-edit-heading p { margin: 5px 0 0; color: #667085; font-size: 13px; line-height: 1.55; }
.schedule-bulk-edit-fields { display: grid; min-height: 0; gap: 10px; overflow-y: auto; padding-right: 4px; }
.schedule-bulk-edit-field { padding: 12px; border: 1px solid #e4e7ec; border-radius: 8px; background: #fbfcfe; }
.schedule-bulk-field-toggle { display: inline-flex; align-items: center; gap: 8px; color: #344054; font-weight: 700; }
.schedule-bulk-field-toggle input { width: 16px; height: 16px; margin: 0; accent-color: #175cd3; }
.schedule-bulk-field-controls { display: grid; gap: 10px; margin-top: 10px; }
.schedule-bulk-field-control { display: grid; gap: 5px; color: #475467; font-size: 13px; font-weight: 650; }
.schedule-bulk-field-controls p { margin: 0; color: #667085; font-size: 12px; }
.schedule-bulk-field-controls input,
.schedule-bulk-field-controls select { width: 100%; }
.schedule-bulk-field-controls input:disabled,
.schedule-bulk-field-controls select:disabled { border-color: #d0d5dd; color: #667085; background: #f2f4f7; cursor: not-allowed; opacity: 1; }
.schedule-bulk-collaborators { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.schedule-bulk-collaborators label { display: inline-flex; align-items: center; gap: 6px; color: #475467; font-size: 13px; }
.schedule-bulk-collaborators input { width: 16px; min-height: 16px; margin: 0; accent-color: #175cd3; }
.schedule-bulk-edit-actions { position: sticky; bottom: 0; z-index: 1; display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 12px; background: #fff; }
.schedule-date-adjustment-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; border: 0; }
.schedule-date-adjustment-modes legend { margin-bottom: 8px; color: #344054; font-size: 13px; font-weight: 700; }
.schedule-date-adjustment-modes label { display: inline-flex; align-items: center; gap: 6px; color: #475467; font-size: 13px; }
.schedule-date-adjustment-preview { min-width: 760px; width: 100%; border-collapse: collapse; }
.schedule-date-adjustment-preview th,
.schedule-date-adjustment-preview td { padding: 9px 10px; border-bottom: 1px solid #e4e7ec; text-align: left; white-space: nowrap; }
.schedule-date-adjustment-error { padding: 10px 12px; border: 1px solid #fda29b; border-radius: 8px; color: #912018; background: #fef3f2; }
.schedule-date-adjustment-table-wrap { overflow-x: auto; }
.schedule-date-adjustment-confirm:focus-visible,
.schedule-date-adjustment-back:focus-visible { outline: 3px solid rgba(23, 92, 211, .28); outline-offset: 2px; }
@media (max-width: 720px) {
  .schedule-date-adjustment-modes { grid-template-columns: 1fr; }
}

/* Public single-project execution display (B3 deep teal). */
.public-display-body { min-width: 1180px; margin: 0; overflow: auto; color: #eaf8f6; background: #0c1820; }
.public-display-dashboard {
  --display-bg: #0c1820;
  --display-card: #12252d;
  --display-card-raised: #17313a;
  --display-line: #23424b;
  --display-text: #eaf8f6;
  --display-muted: #8fb0b0;
  --display-accent: #55d5b1;
  --display-risk: #ff6b6b;
  --display-warning: #f4c35a;
  box-sizing: border-box;
  display: grid;
  grid-template-rows: 74px minmax(0, 1fr);
  gap: 14px;
  width: 100%;
  min-height: 100vh;
  padding: 18px 22px 22px;
  color: var(--display-text);
  background: radial-gradient(circle at 18% 0%, #15343d 0, var(--display-bg) 34%);
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
.public-display-dashboard * { box-sizing: border-box; }
.public-display-header { display: flex; min-width: 0; align-items: center; justify-content: space-between; padding: 0 4px 12px; border-bottom: 1px solid var(--display-line); }
.public-display-header p, .public-display-header h1 { margin: 0; }
.public-display-header p { color: var(--display-accent); font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.public-display-header h1 { max-width: 1180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(25px, 1.75vw, 34px); line-height: 1.28; }
.public-display-runtime { display: grid; justify-items: end; gap: 3px; color: var(--display-muted); font-size: 12px; }
.public-display-state { color: var(--display-accent); font-size: 14px; font-weight: 750; }
[data-display-state="reconnecting"] .public-display-state,
[data-display-state="stale"] .public-display-state { color: var(--display-warning); }
[data-display-state="expired"] .public-display-state { color: var(--display-risk); }
.public-display-content { display: grid; min-height: 0; grid-template-rows: 154px 78px minmax(300px, 1fr) 230px; gap: 12px; }
.public-display-cycle { display: grid; min-height: 0; grid-template-columns: 230px minmax(0, 1fr); gap: 12px; }
.public-display-launch, .public-display-card, .public-display-metrics article { border: 1px solid var(--display-line); border-radius: 12px; background: linear-gradient(145deg, var(--display-card-raised), var(--display-card)); box-shadow: 0 8px 22px rgba(0, 0, 0, .16); }
.public-display-launch { display: grid; align-content: center; justify-items: center; gap: 4px; padding: 14px; text-align: center; }
.public-display-launch > span { color: var(--display-muted); font-size: 14px; font-weight: 700; }
.public-display-launch strong { color: var(--display-accent); font-size: 42px; line-height: 1; }
.public-display-launch strong small { margin-left: 4px; font-size: 17px; }
.public-display-launch strong.is-empty { font-size: 22px; }
.public-display-launch time, .public-display-launch p { margin: 0; color: var(--display-muted); font-size: 12px; }
.public-display-launch p b { color: var(--display-text); }
.public-display-phases { display: grid; min-width: 0; grid-auto-flow: column; grid-auto-columns: minmax(190px, 1fr); gap: 10px; overflow-x: auto; overscroll-behavior: contain; scrollbar-color: var(--display-line) transparent; }
.public-display-phase { display: grid; min-width: 0; align-content: center; gap: 7px; padding: 14px 16px; border: 1px solid var(--display-line); border-top: 3px solid #54717a; border-radius: 10px; background: var(--display-card); }
.public-display-phase.is-current { border-top-color: var(--display-accent); background: #16333a; }
.public-display-phase.is-done { border-top-color: #5b8fa1; }
.public-display-phase header { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; }
.public-display-phase b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 18px; }
.public-display-phase em { flex: none; padding: 3px 7px; border-radius: 999px; color: var(--display-muted); background: #0d2027; font-size: 11px; font-style: normal; }
.public-display-phase.is-current em { color: #08231c; background: var(--display-accent); }
.public-display-phase time, .public-display-phase span, .public-display-phase small { color: var(--display-muted); font-size: 12px; }
.public-display-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.public-display-metrics article { display: flex; align-items: center; justify-content: space-between; padding: 13px 20px; }
.public-display-metrics span { color: var(--display-muted); font-size: 15px; font-weight: 700; }
.public-display-metrics strong { color: var(--display-accent); font-size: 32px; line-height: 1; }
.public-display-metrics .is-risk strong { color: var(--display-risk); }
.public-display-metrics .is-warning strong { color: var(--display-warning); }
.public-display-primary-grid { display: grid; min-height: 0; grid-template-columns: minmax(0, 2.2fr) minmax(240px, .8fr); gap: 12px; }
.public-display-secondary-grid { display: grid; min-height: 0; grid-template-columns: 1fr 1fr .72fr; gap: 12px; }
.public-display-card { display: grid; min-width: 0; min-height: 0; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
.public-display-card > header { min-height: 58px; padding: 13px 18px 10px; border-bottom: 1px solid var(--display-line); }
.public-display-card h2, .public-display-card header p { margin: 0; }
.public-display-card h2 { font-size: 18px; }
.public-display-card header p { margin-top: 3px; color: var(--display-muted); font-size: 12px; }
.public-display-scroll, .public-display-summary-scroll { min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-color: #315a64 transparent; }
.public-display-scroll:focus-visible, .public-display-summary-scroll:focus-visible, .public-display-phases:focus-visible { outline: 2px solid var(--display-accent); outline-offset: -2px; }
.public-display-card table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.public-display-card th { position: sticky; z-index: 1; top: 0; padding: 9px 12px; color: var(--display-muted); background: #10242b; text-align: left; font-size: 12px; }
.public-display-card tbody td { padding: 10px 12px; overflow: hidden; border-top: 1px solid var(--display-line); color: #f2fbf9; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.public-display-card td.public-display-task-name { font-weight: 700; }
.public-display-card th:first-child { width: 35%; }
.public-display-card th:nth-child(2) { width: 16%; }
.public-display-card th:nth-child(3), .public-display-card th:nth-child(4) { width: 10%; }
.public-display-card th:nth-child(5) { width: 17%; }
.public-display-card th:nth-child(6) { width: 12%; }
.public-display-progress { display: inline-block; width: calc(100% - 42px); height: 7px; overflow: hidden; border-radius: 999px; background: #0a1a20; vertical-align: middle; }
.public-display-progress b { display: block; height: 100%; background: var(--display-accent); }
.public-display-card tbody td > span { margin-left: 5px; color: #f2fbf9; font-size: 11px; }
.is-risk-text { color: var(--display-risk); font-weight: 700; }
.public-display-task-columns { display: grid; min-height: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--display-line); }
.public-display-task-column { display: grid; min-width: 0; min-height: 0; grid-template-rows: 42px minmax(0, 1fr); background: var(--display-card); }
.public-display-task-column > header { display: flex; align-items: center; justify-content: space-between; padding: 9px 12px; border-bottom: 1px solid var(--display-line); background: #10242b; }
.public-display-task-column h3 { margin: 0; font-size: 14px; }
.public-display-task-column > header strong { min-width: 24px; padding: 2px 7px; border-radius: 999px; color: var(--display-accent); background: #17363d; text-align: center; font-size: 12px; }
.public-display-task-column.is-overdue > header strong { color: var(--display-risk); background: rgba(255, 107, 107, .12); }
.public-display-task-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #315a64 transparent; }
.public-display-task-list:focus-visible { outline: 2px solid var(--display-accent); outline-offset: -2px; }
.public-display-task-item { display: grid; gap: 5px; padding: 10px 12px; border-bottom: 1px solid var(--display-line); color: #f2fbf9; }
.public-display-task-item > div, .public-display-task-item p { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; margin: 0; }
.public-display-task-item b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.public-display-task-item em { flex: none; font-size: 11px; font-style: normal; }
.public-display-task-item p, .public-display-task-item time { color: var(--display-muted); font-size: 11px; }
.public-display-task-item p span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-display-task-item.is-complete { color: var(--display-accent); }
.public-display-task-item.is-complete p, .public-display-task-item.is-complete time { color: #78cbb5; }
.public-display-task-item.is-overdue { color: var(--display-risk); border-bottom-color: rgba(255, 107, 107, .28); background: rgba(255, 107, 107, .06); }
.public-display-task-item.is-overdue p, .public-display-task-item.is-overdue time { color: var(--display-risk); }
.public-display-risk-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; padding: 13px 16px; border-bottom: 1px solid rgba(35, 66, 75, .72); border-left: 3px solid var(--display-warning); }
.public-display-risk-list article.is-high { border-left-color: var(--display-risk); }
.public-display-risk-list b, .public-display-risk-list p { display: block; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-display-risk-list b { font-size: 14px; }
.public-display-risk-list p, .public-display-risk-list time { margin-top: 4px; color: var(--display-muted); font-size: 12px; }
.public-display-risk-list span { grid-column: 2; grid-row: 1; color: var(--display-warning); font-size: 12px; font-weight: 750; }
.public-display-risk-list .is-high span { color: var(--display-risk); }
.public-display-risk-list time { grid-column: 2; grid-row: 2; }
.public-display-summary-scroll { display: grid; align-content: start; gap: 13px; padding: 16px 18px; }
.public-display-bar { display: grid; grid-template-columns: minmax(82px, 1fr) 2fr 54px; align-items: center; gap: 10px; }
.public-display-bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.public-display-bar > i { height: 8px; overflow: hidden; border-radius: 99px; background: #09191f; }
.public-display-bar > i b { display: block; height: 100%; background: var(--display-accent); }
.public-display-bar > i b.is-high { background: var(--display-warning); }
.public-display-bar > i b.is-overload { background: var(--display-risk); }
.public-display-bar em { color: var(--display-muted); text-align: right; font-size: 12px; font-style: normal; }
.public-display-next { display: flex; flex-direction: column; align-items: center; }
.public-display-next header { width: 100%; }
.public-display-next > strong { margin-top: 18px; color: var(--display-accent); font-size: 46px; line-height: 1; }
.public-display-next > strong small { margin-left: 5px; font-size: 15px; }
.public-display-next > p, .public-display-next > time { max-width: calc(100% - 28px); margin: 8px 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-display-next > time { color: var(--display-muted); font-size: 12px; }
.public-display-empty { margin: auto; padding: 18px; color: var(--display-muted); text-align: center; }
.public-display-unavailable { display: grid; min-height: 100vh; place-content: center; padding: 40px; text-align: center; }
.public-display-unavailable span { color: #55d5b1; font-weight: 800; letter-spacing: .2em; }
.public-display-unavailable h1 { margin: 14px 0 8px; font-size: 30px; }
.public-display-unavailable p { margin: 0; color: #8fb0b0; }

@media (max-width: 1279px) {
  .public-display-body { min-width: 0; }
  .public-display-dashboard { min-width: 1180px; }
  .public-display-content { grid-template-rows: 150px 72px minmax(280px, 1fr) 210px; }
  .public-display-header h1 { max-width: 760px; }
  .public-display-phase b { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .public-display-dashboard *, .public-display-dashboard *::before, .public-display-dashboard *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
.wbs-table-fullscreen-open {
  overflow: hidden;
}
.wbs-table-card.wbs-table-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 210;
  display: flex;
  flex-direction: column;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: #f8fafc;
}
.wbs-table-fullscreen .table-header {
  flex: 0 0 auto;
  padding: 15px 24px;
  border-bottom-color: #dbe3ef;
  background: #fff;
}
.wbs-table-fullscreen .table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  margin: 14px 24px 24px;
  overflow: auto;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  background: #fff;
}
.wbs-table-fullscreen .wbs-schedule-table {
  min-width: 1900px;
}
.wbs-table-fullscreen .wbs-schedule-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  box-shadow: inset 0 -1px 0 #dbe3ef;
}
.wbs-table-fullscreen .wbs-schedule-table thead th:first-child,
.wbs-table-fullscreen .wbs-schedule-table thead th:nth-child(2),
.wbs-table-fullscreen .wbs-schedule-table thead th:nth-child(3),
.wbs-table-fullscreen .wbs-schedule-table thead th:last-child {
  z-index: 6;
  background: #f6f8fb;
}
tbody tr { transition: background .12s; }
tbody tr:hover { background: #fafbff; }
tr:last-child td { border-bottom: 0; }
.project-name { color: #344054; font-weight: 600; }
.task-name { color: #101828; font-weight: 600; }
.task-name-overdue { color: #b42318; }
.current-node-name { color: var(--success); }
.inline-check { display: inline-flex; grid-template-columns: none; align-items: center; gap: 8px; color: #475467; font-size: 13px; font-weight: 600; }
.inline-check input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--danger); }
.form-check-field {
  align-self: end;
  min-height: 42px;
  justify-content: flex-start;
  padding: 8px 12px;
  border: 1px solid #d8dee8;
  border-radius: 999px;
  background: #fff;
  font-weight: 700;
  transition: border-color .15s, box-shadow .15s, background .15s, color .15s;
}
.form-check-field:hover {
  border-color: #b8c2d2;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
.form-check-field:has(input:checked) {
  border-color: #fecdca;
  color: var(--danger);
  background: #fff4f2;
}
.owner { display: inline-flex; align-items: center; gap: 8px; }
.avatar { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; color: #344054; background: #f2f4f7; font-size: 11px; font-weight: 700; }

.status { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; background: #f2f4f7; font-size: 12px; font-weight: 600; }
.status-进行中 { color: #175cd3; background: #eff8ff; }
.status-已完成 { color: var(--success); background: #ecfdf3; }
.status-已暂停 { color: #b54708; background: #fffaeb; }
.status-未开始 { color: #475467; background: #f2f4f7; }
.status-未启动 { color: #475467; background: #f2f4f7; }
.status-暂停 { color: #b54708; background: #fffaeb; }
.status-关闭 { color: #475467; background: #f2f4f7; }
.status-草稿 { color: #475467; background: #f2f4f7; }
.status-已确认 { color: #175cd3; background: #eff8ff; }
.status-执行中 { color: #067647; background: #ecfdf3; }
.status-已关闭 { color: #475467; background: #f2f4f7; }
.status-待处理 { color: #b54708; background: #fffaeb; }
.status-处理中 { color: #175cd3; background: #eff8ff; }
.status-待验证 { color: #175cd3; background: #eff8ff; }
.status-已解决 { color: #067647; background: #ecfdf3; }
.status-取消 { color: #475467; background: #f2f4f7; }
.status-工作日 { color: #067647; background: #ecfdf3; }
.status-休息日 { color: #475467; background: #f2f4f7; }
.status-正常 { color: #067647; background: #ecfdf3; }
.status-预警 { color: #b54708; background: #fffaeb; }
.status-延期 { color: #b42318; background: #fef3f2; }
.health-level-高 { color: #b42318; background: #fef3f2; }
.health-level-中 { color: #b54708; background: #fffaeb; }
.health-level-低 { color: #475467; background: #f2f4f7; }
.priority { display: inline-block; min-width: 34px; padding: 3px 7px; border-radius: 5px; text-align: center; font-size: 11px; font-weight: 700; }
.priority-P0 { color: #b42318; background: #fef3f2; }
.priority-P1 { color: #b54708; background: #fffaeb; }
.priority-P2 { color: #175cd3; background: #eff8ff; }
.priority-P3 { color: #475467; background: #f2f4f7; }
.task-type { display: inline-block; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.type-新需求 { color: #6941c6; background: #f4f3ff; }
.type-问题 { color: #b42318; background: #fef3f2; }
.type-验收 { color: #067647; background: #ecfdf3; }
.type-回款 { color: #b54708; background: #fffaeb; }
.type-计划 { color: #175cd3; background: #eff8ff; }
.type-风险 { color: #b42318; background: #fef3f2; }
.progress-row { display: flex; align-items: center; gap: 8px; color: #344054; font-size: 12px; }
.progress { width: 76px; height: 6px; overflow: hidden; border-radius: 999px; background: #eaecf0; }
.progress span { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.actions-column { min-width: 112px; text-align: right; }
.row-actions { min-width: 112px; text-align: right; white-space: nowrap; }
.row-actions > a,
.row-actions > form { display: inline-flex; align-items: center; margin-left: 10px; vertical-align: middle; }
.row-actions > a:first-child,
.row-actions > form:first-child { margin-left: 0; }
.row-actions form { margin-top: 0; margin-bottom: 0; }
.row-more-actions { position: relative; display: inline-flex; }
.row-more-actions[open] { z-index: 30; }
.row-more-actions summary { display: inline-flex; min-height: 28px; align-items: center; padding: 0 6px; border-radius: 4px; color: #475467; font-size: 12px; font-weight: 600; cursor: pointer; list-style: none; }
.row-more-actions summary::-webkit-details-marker { display: none; }
.row-more-actions summary::after { margin-left: 4px; color: #98a2b3; content: "⌄"; font-size: 11px; }
.row-more-actions summary:hover, .row-more-actions summary:focus-visible { color: var(--primary); background: #eff6ff; outline: none; }
.row-more-menu { position: absolute; z-index: 40; top: calc(100% + 4px); right: 0; min-width: 104px; padding: 4px; border: 1px solid var(--line-strong); border-radius: 6px; background: #fff; box-shadow: 0 10px 22px rgba(16, 24, 40, .14); }
.row-more-menu a, .row-more-menu button { display: flex; width: 100%; min-height: 30px; align-items: center; padding: 0 8px; border: 0; border-radius: 4px; color: #344054; background: transparent; font: inherit; font-size: 12px; font-weight: 600; text-align: left; cursor: pointer; }
.row-more-menu form { margin: 0; }
.row-more-menu a:hover, .row-more-menu button:hover { color: var(--primary); background: #f8fbff; }
.row-more-menu button.danger { color: var(--danger); }
.row-more-menu button.danger:hover { color: var(--danger); background: #fff4f2; }
.text-button { display: inline-flex; align-items: center; padding: 0; border: 0; color: #475467; background: none; font-weight: 600; line-height: 1.2; white-space: nowrap; cursor: pointer; }
.text-button:hover { color: var(--primary); }
.text-button.danger { color: var(--danger); }
.action-link { color: var(--primary); font-weight: 600; white-space: nowrap; }
.action-link:hover { text-decoration: underline; }

.empty { padding: 64px 24px; text-align: center; }
.empty h2 { margin: 0; font-size: 18px; }
.empty p { margin: 7px 0 18px; color: var(--muted); }
.pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.pagination-summary { color: var(--muted); font-size: 12px; }
.pagination-actions { display: flex; gap: 4px; }
.page-button { display: inline-flex; min-width: 32px; height: 32px; align-items: center; justify-content: center; padding: 0 8px; border: 1px solid #d0d5dd; border-radius: 6px; color: #475467; background: #fff; font-size: 16px; font-weight: 650; line-height: 1; }
.page-button:hover:not(.disabled) { border-color: #98a2b3; color: #175cd3; background: #f8fbff; }
.page-button.active { border-color: #bfd3ee; color: #175cd3; background: #eff6ff; font-size: 13px; }
.page-button.disabled { border-color: transparent; color: #b8c0cc; background: transparent; pointer-events: none; }
.table-page-size label { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 650; }
.table-page-size select { min-height: 34px; padding: 5px 28px 5px 10px; border: 1px solid var(--line-strong); border-radius: 7px; background-color: #fff; }
.schedule-item-filter-card { margin-bottom: 14px; padding: 14px 16px; }
.schedule-item-filter-card .section-heading { margin-bottom: 12px; padding-bottom: 10px; }
.compact-search-form { display: grid; grid-template-columns: minmax(220px, 320px) auto; align-items: end; }
.schedule-owner-filter-form { gap: 10px; }
.schedule-owner-filter-field { gap: 5px; }
.schedule-owner-dropdown summary {
  min-height: 36px;
  padding: 7px 11px;
  border-radius: 7px;
}
.schedule-owner-dropdown .multi-dropdown-menu {
  max-height: 240px;
  overflow: auto;
}
.schedule-owner-filter-form .search-actions { gap: 6px; }
.schedule-owner-filter-form .button {
  min-width: 60px;
  min-height: 36px;
  padding: 0 13px;
  border-radius: 7px;
  font-size: 13px;
}

.form-card { max-width: 860px; padding: 22px; }
.weekly-report-form-card { max-width: none; }
.weekly-report-form { display: grid; gap: 18px; }
.weekly-form-page-heading { margin-bottom: 20px; }
.weekly-form-page-heading h1 { font-size: 26px; }
.weekly-report-basic-card { max-width: none; padding: 20px 22px; }
.weekly-report-basic-card .form-heading { margin-bottom: 16px; padding-bottom: 13px; }
.weekly-basic-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 16px; }
.weekly-basic-grid input[readonly] { color: #7b8799; background: #f8fafc; }
.weekly-form-section { position: relative; max-width: none; padding: 18px 20px; }
.weekly-form-section .dynamic-table-heading { margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid #e7ebf0; }
.weekly-form-section .dynamic-table-heading label { display: inline-flex; align-items: center; gap: 9px; color: #101828; font-size: 16px; font-weight: 700; }
.weekly-form-section .dynamic-table-heading label::before { display: block; width: 4px; height: 18px; border-radius: 4px; background: var(--primary); content: ""; }
.weekly-plan-section .dynamic-table-heading label::before { background: #6941c6; }
.weekly-risk-section .dynamic-table-heading label::before { background: #b54708; }
.weekly-support-section .dynamic-table-heading label::before { background: var(--success); }
.weekly-form-section .dynamic-table-wrap { border-color: #dce3ec; border-radius: 7px; }
.weekly-form-section .structured-progress-table th { height: 38px; padding: 8px; color: #4a5870; background: #f8fafc; }
.weekly-form-section .structured-progress-table td { height: 53px; padding: 7px 6px; }
.weekly-form-section .structured-progress-table input,
.weekly-form-section .structured-progress-table select { min-height: 34px; padding: 6px 8px; border-radius: 5px; }
.weekly-form-section .small-icon-button { width: 28px; height: 28px; border-radius: 6px; }
.weekly-form-section .structured-progress-table td:last-child { text-align: center; }
.weekly-form-actions { position: sticky; bottom: 0; z-index: 5; margin: 0; padding: 15px 20px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, .96); box-shadow: 0 -6px 20px rgba(16, 24, 40, .06); }
body:has(.weekly-report-form) { background: #f4f6f8; }
body:has(.weekly-report-form) .app-header { border-bottom-color: #24324a; background: #101b2e; }
body:has(.weekly-report-form) .brand { color: #fff; }
body:has(.weekly-report-form) .brand-mark { background: #2f6feb; }
body:has(.weekly-report-form) .nav-link { color: #aab8cc; }
body:has(.weekly-report-form) .nav-link.active { border-bottom-color: #fff; color: #fff; }
body:has(.weekly-report-form) .user-menu,
body:has(.weekly-report-form) .user-menu .text-button { color: #cbd5e1; }
.form-heading { padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 19px; }
.wide { grid-column: 1 / -1; }
.field-span-2 { grid-column: 1 / -1; }
.issue-context-status { margin: -4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.issue-context-status:empty { display: none; }
.collaborator-native-select { display: none; }
.collaborator-picker { position: relative; min-height: 42px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; }
.collaborator-picker:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(47, 111, 235, .12); }
.collaborator-picker-details { position: relative; }
.collaborator-picker-trigger { display: flex; min-height: 40px; align-items: center; gap: 6px; padding: 5px 10px; cursor: pointer; }
.collaborator-picker-trigger { list-style: none; }
.collaborator-picker-trigger::-webkit-details-marker { display: none; }
.collaborator-picker-trigger:focus { outline: 0; }
.collaborator-picker-tags { display: flex; flex: 1; min-width: 0; flex-wrap: wrap; gap: 5px; }
.collaborator-picker-placeholder { flex: 1; color: #98a2b3; font-size: 14px; }
.collaborator-picker-tags:not(:empty) + .collaborator-picker-placeholder { display: none; }
.collaborator-picker-arrow { flex: 0 0 auto; color: #667085; font-size: 16px; transition: transform .16s ease; }
.collaborator-picker-details[open] .collaborator-picker-arrow { transform: rotate(180deg); }
.collaborator-picker-tag { display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px; border-radius: 999px; color: #175cd3; background: #eff6ff; font-size: 12px; font-weight: 700; }
.collaborator-picker-tag button { width: 16px; height: 16px; padding: 0; border: 0; color: #175cd3; background: transparent; font-size: 15px; line-height: 1; cursor: pointer; }
.collaborator-picker-panel { position: absolute; z-index: 20; top: calc(100% + 6px); right: 0; left: 0; display: grid; gap: 7px; padding: 8px; border: 1px solid #b8cdf7; border-radius: 8px; background: #fff; box-shadow: 0 12px 24px rgba(16, 24, 40, .16); }
.collaborator-picker-search { min-height: 30px; padding: 4px 6px; border: 0; border-bottom: 1px solid #eef2f6; border-radius: 0; box-shadow: none; font-size: 13px; }
.collaborator-picker-search:focus { outline: 0; box-shadow: none; }
.collaborator-picker-options { display: grid; max-height: 150px; overflow-y: auto; }
.collaborator-picker-options label { display: flex; align-items: center; gap: 8px; padding: 6px 2px; color: #344054; font-size: 13px; cursor: pointer; }
.collaborator-picker-options input { width: 15px; min-height: auto; height: 15px; margin: 0; }
.collaborator-picker-options label[hidden] { display: none; }
.collaborator-summary { color: #475467; font-size: 13px; font-weight: 650; white-space: nowrap; }
.collaborator-summary-value { display: inline-flex; max-width: 100%; align-items: center; gap: 4px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; cursor: help; outline: none; }
.collaborator-summary-value:focus-visible { border-radius: 4px; box-shadow: 0 0 0 2px rgba(47, 111, 235, .24); }
.collaborator-summary-name { overflow: hidden; text-overflow: ellipsis; }
.collaborator-summary-count { display: inline-flex; flex: 0 0 auto; padding: 1px 5px; border-radius: 999px; color: #175cd3; background: #eff6ff; font-size: 11px; font-weight: 780; }
.wbs-drag-handle {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  color: #667085;
  background: transparent;
  cursor: grab;
}
.wbs-drag-handle:hover,
.wbs-drag-handle:focus-visible {
  color: #175cd3;
  background: #eff6ff;
  box-shadow: 0 0 0 2px rgba(47, 111, 235, .28);
}
.wbs-drag-handle:active { cursor: grabbing; }
.wbs-schedule-table tr.is-dragging { opacity: .55; }
.wbs-schedule-table tr.is-drop-before > td { border-top: 2px solid #2f6feb; }
.wbs-schedule-table tr.is-drop-after > td { border-bottom: 2px solid #2f6feb; }
.wbs-schedule-table tr.is-drop-forbidden { cursor: not-allowed; }
.brief-form-section { margin-top: 26px; }
.field-error { color: var(--danger); font-size: 12px; font-weight: 400; }
.field-help { color: #98a2b3; font-size: 12px; font-weight: 400; }
.form-actions { display: flex; justify-content: flex-end; gap: 6px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.dynamic-table-field { display: grid; gap: 8px; }
.dynamic-table-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dynamic-table-heading label { display: block; }
.small-icon-button { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--line-strong); border-radius: 7px; color: #344054; background: #fff; font-size: 18px; font-weight: 700; line-height: 1; cursor: pointer; }
.small-icon-button:hover { border-color: var(--primary); color: var(--primary); background: #eff8ff; }
.small-icon-button.danger:hover { border-color: #fecdca; color: var(--danger); background: #fef3f2; }
.structured-progress-value { display: none; }
.dynamic-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.structured-progress-table { min-width: 980px; }
.structured-progress-table th { color: #101828; background: #fff; font-size: 14px; font-weight: 700; }
.structured-progress-table th,
.structured-progress-table td { padding: 10px 12px; vertical-align: middle; white-space: normal; }
.structured-progress-table td:first-child { min-width: 360px; }
.structured-progress-table td:nth-child(2) { min-width: 88px; width: 88px; }
.structured-progress-table td:nth-child(3) { min-width: 110px; }
.structured-progress-table td:nth-child(4) { min-width: 220px; }
.weekly-progress-form-table { table-layout: fixed; min-width: 1280px; }
.weekly-progress-form-table td:first-child { width: 650px; min-width: 650px; max-width: 650px; }
.weekly-progress-form-table td:nth-child(2) { width: 90px; min-width: 90px; max-width: 90px; }
.weekly-progress-form-table td:nth-child(3) { width: 100px; min-width: 100px; max-width: 100px; }
.weekly-progress-form-table td:nth-child(4) { width: 200px; min-width: 200px; max-width: 200px; }
.weekly-progress-form-table td:last-child { width: 66px; min-width: 66px; max-width: 66px; text-align: center; }
.structured-progress-table input,
.structured-progress-table select,
.structured-progress-table textarea { min-height: 36px; padding: 7px 9px; border-radius: 7px; }
.structured-progress-table textarea { resize: vertical; }
.weekly-progress-detail-table { table-layout: fixed; min-width: 1020px; }
.weekly-progress-detail-table th,
.weekly-progress-detail-table td { white-space: nowrap; }
.weekly-progress-detail-table th,
.weekly-progress-detail-table td,
.weekly-next-plan-detail-table th,
.weekly-next-plan-detail-table td,
.weekly-risk-detail-table th,
.weekly-risk-detail-table td,
.weekly-support-detail-table th,
.weekly-support-detail-table td { overflow: hidden; text-overflow: ellipsis; }
.weekly-progress-detail-table th:first-child,
.weekly-progress-detail-table td:first-child { width: 650px; min-width: 650px; max-width: 650px; }
.weekly-progress-detail-table th:nth-child(3),
.weekly-progress-detail-table td:nth-child(3) { width: 160px; min-width: 160px; max-width: 160px; }
.weekly-progress-detail-table td:first-child,
.weekly-next-plan-detail-table td:nth-child(2),
.weekly-risk-detail-table td:nth-child(2),
.weekly-support-detail-table td:first-child { font-weight: 550; }
.weekly-progress-detail-mobile { display: none; }
.weekly-next-plan-form-table { table-layout: fixed; min-width: 1336px; }
.weekly-next-plan-form-table td:first-child { width: 80px; min-width: 80px; max-width: 80px; }
.weekly-next-plan-form-table td:nth-child(2) { width: 600px; min-width: 600px; max-width: 600px; }
.weekly-next-plan-form-table td:nth-child(3) { width: 120px; min-width: 120px; max-width: 120px; }
.weekly-next-plan-form-table td:nth-child(4) { width: 320px; min-width: 320px; max-width: 320px; }
.weekly-next-plan-form-table td:nth-child(5) { width: 150px; min-width: 150px; max-width: 150px; }
.weekly-next-plan-form-table td:last-child { width: 66px; min-width: 66px; max-width: 66px; text-align: center; }
.weekly-next-plan-form-table td:first-child select { padding-left: 4px; padding-right: 4px; }
.weekly-next-plan-detail-table { table-layout: fixed; min-width: 1080px; }
.weekly-next-plan-detail-table th,
.weekly-next-plan-detail-table td { white-space: nowrap; }
.weekly-next-plan-detail-table td:first-child { width: 80px; min-width: 80px; max-width: 80px; }
.weekly-next-plan-detail-table td:nth-child(2) { width: 500px; min-width: 500px; max-width: 500px; }
.weekly-next-plan-detail-table td:nth-child(3) { width: 130px; min-width: 130px; max-width: 130px; }
.weekly-next-plan-detail-table td:nth-child(4) { width: 260px; min-width: 260px; max-width: 260px; }
.weekly-next-plan-detail-table td:nth-child(5) { width: 110px; min-width: 110px; max-width: 110px; text-align: right; }
.weekly-next-plan-detail-table td:first-child { padding: 7px 12px; }
.weekly-next-plan-detail-table td.weekly-plan-priority-high,
.weekly-next-plan-detail-table td.weekly-plan-priority-secondary,
.weekly-next-plan-detail-table td.weekly-plan-priority-normal { font-weight: 700; }
.weekly-next-plan-detail-table td.weekly-plan-priority-high { color: #b42318; background: #fef3f2; }
.weekly-next-plan-detail-table td.weekly-plan-priority-secondary { color: #b54708; background: #fffaeb; }
.weekly-next-plan-detail-table td.weekly-plan-priority-normal { color: #475467; }
.weekly-plan-date,
.weekly-support-date { color: #475467; font-variant-numeric: tabular-nums; }
.weekly-progress-result { color: #344054; }
.weekly-progress-result strong { margin-left: 8px; font-size: 13px; font-variant-numeric: tabular-nums; vertical-align: middle; }
.weekly-progress-meter { display: inline-block; width: 52px; height: 5px; overflow: hidden; border-radius: 999px; vertical-align: middle; background: #e7edf5; }
.weekly-progress-meter i { display: block; height: 100%; border-radius: inherit; background: #4f7fd6; }
.weekly-progress-meter.is-complete i { background: #2d9d62; }
.weekly-risk-level,
.weekly-risk-status { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.weekly-risk-level-高 { color: #b42318; background: #fef3f2; }
.weekly-risk-level-中 { color: #b54708; background: #fffaeb; }
.weekly-risk-level-低 { color: #475467; background: #f2f4f7; }
.weekly-risk-level-none { color: #98a2b3; background: #f8fafc; }
.weekly-risk-status.is-tracked { color: #175cd3; background: #eff6ff; }
.weekly-risk-status.is-pending { color: #667085; background: #f2f4f7; }
.weekly-detail-empty { display: flex; align-items: center; min-height: 54px; padding: 0 14px; border: 1px dashed #d8e0ea; border-radius: 8px; color: #667085; font-size: 13px; background: #fff; }
.resource-assignment-table { table-layout: fixed; min-width: 1016px; }
.resource-assignment-table th:first-child,
.resource-assignment-table td:first-child { width: 280px; min-width: 280px; max-width: 280px; }
.resource-assignment-table th:nth-child(2),
.resource-assignment-table td:nth-child(2) { width: 240px; min-width: 240px; max-width: 240px; }
.resource-assignment-table th:nth-child(3),
.resource-assignment-table td:nth-child(3),
.resource-assignment-table th:nth-child(4),
.resource-assignment-table td:nth-child(4) { width: 160px; min-width: 160px; max-width: 160px; }
.resource-assignment-table th:nth-child(5),
.resource-assignment-table td:nth-child(5) { width: 110px; min-width: 110px; max-width: 110px; }
.resource-assignment-table th:last-child,
.resource-assignment-table td:last-child { width: 66px; min-width: 66px; max-width: 66px; text-align: center; }
.resource-assignment-table select,
.resource-assignment-table input { min-height: 34px; padding: 6px 8px; border-radius: 5px; }
.resource-table { table-layout: fixed; min-width: 1150px; }
.resource-table th,
.resource-table td { padding: 10px 8px; }
.resource-table th:first-child,
.resource-table td:first-child { width: 80px; min-width: 80px; max-width: 80px; }
.resource-table th:nth-child(2),
.resource-table td:nth-child(2) { width: 100px; min-width: 100px; max-width: 100px; }
.resource-table th:nth-child(3),
.resource-table td:nth-child(3) { width: 110px; min-width: 110px; max-width: 110px; }
.resource-table th:nth-child(4),
.resource-table td:nth-child(4) { width: 80px; min-width: 80px; max-width: 80px; }
.resource-table th:nth-child(5),
.resource-table td:nth-child(5) { width: 105px; min-width: 105px; max-width: 105px; }
.resource-table th:nth-child(6),
.resource-table td:nth-child(6) { width: 48px; min-width: 48px; max-width: 48px; }
.resource-table th:nth-child(7),
.resource-table td:nth-child(7) { width: 60px; min-width: 60px; max-width: 60px; }
.resource-table th:nth-child(8),
.resource-table td:nth-child(8) { width: 200px; min-width: 200px; max-width: 200px; }
.resource-table th:nth-child(9),
.resource-table td:nth-child(9) { width: 110px; min-width: 110px; max-width: 110px; }
.resource-table th:nth-child(10),
.resource-table td:nth-child(10) { width: 80px; min-width: 80px; max-width: 80px; }
.resource-table .actions-column,
.resource-table .row-actions { width: 70px; min-width: 70px; max-width: 70px; }
.resource-table .row-actions > a,
.resource-table .row-actions > form { margin-left: 6px; }
.resource-table td:nth-child(8),
.resource-table td:nth-child(9),
.resource-table td:nth-child(10) { white-space: normal; }
.resource-workload-table { min-width: 1250px; }
.resource-list-table { min-width: 800px; }
.resource-list-table th,
.resource-list-table td { height: 48px; padding: 7px 12px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; vertical-align: middle; }
.resource-list-table th:first-child,
.resource-list-table td:first-child { width: 130px; min-width: 130px; max-width: 130px; }
.resource-list-table th:nth-child(2),
.resource-list-table td:nth-child(2) { width: 180px; min-width: 180px; max-width: 180px; }
.resource-list-table th:nth-child(3),
.resource-list-table td:nth-child(3) { width: 90px; min-width: 90px; max-width: 90px; }
.resource-list-table th:nth-child(4),
.resource-list-table td:nth-child(4) { width: 500px; min-width: 500px; }
.resource-list-table th:last-child,
.resource-list-table td:last-child { position: sticky; right: 0; z-index: 2; width: 108px; min-width: 108px; max-width: 108px; background: #fff; box-shadow: -1px 0 0 #eef2f6; }
.resource-list-table thead th:last-child { z-index: 4; background: #f8fafc; }
.resource-location { color: #667085; }
.resource-assignment-summary { display: flex; min-width: 0; align-items: center; gap: 6px; overflow: hidden; color: #667085; font-size: 13px; }
.resource-assignment-summary strong,
.resource-assignment-summary span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resource-assignment-summary strong { flex: 0 1 auto; color: #344054; font-weight: 700; }
.resource-assignment-summary span { flex: 0 1 auto; }
.resource-assignment-summary em { flex: none; padding: 1px 5px; border-radius: 5px; color: #475467; background: #f2f4f7; font-size: 11px; font-style: normal; font-weight: 700; }
.resource-assignment-tooltip-content { display: none; }
.resource-assignment-popup { position: fixed; z-index: 999; box-sizing: border-box; padding: 9px 11px; border: 1px solid #cbd5e1; border-radius: 7px; color: #344054; background: #fff; box-shadow: 0 10px 24px rgba(16, 24, 40, .16); font-size: 12px; font-weight: 600; line-height: 1.6; white-space: pre-line; pointer-events: none; }
.resource-list-empty { color: #98a2b3; font-size: 13px; }
.resource-list-table .row-actions { min-width: 108px; text-align: center; }
.resource-list-table .row-actions > a,
.resource-list-table .row-actions > details { margin-left: 6px; }
.resource-list-table .row-more-menu { top: calc(100% + 4px); bottom: auto; }
.resource-list-table tr:has(.row-more-actions[open]) { position: relative; z-index: 10; }
.resource-list-table td:has(.row-more-actions[open]) { position: relative; z-index: 20; overflow: visible; }
.table-card:has(.resource-list-table .row-more-actions[open]) { position: relative; z-index: 50; overflow: visible; }
.table-wrap:has(.resource-list-table .row-more-actions[open]) { overflow: visible; }
.resource-job-level {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.resource-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
}
.resource-view-tabs {
  display: flex;
  gap: 4px;
  margin: -4px 0 16px;
  border-bottom: 1px solid var(--line);
}
.resource-view-tab {
  position: relative;
  min-height: 38px;
  padding: 8px 14px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 650;
}
.resource-view-tab:hover { color: #175cd3; background: #f8fbff; }
.resource-view-tab.is-active {
  color: #175cd3;
  font-weight: 750;
}
.resource-view-tab.is-active::after {
  position: absolute;
  right: 10px;
  bottom: -1px;
  left: 10px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: #175cd3;
  content: "";
}
.resource-view-tab:focus-visible,
.resource-dashboard-filter :focus-visible,
.resource-fullscreen-toggle:focus-visible,
.resource-calendar-tools button:focus-visible {
  outline: 3px solid rgba(47, 111, 235, .28);
  outline-offset: 2px;
}
.resource-dashboard-filter-card { padding: 16px 18px; }
.resource-dashboard-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
}
.resource-dashboard-filter label {
  display: grid;
  min-width: 180px;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}
.resource-dashboard-filter select,
.resource-dashboard-filter input {
  min-height: var(--control-height);
  padding: 5px 9px;
  border: 1px solid #bfd3ee;
  border-radius: var(--control-radius);
  color: #344054;
  background: #fff;
  font: inherit;
  font-size: 13px;
}
.resource-dashboard-filter select { min-width: 220px; }
.resource-dashboard-filter .button { min-height: var(--control-height); }
.resource-fullscreen-toggle {
  min-height: 30px;
  padding: 4px 10px;
  border: 1px solid #bfd3ee;
  border-radius: 6px;
  color: #175cd3;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.resource-fullscreen-toggle:hover {
  border-color: #2f6feb;
  background: #f0f6ff;
}
.resource-fullscreen-open {
  overflow: hidden;
}
.resource-card-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 210;
  display: flex;
  flex-direction: column;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: #f8fafc;
}
.resource-card-fullscreen .table-header {
  flex: 0 0 auto;
  padding: 15px 24px;
  border-bottom-color: #dbe3ef;
  background: #fff;
}
.resource-card-fullscreen .table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  margin: 14px 24px 24px;
  overflow: auto;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  background: #fff;
}
.resource-card-fullscreen .resource-calendar-legend {
  flex: 0 0 auto;
  padding: 12px 24px 0;
}
.resource-card-fullscreen .resource-calendar-wrap {
  max-height: none;
}
.resource-card-fullscreen .resource-workload-table thead th,
.resource-card-fullscreen .resource-calendar-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  box-shadow: inset 0 -1px 0 #dbe3ef;
}
.resource-card-fullscreen .resource-workload-table {
  min-width: 1380px;
}
.resource-card-fullscreen .resource-calendar-table {
  min-width: 1800px;
}
.resource-calendar-card {
  border-color: var(--line);
  border-radius: 10px;
}
.resource-calendar-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
}
.resource-calendar-filter label {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}
.resource-calendar-filter .resource-calendar-date {
  min-width: 150px;
  min-height: var(--control-height);
  padding: 4px 8px;
  border: 1px solid #bfd3ee;
  border-radius: 6px;
  color: #344054;
  background: #fff;
  font-size: 12px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.resource-calendar-filter .resource-calendar-date:hover,
.resource-calendar-filter .resource-calendar-date:focus {
  border-color: #2f6feb;
  outline: none;
  box-shadow: 0 0 0 3px rgba(47, 111, 235, .10);
}
.resource-calendar-filter .button {
  min-height: var(--control-height);
  padding: 4px 10px;
  border: 1px solid #bfd3ee;
  border-radius: 6px;
  color: #175cd3;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  box-shadow: none;
}
.resource-calendar-filter .button:hover {
  border-color: #2f6feb;
  color: #175cd3;
  background: #f0f6ff;
}
.resource-calendar-filter .resource-calendar-apply {
  border-color: #84adf7;
  background: #eff6ff;
}
.resource-calendar-filter .resource-calendar-current {
  color: #475467;
}
.resource-calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 0 20px 14px;
  color: #667085;
  font-size: 12px;
  font-weight: 650;
}
.resource-calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.resource-calendar-tools { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.resource-calendar-tools button { min-height: var(--control-height); padding: 4px 10px; border: 1px solid #bfd3ee; border-radius: var(--control-radius); color: #175cd3; background: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.resource-calendar-tools button:hover { border-color: #84adf7; background: #f8fbff; }
.resource-calendar-tools button[aria-pressed="true"] { border-color: #84adf7; color: #175cd3; background: #eff6ff; }
.calendar-weekend-sample {
  width: 16px;
  height: 12px;
  border: 1px solid #e4e7ec;
  border-radius: 3px;
  background: #f8fafc;
}
.resource-calendar-wrap {
  max-height: 520px;
}
.resource-calendar-table {
  min-width: 1800px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}
.resource-calendar-table th,
.resource-calendar-table td {
  width: 52px;
  min-width: 52px;
  max-width: 52px;
  height: 40px;
  padding: 3px 4px;
  text-align: center;
  vertical-align: middle;
}
.resource-calendar-table th:first-child,
.resource-calendar-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 4;
  width: 180px;
  min-width: 180px;
  max-width: 180px;
  height: 34px;
  text-align: left;
  background: #fff;
  box-shadow: 1px 0 0 #eef2f6;
}
.resource-calendar-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  color: #475467;
  background: #f8fafc;
  font-size: 12px;
  font-weight: 760;
}
.resource-calendar-table .resource-calendar-summary-row th { height: 32px; padding-top: 3px; padding-bottom: 3px; color: #667085; background: #fbfcfe; font-size: 11px; font-weight: 650; }
.resource-calendar-table .resource-calendar-summary-row th span { color: #175cd3; font-size: 12px; font-weight: 760; }
.resource-calendar-table .resource-calendar-summary-row th small { margin-top: 0; font-size: 10px; }
.resource-calendar-table thead th:first-child {
  z-index: 6;
}
.resource-calendar-table th span,
.resource-calendar-table th small {
  display: block;
  line-height: 1.25;
  white-space: nowrap;
}
.resource-calendar-table th small {
  margin-top: 2px;
  color: #98a2b3;
  font-size: 11px;
}
.resource-calendar-table .is-nonworkday {
  background: #fafbfc;
}
.resource-calendar-table .is-today {
  background: #f8fbff;
  box-shadow: inset 0 0 0 2px #2f6feb;
}
.resource-calendar-person {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}
.resource-calendar-person .resource-avatar {
  width: 22px;
  height: 22px;
  border-radius: 7px;
  font-size: 11px;
}
.resource-calendar-person span:last-child {
  min-width: 0;
}
.resource-calendar-person strong,
.resource-calendar-person small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.resource-calendar-person strong {
  color: #1d2939;
  font-size: 12px;
}
.resource-calendar-person small {
  color: #98a2b3;
  font-size: 11px;
}
.calendar-cell a {
  display: inline-flex;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #175cd3;
  background: #eff8ff;
  font-size: 12px;
  font-weight: 800;
}
.calendar-cell.calendar-level-warn a {
  color: #b54708;
  background: #fffaeb;
}
.calendar-cell.calendar-level-risk a {
  color: #b42318;
  background: #fef3f2;
}
.calendar-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #2f6feb;
}
.calendar-dot.warn {
  background: #f79009;
}
.calendar-dot.risk {
  background: #d92d20;
}
.calendar-collaboration-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 3px;
  border: 2px solid #7f56d9;
  border-radius: 999px;
  background: #fff;
  vertical-align: middle;
}
.calendar-empty {
  display: none;
}
.resource-workload-card {
  border-color: var(--line);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .03);
}
.resource-workload-card .table-header {
  padding: 12px 18px;
  background: #fff;
}
.resource-workload-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.resource-workload-title-row h2 { margin: 0; }
.resource-risk-summary { display: flex; flex-wrap: wrap; gap: 12px; color: #667085; font-size: 12px; font-weight: 650; }
.resource-risk-summary span { display: inline-flex; align-items: center; gap: 5px; }
.resource-risk-summary .is-risk { color: #b42318; }
.resource-risk-summary .is-warn { color: #b54708; }
.resource-workload-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: #667085;
  font-size: 12px;
  font-weight: 600;
}
.resource-workload-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
}
.legend-dot.risk { background: #dc2626; }
.legend-dot.warn { background: #d97706; }
.resource-workload-table {
  min-width: 1120px;
  border-collapse: separate;
  border-spacing: 0;
}
.resource-workload-table th,
.resource-workload-table td {
  padding: 8px 14px;
}
body:has(.module-page-heading) .resource-workload-table th {
  height: 44px;
  padding: 12px 16px;
  color: #40516a;
  background: #f6f8fb;
  font-weight: 750;
}
body:has(.module-page-heading) .resource-workload-table td {
  padding: 8px 14px;
  color: #35445a;
  vertical-align: middle;
}
.resource-workload-table tbody tr {
  transition: background .15s ease, box-shadow .15s ease;
}
.resource-workload-table tbody td:first-child {
  position: relative;
}
.resource-workload-table tbody td:first-child::before {
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 0;
  width: 3px;
  border-radius: 999px;
  background: transparent;
  content: "";
}
.resource-workload-table tbody tr:hover {
  background: #f8fbff;
  box-shadow: inset 0 0 0 999px rgba(37, 99, 235, .015);
}
.resource-workload-table tbody tr:hover td:first-child::before {
  background: var(--primary);
}
.resource-workload-table th:first-child,
.resource-workload-table td:first-child { width: 205px; min-width: 205px; max-width: 205px; }
.resource-workload-table th:nth-child(2),
.resource-workload-table td:nth-child(2) { width: 112px; min-width: 112px; max-width: 112px; }
.resource-workload-table th:nth-child(3),
.resource-workload-table td:nth-child(3) { width: 320px; min-width: 320px; max-width: 320px; }
.resource-workload-table th:nth-child(4),
.resource-workload-table td:nth-child(4),
.resource-workload-table th:nth-child(5),
.resource-workload-table td:nth-child(5),
.resource-workload-table th:nth-child(6),
.resource-workload-table td:nth-child(6) {
  width: 105px;
  min-width: 105px;
  max-width: 105px;
  white-space: nowrap;
}
.resource-workload-table th:nth-child(7),
.resource-workload-table td:nth-child(7) { width: 240px; min-width: 240px; }
.resource-person {
  display: flex;
  align-items: center;
  gap: 10px;
}
.resource-avatar {
  display: inline-flex;
  width: 36px;
  height: 36px;
  flex: none;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #175cd3;
  background: #eff6ff;
  font-size: 13px;
  font-weight: 760;
}
.resource-person strong {
  display: block;
  color: #1f2937;
  font-weight: 760;
}
.resource-person small {
  display: block;
  margin-top: 2px;
  color: #667085;
  font-size: 12px;
  font-weight: 600;
}
.workload-status {
  min-width: 64px;
  justify-content: center;
  padding: 5px 10px;
  border: 1px solid #e4e7ec;
  font-weight: 750;
}
.workload-status-高负荷 {
  border-color: #fecdd3;
  color: #dc2626;
  background: #fff1f2;
}
.workload-status-关注 {
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
  border-color: transparent;
  color: #b54708;
  background: transparent;
}
.workload-status-正常 {
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
  border-color: transparent;
  color: #667085;
  background: transparent;
  font-weight: 650;
}
.workload-status-关注::before { width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: #d97706; content: ""; }
.resource-project-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 12px;
}
.resource-project-list span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #475467;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.resource-project-list span::before {
  width: 6px;
  height: 6px;
  flex: none;
  border-radius: 50%;
  background: #98a2b3;
  content: "";
}
.resource-project-list small { color: #667085; font-size: 12px; font-weight: 700; }
.resource-empty { color: #98a2b3; font-size: 13px; }
.resource-risk-cell { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 180px; }
.resource-risk-cell span:not(.resource-empty) { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 7px; border-radius: 6px; font-size: 12px; font-weight: 720; white-space: nowrap; }
.resource-risk-cell .risk-high { color: #b42318; background: #fff1f2; }
.resource-risk-cell .risk-overdue { color: #b42318; background: #fef2f2; }
.resource-risk-cell .risk-issue { color: #b54708; background: #fff7ed; }
.resource-workload-table .num-col {
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.number-pill {
  display: inline-flex;
  min-width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border-radius: 6px;
  color: #334155;
  background: transparent;
  font-size: 14px;
  font-weight: 760;
}
.number-pill.zero {
  color: #94a3b8;
  background: transparent;
  font-weight: 650;
}
.number-pill.warn {
  color: #b54708;
  background: #fffaeb;
}
.number-pill.risk {
  color: #dc2626;
  background: #fff1f2;
}
.priority-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.priority-number i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #dc2626;
  box-shadow: 0 0 0 4px rgba(220, 38, 38, .08);
}
.weekly-risk-form-table { table-layout: fixed; min-width: 1246px; }
.weekly-risk-form-table td:first-child { width: 80px; min-width: 80px; max-width: 80px; }
.weekly-risk-form-table td:nth-child(2) { width: 380px; min-width: 380px; max-width: 380px; }
.weekly-risk-form-table td:nth-child(3) { width: 300px; min-width: 300px; max-width: 300px; }
.weekly-risk-form-table td:nth-child(4) { width: 420px; min-width: 420px; max-width: 420px; }
.weekly-risk-form-table td:last-child { width: 66px; min-width: 66px; max-width: 66px; text-align: center; }
.weekly-risk-form-table td:first-child select { padding-left: 4px; padding-right: 4px; }
.weekly-risk-detail-table { table-layout: fixed; min-width: 1150px; }
.weekly-risk-detail-table th,
.weekly-risk-detail-table td { white-space: nowrap; }
.weekly-risk-detail-table td:first-child { width: 80px; min-width: 80px; max-width: 80px; }
.weekly-risk-detail-table td:nth-child(2) { width: 340px; min-width: 340px; max-width: 340px; }
.weekly-risk-detail-table td:nth-child(3) { width: 260px; min-width: 260px; max-width: 260px; }
.weekly-risk-detail-table td:nth-child(4) { width: 360px; min-width: 360px; max-width: 360px; }
.weekly-risk-detail-table td:nth-child(5) { width: 110px; min-width: 110px; max-width: 110px; }
.weekly-support-form-table { table-layout: fixed; min-width: 1056px; }
.weekly-support-form-table td:first-child { width: 460px; min-width: 460px; max-width: 460px; }
.weekly-support-form-table td:nth-child(2) { width: 380px; min-width: 380px; max-width: 380px; }
.weekly-support-form-table td:nth-child(3) { width: 150px; min-width: 150px; max-width: 150px; }
.weekly-support-form-table td:last-child { width: 66px; min-width: 66px; max-width: 66px; text-align: center; }
.weekly-support-detail-table { table-layout: fixed; min-width: 990px; }
.weekly-support-detail-table th,
.weekly-support-detail-table td { white-space: nowrap; }
.weekly-support-detail-table td:first-child { width: 460px; min-width: 460px; max-width: 460px; }
.weekly-support-detail-table td:nth-child(2) { width: 380px; min-width: 380px; max-width: 380px; }
.weekly-support-detail-table td:nth-child(3) { width: 150px; min-width: 150px; max-width: 150px; }
.weekly-report-table { table-layout: auto; min-width: 1180px; }
.weekly-report-project-col { width: 16em; }
.weekly-report-week-col { width: 6em; }
.weekly-report-table th:first-child,
.weekly-report-table td:first-child { width: 16em; min-width: 16em; max-width: 16em; white-space: normal; }
.weekly-report-table th:nth-child(2),
.weekly-report-table td:nth-child(2) { width: 6em; min-width: 6em; max-width: 6em; white-space: normal; }
.attachment-panel { margin-top: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fafbfc; }
.attachment-panel h3 { margin: 0 0 10px; color: #344054; font-size: 13px; }
.attachment-list { display: flex; flex-wrap: wrap; gap: 8px; }
.attachment-chip { display: inline-flex; max-width: 240px; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 999px; color: #175cd3; background: #eff8ff; font-size: 12px; font-weight: 600; }
.attachment-chip a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attachment-chip form { display: inline-flex; margin: 0; }
.issue-attachment-upload-status { min-height: 18px; margin: 0; color: #667085; font-size: 12px; }
.issue-attachment-upload-status.is-uploading { color: #175cd3; }
.issue-attachment-upload-status.is-success { color: #067647; }
.issue-attachment-upload-status.is-error { color: #b42318; }
.attachment-delete { display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; color: #175cd3; background: transparent; cursor: pointer; font-size: 14px; line-height: 1; }
.attachment-delete:hover { color: var(--danger); background: #dbeafe; }
.login-panel { max-width: 420px; margin: 56px auto 0; padding: 26px; }
.login-heading { display: flex; flex-direction: column; gap: 13px; align-items: center; margin-bottom: 24px; text-align: center; }
.login-heading h1 { margin: 0; font-size: 22px; line-height: 1.25; }
.login-heading p { margin: 5px 0 0; color: var(--muted); }
.login-panel form { display: grid; gap: 16px; }
.login-submit { width: 100%; margin-top: 4px; }
.action-create-card { max-width: none; margin-bottom: 16px; }
.action-create-card h2 { margin: 0 0 16px; font-size: 18px; }
.action-form-grid { display: grid; grid-template-columns: minmax(240px, 2fr) 1fr 1fr 1fr auto; gap: 12px; align-items: end; }
.action-submit { display: flex; align-items: end; }
.work-calendar-page { display: grid; gap: 18px; }
.work-calendar-page .page-heading { margin-bottom: 0; }
.calendar-page-heading { align-items: center; }
.calendar-help-button { min-height: 40px; }
.calendar-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.calendar-project-context { display: flex; min-height: 58px; align-items: center; gap: 12px; padding: 10px 16px; border: 1px solid #c7d7fe; border-radius: 10px; background: #eef4ff; }
.calendar-context-dot { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: var(--primary); }
.calendar-context-copy { display: flex; min-width: 0; flex: 1; align-items: baseline; gap: 8px; }
.calendar-context-label { color: #175cd3; font-size: 12px; font-weight: 700; }
.calendar-context-copy strong { overflow: hidden; color: #175cd3; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-project-form { display: grid; min-width: min(360px, 42vw); gap: 4px; }
.calendar-project-form select { min-height: 40px; border-color: #84adf7; color: #1849a9; background: #fff; font-weight: 650; }
.calendar-rule-card { padding: 18px; }
.calendar-section-heading { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 14px; }
.calendar-section-mark { width: 4px; height: 24px; flex: 0 0 auto; border-radius: 4px; background: var(--primary); }
.calendar-section-heading h2 { margin: 0; font-size: 17px; }
.calendar-section-heading p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.calendar-form-grid { display: grid; grid-template-columns: minmax(210px, 1.1fr) 170px 140px minmax(250px, 1.6fr) auto; gap: 12px; align-items: end; }
.calendar-form-grid > label { min-width: 0; }
.calendar-project-field input[readonly] { color: #344054; background: #f8fafc; cursor: default; }
.calendar-submit { display: flex; align-items: flex-end; }
.calendar-submit .button { min-height: 40px; white-space: nowrap; }
.work-calendar-page .button-primary { border-color: var(--primary); color: #fff; background: var(--primary); }
.work-calendar-page .button-primary:hover { border-color: var(--primary-hover); color: #fff; background: var(--primary-hover); }
.calendar-overwrite-warning { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 12px; padding: 9px 11px; border: 1px solid #f5d6a3; border-radius: 7px; color: #7a4f12; background: #fffaeb; font-size: 12px; }
.calendar-workspace { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(360px, .95fr); gap: 16px; align-items: stretch; }
.calendar-month-card,
.calendar-exceptions-card { min-width: 0; padding: 18px; }
.calendar-month-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.calendar-month-header h2,
.calendar-list-header h2 { margin: 0; font-size: 18px; }
.calendar-month-actions { display: inline-flex; gap: 6px; }
.calendar-month-actions button { display: inline-flex; min-width: 40px; min-height: 40px; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; color: #475467; background: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.calendar-month-actions button:hover { border-color: #84adf7; color: #175cd3; background: #f8fbff; }
.calendar-month-actions svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.calendar-weekdays,
.calendar-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays { margin-bottom: 4px; color: #667085; font-size: 11px; font-weight: 700; text-align: center; }
.calendar-weekdays span { padding: 6px 0; }
.calendar-month-grid { gap: 4px; }
.calendar-day { display: flex; min-width: 0; min-height: 62px; flex-direction: column; align-items: flex-start; gap: 6px; padding: 8px; border: 1px solid transparent; border-radius: 8px; color: #1d2939; background: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.calendar-day:hover { border-color: #84adf7; background: #f8fbff; }
.calendar-day.is-outside { color: #98a2b3; }
.calendar-day.is-today > span { display: inline-flex; width: 24px; height: 24px; align-items: center; justify-content: center; border-radius: 50%; color: #fff; background: var(--primary); }
.calendar-day.is-selected { border-color: #84adf7; background: #eef4ff; box-shadow: 0 0 0 1px #84adf7; }
.calendar-day small { display: inline-flex; min-height: 20px; align-items: center; padding: 2px 6px; border-radius: 5px; font-size: 10px; font-weight: 750; }
.calendar-day small.is-workday { color: #fff; background: #2563eb; }
.calendar-day small.is-restday { color: #475467; background: #eaecf0; }
.calendar-month-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 14px; color: #667085; font-size: 11px; }
.calendar-month-legend span { display: inline-flex; align-items: center; gap: 6px; }
.calendar-legend-dot { width: 8px; height: 8px; border-radius: 50%; }
.calendar-legend-dot.is-workday { background: #2563eb; }
.calendar-legend-dot.is-restday { border: 1px solid #98a2b3; background: #eaecf0; }
.calendar-list-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 8px; }
.calendar-list-header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.calendar-list-tools { display: flex; flex: 0 0 auto; gap: 6px; align-items: end; }
.calendar-list-tools label { min-width: 92px; font-size: 11px; }
.calendar-list-tools select { min-height: 36px; padding-top: 4px; padding-bottom: 4px; font-size: 11px; }
.calendar-exception-list { display: grid; }
.calendar-exception-row { position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr) 40px; gap: 10px; align-items: center; min-height: 76px; border-bottom: 1px solid var(--line); }
.calendar-exception-row:last-child { border-bottom: 0; }
.calendar-exception-row time { display: flex; width: 60px; height: 46px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 5px 8px; border-radius: 7px; color: #1d2939; background: #f7f9fc; font-variant-numeric: tabular-nums; }
.calendar-exception-row time small { color: #667085; font-size: 9px; font-weight: 700; }
.calendar-exception-row time strong { font-size: 13px; }
.calendar-exception-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.calendar-exception-copy strong { font-size: 13px; }
.calendar-exception-copy strong.is-workday { color: #175cd3; }
.calendar-exception-copy strong.is-restday { color: #475467; }
.calendar-exception-copy span { overflow: hidden; color: #667085; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-more-actions { position: relative; }
.calendar-more-actions summary { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 8px; color: #667085; background: #f7f9fc; cursor: pointer; list-style: none; }
.calendar-more-actions summary::-webkit-details-marker { display: none; }
.calendar-more-actions summary:hover { color: #175cd3; background: #eef4ff; }
.calendar-more-actions summary::after { content: none; }
.calendar-more-actions summary svg { width: 20px; height: 20px; fill: currentColor; }
.calendar-more-actions .row-more-menu { top: 42px; right: 0; min-width: 130px; }
.calendar-more-actions .row-more-menu button { width: 100%; min-height: 40px; border: 0; color: #b42318; background: transparent; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.calendar-more-actions .row-more-menu button:hover { background: #fff1f0; }
.calendar-list-empty { padding: 40px 16px; }
.calendar-delete-dialog { width: min(460px, calc(100vw - 32px)); padding: 20px; border: 1px solid #d8e1ee; border-radius: 12px; box-shadow: 0 22px 52px rgba(16, 24, 40, .2); }
.calendar-delete-dialog::backdrop { background: rgba(15, 23, 42, .36); }
.calendar-delete-dialog h3 { margin: 0 0 8px; color: #1d2939; font-size: 18px; }
.calendar-delete-dialog p { margin: 0; color: #667085; line-height: 1.65; white-space: normal; }
.calendar-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.calendar-delete-confirm { border-color: #d92d20; color: #fff; background: #d92d20; }
.calendar-delete-confirm:hover { border-color: #b42318; color: #fff; background: #b42318; }
.calendar-project-empty { margin-top: 0; }
@media (max-width: 960px) {
  body:has(.work-calendar-page) .header-inner { overflow-x: auto; scrollbar-width: thin; }
  body:has(.work-calendar-page) .brand { flex: 0 0 auto; white-space: nowrap; }
  body:has(.work-calendar-page) .top-nav { flex: 0 0 auto; gap: 18px; margin-left: 24px; }
  body:has(.work-calendar-page) .nav-link { flex: 0 0 auto; white-space: nowrap; }
  .calendar-project-context { flex-wrap: wrap; }
  .calendar-context-copy { flex-basis: calc(100% - 28px); }
  .calendar-project-form { width: 100%; min-width: 0; margin-left: 22px; }
  .calendar-form-grid { grid-template-columns: 1fr 1fr; }
  .calendar-notes { grid-column: 1 / -1; }
  .calendar-submit { align-items: end; }
  .calendar-workspace { grid-template-columns: 1fr; }
  .calendar-list-header { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 640px) {
  .calendar-form-grid { grid-template-columns: 1fr; }
  .calendar-notes { grid-column: auto; }
  .calendar-project-form { margin-left: 0; }
  .calendar-context-copy { align-items: flex-start; flex-direction: column; gap: 2px; }
  .calendar-page-heading { align-items: flex-start; }
  .calendar-month-card,
  .calendar-exceptions-card,
  .calendar-rule-card { padding: 14px; }
  .calendar-day { min-height: 52px; padding: 6px; }
  .calendar-month-legend span:last-child { width: 100%; }
  .calendar-list-tools { width: 100%; flex-direction: column; align-items: stretch; }
  .calendar-list-tools label { width: 100%; }
  .calendar-submit .button { width: 100%; }
}

/* Independent research pages */
.research-list-page { display:grid; width:min(100%, 1380px); gap:16px; margin:0 auto; }
.research-page-header { display:flex; min-height:72px; align-items:flex-start; justify-content:space-between; gap:24px; }
.research-page-header h1 { margin:0; color:#172033; font-size:28px; line-height:1.25; letter-spacing:-.02em; }
.research-page-header p { margin:7px 0 0; color:#667085; font-size:13px; }
.research-page-header .page-actions { display:flex; gap:10px; }
.research-module-tabs { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); padding:5px; border:1px solid #dfe5ee; border-radius:12px; background:#f5f7fa; }
.research-module-tab { display:flex; min-height:44px; align-items:center; justify-content:center; border-radius:9px; color:#596579; font-size:14px; font-weight:700; }
.research-module-tab:hover { color:#175cd3; background:#fff; }
.research-module-tab.is-active { color:#fff; background:#2468df; box-shadow:0 2px 7px rgba(36,104,223,.22); }
.research-search-panel { display:grid; grid-template-columns:minmax(260px,1.2fr) minmax(220px,1fr) minmax(180px,.72fr) auto; align-items:end; gap:14px; padding:18px; }
.research-search-panel label { display:grid; gap:7px; color:#475467; font-size:12px; font-weight:700; }
.research-search-panel input,.research-search-panel select { width:100%; min-height:40px; padding:7px 11px; border:1px solid #cfd7e3; border-radius:7px; background:#fff; font:inherit; }
.research-search-actions { display:flex; gap:8px; padding-bottom:1px; }
.research-search-actions .button { min-height:40px; }
.research-results { overflow:hidden; padding:0; }
.research-results > header { display:flex; min-height:58px; align-items:center; justify-content:space-between; padding:12px 18px; border-bottom:1px solid #e6eaf0; }
.research-results > header h2 { margin:0; color:#253044; font-size:16px; }
.research-results > header p { margin:3px 0 0; color:#7b8798; font-size:11px; }
.research-table-scroll { overflow-x:auto; }
.research-data-table { width:100%; min-width:1040px; border-collapse:collapse; table-layout:auto; }
.research-data-table th { padding:11px 14px; border-bottom:1px solid #dfe5ee; color:#667085; background:#f8fafc; font-size:11px; text-align:left; white-space:nowrap; }
.research-data-table td { padding:14px; border-bottom:1px solid #edf0f4; color:#344054; font-size:12px; vertical-align:middle; }
.research-data-table tbody tr:hover { background:#f8fbff; }
.research-data-table tbody tr:last-child td { border-bottom:0; }
.research-data-table td small { display:block; margin-top:4px; color:#8a95a6; font-size:10px; }
.research-primary-link { color:#1f4f9e; font-weight:750; }
.research-primary-link:hover { color:#175cd3; text-decoration:underline; }
.research-row-actions { display:flex; align-items:center; gap:12px; white-space:nowrap; }
.research-row-actions a { color:#175cd3; font-weight:650; }
.research-row-actions form,.research-page-header .page-actions form { margin:0; }
.link-button-danger { padding:0; border:0; color:#b42318; background:transparent; font:inherit; font-weight:650; cursor:pointer; }
.link-button-danger:hover { text-decoration:underline; }
.research-table-empty { padding:44px 16px !important; color:#7b8798 !important; text-align:center; }
.research-form-long-field { grid-column:1 / -1; }
.research-detail-section { overflow:hidden; padding:0; }
.research-detail-section > header { padding:15px 18px; border-bottom:1px solid #e6eaf0; background:#fbfcfe; }
.research-detail-section > header h2 { margin:0; color:#253044; font-size:15px; }
.research-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }
.research-detail-grid > div { min-height:84px; padding:17px 20px; border-right:1px solid #edf0f4; border-bottom:1px solid #edf0f4; }
.research-detail-grid > div:nth-child(3n) { border-right:0; }
.research-detail-grid dt { margin-bottom:7px; color:#738096; font-size:11px; font-weight:700; }
.research-detail-grid dd { margin:0; color:#202b3e; font-size:14px; line-height:1.6; }
.research-detail-grid .research-detail-wide { grid-column:1 / -1; border-right:0; }
.research-participant-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.research-participant-grid article { min-height:118px; padding:20px; }
.research-participant-grid article + article { border-left:1px solid #e6eaf0; }
.research-participant-grid span { color:#667085; font-size:12px; font-weight:750; }
.research-participant-grid p { margin:12px 0 0; color:#253044; font-size:14px; line-height:1.8; white-space:pre-wrap; }
.research-long-content-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:16px; }
.research-long-copy { min-height:190px; padding:20px; color:#344054; font-size:13px; line-height:1.85; white-space:pre-wrap; }
.research-form-page { width:min(100%,1180px); }
.research-form-page .research-form-grid { gap:18px 22px; }
.research-form-page .research-form-grid label { display:grid; gap:7px; }
.research-form-page .research-form-grid input,.research-form-page .research-form-grid select { min-height:42px; }
.research-form-page .research-form-grid textarea { width:100%; resize:vertical; line-height:1.65; }
.research-form-page input[readonly] { color:#667085; background:#f5f7fa; }
.research-module-tab:focus-visible,.research-data-table a:focus-visible,.research-search-panel :focus-visible { outline:3px solid rgba(37,99,235,.32); outline-offset:2px; }
@media (max-width:900px) {
  .research-search-panel { grid-template-columns:1fr 1fr; }
  .research-detail-grid { grid-template-columns:1fr 1fr; }
  .research-detail-grid > div:nth-child(3n) { border-right:1px solid #edf0f4; }
  .research-detail-grid > div:nth-child(2n) { border-right:0; }
  .research-long-content-grid { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .research-page-header { align-items:stretch; flex-direction:column; }
  .research-module-tabs,.research-search-panel,.research-detail-grid,.research-participant-grid { grid-template-columns:1fr; }
  .research-module-tabs { gap:4px; }
  .research-search-actions { width:100%; }
  .research-search-actions .button { flex:1; }
  .research-detail-grid > div,.research-detail-grid > div:nth-child(3n),.research-detail-grid > div:nth-child(2n) { border-right:0; }
  .research-detail-grid .research-detail-wide { grid-column:auto; }
  .research-participant-grid article + article { border-top:1px solid #e6eaf0; border-left:0; }
}
.template-editor-page .page-actions { display:flex; align-items:center; gap:8px; }
.template-editor-page .page-actions form { margin:0; }
.research-inline-save { display:flex; justify-content:flex-end; }
.template-control-editor { display:grid; gap:12px; }
.template-control-card { display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:14px; padding:16px; border:1px solid #dfe5ee; border-radius:9px; background:#fbfcfe; }
.template-control-drag { color:#98a2b3; font-size:18px; text-align:center; }
.template-control-fields { display:grid; grid-template-columns:1fr 1.35fr .72fr 1.5fr; gap:12px; }
.template-control-fields label { display:grid; gap:6px; color:#667085; font-size:11px; font-weight:700; }
.template-control-fields input,.template-control-fields select { width:100%; min-height:40px; padding:7px 10px; border:1px solid #cfd7e3; border-radius:7px; background:#fff; }
.template-control-actions { display:flex; align-items:center; gap:8px; }
.template-control-actions .button { min-height:34px; padding:6px 10px; }
.template-editor-footer { display:flex; justify-content:space-between; gap:12px; padding-top:16px; }
.template-readonly-controls { display:grid; gap:10px; }
.template-readonly-controls article { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:12px; padding:15px 16px; border:1px solid #e1e6ee; border-radius:8px; background:#fbfcfe; }
.template-readonly-controls article > span { color:#2468df; font-size:12px; font-weight:750; }
.template-readonly-controls strong { color:#253044; font-size:13px; }
.template-readonly-controls p { margin:4px 0 0; color:#778397; font-size:11px; }
.template-readonly-controls small { padding:3px 7px; border-radius:999px; color:#175cd3; background:#edf4ff; }
@media (max-width:960px) {
  .template-control-card { grid-template-columns:24px 1fr; }
  .template-control-fields { grid-template-columns:1fr 1fr; }
  .template-control-actions { grid-column:2; }
}
@media (max-width:560px) {
  .template-editor-page .page-actions,.template-control-actions,.template-editor-footer { align-items:stretch; flex-direction:column; }
  .template-control-card { grid-template-columns:1fr; }
  .template-control-drag { display:none; }
  .template-control-fields { grid-template-columns:1fr; }
  .template-control-actions { grid-column:auto; }
}
.report-section { margin-bottom: 16px; padding: 20px; }
.project-detail-sections { display: grid; gap: 16px; }
.project-detail-sections .report-section { margin-bottom: 0; }
.project-module-page { display: grid; gap: 18px; }
.project-module-page .page-heading { margin-bottom: 0; }
body:has(.project-module-page) { background: #f4f6f8; }
body:has(.project-module-page) .app-header { border-bottom-color: #24324a; background: #101b2e; }
body:has(.project-module-page) .brand { color: #fff; }
body:has(.project-module-page) .brand-mark { background: #2f6feb; }
body:has(.project-module-page) .nav-link { color: #aab8cc; }
body:has(.project-module-page) .nav-link.active { border-bottom-color: #fff; color: #fff; }
body:has(.project-module-page) .user-menu,
body:has(.project-module-page) .user-menu .text-button { color: #cbd5e1; }
.project-list-card,
.project-form-card,
.project-detail-card,
.project-overview-card { border-color: #dce3ec; border-radius: 9px; box-shadow: 0 3px 12px rgba(16, 24, 40, .04); }
.project-list-card .table-header,
.project-detail-card .table-header { padding: 16px 20px; background: #fff; }
.project-list-card .table-header h2,
.project-detail-card .table-header h2,
.project-form-card .section-heading h2,
.project-overview-card .section-heading h2 { display: inline-flex; align-items: center; gap: 9px; color: #101828; font-size: 16px; }
.project-list-card .table-header h2::before,
.project-detail-card .table-header h2::before,
.project-form-card .section-heading h2::before,
.project-overview-card .section-heading h2::before { width: 4px; height: 18px; border-radius: 4px; background: var(--primary); content: ""; }
.project-list-card th,
.project-detail-card th { height: 38px; padding: 8px 10px; color: #4a5870; background: #f8fafc; font-size: 13px; font-weight: 700; }
.project-list-card td,
.project-detail-card td { min-height: 53px; padding: 10px; }
.project-list-card .row-actions > a,
.project-list-card .row-actions > form,
.project-detail-card .row-actions > a,
.project-detail-card .row-actions > form { margin-left: 8px; }
.project-list-table { table-layout: fixed; min-width: 1120px; }
.project-code-col { width: 130px; }
.project-name-col { width: 240px; }
.project-status-col { width: 90px; }
.project-date-col { width: 130px; }
.project-amount-col { width: 140px; }
.project-location-col { width: 150px; }
.project-actions-col { width: 150px; }
.project-list-table th:nth-child(1),
.project-list-table td:nth-child(1) { width: 130px; min-width: 130px; max-width: 130px; }
.project-list-table th:nth-child(2),
.project-list-table td:nth-child(2) { width: 240px; min-width: 240px; max-width: 240px; }
.project-list-table th:nth-child(3),
.project-list-table td:nth-child(3) { width: 90px; min-width: 90px; max-width: 90px; }
.project-list-table th:nth-child(4),
.project-list-table td:nth-child(4),
.project-list-table th:nth-child(5),
.project-list-table td:nth-child(5) { width: 130px; min-width: 130px; max-width: 130px; }
.project-list-table th:nth-child(6),
.project-list-table td:nth-child(6) { width: 140px; min-width: 140px; max-width: 140px; }
.project-list-table th:nth-child(7),
.project-list-table td:nth-child(7) { width: 150px; min-width: 150px; max-width: 150px; }
.project-list-table th:nth-child(8),
.project-list-table td:nth-child(8) { width: 150px; min-width: 150px; max-width: 150px; }
.project-list-table tr:has(.row-more-actions[open]) { position: relative; z-index: 10; }
.project-list-table td:has(.row-more-actions[open]) { position: relative; z-index: 20; overflow: visible; }
.project-list-card:has(.row-more-actions[open]) { position: relative; z-index: 50; overflow: visible; }
.project-list-card:has(.row-more-actions[open]) .table-wrap { overflow: visible; }
.project-form-card { max-width: none; padding: 20px 22px; }
.project-form-card .form-heading { margin-bottom: 16px; padding-bottom: 13px; }
.project-form-card .form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 16px; }
.project-form-card .form-actions { margin-top: 20px; }
.project-form-actions { position: sticky; bottom: 0; z-index: 5; padding: 14px 18px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, .96); box-shadow: 0 -6px 20px rgba(16, 24, 40, .06); }
.project-overview-card { padding: 20px 22px; }
.project-overview-card .section-heading { margin-bottom: 16px; padding-bottom: 13px; border-bottom: 1px solid #e7ebf0; }
.project-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; }
.project-overview-grid > span { display: grid; gap: 3px; min-height: 46px; padding: 7px 12px; border: 1px solid #e7ebf0; border-radius: 7px; color: #344054; background: #fafcff; font-weight: 600; }
.project-overview-grid em { color: #667085; font-size: 12px; font-style: normal; font-weight: 600; }
.display-authorization-card { padding-bottom: 20px; }
.display-authorization-create { display: flex; gap: 8px; margin-bottom: 16px; }
.display-authorization-create input { width: min(320px, 100%); }
.display-authorization-device { padding: 16px 0; border-top: 1px solid #e7ebf0; }
.display-authorization-device h3 { margin: 0 0 10px; font-size: 15px; }
.display-authorization-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 16px; }
.display-authorization-grid span { display: grid; gap: 4px; min-height: 58px; padding: 10px 12px; border: 1px solid #e7ebf0; border-radius: 7px; color: #344054; background: #fafcff; font-weight: 600; }
.display-authorization-grid em { color: #667085; font-size: 12px; font-style: normal; font-weight: 600; }
.display-authorization-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.display-authorization-actions form { margin: 0; }
.display-authorization-created-card { display: grid; gap: 12px; max-width: 920px; padding: 22px; }
.display-authorization-created-card h2 { margin: 0; color: #101828; font-size: 18px; }
.display-authorization-created-card p { margin: 0; color: #475467; line-height: 1.6; }
.display-authorization-created-card label { color: #344054; font-size: 13px; font-weight: 700; }
.display-authorization-link { display: flex; gap: 8px; }
.display-authorization-link input { min-width: 0; flex: 1; font-family: var(--font-mono, monospace); }
.project-detail-tabs-card { overflow: hidden; border-color: #dce3ec; border-radius: 9px; box-shadow: 0 3px 12px rgba(16, 24, 40, .04); }
.project-detail-tabs { display: flex; gap: 4px; overflow-x: auto; padding: 8px 12px 0; border-bottom: 1px solid #dce3ec; background: #f8fafc; }
.project-detail-tabs button { position: relative; min-height: 44px; padding: 10px 16px; border: 0; border-radius: 7px 7px 0 0; color: #475467; background: transparent; font: inherit; font-size: 14px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.project-detail-tabs button:hover { color: #101828; background: #eef3f9; }
.project-detail-tabs button[aria-selected="true"] { color: #17345c; background: #fff; font-weight: 700; }
.project-detail-tabs button[aria-selected="true"]::after { position: absolute; right: 12px; bottom: -1px; left: 12px; height: 3px; border-radius: 3px 3px 0 0; background: var(--primary); content: ""; }
.project-detail-tabs button:focus-visible { z-index: 1; outline: 3px solid rgba(47, 111, 235, .28); outline-offset: -3px; }
.project-tab-panel + .project-tab-panel { border-top: 1px solid #e7ebf0; }
.project-tabs-enhanced .project-tab-panel[hidden] { display: none; }
.project-detail-card .table-wrap { border-top: 1px solid #e7ebf0; }
.project-detail-card .weekly-node-table { min-width: 1050px; }
.project-detail-card .table-form-row td { height: 53px; padding: 7px 6px; background: #fbfdff; }
.project-detail-card .table-form-row input,
.project-detail-card .table-form-row select,
.project-detail-card .table-form-row textarea { min-height: 34px; padding: 6px 8px; border-radius: 5px; }
.retrospective-list-table { min-width: 1080px; table-layout: fixed; }
.retrospective-list-table th:nth-child(1), .retrospective-list-table td:nth-child(1) { width: 200px; min-width: 200px; }
.retrospective-list-table th:nth-child(2), .retrospective-list-table td:nth-child(2) { width: 120px; min-width: 120px; }
.retrospective-list-table th:nth-child(3), .retrospective-list-table td:nth-child(3) { width: 90px; min-width: 90px; }
.retrospective-list-table th:nth-child(4), .retrospective-list-table td:nth-child(4) { width: 260px; min-width: 260px; }
.retrospective-list-table th:nth-child(5), .retrospective-list-table td:nth-child(5) { width: 90px; min-width: 90px; }
.retrospective-list-table th:nth-child(6), .retrospective-list-table td:nth-child(6) { width: 150px; min-width: 150px; }
.retrospective-list-table th:nth-child(7), .retrospective-list-table td:nth-child(7) { width: 150px; min-width: 150px; }
.retrospective-conclusion-preview { max-width: none; margin: 0; white-space: nowrap; }
.retrospective-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.retrospective-metric-grid article { min-height: 108px; padding: 16px; border: 1px solid #dce3ec; border-radius: 9px; background: #fff; box-shadow: 0 3px 12px rgba(16, 24, 40, .04); }
.retrospective-metric-grid span, .retrospective-metric-grid small { display: block; color: #667085; font-size: 12px; font-weight: 600; }
.retrospective-metric-grid strong { display: block; margin: 9px 0 5px; overflow: hidden; color: #175cd3; text-overflow: ellipsis; white-space: nowrap; font-size: 22px; line-height: 1.2; }
.retrospective-conclusion { padding: 14px 16px; border-left: 4px solid #2f6feb; border-radius: 0 7px 7px 0; color: #344054; background: #f7faff; line-height: 1.7; white-space: pre-wrap; }
.retrospective-result, .retrospective-priority { display: inline-flex; padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.result-已达成 { color: #067647; background: #ecfdf3; }
.result-需关注 { color: #b54708; background: #fffaeb; }
.result-需改进 { color: #b54708; background: #fff7ed; }
.result-未实现 { color: #b42318; background: #fef3f2; }
.result-不适用 { color: #475467; background: #f2f4f7; }
.priority-高优 { color: #b42318; background: #fef3f2; }
.priority-次高 { color: #b54708; background: #fffaeb; }
.priority-常规 { color: #475467; background: #f2f4f7; }
.retrospective-experience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.retrospective-experience-grid article { min-height: 116px; padding: 14px; border: 1px solid #dce3ec; border-radius: 8px; background: #fafcff; }
.retrospective-experience-grid span { display: inline-flex; padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.experience-有效做法 span { color: #067647; background: #ecfdf3; }
.experience-待改进 span { color: #b54708; background: #fffaeb; }
.experience-可复用资产 span { color: #6941c6; background: #f4f3ff; }
.retrospective-experience-grid p { margin: 10px 0 0; color: #475467; line-height: 1.6; white-space: pre-wrap; }
.retrospective-empty { margin: 0; color: #98a2b3; }
.retrospective-goal-table { width: 100%; min-width: 1180px; table-layout: fixed; border-collapse: separate; border-spacing: 0; }
.retrospective-goal-table th { height: 44px; color: #40516a; background: #f6f8fb; font-size: 13px; font-weight: 750; }
.retrospective-goal-table th:first-child, .retrospective-goal-table td:first-child { width: 58px; min-width: 58px; max-width: 58px; text-align: center; white-space: nowrap; }
.retrospective-goal-table th:nth-child(2), .retrospective-goal-table td:nth-child(2) { width: 112px; min-width: 112px; max-width: 112px; }
.retrospective-goal-table th:nth-child(3), .retrospective-goal-table td:nth-child(3) { width: 280px; min-width: 280px; max-width: 280px; }
.retrospective-goal-table th:nth-child(4), .retrospective-goal-table td:nth-child(4) { width: 210px; min-width: 210px; max-width: 210px; }
.retrospective-goal-table th:nth-child(5), .retrospective-goal-table td:nth-child(5) { width: 112px; min-width: 112px; max-width: 112px; }
.retrospective-goal-table th:nth-child(6), .retrospective-goal-table td:nth-child(6) { width: 390px; min-width: 390px; white-space: normal; }
.retrospective-goal-row td:first-child,
.retrospective-goal-form-table tbody tr td:first-child { position: relative; }
.retrospective-goal-row td:first-child::before,
.retrospective-goal-form-table tbody tr td:first-child::before {
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 0;
  width: 3px;
  border-radius: 999px;
  background: transparent;
  content: "";
}
.goal-row-failed { background: #fffafa; }
.goal-row-improve { background: #fffdf8; }
.goal-row-failed td:first-child::before { background: #dc2626 !important; }
.goal-row-improve td:first-child::before { background: #d97706 !important; }
.retrospective-dimension {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 740;
  line-height: 1.2;
  white-space: nowrap;
}
.dimension-范围 { color: #1d4ed8; background: #eff6ff; }
.dimension-进度 { color: #7c3aed; background: #f5f3ff; }
.dimension-成本 { color: #d97706; background: #fff7ed; }
.dimension-质量 { color: #16a34a; background: #f0fdf4; }
.dimension-客户 { color: #0891b2; background: #ecfeff; }
.retrospective-value-box,
.retrospective-detail-box {
  display: flex;
  min-height: 38px;
  align-items: center;
  padding: 8px 11px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  color: #273449;
  background: #fbfcfe;
  font-weight: 620;
  line-height: 1.45;
  white-space: normal;
}
.retrospective-detail-box { min-height: 46px; align-items: flex-start; }
.goal-row-failed .retrospective-detail-box { border-left: 3px solid #dc2626; background: #fffafa; }
.goal-row-improve .retrospective-detail-box { border-left: 3px solid #d97706; background: #fffdf8; }
.retrospective-goal-form-table { min-width: 1260px; table-layout: fixed; border-collapse: separate; border-spacing: 0; }
.retrospective-goal-form-table th { height: 44px; color: #40516a; background: #f6f8fb; font-size: 13px; font-weight: 750; }
.retrospective-goal-form-table th:first-child, .retrospective-goal-form-table td:first-child { width: 112px; min-width: 112px; }
.retrospective-goal-form-table th:nth-child(2), .retrospective-goal-form-table td:nth-child(2) { width: 280px; min-width: 280px; }
.retrospective-goal-form-table th:nth-child(3), .retrospective-goal-form-table td:nth-child(3) { width: 210px; min-width: 210px; }
.retrospective-goal-form-table th:nth-child(4), .retrospective-goal-form-table td:nth-child(4) { width: 112px; min-width: 112px; }
.retrospective-goal-form-table th:nth-child(5), .retrospective-goal-form-table td:nth-child(5) { width: 390px; min-width: 390px; }
.retrospective-goal-form-table th:last-child, .retrospective-goal-form-table td:last-child { width: 74px; min-width: 74px; text-align: center; }
.retrospective-goal-form-table input,
.retrospective-goal-form-table select {
  min-height: 40px;
  border-color: #e2e8f0;
  border-radius: 9px;
  color: #273449;
  background: #fbfcfe;
  font-weight: 620;
}
.retrospective-goal-form-table input[data-field="details"] {
  min-height: 44px;
  white-space: normal;
}
.retrospective-goal-form-table tr.goal-row-failed input[data-field="details"] { border-left: 3px solid #dc2626; background: #fffafa; }
.retrospective-goal-form-table tr.goal-row-improve input[data-field="details"] { border-left: 3px solid #d97706; background: #fffdf8; }
.retrospective-goal-form-table select[data-field="category"],
.retrospective-goal-form-table select[data-field="result"] {
  border-radius: 999px;
  font-weight: 740;
}
.retrospective-goal-form-table select[data-field="result"] { text-align: center; }
.retrospective-goal-form-table tr:has(select[data-field="result"] option[value="已达成"]:checked) select[data-field="result"] { border-color: #bbf7d0; color: #067647; background: #ecfdf3; }
.retrospective-goal-form-table tr:has(select[data-field="result"] option[value="需关注"]:checked) select[data-field="result"],
.retrospective-goal-form-table tr:has(select[data-field="result"] option[value="需改进"]:checked) select[data-field="result"] { border-color: #fed7aa; color: #b54708; background: #fff7ed; }
.retrospective-goal-form-table tr:has(select[data-field="result"] option[value="未实现"]:checked) select[data-field="result"] { border-color: #fecdd3; color: #b42318; background: #fef3f2; }
.retrospective-experience-form-table { min-width: 900px; table-layout: fixed; }
.retrospective-experience-form-table th:first-child, .retrospective-experience-form-table td:first-child { width: 160px; min-width: 160px; }
.retrospective-experience-form-table th:last-child, .retrospective-experience-form-table td:last-child { width: 66px; min-width: 66px; text-align: center; }
.retrospective-action-form-table { min-width: 1400px; table-layout: fixed; }
.retrospective-action-form-table th:nth-child(1), .retrospective-action-form-table td:nth-child(1) { width: 80px; min-width: 80px; }
.retrospective-action-form-table th:nth-child(2), .retrospective-action-form-table td:nth-child(2) { width: 330px; min-width: 330px; }
.retrospective-action-form-table th:nth-child(3), .retrospective-action-form-table td:nth-child(3) { width: 150px; min-width: 150px; }
.retrospective-action-form-table th:nth-child(4), .retrospective-action-form-table td:nth-child(4), .retrospective-action-form-table th:nth-child(6), .retrospective-action-form-table td:nth-child(6) { width: 150px; min-width: 150px; }
.retrospective-action-form-table th:nth-child(5), .retrospective-action-form-table td:nth-child(5) { width: 100px; min-width: 100px; }
.retrospective-action-form-table th:nth-child(7), .retrospective-action-form-table td:nth-child(7) { width: 240px; min-width: 240px; }
.retrospective-action-form-table th:last-child, .retrospective-action-form-table td:last-child { width: 66px; min-width: 66px; text-align: center; }
.retrospective-action-table { min-width: 1260px; table-layout: fixed; }
.retrospective-action-table th:nth-child(1), .retrospective-action-table td:nth-child(1) { width: 80px; min-width: 80px; }
.retrospective-action-table th:nth-child(2), .retrospective-action-table td:nth-child(2) { width: 300px; min-width: 300px; }
.retrospective-action-table th:nth-child(3), .retrospective-action-table td:nth-child(3) { width: 150px; min-width: 150px; }
.retrospective-action-table th:nth-child(4), .retrospective-action-table td:nth-child(4), .retrospective-action-table th:nth-child(6), .retrospective-action-table td:nth-child(6) { width: 140px; min-width: 140px; }
.retrospective-action-table th:nth-child(5), .retrospective-action-table td:nth-child(5) { width: 100px; min-width: 100px; }
.retrospective-action-table th:nth-child(7), .retrospective-action-table td:nth-child(7) { width: 220px; min-width: 220px; }
body:has(.module-page-heading) { background: #f4f6f8; }
body:has(.module-page-heading) .app-header { border-bottom-color: #24324a; background: #101b2e; }
body:has(.module-page-heading) .brand { color: #fff; }
body:has(.module-page-heading) .brand-mark { background: #2f6feb; }
body:has(.module-page-heading) .nav-link { color: #aab8cc; }
body:has(.module-page-heading) .nav-link.active { border-bottom-color: #fff; color: #fff; }
body:has(.module-page-heading) .user-menu,
body:has(.module-page-heading) .user-menu .text-button { color: #cbd5e1; }
.module-page-heading { margin-bottom: 20px; }
.module-page-heading h1 { font-size: 26px; }
body:has(.module-page-heading) .card { border-color: #dce3ec; border-radius: 9px; box-shadow: 0 3px 12px rgba(16, 24, 40, .04); }
body:has(.module-page-heading) .search-card { padding: 18px 20px; }
body:has(.module-page-heading) .search-card .section-heading { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #e7ebf0; }
body:has(.module-page-heading) .search-card .section-heading h2,
body:has(.module-page-heading) .form-heading h2,
body:has(.module-page-heading) .report-section .section-heading h2 { display: inline-flex; align-items: center; gap: 9px; color: #101828; font-size: 16px; }
body:has(.module-page-heading) .search-card .section-heading h2::before,
body:has(.module-page-heading) .form-heading h2::before,
body:has(.module-page-heading) .report-section .section-heading h2::before { width: 4px; height: 18px; border-radius: 4px; background: var(--primary); content: ""; }
body:has(.module-page-heading) .table-card .table-header { padding: 16px 20px; background: #fff; }
body:has(.module-page-heading) .table-card .table-header h2 { display: inline-flex; align-items: center; gap: 9px; color: #101828; font-size: 16px; }
body:has(.module-page-heading) .table-card .table-header h2::before { width: 4px; height: 18px; border-radius: 4px; background: var(--primary); content: ""; }
body:has(.module-page-heading) .table-card th { height: 38px; padding: 8px 10px; color: #4a5870; background: #f8fafc; font-size: 13px; font-weight: 700; }
body:has(.module-page-heading) .table-card td { min-height: 48px; padding: 8px 10px; }
body:has(.module-page-heading) .table-card .row-actions > a,
body:has(.module-page-heading) .table-card .row-actions > form { margin-left: 8px; }
body:has(.module-page-heading) .form-card { max-width: none; padding: 20px 22px; }
body:has(.module-page-heading) .form-card .form-heading { margin-bottom: 16px; padding-bottom: 13px; }
body:has(.module-page-heading) .form-card .form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 16px; }
.schedule-task-core-fields { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: 14px 16px; }
.schedule-task-core-fields > label { min-width: 0; align-self: start; }
.schedule-solution-point-source-select { height: var(--control-height); min-height: var(--control-height); overflow-y: auto; }
.schedule-task-core-fields .collaborator-picker { min-height: var(--control-height); }
.schedule-task-core-fields .collaborator-picker-trigger { min-height: calc(var(--control-height) - 2px); padding: 3px 8px; }
body:has(.module-page-heading) .form-card .form-actions { position: sticky; bottom: 0; z-index: 5; margin-top: 20px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, .96); box-shadow: 0 -6px 20px rgba(16, 24, 40, .06); }
body:has(.module-page-heading) .resource-form { display: grid; gap: 18px; }
body:has(.module-page-heading) .resource-form .resource-assignment-section { margin: 0; }
body:has(.module-page-heading) .resource-form .weekly-form-actions { margin: 0; }
body:has(.module-page-heading) .action-create-card { max-width: none; }
body:has(.module-page-heading) .action-create-card h2 { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 16px; color: #101828; font-size: 16px; }
body:has(.module-page-heading) .action-create-card h2::before { width: 4px; height: 18px; border-radius: 4px; background: var(--primary); content: ""; }
body:has(.module-page-heading) .report-section { margin-bottom: 0; padding: 20px 22px; }
body:has(.module-page-heading) .report-section .section-heading { margin-bottom: 16px; padding-bottom: 13px; border-bottom: 1px solid #e7ebf0; }
body:has(.module-page-heading) .report-grid article { border-color: #e0e7ef; background: #fff; }
.report-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.report-grid article { padding: 14px; border: 1px solid #e7ebf0; border-radius: 8px; background: #fff; }
.report-grid .weekly-progress-detail { grid-column: 1 / -1; }
.report-grid h3 { margin: 0 0 8px; font-size: 14px; }
.report-grid p { margin: 0; color: #475467; white-space: pre-wrap; }
.brief-single-grid { grid-template-columns: 1fr; }
.ppt-report-card { margin-bottom: 16px; padding: 22px; background: linear-gradient(135deg, #0f172a, #111827 62%, #1f2937); color: #fff; }
.ppt-report-card .section-heading h2 { color: #fff; }
.ppt-report-card .section-heading p { color: #cbd5e1; }
.ppt-actions { display: flex; align-items: center; gap: 10px; }
.disabled-button { color: #94a3b8; background: rgba(255, 255, 255, .08); pointer-events: none; }
.ppt-status-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 12px; }
.ppt-status-grid article { min-width: 0; padding: 14px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 10px; background: rgba(255, 255, 255, .06); }
.ppt-status-grid span { display: block; margin-bottom: 7px; color: #94a3b8; font-size: 12px; }
.ppt-status-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #f8fafc; font-size: 14px; }
.weekly-node-table { table-layout: fixed; min-width: 1050px; }
.weekly-node-name-col { width: 180px; }
.weekly-node-date-col { width: 150px; }
.weekly-acceptance-standard-col { width: 330px; }
.weekly-payment-status-col { width: 110px; }
.weekly-payment-ratio-col { width: 90px; }
.weekly-payment-amount-col { width: 130px; }
.weekly-shared-detail-col { width: 260px; }
.weekly-actions-col { width: 130px; }
.weekly-node-table th,
.weekly-node-table td { overflow-wrap: anywhere; word-break: break-word; white-space: normal; }
.weekly-node-table .row-actions { white-space: nowrap; }
.weekly-node-table .table-form-row td { background: #fbfdff; vertical-align: top; }
.weekly-node-table .table-form-row td:not(.row-actions) input,
.weekly-node-table .table-form-row td:not(.row-actions) select,
.weekly-node-table .table-form-row td:not(.row-actions) textarea { display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; }
.weekly-node-table textarea { min-height: 64px; }
.readonly-value { display: inline-flex; min-height: 40px; align-items: center; color: #98a2b3; }
.timeline-card { margin-bottom: 16px; overflow: hidden; }
.timeline-card .table-header { align-items: flex-start; background: #fff; }
.timeline-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; color: #667085; font-size: 12px; font-weight: 600; }
.timeline-legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend-dot { width: 9px; height: 9px; border-radius: 999px; }
.legend-task { background: #2563eb; }
.legend-actual { background: #16a34a; }
.legend-generated { background: #7c3aed; }
.legend-rest { background: #cbd5e1; }
.timeline-fullscreen-toggle { min-height: var(--control-height); padding: 4px 10px; border: 1px solid #bfd3ee; border-radius: var(--control-radius); color: #175cd3; background: #fff; font-size: 12px; font-weight: 700; cursor: pointer; }
.timeline-fullscreen-toggle:hover { border-color: #2f6feb; background: #f0f6ff; }
.timeline-fullscreen-open { overflow: hidden; }
.timeline-card.timeline-fullscreen { position: fixed; inset: 0; z-index: 200; display: flex; flex-direction: column; margin: 0; border-radius: 0; background: #f8fafc; }
.timeline-fullscreen .table-header { flex: 0 0 auto; padding: 17px 28px; border-bottom-color: #dbe3ef; background: #fff; }
.timeline-fullscreen .timeline-wrap { flex: 1 1 auto; max-height: none; min-height: 0; padding: 18px 28px; }
.timeline-fullscreen .timeline-scroll { min-height: 100%; }
.timeline-fullscreen .timeline-axis { top: 0; }
.timeline-wrap { max-height: 430px; overflow: auto; padding: 10px 18px; background: #f8fafc; }
.timeline-scroll { position: relative; isolation: isolate; width: max-content; min-width: 100%; }
.timeline-axis { position: sticky; top: 0; z-index: 50; display: grid; margin: 0 0 10px 260px; overflow: hidden; border: 1px solid #e5eaf2; border-bottom: 0; border-radius: 6px 6px 0 0; color: var(--muted); background: #f8fafc; box-shadow: -260px -20px 0 20px #f8fafc, 0 -20px 0 20px #f8fafc, 0 10px 14px rgba(248, 250, 252, .96); font-size: 12px; }
.timeline-axis span { display: grid; min-height: 30px; align-content: center; justify-items: center; border-right: 1px solid #e5eaf2; background: #fff; }
.timeline-axis span:last-child { border-right: 0; }
.timeline-axis .timeline-rest-day { background: #f3f6fa; }
.timeline-axis strong { color: #1f2937; font-size: 12px; letter-spacing: .01em; }
.timeline-axis em { color: #94a3b8; font-size: 11px; font-style: normal; }
.timeline-list { position: relative; z-index: 1; isolation: isolate; display: grid; gap: 4px; }
.timeline-row {
  --timeline-accent: #2563eb;
  --timeline-accent-dark: #1d4ed8;
  position: relative;
  display: grid;
  grid-template-columns: 248px max-content;
  gap: 8px;
  align-items: stretch;
  outline: none;
}
.timeline-row:hover,
.timeline-row:focus-within { z-index: 120; }
.timeline-row:hover .timeline-meta,
.timeline-row:focus-within .timeline-meta,
.timeline-row:hover .timeline-track,
.timeline-row:focus-within .timeline-track { border-color: #bfd3ee; box-shadow: inset 0 0 0 1px #eff6ff; }
.timeline-row:hover .timeline-meta,
.timeline-row:focus-within .timeline-meta {
  box-shadow: 8px 0 14px rgba(15, 23, 42, .10), 0 8px 18px rgba(16, 24, 40, .12);
}
.timeline-meta {
  position: sticky;
  left: 0;
  z-index: 20;
  min-height: 26px;
  padding: 5px 8px;
  border: 1px solid #e1e8f1;
  border-left: 3px solid var(--timeline-accent);
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}
.timeline-meta::after { position: absolute; top: -1px; right: -14px; bottom: -1px; width: 14px; background: linear-gradient(90deg, rgba(248, 250, 252, .98), rgba(248, 250, 252, 0)); content: ""; pointer-events: none; }
.timeline-phase { display: inline-flex; max-width: 100%; padding: 1px 6px; border-radius: 999px; color: var(--timeline-accent-dark); background: color-mix(in srgb, var(--timeline-accent) 11%, #fff); font-size: 10px; font-weight: 700; vertical-align: middle; }
.timeline-meta-line { display: flex; min-width: 0; align-items: center; gap: 6px; margin-top: 2px; white-space: nowrap; }
.timeline-meta-line strong { padding-left: calc(var(--tree-depth) * 12px); }
.timeline-row-summary .timeline-meta { border-left-width: 5px; background: #f8fbff; }
.timeline-bar-summary { height: 12px; border-radius: 4px; opacity: .82; }
.timeline-meta strong { min-width: 0; overflow: hidden; color: #101828; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 1.2; }
.timeline-meta-line span { flex: 0 0 auto; color: var(--muted); font-size: 10px; line-height: 1.2; }
.timeline-meta-line em { flex: 0 0 auto; color: #98a2b3; font-size: 10px; font-style: normal; line-height: 1.2; }
.timeline-track {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 26px;
  overflow: hidden;
  border: 1px solid #e1e8f1;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}
.timeline-track-compare { grid-template-rows: 24px 10px; min-height: 38px; }
.timeline-track-has-milestone { overflow: visible; }
.timeline-track::before { content: ""; display: block; grid-column: 1 / -1; grid-row: 1 / -1; border-right: 1px solid #edf1f5; background: repeating-linear-gradient(90deg, transparent 0, transparent 71px, #edf1f5 71px, #edf1f5 72px); }
.timeline-rest-cell { grid-row: 1 / -1; background: rgba(148, 163, 184, .07); }
.timeline-bar {
  z-index: 1;
  display: flex;
  grid-row: 1;
  min-width: 44px;
  height: 14px;
  align-self: center;
  align-items: center;
  justify-content: center;
  gap: 0;
  overflow: hidden;
  padding: 0 6px;
  border: 0;
  border-radius: 5px;
  color: #fff;
  background: #2563eb;
  box-shadow: 0 1px 2px rgba(37, 99, 235, .24);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.timeline-bar-label { display: none; }
.timeline-bar-date { color: #fff; font-size: 10px; font-weight: 700; }
.timeline-bar-short { gap: 0; padding: 0 7px; }
.timeline-bar-short .timeline-bar-label { display: none; }
.timeline-bar-short .timeline-bar-date { color: #fff; }
.timeline-track-compare .timeline-bar { min-width: 50px; height: 14px; }
.timeline-bar-planned { grid-row: 1; }
.timeline-bar-actual { grid-row: 2; align-self: start; height: 6px !important; margin-top: 1px; border-radius: 4px; background: #16a05d; box-shadow: none; }
.timeline-bar-actual .timeline-bar-date { display: none; }
.timeline-bar-planned { position: relative; overflow: visible; }
.timeline-milestone { position: absolute; top: -17px; right: -8px; z-index: 5; display: grid; justify-items: center; min-width: 18px; color: #dc2626; font-style: normal; pointer-events: auto; }
.timeline-milestone b { font-size: 19px; line-height: 1; text-shadow: 0 1px 0 #fff; }
.timeline-milestone em { position: absolute; top: 20px; right: -36px; min-width: 90px; overflow: hidden; color: #b42318; font-size: 10px; font-style: normal; font-weight: 700; line-height: 1.2; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.timeline-bar-generated { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .78), 0 0 0 1px #2563eb; }
.timeline-color-0,
.timeline-color-1,
.timeline-color-2,
.timeline-color-3,
.timeline-color-4,
.timeline-color-5 { --timeline-accent: #2563eb; --timeline-accent-dark: #1d4ed8; }
.timeline-popover {
  display: none;
}
.timeline-floating-popover {
  position: fixed;
  z-index: 5000;
  width: 360px;
  max-width: min(360px, calc(100vw - 80px));
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--timeline-accent) 36%, #dbe3ef);
  border-radius: 12px;
  opacity: 0;
  color: #101828;
  background: #fff;
  box-shadow: 0 18px 42px rgba(16, 24, 40, .22);
  pointer-events: none;
  transform: translateY(-50%) scale(.96);
  transform-origin: left center;
  transition: opacity .14s ease, transform .14s ease;
}
.timeline-floating-popover.is-visible { opacity: 1; transform: translateY(-50%) scale(1); }
.timeline-popover-phase { display: inline-flex; margin-bottom: 7px; padding: 2px 8px; border-radius: 999px; color: var(--timeline-accent-dark); background: color-mix(in srgb, var(--timeline-accent) 12%, #fff); font-size: 11px; font-weight: 800; }
.timeline-floating-popover strong { display: block; color: #101828; font-size: 16px; line-height: 1.35; }
.timeline-floating-popover dl { display: grid; gap: 7px; margin: 10px 0 0; }
.timeline-floating-popover dl div { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 8px; }
.timeline-floating-popover dt { color: #98a2b3; font-size: 12px; font-weight: 700; }
.timeline-floating-popover dd { margin: 0; color: #475467; font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.timeline-floating-popover p { margin: 9px 0 0; padding-top: 9px; border-top: 1px solid #eef2f7; color: #667085; font-size: 12px; line-height: 1.5; }
.flash { margin-bottom: 17px; padding: 12px 14px; border: 1px solid transparent; border-radius: 8px; transition: opacity .2s ease, transform .2s ease; }
.flash-success { border-color: #abefc6; color: #067647; background: #ecfdf3; }
.flash-error { border-color: #fecdca; color: #b42318; background: #fef3f2; }
.flash-dismiss { opacity: 0; transform: translateY(-4px); }

/* 通用表格样式预览：紧凑、专业、以主字段自适应为先。 */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.compact-table-card { overflow: hidden; }
.compact-table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 18px 14px; border-bottom: 1px solid var(--line); }
.compact-table-toolbar h2 { margin: 0; color: #1d2939; font-size: 15px; line-height: 1.35; }
.compact-table-toolbar p { margin: 3px 0 0; color: #667085; font-size: 12px; }
.compact-table-tools { display: flex; align-items: center; gap: 8px; }
.compact-table-search input { width: 220px; min-height: 34px; padding: 6px 10px; border-radius: 6px; font-size: 13px; }
.compact-table-tools .button { min-height: 34px; padding: 0 12px; border-radius: 6px; font-size: 13px; }
.compact-table { min-width: 820px; table-layout: auto; }
.compact-table th,
.compact-table td { height: 40px; padding: 7px 12px; border-bottom-color: #edf0f4; font-size: 13px; }
.compact-table th { color: #667085; background: #f8fafc; font-size: 12px; font-weight: 650; }
.compact-table tbody tr { transition: background .15s ease; }
.compact-table tbody tr:hover { background: #f8fbff; }
.compact-table tbody tr:last-child td { border-bottom: 0; }
.compact-table th:not(:first-child),
.compact-table td:not(:first-child) { width: 1%; }
.compact-primary-cell { width: 38%; min-width: 270px; white-space: normal; }
.compact-primary-cell a { display: block; overflow: hidden; color: #243b5a; font-weight: 650; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.compact-primary-cell a:hover { color: var(--primary); text-decoration: underline; }
.compact-primary-cell span { display: block; overflow: hidden; margin-top: 2px; color: #8a98aa; font-size: 12px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.compact-status,
.compact-priority { display: inline-flex; align-items: center; min-height: 22px; padding: 0 7px; border-radius: 4px; font-size: 12px; font-weight: 650; }
.compact-status.is-progress { color: #175cd3; background: #eff8ff; }
.compact-status.is-risk { color: #b42318; background: #fef3f2; }
.compact-status.is-pending { color: #667085; background: #f2f4f7; }
.compact-status.is-done { color: #067647; background: #ecfdf3; }
.compact-priority.is-high { color: #b42318; background: #fef3f2; }
.compact-priority.is-medium { color: #b54708; background: #fffaeb; }
.compact-priority.is-low { color: #667085; background: #f2f4f7; }
.compact-actions-column,
.compact-actions-cell { width: 64px !important; text-align: right; }
.compact-more-button { min-height: 28px; padding: 0 5px; border: 0; border-radius: 4px; color: #475467; background: transparent; font: inherit; font-weight: 600; cursor: pointer; }
.compact-more-button:hover,
.compact-more-button:focus-visible { color: var(--primary); background: #eff6ff; outline: none; }
.compact-table-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 48px; padding: 8px 14px 8px 18px; border-top: 1px solid var(--line); color: #667085; font-size: 12px; }
.compact-table-footer nav { display: flex; gap: 4px; }
.compact-page-button { min-width: 28px; height: 28px; padding: 0 8px; border: 1px solid transparent; border-radius: 5px; color: #475467; background: transparent; font: inherit; font-size: 12px; cursor: pointer; }
.compact-page-button:hover:not(:disabled) { border-color: #d0d5dd; background: #f8fafc; }
.compact-page-button.is-current { border-color: #d5e5ff; color: #175cd3; background: #eff6ff; }
.compact-page-button:disabled { color: #b8c0cc; cursor: default; }
@media (max-width: 760px) { .compact-table-toolbar { align-items: flex-start; flex-direction: column; } .compact-table-tools { width: 100%; } .compact-table-search { flex: 1; } .compact-table-search input { width: 100%; } }

/* 方案 B：专业浅蓝导航 */
.app-header { border-bottom-color: #c8daf4; background: #f8fbff; box-shadow: 0 1px 0 rgba(47, 111, 235, .04); }
.brand { color: #1f3b64; }
.brand-mark { background: #2f6feb; box-shadow: 0 2px 5px rgba(47, 111, 235, .22); }
.nav-link { color: #60748f; }
.nav-link:hover { color: #175cd3; background: #f0f6ff; }
.nav-link.active { border-bottom-color: #2f6feb; color: #175cd3; }
.user-menu,
.user-menu .text-button { color: #60748f; }
.user-menu .text-button:hover { color: #175cd3; }
body:has(.weekly-report-form) .app-header,
body:has(.project-module-page) .app-header,
body:has(.module-page-heading) .app-header { border-bottom-color: #c8daf4; background: #f8fbff; }
body:has(.weekly-report-form) .brand,
body:has(.project-module-page) .brand,
body:has(.module-page-heading) .brand { color: #1f3b64; }
body:has(.weekly-report-form) .brand-mark,
body:has(.project-module-page) .brand-mark,
body:has(.module-page-heading) .brand-mark { background: #2f6feb; }
body:has(.weekly-report-form) .nav-link,
body:has(.project-module-page) .nav-link,
body:has(.module-page-heading) .nav-link { color: #60748f; }
body:has(.weekly-report-form) .nav-link.active,
body:has(.project-module-page) .nav-link.active,
body:has(.module-page-heading) .nav-link.active { border-bottom-color: #2f6feb; color: #175cd3; }
body:has(.weekly-report-form) .user-menu,
body:has(.weekly-report-form) .user-menu .text-button,
body:has(.project-module-page) .user-menu,
body:has(.project-module-page) .user-menu .text-button,
body:has(.module-page-heading) .user-menu,
body:has(.module-page-heading) .user-menu .text-button { color: #60748f; }

@media (max-width: 960px) {
  .summary-grid { grid-template-columns: 1fr 1fr; }
  .search-grid { grid-template-columns: 1fr 1fr; }
  .weekly-basic-grid { grid-template-columns: 1fr 1fr; }
  .project-form-card .form-grid { grid-template-columns: 1fr 1fr; }
  .project-overview-grid { grid-template-columns: 1fr 1fr; }
  body:has(.module-page-heading) .form-card .form-grid { grid-template-columns: 1fr 1fr; }
  .schedule-task-core-fields { grid-template-columns: 1fr 1fr; }
  .search-actions { grid-column: 1 / -1; }
  .action-form-grid { grid-template-columns: 1fr 1fr; }
  .action-step, .action-submit { grid-column: 1 / -1; }
  .timeline-axis { margin-left: 0; }
  .timeline-row { grid-template-columns: 1fr; gap: 8px; }
  .report-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .container { width: min(100% - 28px, 1280px); }
  .top-nav { margin-left: auto; }
  .main-content { padding-top: 26px; }
  .page-heading { align-items: flex-start; flex-direction: column; }
  .page-heading .button { width: 100%; }
  .summary-grid, .search-grid, .form-grid { grid-template-columns: 1fr; }
  .project-form-card .form-grid, .project-overview-grid { grid-template-columns: 1fr; }
  body:has(.module-page-heading) .form-card .form-grid { grid-template-columns: 1fr; }
  .schedule-task-core-fields { grid-template-columns: 1fr; }
  .wide, .search-actions { grid-column: auto; }
  .summary-card { min-height: 116px; }
  .page-heading h1 { font-size: 24px; }
  .pagination { align-items: flex-start; flex-direction: column; }
  .pagination-actions { flex-wrap: wrap; }
  .weekly-progress-detail .dynamic-table-wrap { display: none; }
  .weekly-progress-detail-mobile { display: grid; gap: 10px; }
  .weekly-progress-detail-mobile article { padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
  .weekly-progress-detail-mobile strong { display: block; color: #101828; line-height: 1.55; }
  .weekly-progress-detail-mobile p { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; margin: 9px 0 0; color: #475467; line-height: 1.5; overflow-wrap: anywhere; }
  .weekly-progress-detail-mobile p span { color: #667085; font-weight: 700; }
}

.wbs-import-page { width: min(100%, 1280px); margin: 0 auto; }
.wbs-import-heading { margin-bottom: 18px; }
.wbs-import-target { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 18px; padding: 18px 20px; }
.wbs-import-target h2 { margin: 3px 0 0; font-size: 17px; line-height: 1.4; }
.wbs-import-eyebrow { color: var(--muted); font-size: 12px; font-weight: 700; }
.wbs-import-target dl { display: grid; grid-template-columns: repeat(4, minmax(92px, 1fr)); gap: 18px; width: min(650px, 64%); margin: 0; }
.wbs-import-target dl div { min-width: 0; }
.wbs-import-target dt { color: var(--muted); font-size: 11px; font-weight: 700; }
.wbs-import-target dd { overflow: hidden; margin: 3px 0 0; color: var(--ink); font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.wbs-import-issues { display: grid; gap: 8px; margin-bottom: 18px; padding: 16px 18px; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--surface); }
.wbs-import-issues h2 { margin: 0 0 2px; font-size: 15px; }
.wbs-import-issue-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.wbs-import-issue { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 8px 10px; border-left: 3px solid var(--line-strong); border-radius: 5px; color: var(--muted); background: var(--page); font-size: 13px; line-height: 1.5; }
.wbs-import-issue strong { flex: 0 0 auto; color: var(--ink); }
.wbs-import-issue code { flex: 0 0 auto; color: inherit; font-weight: 700; }
.wbs-import-issue-error { border-left-color: var(--danger); color: var(--danger); background: color-mix(in srgb, var(--danger) 5%, var(--surface)); }
.wbs-import-issue-warning { border-left-color: var(--warning); color: var(--warning); background: color-mix(in srgb, var(--warning) 6%, var(--surface)); }
.wbs-import-upload { max-width: 860px; padding: 22px; }
.wbs-import-upload form { display: grid; gap: 7px; }
.wbs-import-upload input[type="file"] { min-height: 44px; padding: 7px; cursor: pointer; }
.wbs-import-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.wbs-import-section-heading h2 { margin: 0; font-size: 16px; line-height: 1.4; }
.wbs-import-section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.wbs-import-help { margin: 0; color: var(--muted); font-size: 12px; }
.wbs-import-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.wbs-import-summary-card { min-height: 112px; padding: 15px 17px; }
.wbs-import-summary-card span { color: var(--muted); font-size: 12px; font-weight: 700; }
.wbs-import-summary-card strong { display: block; margin-top: 8px; font-size: 28px; line-height: 1.1; }
.wbs-import-summary-card p { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.wbs-import-preview { overflow: hidden; }
.wbs-import-preview > .wbs-import-section-heading { margin: 0; padding: 17px 18px 14px; border-bottom: 1px solid var(--line); }
.wbs-import-table-wrap { max-width: 100%; overflow-x: auto; outline: none; }
.wbs-import-table { width: 100%; min-width: 1420px; border-collapse: collapse; table-layout: fixed; }
.wbs-import-table th,
.wbs-import-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.45; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.wbs-import-table th { color: var(--ink); background: var(--page); font-size: 11px; font-weight: 700; white-space: nowrap; }
.wbs-import-table tbody:last-child tr:last-child td { border-bottom: 0; }
.wbs-import-table td strong { display: block; color: var(--ink); font-size: 12px; }
.wbs-import-table td span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.wbs-import-table td code { color: var(--ink); font-size: 12px; font-weight: 700; }
.wbs-import-table select { min-width: 118px; font-size: 12px; }
.wbs-import-stage-row td { background: color-mix(in srgb, var(--primary) 4%, var(--surface)); }
.wbs-import-stage-row td:first-child { border-left: 3px solid var(--primary); }
.wbs-import-task-row td:nth-child(2),
.wbs-import-task-row td:nth-child(10),
.wbs-import-task-row td:nth-child(11) { white-space: normal; }
.wbs-import-source-col { width: 82px; }
.wbs-import-task-col { width: 180px; }
.wbs-import-phase-col { width: 142px; }
.wbs-import-date-col { width: 104px; }
.wbs-import-duration-col { width: 82px; }
.wbs-import-owner-col { width: 140px; }
.wbs-import-text-col { width: 180px; }
.wbs-import-select-label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.wbs-import-confirm-form { margin-top: 16px; }
.wbs-import-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 15px; }
.wbs-import-actions .button { width: auto; }
.wbs-import-actions button:disabled { opacity: .5; cursor: not-allowed; }
.wbs-import-page :focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 35%, transparent); outline-offset: 2px; }

@media (max-width: 1040px) {
  .wbs-import-target { align-items: flex-start; flex-direction: column; }
  .wbs-import-target dl { width: 100%; }
  .wbs-import-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 650px) {
  .wbs-import-target dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wbs-import-summary { grid-template-columns: 1fr; }
  .wbs-import-actions { align-items: stretch; flex-direction: column; }
  .wbs-import-actions .button { width: 100%; }
}

/* UI foundation: grouped desktop navigation. */
.brand,
.user-menu { flex: 0 0 auto; }
.top-nav {
  min-width: 0;
  gap: 6px;
  margin-left: 28px;
}
.nav-link {
  min-height: 40px;
  padding: 0 10px;
  border-radius: 7px;
  white-space: nowrap;
}
.nav-more {
  position: relative;
  display: flex;
  align-items: center;
}
.nav-more > summary {
  cursor: pointer;
  list-style: none;
}
.nav-more > summary::-webkit-details-marker { display: none; }
.nav-more > summary::after {
  margin-left: 5px;
  color: #7a8ca5;
  content: "⌄";
  font-size: 11px;
}
.nav-more[open] > summary::after { transform: rotate(180deg); }
.nav-more.active > summary {
  border-bottom-color: var(--primary);
  color: #175cd3;
  background: #edf4ff;
}
.nav-more-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% - 5px);
  right: 0;
  min-width: 156px;
  padding: 6px;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(16, 24, 40, .14);
}
.nav-more-link {
  display: flex;
  min-height: 40px;
  align-items: center;
  padding: 0 10px;
  border-radius: 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}
.nav-more-link:hover,
.nav-more-link.active {
  color: var(--primary);
  background: #eff6ff;
}
.button,
button,
input,
select,
summary { font-family: inherit; }

@media (max-width: 960px) {
  .header-inner { gap: 12px; }
  .top-nav {
    flex: 1 1 auto;
    margin-left: 8px;
    overflow: visible;
  }
  body:has(.work-calendar-page) .header-inner { overflow: visible; }
  body:has(.work-calendar-page) .top-nav {
    flex: 1 1 auto;
    margin-left: 8px;
    overflow: visible;
  }
}

/* UI foundation: action-first project dashboard. */
.dashboard-attention {
  overflow: hidden;
  border: 1px solid #efc8cc;
  border-radius: 10px;
  background: #fff;
}
.dashboard-attention-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-bottom: 1px solid #f2dfe1;
  background: #fff8f8;
}
.dashboard-attention-heading h2,
.dashboard-attention-heading p { margin: 0; }
.dashboard-attention-heading h2 {
  color: #7a271a;
  font-size: 15px;
}
.dashboard-attention-heading p {
  margin-top: 4px;
  color: #7f5658;
  font-size: 12px;
}
.dashboard-attention-count {
  padding: 5px 9px;
  border-radius: 999px;
  color: #b42318;
  background: #fee4e2;
  font-weight: 750;
  white-space: nowrap;
}
.dashboard-attention-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-height: 64px;
  padding: 11px 16px;
  border-top: 1px solid #edf0f4;
}
.dashboard-attention-list article:first-child { border-top: 0; }
.dashboard-attention-list strong,
.dashboard-attention-list small { display: block; }
.dashboard-attention-list small {
  margin-top: 4px;
  color: var(--muted);
}
.dashboard-attention-type {
  color: #b42318;
  font-size: 12px;
  font-weight: 750;
}
.dashboard-attention-action {
  min-width: 64px;
  min-height: 40px;
}
.dashboard-attention-empty {
  margin: 0;
  padding: 18px 16px;
  color: #067647;
}
.dashboard-card-wide { min-height: 0; }

@media (max-width: 600px) {
  .dashboard-attention-heading,
  .dashboard-attention-list article {
    align-items: flex-start;
    grid-template-columns: 1fr;
  }
  .dashboard-attention-heading { flex-direction: column; }
  .dashboard-attention-action { width: 100%; }
}

@media (max-width: 680px) {
  .header-inner {
    height: auto;
    min-height: 64px;
    flex-wrap: wrap;
    padding: 8px 0;
  }
  .top-nav,
  body:has(.work-calendar-page) .top-nav {
    order: 3;
    flex: 1 0 100%;
    flex-wrap: wrap;
    gap: 2px;
    margin-left: 0;
  }
  .nav-link { padding: 0 8px; }
}

/* UI foundation: compact list filters with progressive disclosure. */
.list-filter-card {
  position: relative;
  z-index: 20;
  margin-bottom: 16px;
  padding: 12px;
  overflow: visible;
}
.list-filter-bar {
  display: grid;
  grid-template-columns:
    minmax(170px, .9fr)
    minmax(300px, 1.4fr)
    minmax(150px, .7fr)
    auto
    auto
    auto;
  gap: 10px;
  align-items: end;
}
.list-filter-bar > label,
.list-filter-bar .filter-field { min-width: 0; }
.list-filter-bar input,
.list-filter-bar select,
.list-filter-bar .multi-dropdown summary { min-height: 40px; }
.list-filter-bar .search-actions .button { min-height: 40px; }
.owner-search-picker { min-width: 0; }
.owner-search-picker [data-owner-search-input] { width: 100%; }
.list-filter-bar .filter-field .multi-dropdown summary {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.advanced-filters { position: relative; }
.advanced-filters > summary {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 11px;
  border: 1px solid var(--line-strong);
  border-radius: 7px;
  color: var(--primary);
  background: #fff;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}
.advanced-filters > summary::-webkit-details-marker { display: none; }
.advanced-filters > summary::after {
  margin-left: 2px;
  color: #7a8ca5;
  content: "⌄";
  font-size: 11px;
}
.advanced-filters[open] > summary::after { transform: rotate(180deg); }
.advanced-filters > summary span {
  padding: 2px 5px;
  border-radius: 999px;
  color: #175cd3;
  background: #eaf2ff;
  font-size: 11px;
}
.advanced-filter-grid {
  position: absolute;
  z-index: 60;
  top: calc(100% + 6px);
  right: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  width: min(520px, 80vw);
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(16, 24, 40, .14);
}
.advanced-filter-grid input,
.advanced-filter-grid select { min-height: 40px; }

@media (max-width: 960px) {
  .list-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .advanced-filters { align-self: end; }
  .advanced-filter-grid {
    position: static;
    width: auto;
    margin-top: 8px;
  }
}

@media (max-width: 600px) {
  .list-filter-bar,
  .advanced-filter-grid { grid-template-columns: 1fr; }
}

/* UI foundation: shared list density and row actions. */
.list-filter-bar-short {
  grid-template-columns:
    minmax(180px, 1fr)
    minmax(200px, 1.2fr)
    minmax(160px, .8fr)
    auto;
}
.brief-filter-bar {
  grid-template-columns:
    minmax(180px, 1fr)
    minmax(220px, 1.35fr)
    minmax(150px, .8fr)
    minmax(150px, .8fr)
    auto;
}
.brief-filter-bar input,
.brief-filter-bar select,
.brief-filter-bar .search-actions .button {
  min-height: var(--control-height);
  border-radius: var(--control-radius);
}
.document-filter-bar {
  grid-template-columns:
    minmax(170px, 1fr)
    minmax(150px, .85fr)
    minmax(130px, .7fr)
    minmax(190px, 1.1fr)
    auto
    auto;
}
.document-table { min-width: 1020px; }
.document-table tr:has(.row-more-actions[open]) {
  position: relative;
  z-index: 10;
}
.document-table td:has(.row-more-actions[open]) {
  position: relative;
  z-index: 20;
  overflow: visible;
}
.document-table-card:has(.row-more-actions[open]) {
  position: relative;
  z-index: 50;
  overflow: visible;
}
.document-table-card:has(.row-more-actions[open]) .table-wrap {
  overflow: visible;
}
.document-title-link {
  display: -webkit-box;
  max-width: 320px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
}
.document-stage-badge,
.document-type-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  color: #475467;
  background: #f2f4f7;
  font-size: 12px;
  font-weight: 650;
}
.document-type-badge {
  color: #175cd3;
  background: #eff6ff;
}
.document-create-dialog {
  width: min(900px, calc(100% - 32px));
  max-height: calc(100vh - 48px);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 24px 60px rgba(16, 24, 40, .2);
}
.document-create-dialog::backdrop { background: rgba(15, 23, 42, .35); }
.document-create-dialog > form { padding: 20px; }
.document-dialog-heading,
.document-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.document-dialog-heading p { margin: 4px 0 0; color: var(--muted); }
.document-create-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .85fr);
  gap: 20px;
  margin-top: 18px;
}
.document-create-fields { display: grid; gap: 14px; }
.document-create-fields small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}
.document-type-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.document-type-fieldset legend {
  margin-bottom: 5px;
  color: #667085;
  font-size: 12px;
  font-weight: 700;
}
.document-type-options { display: flex; flex-wrap: wrap; gap: 6px; }
.document-type-option { min-width: 58px; min-height: 40px; }
.document-type-option.is-selected {
  border-color: var(--primary);
  color: #fff;
  background: var(--primary);
}
.document-template-preview {
  padding-left: 20px;
  border-left: 1px solid var(--line);
}
.document-template-preview > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.document-template-preview h3 { margin: 6px 0 12px; }
.document-template-preview ol {
  display: grid;
  gap: 9px;
  margin: 0 0 16px;
  padding-left: 22px;
  color: #475467;
}
.document-template-preview p {
  padding: 12px;
  border-radius: 7px;
  color: var(--muted);
  background: #f8fafc;
}
.document-dialog-actions {
  justify-content: flex-end;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.document-dialog-actions .button {
  width: auto;
  min-width: 80px;
}
.document-editor-form {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.document-outline-card {
  position: sticky;
  top: 78px;
  padding: 14px;
}
.document-outline-card,
.document-editor-card { min-width: 0; }
.document-outline-card h2 { margin-bottom: 10px; font-size: 15px; }
.document-outline-card nav { display: grid; gap: 4px; }
.document-outline-card a {
  padding: 7px 8px;
  border-radius: 6px;
  color: #667085;
}
.document-outline-card a:hover { color: var(--primary); background: #f5f8ff; }
.document-editor-card { padding: 16px; }
.document-editor-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: end;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.document-editor-actions,
.document-editor-toolbar { display: flex; gap: 6px; flex-wrap: wrap; }
.document-editor-actions { flex-wrap: nowrap; }
.document-editor-actions .button {
  width: auto;
  min-width: 96px;
}
.document-editor-toolbar { padding: 12px 0; }
.document-editor-toolbar .button { min-height: 36px; }
.document-editor-section {
  padding: 20px 0;
  border-top: 1px solid var(--line);
  scroll-margin-top: 84px;
}
.document-editor-section:first-of-type { border-top: 0; }
.document-editor-section > label {
  color: var(--text);
  font-size: 16px;
}
.document-editor-section > p {
  margin: 4px 0 10px;
  color: var(--muted);
  font-size: 12px;
}
.document-editor-section textarea { min-height: 180px; }
.business-process-preview {
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
}
.business-process-preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}
.business-process-preview-heading strong {
  display: block;
  margin-bottom: 2px;
}
.business-process-preview-heading span {
  color: var(--muted);
  font-size: 12px;
}
.business-process-preview-wrap {
  max-height: 260px;
  overflow: auto;
}
.business-process-preview table {
  min-width: 1480px;
  border-collapse: separate;
  border-spacing: 0;
}
.business-process-preview th,
.business-process-preview td {
  padding: 8px 10px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
  text-align: left;
  font-size: 12px;
}
.business-process-preview th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f5f7fa;
  color: #475467;
}
.business-process-preview-empty {
  margin: 0;
  padding: 14px 12px;
  color: var(--muted);
}
.business-process-dialog {
  position: relative;
  width: calc(100vw - 32px);
  max-width: none;
  height: calc(100vh - 32px);
  max-height: none;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d0d5dd;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 64px rgb(16 24 40 / 22%);
  color: var(--text);
}
.business-process-dialog::backdrop {
  background: rgb(16 24 40 / 48%);
}
.business-process-dialog[open] {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
}
[data-business-process-dialog-content] {
  display: contents;
}
.business-process-dialog-heading,
.business-process-toolbar,
.business-process-dialog-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
}
.business-process-dialog-heading {
  border-bottom: 1px solid var(--line);
}
.business-process-dialog-heading h2 {
  margin: 0 0 3px;
  font-size: 18px;
}
.business-process-dialog-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.business-process-close {
  width: 36px;
  min-width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #667085;
  font-size: 22px;
}
.business-process-close:hover {
  background: #f2f4f7;
  color: var(--text);
}
.business-process-toolbar {
  padding-block: 10px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfe;
}
.business-process-toolbar > div {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.business-process-toolbar > span {
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}
.business-process-sheet-wrap {
  position: relative;
  min-height: 280px;
  overflow: auto;
  background: #f6f8fb;
}
.business-process-sheet {
  width: 1982px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  color: #344054;
  font-size: 13px;
}
.business-process-sheet th,
.business-process-sheet td {
  box-sizing: border-box;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  text-align: left;
}
.business-process-sheet th {
  position: sticky;
  top: 31px;
  z-index: 3;
  height: 42px;
  padding: 0 10px;
  background: #f5f7fa;
  color: #475467;
  font-size: 12px;
  font-weight: 700;
}
.business-process-sheet .business-process-group-row th {
  top: 0;
  z-index: 5;
  height: 31px;
  padding-block: 6px;
  background: #eaf0fb;
  color: #344054;
  text-align: center;
}
.business-process-sheet .business-process-row-number-head {
  top: 0;
  left: 0;
  z-index: 9;
  width: 44px;
  height: 73px;
  padding: 0;
  background: #eef2f7;
  color: #98a2b3;
}
.business-process-sheet td {
  height: 40px;
  padding: 0 10px;
  overflow: hidden;
  background: #fff;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.business-process-sheet td:focus {
  outline: 0;
}
.business-process-sheet td > [data-business-process-cell-value] {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.business-process-column-index { width: 44px; }
.business-process-column-1 { width: 86px; }
.business-process-column-2 { width: 130px; }
.business-process-column-3 { width: 92px; }
.business-process-column-4 { width: 150px; }
.business-process-column-5 { width: 240px; }
.business-process-column-6 { width: 120px; }
.business-process-column-7 { width: 100px; }
.business-process-column-8 { width: 120px; }
.business-process-column-9 { width: 110px; }
.business-process-column-10 { width: 110px; }
.business-process-column-11 { width: 220px; }
.business-process-column-12 { width: 220px; }
.business-process-column-13 { width: 240px; }
.business-process-row-number {
  position: sticky;
  left: 0;
  z-index: 5;
  width: 44px;
  min-width: 44px;
  padding: 0;
  background: #f5f7fa;
  text-align: center;
}
.business-process-row-number button {
  width: 100%;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #667085;
  font: inherit;
}
.business-process-row-number button:hover,
.business-process-row-number button:focus-visible {
  background: #eaf0f9;
  color: #344054;
  outline: 0;
}
.business-process-sheet td[aria-selected="true"] {
  z-index: 8;
  background: #fff;
  box-shadow: inset 0 0 0 2px var(--primary);
}
.business-process-sheet tr[aria-selected="true"] td {
  background: #f7faff;
}
.business-process-sheet tr[aria-selected="true"] .business-process-row-number {
  background: #eaf2ff;
}
.business-process-sheet td.is-editing {
  height: auto;
  min-height: 40px;
  padding: 0;
  overflow: visible;
  white-space: normal;
}
.business-process-cell-editor {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  margin: 0;
  padding: 8px 10px;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: #fff;
  color: var(--text);
  font: inherit;
}
.business-process-cell-editor:is(textarea) {
  min-height: 72px;
  resize: vertical;
}
.business-process-sheet .business-process-sticky-1,
.business-process-sheet .business-process-sticky-2,
.business-process-sheet .business-process-sticky-3,
.business-process-sheet .business-process-sticky-4 {
  position: sticky;
  z-index: 4;
  background: #fff;
}
.business-process-sheet th.business-process-sticky-1,
.business-process-sheet th.business-process-sticky-2,
.business-process-sheet th.business-process-sticky-3,
.business-process-sheet th.business-process-sticky-4 {
  z-index: 6;
  background: #f5f7fa;
}
.business-process-sticky-1 { left: 44px; }
.business-process-sticky-2 { left: 130px; }
.business-process-sticky-3 { left: 260px; }
.business-process-sticky-4 {
  left: 352px;
  box-shadow: 4px 0 6px rgb(16 24 40 / 7%);
}
.business-process-sheet tr[aria-selected="true"] .business-process-sticky-1,
.business-process-sheet tr[aria-selected="true"] .business-process-sticky-2,
.business-process-sheet tr[aria-selected="true"] .business-process-sticky-3,
.business-process-sheet tr[aria-selected="true"] .business-process-sticky-4 {
  background: #f7faff;
}
.business-process-sheet td.has-error {
  background: #fff6f5;
  box-shadow: inset 0 0 0 2px #d92d20;
}
.business-process-cell-error {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.business-process-cell-error[hidden] {
  display: none;
}
.business-process-cell-tooltip {
  position: absolute;
  z-index: 20;
  width: max-content;
  max-width: 480px;
  max-height: 240px;
  padding: 10px 12px;
  overflow-y: auto;
  border: 1px solid #cfd8e6;
  border-radius: 8px;
  background: #fff;
  color: #344054;
  box-shadow: 0 12px 28px rgb(16 24 40 / 18%);
  font-size: 13px;
  line-height: 1.55;
  white-space: normal;
  overflow-wrap: anywhere;
}
.business-process-cell-tooltip[hidden] {
  display: none;
}
.business-process-delete-confirm {
  position: absolute;
  z-index: 20;
  top: 50%;
  left: 50%;
  width: min(360px, calc(100% - 32px));
  padding: 18px;
  transform: translate(-50%, -50%);
  border: 1px solid #fecdca;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 16px 40px rgb(16 24 40 / 20%);
}
.business-process-delete-confirm p {
  margin: 6px 0 14px;
  color: var(--muted);
}
.business-process-delete-confirm > div {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.business-process-dialog-footer {
  border-top: 1px solid var(--line);
  background: #fff;
}
.business-process-dialog-footer > div {
  display: flex;
  gap: 8px;
}
.business-process-dialog-footer [role="status"] {
  color: var(--muted);
  font-size: 12px;
}
.research-session,
.research-preview-section {
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.research-section-heading,
.research-people-heading,
.research-workbench-heading,
.research-workbench-toolbar,
.research-workbench-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.research-section-heading h2,
.research-people-heading h3 { margin: 0; font-size: 16px; }
.research-section-heading p,
.research-workbench-heading p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.research-session-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.research-session-grid label,
.research-person-row label,
.research-detail-base-fields label,
.research-requirement-group label,
.research-workbench-toolbar label { display: grid; gap: 5px; color: #344054; font-size: 13px; font-weight: 650; }
.research-people { margin-top: 16px; }
.research-people-heading { margin-bottom: 8px; }
.research-person-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  margin-top: 8px;
}
.research-requirement-preview-wrap { margin-top: 12px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.research-requirement-preview-table { width: 100%; min-width: 880px; border-collapse: collapse; font-size: 13px; }
.research-requirement-preview-table th,
.research-requirement-preview-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.research-requirement-preview-table th { color: #475467; background: #f8fafc; font-weight: 700; }
.research-workbench-dialog {
  width: calc(100vw - 32px);
  height: calc(100vh - 32px);
  max-width: none;
  max-height: none;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d0d5dd;
  border-radius: 12px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 24px 64px rgb(16 24 40 / 22%);
}
.research-workbench-dialog::backdrop { background: rgb(16 24 40 / 48%); }
.research-workbench-dialog[open] { display: flex; flex-direction: column; }
.research-workbench-background { display: flex; flex: 1; flex-direction: column; min-height: 0; }
.research-workbench-heading { position: sticky; z-index: 2; top: 0; padding: 16px 20px; border-bottom: 1px solid var(--line); background: #fff; }
.research-workbench-heading h2 { margin: 0; font-size: 18px; }
.research-workbench-toolbar { padding: 10px 20px; border-bottom: 1px solid var(--line); background: #fbfcfe; }
.research-workbench-toolbar label:first-child { flex: 1; max-width: 420px; }
.research-workbench-layout {
  display: grid;
  grid-template-columns: 400px minmax(0, 1fr);
  min-height: 0;
  flex: 1;
}
.research-requirement-list,
.research-requirement-detail {
  min-height: 0;
  overflow: auto;
}
.research-requirement-list { padding: 16px; border-right: 1px solid var(--line); background: #fbfcfe; }
.research-requirement-list h3,
.research-detail-empty h3 { margin: 0 0 8px; font-size: 15px; }
.research-list-empty,
.research-detail-empty p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.research-requirement-detail { position: relative; padding: 18px 20px 86px; }
.research-detail-empty { padding: 34px 10px; text-align: center; }
.research-detail-base-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.research-requirement-session { display: grid; grid-template-columns: minmax(180px, 600px); gap: 12px; margin: 16px 0 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfe; }
.research-requirement-session h3 { margin: 0; color: #344054; font-size: 14px; }
.research-requirement-session label { display: grid; width: min(600px, 100%); gap: 5px; color: #344054; font-size: 13px; font-weight: 650; }
.research-requirement-session small { color: var(--muted); font-weight: 400; }
.research-requirement-session textarea { min-height: 96px; resize: vertical; }
.research-requirement-group { display: grid; grid-template-columns: minmax(0, 900px); gap: 12px; margin: 16px 0 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; }
.research-requirement-group summary { grid-column: 1 / -1; cursor: pointer; color: #344054; font-size: 14px; font-weight: 700; }
.research-requirement-group label,
.research-requirement-group textarea { width: min(900px, 100%); }
.research-requirement-group textarea { min-height: 111px; resize: vertical; }
.research-requirement-group textarea.research-requirement-textarea-tall { min-height: 185px; }
.schedule-requirement-picker { display: grid; align-content: start; gap: 6px; }
.schedule-requirement-label { color: #344054; font-size: 13px; font-weight: 650; }
.schedule-requirement-trigger { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border: 1px solid #cfd8e6; border-radius: 8px; background: #fff; color: #1d2939; text-align: left; cursor: pointer; }
.schedule-requirement-trigger:hover { border-color: #84adf7; }
.schedule-requirement-trigger:focus-visible { outline: 3px solid rgb(37 99 235 / 35%); outline-offset: 2px; }
.schedule-requirement-dialog { width: min(620px, calc(100vw - 32px)); max-height: min(70vh, 560px); padding: 0; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 22px 52px rgb(16 24 40 / 20%); }
.schedule-requirement-dialog::backdrop { background: rgb(16 24 40 / 42%); }
.schedule-requirement-dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.schedule-requirement-dialog-heading h3 { margin: 0; color: #1d2939; font-size: 18px; }
.schedule-requirement-dialog-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.schedule-requirement-options { display: grid; max-height: min(48vh, 380px); gap: 8px; padding: 14px 20px; overflow-y: auto; }
.schedule-requirement-option { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 10px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.schedule-requirement-option:has(input:checked) { border-color: var(--primary); background: #f5f8ff; }
.schedule-requirement-option:focus-within { box-shadow: var(--focus-ring); }
.schedule-requirement-option input { margin-top: 3px; }
.schedule-requirement-option span { display: grid; min-width: 0; gap: 3px; }
.schedule-requirement-option strong { color: #1d2939; overflow-wrap: anywhere; }
.schedule-requirement-option small { color: var(--muted); font-weight: 400; }
.schedule-requirement-empty { margin: 12px 0; color: var(--muted); text-align: center; }
.schedule-requirement-dialog-actions { display: flex; justify-content: space-between; gap: 8px; padding: 14px 20px; border-top: 1px solid var(--line); }
.research-people-preview { display: inline-block; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.research-process-links { grid-column: 1 / -1; color: #344054; font-size: 13px; font-weight: 650; }
.research-process-links p { margin: 6px 0 0; color: var(--muted); font-weight: 400; }
.research-completion { margin: 14px 0 0; color: var(--muted); font-size: 13px; }
.research-requirement-error { display: flex; gap: 6px; align-items: start; }
.research-requirement-error span[aria-hidden="true"] { display: inline-grid; width: 16px; height: 16px; place-items: center; border-radius: 50%; background: var(--danger); color: #fff; font-size: 11px; font-weight: 700; }
.research-requirement-detail [aria-invalid="true"] { border-color: var(--danger); }
.research-field-error { display: block; margin-top: 2px; font-weight: 500; }
.research-workbench-footer { position: sticky; bottom: 0; padding: 12px 20px; border-top: 1px solid var(--line); background: #fff; }
.research-workbench-footer > div { display: flex; gap: 8px; }
.research-workbench-footer [role="status"] { color: var(--muted); font-size: 12px; }
.research-requirement-row { display: grid; width: 100%; gap: 3px; margin-top: 8px; padding: 10px 12px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: #344054; text-align: left; }
.research-requirement-row:hover { border-color: #cbd5e1; background: #f2f6fc; }
.research-requirement-row[aria-pressed="true"] { border-color: #9ec5fe; border-left-width: 4px; padding-left: 9px; background: #eaf2ff; font-weight: 700; }
.research-requirement-row small { color: var(--muted); }
.research-requirement-delete-backdrop { position: absolute; z-index: 3; inset: 0; background: rgb(16 24 40 / 24%); }
.research-requirement-delete-confirm { position: absolute; z-index: 4; inset: auto 20px 74px auto; width: min(360px, calc(100% - 40px)); padding: 18px; border: 1px solid #fecdca; border-radius: 10px; background: #fff; box-shadow: 0 16px 40px rgb(16 24 40 / 20%); }
.research-requirement-delete-confirm p { margin: 6px 0 14px; color: var(--muted); }
.research-requirement-delete-confirm > div { display: flex; justify-content: flex-end; gap: 8px; }
.research-workbench-dialog [hidden],
.research-requirement-delete-backdrop[hidden],
.research-requirement-error[hidden] { display: none; }
.research-workbench-dialog :focus-visible { outline: 3px solid rgb(37 99 235 / 35%); outline-offset: 2px; }
.document-content-error { margin-top: 8px; }
.document-back-link {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--primary);
  font-weight: 650;
}
.document-editor-heading p {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.brief-filter-bar .search-actions {
  align-self: end;
  white-space: nowrap;
}
body:has([data-brief-filters]) .table-page-size label { white-space: nowrap; }
.row-more-actions summary {
  min-width: 40px;
  min-height: 40px;
  justify-content: center;
}
.module-page-heading { margin-bottom: 16px; }
.table-header { min-height: 58px; }

@media (max-width: 1024px) {
  .brief-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .document-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .list-filter-bar-short { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brief-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .list-filter-bar-short { grid-template-columns: 1fr; }
  .brief-filter-bar { grid-template-columns: 1fr; }
  .document-filter-bar { grid-template-columns: 1fr; }
  .brief-filter-bar .search-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 760px) {
  .document-create-grid { grid-template-columns: 1fr; }
  .document-template-preview {
    padding-top: 16px;
    padding-left: 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
  .document-editor-form { grid-template-columns: 1fr; }
  .document-outline-card { position: static; }
  .document-outline-card nav {
    display: flex;
    overflow-x: auto;
  }
  .document-outline-card a { white-space: nowrap; }
  .document-editor-meta { grid-template-columns: 1fr; }
}

/* Account access: restrained desktop forms and explicit keyboard states. */
.account-form-card { max-width: 560px; }
.login-panel { max-width: 440px; }
.account-form-card input,
.account-form-card select,
.login-panel input,
.login-panel select,
.account-list-card input,
.account-list-card select { font-size: 16px; }
.invite-form-card { max-width: 860px; }
.invite-permission-fieldset { display: grid; gap: 0; margin-top: 20px; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; }
.invite-permission-fieldset legend { margin-left: 16px; padding: 0 6px; color: #344054; font-size: 14px; font-weight: 700; }
.invite-permission-header,
.invite-permission-row { display: grid; grid-template-columns: 24px minmax(0, 1fr) minmax(180px, .8fr); gap: 12px; align-items: center; }
.invite-permission-header { min-height: 38px; padding: 0 16px; color: #667085; background: #f8fafc; font-size: 12px; font-weight: 700; }
.invite-permission-row { min-height: 58px; padding: 8px 16px; border-top: 1px solid var(--line); }
.invite-permission-check { width: 18px; height: 18px; min-height: 18px; margin: 0; accent-color: var(--primary); cursor: pointer; }
.invite-permission-project { min-width: 0; margin: 0; color: #344054; font-size: 14px; font-weight: 650; line-height: 1.45; cursor: pointer; overflow-wrap: anywhere; }
.invite-permission-role select { width: 100%; min-height: 40px; }
.invite-permission-check:focus-visible { outline: 3px solid rgba(47, 111, 235, .24); outline-offset: 3px; }
@media (max-width: 600px) {
  .invite-form-card { padding: 18px; }
  .invite-permission-header { display: none; }
  .invite-permission-row { grid-template-columns: 24px minmax(0, 1fr); gap: 8px 10px; padding: 12px; }
  .invite-permission-role { grid-column: 2; }
}
.form-field { display: grid; gap: 4px; }
.error-summary {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid #fecdca;
  border-left: 4px solid var(--danger);
  border-radius: 7px;
  color: #7a271a;
  background: #fff7f6;
}
.error-summary h2 { margin: 0 0 4px; font-size: 14px; }
.error-summary ul { margin: 0; padding-left: 20px; }
.error-summary a { text-decoration: underline; }
.error-summary:focus-visible { outline: 3px solid rgba(180, 35, 24, .35); outline-offset: 2px; }
.button-danger { border-color: #f5b7b1; color: #b42318; background: #fff7f6; }
.button-danger:hover { border-color: #b42318; color: #8f1d14; background: #fee4e2; }
.account-status { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.account-status.is-active { border: 1px solid #abefc6; color: #05603a; background: #ecfdf3; }
.account-status.is-disabled { border: 1px solid #d0d5dd; color: #475467; background: #f2f4f7; }
.account-status:not(:empty) { white-space: nowrap; }
.account-list-card .table-header { align-items: end; gap: 8px; }
.account-list-card .table-header label { margin: 0; }
.account-table th,
.account-table td { height: 48px; font-size: 14px; }
.account-actions { display: grid; gap: 14px; }
.account-actions > h2 { margin: 0; font-size: 17px; }
.account-action { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.account-action:last-of-type { border-bottom: 0; }
.account-action h3 { margin: 0; color: #344054; font-size: 14px; }
.account-action p,
.account-reauth-note { margin: 4px 0 10px; color: #667085; font-size: 13px; }
.account-action-danger h3 { color: #8f1d14; }
.account-danger-dialog { width: min(480px, calc(100% - 32px)); padding: 0; border: 1px solid #fecdca; border-radius: 10px; box-shadow: 0 24px 64px rgba(16, 24, 40, .24); }
.account-danger-dialog::backdrop { background: rgba(16, 24, 40, .48); }
.account-danger-dialog form { display: grid; gap: 14px; padding: 22px; }
.account-danger-dialog h2,
.account-danger-dialog p { margin: 0; }
.account-danger-dialog h2 { color: #7a271a; font-size: 18px; }
.account-danger-dialog p { color: #475467; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; }
.user-menu { position: relative; display: block; margin-left: auto; color: #60748f; font-weight: 600; }
.user-menu > summary { display: flex; min-height: 40px; align-items: center; gap: 5px; padding: 0 8px; border-radius: 7px; cursor: pointer; list-style: none; }
.user-menu > summary::-webkit-details-marker { display: none; }
.user-menu > summary::after { color: #60748f; content: "⌄"; font-size: 11px; }
.user-menu[open] > summary { color: #175cd3; background: #eff6ff; }
.user-menu[open] > summary::after { transform: rotate(180deg); }
.user-menu-panel { position: absolute; z-index: 90; top: calc(100% + 6px); right: 0; display: grid; min-width: 156px; padding: 6px; border: 1px solid var(--line-strong); border-radius: 9px; background: #fff; box-shadow: 0 14px 32px rgba(16, 24, 40, .14); }
.user-menu-panel a { min-height: 38px; padding: 0 10px; color: #475467; font-size: 13px; line-height: 38px; white-space: nowrap; }
.user-menu-panel a:hover { color: #175cd3; background: #eff6ff; }
.user-menu-panel .user-menu-logout { color: #b42318; }
.user-menu-panel .user-menu-logout:hover { color: #8f1d14; background: #fff7f6; }

@media (max-width: 1024px) {
  .header-inner { gap: 4px; }
  .top-nav { gap: 1px; margin-left: 12px; }
  .nav-link { padding: 0 6px; }
  .account-list-card .table-header { flex-wrap: wrap; }
  .account-list-card .table-header input { flex: 1 1 240px; }
}

@media (max-width: 1100px) {
  .research-workbench-layout {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(180px, 35%) minmax(0, 1fr);
  }
  .research-requirement-list { border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 720px) {
  .research-workbench-toolbar { align-items: end; flex-wrap: wrap; }
  .research-workbench-toolbar label:first-child { flex-basis: 100%; max-width: none; }
  .research-detail-base-fields,
  .research-requirement-group { grid-template-columns: 1fr; }
}

/* Task cycle dashboard */
.plan-view-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.plan-view-switcher,
.plan-cycle-tabs { display: flex; align-items: center; gap: 4px; }
.plan-view-switcher {
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.plan-view-switcher a,
.plan-cycle-tabs a {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border-radius: 6px;
  color: #475467;
  font-weight: 700;
}
.plan-view-switcher a:hover,
.plan-cycle-tabs a:hover { color: #175cd3; background: #eff6ff; }
.plan-view-switcher a[aria-current="page"],
.plan-cycle-tabs a[aria-current="page"] { color: #175cd3; background: #dbeafe; }

.plan-workspace[data-plan-view="dashboard"],
.plan-cycle-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 16px;
  align-items: start;
}
.plan-cycle-kpis {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.plan-cycle-kpis article {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(16, 24, 40, .03);
}
.plan-cycle-kpis span { display: block; color: var(--muted); font-size: 12px; font-weight: 700; }
.plan-cycle-kpis strong { display: block; margin-top: 6px; font-size: 24px; line-height: 1.25; }
.plan-cycle-kpis .metric-risk { color: var(--danger); }
.plan-cycle-tabs {
  grid-column: 1 / -1;
  min-width: 0;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}
.plan-cycle-tabs > span { margin-left: auto; padding: 0 8px; color: var(--muted); font-size: 12px; }

.plan-cycle-board {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  min-width: 0;
}
.plan-cycle-column {
  height: 560px;
  min-width: 0;
  overflow-y: auto;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #f8fafc;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.plan-cycle-column h2,
.plan-cycle-focus h2,
.plan-biweek h2 { margin: 0 0 10px; color: #344054; font-size: 14px; }
.plan-cycle-column h2 {
  position: sticky;
  z-index: 2;
  top: 0;
  margin: -12px -12px 0;
  padding: 12px 12px 10px;
  background: #f8fafc;
}
.plan-cycle-task {
  display: grid;
  min-width: 0;
  gap: 6px;
  margin-top: 8px;
  padding: 11px;
  border: 1px solid var(--line);
  border-left: 3px solid #98a2b3;
  border-radius: 7px;
  background: #fff;
}
.plan-cycle-task > a { min-width: 0; color: #175cd3; font-weight: 700; overflow-wrap: anywhere; }
.plan-cycle-task > a:last-child { color: #475467; font-size: 12px; font-weight: 600; }
.plan-cycle-task > span,
.plan-cycle-task > small { color: var(--muted); font-size: 12px; }
.plan-cycle-task.status-\672a\5f00\59cb { border-left-color: #98a2b3; }
.plan-cycle-task.status-\8fdb\884c\4e2d { border-left-color: var(--primary); }
.plan-cycle-task.status-\5df2\5b8c\6210 { border-left-color: var(--success); }
.plan-cycle-task.status-\5df2\6682\505c { border-left-color: var(--danger); }

.plan-cycle-sidebar,
.plan-cycle-focus {
  display: grid;
  grid-column: 2;
  align-content: start;
  gap: 16px;
}
.plan-cycle-focus > section {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}
.plan-cycle-focus a {
  display: block;
  padding: 7px 0;
  border-top: 1px solid #eef2f6;
  color: #175cd3;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.plan-cycle-focus h2 + a { border-top: 0; }
.plan-cycle-focus .empty,
.plan-cycle-column .empty,
.plan-biweek .empty,
.plan-timeline .empty { color: var(--muted); font-size: 12px; }

.plan-biweek {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 1fr;
  gap: 16px;
}
.plan-biweek-section { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.plan-biweek-section > header { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; border-bottom: 1px solid var(--line); background: #f8fafc; }
.plan-biweek-section > header h2 { margin: 0; }
.plan-biweek-section > header > span { color: var(--muted); font-size: 12px; }
.plan-biweek-table-wrap { min-width: 0; overflow-x: auto; }
.plan-biweek-table { width: 100%; min-width: 980px; border-collapse: collapse; table-layout: fixed; }
.plan-biweek-table th,
.plan-biweek-table td { padding: 10px 12px; border-bottom: 1px solid #eef2f6; text-align: left; vertical-align: middle; }
.plan-biweek-table tr:last-child td { border-bottom: 0; }
.plan-biweek-table th { color: #475467; background: #fff; font-size: 12px; font-weight: 700; }
.plan-biweek-table th:first-child { width: 28%; }
.plan-biweek-table th:nth-child(2),
.plan-biweek-table th:nth-child(3) { width: 10%; }
.plan-biweek-table th:nth-child(4) { width: 11%; }
.plan-biweek-table th:nth-child(5) { width: 17%; }
.plan-biweek-table th:nth-child(6),
.plan-biweek-table th:nth-child(7) { width: 12%; }
.plan-biweek-table td { color: #344054; font-size: 13px; }
.plan-biweek-table td:first-child > a { display: block; color: #175cd3; font-weight: 700; overflow-wrap: anywhere; }
.plan-biweek-table td:first-child small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.plan-biweek-table tr.is-overdue { background: #fff6f5; }
.plan-biweek-table tr.is-overdue:hover { background: #ffefed; }
.plan-date-overdue { color: var(--danger) !important; font-weight: 700; }
.plan-cross-week { color: #175cd3; font-weight: 700; }
.plan-deliverable { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow-wrap: anywhere; }
.plan-biweek-table .status { white-space: nowrap; }
.plan-timeline {
  grid-column: 1 / -1;
  min-width: 0;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}
.plan-timeline-grid,
.plan-timeline-header,
.plan-timeline-row { min-width: 920px; }
.plan-timeline-header,
.plan-timeline-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.6fr) repeat(14, minmax(52px, 1fr));
  align-items: center;
}
.plan-timeline-header { min-height: 40px; border-bottom: 1px solid var(--line); color: var(--muted); background: #f8fafc; font-size: 11px; font-weight: 700; text-align: center; }
.plan-timeline-header span:first-child { padding-left: 12px; text-align: left; }
.plan-timeline-row { position: relative; min-height: 48px; border-bottom: 1px solid #eef2f6; }
.plan-timeline-row:last-child { border-bottom: 0; }
.plan-timeline-row > a { min-width: 0; padding: 0 12px; color: #175cd3; font-weight: 700; overflow-wrap: anywhere; }
.plan-timeline-bar {
  z-index: 1;
  grid-column: var(--timeline-start) / span var(--timeline-span);
  grid-row: 1;
  min-width: 0;
  margin: 0 3px;
  padding: 4px 7px;
  overflow: hidden;
  border-radius: 5px;
  color: #fff;
  background: var(--primary);
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.plan-timeline-bar.status-\672a\5f00\59cb { color: #344054; background: #eaecf0; }
.plan-timeline-bar.status-\5df2\5b8c\6210 { background: var(--success); }
.plan-timeline-bar.status-\5df2\6682\505c { background: var(--danger); }

@media (max-width: 1100px) {
  .plan-workspace[data-plan-view="dashboard"],
  .plan-cycle-layout { grid-template-columns: 1fr; }
  .plan-cycle-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-cycle-column { height: 520px; }
  .plan-cycle-sidebar,
  .plan-cycle-focus { grid-column: 1; }
}

@media (max-width: 760px) {
  .plan-view-bar,
  .plan-cycle-tabs { align-items: stretch; flex-direction: column; }
  .plan-view-bar .button { width: 100%; }
  .plan-view-switcher { display: grid; grid-template-columns: 1fr 1fr; }
  .plan-cycle-tabs > span { margin-left: 0; text-align: center; }
  .plan-cycle-kpis,
  .plan-cycle-board,
  .plan-biweek { grid-template-columns: 1fr; }
  .plan-cycle-column { height: 480px; }
}

/* Process and research report workbench */
.process-stage-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.process-stage-card { display:grid; gap:8px; padding:16px; border:1px solid var(--line); border-radius:10px; background:#f8fbff; color:inherit; text-decoration:none; }
.process-stage-card:hover { border-color:var(--primary); background:#f4f8ff; }
.process-stage-card h2 { margin:0; font-size:18px; }
.process-stage-card p { margin:0; color:var(--muted); }
.research-workbench-entry { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:18px 0; padding:18px 20px; border-color:#cfe0ff; background:#f7faff; }
.research-workbench-entry h2 { margin:4px 0 6px; font-size:20px; }
.research-workbench-entry p { margin:0; color:#63728a; }
.research-entry-eyebrow { color:#1d5fd1; font-size:13px; font-weight:700; letter-spacing:.04em; }
.research-workbench-entry-actions { display:flex; gap:10px; flex-shrink:0; }
.research-report-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:20px; align-items:start; }
.research-report-layout aside { position:sticky; top:20px; }
.research-report-layout nav { display:grid; gap:6px; }
.research-report-layout nav a { padding:9px 10px; border-radius:8px; color:var(--text-secondary); }
.research-report-layout nav a:hover { background:#eef4ff; color:#155eef; }
.research-report-block { margin-bottom:18px; }
.attachment-dropzone { margin:12px 0; padding:18px; border:1px dashed #9bb9ee; border-radius:10px; background:#f8fbff; }
.attachment-dropzone input { display:block; margin-top:8px; }
.page-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.issue-report-generate-form { display:flex; align-items:center; gap:8px; margin:0; }
.issue-report-generate-form select { width:220px; min-height:var(--control-height); }
.issue-half-wide { grid-column:span 2; }
@media (min-width:961px) {
  .issue-description-field { grid-column:1/span 2; }
  .issue-resolution-field { grid-column:3/span 2; }
}
.issue-detail-table { border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; }
.issue-detail-table-heading { display:flex; min-height:52px; align-items:center; justify-content:space-between; gap:16px; padding:10px 12px; border-bottom:1px solid var(--line); background:#f8fafc; }
.issue-detail-table-heading h3 { margin:0; color:#344054; font-size:14px; }
.issue-detail-table-heading p { margin:3px 0 0; color:#667085; font-size:12px; }
.issue-detail-table table { width:100%; table-layout:fixed; }
.issue-detail-table th,.issue-detail-table td { padding:8px 10px; border-bottom:1px solid #edf1f6; }
.issue-detail-table tbody tr:last-child td { border-bottom:0; }
.issue-detail-table input { width:100%; min-height:36px; }
.issue-date-column { width:170px; }
.issue-row-action-column { width:92px; }
.button-danger-subtle { border-color:#fecdca; color:#b42318; background:#fff; }
.issue-attachment-field { display:grid; gap:8px; }
.issue-attachment-field > label:first-child { color:#475467; font-size:12px; font-weight:700; }
.issue-attachment-field .attachment-dropzone { display:grid; gap:4px; margin:0; }
.issue-attachment-field .attachment-dropzone span { color:#667085; font-size:12px; }
.issue-attachment-note { margin-top:2px; }
.issue-report-filters { grid-template-columns:minmax(260px,1fr) 220px auto; }
.issue-report-table-card table { min-width:980px; }
.issue-report-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.issue-report-detail-section { margin-top:16px; padding:20px 22px; }
.issue-report-detail-section > h2 { margin:0 0 14px; font-size:17px; }
.issue-report-entry { margin-top:10px; padding:13px 15px; border-left:3px solid #2f6feb; border-radius:0 7px 7px 0; background:#f8fbff; }
.issue-report-entry h3 { margin:0 0 7px; font-size:14px; }
.issue-report-entry h3 span { color:#175cd3; }
.issue-report-entry p { margin:4px 0; color:#475467; font-size:13px; }
.issue-report-entry.issue-report-risk { border-left-color:#f79009; background:#fffaeb; }
.issue-next-plan { color:#175cd3 !important; }
@media (max-width:900px) { .page-heading-actions,.issue-report-generate-form { flex-wrap:wrap; justify-content:flex-start; } .issue-half-wide { grid-column:1/-1; } .issue-report-summary { grid-template-columns:1fr 1fr; } }
.card-subtle { padding:14px; border:1px solid var(--border-color,#dce3ee); border-radius:10px; margin:10px 0; }
.template-block-row { display:grid; grid-template-columns:minmax(110px,1fr) minmax(160px,1.4fr) 120px minmax(160px,1.3fr) auto auto; gap:10px; align-items:center; margin:10px 0; }
.template-block-row .inline-check input { accent-color:var(--primary); }
.template-history-card + .template-history-card { margin-top:16px; }
.report-text-preview { min-height:180px; padding:16px; border:1px solid var(--line); border-radius:8px; color:var(--muted); background:#f8fafc; }
.template-preview-page { width:min(1180px,100%); margin:0 auto; }
.template-preview-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin:12px 0 26px; }
.template-preview-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.template-preview-title-row h1 { margin:0; color:#172033; font-size:30px; line-height:1.3; letter-spacing:-.025em; }
.template-preview-header p { margin:8px 0 0; color:#667085; font-size:14px; }
.template-preview-version,.template-preview-type,.template-preview-required { display:inline-flex; align-items:center; min-height:24px; padding:2px 9px; border-radius:999px; font-size:12px; font-weight:700; }
.template-preview-version { color:#175cd3; background:#eff6ff; }
.template-preview-layout { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:start; gap:20px; }
.template-preview-sidebar { position:sticky; top:20px; overflow:hidden; border:1px solid #dfe5ee; border-radius:12px; background:#fff; box-shadow:0 1px 2px rgba(16,24,40,.03); }
.template-preview-sidebar-heading { display:grid; gap:4px; padding:16px; border-bottom:1px solid #e7ebf0; background:#fbfcfe; }
.template-preview-sidebar-heading div { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.template-preview-sidebar-heading span { color:#667085; font-size:12px; }
.template-preview-sidebar-heading strong { color:#172033; font-size:15px; }
.template-preview-sidebar-heading small { color:#98a2b3; font-size:11px; }
.template-preview-directory { display:grid; gap:4px; padding:8px; }
.template-preview-directory a { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:center; gap:8px; min-height:42px; padding:6px 8px; border-radius:8px; color:#475467; text-decoration:none; }
.template-preview-directory a:hover { color:#175cd3; background:#f2f6ff; }
.template-preview-directory a:focus-visible { outline:2px solid #2563eb; outline-offset:2px; }
.template-preview-directory a > span { display:grid; width:26px; height:26px; place-items:center; border-radius:7px; color:#667085; background:#f2f4f7; font-size:11px; font-weight:700; }
.template-preview-directory a:hover > span { color:#175cd3; background:#e9f1ff; }
.template-preview-directory a strong { min-width:0; overflow:hidden; font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.template-preview-directory > p { margin:8px; color:#98a2b3; font-size:12px; text-align:center; }
.template-preview-canvas { display:grid; gap:16px; min-width:0; }
.template-preview-block { scroll-margin-top:20px; overflow:hidden; border:1px solid #dfe5ee; border-radius:12px; background:#fff; box-shadow:0 2px 8px rgba(16,24,40,.035); }
.template-preview-block-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 18px; border-bottom:1px solid #e7ebf0; }
.template-preview-block-title { display:flex; align-items:center; gap:11px; min-width:0; }
.template-preview-block-title > span { display:grid; flex:0 0 32px; width:32px; height:32px; place-items:center; border-radius:8px; color:#175cd3; background:#edf4ff; font-size:12px; font-weight:800; }
.template-preview-block-title h2 { margin:0; color:#172033; font-size:16px; line-height:1.35; }
.template-preview-block-title p { margin:2px 0 0; color:#98a2b3; font-size:11px; }
.template-preview-block-tags { display:flex; align-items:center; gap:7px; flex-shrink:0; }
.template-preview-type { color:#344054; background:#f2f4f7; }
.template-preview-required { color:#b42318; background:#fef3f2; }
.template-preview-block-body { padding:18px; }
.template-preview-text { min-height:132px; padding:20px; border:1px solid #e2e8f0; border-radius:9px; color:#667085; background:#fafbfc; }
.template-preview-text > span { color:#344054; font-size:14px; font-weight:700; }
.template-preview-text p { margin:8px 0 0; font-size:13px; }
.template-preview-rich-text { overflow:hidden; min-height:180px; border:1px solid #e2e8f0; border-radius:9px; background:#fff; }
.template-preview-toolbar { display:flex; align-items:center; gap:15px; min-height:40px; padding:0 14px; border-bottom:1px solid #e7ebf0; color:#667085; background:#fafbfc; font-size:12px; }
.template-preview-toolbar span:first-child { padding-right:14px; border-right:1px solid #dfe5ee; }
.template-preview-document { padding:22px 24px; }
.template-preview-document strong { color:#344054; font-size:15px; }
.template-preview-document p { margin:9px 0 0; color:#98a2b3; font-size:13px; }
.template-preview-table-wrap { overflow-x:auto; border:1px solid #e2e8f0; border-radius:9px; }
.template-preview-table-wrap table { width:100%; border-collapse:collapse; }
.template-preview-table-wrap th { padding:11px 14px; color:#475467; background:#f7f9fc; font-size:12px; text-align:left; }
.template-preview-table-wrap td { height:66px; padding:12px 14px; border-top:1px solid #e7ebf0; }
.template-preview-table-wrap td span { display:inline-block; width:70%; height:9px; overflow:hidden; border-radius:99px; color:transparent; background:#eef1f5; }
.template-preview-attachment { display:grid; min-height:150px; padding:24px; place-items:center; align-content:center; border:1px dashed #a9c5f4; border-radius:9px; color:#475467; background:#f8fbff; text-align:center; }
.template-preview-upload-icon { display:grid; width:38px; height:38px; margin-bottom:9px; place-items:center; border-radius:10px; color:#175cd3; background:#eaf2ff; font-size:22px; font-weight:700; }
.template-preview-attachment strong { color:#344054; font-size:14px; }
.template-preview-attachment p { margin:6px 0 0; color:#667085; font-size:12px; }
.template-preview-attachment small { margin-top:9px; color:#98a2b3; font-size:11px; }
.template-preview-empty { display:grid; min-height:260px; padding:36px; place-items:center; align-content:center; border:1px dashed #cbd5e1; border-radius:12px; color:#667085; background:#fff; text-align:center; }
.template-preview-empty > span { color:#98a2b3; font-size:34px; }
.template-preview-empty strong { margin-top:8px; color:#344054; }
.template-preview-empty p { margin:5px 0 0; font-size:12px; }
.save-status { color:var(--muted); font-size:13px; }
[data-report-readonly] textarea,
[data-report-readonly] input[readonly] { color:#344054; background:#f2f4f7; }
.table-actions-column { width:96px; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.detail-grid > div { display:grid; align-content:start; gap:5px; }
.detail-grid span { color:var(--muted); font-size:13px; }
.detail-grid strong { color:var(--text); }
.detail-grid p { margin:0; white-space:pre-wrap; }
.compact-list { margin:10px 0 0; padding-left:18px; }
@media (max-width:1100px) { .template-block-row { grid-template-columns:1fr 1fr; } .template-block-row .row-actions { justify-content:flex-start; } }
@media (max-width:900px) { .research-report-layout,.template-preview-layout { grid-template-columns:1fr; } .research-report-layout aside,.template-preview-sidebar { position:static; } .template-preview-directory { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) { .research-workbench-entry { align-items:flex-start; flex-direction:column; } .research-workbench-entry-actions { width:100%; } }
@media (max-width:720px) { .detail-grid,.template-block-row { grid-template-columns:1fr; } .template-preview-header,.template-preview-block-header { align-items:flex-start; flex-direction:column; } .template-preview-header .button { width:100%; } .template-preview-directory { grid-template-columns:1fr; } .template-preview-title-row h1 { font-size:25px; } }

/* Process and research workspace */
.process-page,
.research-form-page {
  --process-accent: #2563eb;
  --process-accent-strong: #1d4ed8;
  --process-ink: #172033;
  --process-muted: #667085;
  --process-border: #dfe5ee;
  --process-soft: #f7f9fc;
}
.process-page { display: grid; gap: 18px; }
.process-page-header,
.research-form-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.process-page-header h1,
.research-form-header h1 {
  margin: 0;
  color: var(--process-ink);
  font-size: 30px;
  line-height: 1.25;
  letter-spacing: -.025em;
}
.process-page-header p,
.research-form-header p {
  max-width: 720px;
  margin: 7px 0 0;
  color: var(--process-muted);
  font-size: 14px;
}
.process-page .button-primary,
.research-form-page .button-primary {
  border-color: var(--process-accent);
  color: #fff;
  background: var(--process-accent);
}
.process-page .button-primary:hover,
.research-form-page .button-primary:hover {
  border-color: var(--process-accent-strong);
  color: #fff;
  background: var(--process-accent-strong);
}
.process-context {
  overflow: hidden;
  border: 1px solid var(--process-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(16, 24, 40, .04);
}
.process-project-picker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--process-border);
}
.process-project-picker > label {
  color: #344054;
  font-size: 13px;
}
.process-project-control { display: flex; width: min(480px, 55vw); gap: 8px; }
.process-project-control select { min-height: 38px; font-size: 14px; font-weight: 650; }
.process-stage-tabs {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  padding: 0 12px;
  scrollbar-width: thin;
}
.process-stage-tab {
  position: relative;
  display: inline-flex;
  min-height: 48px;
  flex: 0 0 auto;
  align-items: center;
  padding: 0 16px;
  color: #596579;
  font-size: 14px;
  font-weight: 650;
}
.process-stage-tab::after {
  position: absolute;
  right: 16px;
  bottom: 0;
  left: 16px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: transparent;
  content: "";
}
.process-stage-tab:hover { color: var(--process-accent); background: #f8fbff; }
.process-stage-tab.is-active { color: var(--process-accent-strong); }
.process-stage-tab.is-active::after { background: var(--process-accent); }
.process-research-section {
  padding: 18px;
  border: 1px solid var(--process-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(16, 24, 40, .04);
}
.process-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.process-section-heading h2 { margin: 0; color: var(--process-ink); font-size: 18px; }
.process-section-heading p { margin: 3px 0 0; color: var(--process-muted); font-size: 12px; }
.research-hierarchy-grid {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(340px, 1.05fr) minmax(340px, 1.05fr);
  gap: 12px;
  align-items: stretch;
}
.research-hierarchy-column {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--process-border);
  border-radius: 10px;
  background: var(--process-soft);
}
.research-column-header {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  border-bottom: 1px solid var(--process-border);
  background: #fff;
}
.research-column-header > div { display: flex; min-width: 0; align-items: center; gap: 9px; }
.research-column-header h3 { margin: 0; color: var(--process-ink); font-size: 15px; }
.research-column-step {
  color: #7b8ba5;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
}
.research-column-count {
  display: inline-grid;
  min-width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 12px;
  color: #475467;
  background: #eef2f7;
  font-size: 11px;
  font-weight: 750;
}
.research-header-create {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid #b9cef4;
  border-radius: 6px;
  color: #175cd3;
  background: #f7faff;
  font-size: 11px;
  font-weight: 750;
}
.research-header-create:hover { border-color: var(--process-accent); background: #edf4ff; }
.research-header-create.is-disabled { border-color: #e4e7ec; color: #98a2b3; background: #f9fafb; cursor: not-allowed; }
.research-column-body {
  display: grid;
  max-height: 560px;
  align-content: start;
  gap: 8px;
  overflow-y: auto;
  padding: 10px;
}
.research-column-create {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  border: 1px dashed #9bb9ee;
  border-radius: 8px;
  color: #175cd3;
  background: #f7faff;
  font-size: 12px;
  font-weight: 750;
}
.research-column-create:hover { border-color: var(--process-accent); background: #edf4ff; }
.research-workbench-card {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 8px;
  padding: 13px;
  border: 1px solid #e1e7ef;
  border-radius: 8px;
  color: var(--process-ink);
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .025);
}
.research-workbench-card:hover { border-color: #a9c4f5; box-shadow: 0 4px 12px rgba(37, 99, 235, .07); }
.research-workbench-card.is-selected {
  padding-left: 16px;
  border-color: #8eb5f7;
  background: #f3f7ff;
  box-shadow: inset 3px 0 0 var(--process-accent);
}
.research-workbench-card.is-selected::after {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--process-accent);
  content: "";
}
.research-card-title-row { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 10px; padding-right: 8px; }
.research-card-title-row strong { min-width: 0; overflow: hidden; color: #172033; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.research-card-title-row .status { flex: 0 0 auto; padding: 2px 7px; font-size: 10px; }
.research-workbench-card > p {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: #667085;
  font-size: 12px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.research-card-meta { display: grid; gap: 5px; margin: 0; }
.research-card-meta > div { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 8px; align-items: baseline; }
.research-card-meta dt { color: #8a95a6; font-size: 10px; }
.research-card-meta dd { min-width: 0; overflow: hidden; margin: 0; color: #475467; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.research-workbench-card footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #7b8799; font-size: 11px; }
.research-plan-window { align-items: flex-start !important; flex-direction: column; gap: 2px !important; }
.research-column-empty { display: grid; justify-items: start; gap: 7px; padding: 30px 18px; color: #667085; text-align: left; }
.research-column-empty strong { color: #344054; font-size: 13px; }
.research-column-empty p { margin: 0; font-size: 12px; line-height: 1.6; }

/* Research create and edit forms */
.research-form-page { width: min(100%, 1040px); margin: 0 auto; }
.research-breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: #778397; font-size: 12px; }
.research-breadcrumb a:hover { color: var(--process-accent); }
.research-form-header { margin-bottom: 18px; }
.research-entity-form { display: grid; gap: 14px; }
.research-form-section { padding: 20px 22px 22px; }
.research-form-section-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e8ecf2;
}
.research-form-section-heading > span {
  display: inline-grid;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  place-items: center;
  border-radius: 7px;
  color: #175cd3;
  background: #edf4ff;
  font-size: 11px;
  font-weight: 800;
}
.research-form-section-heading h2 { margin: 1px 0 0; color: var(--process-ink); font-size: 16px; }
.research-form-section-heading p { margin: 3px 0 0; color: var(--process-muted); font-size: 12px; font-weight: 400; }
.research-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.research-form-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.research-form-grid-single { grid-template-columns: 1fr; }
.research-form-grid label { align-content: start; gap: 6px; color: #475467; font-size: 12px; }
.field-error { display: block; color: #b42318; font-size: 11px; font-weight: 600; }
.research-form-grid [aria-invalid="true"] { border-color: #f04438; box-shadow: 0 0 0 2px rgba(240, 68, 56, .08); }

/* Research report template management */
.template-management-page { --template-border: #dfe5ee; display: grid; gap: 16px; }
.template-management-header,
.template-version-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.template-management-header h1 { margin: 0; color: #172033; font-size: 28px; }
.template-management-header p { margin: 6px 0 0; color: #667085; font-size: 13px; }
.template-management-layout { display: grid; min-height: 620px; grid-template-columns: minmax(280px, .72fr) minmax(520px, 1.55fr); overflow: hidden; border: 1px solid var(--template-border); border-radius: 12px; background: #fff; box-shadow: 0 4px 16px rgba(16, 24, 40, .04); }
.template-list-pane { border-right: 1px solid var(--template-border); background: #f8fafc; }
.template-pane-heading { display: flex; min-height: 54px; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--template-border); background: #fff; }
.template-pane-heading h2 { margin: 0; font-size: 14px; }
.template-pane-heading > span { color: #667085; font-size: 12px; }
.template-list-nav { display: grid; align-content: start; }
.template-list-item { display: grid; gap: 5px; padding: 16px; border-bottom: 1px solid #e8ecf2; color: #344054; }
.template-list-item:hover { background: #f1f6ff; }
.template-list-item.is-selected { padding-left: 19px; color: #175cd3; background: #edf4ff; box-shadow: inset 3px 0 0 #2563eb; }
.template-list-item strong { font-size: 13px; }
.template-list-item span { overflow: hidden; color: #667085; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.template-list-item small { color: #8290a5; font-size: 10px; }
.template-version-pane { display: grid; align-content: start; gap: 16px; padding: 20px; }
.template-version-title { padding-bottom: 16px; border-bottom: 1px solid var(--template-border); }
.template-version-title p { margin: 0 0 4px; color: #667085; font-size: 11px; }
.template-version-title h2 { margin: 0; font-size: 20px; }
.template-current-version { display: grid; gap: 16px; padding: 20px; border: 1px solid #b9cef4; border-radius: 10px; background: #f7faff; }
.template-version-label { display: flex; align-items: center; justify-content: space-between; color: #667085; font-size: 12px; }
.template-current-version > strong { color: #172033; font-size: 32px; }
.template-current-version dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; margin: 0; }
.template-current-version dl > div:last-child { grid-column: 1 / -1; }
.template-current-version dt { color: #8290a5; font-size: 11px; }
.template-current-version dd { margin: 4px 0 0; color: #344054; font-size: 12px; }
.template-version-history { overflow: hidden; border: 1px solid var(--template-border); border-radius: 10px; }
.template-version-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) 150px auto; gap: 14px; align-items: center; padding: 14px 16px; border-bottom: 1px solid #edf0f4; }
.template-version-row:last-child { border-bottom: 0; }
.template-version-row > div { display: flex; align-items: center; gap: 8px; }
.template-version-row p { margin: 0; color: #667085; font-size: 12px; }
.template-version-row small { color: #8290a5; font-size: 11px; }
.template-pane-empty { padding: 36px 20px; color: #8290a5; font-size: 12px; text-align: center; }

/* Continuous research report editor */
.report-editor-page { --report-border: #dfe5ee; display: grid; gap: 14px; }
.report-editor-header { position: sticky; z-index: 12; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 16px; border: 1px solid var(--report-border); border-radius: 10px; background: rgba(255, 255, 255, .96); box-shadow: 0 4px 14px rgba(16, 24, 40, .06); backdrop-filter: blur(10px); }
.report-editor-title-row { display: flex; align-items: center; gap: 10px; }
.report-editor-title-row h1 { margin: 0; color: #172033; font-size: 24px; }
.report-editor-header p { margin: 5px 0 0; color: #667085; font-size: 11px; }
.report-editor-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.report-editor-actions form { margin: 0; }
.report-editor-shell { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 14px; align-items: start; }
.report-outline { position: sticky; top: 92px; overflow: hidden; border: 1px solid var(--report-border); border-radius: 10px; background: #fff; }
.report-outline h2 { margin: 0; padding: 15px 16px; border-bottom: 1px solid var(--report-border); color: #344054; font-size: 13px; }
.report-outline nav { display: grid; padding: 8px 0; }
.report-outline a { display: flex; gap: 9px; align-items: center; padding: 10px 14px; color: #596579; font-size: 12px; }
.report-outline a:hover { color: #175cd3; background: #f1f6ff; }
.report-outline a span { display: inline-grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; border-radius: 6px; color: #175cd3; background: #edf4ff; font-size: 10px; font-weight: 800; }
.report-outline a em { color: #d92d20; font-style: normal; }
.report-document { min-width: 0; overflow: hidden; border: 1px solid var(--report-border); border-radius: 10px; background: #fff; }
.report-document-section { min-width: 0; padding: 22px; border-bottom: 1px solid var(--report-border); scroll-margin-top: 96px; }
.report-document-section:last-child { border-bottom: 0; }
.report-document-section > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.report-document-section > header > div { display: flex; align-items: center; gap: 9px; }
.report-document-section > header > div > span { color: #2563eb; font-size: 11px; font-weight: 800; }
.report-document-section h2 { margin: 0; color: #172033; font-size: 18px; }
.report-document-section header small { padding: 2px 6px; border-radius: 4px; color: #b42318; background: #fef3f2; font-size: 10px; }
.report-block-type { color: #667085; font-size: 11px; }
.report-long-text { min-height: 320px; padding: 16px; border-color: #d5dce6; font-size: 14px; line-height: 1.8; resize: vertical; }
.report-long-text:focus { border-color: #7ba6f4; box-shadow: 0 0 0 3px rgba(37, 99, 235, .09); }
.report-inline-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 10px; }
.report-inline-actions .save-status { margin-right: auto; }
.report-table-scroll { max-width: 100%; overflow: auto; border: 1px solid var(--report-border); border-radius: 8px; }
.report-table-scroll table { min-width: 680px; }
.report-table-scroll input { min-width: 150px; border: 0; border-radius: 0; background: transparent; }
.report-upload-zone { display: grid; min-height: 150px; place-items: center; align-content: center; gap: 8px; padding: 24px; border: 1px dashed #9bb9ee; border-radius: 9px; color: #175cd3; background: #f8fbff; font-size: 13px; text-align: center; cursor: pointer; }
.report-upload-zone:hover { border-color: #2563eb; background: #f1f6ff; }
.report-upload-zone input { max-width: 360px; }
.report-upload-zone small { color: #7b8799; font-size: 11px; }
.report-upload-zone.is-readonly { color: #667085; cursor: default; }
.report-attachment-list { display: grid; gap: 8px; }
.report-attachment-list .attachment-row { display: grid; grid-template-columns: minmax(0, 1fr) 100px auto; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid #e8ecf2; border-radius: 7px; }
.report-attachment-list .attachment-row > span { color: #8290a5; font-size: 11px; }
.report-empty { margin: 0; color: #8290a5; font-size: 12px; }
[data-report-readonly] .report-long-text { color: #344054; background: #f8fafc; }

@media (max-width: 900px) {
  .template-management-layout { grid-template-columns: 1fr; }
  .template-list-pane { border-right: 0; border-bottom: 1px solid var(--template-border); }
  .template-list-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-editor-shell { grid-template-columns: 1fr; }
  .report-outline { position: static; }
  .report-outline nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .template-management-header,
  .template-version-title,
  .report-editor-header { align-items: stretch; flex-direction: column; }
  .template-list-nav,
  .template-current-version dl,
  .report-outline nav { grid-template-columns: 1fr; }
  .template-current-version dl > div:last-child { grid-column: auto; }
  .template-version-row { grid-template-columns: 1fr; }
  .report-editor-actions { flex-wrap: wrap; }
  .report-document-section { padding: 16px; }
}
.research-form-grid input,
.research-form-grid select { min-height: 40px; padding: 7px 11px; font-size: 13px; }
.research-form-grid textarea { min-height: 136px; padding: 10px 12px; font-size: 13px; }
.research-form-long-field { grid-column: 1 / -1; }
.research-optional { margin-left: 6px; color: #98a2b3; font-size: 11px; font-weight: 500; }
.research-form-actions {
  display: flex;
  min-height: 64px;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 18px;
  border: 1px solid var(--process-border);
  border-radius: 10px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 -4px 16px rgba(16, 24, 40, .04);
}
.research-form-actions .button { min-width: 84px; min-height: 38px; }

/* Research and plan detail pages */
.research-detail-page {
  --process-accent: #2563eb;
  --process-accent-strong: #1d4ed8;
  --process-ink: #172033;
  --process-muted: #667085;
  --process-border: #dfe5ee;
  display: grid;
  width: min(100%, 1120px);
  gap: 16px;
  margin: 0 auto;
}
.research-detail-page .button-primary { border-color: var(--process-accent); color: #fff; background: var(--process-accent); }
.research-detail-page .button-primary:hover { border-color: var(--process-accent-strong); color: #fff; background: var(--process-accent-strong); }
.research-detail-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.research-detail-title-row { display: flex; align-items: center; gap: 12px; }
.research-detail-title-row h1 { margin: 0; color: var(--process-ink); font-size: 28px; line-height: 1.3; letter-spacing: -.02em; }
.research-detail-header p { margin: 6px 0 0; color: var(--process-muted); font-size: 13px; }
.research-detail-summary,
.research-plan-summary { display: grid; gap: 0; overflow: hidden; }
.research-detail-summary { grid-template-columns: 1fr 1fr; }
.research-detail-summary > div,
.research-plan-summary > div { min-width: 0; padding: 18px 20px; }
.research-detail-summary > div + div { border-left: 1px solid var(--process-border); }
.research-detail-summary span,
.research-plan-summary span { display: block; margin-bottom: 6px; color: #778397; font-size: 11px; font-weight: 750; }
.research-detail-summary p,
.research-plan-summary p { margin: 0; color: #344054; line-height: 1.7; white-space: pre-wrap; }
.research-plan-summary { grid-template-columns: 1fr 1fr; }
.research-plan-summary-time:first-child { border-right: 1px solid var(--process-border); }
.research-plan-summary-time { border-bottom: 1px solid var(--process-border); background: #fbfcfe; }
.research-plan-summary-time strong { color: var(--process-ink); font-size: 15px; }
.research-plan-summary-long { grid-column: 1 / -1; }
.research-plan-summary-long + .research-plan-summary-long { border-top: 1px solid var(--process-border); }
.research-plan-list {
  overflow: hidden;
  border: 1px solid var(--process-border);
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(16, 24, 40, .035);
}
.research-detail-section-heading {
  display: flex;
  min-height: 60px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--process-border);
}
.research-detail-section-heading h2 { margin: 0; color: var(--process-ink); font-size: 16px; }
.research-detail-section-heading p { margin: 2px 0 0; color: var(--process-muted); font-size: 11px; }
.research-detail-section-heading > a { color: #175cd3; font-size: 12px; font-weight: 700; }
.research-detail-list { display: grid; }
.research-detail-list-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid #edf0f4;
}
.research-detail-list-row:last-child { border-bottom: 0; }
.research-detail-list-row:hover { background: #f8fbff; }
.research-detail-list-main { display: grid; min-width: 0; gap: 4px; }
.research-detail-list-main > div { display: flex; min-width: 0; align-items: center; gap: 9px; }
.research-detail-list-main strong { overflow: hidden; color: var(--process-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.research-detail-list-main p { margin: 0; color: #667085; font-size: 12px; }
.research-detail-list-main small { color: #8a95a6; font-size: 11px; }
.research-detail-list-meta { display: flex; align-items: center; gap: 12px; color: #778397; font-size: 11px; }
.research-report-list-row { color: inherit; }
.research-detail-arrow { color: #7b8ba5; font-size: 18px; }
.research-detail-empty { padding: 38px 20px; text-align: center; }
.research-detail-empty strong { color: #344054; }
.research-detail-empty p { margin: 5px 0 0; color: #7b8799; font-size: 12px; }

@media (max-width: 900px) {
  .research-hierarchy-grid { grid-template-columns: 1fr; }
  .research-column-body { max-height: 420px; }
  .research-form-grid-three { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .process-page-header,
  .research-form-header,
  .process-section-heading { align-items: stretch; flex-direction: column; }
  .process-project-picker { align-items: stretch; flex-direction: column; gap: 8px; }
  .process-project-control { width: 100%; }
  .process-stage-tabs { padding: 0 6px; }
  .process-stage-tab { padding: 0 12px; }
  .process-research-section { padding: 12px; }
  .research-form-section { padding: 17px 16px 18px; }
  .research-form-grid,
  .research-form-grid-three { grid-template-columns: 1fr; }
  .research-form-actions { position: static; }
  .research-detail-header { align-items: stretch; flex-direction: column; }
  .research-detail-header .page-actions { width: 100%; }
  .research-detail-summary,
  .research-plan-summary { grid-template-columns: 1fr; }
  .research-detail-summary > div + div,
  .research-plan-summary-time:first-child { border-top: 1px solid var(--process-border); border-left: 0; border-right: 0; }
  .research-plan-summary-long { grid-column: auto; }
  .research-detail-list-row { grid-template-columns: 1fr; gap: 10px; }
  .research-detail-list-meta { justify-content: space-between; }
}

/* Final cascade for the independent research screens. */
.research-page-header .button-primary,
.research-list-page .button-primary {
  border-color: #2468df;
  color: #fff;
  background: #2468df;
  box-shadow: 0 2px 6px rgba(36, 104, 223, .18);
}
.research-page-header .button-primary:hover,
.research-list-page .button-primary:hover { border-color:#1d56bd; color:#fff; background:#1d56bd; }
@media (min-width:561px) and (max-width:640px) {
  .research-form-page .research-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .research-form-page .research-form-grid-single { grid-template-columns:1fr; }
  .research-form-page .research-form-long-field { grid-column:1 / -1; }
}
@media (max-width:560px) {
  .research-form-page .research-form-grid { grid-template-columns:1fr; }
  .research-form-page .research-form-long-field { grid-column:auto; }
}

/* Drag-and-drop report template builder. */
.template-builder-section { padding-bottom:0; }
.template-builder-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:18px; margin-top:18px; }
.template-control-palette { align-self:start; padding:14px; border:1px solid #dce4ef; border-radius:12px; background:#f8fafc; }
.template-palette-heading,.template-canvas-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.template-palette-heading { padding:2px 2px 12px; }
.template-palette-heading h3,.template-canvas-heading h3 { margin:0; color:#172033; font-size:14px; }
.template-palette-heading span,.template-canvas-heading span { color:#7b8798; font-size:11px; }
.template-palette-item { display:grid; width:100%; grid-template-columns:36px minmax(0,1fr) 20px; align-items:center; gap:10px; margin-top:8px; padding:11px; border:1px solid #dce4ef; border-radius:9px; color:#253044; background:#fff; text-align:left; cursor:grab; transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.template-palette-item:hover { border-color:#8bb4f8; box-shadow:0 4px 12px rgba(37,99,235,.08); transform:translateY(-1px); }
.template-palette-item:active { cursor:grabbing; }
.template-palette-item > span:nth-child(2) { display:grid; gap:3px; }
.template-palette-item strong { font-size:12px; }
.template-palette-item small { overflow:hidden; color:#7b8798; font-size:10px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.template-palette-item em { color:#2468df; font-size:17px; font-style:normal; }
.template-control-icon { display:inline-grid; width:32px; height:32px; place-items:center; border-radius:8px; color:#1d5fd1; background:#eaf2ff; font-size:12px; font-weight:800; }
.template-palette-tip { margin:13px 2px 0; color:#8993a3; font-size:10px; line-height:1.55; }
.template-canvas-panel { min-width:0; }
.template-canvas-heading { min-height:46px; padding:0 2px 10px; }
.template-canvas-heading > div { display:grid; gap:4px; }
.template-canvas-heading p { margin:0; color:#7b8798; font-size:10px; }
.template-canvas { min-height:300px; padding:12px; border:1px dashed #c9d4e3; border-radius:12px; background:#f8fafc; transition:border-color .16s ease,background .16s ease; }
.template-canvas.is-drag-target { border-color:#4f87e8; background:#f3f7ff; box-shadow:inset 0 0 0 2px rgba(37,99,235,.08); }
.template-canvas-empty { display:grid; min-height:274px; place-content:center; justify-items:center; gap:8px; color:#8290a4; text-align:center; }
.template-canvas-empty[hidden] { display:none; }
.template-canvas-empty > span { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; color:#2468df; background:#eaf2ff; font-size:22px; }
.template-canvas-empty strong { color:#4a5870; font-size:13px; }
.template-canvas-empty small { font-size:10px; }
.template-control-card { position:relative; display:grid; grid-template-columns:30px minmax(0,1fr); align-items:start; gap:10px; padding:14px; border:1px solid #dce4ef; border-radius:10px; background:#fff; box-shadow:0 2px 7px rgba(16,24,40,.035); }
.template-control-card.is-new { animation:template-card-in .18s ease-out; }
.template-control-card.is-dragging { opacity:.45; }
.template-control-card.is-drop-before::before,.template-control-card.is-drop-after::after { position:absolute; right:0; left:0; height:3px; border-radius:999px; background:#2468df; content:""; }
.template-control-card.is-drop-before::before { top:-8px; }
.template-control-card.is-drop-after::after { bottom:-8px; }
.template-control-drag { display:grid; width:28px; height:40px; place-items:center; padding:0; border:0; border-radius:6px; color:#9aa5b4; background:transparent; cursor:grab; font-size:17px; }
.template-control-drag:hover,.template-control-drag:focus-visible { color:#2468df; background:#eef4ff; }
.template-control-card-body { min-width:0; }
.template-control-card-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.template-control-card-header > div:first-child { display:flex; align-items:center; gap:10px; }
.template-control-card-header strong,.template-control-card-header small { display:block; }
.template-control-card-header strong { color:#202b3e; font-size:13px; }
.template-control-card-header small { margin-top:2px; color:#8490a1; font-size:10px; }
.template-control-actions { display:flex; align-items:center; gap:6px; }
.template-control-actions .inline-check { margin-right:3px; color:#667085; font-size:11px; }
.template-icon-button { min-width:30px; min-height:30px; padding:4px 8px; border:1px solid #d6deea; border-radius:7px; color:#4c5a70; background:#fff; cursor:pointer; font-size:11px; }
.template-icon-button:hover { border-color:#9bbbf2; color:#175cd3; background:#f7faff; }
.template-icon-button.is-danger { color:#b42318; }
.template-icon-button.is-danger:hover { border-color:#f3b5b0; background:#fff7f6; }
.template-control-config { display:grid; grid-template-columns:minmax(180px,.75fr) minmax(260px,1.25fr); gap:12px; margin-top:13px; }
.template-control-config label { display:grid; gap:5px; color:#667085; font-size:10px; font-weight:700; }
.template-control-config input { width:100%; min-height:36px; padding:7px 9px; border:1px solid #d3dbe7; border-radius:7px; background:#fff; }
.template-control-config label[hidden] { display:none; }
.template-control-preview { margin-top:12px; overflow:hidden; border:1px solid #e2e7ef; border-radius:8px; color:#9aa5b4; background:#fbfcfe; }
.template-text-preview { min-height:54px; padding:12px; font-size:11px; }
.template-rich-preview > span { display:flex; gap:16px; padding:7px 11px; border-bottom:1px solid #e2e7ef; color:#59677b; font-size:11px; }
.template-rich-preview > span em { font-style:normal; }
.template-rich-preview p { min-height:45px; margin:0; padding:11px; font-size:11px; }
.template-table-preview { display:grid; grid-template-columns:repeat(3,1fr); }
.template-table-preview span { padding:9px 10px; border-right:1px solid #e2e7ef; color:#68768a; background:#f4f6f9; font-size:10px; font-weight:700; }
.template-table-preview span:last-child { border-right:0; }
.template-attachment-preview { display:flex; min-height:56px; align-items:center; justify-content:center; gap:8px; border:1px dashed #cfdae8; margin:8px; border-radius:6px; font-size:11px; }
.template-attachment-preview > span { color:#2468df; font-size:18px; }
.template-editor-footer { align-items:center; margin:18px -22px 0; padding:14px 22px; border-top:1px solid #e5eaf1; background:#fbfcfe; }
.template-editor-footer > span { color:#7b8798; font-size:10px; }
.template-palette-item:focus-visible,.template-control-drag:focus-visible,.template-icon-button:focus-visible { outline:3px solid rgba(37,99,235,.25); outline-offset:2px; }
@keyframes template-card-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }

/* Compact desktop plan detail. */
.plan-detail-page { width:min(100%,1160px); gap:14px; }
.plan-detail-header { margin-bottom:2px; }
.plan-detail-header .research-detail-title-row h1 { max-width:720px; font-size:30px; line-height:1.24; }
.plan-detail-header > div > p { display:flex; align-items:center; gap:7px; }
.plan-project-mark { display:inline-grid; width:20px; height:20px; place-items:center; border-radius:5px; color:#1d5fd1; background:#eaf2ff; font-size:10px; font-weight:800; }
.plan-detail-overview,.plan-detail-participants { overflow:hidden; padding:0; }
.plan-detail-overview > header,.plan-detail-participants > header,.plan-detail-content-grid .research-detail-section > header { padding:14px 18px; border-bottom:1px solid #e6eaf0; background:#fbfcfe; }
.plan-detail-overview > header > div,.plan-detail-participants > header > div,.plan-detail-content-grid .research-detail-section > header > div { display:flex; align-items:center; gap:10px; }
.plan-detail-overview h2,.plan-detail-participants h2,.plan-detail-content-grid h2 { margin:0; color:#202b3e; font-size:14px; }
.plan-detail-overview header p,.plan-detail-participants header p,.plan-detail-content-grid header p { margin:3px 0 0; color:#8490a1; font-size:10px; }
.plan-section-icon { display:inline-grid; width:32px; height:32px; flex:0 0 32px; place-items:center; border-radius:8px; color:#1d5fd1; background:#eaf2ff; font-size:11px; font-weight:800; }
.plan-section-icon.is-green { color:#067647; background:#e8f8ef; }
.plan-section-icon.is-purple { color:#6941c6; background:#f1ecff; }
.plan-section-icon.is-orange { color:#b54708; background:#fff1e5; }
.plan-detail-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; }
.plan-detail-summary-grid > div { min-height:84px; padding:16px 18px; border-right:1px solid #edf0f4; }
.plan-detail-summary-grid > div:last-child { border-right:0; }
.plan-detail-summary-grid dt,.plan-detail-subject > span { margin-bottom:7px; color:#738096; font-size:10px; font-weight:750; }
.plan-detail-summary-grid dd { margin:0; color:#202b3e; font-size:14px; line-height:1.5; }
.plan-detail-summary-grid dd small { display:block; margin-top:2px; color:#617087; font-size:11px; }
.plan-detail-subject { display:grid; grid-template-columns:110px minmax(0,1fr); align-items:start; gap:12px; padding:14px 18px; border-top:1px solid #edf0f4; }
.plan-detail-subject > span { margin:2px 0 0; }
.plan-detail-subject p { margin:0; color:#344054; font-size:13px; line-height:1.65; }
.plan-detail-participants .research-participant-grid article { min-height:92px; padding:16px 18px; }
.participant-label { display:flex; align-items:center; gap:8px; }
.participant-label > span { color:#344054; }
.participant-label small { padding:2px 6px; border-radius:999px; color:#667085; background:#f0f2f5; font-size:9px; }
.plan-detail-participants .research-participant-grid p { margin-top:9px; font-size:13px; line-height:1.65; }
.plan-detail-content-grid { grid-template-columns:1fr 1fr; gap:14px; }
.plan-detail-content-grid .research-long-copy { min-height:126px; padding:17px 18px; font-size:13px; line-height:1.75; }

@media (max-width:900px) {
  .template-builder-layout { grid-template-columns:1fr; }
  .template-control-palette { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .template-palette-heading,.template-palette-tip { grid-column:1 / -1; }
  .plan-detail-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .plan-detail-summary-grid > div:nth-child(2) { border-right:0; }
  .plan-detail-summary-grid > div:nth-child(-n+2) { border-bottom:1px solid #edf0f4; }
}
@media (max-width:640px) {
  .template-control-palette,.plan-detail-summary-grid,.plan-detail-content-grid { grid-template-columns:1fr; }
  .template-control-config { grid-template-columns:1fr; }
  .template-control-card-header { align-items:flex-start; flex-direction:column; }
  .template-editor-footer { align-items:stretch; flex-direction:column; }
  .plan-detail-summary-grid > div { border-right:0; border-bottom:1px solid #edf0f4; }
  .plan-detail-summary-grid > div:last-child { border-bottom:0; }
  .plan-detail-subject { grid-template-columns:1fr; gap:4px; }
}

.report-rich-text-shell { overflow:hidden; border:1px solid #d5dce6; border-radius:8px; background:#fff; }
.report-rich-text-shell:focus-within { border-color:#7ba6f4; box-shadow:0 0 0 3px rgba(37,99,235,.09); }
.report-rich-text-toolbar { display:flex; align-items:center; gap:4px; padding:7px 9px; border-bottom:1px solid #e2e7ef; background:#f8fafc; }
.report-rich-text-toolbar button { display:grid; min-width:30px; height:30px; place-items:center; padding:0 7px; border:1px solid transparent; border-radius:6px; color:#475467; background:transparent; cursor:pointer; }
.report-rich-text-toolbar button:hover:not(:disabled) { border-color:#d3deee; color:#175cd3; background:#fff; }
.report-rich-text-toolbar button:disabled { opacity:.45; cursor:default; }
.report-rich-text { min-height:320px; padding:16px; color:#253044; font-size:14px; line-height:1.8; outline:0; }
.report-rich-text:empty::before { color:#98a2b3; content:attr(data-placeholder); pointer-events:none; }
.report-rich-text h2,.report-rich-text h3 { margin:18px 0 8px; color:#172033; }
.report-rich-text h2 { font-size:20px; }
.report-rich-text h3 { font-size:17px; }
.report-rich-text blockquote { margin:12px 0; padding:8px 14px; border-left:3px solid #82a9ef; color:#526075; background:#f7f9fc; }
.report-rich-template-preview p { margin:7px 0 0; color:#7b8798; }
[data-report-readonly] .report-rich-text-shell { background:#f8fafc; }

/* Detail design list and create */
.detail-design-list-page,
.detail-design-create-page {
  width: min(100%, 1440px);
  margin: 0 auto;
}
.detail-design-list-page { gap: 20px; }
.detail-design-list-page .process-page-header { padding: 4px 2px; }
.detail-design-filter-card,
.detail-design-list-card {
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(16, 24, 40, .04);
}
.detail-design-filter-card { padding: 20px 22px; }
.detail-design-list-card { padding: 20px 22px; }
.detail-design-card-heading,
.detail-design-list-card .page-heading {
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e8edf3;
}
.detail-design-card-heading h2,
.detail-design-list-card .page-heading h2 { margin: 0; color: #172033; font-size: 18px; }
.detail-design-card-heading p,
.detail-design-list-card .page-heading p { margin: 4px 0 0; color: #667085; font-size: 13px; }
.detail-design-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: end;
}
.detail-design-filter-grid .form-field { min-width: 0; }
.detail-design-filter-query { grid-column: span 2; }
.detail-design-filter-actions {
  grid-column: span 2;
  align-self: end;
  margin: 0;
  padding: 0;
  border-top: 0;
}
.detail-design-list-card .table-wrap { margin-inline: -22px; }
.detail-design-list-card table th:first-child,
.detail-design-list-card table td:first-child { padding-left: 22px; }
.detail-design-list-card table th:last-child,
.detail-design-list-card table td:last-child { padding-right: 22px; }
.detail-design-list-card .pagination { margin-top: 16px; }
.detail-design-row-actions { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; white-space: nowrap; }
.detail-design-row-actions form { margin: 0; }
.detail-design-row-actions .detail-design-text-action { min-height: 32px; padding: 5px 0; border: 0; background: transparent; font: inherit; cursor: pointer; }
.detail-design-row-actions .detail-design-destructive-action { color: #b42318; }
.detail-design-create-page {
  display: grid;
  width: min(100%, 1200px);
  gap: 18px;
}
.detail-design-create-heading { margin: 0; padding: 4px 2px; }
.detail-design-create-heading h1 { margin: 2px 0 0; color: #172033; font-size: 30px; }
.detail-design-create-heading > div > p:last-child { margin: 7px 0 0; color: #667085; font-size: 14px; }
.detail-design-template-preview {
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
  gap: 20px;
  padding: 22px 24px;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(16, 24, 40, .04);
}
.detail-design-template-preview h2 { margin: 4px 0 0; color: #172033; font-size: 18px; }
.detail-design-template-preview > div > p:last-child { margin: 8px 0 0; color: #667085; font-size: 13px; line-height: 1.6; }
.detail-design-template-preview ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin: 0; padding: 0; list-style: none; }
.detail-design-template-preview li { display: flex; gap: 9px; align-items: center; min-width: 0; color: #344054; font-size: 13px; }
.detail-design-template-preview li span { display: inline-grid; flex: 0 0 24px; width: 24px; height: 24px; place-items: center; border: 1px solid #cbd5e1; border-radius: 50%; color: #475467; font-size: 12px; }
.detail-design-create-form {
  padding: 24px;
  gap: 18px 20px;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(16, 24, 40, .04);
}
.detail-design-create-form .form-field { min-width: 0; }
.detail-design-create-form .form-field > label { display: block; margin-bottom: 7px; }
.detail-design-create-form textarea { min-height: 116px; resize: vertical; }
.detail-design-create-objective,
.detail-design-create-requirements,
.detail-design-create-reason { grid-column: 1 / -1; }
.detail-design-create-requirements select[multiple] { min-height: 150px; padding: 8px; }
.detail-design-create-requirements p,
.detail-design-create-reason p { margin: 7px 0 0; color: #667085; font-size: 12px; }
.detail-design-create-actions {
  grid-column: 1 / -1;
  align-items: center;
  margin-top: 2px;
  padding-top: 18px;
}
.detail-design-create-actions .button { min-width: 112px; }
@media (max-width: 1100px) {
  .detail-design-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-design-filter-query { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .detail-design-list-page .process-page-header,
  .detail-design-create-heading { align-items: stretch; flex-direction: column; }
  .detail-design-list-page .process-page-header .button,
  .detail-design-create-heading .button { width: 100%; }
  .detail-design-filter-card,
  .detail-design-list-card,
  .detail-design-create-form { padding: 16px; }
  .detail-design-filter-grid,
  .detail-design-template-preview,
  .detail-design-create-form { grid-template-columns: 1fr; }
  .detail-design-template-preview ol { grid-template-columns: 1fr; }
  .detail-design-filter-query,
  .detail-design-filter-actions,
  .detail-design-create-objective,
  .detail-design-create-requirements,
  .detail-design-create-reason,
  .detail-design-create-actions { grid-column: auto; }
  .detail-design-list-card .table-wrap { margin-inline: -16px; }
  .detail-design-list-card table th:first-child,
  .detail-design-list-card table td:first-child { padding-left: 16px; }
  .detail-design-list-card table th:last-child,
  .detail-design-list-card table td:last-child { padding-right: 16px; }
  .detail-design-create-actions { align-items: stretch; flex-direction: column; }
  .detail-design-create-actions .button { width: 100%; }
}

/* Detail design create form */
.detail-design-create-page { width: min(100%, 1320px); gap: 20px; }
.detail-design-create-form { display: grid; gap: 18px; padding: 0; border: 0; box-shadow: none; }
.detail-design-form-section { padding: 0 24px 24px; overflow: visible; border-radius: 12px; box-shadow: 0 4px 16px rgba(16, 24, 40, .04); }
.detail-design-form-section-heading { display: flex; gap: 12px; align-items: center; margin: 0 0 20px; padding: 20px 0 16px; border-bottom: 1px solid #e4e9f1; }
.detail-design-form-section-heading > span { display: grid; flex: 0 0 36px; height: 36px; place-items: center; border-radius: 8px; color: #175cd3; background: #eff6ff; font-size: 13px; font-weight: 700; }
.detail-design-form-section-heading h2 { margin: 0; color: #172033; font-size: 18px; }
.detail-design-form-section-heading p { margin: 3px 0 0; color: #667085; font-size: 13px; }
.detail-design-create-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px 18px; align-items: start; }
.detail-design-create-grid .field-span-3 { grid-column: span 3; }
.detail-design-create-grid .field-span-4 { grid-column: span 4; }
.detail-design-create-grid .field-span-5 { grid-column: span 5; }
.detail-design-create-grid .field-span-6 { grid-column: span 6; }
.detail-design-create-grid .field-span-12 { grid-column: 1 / -1; }
.detail-design-create-grid .form-field { min-width: 0; }
.detail-design-create-grid .form-field > label,
.detail-design-multi-select legend { display: block; margin: 0 0 7px; color: #344054; font-size: 13px; font-weight: 700; }
.detail-design-create-grid input:not([type="checkbox"]),
.detail-design-create-grid select { min-height: 42px; width: 100%; }
.detail-design-create-grid textarea { width: 100%; min-height: 108px; resize: vertical; line-height: 1.6; }
.detail-design-multi-select { margin: 0; padding: 0; border: 0; }
.detail-design-multi-select details { position: relative; }
.detail-design-multi-select summary { display: flex; min-height: 42px; justify-content: space-between; gap: 12px; align-items: center; padding: 9px 12px; overflow: hidden; border: 1px solid #cfd7e5; border-radius: 7px; background: #fff; color: #344054; cursor: pointer; list-style-position: inside; }
.detail-design-multi-select summary:focus-visible { outline: 3px solid rgba(37, 99, 235, .24); outline-offset: 2px; }
.detail-design-multi-select summary > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-design-multi-select summary small { flex: none; color: #175cd3; font-size: 12px; }
.detail-design-multi-options { position: absolute; z-index: 20; top: calc(100% + 6px); left: 0; right: 0; max-height: 250px; overflow: auto; padding: 6px; border: 1px solid #d7dee9; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgba(16, 24, 40, .14); }
.detail-design-multi-options label { display: flex; gap: 9px; align-items: flex-start; padding: 9px 10px; border-radius: 6px; color: #344054; font-size: 13px; font-weight: 400; line-height: 1.45; cursor: pointer; }
.detail-design-multi-options label:hover { background: #f5f8fc; }
.detail-design-multi-options input { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 1px; accent-color: #2563eb; }
.detail-design-multi-options p { margin: 0; padding: 10px; color: #667085; font-size: 13px; }
.detail-design-selected-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.detail-design-selected-tags:empty { display: none; }
.detail-design-selected-tags span { max-width: 100%; padding: 4px 8px; overflow: hidden; border-radius: 5px; color: #175cd3; background: #eff6ff; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.detail-design-create-reason p { margin: 7px 0 0; color: #667085; font-size: 12px; }
.detail-design-create-actions { display: flex; grid-column: auto; justify-content: flex-end; gap: 8px; margin: 0; padding: 2px 0 0; border: 0; }
.detail-design-create-actions .button { width: auto; min-width: 96px; }
@media (max-width: 1000px) {
  .detail-design-create-grid .field-span-3,
  .detail-design-create-grid .field-span-4,
  .detail-design-create-grid .field-span-5,
  .detail-design-create-grid .field-span-6 { grid-column: span 6; }
}
@media (max-width: 700px) {
  .detail-design-form-section { padding: 0 16px 18px; }
  .detail-design-create-grid { grid-template-columns: 1fr; }
  .detail-design-create-grid .field-span-3,
  .detail-design-create-grid .field-span-4,
  .detail-design-create-grid .field-span-5,
  .detail-design-create-grid .field-span-6,
  .detail-design-create-grid .field-span-12 { grid-column: auto; }
  .detail-design-create-actions { align-items: stretch; flex-direction: column-reverse; }
  .detail-design-create-actions .button { width: 100%; }
}

/* Detail design workbench */
.detail-design-page {
  --detail-design-border: #dfe5ee;
  --detail-design-muted: #667085;
  --detail-design-soft: #f7f9fc;
  display: grid;
  min-width: 0;
  gap: 12px;
}
.detail-design-topbar {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 18px;
  border: 1px solid var(--detail-design-border);
  border-radius: 12px;
  background: #fff;
}
.detail-design-heading { display: flex; min-width: 0; align-items: center; gap: 18px; }
.detail-design-heading > a { flex: 0 0 auto; color: var(--detail-design-muted); font-size: 12px; }
.detail-design-heading h1 { overflow: hidden; margin: 0; color: #172033; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.detail-design-heading p { margin: 3px 0 0; color: var(--detail-design-muted); font-size: 12px; }
.detail-design-state { flex: 0 0 auto; padding: 5px 9px; border: 1px solid #f1d7a9; border-radius: 7px; color: #8a5200; background: #fff8e8; font-size: 12px; font-weight: 700; }
.detail-design-page .button.is-disabled,
.detail-design-page .button[aria-disabled="true"] {
  border-color: #d0d5dd;
  color: #475467;
  background: #f2f4f7;
  box-shadow: none;
  text-decoration: none;
  cursor: not-allowed;
}
.detail-design-page .button.is-disabled:hover,
.detail-design-page .button[aria-disabled="true"]:hover {
  border-color: #d0d5dd;
  color: #475467;
  background: #f2f4f7;
  box-shadow: none;
  transform: none;
}
.detail-design-workspace {
  display: grid;
  min-width: 0;
  min-height: 560px;
  max-height: calc(100vh - 190px);
  grid-template-columns: 220px minmax(420px, 1fr) 260px;
  overflow: hidden;
  border: 1px solid var(--detail-design-border);
  border-radius: 12px;
  background: #fff;
}
.detail-design-left-rail,
.detail-design-right-rail,
.detail-design-editor { min-width: 0; overflow-y: auto; }
.detail-design-left-rail { border-right: 1px solid var(--detail-design-border); background: var(--detail-design-soft); }
.detail-design-left-rail > h2 { margin: 0; padding: 16px 14px 10px; color: #344054; font-size: 13px; }
.detail-design-section-nav { display: grid; gap: 4px; padding: 0 8px 14px; }
.detail-design-section-nav a {
  display: grid;
  width: 100%;
  gap: 3px;
  padding: 9px 10px;
  border: 0;
  border-radius: 7px;
  color: #475467;
  background: transparent;
  text-align: left;
}
.detail-design-section-nav a > span { display: flex; min-width: 0; gap: 8px; font-size: 12px; line-height: 1.45; }
.detail-design-section-nav a b { flex: 0 0 auto; color: #475467; font-size: 12px; }
.detail-design-section-nav a small { padding-left: 26px; color: #475467; font-size: 12px; }
.detail-design-section-nav a:hover { background: #eef3fa; }
.detail-design-section-nav a[aria-current="step"] { color: #175cd3; background: #eaf2ff; box-shadow: inset 3px 0 #2563eb; }
.detail-design-editor { padding: 22px 24px; background: #f5f7fa; }
.detail-design-section-selector,
.detail-design-editor > select { display: none; }
.detail-design-editor-panel { width: min(100%, 820px); min-height: 100%; margin: 0 auto; padding: 24px; border: 1px solid var(--detail-design-border); border-radius: 10px; background: #fff; box-shadow: 0 4px 14px rgba(16, 24, 40, .04); }
.detail-design-editor-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid #e8ecf2; }
.detail-design-editor-panel > header span { color: #667085; font-size: 12px; font-weight: 750; }
.detail-design-editor-panel > header h2 { margin: 3px 0 0; color: #172033; font-size: 20px; }
.detail-design-editor-panel form > label,
.detail-design-editor-panel [data-section-json-fallback] > label { display: block; margin-bottom: 7px; color: #344054; font-size: 13px; font-weight: 700; }
.detail-design-page.is-enhanced .detail-design-editor-panel:not([data-editor-type="rich_text"]) [data-section-json-fallback] { display: none; }
.detail-design-editor-panel textarea { width: 100%; min-height: 340px; resize: vertical; font: 13px/1.65 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.detail-design-editor-panel[data-editor-type="rich_text"] textarea { font-family: inherit; }
.detail-design-editor-panel textarea[readonly] { color: #344054; background: #f4f6f8; }
.detail-design-editor-help { margin: 7px 0 0; color: var(--detail-design-muted); font-size: 12px; }
.detail-design-save-error { color: #b42318; font-size: 12px; }
.detail-design-save-state { min-width: 92px; color: var(--detail-design-muted); font-size: 12px; text-align: right; }
.detail-design-save-state[data-save-state="saved"] { color: #087a55; }
.detail-design-save-state[data-save-state="failed"],
.detail-design-save-state[data-save-state="conflict"] { color: #b42318; }
.detail-design-recovery-actions { margin-top: 12px; }
.detail-design-recovery-actions > div { display: flex; flex-wrap: wrap; gap: 8px; }
.detail-design-right-rail { border-left: 1px solid var(--detail-design-border); background: var(--detail-design-soft); }
.detail-design-right-rail summary { display: none; }
.detail-design-right-rail details:not([open]) > :not(summary) { display: block; }
.detail-design-context-content { padding: 6px 14px 18px; }
.detail-design-context-content section { padding: 14px 0; border-bottom: 1px solid var(--detail-design-border); }
.detail-design-context-content section:last-child { border-bottom: 0; }
.detail-design-context-content h2 { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 9px; color: #344054; font-size: 13px; }
.detail-design-context-content h2 span { display: inline-grid; min-width: 24px; height: 24px; place-items: center; border-radius: 12px; color: #475467; background: #e8edf4; font-size: 12px; }
.detail-design-context-content p { display: grid; gap: 2px; margin: 7px 0; color: #475467; font-size: 12px; line-height: 1.5; }
.detail-design-context-content p strong { color: #172033; }
.detail-design-context-content p small { color: #667085; }
.detail-design-context-content ul { display: grid; gap: 6px; margin: 0; padding-left: 17px; color: #7a271a; font-size: 12px; line-height: 1.5; }
.detail-design-context-content .detail-design-empty { color: #667085; }
.detail-design-table-scroll { max-width: 100%; margin: 0 0 16px; overflow-x: auto; border: 1px solid var(--detail-design-border); border-radius: 8px; }
.detail-design-structured-table { width: 100%; min-width: 560px; border-collapse: collapse; color: #344054; font-size: 12px; }
.detail-design-structured-table caption { padding: 10px 12px; color: #172033; background: #f7f9fc; font-size: 13px; font-weight: 750; text-align: left; }
.detail-design-structured-table th,
.detail-design-structured-table td { padding: 9px 12px; border-top: 1px solid var(--detail-design-border); text-align: left; vertical-align: top; }
.detail-design-structured-table thead th { color: #344054; background: #eef3fa; font-weight: 750; }
.detail-design-structured-table input:not([type="checkbox"]),
.detail-design-structured-table textarea { width: 100%; min-width: 110px; }
.detail-design-structured-table textarea { min-height: 72px; resize: vertical; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.detail-design-structured-table code,
.detail-design-resource-card code { color: #1d2939; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; overflow-wrap: anywhere; }
.detail-design-resource-editor { display: grid; gap: 14px; margin-bottom: 20px; }
.detail-design-section-fields { display: grid; gap: 12px; margin-bottom: 18px; }
.detail-design-section-fields > label,
.detail-design-section-fields form label { display: grid; gap: 5px; color: #344054; font-size: 12px; font-weight: 700; }
.detail-design-section-fields textarea { min-height: 88px; font: inherit; }
.detail-design-section-fields form { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--detail-design-border); border-radius: 8px; background: #f7f9fc; }
.detail-design-section-fields form .button { justify-self: start; }
.detail-design-resource-heading,
.detail-design-resource-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.detail-design-resource-heading h3 { margin: 0; color: #172033; font-size: 15px; }
.detail-design-resource-heading span { color: #475467; font-size: 12px; }
.detail-design-resource-card { padding: 14px; border: 1px solid var(--detail-design-border); border-radius: 9px; background: #fff; }
.detail-design-resource-card > header { margin-bottom: 12px; color: #344054; font-size: 13px; }
.detail-design-add-resource { border: 1px solid var(--detail-design-border); border-radius: 8px; background: #f7f9fc; }
.detail-design-add-resource summary { padding: 11px 12px; color: #175cd3; font-size: 13px; font-weight: 750; cursor: pointer; }
.detail-design-add-resource form { display: grid; gap: 10px; padding: 0 12px 12px; }
.detail-design-add-resource label,
.detail-design-context-content form label { display: grid; gap: 5px; color: #344054; font-size: 12px; font-weight: 700; }
.detail-design-add-resource input,
.detail-design-add-resource select,
.detail-design-add-resource textarea,
.detail-design-context-content form input,
.detail-design-context-content form select { width: 100%; }
.detail-design-add-resource textarea { min-height: 88px; font: 12px/1.55 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.detail-design-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.detail-design-field-wide { grid-column: 1 / -1; }
.detail-design-context-content form { display: grid; gap: 7px; margin-top: 10px; }
.detail-design-context-content form .button { justify-self: start; }
.detail-design-text-action,
[data-completeness-issue] { padding: 0; border: 0; color: #175cd3; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.detail-design-text-action { justify-self: start; font-weight: 700; }
[data-completeness-issue] { color: #7a271a; text-decoration: underline; text-underline-offset: 2px; }
.detail-design-inline-error { margin: 0; color: #b42318; font-size: 12px; }
.detail-design-page :focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.detail-design-rich-text-surface { min-height: 220px; margin-bottom: 14px; padding: 16px; border: 1px solid var(--detail-design-border); border-radius: 8px; color: #1d2939; background: #fff; font-size: 14px; line-height: 1.7; white-space: pre-wrap; }
.detail-design-rich-text-surface:focus-visible { border-color: #2563eb; outline: 3px solid rgba(37, 99, 235, .24); outline-offset: 1px; }
.detail-design-page.is-enhanced [data-editor-type="rich_text"] [data-section-json-fallback] { display: none; }
.detail-design-context-toggle,
.detail-design-context-backdrop,
.detail-design-context-close { display: none; }
.detail-design-attachment-results { display: grid; gap: 6px; margin: 4px 0 0; padding: 0; list-style: none; color: #344054; font-size: 12px; }
.detail-design-attachment-results li[role="alert"] { color: #b42318; }
.detail-design-page [hidden] { display: none !important; }
.detail-design-requirement-source { width: min(100%, 920px); margin: 0 auto; }
.detail-design-requirement-source .card { padding: 24px; }
.detail-design-requirement-source h2 { margin: 0 0 18px; color: #172033; font-size: 20px; }
.detail-design-requirement-source h3 { margin: 22px 0 10px; color: #344054; font-size: 15px; }
.detail-design-source-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid #dfe5ee; border-radius: 9px; overflow: hidden; }
.detail-design-source-facts > div { min-width: 0; padding: 12px 14px; border-bottom: 1px solid #dfe5ee; }
.detail-design-source-facts > div:nth-child(odd) { border-right: 1px solid #dfe5ee; }
.detail-design-source-facts > div:nth-last-child(-n + 2) { border-bottom: 0; }
.detail-design-source-facts dt { margin-bottom: 4px; color: #667085; font-size: 12px; font-weight: 700; }
.detail-design-source-facts dd { margin: 0; color: #172033; overflow-wrap: anywhere; }
.detail-design-source-warning { margin: 18px 0 0; padding: 11px 13px; border: 1px solid #f1d7a9; border-radius: 8px; color: #7a4b00; background: #fff8e8; }
.detail-design-source-content { max-height: 420px; margin: 0; padding: 14px; overflow: auto; border: 1px solid #dfe5ee; border-radius: 8px; color: #344054; background: #f7f9fc; font: 12px/1.65 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .detail-design-workspace { max-height: none; grid-template-columns: 220px minmax(0, 1fr); overflow: visible; }
  .detail-design-left-rail,
  .detail-design-editor { max-height: calc(100vh - 190px); }
  .detail-design-right-rail { grid-column: 1 / -1; overflow: visible; border-top: 1px solid var(--detail-design-border); border-left: 0; }
  .detail-design-right-rail summary { display: block; padding: 14px 16px; color: #344054; font-size: 13px; font-weight: 750; cursor: pointer; }
  .detail-design-right-rail details:not([open]) > :not(summary) { display: none; }
  .detail-design-context-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
}
@media (max-width: 760px) {
  body.detail-design-drawer-lock { overflow: hidden; }
  .detail-design-context-toggle { display: inline-flex; justify-self: end; margin-bottom: 10px; }
  .detail-design-right-rail { position: fixed; z-index: 91; top: 0; right: 0; bottom: 0; width: min(88vw, 380px); overflow-y: auto; border-left: 1px solid var(--detail-design-border); background: #fff; box-shadow: -12px 0 32px rgba(16, 24, 40, .18); transform: translateX(105%); transition: transform .2s ease; }
  .detail-design-page.is-context-drawer-open .detail-design-right-rail { transform: translateX(0); }
  .detail-design-context-backdrop { position: fixed; z-index: 90; inset: 0; border: 0; border-radius: 0; background: rgba(16, 24, 40, .38); }
  .detail-design-page.is-context-drawer-open .detail-design-context-backdrop { display: block; }
  .detail-design-context-close { display: inline-flex; margin: 12px 16px 0 auto; }
  .detail-design-topbar { align-items: flex-start; }
  .detail-design-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .detail-design-workspace { grid-template-columns: 1fr; }
  .detail-design-page.is-enhanced .detail-design-left-rail { display: none; }
  .detail-design-editor { max-height: none; padding: 14px; }
  .detail-design-page.is-enhanced .detail-design-section-selector { display: block; margin-bottom: 6px; color: #344054; font-size: 12px; font-weight: 700; }
  .detail-design-page.is-enhanced .detail-design-editor > select { display: block; width: 100%; margin-bottom: 12px; }
  .detail-design-editor-panel { min-height: 0; padding: 18px 16px; }
  .detail-design-editor-panel > header { align-items: flex-start; flex-direction: column; gap: 8px; }
  .detail-design-save-state { min-width: 0; text-align: left; }
  .detail-design-editor-panel textarea { min-height: 300px; }
  .detail-design-right-rail { grid-column: auto; }
  .detail-design-context-content { grid-template-columns: 1fr; }
  .detail-design-requirement-source .card { padding: 18px 16px; }
  .detail-design-source-facts { grid-template-columns: 1fr; }
  .detail-design-source-facts > div,
  .detail-design-source-facts > div:nth-child(odd) { border-right: 0; border-bottom: 1px solid #dfe5ee; }
  .detail-design-source-facts > div:last-child { border-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) { .detail-design-right-rail { transition: none; } }
@media (max-width: 480px) {
  .detail-design-topbar { flex-direction: column; }
  .detail-design-heading { width: 100%; }
  .detail-design-heading h1 { overflow: visible; white-space: normal; overflow-wrap: anywhere; }
  .detail-design-topbar .page-heading-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .detail-design-topbar .page-heading-actions > form,
  .detail-design-topbar .page-heading-actions > details,
  .detail-design-topbar .page-heading-actions > .button { width: 100%; }
  .detail-design-topbar .page-heading-actions > form .button { width: 100%; }
  .detail-design-editor { padding: 10px; }
  .detail-design-editor-panel { padding: 16px 12px; }
  .detail-design-field-grid { grid-template-columns: 1fr; }
  .detail-design-field-wide { grid-column: auto; }
  .detail-design-resource-card > header { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .detail-design-page *,
  .detail-design-preview * {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* Solution list and read-only detail workbench */
.solution-page {
  --solution-border: #dfe5ee;
  --solution-muted: #667085;
  --solution-soft: #f7f9fc;
  display: grid;
  gap: 18px;
}
.solution-filter-card { padding: 16px 18px; }
.solution-filter-card h2 { margin: 0 0 14px; color: #172033; font-size: 16px; }
.solution-filter-form { display: grid; grid-template-columns: minmax(210px, 1.6fr) repeat(4, minmax(130px, 1fr)) auto; gap: 10px; align-items: end; }
.solution-filter-form > label { display: grid; min-width: 0; gap: 5px; color: #475467; font-size: 12px; font-weight: 700; }
.solution-filter-form input,
.solution-filter-form select { width: 100%; min-height: 36px; }
.solution-filter-actions { display: flex; gap: 8px; }
.solution-workbench { display: grid; min-width: 0; grid-template-columns: minmax(300px, 2fr) minmax(440px, 3fr); overflow: hidden; border: 1px solid var(--solution-border); border-radius: 12px; background: #fff; box-shadow: 0 4px 16px rgba(16, 24, 40, .04); }
.solution-workbench-list { min-width: 0; border-right: 1px solid var(--solution-border); background: var(--solution-soft); }
.solution-workbench-list > header { display: flex; min-height: 67px; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; border-bottom: 1px solid var(--solution-border); background: #fff; }
.solution-workbench-list h2 { margin: 0; color: #172033; font-size: 16px; }
.solution-workbench-list header p { margin: 3px 0 0; color: var(--solution-muted); font-size: 12px; }
.solution-list-body { display: grid; max-height: 690px; align-content: start; overflow-y: auto; }
.solution-list-row { position: relative; display: grid; min-width: 0; gap: 7px; padding: 14px 16px; border-bottom: 1px solid #e8ecf2; color: #344054; background: #fff; }
.solution-list-row:hover { background: #f8fbff; }
.solution-list-row.is-selected { padding-left: 19px; background: #f1f6ff; box-shadow: inset 3px 0 #2563eb; }
.solution-list-row.is-selected::after { position: absolute; top: 15px; right: 15px; width: 7px; height: 7px; border-radius: 50%; background: #2563eb; content: ""; }
.solution-list-row-heading { display: grid; min-width: 0; gap: 3px; padding-right: 12px; }
.solution-list-row-heading strong { color: #175cd3; font: 700 11px/1.3 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.solution-list-row-heading b { overflow: hidden; color: #172033; font-size: 14px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.solution-list-primary { overflow: hidden; color: #475467; font-size: 12px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.solution-list-row-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; color: #667085; font-size: 11px; }
.solution-status { display: inline-flex; min-height: 22px; align-items: center; padding: 1px 7px; border: 1px solid #bfd3ee; border-radius: 999px; color: #175cd3; background: #eff6ff; font-size: 11px; font-weight: 700; line-height: 1.35; }
.solution-list-row-meta .solution-status { min-height: 20px; }
.solution-list-row small { color: #667085; font-size: 11px; }
.solution-list-empty { display: grid; gap: 5px; padding: 34px 20px; color: #667085; text-align: center; }
.solution-list-empty strong { color: #344054; font-size: 13px; }
.solution-list-empty p { margin: 0; font-size: 12px; line-height: 1.6; }
.solution-detail { display: grid; min-width: 0; align-content: start; background: #fff; }
.solution-detail-header { padding: 17px 20px 14px; border-bottom: 1px solid var(--solution-border); }
.solution-back-link { display: inline-flex; min-height: 44px; align-items: center; margin-bottom: 4px; color: #175cd3; font-size: 12px; font-weight: 700; }
.solution-detail-title { display: flex; min-width: 0; align-items: baseline; gap: 10px; }
.solution-detail-title > span { flex: 0 0 auto; color: #475467; font: 700 12px/1.3 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.solution-detail-title h2 { overflow: hidden; margin: 0; color: #172033; font-size: 20px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.solution-detail-header p { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 8px 0 0; color: #667085; font-size: 12px; }
.solution-detail-tabs { display: flex; gap: 4px; overflow-x: auto; padding: 0 14px; border-bottom: 1px solid var(--solution-border); scrollbar-width: thin; }
.solution-detail-tabs a { position: relative; display: inline-flex; min-height: 46px; flex: 0 0 auto; align-items: center; padding: 0 11px; color: #596579; font-size: 13px; font-weight: 700; }
.solution-detail-tabs a::after { position: absolute; right: 11px; bottom: 0; left: 11px; height: 3px; border-radius: 3px 3px 0 0; background: transparent; content: ""; }
.solution-detail-tabs a:hover { color: #175cd3; background: #f8fbff; }
.solution-detail-tabs a[aria-current="page"] { color: #175cd3; }
.solution-detail-tabs a[aria-current="page"]::after { background: #2563eb; }
.solution-detail-body { display: grid; gap: 14px; padding: 18px 20px 22px; }
.solution-detail-section { min-width: 0; padding: 16px; border: 1px solid var(--solution-border); border-radius: 10px; background: #fff; }
.solution-detail-section h3 { margin: 0 0 12px; color: #172033; font-size: 15px; }
.solution-detail-section h4 { margin: 0 0 9px; color: #344054; font-size: 13px; }
.solution-detail-section > p { margin: 0 0 12px; color: #475467; font-size: 13px; line-height: 1.65; }
.solution-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; overflow: hidden; border: 1px solid #e4e9f0; border-radius: 8px; }
.solution-facts > div { min-width: 0; padding: 11px 12px; border-bottom: 1px solid #e4e9f0; }
.solution-facts > div:nth-child(odd) { border-right: 1px solid #e4e9f0; }
.solution-facts > div:nth-last-child(-n + 2) { border-bottom: 0; }
.solution-facts dt { margin-bottom: 4px; color: #667085; font-size: 11px; font-weight: 700; }
.solution-facts dd { margin: 0; color: #344054; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; }
.solution-facts dd p { margin: 0 0 6px; }
.solution-facts dd p:last-child { margin-bottom: 0; }
.solution-linked-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.solution-linked-list li { display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px 12px; padding: 9px 10px; border: 1px solid #e8ecf2; border-radius: 7px; color: #475467; font-size: 12px; }
.solution-linked-list a { display: inline-flex; min-height: 44px; align-items: center; color: #175cd3; font-weight: 700; overflow-wrap: anywhere; }
.solution-linked-list li > strong { color: #344054; font-size: 12px; }
.solution-linked-list small { color: #667085; }
.solution-linked-list li > strong:last-child { display: inline-flex; min-height: 20px; align-items: center; padding: 1px 7px; border-radius: 999px; color: #175cd3; background: #eff6ff; font-size: 11px; }
.solution-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid #e0e6ee; border-radius: 8px; }
.solution-table-scroll:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.solution-table-scroll table { width: 100%; min-width: 660px; border-collapse: collapse; color: #344054; font-size: 12px; }
.solution-table-scroll th,
.solution-table-scroll td { padding: 10px 12px; border-top: 1px solid #e4e9f0; text-align: left; vertical-align: top; line-height: 1.55; }
.solution-table-scroll thead th { border-top: 0; color: #344054; background: #f7f9fc; font-weight: 750; }
.solution-table-scroll tbody th { color: #172033; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.solution-delivery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.solution-delivery-grid > section { min-width: 0; padding: 12px; border: 1px solid #e4e9f0; border-radius: 8px; background: #f9fbfd; }
.solution-page :focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.solution-page .row-more-actions summary,
.solution-page .row-more-menu button { min-height: 44px; }
.solution-page .row-more-actions summary:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }

/* Solution draft authoring */
.solution-authoring-page { --solution-border: #dfe5ee; --solution-muted: #667085; display: grid; gap: 18px; max-width: 1240px; margin: 0 auto; }
.solution-authoring-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: start; gap: 18px; }
.solution-authoring-form { display: grid; gap: 14px; min-width: 0; }
.solution-authoring-section,
.solution-authoring-rail > section,
.solution-validation-summary { padding: 18px; border: 1px solid var(--solution-border); border-radius: 10px; background: #fff; box-shadow: 0 2px 8px rgba(16, 24, 40, .03); }
.solution-section-heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
.solution-section-heading > span { display: inline-grid; width: 26px; height: 26px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #175cd3; background: #eff6ff; font: 700 11px/1 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.solution-section-heading h2,
.solution-authoring-rail h2,
.solution-validation-summary h2 { margin: 0; color: #172033; font-size: 16px; line-height: 1.4; }
.solution-section-heading p { margin: 3px 0 0; color: var(--solution-muted); font-size: 12px; line-height: 1.55; }
.solution-section-heading-actions > .button { margin-left: auto; }
.solution-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 14px; }
.solution-form-grid .form-field { min-width: 0; }
.solution-form-grid label { display: grid; gap: 5px; color: #344054; font-size: 13px; font-weight: 700; }
.solution-form-grid input,
.solution-form-grid select,
.solution-form-grid textarea { width: 100%; min-width: 0; }
.solution-field-wide { grid-column: 1 / -1; }
.solution-field-wide > label { display: grid; }
.field-help { margin: 5px 0 0; color: #667085; font-size: 12px; font-weight: 400; line-height: 1.5; }
.solution-requirement-list { display: grid; overflow: hidden; border: 1px solid #e3e8ef; border-radius: 8px; }
.solution-requirement-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border-bottom: 1px solid #e7ebf1; }
.solution-requirement-row:last-child { border-bottom: 0; }
.solution-requirement-choice { display: flex; min-width: 0; align-items: flex-start; gap: 8px; color: #344054; font-size: 13px; }
.solution-requirement-choice span { display: grid; min-width: 0; gap: 3px; }
.solution-requirement-choice strong { overflow-wrap: anywhere; }
.solution-requirement-choice small { color: #667085; font-size: 11px; }
.solution-primary-choice { display: inline-flex; align-items: center; gap: 5px; color: #475467; font-size: 12px; white-space: nowrap; }
.solution-empty-note { margin: 0; padding: 15px; color: #667085; font-size: 13px; line-height: 1.6; }
.solution-point-list { display: grid; gap: 12px; }
.solution-point-editor { min-width: 0; padding: 13px; border: 1px solid #dfe6ee; border-radius: 9px; background: #fbfcfe; }
.solution-point-editor > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
.solution-point-editor header > div:first-child { display: grid; gap: 3px; }
.solution-point-editor header span { color: #175cd3; font: 700 11px/1.3 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.solution-point-editor header strong { color: #172033; font-size: 14px; overflow-wrap: anywhere; }
.solution-point-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.button-compact { min-height: 30px; padding: 4px 8px; font-size: 12px; }
.solution-point-requirements { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 13px 0 0; padding: 11px; border: 1px solid #e2e8f0; border-radius: 7px; }
.solution-point-requirements legend { padding: 0 4px; color: #475467; font-size: 12px; font-weight: 700; }
.solution-point-requirements label { display: inline-flex; align-items: flex-start; gap: 5px; color: #475467; font-size: 12px; }
.solution-authoring-actions { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 12px 0; background: linear-gradient(to bottom, rgba(255, 255, 255, .72), #fff 45%); }
.solution-authoring-actions > :first-child { margin-right: auto; }
.solution-save-status { width: 100%; min-height: 1px; margin: 0; color: #475467; font-size: 12px; text-align: right; }
.solution-authoring-rail { display: grid; gap: 12px; position: sticky; top: 16px; }
.solution-authoring-rail h2 { margin-bottom: 10px; font-size: 14px; }
.solution-authoring-rail dl { display: grid; gap: 9px; margin: 0; }
.solution-authoring-rail dl div { display: grid; gap: 2px; }
.solution-authoring-rail dt { color: #667085; font-size: 11px; font-weight: 700; }
.solution-authoring-rail dd { margin: 0; color: #344054; font-size: 13px; overflow-wrap: anywhere; }
.solution-authoring-rail p,
.solution-authoring-rail ul { margin: 0; color: #475467; font-size: 12px; line-height: 1.6; }
.solution-authoring-rail ul { display: grid; gap: 5px; padding-left: 18px; }
.solution-validation-summary { border-color: #f0b9b4; background: #fff8f7; }
.solution-validation-summary ul { display: grid; gap: 5px; margin: 10px 0 0; padding-left: 18px; }
.solution-validation-summary a { color: #b42318; font-size: 13px; text-decoration: underline; }
.solution-authoring-page :focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.solution-page .button,
.solution-authoring-page .button,
dialog[id^="solution-"] .button,
dialog[id^="solution-"] .dialog-close { min-height: 44px; }
.solution-form-grid input:not([type="checkbox"]):not([type="radio"]),
.solution-form-grid select,
.solution-form-grid textarea,
.solution-filter-form input,
.solution-filter-form select { min-height: 44px; }
.solution-requirement-choice,
.solution-primary-choice,
.solution-point-requirements label { min-height: 44px; align-items: center; }
dialog[id^="solution-"] form { display: flex; max-height: min(86vh, 720px); flex-direction: column; overflow: hidden; }
dialog[id^="solution-"] .schedule-requirement-dialog-list { display: grid; min-height: 0; gap: 8px; padding: 14px 20px; overflow-y: auto; }
dialog[id^="solution-"] .schedule-requirement-dialog-list label,
dialog[id^="solution-"] .schedule-requirement-dialog-list legend { color: #344054; font-size: 13px; font-weight: 700; }
dialog[id^="solution-"] .schedule-requirement-dialog-list input,
dialog[id^="solution-"] .schedule-requirement-dialog-list select,
dialog[id^="solution-"] .schedule-requirement-dialog-list textarea { width: 100%; min-height: 44px; }
dialog[id^="solution-"] .schedule-requirement-dialog-list fieldset { display: grid; gap: 8px; margin: 4px 0; padding: 12px; border: 1px solid #dfe5ee; border-radius: 8px; }

@media (max-width: 1040px) {
  .solution-filter-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .solution-filter-form > label:first-child { grid-column: span 2; }
}
@media (max-width: 880px) {
  .solution-workbench { grid-template-columns: 1fr; overflow: visible; }
  .solution-workbench-list { border-right: 0; border-bottom: 1px solid var(--solution-border); }
  .solution-list-body { max-height: none; }
  .solution-page.is-detail-route .solution-workbench-list { display: none; }
  .solution-authoring-layout { grid-template-columns: 1fr; }
  .solution-authoring-rail { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .solution-filter-form { grid-template-columns: 1fr; }
  .solution-filter-form > label:first-child { grid-column: auto; }
  .solution-filter-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .solution-filter-actions .button { justify-content: center; }
  .solution-detail-header,
  .solution-detail-body { padding-right: 14px; padding-left: 14px; }
  .solution-detail-title { align-items: flex-start; flex-direction: column; gap: 4px; }
  .solution-detail-title h2 { overflow: visible; white-space: normal; overflow-wrap: anywhere; }
  .solution-facts,
  .solution-delivery-grid { grid-template-columns: 1fr; }
  .solution-facts > div,
  .solution-facts > div:nth-child(odd),
  .solution-facts > div:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid #e4e9f0; }
  .solution-facts > div:last-child { border-bottom: 0; }
  .solution-authoring-section,
  .solution-authoring-rail > section,
  .solution-validation-summary { padding: 14px; }
  .solution-form-grid,
  .solution-authoring-rail { grid-template-columns: 1fr; }
  .solution-section-heading-actions { flex-wrap: wrap; }
  .solution-section-heading-actions > .button { margin-left: 36px; }
  .solution-requirement-row { grid-template-columns: 1fr; }
  .solution-point-editor > header { flex-direction: column; }
  .solution-point-actions { justify-content: flex-start; }
  .solution-authoring-actions > :first-child { margin-right: 0; }
}
.project-scope-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; padding: 10px 14px; border: 1px solid #d0d5dd; border-radius: 8px; background: #fff; font-size: 13px; color: #344054; }
.project-scope-bar a { padding: 5px 10px; border: 1px solid transparent; border-radius: 5px; color: #175cd3; text-decoration: none; }
.project-scope-bar a[aria-current="true"] { background: #eff4ff; border-color: #84adff; font-weight: 600; }
.project-scope-bar a:focus-visible { outline: 2px solid #175cd3; outline-offset: 2px; }
.project-scope-help { color: #475467; }
.schedule-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.schedule-tabs [role="tab"] { padding: 10px 16px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155; cursor: pointer; font: inherit; }
.schedule-tabs [aria-selected="true"] { background: #eff6ff; color: #1d4ed8; border-color: #2563eb; font-weight: 600; }
.schedule-tabs [role="tab"]:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
[data-schedule-panel][hidden], [data-schedule-filter][hidden] { display: none !important; }
