/* ============================================================
   CLIB FDE · v2.4 全站设计统一层（clib-v24-polish.css）
   依据：CLIB_FDE_网页设计系统标准 v3.0
   加载：所有样式表最末，最高优先级；只引用 v3.0 令牌，不发明新色
   目标：18 个页面 + 全局弹框/浮层在色号/文字/卡片/按钮/标签/Tab/
        输入/弹框/空态/图标上完全一致，对标 Apple，干净整洁
   ============================================================ */

/* ============================================================
   0. 全局基底
   ============================================================ */
:root{
  /* v2.4 权威字体（v3.0：SF Pro 光学字族 + 中文苹方） */
  --font24:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",
    "PingFang SC","Helvetica Neue","Microsoft YaHei",system-ui,sans-serif;
  --font-mono24:"SF Mono",Menlo,Monaco,Consolas,"Liberation Mono",monospace;
}

html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }

body{
  font-family:var(--font24) !important;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  color:var(--gray-900);
  background:var(--gray-50) !important;
  font-size:15px;
  line-height:1.6;
  letter-spacing:-.006em;
}

/* 标题：SF Pro Display，靠字号/字重/负字距建立层级，不靠粗黑 */
h1,h2,h3,h4,h5{
  font-family:var(--font24);
  color:var(--gray-900);
  letter-spacing:-.02em;
  line-height:1.15;
  font-weight:600;
}
h1{ letter-spacing:-.025em; line-height:1.07; }
h2{ letter-spacing:-.02em; line-height:1.1; }

/* 等宽 */
code,pre,kbd,samp,.mono{ font-family:var(--font-mono24); }
code{ font-size:.9em; }

/* 数字用等宽数字，报表更整齐 */
.num,.stat .num,.p9-stat-num,.pm-stat-num,.psc-num,
.vr-stat .n,.wallet-card-num{ font-variant-numeric:tabular-nums; letter-spacing:-.02em; }

/* 选区：克制靛蓝 */
::selection{ background:rgba(79,107,237,.16); color:var(--gray-900); }

/* 焦点可见（键盘无障碍），鼠标点击不残留粗框 */
:focus-visible{ outline:2px solid var(--indigo-500); outline-offset:2px; border-radius:6px; }
:focus:not(:focus-visible){ outline:none; }

/* 滚动条：细、中性灰（Apple 风） */
*{ scrollbar-width:thin; scrollbar-color:var(--gray-300) transparent; }
*::-webkit-scrollbar{ width:8px; height:8px; }
*::-webkit-scrollbar-thumb{ background:var(--gray-300); border-radius:999px; border:2px solid transparent; background-clip:content-box; }
*::-webkit-scrollbar-thumb:hover{ background:var(--gray-400); background-clip:content-box; border:2px solid transparent; }
*::-webkit-scrollbar-track{ background:transparent; }
*::-webkit-scrollbar-corner{ background:transparent; }

/* 媒体：默认不溢出、圆角统一（具体组件可覆盖） */
img,svg,video,canvas{ max-width:100%; }
img{ -webkit-user-drag:none; user-select:none; }

/* ============================================================
   1. 卡片统一：白底 + gray-100 细边 + 18px 圆角 + 极轻阴影
   ============================================================ */
.dg-card,
.tool-card,.tool-card-v2,.tool-card-enhanced,
.term-card,.term-card-enhanced,
.resource-card,.resource-card-enhanced,
.snippet-card,.interview-card,.project-card,.group-card,
.news-card,.software-card,.mdn-card,.intel-card,.day-card,
.ex-card,.ex-aside-card,.knowledge-topic-card,.lv2-taskcard,
.account-card,.achievement-card,.vip-plan-card,.wallet-card,
.sr3-card,.p2-tpl-card,.packages-card,.pact-card,
.ability-dim-card,.v17-res-card,.v17-tcard,
.pm4-share-card,.pm4-priv-card,.pro-stat-card,
.hv-card,.hv-mycard,.hv-bpcard,.hv-mcard,.hv-qacard,
.jp-card,.vr-card,.ability-radar-card,.ability-gap-card{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
}

/* 可点击卡片：hover 柔和上浮（Apple 风），不做浮夸位移 */
.tool-card,.term-card,.resource-card,.snippet-card,.interview-card,
.project-card,.group-card,.news-card,.software-card,.mdn-card,
.knowledge-topic-card,.hv-card,.hv-mycard,.day-card,.v17-res-card,
.v17-tcard,.ability-dim-card,.pact-card{
  transition:box-shadow var(--dur-base) var(--ease-out),
    transform var(--dur-base) var(--ease-out),
    border-color var(--dur-base) var(--ease-out);
}
.tool-card:hover,.term-card:hover,.resource-card:hover,.snippet-card:hover,
.interview-card:hover,.project-card:hover,.group-card:hover,.news-card:hover,
.software-card:hover,.mdn-card:hover,.knowledge-topic-card:hover,
.hv-card:hover,.hv-mycard:hover,.day-card:hover,.v17-res-card:hover,
.v17-tcard:hover,.ability-dim-card:hover{
  box-shadow:var(--sh-md) !important;
  transform:translateY(-2px);
  border-color:var(--gray-200) !important;
}

/* 卡片标题/正文颜色统一（无论各模块历史 class） */
.card-title,.card-h h3,.tool-card h3,.term-card h3,.resource-card h3,
.snippet-card h3,.news-card-title,.software-card h3,.mdn-card h3,
.intel-card h3,.knowledge-topic-card h3,.lv2-taskcard h3,.account-card h3,
.vip-plan-card h3,.wallet-card-title,.pact-card b,.project-card h3,
.group-card h3,.v17-tcard-name,.v17-res-card h4{
  color:var(--gray-900) !important;
}
.card-text,.card-h .sub,.tool-card p,.term-card p,.resource-card p,
.snippet-card p,.news-card-summary,.news-card-meta,.mdn-card p,
.v17-res-desc,.v17-tcard-meta{
  color:var(--gray-500) !important;
}

/* ============================================================
   2. 按钮统一：全圆角胶囊，三种变体（实心/线框/文字）
   ============================================================ */
/* 2.1 按钮基底（排除导航项/汉堡/关闭等特殊控件） */
button:not(.nav-btn):not(.navbar-toggle):not(.modal-close):not(.float-panel-close):not(.msg-x):not(.cr-opt),
[class*="-btn"]:not(.nav-btn):not(.navbar-toggle):not(.modal-close):not(.float-panel-close):not(.msg-x),
.pomo-btn,.pj-btn,.obtn,.wbtn,.acc-btn{
  font-family:var(--font24);
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-size:14px; font-weight:600; letter-spacing:-.01em; line-height:1;
  padding:11px 22px;
  border-radius:var(--r-full);
  cursor:pointer;
  border:1px solid transparent;
  text-decoration:none;
  white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
  transition:background var(--dur-fast) var(--ease-out),
    color var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out),
    transform var(--dur-fast) var(--ease-out);
}
/* 按压反馈（Apple 风：轻微下沉） */
button:not(:disabled):active,
[class*="-btn"]:not(:disabled):not(.nav-btn):active{ transform:scale(.97); }

/* 2.2 主按钮：靛蓝实心（全站唯一主行动色） */
.btn-primary,.v17-btn-pri,.dg-btn-blue,.dg-btn-lg,
.pj-btn.primary,.jb-btn:not(.ghost),.login-btn,
.news-refresh-btn-primary,.p4-export-btn{
  background:var(--indigo-500) !important;
  color:#fff !important;
  border-color:transparent !important;
  box-shadow:0 1px 2px rgba(26,29,40,.08);
}
.btn-primary:hover,.v17-btn-pri:hover,.dg-btn-blue:hover,.dg-btn-lg:hover,
.pj-btn.primary:hover,.jb-btn:not(.ghost):hover,.login-btn:hover,
.news-refresh-btn-primary:hover,.p4-export-btn:hover{
  background:var(--indigo-600) !important;
}
.btn-primary:active,.v17-btn-pri:active,.dg-btn-blue:active,.dg-btn-lg:active,
.pj-btn.primary:active,.jb-btn:not(.ghost):active{
  background:var(--indigo-700) !important;
}

/* 2.3 线框按钮：透明底 + 灰边（次级行动） */
.btn-line,.v17-btn-ghost,.dg-btn-ghost,
.cf-btn:not(.active),.pomo-btn:not(.active),
.sr3-btn,.ex-btn,.cb-btn,.ci-btn,.obtn,.rs-btn,
.resource-open-btn,.model-more-btn,.pm4-tour-btn,.acc-btn{
  background:#fff !important;
  color:var(--gray-700) !important;
  border-color:var(--gray-200) !important;
}
.btn-line:hover,.v17-btn-ghost:hover,.dg-btn-ghost:hover,
.cf-btn:not(.active):hover,.pomo-btn:not(.active):hover,
.sr3-btn:hover,.ex-btn:hover,.cb-btn:hover,.ci-btn:hover,.obtn:hover,.rs-btn:hover,
.resource-open-btn:hover,.model-more-btn:hover,.pm4-tour-btn:hover,.acc-btn:hover{
  background:var(--gray-50) !important;
  border-color:var(--gray-300) !important;
}

/* 筛选按钮选中态：靛蓝浅底 + 靛蓝字（非实心，克制） */
.cf-btn.active,.pomo-btn.active{
  background:var(--indigo-50) !important;
  color:var(--indigo-600) !important;
  border-color:var(--indigo-100) !important;
  font-weight:600;
}

/* 2.4 文字按钮：无框，靛蓝字，padding 更小 */
.btn-text,.btn-ghost.text,.p2-viewbtn,.day-res-btn,
.sr2-id-topbtn,.lv2-note-btn{
  background:transparent !important;
  color:var(--indigo-500) !important;
  border-color:transparent !important;
  padding:8px 12px;
  box-shadow:none !important;
}
.btn-text:hover,.btn-ghost.text:hover,.p2-viewbtn:hover,.day-res-btn:hover,
.sr2-id-topbtn:hover,.lv2-note-btn:hover{
  background:var(--indigo-50) !important;
}

/* 2.5 复制类按钮：中性，hover 靛蓝描边 */
.btn-copy,.snippet-copy-btn,.resource-copy-btn{
  background:#fff !important;
  color:var(--gray-600) !important;
  border-color:var(--gray-200) !important;
}
.btn-copy:hover,.snippet-copy-btn:hover,.resource-copy-btn:hover{
  color:var(--indigo-600) !important;
  border-color:var(--indigo-500) !important;
}

/* 2.6 禁用态统一 */
button:disabled,[class*="-btn"]:disabled,.btn.disabled{
  opacity:.4; cursor:not-allowed; pointer-events:none;
}

