/* 角色视角：把同一套受控数据以不同职责的默认工作面呈现。 */
.role-view-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  margin: 2px 0 18px;
  padding: 5px;
  overflow-x: auto;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #f5f7fb;
}

.role-view-tabs button {
  min-height: 34px;
  padding: 0 14px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #617087;
  font: inherit;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
}

.role-view-tabs button:hover { color: #2548a7; background: #edf2ff; }
.role-view-tabs button.active { color: #263c90; background: #fff; box-shadow: 0 2px 8px rgb(28 45 95 / 12%); }
.role-view-tabs button.active::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 7px 1px 0; border-radius: 50%; background: #6366d8; }

.role-focus {
  margin: 0 0 14px;
  padding: 18px;
  border: 1px solid #e2e6ef;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 20px rgb(27 38 76 / 4%);
}

.role-focus-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.role-focus-heading .eyebrow { margin: 0 0 5px; color: #8a8da0; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.role-focus-heading h3 { margin: 0; color: #29293d; font-size: 18px; letter-spacing: -.02em; }
.role-focus-heading p:last-child { max-width: 680px; margin: 5px 0 0; color: #77798b; font-size: 13px; line-height: 1.55; }
.role-focus-heading > span { flex: 0 0 auto; padding: 6px 9px; border-radius: 99px; background: #f5f5ff; color: #5b5bd6; font-size: 12px; font-weight: 700; }
.role-focus-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.role-focus-cards button { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; min-height: 102px; padding: 13px 36px 13px 13px; overflow: hidden; border: 1px solid #e6e8ef; border-radius: 10px; background: #fcfcfe; color: #313146; text-align: left; cursor: pointer; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.role-focus-cards button:hover { border-color: #c7c8ee; background: #fff; box-shadow: 0 7px 17px rgb(78 78 177 / 11%); transform: translateY(-1px); }
.role-focus-cards b { grid-row: span 2; display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: #eef0ff; color: #5b5bd6; font-size: 11px; }
.role-focus-cards strong { align-self: end; font-size: 14px; }
.role-focus-cards small { color: #7a7c8e; font-size: 12px; font-weight: 400; line-height: 1.45; }
.role-focus-cards i { position: absolute; right: 14px; top: 15px; color: #9395a5; font-size: 17px; font-style: normal; }

.platform-content[data-role-view="execution"] .role-focus { border-top: 3px solid #2d7ff9; }
.platform-content[data-role-view="execution"] .role-focus-heading > span,
.platform-content[data-role-view="execution"] .role-focus-cards b { background: #edf6ff; color: #2676de; }
.platform-content[data-role-view="project"] .role-focus { border-top: 3px solid #7867d9; }
.platform-content[data-role-view="portfolio"] .role-focus { border-top: 3px solid #0c9e8e; }
.platform-content[data-role-view="portfolio"] .role-focus-heading > span,
.platform-content[data-role-view="portfolio"] .role-focus-cards b { background: #eafaf7; color: #0a8477; }

/* 事项、里程碑和关闭是执行人真正持续使用的工作页，采用同一套分步表单而非传统长表单。 */
.member-submission { background: transparent !important; }
.member-submission > h2 { display: flex; align-items: center; gap: 10px; margin-bottom: 5px !important; }
.member-submission > h2::after { content: "受控更新"; padding: 4px 8px; border-radius: 99px; background: #f0f1ff; color: #5b5bd6; font-size: 11px; font-weight: 700; }
.member-pane-tabs { display: flex !important; gap: 6px !important; margin: 16px 0 !important; padding: 5px !important; border: 1px solid #e1e4ec !important; border-radius: 10px !important; background: #f7f8fb !important; }
.member-pane-tabs button { position: relative; min-height: 38px !important; padding: 0 13px !important; border: 0 !important; border-radius: 7px !important; background: transparent !important; color: #6d7081 !important; }
.member-pane-tabs button.active { background: #fff !important; color: #4d4dc0 !important; box-shadow: 0 2px 7px rgb(38 38 77 / 10%) !important; }
.member-pane-tabs button.active::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 6px 1px 0; border-radius: 50%; background: #6565d8; }

.member-submission .update-queue,
.member-submission .member-form { margin-top: 14px !important; padding: 20px !important; border: 1px solid #e3e6ed !important; border-radius: 12px !important; background: #fff !important; box-shadow: 0 8px 20px rgb(35 39 73 / 4%) !important; }
.member-submission .update-queue { border-top: 3px solid #4e8ff4 !important; }
.member-submission .member-form { border-top: 3px solid #7062d4 !important; }
.member-submission .update-queue h3,
.member-submission .member-form > h3 { margin: 0 !important; color: #2c2c43 !important; font-size: 17px !important; }
.member-submission .back-to-queue { float: right; margin-top: -22px !important; color: #5b5bd6 !important; }

.form-stepper { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 18px 0 20px; padding: 0; list-style: none; border: 1px solid #e5e6ed; border-radius: 9px; overflow: hidden; background: #fafafd; }
.form-stepper li { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px; border-right: 1px solid #e5e6ed; color: #77798a; font-size: 12px; }
.form-stepper li:last-child { border-right: 0; }
.form-stepper b { display: grid; flex: 0 0 21px; width: 21px; height: 21px; place-items: center; border-radius: 50%; background: #e9e9fa; color: #5656c5; font-size: 11px; }
.form-stepper li:first-child { color: #40408d; font-weight: 700; background: #f5f5ff; }
.form-stepper li:first-child b { background: #5b5bd6; color: #fff; }
.member-submission .form-grid { gap: 14px 16px !important; }
.member-submission .form-grid > label { padding: 10px 12px !important; border: 1px solid #e5e7ed; border-radius: 9px; background: #fcfcfe; color: #55576b; font-size: 12px; }
.member-submission .form-grid > label:focus-within { border-color: #aaa9ea; background: #fff; box-shadow: 0 0 0 3px rgb(91 91 214 / 10%); }
.member-submission .form-grid input,
.member-submission .form-grid select,
.member-submission .form-grid textarea { width: 100%; margin-top: 7px; border: 0 !important; border-radius: 5px !important; background: #fff !important; color: #303044; box-shadow: inset 0 0 0 1px #dfe2eb; }
.member-submission .form-grid textarea { min-height: 88px; }
.member-submission .form-grid input:focus,
.member-submission .form-grid select:focus,
.member-submission .form-grid textarea:focus { outline: 0 !important; box-shadow: inset 0 0 0 1px #8888d9, 0 0 0 3px rgb(91 91 214 / 10%); }
.form-section-heading { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 10px; margin-top: 8px; padding: 10px 0 4px; border-bottom: 1px solid #eceef3; }
.form-section-heading strong { color: #383850; font-size: 14px; }
.form-section-heading small { color: #858798; font-size: 12px; line-height: 1.5; }
.member-submission .member-form > button[type="submit"] { min-height: 42px !important; margin-top: 18px !important; padding: 0 18px !important; border-color: #5b5bd6 !important; background: #5b5bd6 !important; box-shadow: 0 5px 12px rgb(91 91 214 / 18%) !important; }
.member-submission .member-form > button[type="submit"]:hover:not(:disabled) { border-color: #4a4ab8 !important; background: #4a4ab8 !important; }

/* 流程发起页复用分步结构，但不重复成员事项页的业务文案。 */
.workflow-form.product-form { margin-top: 16px !important; padding: 20px !important; border: 1px solid #e3e6ed !important; border-top: 3px solid #0c9e8e !important; border-radius: 12px !important; background: #fff !important; box-shadow: 0 8px 20px rgb(35 39 73 / 4%); }
.workflow-form.product-form > h3 { margin: 0 !important; color: #2c2c43; font-size: 17px; }
.workflow-form.product-form .form-grid { gap: 14px 16px !important; }
.workflow-form.product-form .form-grid > label { padding: 10px 12px; border: 1px solid #e5e7ed; border-radius: 9px; background: #fcfcfe; color: #55576b; font-size: 12px; }
.workflow-form.product-form .form-grid > label:focus-within { border-color: #72b7ad; background: #fff; box-shadow: 0 0 0 3px rgb(12 158 142 / 10%); }
.workflow-form.product-form .form-grid input,
.workflow-form.product-form .form-grid select,
.workflow-form.product-form .form-grid textarea { width: 100%; margin-top: 7px; border: 0 !important; border-radius: 5px !important; background: #fff !important; color: #303044; box-shadow: inset 0 0 0 1px #dfe2eb; }
.workflow-form.product-form .form-grid textarea { min-height: 88px; }
.workflow-form.product-form > button[type="submit"] { min-height: 42px !important; margin-top: 18px !important; padding: 0 18px !important; border-color: #0c9e8e !important; background: #0c9e8e !important; box-shadow: 0 5px 12px rgb(12 158 142 / 18%) !important; }
.workflow-form.product-form > button[type="submit"]:hover:not(:disabled) { border-color: #08796d !important; background: #08796d !important; }

.platform-content[data-role-view="execution"] .workspace-intro { border-left-color: #2d7ff9; }
.platform-content[data-role-view="project"] .workspace-intro { border-left-color: #7867d9; }
.platform-content[data-role-view="portfolio"] .workspace-intro { border-left-color: #0c9e8e; }

.platform-content[data-role-view="execution"] .workspace-quick-actions { background: linear-gradient(135deg, #eff6ff, #fff); }
.platform-content[data-role-view="project"] .workspace-quick-actions { background: linear-gradient(135deg, #f5f1ff, #fff); }
.platform-content[data-role-view="portfolio"] .workspace-quick-actions { background: linear-gradient(135deg, #ebfbf8, #fff); }

.platform-content[data-role-view="execution"] .workspace-intro h1::before,
.platform-content[data-role-view="project"] .workspace-intro h1::before,
.platform-content[data-role-view="portfolio"] .workspace-intro h1::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 10px; border-radius: 3px; vertical-align: 2px; }
.platform-content[data-role-view="execution"] .workspace-intro h1::before { background: #2d7ff9; }
.platform-content[data-role-view="project"] .workspace-intro h1::before { background: #7867d9; }
.platform-content[data-role-view="portfolio"] .workspace-intro h1::before { background: #0c9e8e; }

/* 管理卡片采用语义色，避免页面只能依靠一组品牌色区分信息。 */
.management-brief .metric-card:nth-of-type(1) { border-top: 3px solid #0c9e8e; }
.management-brief .metric-card:nth-of-type(2) { border-top: 3px solid #e4a132; }
.management-brief .metric-card:nth-of-type(3) { border-top: 3px solid #e06a5f; }
.management-brief .metric-card:nth-of-type(4) { border-top: 3px solid #7867d9; }
.gantt-legend i.plan { background: #7867d9; }
.gantt-legend i.actual { background: #0c9e8e; }
.gantt-legend i.risk { background: #e06a5f; }

/* 正式执行工作台：深色导航、双栏信息密度和多语义色，与旧长表单彻底分层。 */
.platform-layout { align-items: stretch; }
.platform-sidebar { background: #102848 !important; border-radius: 16px; box-shadow: 0 14px 30px rgb(15 39 73 / 16%); }
.workspace-nav { padding: 14px 10px !important; background: #102848 !important; box-shadow: 0 14px 30px rgb(15 39 73 / 16%) !important; }
.workspace-nav::before { color: #b9c8dd !important; }
.workspace-nav { min-height: calc(100vh - 180px) !important; }
.workspace-nav button { color: #b9c8dd !important; border-radius: 8px !important; }
.workspace-nav button[hidden] { display: none !important; }
.workspace-nav button::before { background: #6f89ad !important; }
.workspace-nav button::before { display: none !important; }.workspace-nav button i { display: grid; width: 18px; margin-right: 9px; color: #8fa9c9; font-size: 14px; font-style: normal; text-align: center; }.workspace-nav button.active i { color: #fff; }
.workspace-nav button:hover { color: #fff !important; background: rgb(255 255 255 / 9%) !important; }
.workspace-nav button.active { color: #fff !important; background: #1877f2 !important; box-shadow: 0 5px 13px rgb(0 0 0 / 18%); }
.workspace-nav button.active::before { background: #fff !important; }
.workspace-intro { display: none !important; }
.role-view-tabs { margin: 0 0 16px; border-radius: 9px; background: #fff; box-shadow: 0 2px 12px rgb(33 52 83 / 5%); }
.role-view-tabs button { min-height: 30px; font-size: 12px; }
.role-focus { display: none !important; }
.workspace-panel-context { display: none !important; }
.product-topbar { display: flex; align-items: center; gap: 18px; min-height: 52px; margin: 0 0 10px; padding: 0 2px 10px; border-bottom: 1px solid #e3eaf3; }
.product-topbar-brand { display: grid; min-width: 150px; gap: 1px; }.product-topbar-brand span { color: #1d3557; font-size: 14px; font-weight: 800; }.product-topbar-brand small { color: #8b9ab0; font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.product-search { position: relative; display: flex; align-items: center; width: min(310px, 42vw); margin-left: auto; padding: 0 10px; border: 1px solid #e1e9f2; border-radius: 7px; background: #f7faff; color: #94a2b4; }.product-search:focus-within { border-color: #77aaf0; background: #fff; box-shadow: 0 0 0 3px rgb(35 116 222 / 9%); }.product-search input { min-width: 0; width: 100%; height: 30px; border: 0; outline: 0; background: transparent; color: #40536e; font: inherit; font-size: 11px; }.product-search span { margin-right: 6px; font-size: 16px; }
.product-search-results { position: absolute; z-index: 40; top: calc(100% + 6px); right: 0; left: 0; overflow: hidden; border: 1px solid #dce6f2; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgb(23 48 83 / 17%); }.product-search-results button { display: grid; width: 100%; gap: 3px; padding: 9px 11px; border: 0; border-bottom: 1px solid #edf2f7; background: #fff; color: #334b6b; text-align: left; cursor: pointer; }.product-search-results button:hover { background: #f4f8ff; }.product-search-results strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.product-search-results small, .product-search-results p { overflow: hidden; margin: 0; color: #8b9ab0; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.product-search-results p { padding: 10px; white-space: normal; }
.product-topbar-actions { display: flex; align-items: center; gap: 8px; }.product-topbar-actions > button { display: grid; width: 29px; height: 29px; place-items: center; padding: 0; border: 0; border-radius: 6px; background: transparent; color: #58708e; font-size: 14px; cursor: pointer; }.product-topbar-actions > button:hover { background: #edf5ff; color: #1976ed; }.product-topbar-actions > button:last-of-type { color: #ef725f; font-size: 10px; }.product-current-user { display: flex; align-items: center; gap: 6px; margin-left: 2px; }.product-current-user b { display: grid; width: 27px; height: 27px; place-items: center; overflow: hidden; border-radius: 50%; background: #e7efff; color: #236ed8; font-size: 11px; }.product-current-user small { max-width: 72px; overflow: hidden; color: #60748f; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.execution-dashboard { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.execution-dashboard-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 0 0 14px; }
.execution-dashboard-head .eyebrow { margin: 0 0 4px; color: #2d7ff9; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.execution-dashboard-head h2 { margin: 0; color: #172b4d; font-size: 23px; letter-spacing: -.04em; }
.execution-dashboard-head p:last-child { margin: 6px 0 0; color: #728197; font-size: 12px; }
.dashboard-refresh { min-height: 34px; padding: 0 13px; border: 1px solid #cddcf0; border-radius: 7px; background: #fff; color: #2369c8; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.execution-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 14px; align-items: start; }
.execution-dashboard-main, .execution-dashboard-rail { display: grid; gap: 14px; }
.dashboard-panel { overflow: hidden; border: 1px solid #e1e9f4; border-radius: 12px; background: #fff; box-shadow: 0 5px 20px rgb(23 48 83 / 5%); }
.dashboard-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px 16px 10px; }
.dashboard-panel-heading h3 { margin: 0; color: #1c3153; font-size: 15px; }
.dashboard-panel-heading h3 small { margin-left: 4px; color: #4a87db; font-size: 11px; font-weight: 700; }
.dashboard-panel-heading p { margin: 4px 0 0; color: #8090a6; font-size: 11px; }
.dashboard-panel-heading > button { padding: 2px 0; border: 0; background: transparent; color: #3d79ce; font: inherit; font-size: 11px; cursor: pointer; }
.dashboard-task-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 0 16px 16px; }
.dashboard-task-card { padding: 13px; border: 1px solid #e5edf7; border-radius: 9px; background: #fbfdff; }
.dashboard-card-top { display: flex; justify-content: space-between; align-items: center; }
.dashboard-card-top span { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 6px; background: #eaf3ff; color: #1475e8; font-size: 10px; font-weight: 800; }
.dashboard-card-top em { padding: 3px 6px; border-radius: 99px; background: #eef8f3; color: #26966a; font-size: 10px; font-style: normal; }
.dashboard-task-card.tone-risk .dashboard-card-top em { background: #fff0ef; color: #dc5b55; }
.dashboard-task-card.tone-warn .dashboard-card-top em { background: #fff6df; color: #b47a12; }
.dashboard-task-card h4 { min-height: 36px; margin: 11px 0 3px; color: #243552; font-size: 13px; line-height: 1.35; }
.dashboard-task-card > p { min-height: 16px; margin: 0; overflow: hidden; color: #7b8aa0; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-task-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 12px 0; }
.dashboard-task-card dl div { min-width: 0; }
.dashboard-task-card dt { margin-bottom: 3px; color: #9aa6b8; font-size: 9px; }
.dashboard-task-card dd { margin: 0; overflow: hidden; color: #50627d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-task-card > button { width: 100%; min-height: 29px; border: 0; border-radius: 5px; background: #1976ed; color: #fff; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.dashboard-task-card.tone-warn > button { background: #e9a733; }.dashboard-task-card.tone-risk > button { background: #dc625b; }
.dashboard-table-wrap { overflow-x: auto; padding: 0 16px 14px; }
.dashboard-work-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.dashboard-work-table th { padding: 8px 7px; border-bottom: 1px solid #e9eff7; color: #8796aa; font-size: 10px; font-weight: 650; text-align: left; white-space: nowrap; }
.dashboard-work-table td { padding: 9px 7px; border-bottom: 1px solid #f0f4f8; color: #5d6f87; vertical-align: middle; }
.dashboard-work-table td strong, .dashboard-work-table td small { display: block; }.dashboard-work-table td strong { max-width: 170px; overflow: hidden; color: #344967; text-overflow: ellipsis; white-space: nowrap; }.dashboard-work-table td small { margin-top: 3px; color: #97a4b5; font-size: 10px; }
.dashboard-work-table td > button { border: 0; background: transparent; color: #1976ed; font: inherit; font-size: 11px; cursor: pointer; }
.dashboard-tag, .dashboard-status { display: inline-block; padding: 3px 6px; border-radius: 4px; background: #eef8f3; color: #29986d; font-size: 10px; white-space: nowrap; }.dashboard-tag.warn { background: #fff5dd; color: #b5790d; }.dashboard-tag.risk { background: #ffefed; color: #d85b55; }.dashboard-status { background: #edf4ff; color: #3975c8; }
.dashboard-timeline, .dashboard-confirm-list, .dashboard-update-list { padding: 0 14px 12px; }
.dashboard-timeline > button, .dashboard-update-list > button { position: relative; display: grid; grid-template-columns: 42px 1fr 10px; width: 100%; gap: 8px; padding: 8px 0; border: 0; border-bottom: 1px solid #eef2f7; background: transparent; text-align: left; cursor: pointer; }.dashboard-timeline > button:last-child, .dashboard-update-list > button:last-child { border-bottom: 0; }
.dashboard-timeline time, .dashboard-update-list time { color: #70809a; font-size: 10px; }.dashboard-timeline strong, .dashboard-update-list strong { display: block; overflow: hidden; color: #354a6a; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.dashboard-timeline small, .dashboard-update-list small { display: block; overflow: hidden; margin-top: 3px; color: #96a3b5; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.dashboard-timeline i { width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: #42a178; }.dashboard-timeline i.warn { background: #e9a733; }.dashboard-timeline i.risk { background: #db625a; }
.dashboard-confirm-list > button { display: grid; grid-template-columns: auto 1fr; gap: 4px 7px; width: 100%; padding: 9px 0; border: 0; border-bottom: 1px solid #eef2f7; background: transparent; text-align: left; cursor: pointer; }.dashboard-confirm-list > button:last-child { border-bottom: 0; }.dashboard-confirm-list span { grid-row: span 2; align-self: center; padding: 3px 5px; border-radius: 4px; background: #fff3df; color: #b87810; font-size: 9px; }.dashboard-confirm-list strong { color: #3c5070; font-size: 11px; }.dashboard-confirm-list small { color: #99a6b7; font-size: 10px; }
.dashboard-empty { margin: 0; padding: 12px 2px; color: #90a0b4; font-size: 11px; text-align: center; }

.management-dashboard { margin: 0 0 14px !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }.management-dashboard-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 0 0 13px; }.management-dashboard-head .eyebrow { margin: 0 0 4px; color: #715ac8; font-size: 10px; font-weight: 800; letter-spacing: .12em; }.management-dashboard-head h2 { margin: 0; color: #1c3153; font-size: 22px; }.management-dashboard-head p:last-child { margin: 5px 0 0; color: #7788a0; font-size: 12px; }.management-dashboard-head > button { min-height: 32px; padding: 0 12px; border: 1px solid #dcd8f4; border-radius: 7px; background: #faf9ff; color: #6554b7; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.project-portfolio { border-top: 3px solid #347ee8 !important; }.project-portfolio > h2 { color: #1d3557 !important; }.portfolio-gantt { border-color: #dfe8f4 !important; box-shadow: 0 5px 20px rgb(23 48 83 / 4%); }.portfolio-gantt-summary { background: #fbfdff; }.portfolio-analysis { background: #f9fbff !important; }.project-hub { border-top: 3px solid #725dd0 !important; }.project-hub .project-primary-action { background: #2a78e8 !important; border-color: #2a78e8 !important; }.project-hub .progress-track i { background: #2a78e8 !important; }.project-hub .project-view-tabs button.active:after { background: #2a78e8 !important; }.gantt-project-plan { background: #8dbaf8 !important; border-color: #5f9ce9 !important; }.gantt-project-actual.active { background: #2d8f76 !important; }.gantt-project-actual.risk { background: #dc625b !important; }.gantt-project-actual.done { background: #5f8ae6 !important; }
.management-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; overflow: hidden; border: 1px solid #e2e8f1; border-radius: 10px; background: #fff; box-shadow: 0 5px 20px rgb(23 48 83 / 4%); }.management-kpis article { display: grid; gap: 4px; min-height: 86px; padding: 13px 15px; border-right: 1px solid #edf1f6; }.management-kpis article:last-child { border-right: 0; }.management-kpis small { color: #8291a4; font-size: 10px; }.management-kpis strong { color: #26415f; font-size: 25px; line-height: 1; }.management-kpis span { color: #98a5b4; font-size: 10px; line-height: 1.3; }.management-kpis article.warning strong { color: #dc625b; }.management-kpis article.planning strong { color: #a77722; }
.management-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .9fr); gap: 14px; }.management-priority-list, .management-action-list { padding: 0 15px 12px; }.management-priority-list > button { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; width: 100%; gap: 9px; padding: 10px 0; border: 0; border-bottom: 1px solid #eef2f7; background: transparent; text-align: left; cursor: pointer; }.management-priority-list > button:last-child { border-bottom: 0; }.management-project-state { width: 7px; height: 7px; border-radius: 50%; background: #36a176; }.management-project-state.warn { background: #e5a333; }.management-project-state.risk { background: #dd625b; }.management-priority-list strong { display: block; overflow: hidden; color: #354a6a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.management-priority-list small { display: block; margin-top: 3px; overflow: hidden; color: #93a1b3; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.management-priority-list em { color: #8290a4; font-size: 10px; font-style: normal; white-space: nowrap; }.management-action-list > button { display: grid; grid-template-columns: auto 1fr; gap: 3px 7px; width: 100%; padding: 10px 0; border: 0; border-bottom: 1px solid #eef2f7; background: transparent; text-align: left; cursor: pointer; }.management-action-list > button:last-child { border-bottom: 0; }.management-action-list span { grid-row: span 2; align-self: start; padding: 3px 5px; border-radius: 4px; background: #f2efff; color: #6d59c4; font-size: 9px; }.management-action-list strong { color: #425575; font-size: 11px; }.management-action-list small { color: #93a0b2; font-size: 10px; line-height: 1.4; }

@media (max-width: 1050px) { .execution-dashboard-grid { grid-template-columns: 1fr; }.execution-dashboard-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }.dashboard-task-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }.management-dashboard-grid { grid-template-columns: 1fr; } }

@media (max-width: 720px) {
  .role-view-tabs { width: 100%; margin-bottom: 12px; }
  .role-view-tabs button { padding: 0 11px; }
  .role-focus { padding: 15px; }
  .role-focus-heading { display: block; }
  .role-focus-heading > span { display: inline-block; margin-top: 10px; }
  .role-focus-cards { grid-template-columns: 1fr; }
  .role-focus-cards button { min-height: 76px; }
  .form-stepper { grid-template-columns: 1fr; }
  .form-stepper li { border-right: 0; border-bottom: 1px solid #e5e6ed; }
  .form-stepper li:last-child { border-bottom: 0; }
  .form-section-heading { display: block; }
  .form-section-heading small { display: block; margin-top: 3px; }
  .platform-sidebar { border-radius: 10px; }
  .workspace-nav { min-height: 0 !important; }
  .product-topbar { flex-wrap: wrap; gap: 9px; }.product-topbar-brand { min-width: 0; }.product-search { order: 3; width: 100%; margin-left: 0; }.product-current-user small { display: none; }
  .execution-dashboard-head { align-items: flex-start; flex-direction: column; }
  .execution-dashboard-grid, .execution-dashboard-rail, .dashboard-task-cards { grid-template-columns: 1fr; }
  .management-dashboard-head { align-items: flex-start; flex-direction: column; }.management-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }.management-kpis article:nth-child(2) { border-right: 0; }.management-kpis article:nth-child(-n+2) { border-bottom: 1px solid #edf1f6; }
}

/* 产品工作台成品层：沿用现有真实数据与受控表单，只重构信息层级、分区和可视化表达。 */
:root { background: #eef3f8; }
.shell { max-width: none; min-height: 100vh; padding: 0; background: #eef3f8; }
.shell > header { display: none; }
.platform-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 0; min-height: 100vh; margin: 0; }
.platform-sidebar { position: sticky; top: 0; z-index: 3; align-self: start; height: 100vh; padding: 18px 12px; border: 0; border-radius: 0; background: #112b4f; box-shadow: none; }
.workspace-nav { min-height: auto !important; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.workspace-nav:before { content: "产研项目管理"; display: block; padding: 10px 12px 28px; color: #fff; font-size: 17px; font-weight: 800; letter-spacing: -.02em; }
.workspace-nav:after { display: none; }
.workspace-nav button { position: relative; min-height: 44px; margin: 2px 0; padding: 10px 12px; border-radius: 7px; color: #bdcce0; font-size: 13px; font-weight: 600; }
.workspace-nav button:before { width: 7px; height: 7px; background: #6683aa; }
.workspace-nav button:hover { background: #1a3a64; color: #fff; }
.workspace-nav button.active { background: #1976ed; color: #fff; box-shadow: 0 5px 14px rgb(2 26 64 / 24%); }
.workspace-nav button.active:before { background: #fff; }
.platform-content { min-width: 0; padding: 0 28px 36px; }
.product-topbar { position: sticky; z-index: 2; top: 0; min-height: 66px; margin: 0 -28px 24px; padding: 0 28px; border-bottom: 1px solid #dfe7f0; background: rgb(255 255 255 / 96%); box-shadow: 0 3px 16px rgb(22 50 84 / 4%); backdrop-filter: blur(12px); }
.product-topbar-brand { color: #19385f; font-size: 16px; font-weight: 800; }
.product-topbar-brand small { color: #7890ab; font-size: 9px; letter-spacing: .12em; }
.product-search { max-width: 310px; margin-left: auto; border: 1px solid #dce6f1; border-radius: 7px; background: #f7faff; }
.product-search:focus-within { border-color: #478cf4; background: #fff; box-shadow: 0 0 0 3px rgb(46 124 235 / 10%); }
.product-topbar-actions > button { color: #55718f; }
.product-topbar-actions > button:hover { color: #1478e8; background: #edf6ff; }
.role-home-picker { display: flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid #dfe8f3; border-radius: 7px; background: #f8fbff; color: #70839a; font-size: 10px; font-weight: 700; }.role-home-picker select { max-width: 102px; padding: 0; border: 0; outline: 0; background: transparent; color: #2d6097; font: inherit; font-weight: 800; cursor: pointer; }
.product-current-user { gap: 8px; padding-left: 12px; border-left: 1px solid #e5edf5; }
.product-current-user b { background: #236fda; color: #fff; }
.product-current-user small { color: #46617f; font-weight: 700; }
.role-view-tabs { width: max-content; max-width: 100%; min-height: 42px; margin: 0 0 16px; padding: 4px; border: 1px solid #dce5f0; border-radius: 9px; background: #f7faff; box-shadow: none; }
.role-view-tabs button { min-height: 32px; padding: 0 16px; color: #66809b; font-size: 12px; }
.role-view-tabs button.active { color: #146fe0; background: #fff; box-shadow: 0 2px 8px rgb(38 80 130 / 12%); }
.role-view-tabs button.active::before { background: #1d7bed; }
.workspace-intro { margin: 0 0 12px !important; padding: 0 0 13px !important; border-bottom: 1px solid #dfe7f0 !important; }
.workspace-intro .eyebrow { color: #768da8 !important; font-size: 11px !important; }
.workspace-intro h2 { color: #17385f !important; font-size: 25px !important; letter-spacing: -.03em; }
.workspace-quick-actions { margin: 0 0 14px; }
.workspace-quick-actions button { min-height: 58px !important; border: 1px solid #dfe8f2 !important; border-radius: 9px !important; background: #fff !important; box-shadow: 0 3px 12px rgb(32 69 109 / 4%); }
.workspace-quick-actions button:nth-child(1) { border-top: 3px solid #1976ed !important; }.workspace-quick-actions button:nth-child(2) { border-top: 3px solid #7867d9 !important; }.workspace-quick-actions button:nth-child(3) { border-top: 3px solid #1da58b !important; }.workspace-quick-actions button:nth-child(4) { border-top: 3px solid #e6a238 !important; }
.workspace-quick-actions button:hover { transform: translateY(-1px); border-color: #a8c9f5 !important; }
.workspace-quick-actions strong { color: #254567; font-size: 13px; }
.workspace-subnav { gap: 7px !important; margin-bottom: 12px; }
.workspace-subnav button { min-height: 34px; border: 1px solid #dce6f0 !important; border-radius: 7px !important; background: #fff !important; color: #58718d; }
.workspace-subnav button.active { border-color: #91baf3 !important; background: #edf6ff !important; color: #146fdf !important; }
.workspace-panel-context { margin: 0 0 13px !important; padding: 6px 10px !important; border-left: 3px solid #78aaf0 !important; background: transparent !important; color: #71879f !important; }
.platform-content > .next { margin-top: 12px !important; padding: 0 !important; overflow: hidden; border: 1px solid #dfe8f1 !important; border-radius: 11px !important; background: #fff; box-shadow: 0 4px 18px rgb(28 63 103 / 5%); }
.platform-content > .next:not(.execution-dashboard):not(.management-dashboard):not(.project-portfolio):not(.project-hub) > :is(h2,h3,p.hint,form,.inline-actions,.table-wrap,.update-queue,.member-pane-tabs,.project-planning-hub) { margin-left: 20px; margin-right: 20px; }
.platform-content > .next > h2 { margin-top: 20px; color: #1f4064; font-size: 18px; }.platform-content > .next > h2:before { background: #1c7eed; }
.execution-dashboard { border-top: 3px solid #1976ed !important; }
.execution-dashboard-head { align-items: center; padding: 22px 22px 14px; }
.execution-dashboard-head .eyebrow { color: #4e86cb; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.execution-dashboard-head h2 { color: #16385f; font-size: 25px; letter-spacing: -.03em; }
.execution-dashboard-head p:last-child { color: #7088a3; }
.dashboard-refresh { border: 1px solid #a9c8f2 !important; border-radius: 7px !important; background: #fff !important; color: #176fda !important; }
.execution-health-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 22px 16px; overflow: hidden; border: 1px solid #e0e9f2; border-radius: 9px; background: #fbfdff; }
.execution-health-strip article { display: grid; gap: 4px; min-height: 76px; padding: 12px 15px; border-right: 1px solid #e8eef5; }.execution-health-strip article:last-child { border-right: 0; }
.execution-health-strip small { color: #7d91a8; font-size: 10px; }.execution-health-strip strong { color: #1875e4; font-size: 24px; line-height: 1; }.execution-health-strip span { color: #98a8b9; font-size: 10px; }.execution-health-strip .attention strong { color: #dc675e; }
.execution-dashboard-grid { padding: 0 22px 22px; gap: 16px; }.dashboard-panel { overflow: hidden; border: 1px solid #e0e9f3; border-radius: 9px; background: #fff; box-shadow: none; }
.dashboard-panel-heading { min-height: 56px; padding: 12px 14px; border-bottom: 1px solid #e8eef4; background: #fbfdff; }.dashboard-panel-heading h3 { color: #24486f; font-size: 14px; }.dashboard-panel-heading h3 small { background: #edf5ff; color: #1977e6; }.dashboard-panel-heading p { color: #8a9db2; font-size: 10px; }.dashboard-panel-heading > button { color: #2078df; font-size: 11px; }
.dashboard-task-cards { gap: 12px; padding: 14px; }.dashboard-task-card { position: relative; padding: 14px; border-color: #e0e9f3; border-radius: 8px; background: #fff; }.dashboard-task-card:before { position: absolute; top: 0; right: 0; left: 0; height: 3px; border-radius: 8px 8px 0 0; background: #3184ee; content: ""; }.dashboard-task-card.tone-warn:before { background: #e7a12f; }.dashboard-task-card.tone-risk:before { background: #dc655e; }.dashboard-card-top span { background: #eaf4ff; color: #1474df; }.dashboard-task-card h4 { color: #24466d; }.dashboard-task-card > p { color: #8196ac; }.dashboard-task-card > button { border-radius: 6px; background: #1978e9; }.dashboard-task-card.tone-warn > button { background: #d99627; }.dashboard-task-card.tone-risk > button { background: #d65e58; }
.dashboard-work-table th { background: #f8fbfe; color: #7890aa; }.dashboard-work-table td { border-color: #edf2f7; color: #617b98; }.dashboard-work-table td strong { color: #294c72; }.dashboard-status { background: #edf6ff; color: #2877d0; }.dashboard-tag { background: #edf8f4; color: #278d6a; }.dashboard-tag.warn { background: #fff6e3; color: #b77b16; }.dashboard-tag.risk { background: #fff0ee; color: #d35b54; }
.dashboard-milestones { border-top: 3px solid #7867d9; }.dashboard-confirm { border-top: 3px solid #e6a238; }.dashboard-updates { border-top: 3px solid #18a48b; }.dashboard-timeline time,.dashboard-update-list time { color: #547ca9; }.dashboard-timeline strong,.dashboard-update-list strong,.dashboard-confirm-list strong { color: #294a70; }
.management-dashboard { border: 0 !important; background: transparent !important; box-shadow: none !important; overflow: visible !important; }.management-dashboard-head { margin: 4px 0 14px; }.management-dashboard-head .eyebrow { color: #705dca; }.management-dashboard-head h2 { color: #193d63; font-size: 25px; }.management-dashboard-head > button { border-color: #cec8f2; background: #faf9ff; color: #6653bd; }
.management-kpis { border-color: #dfe8f1; border-radius: 10px; box-shadow: 0 4px 18px rgb(28 63 103 / 5%); }.management-kpis article { position: relative; min-height: 92px; }.management-kpis article:before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: #1d7fec; content: ""; }.management-kpis article:nth-child(2):before { background: #7664d3; }.management-kpis article:nth-child(3):before { background: #dc665d; }.management-kpis article:nth-child(4):before { background: #e1a033; }.management-kpis strong { color: #24486e; }.management-dashboard-grid { grid-template-columns: minmax(250px, .85fr) minmax(250px, 1fr) minmax(300px, 1.2fr); gap: 15px; }.management-dashboard-grid .dashboard-panel { min-height: 276px; }.management-priority-panel { grid-column: span 1; }.management-distribution { display: grid; gap: 13px; padding: 16px; }.management-distribution button { display: grid; grid-template-columns: 55px minmax(0, 1fr) auto; gap: 7px 8px; align-items: center; width: 100%; padding: 0; border: 0; background: transparent; color: #54708e; text-align: left; cursor: pointer; }.management-distribution button > span { font-size: 11px; }.management-distribution i { height: 8px; overflow: hidden; border-radius: 99px; background: #ebf0f5; }.management-distribution i b { display: block; min-width: 7px; height: 100%; border-radius: inherit; background: #3b9a78; }.management-distribution i b.planning { background: #e2a13a; }.management-distribution i b.risk { background: #da645d; }.management-distribution strong { color: #365574; font-size: 12px; }.management-distribution small { grid-column: 2 / -1; color: #92a2b3; font-size: 10px; }
.management-action-list > button { padding: 12px 0; }.management-action-list span { background: #fff3df; color: #b57914; }.management-priority-list > button { padding: 12px 0; }.management-project-state { width: 8px; height: 8px; }.management-project-state.normal { background: #22a384; }
.project-portfolio,.project-hub { border-top: 3px solid #7663d5 !important; }.project-portfolio > h2 { margin: 20px 20px 4px !important; color: #24476d !important; }.project-portfolio > .hint { margin: 0 20px 16px !important; color: #7e94ad; }.portfolio-gantt { margin: 0 20px 20px; border-color: #dfe8f2 !important; border-radius: 9px; }.project-hub { padding: 22px !important; }.project-header h2 { color: #24466c !important; }.project-primary-action { border-color: #1b78e8 !important; background: #1b78e8 !important; }.project-metrics { border-color: #e1e9f2; }.project-metrics article:nth-child(1) strong { color: #267ce4; }.project-metrics article:nth-child(2) strong { color: #7866d9; }.project-metrics article:nth-child(3) strong { color: #d36b58; }.project-metrics article:nth-child(4) strong { color: #20a080; }.project-view-tabs button.active,.project-view-tabs button:hover:not(:disabled) { color: #1675e3 !important; }.project-view-tabs button.active:after { background: #1c7dec !important; }
.member-submission,.workflow-form,.member-form { color: #49647f; }.member-form { border-color: #e0e8f1 !important; border-radius: 9px !important; }.member-form h3 { color: #264a70 !important; }.member-form input,.member-form textarea,.member-form select { border-color: #dbe5ef !important; background: #fbfdff !important; }.member-form input:focus,.member-form textarea:focus,.member-form select:focus { border-color: #4a91f3 !important; background: #fff !important; box-shadow: 0 0 0 3px rgb(49 131 238 / 10%); }.member-form button[type="submit"],.member-form > button { background: #1978e9 !important; }
@media (max-width: 1120px) { .management-dashboard-grid { grid-template-columns: 1fr 1fr; }.management-priority-panel { grid-column: 1 / -1; }.execution-health-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .platform-layout { grid-template-columns: 1fr; }.platform-sidebar { position: static; height: auto; padding: 10px 12px; }.workspace-nav { display: flex; align-items: center; gap: 4px; overflow-x: auto; }.workspace-nav:before { flex: 0 0 auto; padding: 8px 12px; font-size: 14px; }.workspace-nav:after { display: none; }.workspace-nav button { flex: 0 0 auto; }.platform-content { padding: 0 16px 28px; }.product-topbar { margin: 0 -16px 18px; padding: 0 16px; }.management-dashboard-grid { grid-template-columns: 1fr; }.management-priority-panel { grid-column: auto; } }
@media (max-width: 620px) { .product-search { order: 3; width: 100%; max-width: none; }.execution-health-strip { grid-template-columns: 1fr; }.execution-health-strip article { min-height: 58px; border-right: 0; border-bottom: 1px solid #e8eef5; }.execution-health-strip article:last-child { border-bottom: 0; }.execution-dashboard-head,.execution-dashboard-grid { padding-right: 14px; padding-left: 14px; }.dashboard-task-cards { grid-template-columns: 1fr; }.platform-content > .next:not(.execution-dashboard):not(.management-dashboard):not(.project-portfolio):not(.project-hub) > :is(h2,h3,p.hint,form,.inline-actions,.table-wrap,.update-queue,.member-pane-tabs,.project-planning-hub) { margin-left: 14px; margin-right: 14px; } }

/* 工作台第二层：用“下一步行动”替代首页大表格。完整字段仅在用户进入事项后展开。 */
.execution-focus-callout { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin: 0 22px 16px; padding: 12px 14px; border: 1px solid #f0dcac; border-left: 3px solid #e5a135; border-radius: 9px; background: #fffaf0; }
.execution-focus-callout > span { color: #a06a13; font-size: 11px; font-weight: 800; }.execution-focus-callout strong { overflow: hidden; color: #5f4a25; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.execution-focus-callout button { border: 0; background: transparent; color: #176fda; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.dashboard-data-notice { margin: -2px 22px 12px; padding: 8px 11px; border: 1px solid #cfe0f7; border-radius: 8px; background: #f4f8ff; color: #52749a; font-size: 11px; line-height: 1.45; }
.execution-dashboard .execution-dashboard-grid { grid-template-columns: minmax(0, 1.35fr) minmax(290px, .82fr); }.execution-dashboard-main { display: grid; gap: 16px; min-width: 0; }.dashboard-task-card { display: grid; grid-template-rows: auto auto auto 1fr auto; min-height: 202px; }.dashboard-task-card > p { min-height: 36px; margin: 7px 0 9px; }.dashboard-card-context { display: grid; gap: 5px; align-content: start; margin: 0 0 12px; padding-top: 10px; border-top: 1px solid #edf1f6; }.dashboard-card-context span { overflow: hidden; color: #566f8d; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.dashboard-card-context small { color: #91a0b1; font-size: 10px; }.dashboard-task-card > button { align-self: end; width: 100%; }
.dashboard-action-queue { padding: 1px 15px 8px; }.dashboard-action-row { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; width: 100%; gap: 10px; padding: 13px 0; border: 0; border-bottom: 1px solid #edf1f6; background: transparent; color: inherit; text-align: left; cursor: pointer; }.dashboard-action-row:last-child { border-bottom: 0; }.dashboard-action-row:hover strong { color: #1675e3; }.dashboard-action-index { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 6px; background: #f0f5fb; color: #6d87a5; font-size: 11px; font-weight: 700; }.dashboard-action-row strong { display: block; overflow: hidden; color: #294a70; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.dashboard-action-row small { display: block; overflow: hidden; margin-top: 3px; color: #8a9caf; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.dashboard-action-row em { padding: 4px 7px; border-radius: 5px; background: #edf6ff; color: #2675d7; font-size: 10px; font-style: normal; font-weight: 700; white-space: nowrap; }
.dashboard-update-list small,.dashboard-confirm-list small,.dashboard-timeline small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.project-risk-row small,.execution-gantt-name small,.execution-gantt-date small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1050px) { .execution-dashboard .execution-dashboard-grid { grid-template-columns: 1fr; }.execution-focus-callout,.dashboard-data-notice { margin-right: 14px; margin-left: 14px; }.execution-dashboard-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 620px) { .execution-focus-callout { grid-template-columns: 1fr; gap: 6px; }.execution-focus-callout strong { white-space: normal; }.execution-dashboard-rail { grid-template-columns: 1fr; }.dashboard-action-row { grid-template-columns: 24px minmax(0, 1fr); }.dashboard-action-row em { grid-column: 2; justify-self: start; } }

/* 流程页从“表单集合”改为阶段入口；表单只在用户选择下一步后出现。 */
.flow-dashboard { overflow: hidden; border: 1px solid #dfe8f2 !important; border-top: 3px solid #7867d9 !important; border-radius: 11px !important; background: #fff; box-shadow: 0 4px 18px rgb(28 63 103 / 5%); }.flow-dashboard-head { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 21px 22px 15px; border-bottom: 1px solid #e8eef5; }.flow-dashboard-head .eyebrow { margin: 0 0 3px; color: #7161c8; font-size: 10px; font-weight: 800; letter-spacing: .12em; }.flow-dashboard-head h2 { margin: 0; color: #24466c; font-size: 24px; }.flow-dashboard-head p:last-child { margin: 5px 0 0; color: #798fa8; font-size: 12px; }.flow-dashboard-head > button { border: 0; border-radius: 7px; background: #7664d3; color: #fff; padding: 8px 11px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.flow-stage-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 16px 20px 20px; background: #fbfcff; }.flow-stage-card { display: grid; align-content: start; gap: 8px; min-height: 225px; padding: 13px; border: 1px solid #e1e9f2; border-top: 3px solid #4a8af0; border-radius: 9px; background: #fff; }.flow-stage-card:nth-child(2) { border-top-color: #7763d5; }.flow-stage-card:nth-child(3) { border-top-color: #1ca48a; }.flow-stage-card:nth-child(4) { border-top-color: #df9b2f; }.flow-stage-card.attention { border-top-color: #dc655e; }.flow-stage-card > div:first-child { display: grid; gap: 2px; }.flow-stage-card > div:first-child span { color: #7a8fa8; font-size: 10px; font-weight: 800; }.flow-stage-card > div:first-child strong { color: #2b4d73; font-size: 14px; }.flow-stage-card > p { min-height: 32px; margin: 0; color: #7990aa; font-size: 11px; }.flow-stage-items { display: grid; align-content: start; gap: 5px; }.flow-stage-items > button { display: grid; gap: 2px; width: 100%; padding: 7px 0; border: 0; border-bottom: 1px solid #edf1f6; background: transparent; text-align: left; cursor: pointer; }.flow-stage-items b,.flow-stage-items small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.flow-stage-items b { color: #3a587a; font-size: 11px; }.flow-stage-items small { color: #91a2b5; font-size: 10px; }.flow-stage-action { align-self: end; justify-self: start; border: 0; background: transparent; color: #2478e1; padding: 4px 0 0; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.flow-stage-detail { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 18px; padding: 14px; border: 1px solid #dbe7f5; border-left: 3px solid #7763d5; border-radius: 9px; background: #fbfdff; }.flow-stage-detail > div:first-child { min-width: 0; }.flow-stage-detail strong { color: #294b70; font-size: 14px; }.flow-stage-detail p { margin: 4px 0 0; color: #7b8fa6; font-size: 11px; line-height: 1.5; }.flow-stage-detail > button { align-self: start; border: 0; background: transparent; color: #397bc8; font: inherit; font-size: 11px; cursor: pointer; }.flow-stage-detail-list { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }.flow-stage-detail-list > button { display: grid; gap: 3px; min-width: 0; padding: 10px; border: 1px solid #e1eaf4; border-radius: 8px; background: #fff; text-align: left; cursor: pointer; }.flow-stage-detail-list > button:hover { border-color: #9dc1ee; background: #f5faff; }.flow-stage-detail-list strong,.flow-stage-detail-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.flow-stage-detail-list strong { color: #385675; font-size: 11px; }.flow-stage-detail-list small { color: #8a9caf; font-size: 10px; }
@media (max-width: 1050px) { .flow-stage-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }.flow-stage-detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 620px) { .flow-dashboard-head { align-items: flex-start; flex-direction: column; padding-right: 14px; padding-left: 14px; }.flow-stage-board { grid-template-columns: 1fr; padding: 14px; }.flow-stage-detail-list { grid-template-columns: 1fr; } }

/* 真实项目与成员页的第二层：先给出管理判断或行动选择，再按需展开明细。 */
.project-decision-callout { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; border: 1px solid #dce9fb; border-left: 3px solid #267ce4; border-radius: 9px; background: #f7fbff; }.project-decision-callout > span { color: #3977ba; font-size: 11px; font-weight: 800; }.project-decision-callout strong { overflow: hidden; color: #2d4f76; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.project-decision-callout button { border: 0; background: transparent; color: #1675e3; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.management-brief-line { margin: -4px 0 13px; padding: 10px 13px; border: 1px solid #e7e2fa; border-left: 3px solid #7664d3; border-radius: 8px; background: #fbfaff; color: #4f477d; font-size: 12px; font-weight: 650; }
.member-action-guide { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 14px; margin: 14px 0 0; padding: 15px; border: 1px solid #dfe9f3; border-radius: 10px; background: #f9fcff; }.member-action-guide > div:first-child { display: grid; align-content: center; gap: 4px; }.member-action-guide > div:first-child > span { color: #3e80c3; font-size: 10px; font-weight: 800; letter-spacing: .1em; }.member-action-guide > div:first-child strong { color: #294b70; font-size: 15px; }.member-action-guide p { margin: 0; color: #7f94aa; font-size: 11px; line-height: 1.5; }.member-action-guide-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }.member-action-guide-buttons button { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; min-width: 0; padding: 10px; border: 1px solid #e0e9f3; border-radius: 8px; background: #fff; color: #335474; text-align: left; cursor: pointer; }.member-action-guide-buttons button:hover { border-color: #8ab8ef; background: #f5faff; }.member-action-guide-buttons b { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 6px; background: #ebf4ff; color: #2878dd; font-size: 10px; }.member-action-guide-buttons span { display: grid; min-width: 0; gap: 2px; }.member-action-guide-buttons strong,.member-action-guide-buttons small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.member-action-guide-buttons strong { color: #335474; font-size: 11px; }.member-action-guide-buttons small { color: #8ea0b3; font-size: 10px; }
@media (max-width: 900px) { .member-action-guide { grid-template-columns: 1fr; }.member-action-guide-buttons { grid-template-columns: 1fr; }.project-decision-callout { grid-template-columns: 1fr; gap: 6px; }.project-decision-callout strong { white-space: normal; } }

/* 系统页也只呈现已经有真实数据契约的能力；未实现格式保持明确的规划状态。 */
.integration-surface { margin: 0 0 16px !important; padding: 0 !important; overflow: hidden; border: 1px solid #dfe8f3 !important; border-top: 3px solid #14a083 !important; border-radius: 12px !important; background: #fff !important; box-shadow: 0 6px 20px rgb(23 48 83 / 5%) !important; }
.system-surface-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px 18px 13px; border-bottom: 1px solid #edf2f7; }.system-surface-heading .eyebrow { margin: 0 0 4px; color: #14957b; font-size: 10px; font-weight: 800; letter-spacing: .12em; }.system-surface-heading h2 { margin: 0; color: #1e3656; font-size: 19px; }.system-surface-heading p:last-child { margin: 5px 0 0; color: #78899f; font-size: 11px; }.system-surface-heading > span { max-width: 240px; padding: 5px 8px; border-radius: 99px; background: #edf9f5; color: #19876f; font-size: 10px; font-weight: 700; text-align: center; }
.integration-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px 18px 18px; }.integration-status-card { display: grid; grid-template-columns: 29px minmax(0, 1fr) auto; align-items: center; gap: 9px; min-height: 62px; padding: 10px; border: 1px solid #e4ecf5; border-radius: 8px; background: #fbfdff; }.integration-status-card i { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 7px; background: #fff5e2; color: #c9881c; font-size: 13px; font-style: normal; font-weight: 800; }.integration-status-card.ready i { background: #eaf9f3; color: #199373; }.integration-status-card div { min-width: 0; }.integration-status-card strong,.integration-status-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.integration-status-card strong { color: #334f70; font-size: 12px; }.integration-status-card small { margin-top: 4px; color: #8797ab; font-size: 10px; }.integration-status-card em { padding: 3px 6px; border-radius: 4px; background: #fff4de; color: #b87d1b; font-size: 9px; font-style: normal; white-space: nowrap; }.integration-status-card.ready em { background: #e9f8f2; color: #19886c; }
.export-surface { border-top: 3px solid #356fe2 !important; }.export-surface > h2 { color: #1d365b !important; }.export-format-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 14px 0 16px; }.export-format-card { display: grid; min-height: 78px; align-content: start; gap: 4px; padding: 11px; border: 1px solid #e2eaf3; border-radius: 8px; background: #fbfdff; }.export-format-card b { width: max-content; padding: 2px 5px; border-radius: 4px; background: #edf4ff; color: #3776c6; font-size: 10px; }.export-format-card strong { color: #3c5574; font-size: 11px; }.export-format-card small { color: #8c9bad; font-size: 10px; line-height: 1.35; }.export-format-card.current { border-color: #6ea7f5; background: #f5f9ff; }.export-format-card.current b { background: #e4f5ea; color: #208461; }.export-format-card.roadmap { opacity: .78; }.export-surface > input { min-width: 190px; }.export-surface > button { min-height: 34px; border-color: #2d78e5; background: #2d78e5; color: #fff; }
@media (max-width: 720px) { .integration-status-grid,.export-format-grid { grid-template-columns: 1fr; }.system-surface-heading { display: grid; gap: 8px; }.system-surface-heading > span { max-width: none; width: max-content; } }

/* 产品经理的规划入口与真实写入步骤一一对应：只把“规划结果”呈现为结果，不把它画成预设完成状态。 */
.project-planning-hub { overflow: hidden; margin: 0 0 16px !important; border: 1px solid #dfe8f2 !important; border-top: 3px solid #7664d3 !important; border-radius: 11px !important; background: #fff !important; box-shadow: 0 5px 20px rgb(23 48 83 / 5%) !important; }
.planning-hub-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 19px 20px 15px; border-bottom: 1px solid #e9eef5; }.planning-hub-header .eyebrow { margin: 0 0 4px; color: #7564cd; font-size: 10px; font-weight: 800; letter-spacing: .12em; }.planning-hub-header h3 { margin: 0; color: #24466d; font-size: 21px; letter-spacing: -.03em; }.planning-hub-header div > p:last-child { max-width: 670px; margin: 6px 0 0; color: #788ea6; font-size: 12px; line-height: 1.55; }.planning-hub-header > span { flex: 0 0 auto; margin-top: 2px; padding: 5px 8px; border-radius: 99px; background: #f0edff; color: #6857c2; font-size: 10px; font-weight: 750; }
.planning-hub-board { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 228px; gap: 11px; padding: 15px 20px; background: #fbfcff; }.planning-hub-step { position: relative; display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 10px; min-height: 170px; padding: 14px; border: 1px solid #e0e8f2; border-top: 3px solid #287deb; border-radius: 9px; background: #fff; }.planning-hub-lifecycle { border-top-color: #7764d4; }.planning-step-index { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 7px; background: #eaf4ff; color: #2779e5; font-size: 10px; font-weight: 800; }.planning-hub-lifecycle .planning-step-index { background: #f0edff; color: #6c59c8; }.planning-hub-step p { margin: 0 0 3px; color: #8a9bad; font-size: 10px; font-weight: 700; }.planning-hub-step h4 { margin: 0; color: #2c4d72; font-size: 14px; }.planning-hub-step small { display: block; margin-top: 7px; color: #748aa4; font-size: 11px; line-height: 1.5; }.planning-hub-step button { grid-column: 1 / -1; align-self: end; display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 31px; padding: 0 9px; border: 0; border-radius: 6px; background: #1978e9; color: #fff; font: inherit; font-size: 11px; font-weight: 750; cursor: pointer; }.planning-hub-lifecycle button { background: #7461cf; }.planning-hub-step button:hover { filter: brightness(.95); }.planning-hub-step button i { font-size: 15px; font-style: normal; }
.planning-hub-outcome { padding: 14px; border: 1px solid #e2eaf2; border-top: 3px solid #17a18a; border-radius: 9px; background: #fff; }.planning-hub-outcome > p { margin: 0 0 9px; color: #179179; font-size: 10px; font-weight: 800; }.planning-hub-outcome ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }.planning-hub-outcome li { position: relative; padding-left: 12px; }.planning-hub-outcome li::before { position: absolute; top: 5px; left: 0; width: 5px; height: 5px; border-radius: 50%; background: #27a28b; content: ""; }.planning-hub-outcome b,.planning-hub-outcome span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.planning-hub-outcome b { color: #365876; font-size: 11px; }.planning-hub-outcome span { margin-top: 3px; color: #8a9bad; font-size: 10px; }.planning-hub-rule { display: flex; gap: 8px; padding: 11px 20px 13px; border-top: 1px solid #edf1f6; background: #fff; color: #7e92a8; font-size: 11px; line-height: 1.45; }.planning-hub-rule b { flex: 0 0 auto; color: #765fca; }
@media (max-width: 1050px) { .planning-hub-board { grid-template-columns: 1fr 1fr; }.planning-hub-outcome { grid-column: 1 / -1; }.planning-hub-outcome ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (max-width: 620px) { .planning-hub-header { display: grid; gap: 9px; padding: 16px 14px 13px; }.planning-hub-header > span { width: max-content; }.planning-hub-board { grid-template-columns: 1fr; padding: 14px; }.planning-hub-outcome { grid-column: auto; }.planning-hub-outcome ul { grid-template-columns: 1fr; }.planning-hub-rule { padding: 11px 14px; align-items: flex-start; flex-direction: column; gap: 3px; } }

/* 二级工作页统一为“选择 → 处理 → 结果”布局。真实表单不再在一个长页面内同时堆叠。 */
.flow-entry-surface,.flow-action-surface,#mvp-test-issue-entry,#weekly-report-import { overflow: hidden; margin: 0 !important; padding: 0 0 18px !important; border: 1px solid #dfe8f2 !important; border-top: 3px solid #7664d3 !important; border-radius: 11px !important; background: #fff !important; box-shadow: 0 5px 20px rgb(23 48 83 / 5%) !important; }.flow-action-surface { border-top-color: #e0a035 !important; }#mvp-test-issue-entry { border-top-color: #df665d !important; }#weekly-report-import { border-top-color: #16a187 !important; }
.flow-entry-surface > h2,.flow-action-surface > h2,#mvp-test-issue-entry > h2,#weekly-report-import > h2 { margin: 19px 20px 4px !important; color: #23476e !important; font-size: 21px !important; }.flow-entry-surface > h2::before,.flow-action-surface > h2::before,#mvp-test-issue-entry > h2::before,#weekly-report-import > h2::before { display: inline-grid; width: 21px; height: 21px; place-items: center; margin-right: 8px; border-radius: 6px; background: #f0edff; color: #705dca; content: "→"; font-size: 12px; vertical-align: 2px; }.flow-action-surface > h2::before { background: #fff3df; color: #c7871c; }.flow-entry-surface > .hint,.flow-action-surface > .hint,#mvp-test-issue-entry > .hint,#weekly-report-import > .hint { max-width: 860px; margin: 0 20px 14px !important; color: #7c91aa; font-size: 12px; line-height: 1.55; }
.workflow-steps { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; margin: 14px 20px !important; overflow: hidden; border: 1px solid #e1e9f2; border-radius: 8px; background: #fbfdff; }.workflow-steps li { min-height: 43px; padding: 8px 10px !important; border: 0 !important; border-right: 1px solid #e7edf5 !important; border-radius: 0 !important; background: transparent !important; color: #7087a1 !important; font-size: 10px !important; }.workflow-steps li:last-child { border-right: 0 !important; }.workflow-steps li:first-child { background: #f1f6ff !important; color: #2876da !important; font-weight: 750; }.workflow-steps li:before { background: #e8f2ff !important; color: #2776da !important; }
.flow-entry-surface > .inline-actions { display: flex; gap: 8px; margin: 0 20px 10px !important; }.flow-entry-surface > .inline-actions button { min-height: 31px; border: 1px solid #cfdef0; border-radius: 6px; background: #fff; color: #3675c9; font: inherit; font-size: 11px; font-weight: 700; }.workflow-form-tabs,.workflow-action-tabs { display: flex; gap: 6px; margin: 0 20px 10px !important; padding: 5px; overflow-x: auto; border: 1px solid #e0e8f2; border-radius: 8px; background: #f7faff; }.workflow-form-tabs button,.workflow-action-tabs button { min-height: 32px; padding: 0 12px; border: 0; border-radius: 6px; background: transparent; color: #617994; font: inherit; font-size: 11px; font-weight: 700; white-space: nowrap; cursor: pointer; }.workflow-form-tabs button.active,.workflow-action-tabs button.active { background: #fff; color: #236fcf; box-shadow: 0 2px 7px rgb(31 76 125 / 12%); }.workflow-action-tabs button.active { color: #a96f17; }.workflow-form-switch-hint { margin: 0 20px 12px !important; padding: 9px 11px; border-left: 3px solid #3c84e9; border-radius: 0 6px 6px 0; background: #f6faff; color: #6f88a4; font-size: 11px; line-height: 1.5; }
.flow-entry-surface .workflow-form,.flow-action-surface .workflow-action-form,#mvp-test-issue-entry .member-form { margin: 0 20px 0 !important; padding: 17px !important; border: 1px solid #dfe8f2 !important; border-top: 3px solid #347fdf !important; border-radius: 9px !important; background: #fbfdff !important; box-shadow: none !important; }.flow-action-surface .workflow-action-form { border-top-color: #e2a035 !important; }.flow-entry-surface .workflow-form > h3,.flow-action-surface .workflow-action-form > h3,#mvp-test-issue-entry .member-form > h3 { color: #274a70 !important; }.flow-entry-surface .workflow-form > button[type="submit"],.flow-action-surface .workflow-action-form > button[type="submit"],#mvp-test-issue-entry .member-form > button[type="submit"] { background: #1e79e5 !important; }.flow-action-surface .workflow-action-form > button[type="submit"] { background: #d99126 !important; }.flow-entry-surface .form-grid > label,.flow-action-surface .form-grid > label,#mvp-test-issue-entry .form-grid > label { border-color: #e1e9f2 !important; background: #fff !important; }.flow-entry-surface .form-stepper,.flow-action-surface .form-stepper { display: grid !important; grid-template-columns: repeat(3, minmax(180px, 1fr)); width: auto !important; margin: 12px 20px 16px !important; overflow-x: auto; }.flow-entry-surface .form-stepper li,.flow-action-surface .form-stepper li { min-width: 180px; white-space: nowrap; }
#mvp-test-issue-entry .member-form { border-top-color: #dc655e !important; }.feedback-surface-note { margin: 0 20px 12px; }.feedback-surface-note,.member-submission-mode { font-size: 11px !important; }#weekly-report-import > input { margin: 0 0 0 20px; }#weekly-report-import > button { min-height: 32px; margin: 7px 0 0 7px; padding: 0 10px; border-radius: 6px; background: #178b76; color: #fff; font: inherit; font-size: 11px; font-weight: 700; }#weekly-report-import > button:disabled { background: #cbd8d7; color: #6e8583; }#weekly-report-import > #weekly-report-import-result { margin: 12px 20px 0 !important; padding: 9px 11px; border-radius: 7px; background: #f5fbfa; color: #668883; }#weekly-report-import > .table-wrap { margin: 12px 20px 0 !important; border: 1px solid #e1eceb; border-radius: 8px; }
/* 分析、准入检查和数据表只在管理页出现；使用紧凑卡片与横向滚动容器，不挤压首屏。 */
.management-analysis,.management-status-analysis,.table-wrap { border-color: #e0e9f2 !important; border-radius: 9px !important; }.management-analysis { box-shadow: 0 5px 18px rgb(25 61 102 / 4%); }.table-wrap table { font-size: 11px; }.table-wrap th { background: #f7faff; color: #728ba5; }.table-wrap td { color: #506d8b; }.table-wrap tr:hover td { background: #fbfdff; }

/* 统计卡与总图下钻必须有真实的展开/收起反馈，不能只跳到没有筛选条件的泛化页面。 */
.product-topbar-actions .topbar-feedback { width: auto; min-width: 38px; padding: 0 7px; border: 1px solid #dbe6f4; background: #f7fbff; color: #3976c8; font-size: 10px; font-weight: 700; }
.daily-reminder-brief-table textarea { box-sizing: border-box; width: 100%; min-width: 210px; resize: vertical; border: 1px solid #dbe5f0; border-radius: 6px; background: #fbfdff; color: #526d89; font: inherit; font-size: 11px; line-height: 1.45; }.daily-reminder-brief-table td strong,.daily-reminder-brief-table td small { display: block; }.daily-reminder-brief-table td small { margin-top: 3px; color: #899bad; font-size: 10px; }.daily-reminder-brief-table input[type="checkbox"] { accent-color: #287bea; }
.management-kpis > button { display: grid; gap: 4px; min-height: 92px; padding: 13px 15px; border: 0; border-right: 1px solid #edf1f6; background: #fff; color: inherit; text-align: left; cursor: pointer; }.management-kpis > button:last-child { border-right: 0; }.management-kpis > button:hover { background: #f8fbff; }.management-kpis > button:focus-visible { outline: 2px solid #78aaf0; outline-offset: -3px; }.management-kpis > button.warning strong { color: #dc625b; }.management-kpis > button.planning strong { color: #a77722; }
.management-drilldown { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; margin: 0 0 14px; padding: 14px 16px; border: 1px solid #dbe7f5; border-left: 3px solid #377ee3; border-radius: 10px; background: #fbfdff; }.management-drilldown > div > strong { color: #294b70; font-size: 14px; }.management-drilldown > div > strong small { margin-left: 4px; color: #437fd1; font-size: 11px; }.management-drilldown > div > p { margin: 4px 0 0; color: #7c90a7; font-size: 11px; }.management-drill-close,.portfolio-drilldown-close { align-self: start; border: 0; background: transparent; color: #4b7fc5; font: inherit; font-size: 11px; cursor: pointer; }.management-drill-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }.management-drill-list > button { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 10px; border: 1px solid #e1eaf4; border-radius: 8px; background: #fff; text-align: left; cursor: pointer; }.management-drill-list > button:hover { border-color: #9fc1ed; background: #f5faff; }.management-drill-list strong,.management-drill-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.management-drill-list strong { color: #385675; font-size: 11px; }.management-drill-list small { margin-top: 3px; color: #8a9caf; font-size: 10px; }.management-drill-list em { color: #3978ca; font-size: 10px; font-style: normal; white-space: nowrap; }
.gantt-scroll { position: relative; max-height: min(68vh, 760px); overscroll-behavior: contain; }.gantt-head { position: sticky; top: 0; z-index: 6; }.gantt-expand-hint { display: block; margin-top: 2px; color: #3979c9; font-size: 10px; font-style: normal; font-weight: 700; }.portfolio-drilldown-actions { display: flex; align-items: start; justify-content: flex-end; gap: 8px; }.portfolio-drilldown-actions > button:first-child { min-height: 31px; border: 1px solid #377ee3; border-radius: 6px; background: #377ee3; color: #fff; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
@media (max-width: 900px) { .management-drill-list { grid-template-columns: 1fr; }.gantt-scroll { max-height: 62vh; } }
@media (max-width: 800px) { .workflow-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }.workflow-steps li:nth-child(2) { border-right: 0 !important; }.workflow-steps li:nth-child(-n+2) { border-bottom: 1px solid #e7edf5 !important; } } @media (max-width: 620px) { .flow-entry-surface > h2,.flow-action-surface > h2,#mvp-test-issue-entry > h2,#weekly-report-import > h2 { margin-right: 14px !important; margin-left: 14px !important; }.flow-entry-surface > .hint,.flow-action-surface > .hint,#mvp-test-issue-entry > .hint,#weekly-report-import > .hint,.workflow-form-switch-hint { margin-right: 14px !important; margin-left: 14px !important; }.workflow-steps,.workflow-form-tabs,.workflow-action-tabs,.flow-entry-surface > .inline-actions,.flow-entry-surface .form-stepper,.flow-action-surface .form-stepper { margin-right: 14px !important; margin-left: 14px !important; }.flow-entry-surface .workflow-form,.flow-action-surface .workflow-action-form,#mvp-test-issue-entry .member-form { margin-right: 14px !important; margin-left: 14px !important; }.workflow-steps,.flow-entry-surface .form-stepper,.flow-action-surface .form-stepper { grid-template-columns: 1fr !important; }.workflow-steps li,.workflow-steps li:nth-child(2) { border-right: 0 !important; border-bottom: 1px solid #e7edf5 !important; }.flow-entry-surface .form-stepper li,.flow-action-surface .form-stepper li { min-width: 0; }.workflow-steps li:last-child { border-bottom: 0 !important; }#weekly-report-import > input { margin-left: 14px; }#weekly-report-import > .table-wrap { margin-right: 14px !important; margin-left: 14px !important; } }

/* 问题反馈附件：图片始终走附件直传，外链只保留给录屏或已有材料。 */
.feedback-attachments { display: grid; gap: 8px; }.feedback-attachments-label { color: #395a7e; font-weight: 700; }.feedback-dropzone { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; align-items: center; min-height: 92px; padding: 15px 16px; border: 1.5px dashed #93b9ea; border-radius: 9px; background: #f7fbff; cursor: pointer; }.feedback-dropzone:focus-visible,.feedback-dropzone.is-dragging { outline: 3px solid rgb(37 121 229 / 18%); border-color: #267de5; background: #eef6ff; }.feedback-dropzone strong { color: #28547e; }.feedback-dropzone small { grid-column: 1; color: #7c91aa; line-height: 1.5; }.feedback-dropzone button { grid-row: span 2; min-height: 34px; padding: 0 12px; border: 1px solid #8cb7ed; border-radius: 7px; background: #fff; color: #176ed6; font-weight: 700; cursor: pointer; }.feedback-previews { display: flex; flex-wrap: wrap; gap: 10px; }.feedback-preview { position: relative; width: 112px; margin: 0; overflow: hidden; border: 1px solid #dbe6f3; border-radius: 8px; background: #fff; }.feedback-preview img { display: block; width: 112px; height: 76px; object-fit: cover; }.feedback-preview figcaption { overflow: hidden; padding: 5px 25px 5px 7px; color: #6b829c; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.feedback-preview button { position: absolute; top: 5px; right: 5px; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: rgb(22 51 84 / 80%); color: #fff; cursor: pointer; }

/* 复合页面只能有一层视觉外壳：以前项目详情外层卡片先贴到内容区，内部又缩进，
   造成“页签和卡片边缘不在一条线”。统一为无外壳容器，真实信息区块再单独成卡。 */
.platform-content > .next.project-hub,
.platform-content > .next.project-portfolio,
.platform-content > .next.flow-dashboard {
  margin-top: 12px !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.project-hub > .project-header,
.project-hub > .project-view,
.project-portfolio > .portfolio-gantt,
.flow-dashboard > .flow-dashboard-head,
.flow-dashboard > .flow-stage-board {
  margin-right: 0 !important;
  margin-left: 0 !important;
  border: 1px solid #dfe8f1;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 4px 18px rgb(28 63 103 / 5%);
}
.project-hub > .project-header { padding: 22px !important; border-top: 3px solid #7663d5; }
.project-hub > .project-view-tabs {
  margin: 10px 0 0 !important;
  padding: 0 20px !important;
  overflow-x: auto;
  border: 1px solid #dfe8f1;
  border-radius: 11px 11px 0 0;
  background: #fff;
}
.project-hub > .project-view {
  margin-top: 0 !important;
  padding: 20px 22px 22px !important;
  border-top: 0;
  border-radius: 0 0 11px 11px;
}
.project-portfolio > h2,.project-portfolio > .hint { margin-left: 0 !important; margin-right: 0 !important; }
.project-portfolio > .portfolio-gantt { margin-top: 12px !important; padding: 0; border-top: 3px solid #7663d5; }
.flow-dashboard > .flow-dashboard-head { margin-bottom: 10px !important; padding: 20px 22px !important; }
.flow-dashboard > .flow-stage-board { padding: 18px !important; }
@media (max-width: 620px) {
  .project-hub > .project-header { padding: 17px !important; }
  .project-hub > .project-view-tabs { padding: 0 14px !important; }
  .project-hub > .project-view { padding: 16px 14px 18px !important; }
  .flow-dashboard > .flow-dashboard-head { padding: 17px 14px !important; }
}

/* 数据密集区统一收口：任何摘要都不能挤破卡片或把标题推到第二列。 */
.dashboard-update-list > button,
.dashboard-timeline > button,
.dashboard-confirm-list > button {
  min-width: 0;
}
.dashboard-update-list > button > span,
.dashboard-timeline > button > span,
.dashboard-confirm-list > button > span {
  min-width: 0;
}
.dashboard-update-list strong,
.dashboard-update-list small,
.dashboard-timeline strong,
.dashboard-timeline small,
.dashboard-confirm-list strong,
.dashboard-confirm-list small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 总图下钻不再使用绝对定位覆盖时间轴；展开、收起都保持表头与横轴在原位。 */
.portfolio-gantt > .portfolio-drilldown {
  position: static;
  margin: 14px 0 0;
  border: 1px solid #dbe7f5;
  border-radius: 9px;
  background: #fbfdff;
}
.gantt-drilldown-slot,
.portfolio-gantt > .portfolio-inline-drilldown {
  display: none !important;
}
/* 事项抽屉与项目卡片共用“标题—事实—记录”的阅读层级，禁止用换行堆成数据墙。 */
.task-drawer .drawer-summary > strong {
  display: block;
  color: #26496f;
  font-size: 15px;
  line-height: 1.45;
}
.task-drawer .drawer-summary > p {
  margin: 6px 0 0;
  color: #71869e;
  font-size: 12px;
  line-height: 1.55;
}
.task-drawer .drawer-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 15px 0 0;
}
.task-drawer .drawer-facts > div {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid #e5edf5;
  border-radius: 7px;
  background: #fbfdff;
}
.task-drawer .drawer-facts dt { color: #8193a8; font-size: 10px; }
.task-drawer .drawer-facts dd {
  overflow: hidden;
  margin: 3px 0 0;
  color: #3c5877;
  font-size: 11px;
  line-height: 1.45;
  text-overflow: ellipsis;
}
.task-drawer .drawer-edit-task { margin-top: 15px; }
@media (max-width: 620px) { .task-drawer .drawer-facts { grid-template-columns: 1fr; } }

/* 空状态必须说明是“无待处理事项”还是“读取失败”，不能留下没有上下文的空看板。 */
.flow-board-state {
  grid-column: 1 / -1;
  padding: 26px;
  border: 1px dashed #cfddeb;
  border-radius: 9px;
  background: #fff;
  color: #667f99;
}
.flow-board-state strong { display: block; color: #294c72; font-size: 14px; }
.flow-board-state p { max-width: 640px; margin: 6px 0 0; font-size: 12px; line-height: 1.6; }
.flow-board-state.error { border-color: #efc1bc; background: #fff9f8; }
.flow-board-state.error strong { color: #b8514b; }
.flow-board-state button { margin-top: 13px; }
.management-duty-surface { padding: 24px; }
.platform-content > .management-duty-surface { padding: 0 !important; }
.management-duty-surface #management-duty-status { margin: 16px 24px !important; }
.management-duty-surface #management-duty-list { margin: 0 24px 24px; }
.management-duty-surface #management-duty-status { color: #627c98; font-size: 14px; line-height: 1.6; }
.management-duty-group { margin-top: 20px; }
.management-duty-group h3 small { color: #7890aa; font-size: 13px; }
.management-duty-item { margin-top: 10px; border: 1px solid #dce6f2; border-radius: 12px; background: #fff; overflow-wrap: anywhere; }
.management-duty-item summary { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 16px; cursor: pointer; color: #294c72; }
.management-duty-item summary span { font-size: 13px; color: #6a809b; }
.management-duty-item p, .management-duty-item ol { margin: 12px 20px; font-size: 13px; line-height: 1.7; }
.management-duty-item summary:focus-visible { outline: 2px solid #2176ed; outline-offset: -3px; }
.management-duty-preview-form { display: grid; gap: 12px; margin: 16px 20px 20px; }
.management-duty-preview-form label { display: grid; gap: 6px; color: #526d89; font-size: 13px; }
.management-duty-preview-form textarea, .management-duty-preview-form select { box-sizing: border-box; width: 100%; padding: 10px; border: 1px solid #dce6f2; border-radius: 8px; font: inherit; }
.management-duty-preview-form textarea { min-height: 80px; resize: vertical; }
.management-duty-preview-form button { justify-self: start; }
/* 管理与执行共用工作台视觉语言，不把调试字段或编辑表单铺满首页。 */
.platform-content:not([data-role-view="execution"]) > .execution-dashboard { display: none !important; }
.platform-content > .management-duty-surface { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.management-duty-surface > .dashboard-panel-heading { padding: 20px 24px; border: 1px solid #dfe8f2; border-radius: 12px; background: #fff; }
.management-duty-surface .dashboard-panel-heading h2 { margin: 0; color: #23476e; font-size: 23px; }
.management-duty-surface .dashboard-panel-heading p { margin: 6px 0 0; color: #7c91aa; font-size: 13px; }
.management-duty-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.management-duty-cards > .management-duty-item { margin: 0; border-top: 3px solid #7664d3; box-shadow: 0 4px 16px rgb(28 63 103 / 4%); }
.management-duty-cards > .management-duty-item[open] { grid-column: 1 / -1; }
.management-duty-cards > .management-duty-item > summary { display: block; padding: 18px; list-style: none; }
.management-duty-cards > .management-duty-item > summary::-webkit-details-marker { display: none; }
.management-duty-card-heading { display: grid; min-width: 0; gap: 12px; }
.management-duty-card-heading > strong { color: #294c72; font-size: 16px; line-height: 1.6; }
.management-duty-card-heading .management-duty-state { justify-self: start; padding: 4px 9px; border-radius: 5px; color: #a4721e; background: #fff4df; font-size: 12px; }
.management-duty-context { line-height: 1.6; }
.management-duty-evidence { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 40px; line-height: 1.6; }
.management-duty-card-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid #e8eef5; }
.management-duty-card-footer .management-duty-open { color: #1877f2; font-weight: 700; }
.management-duty-history { margin: 0 20px; border-top: 1px solid #e8eef5; }
.management-duty-history > summary { justify-content: start; padding: 12px 0; font-size: 13px; color: #3978ca; }
.management-duty-preview-form { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 20px; border: 1px solid #e1e9f2; border-radius: 10px; background: #f7faff; }
.management-duty-preview-form > label:first-child,.management-duty-preview-form > p,.management-duty-preview-form > .management-upgrade-fields { grid-column: 1 / -1; }
.management-duty-preview-form button { min-height: 38px; padding: 8px 16px; border: 1px solid #c8d9ef; border-radius: 7px; background: #fff; color: #286cbe; font: inherit; cursor: pointer; }
.management-duty-preview-form button[type="submit"] { color: #fff; background: #1877f2; border-color: #1877f2; }
.management-duty-categories { display: grid; gap: 18px; }
.management-duty-category-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.management-duty-category-tabs button { min-height: 38px; padding: 9px 12px; border: 1px solid #d5e2f1; border-radius: 8px; background: #fff; color: #5d7897; font: inherit; font-size: 13px; cursor: pointer; }
.management-duty-category-tabs button[aria-pressed="true"] { border-color: #1877f2; background: #edf5ff; color: #176ed2; font-weight: 700; }
.management-duty-category-tabs button:focus-visible { outline: 2px solid #1877f2; outline-offset: 2px; }
.management-duty-categories > .management-duty-group { margin-top: 0; padding-bottom: 18px; border: 1px solid #dfe8f2; border-radius: 11px; background: #fff; overflow: hidden; }
.management-duty-categories .management-duty-cards { margin: 0 18px; }
.management-duty-categories .dashboard-panel-heading { padding: 16px 18px; }
.management-duty-categories .dashboard-panel-heading h3 { margin: 0; color: #294c72; font-size: 17px; }
.management-duty-categories .dashboard-panel-heading p { margin: 6px 0 0; color: #7c91aa; font-size: 12px; line-height: 1.6; }
.management-generated-card { min-width: 0; display: flex; flex-direction: column; align-items: start; padding: 18px; border: 1px solid #dfe8f2; border-top: 3px solid #e3a23a; border-radius: 10px; background: #fbfdff; overflow-wrap: anywhere; }
.management-generated-card > .management-duty-state { padding: 4px 8px; border-radius: 5px; color: #946b20; background: #fff2d9; font-size: 12px; }
.management-generated-card h4 { margin: 12px 0 4px; color: #294c72; font-size: 15px; line-height: 1.6; }
.management-generated-card p { margin: 8px 0; color: #7087a1; font-size: 12px; line-height: 1.7; }
.management-generated-card button { margin-top: auto; min-height: 36px; padding: 8px 12px; border: 1px solid #cadcf2; border-radius: 7px; background: #fff; color: #1877f2; font: inherit; font-size: 12px; cursor: pointer; }
@media (max-width: 1100px) { .management-duty-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .management-duty-cards,.management-duty-preview-form { grid-template-columns: 1fr; }.management-duty-surface > .dashboard-panel-heading { align-items: start; flex-direction: column; gap: 12px; }.management-duty-surface #management-duty-list { margin: 0 0 16px; } }
@media (max-width: 700px) {
  .management-duty-surface { padding: 16px; }
  .management-duty-item summary { flex-direction: column; gap: 6px; }
}

/* 四个主工作区在窄屏始终可见，不让重复品牌文字挤掉“管理”。 */
@media (max-width: 620px) {
  .platform-sidebar { min-width: 0; padding: 8px 12px; }
  .platform-sidebar .workspace-nav {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box;
    gap: 4px; padding: 0; overflow-x: visible;
  }
  .platform-sidebar .workspace-nav::before { display: none; }
  .platform-sidebar .workspace-nav button { min-width: 0; justify-content: center; padding: 10px 4px; font-size: 13px; }
}
.work-role-overview { margin: 16px 24px; padding-bottom: 16px; }
.work-role-overview h2 { font-size: 18px; }
.work-role-overview-links { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px; }
.work-role-overview-links button { white-space: normal; text-align: left; }
.work-role-overview-links button[aria-pressed="true"] { color: #1768d8; border-color: #78aaff; background: #edf5ff; }
.work-role-overview > .hint { padding: 0 20px; }
/* B1 shared desktop baseline. Additive presentation only; never overrides [hidden]. */
:root {
  --ui-page: #f7f8fa; --ui-card: #fff; --ui-border: #e5e7eb;
  --ui-text: #1f2937; --ui-muted: #6b7280; --ui-weak: #9ca3af;
  --ui-blue: #2563eb; --ui-green: #16a34a; --ui-amber: #d97706; --ui-red: #dc2626;
  --ui-section: 24px; --ui-gap: 16px; --ui-pad: 20px; --ui-radius: 10px; --ui-control-radius: 6px;
}
html :is(body, .shell) { margin: 0; background: var(--ui-page); color: var(--ui-text); font: 400 14px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif; }
:is(body, .shell) * { box-sizing: border-box; }
:is(body, .shell) .shell { max-width: none; width: 100%; margin: 0; padding: 0; }
:is(body, .shell) .platform-layout { grid-template-columns: 180px minmax(0,1fr); }
:is(body, .shell) .platform-sidebar { background: #fff !important; border-right: 1px solid var(--ui-border); border-radius: 0; box-shadow: none; }
:is(body, .shell) .platform-sidebar .workspace-nav { background: #fff !important; box-shadow: none !important; border-radius: 0; min-height: 0 !important; padding: 0 !important; }
:is(body, .shell) .platform-content > .next { padding: 20px !important; border-top-width: 1px; }
:is(body, .shell) .platform-content > .next > :is(h2,p.hint,.table-wrap) { margin-left: 0 !important; margin-right: 0 !important; }
:is(body, .shell) .platform-content > .next > h2::before { display: none; }
:is(body, .shell) .product-topbar-actions button { color: var(--ui-text); }
:is(body, .shell) .platform-sidebar .workspace-nav::before { color: #1f2937 !important; font-size: 15px; font-weight: 500; }
:is(body, .shell) .platform-sidebar .workspace-nav button { color: var(--ui-muted) !important; background: transparent !important; border: 0; border-radius: 6px; min-height: 40px; font-size: 14px; box-shadow: none !important; }
:is(body, .shell) .platform-sidebar .workspace-nav button.active,
:is(body, .shell) .platform-sidebar .workspace-nav button[aria-selected="true"],
:is(body, .shell) .platform-sidebar .workspace-nav button[aria-current="page"] { background: #eff6ff !important; color: var(--ui-blue) !important; }
:is(body, .shell) .platform-content { min-width: 0; width: 100%; max-width: 1368px; margin: 0 auto; padding: 0 24px 32px; }
:is(body, .shell) .product-topbar { min-height: 72px; height: auto; margin: 0 -24px 24px; padding: 12px 24px; background: #fff; border-bottom: 1px solid var(--ui-border); gap: 16px; }
:is(body, .shell) .product-topbar-brand span { font-size: 18px; font-weight: 500; color: var(--ui-text); }
:is(body, .shell) .product-topbar-brand small { font-size: 12px; color: var(--ui-muted); overflow-wrap: anywhere; }
:is(body, .shell) .product-topbar-actions { flex-wrap: wrap; gap: 8px; }
:is(body, .shell) .product-search { min-width: 160px; max-width: 420px; flex: 1 1 220px; }
:is(body, .shell) .product-search input { background: #fff; }
:is(body, .shell) .product-current-user b { background: #eff6ff; color: var(--ui-blue); }
:is(body, .shell) .role-home-picker { height: auto; background: #fff; border: 1px solid var(--ui-border); border-radius: 6px; }
:is(body, .shell) h1 { font-size: 18px !important; font-weight: 500; line-height: 1.6; }
:is(body, .shell) h2,:is(body, .shell) h3 { font-size: 15px !important; font-weight: 500; line-height: 1.6; color: var(--ui-text); }
:is(body, .shell) h4 { font-size: 14px; font-weight: 500; }
:is(body, .shell) strong,:is(body, .shell) b { font-weight: 500; }
:is(body, .shell) small,:is(body, .shell) .hint,:is(body, .shell) .dashboard-panel-heading p,:is(body, .shell) .workspace-panel-context { font-size: 13px; line-height: 1.6; color: var(--ui-muted); }
:is(body, .shell) .eyebrow { display: none; }
:is(body, .shell) .next,:is(body, .shell) .dashboard-panel,:is(body, .shell) .role-focus,:is(body, .shell) .workspace-intro,:is(body, .shell) .workspace-quick-actions,
:is(body, .shell) .execution-dashboard,:is(body, .shell) .management-dashboard,:is(body, .shell) .management-duty-surface { background: #fff !important; border: 1px solid var(--ui-border) !important; border-radius: 10px !important; box-shadow: none !important; margin: 0 0 24px; padding: 20px; }
:is(body, .shell) .dashboard-panel-heading,:is(body, .shell) .management-duty-heading { padding: 0 0 16px; gap: 16px; border-bottom: 1px solid var(--ui-border); }
:is(body, .shell) .work-role-overview { margin: 0 0 24px; }
:is(body, .shell) .work-role-overview-links,:is(body, .shell) .work-role-overview > .hint { padding: 0; }
:is(body, .shell) .workspace-quick-actions { display: flex; flex-wrap: wrap; gap: 8px; }
:is(body, .shell) .dashboard-kpis article,:is(body, .shell) .management-kpis article,:is(body, .shell) .stat,:is(body, .shell) .metric,
:is(body, .shell) .execution-task-card,:is(body, .shell) .queue-item,:is(body, .shell) .management-duty-item { border: 1px solid var(--ui-border); border-radius: 10px; background: #fff; box-shadow: none; }
:is(body, .shell) .dashboard-kpis strong,:is(body, .shell) .management-kpis strong,:is(body, .shell) .stat strong,:is(body, .shell) .metric strong { font-size: 18px; color: var(--ui-text); }
:is(body, .shell) button,:is(body, .shell) .button,:is(body, .shell) input[type="submit"] { min-height: 36px; height: auto; padding: 6px 12px; border: 1px solid var(--ui-border); border-radius: 6px; background: #fff; color: var(--ui-text); font: inherit; box-shadow: none; white-space: normal; cursor: pointer; }
:is(body, .shell) button:hover:not(:disabled) { border-color: var(--ui-blue); color: var(--ui-blue); background: #f9fafb; }
:is(body, .shell) button[type="submit"],:is(body, .shell) #daily-reminder-brief-load { background: var(--ui-blue); border-color: var(--ui-blue); color: #fff; }
:is(body, .shell) .personnel-page button { background: #fff !important; border: 1px solid var(--ui-border) !important; color: var(--ui-text) !important; border-radius: 6px !important; box-shadow: none !important; }
:is(body, .shell) .personnel-page #role-registry-preview { background: var(--ui-blue) !important; color: #fff !important; }
:is(body, .shell) button:disabled,:is(body, .shell) input:disabled,:is(body, .shell) select:disabled { background: #f3f4f6; color: #6b7280; border-color: var(--ui-border); cursor: not-allowed; opacity: 1; }
:is(body, .shell) .personnel-page button:disabled { background: #f3f4f6 !important; color: #6b7280 !important; }
:is(body, .shell) button:focus-visible,:is(body, .shell) input:focus-visible,:is(body, .shell) select:focus-visible,:is(body, .shell) textarea:focus-visible,:is(body, .shell) summary:focus-visible { outline: 2px solid var(--ui-blue); outline-offset: 2px; }
:is(body, .shell) input:not([type="checkbox"]):not([type="radio"]),:is(body, .shell) select,:is(body, .shell) textarea { min-width: 0; max-width: 100%; min-height: 36px; border: 1px solid #d1d5db; border-radius: 6px; padding: 6px 10px; background: #fff; color: var(--ui-text); font: inherit; }
:is(body, .shell) textarea { resize: vertical; }
:is(body, .shell) input[type="checkbox"],:is(body, .shell) input[type="radio"] { accent-color: var(--ui-blue); }
:is(body, .shell) form label { display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
:is(body, .shell) form label:has(input[type="checkbox"]),:is(body, .shell) form label:has(input[type="radio"]) { flex-direction: row; align-items: center; }
:is(body, .shell) form label.field-required::before { content: "* 必填"; color: var(--ui-muted); font-size: 12px; }
:is(body, .shell) form button[type="submit"] { margin-top: 16px; align-self: start; justify-self: start; }
:is(body, .shell) .form-grid { gap: 16px; }
:is(body, .shell) .table-wrap { border: 1px solid var(--ui-border); border-radius: 10px; max-width: 100%; max-height: 560px; overflow: auto; }
:is(body, .shell) table { width: 100%; border-collapse: collapse; font-size: 14px; }
:is(body, .shell) th { position: sticky; top: 0; z-index: 1; background: #f9fafb; font-size: 13px; font-weight: 500; color: var(--ui-muted); }
:is(body, .shell) th,:is(body, .shell) td { height: 44px; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--ui-border); text-align: left; line-height: 1.6; white-space: normal; overflow-wrap: anywhere; }
:is(body, .shell) tbody tr:hover { background: #f9fafb; }
:is(body, .shell) td strong,:is(body, .shell) td small { display: block; }
:is(body, .shell) .daily-reminder-brief-table { min-width: 920px; }
:is(body, .shell) .daily-reminder-brief-table th:first-child { min-width: 52px; white-space: nowrap; }
:is(body, .shell) .daily-reminder-brief-table th:nth-child(3) { width: 22%; }
:is(body, .shell) .daily-reminder-brief-table th:nth-child(5) { width: 16%; }
:is(body, .shell) .daily-reminder-brief-table th:last-child { width: 26%; }
:is(body, .shell) .daily-reminder-brief-table td:nth-child(5) { text-align: right; }
:is(body, .shell) .daily-reminder-brief-table textarea { width: 100%; min-width: 180px; min-height: 88px; }
:is(body, .shell) .queue-item-detail strong,:is(body, .shell) .queue-item-detail small,:is(body, .shell) .management-duty-card-heading strong,:is(body, .shell) .execution-task-card strong { white-space: normal; text-overflow: clip; overflow: visible; overflow-wrap: anywhere; }
:is(body, .shell) .status-pill,:is(body, .shell) .management-duty-state { border-radius: 6px; white-space: normal; background: #f3f4f6; color: var(--ui-muted); font-size: 12px; }
:is(body, .shell) .product-notes { margin: 8px 0; font-size: 13px; color: var(--ui-muted); }
:is(body, .shell) .product-error { color: var(--ui-red); font-size: 13px; }
:is(body, .shell) .field-error { color: var(--ui-red); font-size: 13px; }
:is(body, .shell) .product-notes summary { cursor: pointer; }
:is(body, .shell) :is(#mvp-test-issue-entry,#weekly-report-import,.flow-entry-surface,.flow-action-surface) { padding: 20px !important; border: 1px solid var(--ui-border) !important; background: #fff !important; box-shadow: none !important; }
:is(body, .shell) :is(#mvp-test-issue-entry,#weekly-report-import,.flow-entry-surface,.flow-action-surface) > h2 { margin: 0 0 8px !important; font-size: 18px !important; color: var(--ui-text) !important; }
:is(body, .shell) :is(#mvp-test-issue-entry,#weekly-report-import,.flow-entry-surface,.flow-action-surface) > h2::before { display: none !important; }
:is(body, .shell) :is(#mvp-test-issue-entry,#weekly-report-import,.flow-entry-surface,.flow-action-surface) > .hint { margin: 0 0 16px !important; }
:is(body, .shell) :is(#mvp-test-issue-entry,.flow-entry-surface,.flow-action-surface) :is(.member-form,.workflow-form,.workflow-action-form) { margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important; box-shadow: none !important; }
:is(body, .shell) .product-version-notes { margin: 0; position: relative; }
:is(body, .shell) .product-version-notes[open] small { position: absolute; z-index: 8; min-width: 240px; padding: 12px; background: #fff; border: 1px solid var(--ui-border); border-radius: 6px; }
@media (max-width: 700px) {
  :is(body, .shell) .platform-layout { display: block; }
  :is(body, .shell) .platform-sidebar { position: sticky; height: 56px; top: 0; padding: 8px 12px; z-index: 5; border-bottom: 1px solid var(--ui-border); }
  :is(body, .shell) .platform-sidebar .workspace-nav button { height: 40px; margin: 0; padding: 6px 4px; }
  :is(body, .shell) .workspace-nav { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: visible; }
  :is(body, .shell) .workspace-nav::before,:is(body, .shell) .workspace-nav::after { display: none; }
  :is(body, .shell) .platform-content { padding: 0 16px 80px; }
  :is(body, .shell) .product-topbar { position: sticky; top: 56px; z-index: 4; margin: 0 -16px 16px; padding: 12px 16px; display: flex; flex-wrap: wrap; }
  :is(body, .shell) .product-topbar-brand { flex: 1 1 100%; min-width: 0; }
  :is(body, .shell) .product-search { flex-basis: 100%; max-width: none; order: 3; }
  :is(body, .shell) .product-topbar-actions { max-width: 100%; }
  :is(body, .shell) .product-current-user { display: none; }
  :is(body, .shell) .role-home-picker { max-width: 180px; }
  :is(body, .shell) .next,:is(body, .shell) .dashboard-panel,:is(body, .shell) .execution-dashboard,:is(body, .shell) .management-dashboard,:is(body, .shell) .management-duty-surface { padding: 16px; }
  :is(body, .shell) button { min-height: 40px; }
  :is(body, .shell) .workspace-subnav,:is(body, .shell) .role-view-tabs,:is(body, .shell) .management-duty-categories { flex-wrap: wrap; overflow: visible; }
  :is(body, .shell) .form-grid,:is(body, .shell) .context-grid,:is(body, .shell) .dashboard-grid { grid-template-columns: minmax(0,1fr); }
  :is(body, .shell) .table-wrap { max-height: none; overflow: visible; border: 0; }
  :is(body, .shell) table,:is(body, .shell) .daily-reminder-brief-table { min-width: 0; width: 100%; display: block; }
  :is(body, .shell) thead { display: none; }
  :is(body, .shell) .table-wrap table tbody:not([hidden]) { display: grid !important; width: 100% !important; gap: 16px; }
  :is(body, .shell) .table-wrap table tr { display: block; width: 100% !important; padding: 12px; background: #fff; border: 1px solid var(--ui-border); border-radius: 10px; }
  :is(body, .shell) .table-wrap table td { display: block; width: 100% !important; height: auto; padding: 8px 0; text-align: left !important; }
  :is(body, .shell) td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 4px; font-size: 12px; color: var(--ui-muted); }
  :is(body, .shell) .daily-reminder-brief-table textarea { min-width: 0; }
  :is(body, .shell) #daily-reminder-brief-load { position: fixed; bottom: 8px; left: 16px; z-index: 6; width: calc(100% - 32px); }
}
@media (max-width: 640px) {
  .work-role-overview { margin: 12px; }
  .work-role-overview-links { display: grid; grid-template-columns: minmax(0, 1fr); }
}
