/* 公司工作台 · 官网暖白风（仅作用于 .wb 容器，不影响培训系统深色页面） */
:root {
  --wb-bg: #f6f2eb;
  --wb-panel: #fffdf9;
  --wb-ink: #1f2430;
  --wb-muted: #6f6a60;
  --wb-line: #e7dfd2;
  --wb-indigo: #4f46e5;
  --wb-cyan: #0891b2;
  --wb-warn: #b45309;
  --wb-danger: #b91c1c;
  --wb-ok: #15803d;
}
.wb {
  background: var(--wb-bg);
  color: var(--wb-ink);
  border-radius: 16px;
  padding: 22px;
  border: 1px solid var(--wb-line);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.55;
}
.wb, .wb * { box-sizing: border-box; }
.wb h2, .wb h3, .wb h4 { margin: 0; color: var(--wb-ink); font-weight: 650; }
.wb p { margin: 0; }
.wb a { color: var(--wb-indigo); text-decoration: none; }
.wb a:hover { text-decoration: underline; }
.wb .muted { color: var(--wb-muted); }

/* 首页四入口 */
.wb-hero { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.wb-entry {
  display: block; width: 100%; text-align: left; cursor: pointer;
  background: var(--wb-panel); border: 1px solid var(--wb-line); border-radius: 12px;
  padding: 16px 16px 14px; color: var(--wb-ink); transition: border-color .15s, transform .15s, box-shadow .15s;
}
.wb-entry:hover { border-color: var(--wb-indigo); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(79, 70, 229, .08); }
.wb-entry .wb-entry-k { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--wb-muted); letter-spacing: .04em; }
.wb-entry strong { display: block; margin: 6px 0 4px; font-size: 17px; }
.wb-entry span { color: var(--wb-muted); font-size: 12px; }
.wb-entry .wb-entry-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--wb-indigo); }
.wb-entry.cyan .wb-entry-dot { background: var(--wb-cyan); }
.wb-entry.amber .wb-entry-dot { background: var(--wb-warn); }
.wb-entry.green .wb-entry-dot { background: var(--wb-ok); }

/* KPI */
.wb-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.wb-kpi { background: var(--wb-panel); border: 1px solid var(--wb-line); border-radius: 12px; padding: 14px 16px; }
.wb-kpi small { display: block; color: var(--wb-muted); font-size: 12px; }
.wb-kpi b { display: block; font-size: 26px; font-weight: 650; letter-spacing: -.02em; margin: 2px 0; }
.wb-kpi span { font-size: 12px; color: var(--wb-muted); }
.wb-kpi .up { color: var(--wb-ok); }
.wb-kpi .down { color: var(--wb-danger); }