/* 2.7 尺寸 */
.btn-sm,.v17-btn-sm{ padding:8px 16px !important; font-size:13px !important; }
.btn-lg{ padding:15px 30px !important; font-size:16px !important; }

/* ============================================================
   3. 旧变量强制重映射：全部收敛到 indigo / 灰，消除珊瑚红等杂色
   ============================================================ */
:root{
  --accent:var(--indigo-500);
  --accent-600:var(--indigo-600);
  --brand-500:var(--indigo-500);
  --brand-600:var(--indigo-600);
  --primary2:var(--indigo-500);
  --blue:var(--indigo-500);
  --blue-deep:var(--indigo-600);
  --blue-weak:var(--indigo-50);
  --info:var(--indigo-500);
  --text1:var(--gray-900);
  --text2:var(--gray-500);
  --text3:var(--gray-400);
  --text4:var(--gray-300);
  --bg2:var(--gray-100);
  --bg3:var(--gray-50);
  --fill:var(--gray-100);
}

/* ============================================================
   4. Chips / 筛选标签统一：默认灰底无边，选中 indigo 实心
   ============================================================ */
.hv-chip,
.tool-nav-child-buttons .filter-btn,
.filter-tags > *,.filter-tags button,
.dg-pill,.p4-chip,.cap-chip,.pj-chip,
.v17-mtchip,.v17-reason-chip,.news-study-chip,.free-chip{
  background:var(--gray-100) !important;
  border:1px solid transparent !important;
  color:var(--gray-600) !important;
  border-radius:var(--r-full) !important;
  font-weight:500 !important;
  box-shadow:none !important;
  transition:background var(--dur-fast) var(--ease-out),
    color var(--dur-fast) var(--ease-out) !important;
}
.hv-chip:hover,
.tool-nav-child-buttons .filter-btn:hover,
.filter-tags > *:hover,.filter-tags button:hover,
.dg-pill:hover{
  background:var(--gray-200) !important;
  color:var(--gray-700) !important;
}
.hv-chip.on,.hv-chip.active,
.tool-nav-child-buttons .filter-btn.active,
.filter-tags > *.active,.filter-tags button.active,
.p4-chip.active,.cap-chip.active,.pj-chip.active{
  background:var(--indigo-500) !important;
  border-color:var(--indigo-500) !important;
  color:#fff !important;
  font-weight:600 !important;
}

/* 诊断 pill 是"特性说明"（非可点筛选）：统一为中性浅灰，不实心 */
#dg-intro .dg-pill{
  background:var(--gray-100) !important;
  color:var(--gray-600) !important;
  border-color:transparent !important;
}

/* ============================================================
   5. 自习室卡片式主入口（.hv-tab）：弱化，选中 indigo 浅底而非整块实心
   ============================================================ */
#page-studyroom .hv-tab{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
  color:var(--gray-700) !important;
  font-weight:600 !important;
  transition:box-shadow var(--dur-base) var(--ease-out),
    border-color var(--dur-base) var(--ease-out) !important;
}
#page-studyroom .hv-tab svg{ color:var(--gray-400) !important; transition:color var(--dur-fast); }
#page-studyroom .hv-tab:hover{
  border-color:var(--gray-200) !important;
  box-shadow:var(--sh-md) !important;
  transform:none !important;
}
#page-studyroom .hv-tab:hover svg{ color:var(--indigo-500) !important; }
#page-studyroom .hv-tab.on{
  background:var(--indigo-50) !important;
  border-color:var(--indigo-100) !important;
  color:var(--indigo-600) !important;
  box-shadow:var(--sh-sm) !important;
}
#page-studyroom .hv-tab.on svg{ color:var(--indigo-600) !important; }
#page-studyroom .hv-tab-cnt{
  background:var(--gray-100) !important;
  color:var(--gray-600) !important;
}
#page-studyroom .hv-tab.on .hv-tab-cnt{
  background:var(--indigo-100) !important;
  color:var(--indigo-600) !important;
}

/* ============================================================
   6. iOS 分段统一（2–3 互斥视图）：灰矩形容器 + 白滑块
   ============================================================ */
.jt-seg-inner,.pm4-seg,.bh-seg{
  display:inline-flex !important;
  background:rgba(0,0,0,.055) !important;
  border-radius:var(--r-md) !important;
  padding:3px !important;
  gap:2px !important;
}
.jt-seg-inner button,.pm4-seg button,.bh-seg button{
  border:none !important;
  background:transparent !important;
  border-radius:var(--r-sm) !important;
  padding:9px 24px !important;
  font-size:14px !important;
  font-weight:600 !important;
  color:var(--gray-500) !important;
  box-shadow:none !important;
  transition:background var(--dur-fast),color var(--dur-fast),
    box-shadow var(--dur-fast) !important;
}
.jt-seg-inner button.active,.pm4-seg button.active,.bh-seg button.active{
  background:#fff !important;
  color:var(--gray-900) !important;
  font-weight:700 !important;
  box-shadow:0 1px 3px rgba(0,0,0,.12) !important;
}

/* ============================================================
   7. 下划线 Tab 统一（多分类）：透明底 + indigo 下划线
   ============================================================ */
.tool-nav-parent{
  border-bottom:1px solid var(--gray-100) !important;
}
.tool-nav-parent .filter-btn{
  background:transparent !important;
  border:none !important;
  border-bottom:2px solid transparent !important;
  border-radius:0 !important;
  color:var(--gray-500) !important;
  box-shadow:none !important;
}
.tool-nav-parent .filter-btn:hover{
  color:var(--gray-900) !important;
  background:transparent !important;
}
.tool-nav-parent .filter-btn.active{
  color:var(--indigo-600) !important;
  border-bottom:2px solid var(--indigo-500) !important;
  background:transparent !important;
}

/* ============================================================
   8. 搜索框 / 输入细节统一
   ============================================================ */
.search-box input{
  background:#fff !important;
  border:1px solid var(--gray-200) !important;
  border-radius:var(--r-md) !important;
  padding:11px 16px 11px 40px !important;
  color:var(--gray-900) !important;
  box-shadow:none !important;
}
.search-box input:focus{
  border-color:var(--indigo-500) !important;
  box-shadow:0 0 0 4px rgba(79,107,237,.1) !important;
  background:#fff !important;
}
.search-icon{
  width:16px !important; height:16px !important;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238E8E93' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") center/contain no-repeat !important;
  color:transparent !important;
  font-size:0 !important;
}

/* 用户输入的内容统一深色（placeholder 仍为灰） */
.input,input[type="text"],input[type="tel"],input[type="email"],input[type="password"],
input[type="search"],input[type="number"],input[type="url"],select,textarea{
  color:var(--gray-900) !important;
}

/* ============================================================
   9. 遮罩层统一：rgba(0,0,0,.4) + blur(4px)
   ============================================================ */
.modal-overlay,.v17-overlay,.v17-onboard-mask,.v17-levelup-overlay,
.resource-modal,.float-panel-overlay{
  background:rgba(0,0,0,0,.4) !important;
  backdrop-filter:blur(4px) !important;
  -webkit-backdrop-filter:blur(4px) !important;
}

/* ============================================================
   10. 浮层面板统一：白底 + 标准圆角 + 柔和阴影
   ============================================================ */
.modal,.v17-modal,.v17-onboard-modal,.resource-modal-container{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-xl) !important;
  box-shadow:var(--sh-lg) !important;
}
.v17-bdrop,.float-panel,.msg-panel{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-lg) !important;
}
.modal-title,.v17-modal-hd h3,.v17-onboard-hd h3,.resource-modal-container h3,
.v17-bdrop-hd h4,.float-panel-title{
  color:var(--gray-900) !important;
}
.modal-body,.v17-modal-bd,.resource-modal-container p,
.v17-onboard-bd,.v17-onboard-hd p{
  color:var(--gray-500) !important;
}
.v17-modal-x,.float-panel-close{
  background:var(--gray-100) !important;
  color:var(--gray-600) !important;
  border-radius:50% !important;
  width:32px !important; height:32px !important;
  border:none !important;
  display:inline-flex; align-items:center; justify-content:center;
}
.v17-modal-x:hover,.float-panel-close:hover{ background:var(--gray-200) !important; }

/* 浮动面板 Tab 统一为下划线，active indigo */
.float-tab{
  background:transparent !important;
  border:none !important;
  border-bottom:2px solid transparent !important;
  border-radius:0 !important;
  color:var(--gray-500) !important;
  padding:8px 14px !important;
}
.float-tab.active{
  color:var(--indigo-600) !important;
  border-bottom:2px solid var(--indigo-500) !important;
}

/* ============================================================
   11. 大课堂顶部状态卡弱化：彩色 → 统一白卡 / 标准按钮
   ============================================================ */
#todayStudyCard{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
}
/* DAY 标签：indigo 实心 → indigo 浅底（克制） */
#todayDayTag{
  background:var(--indigo-50) !important;
  color:var(--indigo-600) !important;
  border-radius:var(--r-full) !important;
  font-weight:700 !important;
}
/* 今日主题：去超重字重 */
#todayTheme{ font-weight:600 !important; color:var(--gray-900) !important; }
/* 开始今日学习：保留唯一主 CTA，统一胶囊 */
#todayStartBtn{
  background:var(--indigo-500) !important;
  color:#fff !important;
  border-radius:var(--r-full) !important;
  box-shadow:0 1px 2px rgba(26,29,40,.08) !important;
}
#todayStartBtn:hover{ background:var(--indigo-600) !important; }
/* 72 天路线：indigo 线框 → 中性线框 */
#todayStudyCard button[onclick*="'path'"]{
  background:#fff !important;
  border:1px solid var(--gray-200) !important;
  color:var(--gray-700) !important;
  border-radius:var(--r-full) !important;
}
#todayStudyCard button[onclick*="'path'"]:hover{ background:var(--gray-50) !important; }
/* 能力分：indigo（已重映射），字重收敛 */
#todayAbilityScore{ font-weight:700 !important; }

/* 前置准备进度条：浅蓝底 → 统一白卡 */
#prepProgressBar{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
}
#prepToggleBtn{
  background:var(--indigo-500) !important;
  color:#fff !important;
  border-radius:var(--r-full) !important;
}
#prepToggleBtn:hover{ background:var(--indigo-600) !important; }

/* ============================================================
   12. 空态 / 卡片图标尺寸与颜色统一
   ============================================================ */
.v17-empty .ic,.v17-empty-guide .ic{
  color:var(--gray-300) !important;
  display:flex; justify-content:center;
}
.v17-empty .ic svg{ width:34px !important; height:34px !important; }
.v17-empty-guide .ic svg{ width:40px !important; height:40px !important; }
/* 会议卡大图标 */
.v17-mic{
  color:var(--indigo-500) !important;
  background:var(--indigo-50) !important;
  display:flex; align-items:center; justify-content:center;
}
.v17-mic svg{ width:22px !important; height:22px !important; }
/* 动态流小图标 */
.v17-feed-ic{ color:var(--indigo-500) !important; }
.v17-feed-ic svg{ width:16px !important; height:16px !important; }
/* 收藏按钮：未收藏灰，已收藏 indigo */
.v17-fav-btn{
  background:transparent !important;
  border:none !important;
  color:var(--gray-300) !important;
  padding:6px !important;
  box-shadow:none !important;
}
.v17-fav-btn.on{ color:var(--indigo-500) !important; }
/* 精华图标：克制金色 */
.v17-essence-icon{ color:var(--gold-500); display:inline-flex; vertical-align:-2px; }
.v17-essence-icon svg{ width:14px !important; height:14px !important; }

/* ============================================================
   13. v17 色板与状态语义收敛（旧 v17 变量 → v3.0 令牌）
   ============================================================ */
:root{
  --v17-primary:var(--indigo-500);
  --v17-primary2:var(--indigo-400);
  --v17-bg:var(--gray-50);
  --v17-card:#fff;
  --v17-line:var(--gray-100);
  --v17-text:var(--gray-900);
  --v17-text2:var(--gray-600);
  --v17-text3:var(--gray-400);
  --v17-green:var(--indigo-500);
  --v17-yellow:var(--gold-500);
  --v17-blue:var(--indigo-500);
  --v17-gray:var(--gray-300);
  --v17-red:var(--gray-600);
}
/* 在线状态点：在线 indigo / 学习 indigo-400 / 离开 gold / 离线 gray */
.v17-dot.online{ background:var(--indigo-500) !important; }
.v17-dot.learning{ background:var(--indigo-400) !important; }
.v17-dot.away{ background:var(--gold-500) !important; }
.v17-dot.offline{ background:var(--gray-300) !important; }
/* toast：统一中性深灰（不用红绿），图标/文字已表达成败 */
.v17-toast.ok,.v17-toast.err{ background:var(--gray-800) !important; }
/* 任务状态徽章：收敛 indigo/灰/gold，弱化红绿 */
.v17-st{ border-radius:var(--r-full) !important; font-weight:600 !important; }
.v17-st.todo{ background:var(--gray-100) !important; color:var(--gray-600) !important; }
.v17-st.in_progress{ background:var(--indigo-50) !important; color:var(--indigo-600) !important; }
.v17-st.done{ background:var(--indigo-100) !important; color:var(--indigo-700) !important; }
.v17-st.blocked{ background:var(--gray-100) !important; color:var(--gray-500) !important; }
/* 资源类型标签：统一中性灰，类型靠文字区分（不用金/绿彩色） */
.v17-res-type{ border-radius:var(--r-full) !important; font-weight:600 !important; }
.v17-res-type.requirement,.v17-res-type.solution,
.v17-res-type.reference,.v17-res-type.output,.v17-res-type.meeting{
  background:var(--gray-100) !important; color:var(--gray-600) !important;
}
/* 贡献榜前三：弱化为淡金（荣誉语义，克制） */
.v17-contrib-row .rk.top3{ background:var(--gold-50) !important; color:var(--gold-600) !important; }
/* 优先级竖条：urgent 深灰 / high gold / medium 浅金 / low 灰（去红黄） */
.v17-pr.urgent{ background:var(--gray-700) !important; }
.v17-pr.high{ background:var(--gold-500) !important; }
.v17-pr.medium{ background:var(--gold-300) !important; }
.v17-pr.low{ background:var(--gray-300) !important; }
/* 任务来源标签：中性灰 */
.v17-tcard .tsrc{ background:var(--gray-100) !important; color:var(--gray-600) !important; }
/* 履历/简历打印模板：收敛灰阶 + indigo（去蓝灰/蓝边） */
.rs-head{ border-bottom-color:var(--indigo-500) !important; }
.rs-name{ color:var(--gray-900) !important; font-weight:700 !important; }
.rs-sub,.rs-ids,.rs-meta,.rs-stat span,.rs-empty,.rs-foot{ color:var(--gray-500) !important; }
.rs-ids b{ color:var(--gray-900) !important; }
.rs-stat{ background:var(--gray-50) !important; }
.rs-stat b{ color:var(--indigo-500) !important; }
.rs-crow,.rs-orow{ border-bottom-color:var(--gray-100) !important; }
.rs-foot{ border-top-color:var(--gray-100) !important; }
/* p8-room 作战室：文字去蓝黑/蓝灰，甘特/按钮统一 */
.p8-room .room-back{ color:var(--gray-700) !important; }
.p8-room .room-subtitle{ color:var(--gray-400) !important; }
.p8-room .acc-btn.ghost{ background:var(--gray-100) !important; color:var(--gray-600) !important; }
.p8-room .gantt-bar.ing{ background:var(--indigo-400) !important; color:#fff !important; }
.p8-room .gantt-bar.todo{ background:var(--gray-100) !important; color:var(--gray-400) !important; border-color:var(--gray-200) !important; }
/* 状态流转危险按钮 / 依赖块：去红橙，中性灰 */
.v17-stbtn.danger{ border-color:var(--gray-200) !important; color:var(--gray-600) !important; }
.v17-deps{ background:var(--gray-50) !important; }
/* 禁言横幅：中性灰（文字已说明状态） */
.v17-silent-banner{ background:var(--gray-100) !important; border-color:var(--gray-200) !important; color:var(--gray-600) !important; }
/* oe 模板徽章 / 示例注：中性 */
.oe-badge.tpl{ color:var(--gray-600) !important; background:var(--gray-100) !important; border-color:transparent !important; }
.oe-example-note{ color:var(--gray-400) !important; }

/* ============================================================
   14. 大课堂通栏卡减负（lv2-note / quiz / exam / welcome）
   ============================================================ */
.lv2-note,.lv2-quiz,.lv2-exam{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
}
/* 欢迎条：弱化为中性浅灰 */
.lv2-welcome{
  background:var(--gray-50) !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-md) !important;
  color:var(--gray-600) !important;
}
.lv2-welcome b{ color:var(--gray-800) !important; font-weight:600 !important; }
/* 笔记卡 */
.lv2-note-badge{ background:var(--indigo-50) !important; color:var(--indigo-500) !important; border-radius:var(--r-md) !important; }
.lv2-note-kicker{ color:var(--indigo-600) !important; font-weight:600 !important; }
.lv2-note-title{ color:var(--gray-900) !important; }
.lv2-note-hook{ color:var(--gray-500) !important; }
.lv2-nm.hot{ background:var(--indigo-50) !important; color:var(--indigo-600) !important; border-radius:var(--r-full) !important; }
.lv2-note-btn{
  background:var(--indigo-500) !important; color:#fff !important;
  border:none !important; border-radius:var(--r-full) !important;
  box-shadow:0 1px 2px rgba(26,29,40,.08) !important;
}
.lv2-note-btn small{ color:rgba(255,255,255,.82) !important; font-weight:400 !important; }
.lv2-note-btn:hover{ background:var(--indigo-600) !important; }
.lv2-note-lock{ color:var(--gray-400) !important; }
/* 自测卡 */
.lv2-quiz-title{ color:var(--gray-900) !important; }
.lv2-quiz-title .pg{ color:var(--gray-400) !important; font-weight:500 !important; }
.lv2-pbar{ background:var(--gray-100) !important; border-radius:var(--r-full) !important; }
.lv2-pbar i{ background:var(--indigo-500) !important; border-radius:var(--r-full) !important; }
.lv2-quiz-cta{
  background:var(--indigo-500) !important; color:#fff !important;
  border:none !important; border-radius:var(--r-full) !important;
  box-shadow:0 1px 2px rgba(26,29,40,.08) !important;
}
.lv2-quiz-cta:hover{ background:var(--indigo-600) !important; }
.lv2-quiz-hint{ color:var(--gray-400) !important; }
/* 考官卡标题图标/文字 */
.lv2-exam .lv2-exam-ic{ background:var(--indigo-50) !important; color:var(--indigo-500) !important; border-radius:var(--r-md) !important; }
/* 章节标题统一（今日你将学会/配套资料） */
.lv2-sec-title{ color:var(--gray-900) !important; font-weight:600 !important; }
.lv2-sec-count{ color:var(--gray-400) !important; font-weight:500 !important; }
/* 掌握度徽章：quizColor 彩色 → 中性 indigo 浅底 */
.kd-static-head span[style*="掌握度"]{
  background:var(--indigo-50) !important; color:var(--indigo-600) !important;
  border:1px solid var(--indigo-100) !important; border-radius:var(--r-full) !important;
}
/* 自习室 大师视频/直播 入口：白卡（与大课堂统一） */
.p4-media-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:18px 0 6px; }
.p4-media-entry{
  display:flex; align-items:center; gap:14px; cursor:pointer;
  background:#fff; border:1px solid var(--gray-100); border-radius:var(--r-lg);
  padding:16px 18px; box-shadow:var(--sh-sm);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.p4-media-entry:hover{ transform:translateY(-2px); box-shadow:var(--sh-md); border-color:var(--gray-200); }
.p4-me-ic{
  width:42px; height:42px; border-radius:var(--r-md); flex:none;
  background:var(--indigo-50); color:var(--indigo-500);
  display:flex; align-items:center; justify-content:center;
}
.p4-me-tx{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.p4-me-tx b{ font-size:15px; font-weight:600; color:var(--gray-900); }
.p4-me-tx small{ font-size:12px; color:var(--gray-500); }
.p4-me-arrow{ color:var(--gray-300); flex:none; display:flex; }
.p4-media-entry:hover .p4-me-arrow{ color:var(--indigo-500); }
@media(max-width:640px){ .p4-media-grid{ grid-template-columns:1fr; } }

/* ============================================================
   15. 自习室全部卡片 / 细节统一（hv-card/my/m/qacard/bpcard）
   ============================================================ */
/* 卡片：统一 gray-100 细边 + 18 圆角 + sh-sm */
#page-studyroom .hv-card,
#page-studyroom .hv-mycard,
#page-studyroom .hv-mcard,
#page-studyroom .hv-qacard,
#page-studyroom .hv-bpcard{
  border-color:var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
}
#page-studyroom .hv-card:hover,
#page-studyroom .hv-mycard:hover,
#page-studyroom .hv-mcard:hover{
  border-color:var(--gray-200) !important;
  box-shadow:var(--sh-md) !important;
}
/* 奖励条：gold 渐变 → 克制淡金 */
#page-studyroom .hv-reward{
  background:var(--gold-50) !important;
  border:1px solid var(--gold-100) !important;
  color:var(--gold-600) !important;
  border-radius:var(--r-md) !important;
}
/* indigo 小标签统一：indigo-50 底 + indigo-600 字 */
#page-studyroom .hv-roomno,
#page-studyroom .hv-mycard .st,
#page-studyroom .hv-mtags span{
  background:var(--indigo-50) !important;
  color:var(--indigo-600) !important;
  border-radius:var(--r-full) !important;
}
/* 我的小组：我发起的(品牌蓝) vs 我加入的(绿) */
#page-studyroom .hv-mycard.mine-owner{border-color:rgba(79,107,237,.35) !important;background:linear-gradient(180deg,#F5F7FF,#FFFFFF) !important}
#page-studyroom .hv-mycard.mine-owner .st-owner{background:var(--indigo-100,#E9EDFF) !important;color:var(--indigo-600) !important}
#page-studyroom .hv-mycard.mine-join{border-color:rgba(16,185,129,.35) !important;background:linear-gradient(180deg,#F2FAF7,#FFFFFF) !important}
#page-studyroom .hv-mycard.mine-join .st-join{background:#E4F7EF !important;color:#0B9E6C !important}
#page-studyroom .hv-status.open{ color:var(--indigo-600) !important; }
#page-studyroom .hv-status.filling{ color:var(--gray-400) !important; }
#page-studyroom .hv-ind{ background:var(--gray-100) !important; color:var(--gray-500) !important; border-radius:var(--r-full) !important; }
/* 头像：去渐变，纯色 */
#page-studyroom .hv-mava{ background:var(--indigo-500) !important; }
#page-studyroom .hv-bpava{ background:var(--gray-300) !important; }
#page-studyroom .hv-bpava.on{ background:var(--indigo-500) !important; }
#page-studyroom .hv-bpdot{ background:var(--gray-300) !important; }
#page-studyroom .hv-bpdot.on{ background:var(--indigo-500) !important; }
/* 主操作按钮：统一 indigo 实心胶囊 + 克制阴影 */
#page-studyroom .hv-mbtn,
#page-studyroom .hv-askbox button{
  background:var(--indigo-500) !important;
  border-radius:var(--r-full) !important;
  box-shadow:0 1px 2px rgba(26,29,40,.08) !important;
}
#page-studyroom .hv-mbtn:hover,
#page-studyroom .hv-askbox button:hover{ background:var(--indigo-600) !important; }
#page-studyroom .hv-bpadd{ background:var(--indigo-500) !important; border-radius:var(--r-md) !important; }
#page-studyroom .hv-bpadd:hover{ background:var(--indigo-600) !important; }
/* 问答回答块 */
#page-studyroom .hv-qaans{ background:var(--gray-50) !important; border-radius:var(--r-md) !important; }
#page-studyroom .hv-qaans b{ color:var(--indigo-600) !important; }
/* 搜索/输入 focus 统一 indigo ring */
#page-studyroom .hv-search input:focus,
#page-studyroom .hv-askbox input:focus{
  border-color:var(--indigo-500) !important;
  box-shadow:0 0 0 4px var(--indigo-50) !important;
}
/* 面板标题统一字重 */
#page-studyroom .hv-panelhead h3{ font-weight:600 !important; color:var(--gray-900) !important; }
#page-studyroom .hv-card-title{ font-weight:600 !important; color:var(--gray-900) !important; }