/* 卡片与栅格 */
.wb-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.wb-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wb-card { background: var(--wb-panel); border: 1px solid var(--wb-line); border-radius: 12px; padding: 16px; }
.wb-card + .wb-card { margin-top: 14px; }
.wb-card-h { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.wb-card-h h3 { font-size: 15px; }
.wb-card-h p { color: var(--wb-muted); font-size: 12px; margin-top: 2px; }
.wb-card-h .wb-actions { display: flex; gap: 8px; flex: none; }

/* 按钮 */
.wb-btn {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  border: 1px solid var(--wb-line); background: #fff; color: var(--wb-ink);
  border-radius: 8px; padding: 7px 12px; font-size: 13px; line-height: 1; white-space: nowrap;
  font-family: inherit;
}
.wb-btn:hover { border-color: var(--wb-indigo); color: var(--wb-indigo); }
.wb-btn:disabled { opacity: .55; cursor: not-allowed; }
.wb-btn.primary { background: var(--wb-indigo); border-color: var(--wb-indigo); color: #fff; }
.wb-btn.primary:hover { background: #4338ca; color: #fff; }
.wb-btn.ghost { background: transparent; }
.wb-btn.danger { color: var(--wb-danger); border-color: #f0caca; }
.wb-btn.danger:hover { background: #fdf0f0; }
.wb-btn.sm { padding: 4px 9px; font-size: 12px; }

/* 表格 */
.wb-table-wrap { overflow-x: auto; }
.wb-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.wb-table th, .wb-table td { padding: 9px 10px; border-bottom: 1px solid var(--wb-line); text-align: left; vertical-align: middle; }
.wb-table th { font-weight: 600; color: var(--wb-muted); font-size: 12px; background: #faf7f1; white-space: nowrap; }
.wb-table tbody tr:hover { background: #faf8f3; }
.wb-table td.num, .wb-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.wb-table tfoot td { font-weight: 650; border-bottom: 0; }

/* 标签 */
.wb-tag { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 11px; line-height: 1.6; border: 1px solid transparent; }
.wb-tag.own { background: #eef2ff; color: #3730a3; }
.wb-tag.provider { background: #ecfeff; color: #155e75; }
.wb-tag.on { background: #ecfdf3; color: var(--wb-ok); border-color: #bbf7d0; }
.wb-tag.off { background: #f3f0ea; color: var(--wb-muted); }
.wb-tag.warn { background: #fff7ed; color: var(--wb-warn); border-color: #fed7aa; }
.wb-tag.danger { background: #fef2f2; color: var(--wb-danger); border-color: #fecaca; }

/* 进度条 */
.wb-bar { height: 6px; border-radius: 999px; background: #efe9dd; overflow: hidden; min-width: 72px; }
.wb-bar > i { display: block; height: 100%; background: var(--wb-indigo); }
.wb-bar.cyan > i { background: var(--wb-cyan); }

/* 页签 */
.wb-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--wb-line); margin-bottom: 16px; flex-wrap: wrap; }
.wb-tabs button {
  border: 0; background: transparent; padding: 9px 14px; cursor: pointer; font: inherit;
  color: var(--wb-muted); border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.wb-tabs button:hover { color: var(--wb-ink); }
.wb-tabs button.active { color: var(--wb-indigo); border-bottom-color: var(--wb-indigo); font-weight: 600; }

/* 空状态 / 提示 */
.wb-empty { border: 1px dashed var(--wb-line); border-radius: 10px; padding: 26px 18px; text-align: center; color: var(--wb-muted); background: #fbf8f3; }
.wb-empty b { display: block; color: var(--wb-ink); margin-bottom: 4px; }
.wb-note { border-left: 3px solid var(--wb-cyan); background: #f0fbfd; color: #0e5568; padding: 9px 12px; border-radius: 0 8px 8px 0; font-size: 12px; }
.wb-note.warn { border-left-color: var(--wb-warn); background: #fff8ee; color: #7c3d09; }
.wb-sync { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--wb-muted); }

/* 表单 */
.wb-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; }
.wb-form .span2 { grid-column: span 2; }
.wb-form .span4 { grid-column: span 4; }
.wb-field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--wb-muted); }
.wb-field input, .wb-field select, .wb-field textarea {
  width: 100%; border: 1px solid var(--wb-line); border-radius: 8px; padding: 8px 10px;
  font: inherit; font-size: 13px; color: var(--wb-ink); background: #fff;
}
.wb-field input:focus, .wb-field select:focus, .wb-field textarea:focus { outline: 2px solid rgba(79, 70, 229, .18); border-color: var(--wb-indigo); }
.wb-form-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }

/* 导入 */
.wb-import { display: flex; flex-direction: column; gap: 12px; }
.wb-import #wb-i-form { display: flex; flex-direction: column; gap: 12px; }
.wb-drop {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 26px 16px; border: 1px dashed var(--wb-line); border-radius: 10px;
  background: #fbf8f3; cursor: pointer; text-align: center;
}
.wb-drop:hover { border-color: var(--wb-indigo); }
.wb-drop input[type="file"] { display: none; }
.wb-drop b { color: var(--wb-ink); font-size: 14px; }
.wb-drop span { color: var(--wb-muted); font-size: 12px; }
.wb-import-file {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 12px; border: 1px solid var(--wb-line); border-radius: 10px; background: #fff;
}
.wb-import-file b { display: block; color: var(--wb-ink); font-size: 13px; word-break: break-all; }
.wb-import-file span { color: var(--wb-muted); font-size: 12px; }
.wb-map { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.wb-import-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.wb-check { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--wb-ink); }
.wb-import #wb-i-preview { display: flex; flex-direction: column; gap: 10px; }
.wb-import #wb-i-preview .wb-table-wrap { max-height: 260px; overflow: auto; }

/* 权限勾选 */
.wb-perm-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.wb-perm { display: flex; gap: 8px; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--wb-line); border-radius: 8px; background: #fff; font-size: 13px; color: var(--wb-ink); }
.wb-perm input { margin-top: 2px; }
.wb-perm b { color: var(--wb-ink); font-weight: 600; }
.wb-perm span { color: var(--wb-muted); font-size: 11px; display: block; }
.wb-perm small { color: var(--wb-muted); }

/* 响应式 */
@media (max-width: 1100px) {
  .wb-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-form .span4 { grid-column: span 2; }
}
@media (max-width: 720px) {
  .wb { padding: 14px; border-radius: 12px; }
  .wb-hero, .wb-kpis, .wb-grid, .wb-grid.three, .wb-form, .wb-perm-list { grid-template-columns: 1fr; }
  .wb-form .span2, .wb-form .span4 { grid-column: span 1; }
  .wb-card-h { flex-direction: column; }
  .wb-kpi b { font-size: 22px; }
  .wb-map { grid-template-columns: 1fr; }
}

/* 纪要 / 待办 */
.wb-search {
  border: 1px solid var(--wb-line); border-radius: 8px; padding: 7px 10px; font: inherit; font-size: 13px;
  background: #fff; color: var(--wb-ink); min-width: 200px;
}
.wb-search:focus { outline: 2px solid rgba(79, 70, 229, .18); border-color: var(--wb-indigo); }
.wb-card-h select {
  border: 1px solid var(--wb-line); border-radius: 8px; padding: 7px 10px; font: inherit; font-size: 13px; background: #fff; color: var(--wb-ink);
}
.wb-todo-list { display: flex; flex-direction: column; gap: 8px; }
.wb-todo {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  border: 1px solid var(--wb-line); border-radius: 10px; background: #fff;
}
.wb-todo.done { background: #faf8f3; }
.wb-todo.done .wb-todo-main b { color: var(--wb-muted); text-decoration: line-through; font-weight: 500; }
.wb-todo input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--wb-indigo); flex: none; }
.wb-todo-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.wb-todo-main b { font-weight: 600; font-size: 13px; }
.wb-todo-main small { color: var(--wb-muted); font-size: 12px; }
.wb-todo .wb-tag { flex: none; }
.wb-todo-inline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-todo-inline li { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.wb-todo-inline li.done span { color: var(--wb-muted); text-decoration: line-through; }
.wb-todo-inline small { color: var(--wb-muted); font-size: 12px; }

.wb-attach { margin-top: 14px; border-top: 1px dashed var(--wb-line); padding-top: 12px; }
.wb-attach .wb-card-h { margin-bottom: 8px; }
.wb-attach-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-attach-list li { display: flex; align-items: center; gap: 10px; font-size: 13px; padding: 6px 10px; border: 1px solid var(--wb-line); border-radius: 8px; background: #fff; }
.wb-attach-list li span, .wb-attach-list li a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-attach-list li small { color: var(--wb-muted); font-size: 11px; flex: none; }

.wb-minute-meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 12px; color: var(--wb-muted); margin-bottom: 12px; }
.wb-prose { margin-bottom: 14px; }
.wb-prose h4 { font-size: 12px; color: var(--wb-muted); font-weight: 600; margin-bottom: 4px; letter-spacing: .04em; }
.wb-prose p { font-size: 13px; line-height: 1.7; white-space: normal; }
.wb-versions { list-style: none; margin: 0; padding: 0; font-size: 12px; color: var(--wb-muted); display: flex; flex-direction: column; gap: 3px; }
.wb-field textarea { resize: vertical; min-height: 70px; }

@media (max-width: 720px) {
  .wb-card-h .wb-actions { width: 100%; flex-wrap: wrap; }
  .wb-search { min-width: 0; width: 100%; }
  .wb-todo { align-items: flex-start; }
}

/* 打印：只留正文 */
@media print {
  .wb .wb-no-print, .wb .wb-btn, .wb .wb-tabs { display: none !important; }
  .wb { background: #fff; border: 0; padding: 0; }
}