/* ============================================================
   16. 工具卡细节统一（tool-card 内部）
   ============================================================ */
.tool-card{
  background:#fff !important;
  border:1px solid var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
}
.tool-card:hover{ box-shadow:var(--sh-md) !important; border-color:var(--gray-200) !important; }
.tool-icon{
  background:var(--indigo-50) !important; color:var(--indigo-500) !important;
  border-radius:var(--r-md) !important;
}
.tool-name{ color:var(--gray-900) !important; font-weight:600 !important; }
.tool-cat{ color:var(--gray-400) !important; }
.tool-count-badge{
  background:var(--indigo-50) !important; color:var(--indigo-600) !important;
  border-radius:var(--r-full) !important;
}
.tool-stars{ color:var(--gold-400) !important; letter-spacing:1px; }
.tool-desc{ color:var(--gray-500) !important; }
.tool-tag{
  background:var(--gray-100) !important; color:var(--gray-600) !important;
  border-radius:var(--r-full) !important; border:none !important;
}
.tool-pc-lbl{ color:var(--indigo-600) !important; font-weight:600 !important; }
.tool-pc-con{ color:var(--gray-500) !important; }
.tool-pros{ color:var(--gray-700) !important; }
.tool-cons{ color:var(--gray-500) !important; }
.tool-official-link{
  background:var(--gray-50) !important; border:1px solid var(--gray-100) !important;
  border-radius:var(--r-md) !important; color:var(--gray-700) !important;
}
.tool-official-link:hover{ background:var(--indigo-50) !important; color:var(--indigo-600) !important; border-color:var(--indigo-100) !important; }
.tool-copy-mini{ background:var(--gray-100) !important; border-radius:var(--r-md) !important; }

/* ============================================================
   17. 成长追加模块统一（pm4-sec / seg / titles / priv / rank）
   ============================================================ */
.pm4-sec{
  border-color:var(--gray-100) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--sh-sm) !important;
}
.pm4-sec-hd h3{ color:var(--gray-900) !important; font-weight:600 !important; }
/* 分段 iOS 化 */
.pm4-seg{ background:rgba(0,0,0,.055) !important; border-radius:var(--r-md) !important; padding:3px !important; }
.pm4-seg button{ border-radius:var(--r-sm) !important; color:var(--gray-600) !important; }
.pm4-seg button.on{ background:#fff !important; color:var(--gray-900) !important; box-shadow:0 1px 3px rgba(0,0,0,.12) !important; }
/* 称号 chip */
.pm4-title-chip{ border-color:var(--gray-200) !important; border-radius:var(--r-full) !important; }
.pm4-title-chip.worn{ background:var(--indigo-500) !important; border-color:var(--indigo-500) !important; box-shadow:0 1px 2px rgba(26,29,40,.08) !important; }
/* 特权卡 */
.pm4-priv-card{ background:var(--gray-50) !important; border-color:var(--gray-100) !important; border-radius:var(--r-md) !important; }
.pm4-priv-card.avail{ background:var(--indigo-50) !important; border-color:var(--indigo-100) !important; }
.pm4-priv-card .lv{ color:var(--indigo-600) !important; }
/* 历史排行 */
.pm4-hist-item{ border-color:var(--gray-100) !important; border-radius:var(--r-md) !important; }
.pm4-hist-rank .rk{ background:var(--gray-100) !important; color:var(--gray-600) !important; }
.pm4-hist-rank.top1 .rk{ background:var(--gold-300) !important; color:#fff !important; }
.pm4-hist-rank.top2 .rk{ background:var(--gray-300) !important; color:#fff !important; }
.pm4-hist-rank.top3 .rk{ background:var(--gold-400) !important; color:#fff !important; }
/* 活动分类 tabs */
.pm4-type-tabs button{ border:1px solid var(--gray-200) !important; background:#fff !important; color:var(--gray-600) !important; border-radius:var(--r-full) !important; }
.pm4-type-tabs button.on{ background:var(--indigo-500) !important; border-color:var(--indigo-500) !important; }
/* royal 头像框：去 indigo/gold 交替动画，统一克制 indigo */
.frame-royal .pm4-frame-ring{ box-shadow:0 0 0 3px var(--indigo-400),0 0 14px rgba(79,107,237,.5) !important; animation:none !important; }
/* 成就光晕：统一 indigo 克制 */
.pm4-ach-halo{ background:radial-gradient(circle,rgba(79,107,237,.32) 0%,transparent 70%) !important; }

/* ============================================================
   18. 招聘页细节统一（jobs：seg / card / verify / tags）
   ============================================================ */
.jobs-head h1{ color:var(--gray-900) !important; font-weight:600 !important; letter-spacing:-.02em !important; }
.jt-seg-inner{ background:rgba(0,0,0,.055) !important; border-radius:var(--r-md) !important; }
.jt-seg-inner button{ color:var(--gray-600) !important; border-radius:var(--r-sm) !important; }
.jt-seg-inner button.active{ background:#fff !important; color:var(--gray-900) !important; box-shadow:0 1px 3px rgba(0,0,0,.12) !important; }
.jp-card,.vr-card{ border-color:var(--gray-100) !important; border-radius:var(--r-xl) !important; box-shadow:var(--sh-sm) !important; }
.jp-card h3,.vr-card h3{ color:var(--gray-900) !important; font-weight:600 !important; }
.jp-form input,.jp-form textarea,.vr-input input{ background:#fff !important; border-color:var(--gray-200) !important; border-radius:var(--r-md) !important; }
.jp-form input:focus,.jp-form textarea:focus,.vr-input input:focus{ border-color:var(--indigo-500) !important; box-shadow:0 0 0 4px var(--indigo-50) !important; }
.vr-input button{ background:var(--indigo-500) !important; border-radius:var(--r-full) !important; box-shadow:0 1px 2px rgba(26,29,40,.08) !important; filter:none !important; }
.vr-input button:hover{ background:var(--indigo-600) !important; }
.vr-invalid{ background:var(--gray-100) !important; border:1px solid var(--gray-200) !important; color:var(--gray-600) !important; border-radius:var(--r-lg) !important; }
.vr-avatar{ background:var(--indigo-500) !important; }
.vr-ok-name{ color:var(--gray-900) !important; font-weight:600 !important; }
.vr-ok-lv b{ color:var(--indigo-600) !important; }
.vr-stat{ background:var(--gray-50) !important; border-radius:var(--r-md) !important; }
.vr-stat .n{ color:var(--gray-900) !important; }
.vr-case{ background:var(--gray-50) !important; border-radius:var(--r-md) !important; }
.vr-case-t{ color:var(--gray-900) !important; }
.vr-tags span{ background:var(--indigo-50) !important; color:var(--indigo-600) !important; border-radius:var(--r-full) !important; }
.jp-req{ color:var(--gray-500) !important; }
.jp-note{ background:var(--gray-50) !important; border-radius:var(--r-lg) !important; }

/* =====================================================================
   v2.4 内页统一页头标准（Apple 设计语言：深色标题、无卡片、充足留白）
   ===================================================================== */
.tip-box.page-kv{background:transparent !important;border:none !important;box-shadow:none !important;padding:38px 0 22px !important;margin-bottom:22px !important}
.page-kv h2,.page-kv h4{color:#1d1d1f !important;font-size:30px !important;line-height:1.16 !important;font-weight:800 !important;letter-spacing:-.02em !important;margin:0 0 10px !important}
.page-kv p{color:#6e6e73 !important;font-size:15px !important;line-height:1.66 !important;margin:0 0 6px !important;max-width:840px}
.page-kv p b{color:#3a3f4a !important;font-weight:600}
.page-kv a{color:#4f6bed !important}
/* 辅助提示卡（非页面主 KV）：克制浅灰 */
.tip-box.tip-note{background:#f5f5f7 !important;border:1px solid #e8e8ed !important;box-shadow:none !important;border-radius:14px !important;padding:15px 18px !important;margin-bottom:16px !important}
.tip-box.tip-note h4{color:#1d1d1f !important;font-size:15px !important;font-weight:700 !important;margin:0 0 6px !important}
.tip-box.tip-note p{color:#6e6e73 !important;font-size:13.5px !important;line-height:1.62 !important;margin:0 !important}
/* growth 现有页头纳入统一标准 */
.growth-page-head h2{font-size:30px !important;font-weight:800 !important;letter-spacing:-.02em !important;color:#1d1d1f !important}
.growth-page-head p{font-size:15px !important;color:#6e6e73 !important}
/* 自习室 hero 收敛为统一页头（保留真实统计，去装饰渐变/卡片） */
.sr2-hero{background:transparent !important;border:none !important;box-shadow:none !important;padding:30px 0 18px !important;flex-direction:column !important;align-items:stretch !important;gap:18px !important}
.sr2-hero::before{display:none !important}
.sr2-kicker{display:none !important}
.sr2-hero-t{font-size:30px !important;font-weight:800 !important;letter-spacing:-.02em !important;line-height:1.16 !important;margin:0 0 10px !important}
.sr2-hero-d{font-size:15px !important;color:#6e6e73 !important;line-height:1.66 !important;margin:0;max-width:820px}
.sr2-live{background:transparent !important;border:none !important;padding:0 !important}
.lv-slogan{display:none !important}
.lv-nums{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.lv-item{background:#f5f5f7;border-radius:12px;padding:12px 10px;text-align:center}
.lv-item b{font-size:22px !important;font-weight:800 !important;color:#1d1d1f !important;display:block}
.lv-item span{font-size:12px !important;color:#6e6e73 !important}
@media(max-width:680px){.lv-nums{grid-template-columns:repeat(3,1fr)}}
/* ability 能力模型页头收敛为统一 KV */
.ability-intro{background:transparent !important;border:none !important;box-shadow:none !important;padding:36px 0 20px !important;margin-bottom:18px !important;align-items:flex-start !important}
.ability-intro-icon{display:none !important}
.ability-intro-title{font-size:30px !important;font-weight:800 !important;letter-spacing:-.02em !important;color:#1d1d1f !important;margin-bottom:6px !important}
.ability-intro-desc{font-size:15px !important;color:#6e6e73 !important;line-height:1.6 !important}
.ability-intro-right{opacity:.9}
/* examiner AI 考官页头收敛为统一 KV */
.ex-hero{background:transparent !important;border:none !important;box-shadow:none !important;padding:36px 0 18px !important;margin-bottom:16px !important}
.ex-hero h2{font-size:30px !important;font-weight:800 !important;letter-spacing:-.02em !important;color:#1d1d1f !important;margin:0 0 10px !important}
.ex-hero p{font-size:15px !important;color:#6e6e73 !important;line-height:1.66 !important;max-width:840px !important}

/* ===== 第1点：项目总览（项目管理九大要素） ===== */
.p8-room .p8-overview{margin-bottom:16px}
.p8-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:4px 0 16px}
.p8-kpi{background:var(--gray-50,#f5f5f7);border-radius:14px;padding:14px 16px;text-align:left}
.p8-kpi span{display:block;font-size:12px;color:var(--gray-500,#86868b);font-weight:500;margin-bottom:4px}
.p8-kpi b{font-size:22px;font-weight:700;color:var(--gray-900,#1d1d1f);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.p8-pm9{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.p8-pm{background:#fff;border:1px solid var(--gray-200,#e5e5ea);border-radius:14px;padding:13px 14px}
.p8-pm.empty{background:var(--gray-50,#f5f5f7)}
.p8-pm .pm-h b{font-size:13px;font-weight:600;color:var(--gray-900,#1d1d1f)}
.p8-pm p{margin:6px 0 0;font-size:12.5px;line-height:1.55;color:var(--gray-600,#48484a);white-space:pre-wrap;word-break:break-word}
.p8-pm .pm-ph{font-size:12.5px;color:var(--gray-400,#b0b0b5)}
.p8-research{margin-top:14px;border-top:1px solid var(--gray-200,#e5e5ea);padding-top:14px}
.p8-research .rs-h b{font-size:13px;font-weight:600}
.p8-research .rs-note{margin:8px 0;font-size:13px;line-height:1.6;color:var(--gray-600,#48484a);white-space:pre-wrap}
.p8-research .rs-links{display:flex;flex-wrap:wrap;gap:8px}
.p8-research .rs-links a{font-size:12px;color:var(--indigo-500,#4f6bed);background:rgba(79,107,237,.08);border-radius:999px;padding:5px 12px;text-decoration:none;word-break:break-all}
.p8-editbtn{margin-left:auto;font-size:13px;font-weight:600;color:var(--indigo-500,#4f6bed);background:rgba(79,107,237,.08);border:none;border-radius:999px;padding:7px 16px;cursor:pointer}
.p8-editbtn:hover{background:rgba(79,107,237,.16)}
.pm9-form .pmf{margin-bottom:14px}
.pm9-form label{display:block;font-size:13px;font-weight:600;color:var(--gray-900,#1d1d1f);margin-bottom:6px}
.pm9-form label small{display:block;font-weight:400;font-size:12px;color:var(--gray-500,#86868b);margin-top:2px}
.pm9-form textarea,.pm9-form input{width:100%;border:1px solid var(--gray-200,#e5e5ea);border-radius:10px;padding:9px 11px;font-size:13.5px;font-family:inherit;resize:vertical;box-sizing:border-box;background:#fff}
.pm9-form textarea:focus,.pm9-form input:focus{outline:none;border-color:var(--indigo-500,#4f6bed);box-shadow:0 0 0 3px rgba(79,107,237,.12)}
.pm9-actions{display:flex;justify-content:flex-end;gap:10px}
/* ===== 第2点：任务看板结构化 ===== */
.p8-room .wk-tasks li{display:flex;align-items:flex-start;gap:10px}
.p8-room .tk-body{flex:1;min-width:0}
.tk-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tk-title{font-size:13.5px;font-weight:500;color:var(--gray-900,#1d1d1f)}
.p8-room .wk-tasks li.checked .tk-title{color:var(--gray-400,#b0b0b5);text-decoration:line-through}
.tk-pri{font-size:11px;font-weight:600;border-radius:999px;padding:2px 9px;line-height:1.5;flex-shrink:0}
.tk-pri.p0{background:rgba(255,59,48,.12);color:#d70015}
.tk-pri.p1{background:rgba(255,149,0,.14);color:#c93400}
.tk-pri.p2{background:var(--gray-100,#f0f0f2);color:var(--gray-500,#86868b)}
.tk-pri.can{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
.tk-pri.can:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.tk-pri.can:active{transform:translateY(0) scale(.96)}
.tk-who{font-size:11px;color:var(--gray-600,#48484a);background:var(--gray-100,#f0f0f2);border-radius:999px;padding:2px 9px}
.tk-desc{display:block;margin-top:3px;font-size:12px;color:var(--gray-500,#86868b);line-height:1.5}
.tk-addbtn{margin-top:10px;border:1px dashed var(--gray-300,#d1d1d6);background:transparent;color:var(--gray-600,#48484a);border-radius:10px;padding:9px;width:100%;font-size:13px;cursor:pointer}
.tk-addbtn:hover{border-color:var(--indigo-500,#4f6bed);color:var(--indigo-500,#4f6bed)}
.tk-addform{margin-top:10px;border:1px solid var(--gray-200,#e5e5ea);border-radius:12px;padding:12px;background:var(--gray-50,#f5f5f7)}
.tk-addform input,.tk-addform select{width:100%;border:1px solid var(--gray-200,#e5e5ea);border-radius:9px;padding:8px 10px;font-size:13px;font-family:inherit;box-sizing:border-box;margin-bottom:8px;background:#fff}
.tk-afrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tk-afbtns{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
.tk-afbtns button{border:none;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}
.tk-afbtns button:not(.primary){background:var(--gray-200,#e5e5ea);color:var(--gray-700,#3a3a3c)}
.tk-afbtns button.primary{background:var(--indigo-500,#4f6bed);color:#fff}
@media(max-width:760px){.p8-kpis{grid-template-columns:repeat(2,1fr)}.p8-pm9{grid-template-columns:1fr}.tk-afrow{grid-template-columns:1fr}}
/* 任务看板（三列） */
.kb-card{margin-bottom:14px}
.kb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.kb-col{background:var(--gray-50,#f5f5f7);border-radius:14px;padding:10px;min-height:90px}
.kb-h{font-size:12.5px;font-weight:700;margin-bottom:8px}
.kb-h.todo{color:var(--gray-600,#48484a)}
.kb-h.ing{color:#b25000}
.kb-h.done{color:#1d8a3a}
.kb-list{display:flex;flex-direction:column;gap:8px}
.kb-i{background:#fff;border:1px solid var(--gray-200,#e8e8ed);border-radius:11px;padding:9px 11px}
.kb-itop{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px}
.kb-pri-sel{font-family:inherit}
select.kb-pri-sel.tk-pri{
  width:auto !important;
  padding:2px 20px 2px 9px !important;
  font-size:11px !important;
  font-weight:700 !important;
  line-height:1.5 !important;
  border:none !important;
  border-radius:99px !important;
  cursor:pointer;
  background-repeat:no-repeat !important;
  background-position:right 6px center !important;
  background-size:9px !important;
  box-shadow:none !important;
}
select.kb-pri-sel.p0{background-color:rgba(255,59,48,.14) !important;color:#d70015 !important;}
select.kb-pri-sel.p1{background-color:rgba(255,149,0,.16) !important;color:#b25000 !important;}
select.kb-pri-sel.p2{background-color:var(--gray-100,#f0f0f2) !important;color:var(--gray-600,#48484a) !important;}
.kb-iname{font-size:13px;font-weight:600;color:var(--gray-900,#1d1d1f);line-height:1.4}
.kb-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:11px;color:var(--gray-500,#86868b)}
.kb-meta span{background:var(--gray-100,#f0f0f2);border-radius:6px;padding:1px 7px}
.kb-meta span.un{color:var(--gray-400,#b0b0b5);background:transparent;border:1px dashed var(--gray-300,#d1d1d6)}
.kb-empty{font-size:12px;color:var(--gray-400,#b0b0b5);text-align:center;padding:14px 0}
@media(max-width:760px){.kb-grid{grid-template-columns:1fr}}

/* ===== 第二档：团队成员横排 + 个人简介卡 + 紧凑岗位条 ===== */
.tm-wrap{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity;}
.tm-wrap::-webkit-scrollbar{height:6px;}
.tm-wrap::-webkit-scrollbar-thumb{background:var(--gray-300,#d1d1d6);border-radius:3px;}
.tm-card{flex:0 0 170px;scroll-snap-align:start;background:#fff;border:1px solid var(--gray-200,#e8e8ed);border-radius:16px;padding:14px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;position:relative;}
.tm-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.tm-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.tm-ava{width:42px;height:42px;border-radius:50%;background:var(--indigo-100,#e3e9fc);color:var(--indigo-600,#4357c6);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex:0 0 42px;overflow:hidden;}
.tm-ava img{width:100%;height:100%;object-fit:cover;}
.tm-nick{font-weight:600;font-size:14px;color:var(--gray-900,#1d1d1f);line-height:1.2;}
.tm-lv{font-size:11px;color:var(--gray-500,#86868b);margin-top:2px;}
.tm-role{display:inline-flex;font-size:11px;font-weight:600;padding:2px 8px;border-radius:7px;background:rgba(67,87,198,.1);color:var(--indigo-600,#4357c6);margin-bottom:8px;}
.tm-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;}
.tm-tag{font-size:10.5px;padding:1px 7px;border-radius:6px;background:var(--gray-100,#f0f0f2);color:var(--gray-600,#48484a);}
.tm-badges{display:flex;gap:10px;font-size:10.5px;border-top:1px solid var(--gray-200,#ececf0);padding-top:8px;}
.tm-badges .ok{color:#1f8a3c;font-weight:600;}
.tm-badges .no{color:var(--gray-400,#b0b0b5);}
.tm-empty{flex:0 0 170px;border:1.5px dashed var(--gray-300,#d1d1d6);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gray-400,#b0b0b5);font-size:12px;gap:6px;padding:20px;}
.tm-avawrap{position:relative;width:42px;height:42px;flex:0 0 42px;}
.tm-crown{position:absolute;right:-3px;bottom:-3px;width:18px;height:18px;border-radius:50%;background:#b8860b;color:#fff;font-size:9px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;font-weight:700;}
.mb-ava{width:64px;height:64px;border-radius:50%;background:var(--indigo-100,#e3e9fc);color:var(--indigo-600,#4357c6);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:24px;flex:0 0 64px;overflow:hidden;}
.mb-ava img{width:100%;height:100%;object-fit:cover;}
.mb-name{font-size:18px;font-weight:700;color:var(--gray-900,#1d1d1f);}
.mb-sub{font-size:13px;color:var(--gray-500,#86868b);margin-top:3px;}
.mb-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0;}
.mb-chip{font-size:12px;padding:3px 10px;border-radius:8px;background:var(--gray-100,#f0f0f2);color:var(--gray-600,#48484a);}
.mb-chip.role{background:rgba(67,87,198,.1);color:var(--indigo-600,#4357c6);font-weight:600;}
.mb-row{font-size:13px;color:var(--gray-600,#48484a);margin:6px 0;line-height:1.5;}
.mb-row b{color:var(--gray-900,#1d1d1f);font-weight:600;}
.mb-status{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.mb-status span{font-size:12px;padding:4px 12px;border-radius:9px;font-weight:600;}
.mb-status .y{background:rgba(42,168,74,.12);color:#1f8a3c;}
.mb-status .n{background:var(--gray-100,#f0f0f2);color:var(--gray-500,#86868b);}
.roles-compact{display:flex;gap:10px;flex-wrap:wrap;}
.rc-item{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--gray-200,#e8e8ed);border-radius:12px;padding:8px 12px;font-size:12.5px;cursor:pointer;transition:background .15s;}
.rc-item:hover{background:var(--gray-100,#f5f5f7);}
.rc-badge{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:11px;flex:0 0 26px;}
.rc-rname{font-weight:600;color:var(--gray-900,#1d1d1f);}
.rc-person{color:var(--gray-500,#86868b);font-size:11.5px;}
.rc-st{font-size:10.5px;padding:1px 7px;border-radius:6px;font-weight:600;}
.rc-st.yes{background:rgba(42,168,74,.12);color:#1f8a3c;}
.rc-st.wait{background:rgba(200,150,20,.14);color:#9a7410;}
.rc-st.vacant{background:var(--gray-100,#f0f0f2);color:var(--gray-500,#86868b);}
@media(max-width:760px){.tm-card,.tm-empty{flex-basis:150px;}}

/* ===== 第三档：班规三段式 + 勾选仪式确认 ===== */
.pact-segs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.pact-seg{background:var(--gray-100,#f5f5f7);border-radius:14px;padding:14px;}
.pact-seg-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;color:var(--gray-900,#1d1d1f);margin-bottom:10px;}
.pact-seg-h .si{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:0 0 26px;}
.pact-li{font-size:12px;color:var(--gray-600,#48484a);line-height:1.5;padding-left:13px;position:relative;margin-bottom:8px;}
.pact-li:last-child{margin-bottom:0;}
.pact-li:before{content:'';position:absolute;left:0;top:7px;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.55;}
.pact-confirm{margin-top:14px;border-top:1px solid var(--gray-200,#e8e8ed);padding-top:14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.pact-check{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--gray-700,#3a3a3c);cursor:pointer;user-select:none;}
.pact-check .box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--gray-300,#c7c7cc);display:flex;align-items:center;justify-content:center;transition:all .15s;flex:0 0 20px;color:#fff;}
.pact-check.checked .box{background:#4357c6;border-color:#4357c6;}
.pact-bigbtn{flex:1;min-width:190px;font-size:15px;font-weight:700;padding:14px 20px;border-radius:14px;border:none;background:var(--gray-300,#c7c7cc);color:#fff;cursor:not-allowed;transition:all .2s;}
.pact-bigbtn.ready{background:linear-gradient(135deg,#4357c6,#6a5acd);cursor:pointer;box-shadow:0 6px 18px rgba(67,87,198,.3);}
.pact-bigbtn.ready:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(67,87,198,.42);}
.pact-done{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;border-top:1px solid var(--gray-200,#e8e8ed);padding-top:14px;}
.pact-done .hint{font-size:12px;color:var(--gray-500,#86868b);}

/* ===== 第三档：周任务链 + 甘特并排 ===== */
.board-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start;}
.board-col{min-width:0;}
#p8WeekRail{margin-bottom:14px;}
.board-col .col-h{font-size:12.5px;font-weight:700;color:var(--gray-500,#86868b);margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.board-col.gantt-col .gantt-box{background:var(--gray-100,#f5f5f7);border-radius:14px;padding:12px;}
.gantt-mini{display:grid;grid-template-columns:34px repeat(8,1fr);gap:0;font-size:10px;}
.gantt-mini .gm-lab{color:var(--gray-500,#86868b);text-align:center;padding:2px 0;font-weight:600;}
.gantt-mini .gm-name{color:var(--gray-700,#3a3a3c);font-weight:600;display:flex;align-items:center;font-size:11px;}
.gm-track{grid-column:2 / span 8;position:relative;height:26px;display:flex;align-items:center;}
.gm-track .gm-cells{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,1fr);}
.gm-track .gm-cells i{border-right:1px dashed var(--gray-200,#e4e4e9);}
.gm-bar{position:absolute;height:14px;border-radius:7px;z-index:1;display:flex;align-items:center;padding:0 7px;font-size:9.5px;color:#fff;font-weight:600;white-space:nowrap;overflow:hidden;}
.gm-bar.done{background:#3b57d9;}
.gm-bar.ing{background:#c2a46b;}
.gm-bar.todo{background:var(--gray-300,#c7c7cc);}
.gm-cur{position:absolute;top:0;bottom:0;width:2px;background:#ff6b35;z-index:2;}
@media(max-width:900px){.board-split{grid-template-columns:1fr;}.pact-segs{grid-template-columns:1fr;}}

/* ===== 第四档：OKR 工作区 ===== */
.okr-obj{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#eef1ff,#f6f8ff);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-bottom:16px;}
.okr-tag{flex:none;font-size:11px;font-weight:700;color:#fff;background:var(--primary);padding:5px 10px;border-radius:999px;}
.okr-obj b{flex:1;font-size:17px;font-weight:700;color:var(--ink);line-height:1.5;}
.okr-editbtn{flex:none;border:1px solid var(--primary);color:var(--primary);background:#fff;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:.18s;}
.okr-editbtn:hover{background:var(--primary);color:#fff;}
.okr-krs{display:flex;flex-direction:column;gap:14px;}
.okr-kr{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;}
.okr-kr-h{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.kr-badge{flex:none;font-size:11px;font-weight:700;color:var(--primary);background:var(--indigo-100,#e9edff);padding:4px 9px;border-radius:8px;}
.okr-kr-h b{flex:1;font-size:14.5px;font-weight:700;color:var(--ink);}
.kr-prog{flex:none;width:90px;height:7px;background:var(--fill);border-radius:999px;overflow:hidden;}
.kr-prog i{display:block;height:100%;background:var(--primary);border-radius:999px;transition:width .3s;}
.kr-pct{flex:none;font-size:12px;font-weight:700;color:var(--muted);width:32px;text-align:right;}
.okr-sub{display:flex;align-items:flex-start;gap:11px;padding:9px 10px;border-radius:10px;cursor:pointer;transition:background .15s;}
.okr-sub:hover{background:var(--fill);}
.os-box{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid #c9cfdd;margin-top:1px;display:flex;align-items:center;justify-content:center;background:#fff;}
.okr-sub.done .os-box{background:var(--primary);border-color:var(--primary);}
.os-body{flex:1;min-width:0;}
.os-top{display:flex;align-items:center;gap:9px;}
.os-title{font-size:14px;font-weight:600;color:var(--ink);}
.okr-sub.done .os-title{color:var(--muted);text-decoration:line-through;}
.os-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:3px;}
.os-meta span{font-size:12px;color:var(--muted);}
.okr-nosub{font-size:13px;color:var(--muted);padding:8px 10px;}
.okr-hint{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap;}
.okr-hint span{flex:1;min-width:200px;font-size:12.5px;color:var(--muted);background:var(--fill);border-radius:10px;padding:10px 14px;line-height:1.5;}
/* OKR 编辑器 */
.oe-wrap{display:flex;flex-direction:column;gap:12px;}
.oe-lobj{display:flex;flex-direction:column;gap:6px;}
.oe-lobj span{font-size:12px;font-weight:700;color:var(--primary);}
.oe-lobj input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;}
.oe-kr{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fafbfe;}
.oe-krh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.oe-krh b{font-size:13px;color:var(--primary);}
.oe-krh input{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;min-width:90px;}
.oe-sub{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.oe-sub input,.oe-sub select{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;min-width:70px;}
.oe-sub button{flex:none;width:26px;height:26px;border-radius:7px;border:none;background:#f6e3e0;color:#c0392b;cursor:pointer;font-size:15px;line-height:1;}
.oe-addsub,.oe-addkr{align-self:flex-start;border:1px dashed var(--primary);color:var(--primary);background:transparent;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;}
.oe-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px;}
.oe-actions button{border-radius:999px;padding:9px 20px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);}
.oe-actions button.primary{background:var(--primary);color:#fff;border-color:var(--primary);}
/* ===== 资料四类分组 ===== */
.files-note{font-size:12.5px;color:var(--muted);background:var(--fill);border-radius:10px;padding:9px 13px;margin-bottom:13px;line-height:1.5;}
.file-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.file-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.fg-h{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;background:#fafbfe;border-bottom:1px solid var(--line);}
.fg-cat{font-size:13px;font-weight:700;color:var(--ink);}
.fg-n{font-size:11px;font-weight:700;color:var(--muted);background:var(--fill);border-radius:999px;padding:2px 9px;}
.file-group .file-row{padding:9px 13px;}
.fg-empty{font-size:12.5px;color:var(--muted);padding:11px 13px;}
.file-link{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--primary);}
.file-link b{font-weight:600;}
.file-by{font-size:11.5px;color:var(--muted);margin-left:auto;}
.file-addform{display:flex;flex-direction:column;gap:9px;margin-top:13px;border:1px solid var(--line);border-radius:12px;padding:13px;background:#fafbfe;}
.file-addform input,.file-addform select{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13.5px;}
.faf-actions{display:flex;justify-content:flex-end;gap:9px;}
.faf-actions button{border-radius:999px;padding:8px 17px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:#fff;}
.faf-save{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;}
@media(max-width:680px){.file-groups{grid-template-columns:1fr;}.okr-obj{flex-direction:column;align-items:flex-start;gap:10px;}.kr-prog{width:60px;}}

/* ===== 第五档：项目日志 ===== */
.proj-log{display:flex;flex-direction:column;gap:14px;}
.lg-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted);}
.lg-leg{display:inline-flex;align-items:center;gap:6px;}
.lg-dot{width:10px;height:10px;border-radius:3px;display:inline-block;}
.lg-deliver{background:#28b87c;}
.lg-task{background:var(--primary);}
.lg-collab{background:#f0a020;}
.lg-doc{background:#9466d6;}
.lg-bars{display:flex;flex-direction:column;gap:12px;}
.lg-row{display:grid;grid-template-columns:210px 1fr;gap:14px;align-items:center;}
.lg-person{display:flex;align-items:center;gap:10px;min-width:0;}
.lg-avatar{width:34px;height:34px;border-radius:50%;background:var(--indigo-100,#e9edff);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;}
.lg-who{display:flex;flex-direction:column;min-width:0;}
.lg-who b{font-size:13px;color:var(--ink);display:inline-flex;align-items:center;gap:6px;}
.lg-cap{font-size:10px;background:var(--indigo-100,#e9edff);color:var(--primary);padding:1px 6px;border-radius:999px;font-weight:600;}
.lg-who small{font-size:11px;color:var(--muted);}
.lg-bar{display:flex;height:26px;background:var(--fill,#f4f5f8);border-radius:8px;overflow:hidden;}
.lg-seg{display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;font-weight:600;height:100%;}
.lg-seg:hover{filter:brightness(1.1);}
.lg-none{font-size:12px;color:var(--muted);padding:0 10px;display:flex;align-items:center;}
.lg-flow-h{font-size:13px;font-weight:600;color:var(--ink);display:flex;align-items:baseline;gap:10px;margin-top:4px;}
.lg-flow-h span{font-size:11px;font-weight:400;color:var(--muted);}
.log-tl{display:flex;flex-direction:column;gap:2px;max-height:340px;overflow-y:auto;}
.log-i{display:grid;grid-template-columns:140px 84px 1fr;gap:10px;padding:7px 10px;border-radius:8px;font-size:12px;align-items:baseline;}
.log-i:nth-child(odd){background:var(--fill,#f6f7fa);}
.log-i .t{color:var(--muted);font-size:11px;}
.log-i b{color:var(--ink);font-weight:600;font-size:12px;}
.log-i p{margin:0;color:#444;}
.log-i.lg-deliver b{color:#1fa06c;}
.log-i.lg-collab b{color:#d2860f;}
.log-i.lg-doc b{color:#8253c8;}
@media(max-width:720px){.lg-row{grid-template-columns:1fr;gap:6px;}.log-i{grid-template-columns:1fr;gap:2px;}}

/* ===== 第六档：课题群产品化、@、会议菜单、导师邀请 ===== */
.qq-wrap{display:flex;flex-direction:column;height:560px;border:1px solid var(--line,#e7e9ee);border-radius:14px;overflow:hidden;background:#fff;}
.qq-list{flex:1;overflow-y:auto;padding:16px 18px;background:var(--fill,#f6f7fa);}
.q{display:flex;margin:8px 0;}
.q.me{justify-content:flex-end;}
.q .q-col{max-width:76%;}
.q-row{display:flex;}
.q.me .q-row{justify-content:flex-end;}
.q-bub{display:inline-block;padding:8px 12px;border-radius:14px;font-size:13px;line-height:1.5;background:#fff;border:1px solid var(--line,#e9ebf0);color:var(--ink,#1d1d1f);word-break:break-word;}
.q.me .q-bub{background:var(--primary,#4F6BED);border-color:var(--primary,#4F6BED);color:#fff;}
.q-ava{width:30px;height:30px;border-radius:50%;background:var(--indigo-100,#e9edff);color:var(--primary,#4F6BED);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;margin-right:8px;flex:none;}
.q-gap{background:transparent;}
.q-name{font-size:11px;color:var(--muted,#86868b);margin:0 4px 3px;}
.q.me .q-name{text-align:right;}
.q.cont .q-ava{visibility:hidden;}
.qq-day{text-align:center;font-size:11px;color:var(--muted,#86868b);margin:12px 0 4px;}
.q-cmd{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 0;flex-wrap:wrap;}
.q-cmd-tag{font-size:11px;padding:2px 10px;border-radius:999px;background:var(--indigo-100,#e9edff);color:var(--primary,#4F6BED);font-weight:600;}
.q-cmd-tx{font-size:12px;color:var(--muted,#6e6e73);}
.mention{color:var(--primary,#4F6BED);font-weight:600;}
.q.me .mention{color:#fff;text-decoration:underline;}
.qq-tools{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line,#eef0f4);background:#fff;flex-wrap:wrap;}
.qq-tool{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid var(--line,#e4e7ed);background:#fff;color:var(--ink,#1d1d1f);font-size:12px;font-weight:500;cursor:pointer;transition:.15s;}
.qq-tool:hover{border-color:var(--primary,#4F6BED);color:var(--primary,#4F6BED);background:var(--indigo-100,#f2f5ff);}
.qq-tool.attool{font-weight:700;color:var(--primary,#4F6BED);}
.qq-atbar{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px;background:#fff;}
.at-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:3px 6px 3px 10px;border-radius:999px;background:var(--indigo-100,#e9edff);color:var(--primary,#3b55d9);font-weight:600;}
.at-tag i{font-style:normal;cursor:pointer;width:15px;height:15px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;line-height:1;}
.at-tag i:hover{background:rgba(0,0,0,.08);}
.qq-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line,#eef0f4);background:#fff;}
.qq-input input{flex:1;border:1px solid var(--line,#e4e7ed);border-radius:999px;padding:8px 14px;font-size:13px;outline:none;}
.qq-input input:focus{border-color:var(--primary,#4F6BED);}
.qq-input button{border:none;background:var(--primary,#4F6BED);color:#fff;border-radius:999px;padding:0 18px;font-size:13px;font-weight:600;cursor:pointer;}
.ui-form{font-size:13px;}
.ui-form label{display:block;margin-bottom:10px;color:var(--ink,#1d1d1f);font-weight:500;}
.ui-form input[type=text],.ui-form input:not([type]),.ui-form select,.ui-form textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--line,#e4e7ed);border-radius:9px;padding:8px 11px;font-size:13px;outline:none;font-weight:400;box-sizing:border-box;}
.ui-form textarea{resize:vertical;font-family:inherit;}
.ui-form input:focus,.ui-form select:focus,.ui-form textarea:focus{border-color:var(--primary,#4F6BED);}
.uf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.uf-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;}
.uf-actions button{border:1px solid var(--line,#e4e7ed);background:#fff;border-radius:9px;padding:8px 16px;font-size:13px;cursor:pointer;font-weight:500;}
.uf-actions button.primary{background:var(--primary,#4F6BED);border-color:var(--primary,#4F6BED);color:#fff;font-weight:600;}
.uf-hint{margin:0 0 8px;color:var(--muted,#6e673);font-size:12px;}
.uf-radios{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto;}
.uf-radio,.uf-check{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--line,#ecedf2);border-radius:9px;cursor:pointer;font-size:12px;}
.uf-radio input,.uf-check input{margin-top:2px;}
.uf-radio span,.uf-check span{color:var(--ink,#1d1d1f);line-height:1.4;}
.mtp-menu{display:flex;flex-direction:column;gap:10px;}
.mtp-note{margin:0;font-size:12px;color:var(--muted,#6e6e73);}
.mtp-go{display:flex;flex-direction:column;gap:3px;text-align:left;border:1px solid var(--line,#e6e8ee);background:#fff;border-radius:12px;padding:12px 14px;cursor:pointer;transition:.15s;}
.mtp-go:hover{border-color:var(--primary,#4F6BED);background:var(--indigo-100,#f4f6ff);}
.mtp-go b{font-size:13px;color:var(--ink,#1d1d1f);font-weight:600;}
.mtp-go span{font-size:12px;color:var(--muted,#6e6e73);}
.mtp-go.warn b{color:var(--primary,#4F6BED);}
.mtp-go.disabled{opacity:.6;cursor:not-allowed;}
.tx-set .tx-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;}
.tx-set .tx-actions button{border:1px solid var(--line,#e4e7ed);background:#fff;border-radius:9px;padding:8px 16px;font-size:13px;cursor:pointer;}
.tx-set .tx-actions button.primary{background:var(--primary,#4F6BED);border-color:var(--primary,#4F6BED);color:#fff;font-weight:600;}
.tx-set input{width:100%;box-sizing:border-box;border:1px solid var(--line,#e4e7ed);border-radius:9px;padding:9px 11px;font-size:13px;outline:none;}
.tx-set input:focus{border-color:var(--primary,#4F6BED);}
@media(max-width:720px){.qq-wrap{height:480px;}.uf-row{grid-template-columns:1fr;}.q .q-col{max-width:85%;}}

/* ===== 大课堂·前置准备清单（极简清爽版） ===== */
.np-head{display:flex;justify-content:space-between;align-items:flex-end;margin:8px 0 14px}
.np-eyebrow{font-size:12px;font-weight:700;color:var(--primary,#4F6BED);letter-spacing:.04em;margin-bottom:4px}
.np-title{font-size:28px;font-weight:800;color:var(--ink,#1A1A2E);margin:0;letter-spacing:-.02em}
.np-pct{font-size:40px;font-weight:800;color:var(--ink,#1A1A2E);line-height:1;letter-spacing:-.03em}
.np-pct span{font-size:20px;font-weight:700;color:var(--ink-3,#8A8FA3);margin-left:2px}
.np-progress{height:6px;border-radius:999px;background:var(--fill,#EEF0F5);overflow:hidden}
.np-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#4F6BED,#7B91FF);transition:width .4s}
.np-meta{font-size:12.5px;color:var(--ink-3,#8A8FA3);margin:8px 2px 26px}
.np-section{margin:0 0 30px}
.np-section-title{font-size:15px;font-weight:700;color:var(--ink,#1A1A2E);margin:0 0 6px;display:flex;justify-content:space-between;align-items:baseline}
.np-section-title span{font-size:12.5px;font-weight:600;color:var(--ink-3,#8A8FA3)}
.np-item{border-top:1px solid var(--line,#ECECF1)}
.np-item:last-child{border-bottom:1px solid var(--line,#ECECF1)}
.np-item>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:13px 2px;cursor:pointer}
.np-item>summary::-webkit-details-marker{display:none}
.np-check{display:inline-flex;flex:0 0 auto}
.np-check input{position:absolute;opacity:0;width:0;height:0}
.np-checkbox{width:21px;height:21px;border-radius:50%;border:1.5px solid var(--line-2,#C9CEDB);background:#fff;display:inline-block;position:relative;transition:.18s;flex:0 0 auto}
.np-check input:checked+.np-checkbox{background:#4F6BED;border-color:#4F6BED}
.np-check input:checked+.np-checkbox::after{content:"";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.np-name{flex:1;font-size:14.5px;font-weight:600;color:var(--ink,#1A1A2E)}
.np-item.is-done .np-name{color:var(--ink-3,#9AA0B0);text-decoration:line-through}
.np-tag{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px}
.np-tag-warn{background:#FDF0E6;color:#C2681C}
.np-chevron{flex:0 0 auto;width:16px;height:16px;position:relative;transition:transform .25s}
.np-chevron::after{content:"";position:absolute;left:5px;top:3px;width:6px;height:6px;border-right:1.6px solid var(--ink-3,#9AA0B0);border-bottom:1.6px solid var(--ink-3,#9AA0B0);transform:rotate(45deg)}
.np-item[open] .np-chevron{transform:rotate(180deg)}
.np-detail{padding:0 2px 16px 33px}
.np-desc{font-size:13px;color:var(--ink-2,#5A6072);line-height:1.7;margin:0 0 10px}
.np-link{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:#4F6BED;text-decoration:none;margin-bottom:12px}
.np-link span{font-size:11px}
.np-steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}
.np-steps li{font-size:13px;color:var(--ink-2,#5A6072);line-height:1.6}
.np-steps li::marker{color:var(--primary,#4F6BED);font-weight:700}
.np-code{display:flex;align-items:center;gap:10px;background:var(--fill,#F5F6FA);border:1px solid var(--line,#ECECF1);border-radius:11px;padding:11px 13px}
.np-code code{flex:1;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;color:var(--ink,#1A1A2E);word-break:break-all}
.np-copy{border:1px solid var(--line-2,#C9CEDB);background:#fff;border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:600;color:var(--ink-2,#5A6072);cursor:pointer;flex:0 0 auto}
.np-note{font-size:12.5px;color:var(--ink-3,#8A8FA3);line-height:1.7;margin:10px 2px}
.np-note code{background:var(--fill,#F0F1F6);padding:1px 6px;border-radius:5px;font-size:11.5px}
.np-pkgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:14px}
.np-pkgs>div{background:var(--card,#fff);border:1px solid var(--line,#ECECF1);border-radius:9px;padding:8px 11px}
.np-pkgs code{font-size:12px;font-weight:700;color:#4F6BED}
.np-pkgs span{display:block;font-size:11.5px;color:var(--ink-3,#8A8FA3);margin-top:2px;line-height:1.5}
.np-verifycheck,.np-verify{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--ink-2,#5A6072);padding:10px 2px;cursor:pointer}
.np-verifycheck input,.np-verify input{position:absolute;opacity:0;width:0;height:0}
.np-verify .np-checkbox{border-radius:6px;margin-top:1px}
.np-verify input:checked+.np-checkbox::after{left:6px;top:3px}
@media(max-width:640px){.np-title{font-size:23px}.np-pct{font-size:32px}.np-detail{padding-left:30px}}

/* ===== 时事热点（极简清爽版） ===== */
.nn-item{border-top:1px solid var(--line,#ECECF1)}
.nn-item:last-child{border-bottom:1px solid var(--line,#ECECF1)}
.nn-item>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px 2px;cursor:pointer}
.nn-item>summary::-webkit-details-marker{display:none}
.nn-cat{flex:0 0 auto;font-size:11px;font-weight:700;color:#4F6BED;background:#F1F4FE;padding:3px 9px;border-radius:7px}
.nn-badge{flex:0 0 auto;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px}
.nn-badge-live{background:rgba(16,185,129,.14);color:#0E9F6E}
.nn-badge-ref{background:rgba(245,158,11,.15);color:#D97706}
.nn-title{flex:1;font-size:14.5px;font-weight:600;color:var(--ink,#1A1A2E);line-height:1.5}
.nn-chevron{flex:0 0 auto;width:16px;height:16px;position:relative;transition:transform .25s}
.nn-chevron::after{content:"";position:absolute;left:5px;top:3px;width:6px;height:6px;border-right:1.6px solid var(--ink-3,#9AA0B0);border-bottom:1.6px solid var(--ink-3,#9AA0B0);transform:rotate(45deg)}
.nn-item[open] .nn-chevron{transform:rotate(180deg)}
.nn-detail{padding:0 2px 18px}
.nn-src{font-size:12px;color:var(--ink-3,#8A8FA3);margin-bottom:10px}
.nn-summary{font-size:13.5px;color:var(--ink-2,#5A6072);line-height:1.75;margin:0 0 12px}
.nn-view{background:#F4F8F6;border:1px solid #E3EFE9;border-radius:11px;padding:11px 13px;font-size:13px;color:#3F5B4E;line-height:1.7;margin-bottom:12px}
.nn-view-label{display:inline-block;font-size:11px;font-weight:800;color:#0E9F6E;background:#E3F4EC;padding:2px 8px;border-radius:6px;margin-right:8px}
.nn-block{margin-bottom:12px}
.nn-block-title{font-size:12px;font-weight:800;color:var(--ink,#1A1A2E);margin-bottom:7px}
.nn-block ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.nn-block li{font-size:13px;color:var(--ink-2,#5A6072);line-height:1.65}
.nn-block li::marker{color:#4F6BED;font-weight:700}
.nn-block p{font-size:13px;color:var(--ink-2,#5A6072);line-height:1.7;margin:0}
.nn-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.nn-tags span{font-size:11px;color:var(--ink-2,#5A6072);background:var(--fill,#F1F2F7);padding:2px 9px;border-radius:999px}
.nn-studychips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.nn-studychip{font-size:11.5px;font-weight:600;color:#4F6BED;background:#F1F4FE;border:1px solid #E1E7FC;padding:4px 11px;border-radius:999px;cursor:pointer}
.nn-link{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:#4F6BED;text-decoration:none}
.nn-link span{font-size:11px}
@media(max-width:640px){.nn-title{font-size:13.5px}.nn-cat{display:none}}





/* 无主任务「认领」按钮 */
.os-claim{appearance:none;border:1px solid var(--primary,#4F6BED);color:var(--primary,#4F6BED);background:rgba(79,107,237,.07);border-radius:7px;padding:2px 11px;font-size:12px;font-weight:600;cursor:pointer;line-height:1.5;transition:background .15s ease;}
.os-claim:hover{background:rgba(79,107,237,.15);}
.os-owner{font-weight:600;color:var(--primary,#4F6BED);}
/* 组长「移出小组」按钮 */
.tm-kick{appearance:none;margin-top:8px;width:100%;border:1px solid var(--red-300,#f0b8b8);color:#c0392b;background:transparent;border-radius:8px;padding:5px 0;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease;}
.tm-kick:hover{background:rgba(192,57,43,.07);}
.tm-kick:disabled{opacity:.6;cursor:default;}
/* 子任务小操作按钮：设截止 / 评论 */
.os-mini{appearance:none;border:1px solid var(--gray-200,#e3e3e8);color:var(--muted,#6a6a72);background:transparent;border-radius:6px;padding:1px 9px;font-size:11.5px;cursor:pointer;line-height:1.5;transition:all .15s ease;}
.os-mini:hover{border-color:var(--primary,#4F6BED);color:var(--primary,#4F6BED);}
.os-due{font-size:12px;color:var(--muted);}
/* 任务评论区 */
.os-cmts{margin:7px 0 2px;padding:7px 9px;background:var(--gray-50,#f7f7f9);border-radius:8px;display:flex;flex-direction:column;gap:6px;}
.os-cmts[hidden]{display:none;}
.os-cmt{display:flex;gap:7px;font-size:12px;line-height:1.5;}
.os-cmt b{color:var(--ink,#1d1d22);font-weight:600;white-space:nowrap;}
.os-cmt span{color:var(--muted,#55555c);word-break:break-word;}
.os-cmt-form{display:flex;gap:6px;}
.os-cmt-form input{flex:1;min-width:0;border:1px solid var(--gray-200,#e3e3e8);border-radius:6px;padding:4px 9px;font-size:12px;outline:none;}
.os-cmt-form input:focus{border-color:var(--primary,#4F6BED);}
.os-cmt-form button{appearance:none;border:none;background:var(--primary,#4F6BED);color:#fff;border-radius:6px;padding:4px 13px;font-size:12px;font-weight:600;cursor:pointer;}
