:root {
  color: #202124;
  background: #f5f6f7;
  font-family: "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
  font-synthesis: none;
}

/* Collaborative Academy workspace */
.academy-module { --ac-red: #d51f2a; --ac-ink: #17181a; --ac-muted: #686d73; --ac-line: #e2e4e7; --ac-soft: #f5f6f7; }
.ac-permission-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 14px 0; padding: 13px 16px; border: 1px solid #f0c9cc; border-left: 3px solid var(--ac-red); background: #fffafa; }
.ac-permission-bar > div:first-child { display: grid; gap: 3px; }
.ac-permission-bar strong { font-size: 14px; color: var(--ac-ink); }
.ac-permission-bar span { font-size: 12px; color: var(--ac-muted); }
.ac-permission-tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.ac-permission-tags span { padding: 4px 8px; border: 1px solid #e7b8bc; background: #fff; color: #a71c24; }
.ac-personal-strip { display: grid; grid-template-columns: minmax(240px, 1.1fr) minmax(240px, 1fr) minmax(240px, 1fr); margin: 0 0 14px; border: 1px solid var(--ac-line); background: #fff; }
.ac-personal-strip > * { min-width: 0; min-height: 96px; border: 0; border-right: 1px solid var(--ac-line); padding: 14px 16px; text-align: left; background: #fff; }
.ac-personal-strip > *:last-child { border-right: 0; }
.ac-continue { display: grid; align-content: center; gap: 4px; cursor: pointer; transition: background .18s ease, transform .18s ease; }
.ac-continue:hover { background: #fff8f8; }
.ac-continue:active { transform: translateY(1px); }
.ac-continue span, .ac-personal-list header span { color: var(--ac-red); font-size: 11px; font-weight: 700; }
.ac-continue strong { overflow: hidden; color: var(--ac-ink); font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.ac-continue small { color: var(--ac-muted); }
.ac-personal-list { display: grid; align-content: start; gap: 10px; }
.ac-personal-list header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ac-personal-list header strong { font-size: 13px; }
.ac-personal-list > div { display: flex; gap: 6px; overflow: hidden; }
.ac-personal-list button { min-width: 0; max-width: 48%; overflow: hidden; border: 1px solid #e1e3e5; padding: 6px 8px; color: #34383c; background: #fafafa; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.ac-personal-list button:hover { border-color: #e7a9ad; color: var(--ac-red); background: #fff; }
.ac-workspace { display: grid; grid-template-columns: 210px minmax(0, 1fr); min-height: 660px; border: 1px solid var(--ac-line); background: #fff; }
.ac-sidebar { display: flex; flex-direction: column; min-width: 0; border-right: 1px solid var(--ac-line); background: #f8f9fa; }
.ac-sidebar-head { display: grid; gap: 2px; padding: 18px 16px 13px; border-bottom: 1px solid var(--ac-line); }
.ac-sidebar-head strong { font-size: 16px; }
.ac-sidebar-head span { color: var(--ac-muted); font-size: 12px; }
.ac-domain-nav { display: grid; align-content: start; gap: 2px; padding: 9px; overflow-y: auto; max-height: 590px; }
.ac-domain-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 38px; padding: 7px 9px; border: 0; border-left: 3px solid transparent; background: transparent; color: #45494f; text-align: left; cursor: pointer; }
.ac-domain-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-domain-item b { min-width: 22px; color: #969aa0; font-size: 11px; font-weight: 500; text-align: right; }
.ac-domain-item:hover { background: #fff; color: var(--ac-ink); }
.ac-domain-item.active { border-left-color: var(--ac-red); background: #fff; color: var(--ac-red); font-weight: 700; }
.ac-cloud-note { display: grid; grid-template-columns: 9px minmax(0, 1fr) auto; align-items: center; gap: 7px; margin-top: auto; padding: 13px 14px; border-top: 1px solid var(--ac-line); background: #fff; }
.ac-cloud-note i { width: 8px; height: 8px; border-radius: 50%; background: #1f9362; }
.ac-cloud-note strong, .ac-cloud-note span { font-size: 11px; }
.ac-cloud-note span { color: #1f7d57; }
.ac-cloud-note.warning i { background: #b7751b; }
.ac-cloud-note.warning span { color: #9b6115; }
.ac-board-area { min-width: 0; background: #f7f8f9; }
.ac-board-toolbar { display: flex; justify-content: space-between; gap: 18px; padding: 17px 18px; border-bottom: 1px solid var(--ac-line); background: #fff; }
.ac-board-toolbar > div:first-child { min-width: 170px; }
.ac-board-toolbar p { margin: 0 0 2px; color: var(--ac-red); font-size: 12px; font-weight: 700; }
.ac-board-toolbar h3 { margin: 0; font-size: 21px; }
.ac-board-toolbar > div > span { display: block; margin-top: 4px; color: var(--ac-muted); font-size: 12px; }
.ac-board-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; }
.ac-search { display: flex; align-items: center; width: min(280px, 34vw); height: 37px; border: 1px solid #cfd3d7; background: #fff; }
.ac-search span { padding-left: 10px; color: #8c9197; font-size: 18px; }
.ac-search input { width: 100%; height: 100%; min-width: 0; border: 0; outline: 0; padding: 0 10px; background: transparent; font: inherit; }
.ac-density { display: flex; height: 37px; border: 1px solid #cfd3d7; background: #fff; }
.ac-density button { border: 0; border-right: 1px solid #e3e5e7; padding: 0 10px; background: #fff; color: #676c72; cursor: pointer; }
.ac-density button:last-child { border-right: 0; }
.ac-density button.active { background: #202124; color: #fff; }
.ac-view-switch { display: flex; height: 37px; padding: 3px; border: 1px solid #cfd3d7; background: #f5f6f7; }
.ac-view-switch button { border: 0; padding: 0 11px; background: transparent; color: #676c72; font: inherit; cursor: pointer; transition: color .18s ease, background .18s ease, box-shadow .18s ease; }
.ac-view-switch button.active { background: #fff; color: #c91f27; box-shadow: 0 1px 4px rgb(31 35 39 / 12%); font-weight: 700; }
.ac-primary, .ac-secondary, .ac-icon-button { border: 0; border-radius: 0; font: inherit; cursor: pointer; }
.ac-primary { min-height: 37px; padding: 0 15px; background: var(--ac-red); color: #fff; font-weight: 700; }
.ac-primary:hover { background: #b91821; }
.ac-primary:disabled { opacity: .55; cursor: wait; }
.ac-secondary { min-height: 36px; padding: 0 14px; border: 1px solid #cfd3d7; background: #fff; color: #33373b; }
.ac-secondary:hover { border-color: #9da2a7; }
.ac-icon-button { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #d7dade; background: #fff; color: #2c3034; font-size: 17px; }
.ac-icon-button.large { font-size: 23px; }
.ac-icon-button:disabled { color: #c8cbce; cursor: default; }
.ac-board-area > .portal-state { margin: 12px 16px 0; }
.ac-view-stage { position: relative; min-height: 590px; overflow: hidden; }
.ac-view-pane { min-height: 590px; opacity: 1; transform: translateY(0) scale(1); transition: opacity .24s ease, transform .28s cubic-bezier(.2,.8,.2,1); }
.ac-view-pane[hidden] { display: none; }
.ac-view-pane.view-leaving { opacity: 0; transform: translateY(8px) scale(.995); pointer-events: none; }
.ac-view-pane.view-entering { opacity: 0; transform: translateY(10px) scale(.994); }
.ac-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); gap: 12px; min-height: 590px; padding: 14px; overflow-x: auto; align-items: stretch; }
.ac-board-column { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-width: 0; max-height: 590px; border-top: 3px solid var(--ac-color); background: #fff; box-shadow: 0 1px 2px rgb(21 26 31 / 7%); }
.ac-board-column > header { display: flex; align-items: start; justify-content: space-between; gap: 12px; min-height: 63px; padding: 13px 14px; border-bottom: 1px solid #eceeef; }
.ac-board-column > header div { display: grid; gap: 4px; }
.ac-board-column > header strong { font-size: 15px; }
.ac-board-column > header span, .ac-board-column > header small { color: var(--ac-muted); font-size: 11px; }
.ac-column-list { display: grid; align-content: start; gap: 9px; padding: 10px; overflow-y: auto; }
.ac-knowledge-card { position: relative; display: grid; gap: 8px; width: 100%; min-height: 138px; padding: 12px 12px 11px; border: 1px solid #e1e4e6; border-left: 3px solid transparent; background: #fff; color: var(--ac-ink); text-align: left; cursor: pointer; box-shadow: 0 2px 7px rgb(21 26 31 / 5%); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, opacity .18s ease; }
.ac-knowledge-card:hover { border-left-color: var(--ac-color); border-top-color: #d2d5d8; box-shadow: 0 8px 18px rgb(21 26 31 / 11%); transform: translateY(-2px); }
.ac-knowledge-card:active, .ac-knowledge-card.is-opening { opacity: .72; transform: translateY(0) scale(.985); }
.ac-card-kicker { display: flex; align-items: start; justify-content: space-between; gap: 8px; color: var(--ac-muted); font-size: 10px; }
.ac-card-kicker b { max-width: 68%; overflow: hidden; color: var(--ac-color); text-overflow: ellipsis; white-space: nowrap; }
.ac-card-kicker time { white-space: nowrap; }
.ac-knowledge-card > strong { font-size: 15px; line-height: 1.45; }
.ac-knowledge-card > p { display: -webkit-box; margin: 0; overflow: hidden; color: #64696f; font-size: 12px; line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.ac-card-foot { display: flex; gap: 12px; margin-top: auto; padding-top: 8px; border-top: 1px solid #eff0f1; }
.ac-card-foot i { color: #898e94; font-size: 10px; font-style: normal; }
.ac-add-card { min-height: 40px; border: 0; border-top: 1px solid #e9ebed; background: #fbfbfc; color: #6f7479; cursor: pointer; }
.ac-add-card:hover { color: var(--ac-color); background: #fff; }
.ac-board.compact .ac-knowledge-card { min-height: 91px; gap: 5px; }
.ac-board.compact .ac-knowledge-card > p { -webkit-line-clamp: 1; }
.ac-board.compact .ac-card-foot { padding-top: 5px; }
.ac-empty { grid-column: 1 / -1; display: grid; place-items: center; min-height: 400px; border: 1px dashed #d5d8db; background: #fff; color: var(--ac-muted); }

.ac-graph-pane { position: relative; min-height: 590px; background: radial-gradient(circle at 50% 46%, #fff 0, #fafbfc 55%, #f3f5f7 100%); }
.ac-graph-toolbar { position: absolute; z-index: 3; top: 15px; right: 15px; left: 15px; display: flex; align-items: center; justify-content: space-between; gap: 18px; pointer-events: none; }
.ac-graph-toolbar > div:first-child { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid rgb(218 221 224 / 86%); background: rgb(255 255 255 / 88%); box-shadow: 0 4px 14px rgb(29 33 38 / 6%); backdrop-filter: blur(10px); }
.ac-graph-toolbar strong { font-size: 13px; }
.ac-graph-toolbar span { color: #7a7f85; font-size: 10px; }
.ac-graph-controls { display: flex; pointer-events: auto; box-shadow: 0 4px 14px rgb(29 33 38 / 8%); }
.ac-graph-controls button { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #d8dbdf; border-right: 0; background: rgb(255 255 255 / 94%); color: #34383c; font: 17px "Microsoft YaHei", sans-serif; cursor: pointer; transition: color .16s ease, background .16s ease, transform .16s ease; }
.ac-graph-controls button:last-child { border-right: 1px solid #d8dbdf; }
.ac-graph-controls button:hover { background: #fff; color: #c91f27; }
.ac-graph-controls button:active { transform: scale(.93); }
.ac-graph { width: 100%; height: 590px; touch-action: none; }
.ac-graph-canvas { display: block; width: 100%; height: 100%; cursor: grab; outline: none; }
.ac-graph-canvas.dragging { cursor: grabbing !important; }
.ac-graph-legend { position: absolute; z-index: 3; right: 15px; bottom: 13px; display: flex; align-items: center; gap: 13px; padding: 7px 10px; border: 1px solid rgb(218 221 224 / 86%); background: rgb(255 255 255 / 88%); color: #73787e; font-size: 10px; pointer-events: none; backdrop-filter: blur(10px); }
.ac-graph-legend span { display: flex; align-items: center; gap: 5px; }
.ac-graph-legend i { width: 8px; height: 8px; border-radius: 50%; background: #2f78a9; }
.ac-graph-legend i.hub { width: 11px; height: 11px; background: #c91f27; }

.ac-overlay[hidden] { display: none; }
.ac-overlay { position: fixed; z-index: 1200; inset: 0; display: grid; place-items: center; padding: 24px; opacity: 1; transition: opacity .2s ease; }
.ac-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgb(15 17 19 / 58%); cursor: default; opacity: 1; transition: opacity .22s ease; }
.ac-reader { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(1180px, 96vw); height: min(860px, 92vh); overflow: hidden; border: 1px solid #d9dcdf; background: #fff; box-shadow: 0 22px 70px rgb(0 0 0 / 28%); opacity: 1; transform: translateY(0) scale(1); transition: opacity .2s ease, transform .28s cubic-bezier(.2,.8,.2,1); }
.ac-overlay.reader-opening { opacity: 1; }
.ac-overlay.reader-opening .ac-backdrop { opacity: 0; }
.ac-overlay.reader-opening .ac-reader { opacity: 0; transform: translateY(24px) scale(.975); }
.ac-overlay.reader-closing { opacity: 0; pointer-events: none; }
.ac-overlay.reader-closing .ac-reader { opacity: 0; transform: translateY(15px) scale(.985); }
.ac-overlay.reader-switching .ac-reader-layout { opacity: .28; transform: translateX(-9px); }
.ac-reader-layout { transition: opacity .16s ease, transform .2s ease; }
.ac-reader-head { display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 10px 14px; border-bottom: 1px solid #dedfe1; background: #fff; }
.ac-reader-titlebar, .ac-reader-actions { display: flex; align-items: center; gap: 10px; }
.ac-reader-titlebar > div { display: grid; gap: 2px; }
.ac-reader-titlebar p { margin: 0; color: #7a7f84; font-size: 11px; }
.ac-reader-titlebar strong { font-size: 14px; }
.ac-reader-actions > span { padding: 5px 8px; border: 1px solid #efc5c8; color: #ad1d26; font-size: 11px; }
.ac-reader-layout { display: grid; grid-template-columns: minmax(0, 1fr) 292px; min-height: 0; overflow: hidden; }
.ac-article { min-width: 0; padding: 32px 44px 42px; overflow-y: auto; }
.ac-article-meta { display: flex; align-items: center; gap: 12px; color: #858a90; font-size: 11px; }
.ac-article-meta span:first-child { padding: 4px 7px; background: var(--ac-red); color: #fff; font-weight: 700; }
.ac-article > h2 { margin: 16px 0 8px; max-width: 850px; font-size: 30px; line-height: 1.28; }
.ac-article-summary { margin: 0 0 25px; max-width: 850px; padding-bottom: 22px; border-bottom: 1px solid #e5e7e9; color: #64696f; font-size: 15px; line-height: 1.8; }
.ac-article-content { max-width: 850px; color: #292d31; font-size: 17px; line-height: 1.85; }
.ac-article-content h2, .ac-article-content h3, .ac-article-content h4 { margin: 34px 0 12px; letter-spacing: 0; }
.ac-article-content h2 { padding-left: 11px; border-left: 3px solid var(--ac-red); font-size: 24px; line-height: 1.45; }
.ac-article-content h3 { font-size: 21px; line-height: 1.5; }
.ac-article-content h4 { font-size: 18px; line-height: 1.55; }
.ac-article-content p { margin: 0 0 18px; }
.ac-article-content ul, .ac-article-content ol { margin: 0 0 20px; padding-left: 25px; }
.ac-article-content li { margin: 8px 0; }
.ac-article-content blockquote { margin: 20px 0; padding: 12px 16px; border-left: 3px solid #202124; background: #f5f6f7; color: #32363a; }
.ac-article-content code { padding: 2px 5px; background: #f0f1f2; color: #a51b23; }
.ac-article-content a { color: #1769aa; }
.ac-article-intro { margin-bottom: 8px; }
.ac-learning-sections { max-width: 850px; }
.ac-learning-section { padding: 28px 0 34px; border-top: 1px solid #e2e4e6; }
.ac-learning-section + .ac-learning-section { padding-top: 30px; }
.ac-natural-section-title { margin: 0 0 18px; color: #17181a; font-size: 26px; line-height: 1.4; }
.ac-table-wrap { width: 100%; margin: 18px 0 22px; overflow-x: auto; }
.ac-article-content table { width: 100%; border-collapse: collapse; table-layout: auto; font-size: 15px; line-height: 1.6; }
.ac-article-content th { background: #202124; color: #fff; font-weight: 700; }
.ac-article-content th, .ac-article-content td { min-width: 110px; padding: 12px 13px; border: 1px solid #d9dcdf; vertical-align: top; }
.ac-task-list { list-style: none; padding-left: 0 !important; }
.ac-task-list .task { position: relative; padding-left: 27px; }
.ac-task-list .task::before { position: absolute; top: .45em; left: 0; display: grid; place-items: center; width: 15px; height: 15px; border: 1px solid #aeb3b8; background: #fff; color: #fff; content: ""; font-size: 10px; line-height: 1; }
.ac-task-list .task.checked::before { border-color: var(--ac-red); background: var(--ac-red); content: "\2713"; }
.ac-source-list { max-width: 850px; margin-top: 34px; padding-top: 25px; border-top: 2px solid #202124; }
.ac-source-list[hidden] { display: none; }
.ac-source-list header small { color: var(--ac-red); font-size: 10px; font-weight: 700; }
.ac-source-list header h2 { margin: 3px 0; font-size: 20px; }
.ac-source-list header p { margin: 0 0 12px; color: #747980; font-size: 12px; line-height: 1.65; }
.ac-source-list > div { display: grid; }
.ac-inline-link { display: inline; border: 0; border-bottom: 1px solid #d71f2a; padding: 0; background: transparent; color: #bd1d26; font: inherit; cursor: pointer; }
.ac-relations { padding: 22px 18px; overflow-y: auto; border-left: 1px solid #e0e2e4; background: #f7f8f9; }
.ac-relations > section { margin-bottom: 25px; }
.ac-relations p { margin: 0 0 7px; color: #777c82; font-size: 11px; }
.ac-relations > section > strong { font-size: 14px; }
.ac-aside-head { display: flex; justify-content: space-between; }
.ac-relation-list { display: grid; gap: 6px; }
.ac-relation-list button { display: grid; gap: 3px; padding: 9px 10px; border: 1px solid #dcdee1; background: #fff; text-align: left; cursor: pointer; }
.ac-relation-list button:hover { border-color: #c91f27; }
.ac-relation-list strong { color: #303438; font-size: 12px; line-height: 1.45; }
.ac-relation-list small { color: #858a90; font-size: 10px; }
.ac-version-list { display: grid; gap: 0; }
.ac-version { display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 8px; min-height: 46px; }
.ac-version i { position: relative; width: 8px; height: 8px; margin-top: 4px; border: 2px solid #c91f27; border-radius: 50%; background: #fff; }
.ac-version i::after { position: absolute; top: 8px; left: 2px; width: 1px; height: 36px; background: #d7d9dc; content: ""; }
.ac-version:last-child i::after { display: none; }
.ac-version span { display: grid; align-content: start; gap: 2px; }
.ac-version strong { font-size: 11px; }
.ac-version small { color: #858a90; font-size: 10px; line-height: 1.45; }
.ac-comments { max-width: 850px; margin-top: 42px; padding-top: 24px; border-top: 2px solid #202124; }
.ac-comments > header { display: flex; justify-content: space-between; align-items: end; margin-bottom: 15px; }
.ac-comments header p { margin: 0 0 3px; color: var(--ac-red); font-size: 11px; font-weight: 700; }
.ac-comments header h3 { margin: 0; font-size: 19px; }
.ac-comments header > span { color: #73787e; font-size: 11px; }
.ac-comment-list { display: grid; gap: 1px; background: #e5e7e9; }
.ac-comment { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 14px; background: #fff; }
.ac-avatar { display: grid; place-items: center; width: 34px; height: 34px; background: #222528; color: #fff; font-size: 12px; font-weight: 700; }
.ac-comment header { display: flex; justify-content: space-between; gap: 10px; }
.ac-comment header strong { font-size: 12px; }
.ac-comment header time { color: #8a8f94; font-size: 10px; }
.ac-comment-delete { margin-left: auto; border: none; background: none; color: #b03535; font-size: 11px; cursor: pointer; padding: 2px 6px; border-radius: 3px; }
.ac-comment-delete:hover { background: #fce8e8; }
.ac-comment p { margin: 5px 0 0; color: #53585d; font-size: 13px; line-height: 1.65; white-space: pre-wrap; }
.ac-comment-empty { display: block; padding: 13px; background: #fff; color: #858a90; font-size: 12px; }
.ac-comment-form { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: end; gap: 9px; margin-top: 12px; }
.ac-comment-form textarea { min-height: 62px; resize: vertical; border: 1px solid #cfd2d5; padding: 9px 10px; font: inherit; }
.ac-comment-form .ac-primary { min-height: 62px; }
.ac-editor { display: grid; grid-template-columns: minmax(0, 1fr) 300px; min-height: 0; overflow: hidden; }
.ac-editor-main { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 15px; padding: 26px 32px; overflow-y: auto; }
.ac-editor label { display: grid; gap: 7px; color: #4f5459; font-size: 12px; }
.ac-editor input, .ac-editor textarea, .ac-editor select { width: 100%; border: 1px solid #cfd2d5; border-radius: 0; padding: 10px 11px; background: #fff; color: #24282c; font: inherit; }
.ac-editor textarea { resize: vertical; line-height: 1.65; }
.ac-editor-main label:last-child, .ac-editor-main label:last-child textarea { min-height: 0; height: 100%; }
.ac-editor-side { display: grid; align-content: start; gap: 15px; padding: 24px 18px; border-left: 1px solid #dedfe1; background: #f6f7f8; }
.ac-editor-help { padding: 13px; border-left: 3px solid #202124; background: #fff; }
.ac-editor-help strong { font-size: 12px; }
.ac-editor-help p { margin: 6px 0 0; color: #656a70; font-size: 11px; line-height: 1.6; }
.ac-toast { position: fixed; z-index: 1400; right: 24px; bottom: 24px; max-width: 380px; padding: 12px 16px; background: #202124; color: #fff; font-size: 13px; opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s ease; }
.ac-toast.show { opacity: 1; transform: translateY(0); }

@media (max-width: 1180px) {
  .ac-workspace { grid-template-columns: 175px minmax(0, 1fr); }
  .ac-board-toolbar { display: grid; }
  .ac-board-actions { justify-content: start; }
  .ac-board { grid-auto-columns: minmax(245px, 320px); }
  .ac-reader-layout { grid-template-columns: minmax(0, 1fr) 250px; }
  .ac-article { padding-inline: 30px; }
}

@media (max-width: 800px) {
  .ac-permission-bar { align-items: flex-start; flex-direction: column; }
  .ac-personal-strip { grid-template-columns: 1fr; }
  .ac-personal-strip > * { min-height: 82px; border-right: 0; border-bottom: 1px solid var(--ac-line); }
  .ac-personal-strip > *:last-child { border-bottom: 0; }
  .ac-workspace { grid-template-columns: 1fr; }
  .ac-sidebar { border-right: 0; border-bottom: 1px solid var(--ac-line); }
  .ac-domain-nav { display: flex; max-height: none; overflow-x: auto; }
  .ac-domain-item { flex: 0 0 auto; border-left: 0; border-bottom: 3px solid transparent; }
  .ac-domain-item.active { border-left: 0; border-bottom-color: var(--ac-red); }
  .ac-cloud-note { display: none; }
  .ac-board-actions { display: grid; grid-template-columns: 1fr auto; }
  .ac-search { grid-column: 1 / -1; width: 100%; }
  .ac-view-switch { width: max-content; }
  .ac-board { grid-auto-columns: minmax(250px, 82vw); }
  .ac-graph { height: 520px; }
  .ac-graph-pane, .ac-view-pane, .ac-view-stage { min-height: 520px; }
  .ac-graph-toolbar span, .ac-graph-legend span:last-child { display: none; }
  .ac-overlay { padding: 0; }
  .ac-reader { width: 100vw; height: 100vh; border: 0; }
  .ac-reader-actions > span { display: none; }
  .ac-reader-layout { grid-template-columns: 1fr; overflow-y: auto; }
  .ac-article { overflow: visible; padding: 24px 18px 32px; }
  .ac-article > h2 { font-size: 25px; }
  .ac-natural-section-title { font-size: 23px; }
  .ac-relations { border-top: 1px solid #e0e2e4; border-left: 0; }
  .ac-comment-form { grid-template-columns: 1fr; }
  .ac-comment-form .ac-avatar { display: none; }
  .ac-comment-form .ac-primary { min-height: 40px; }
  .ac-editor { grid-template-columns: 1fr; overflow-y: auto; }
  .ac-editor-main { overflow: visible; padding: 20px 16px; }
  .ac-editor-main label:last-child textarea { min-height: 420px; }
  .ac-editor-side { border-top: 1px solid #dedfe1; border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body.portal-navigating::before { animation-duration: .01ms !important; }
  .module-view, .ac-view-pane, .ac-knowledge-card, .ac-overlay, .ac-backdrop, .ac-reader, .ac-reader-layout, .ac-view-switch button { transition-duration: .01ms !important; }
}

* { box-sizing: border-box; }

body.portal-navigating::before {
  content: "";
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  width: 34%;
  height: 3px;
  background: #d71920;
  box-shadow: 0 0 10px rgb(215 25 32 / 28%);
  transform-origin: left center;
  animation: portal-progress .48s cubic-bezier(.2, .8, .2, 1) both;
  pointer-events: none;
}

.module-view {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .18s ease, transform .22s cubic-bezier(.2, .8, .2, 1);
}
.module-view.module-leaving { opacity: 0; transform: translateY(-6px); pointer-events: none; }
.module-view.module-entering { opacity: 0; transform: translateY(9px); pointer-events: none; }

@keyframes portal-progress {
  0% { opacity: 0; transform: scaleX(.08); }
  16% { opacity: 1; }
  72% { opacity: 1; transform: scaleX(2.55); }
  100% { opacity: 0; transform: scaleX(2.94); }
}

[hidden] { display: none !important; }

body { margin: 0; min-width: 320px; min-height: 100vh; }

button, select, input { font: inherit; }

button { cursor: pointer; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 232px minmax(0, 1fr); }

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 20px 12px 16px;
  color: #f8f8f8;
  background: #211f20;
  overflow-y: auto;
}

.brand { display: flex; align-items: center; gap: 10px; padding: 0 8px 24px; }
.brand-mark { display: grid; width: 34px; height: 34px; place-items: center; color: #fff; background: #c91f27; font-size: 12px; font-weight: 800; letter-spacing: 0; }
.brand strong, .brand span { display: block; }
.brand strong { font-size: 16px; line-height: 1.25; }
.brand div span { margin-top: 3px; color: #a8a8a8; font-size: 12px; }

.main-nav { display: grid; gap: 4px; }
.nav-item { display: flex; width: 100%; min-height: 42px; align-items: center; border: 0; border-left: 3px solid transparent; padding: 0 12px; color: #c7c7c7; background: transparent; text-align: left; font-size: 14px; }
.nav-item:hover { color: #fff; background: #343132; }
.nav-item.active { border-left-color: #df3038; color: #fff; background: #3b3031; font-weight: 700; }
.sidebar-footer { margin-top: auto; border-top: 1px solid #454142; padding: 16px 8px 0; color: #f1f1f1; font-size: 13px; overflow-wrap: anywhere; }
.sidebar-footer span { display: block; }
.sidebar-footer span + span { margin-top: 5px; color: #a8a8a8; font-size: 12px; }

.workspace { min-width: 0; padding: 24px clamp(18px, 3vw, 48px) 40px; }
.topbar { display: flex; min-height: 64px; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid #dedfe1; padding-bottom: 18px; }
.eyebrow, .panel-kicker, .state-kicker { margin: 0 0 7px; color: #777b80; font-size: 12px; font-weight: 700; letter-spacing: 0; }
h1, h2, p { overflow-wrap: anywhere; }
h1 { margin: 0; color: #202124; font-size: 24px; line-height: 1.25; font-weight: 800; }
h2 { margin: 0; color: #25272a; font-size: 17px; line-height: 1.35; }
.topbar-actions { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 12px; }
.data-source { max-width: 280px; color: #666a70; font-size: 12px; text-align: right; overflow-wrap: anywhere; }
.logout-button, .refresh-button { border: 1px solid #c91f27; min-height: 34px; padding: 0 13px; color: #fff; background: #c91f27; font-size: 13px; font-weight: 700; white-space: nowrap; }
.logout-button:hover, .refresh-button:hover { background: #ad161e; }

.filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 18px 0; }
.range-control { display: inline-flex; border: 1px solid #d7d9dc; background: #fff; }
.range-button { min-width: 68px; min-height: 34px; border: 0; border-right: 1px solid #d7d9dc; color: #555a60; background: #fff; font-size: 13px; }
.range-button:last-child { border-right: 0; }
.range-button.active { color: #fff; background: #c91f27; font-weight: 700; }
.city-field { display: inline-flex; min-height: 34px; align-items: center; gap: 8px; padding-left: 10px; border: 1px solid #d7d9dc; background: #fff; color: #555a60; font-size: 13px; }
.city-field select { min-width: 112px; min-height: 32px; border: 0; padding: 0 26px 0 0; color: #202124; background: #fff; }
.refresh-button { margin-left: auto; }

.dashboard-state { display: grid; min-height: 244px; place-items: center; border: 1px solid #dedfe1; background: #fff; text-align: center; }
.dashboard-state[data-state="loading"] { border-top: 3px solid #c91f27; }
.dashboard-state[data-state="error"] { border-top: 3px solid #9d2027; background: #fffafa; }
.dashboard-state[data-state="unconfigured"] { border-top: 3px solid #b7751b; background: #fffdf8; }
.dashboard-state[data-state="empty"] { border-top: 3px solid #7b8288; }
.control-plane-placeholder { display: grid; gap: 9px; min-height: 190px; align-content: center; margin-top: 18px; border: 1px solid #dedfe1; border-top: 3px solid #c91f27; padding: 28px; background: #fff; }
.control-plane-placeholder > p { max-width: 680px; margin: 0; color: #686d73; line-height: 1.7; }
.control-plane-placeholder[data-state="empty"] { border-top-color: #7b8288; }
.control-plane-placeholder[data-state="unconfigured"] { border-top-color: #b7751b; background: #fffdf8; }
.control-plane-placeholder[data-state="stale"] { border-top-color: #b7751b; background: #fff9ed; }
.control-plane-placeholder[data-state="error"] { border-top-color: #9d2027; background: #fffafa; }
.control-plane-placeholder[data-state="forbidden"] { border-top-color: #59616a; background: #f5f6f7; }
.role-preview-panel { display: grid; gap: 4px; margin-top: 12px; border-left: 3px solid #59616a; padding: 11px 13px; background: #f5f6f7; }
.role-preview-panel span { color: #686d73; font-size: 13px; }
.state-content { max-width: 440px; padding: 32px 24px; }
.state-content h2 { font-size: 19px; }
.state-content p { margin: 11px 0 0; color: #686d73; font-size: 14px; line-height: 1.7; }

.dashboard-content { display: grid; gap: 16px; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.kpi-card { min-width: 0; min-height: 116px; border: 1px solid #dedfe1; border-top: 3px solid #c91f27; padding: 16px; background: #fff; }
.kpi-card h2 { color: #70747a; font-size: 13px; font-weight: 700; }
.metric-value { margin-top: 17px; color: #202124; font-size: 26px; line-height: 1.15; font-weight: 800; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.metric-unit { margin-left: 5px; color: #777b80; font-size: 12px; font-weight: 400; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); gap: 16px; }
.lower-grid { grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); }
.panel { min-width: 0; border: 1px solid #dedfe1; background: #fff; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #ebecee; padding: 15px 16px 13px; }
.panel-heading .panel-kicker { margin-bottom: 4px; }
.trend-chart { min-height: 258px; padding: 14px 16px 16px; }
.chart-svg { display: block; width: 100%; height: 220px; overflow: visible; }
.chart-grid { stroke: #e5e7e9; stroke-width: 1; }
.chart-line { fill: none; stroke: #c91f27; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.chart-area { fill: #f9e5e6; }
.chart-label { fill: #767b80; font-family: "Microsoft YaHei", "微软雅黑", Arial, sans-serif; font-size: 11px; }
.empty-inline { display: grid; min-height: 140px; place-items: center; color: #777b80; font-size: 13px; text-align: center; }

.health-list { display: grid; gap: 16px; padding: 18px 16px; }
.health-row { display: grid; gap: 7px; }
.health-meta { display: flex; justify-content: space-between; gap: 12px; color: #484d53; font-size: 13px; }
.health-meta span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.progress-track { height: 7px; overflow: hidden; background: #ebecee; }
.progress-fill { height: 100%; background: #c91f27; }

.rankings-list, .alerts-list { display: grid; }
.ranking-group { border-bottom: 1px solid #ebecee; padding: 13px 16px; }
.ranking-group:last-child, .alert-row:last-child { border-bottom: 0; }
.ranking-group h3 { margin: 0 0 9px; color: #5e6369; font-size: 13px; }
.ranking-row { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 26px; color: #454a50; font-size: 13px; }
.ranking-row + .ranking-row { margin-top: 5px; }
.drilldown-row { cursor: pointer; }
.drilldown-row:hover, .drilldown-row:focus-visible { background: #fff7f7; outline: none; }
.ranking-index { color: #9b1f26; font-variant-numeric: tabular-nums; }
.ranking-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ranking-value { color: #555a60; font-variant-numeric: tabular-nums; white-space: nowrap; }
.alert-row { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 10px; border-bottom: 1px solid #ebecee; padding: 14px 16px; }
.alert-dot { width: 8px; height: 8px; margin-top: 5px; background: #c91f27; }
.alert-row h3 { margin: 0; color: #34383d; font-size: 14px; line-height: 1.4; }
.alert-row p { margin: 5px 0 0; color: #747980; font-size: 12px; line-height: 1.45; }

.legacy-module { height: calc(100vh - 132px); min-height: 600px; border: 1px solid #dedfe1; background: #fff; }
.legacy-module iframe { display: block; width: 100%; height: 100%; border: 0; }
.portal-module { padding-top: 18px; }
.portal-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; border-bottom: 1px solid #dedfe1; padding: 0 0 18px; }
.portal-toolbar h2, .academy-hero h2 { margin: 2px 0 0; color: #202124; font-size: 24px; line-height: 1.25; }
.portal-toolbar p:last-child, .academy-hero p:last-child { max-width: 650px; margin: 8px 0 0; color: #676c72; font-size: 13px; line-height: 1.6; }
.portal-toolbar-actions, .academy-controls { display: flex; flex-wrap: wrap; align-items: end; justify-content: flex-end; gap: 10px; }
.portal-search, .portal-select { display: grid; gap: 5px; color: #5c6167; font-size: 12px; font-weight: 700; }
.portal-search input, .portal-select select, .portal-field input, .portal-field select, .portal-field textarea { min-width: 0; border: 1px solid #cfd2d5; color: #202124; background: #fff; font: inherit; outline: none; }
.portal-search input { width: 240px; height: 36px; padding: 0 10px; }
.portal-select select { min-width: 126px; height: 36px; padding: 0 8px; }
.portal-search input:focus, .portal-select select:focus, .portal-field input:focus, .portal-field select:focus, .portal-field textarea:focus { border-color: #c91f27; box-shadow: 0 0 0 2px #f8e2e4; }
.secondary-action, .primary-action, .text-action { border: 0; font: inherit; cursor: pointer; }
.secondary-action { min-height: 36px; border: 1px solid #c91f27; padding: 0 14px; color: #c91f27; background: #fff; font-size: 13px; font-weight: 700; }
.primary-action { min-height: 38px; padding: 0 18px; color: #fff; background: #c91f27; font-weight: 700; }
.secondary-action:disabled, .primary-action:disabled { cursor: wait; opacity: .6; }
.text-action { padding: 0; color: #b71922; background: transparent; font-weight: 700; }
.portal-state { margin-top: 16px; border-left: 3px solid #7b8288; padding: 10px 13px; color: #555a60; background: #fafafa; font-size: 13px; }
.portal-state[data-state="error"] { border-left-color: #c91f27; color: #9d2027; background: #fff7f7; }
.portal-state[hidden] { display: none; }
.portal-kpi-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 16px; border: 1px solid #dedfe1; background: #fff; }
.portal-kpi { min-width: 0; padding: 16px; border-right: 1px solid #ebecee; }
.portal-kpi:last-child { border-right: 0; }
.portal-kpi-value { display: block; color: #202124; font-size: 25px; font-weight: 800; font-variant-numeric: tabular-nums; }
.portal-kpi-label { display: block; margin-top: 6px; color: #747980; font-size: 12px; }
.recruitment-workspace { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(460px, 1.28fr); min-height: 540px; margin-top: 16px; border: 1px solid #dedfe1; background: #fff; }
.lead-list-panel { min-width: 0; border-right: 1px solid #dedfe1; }
.lead-list { display: grid; align-content: start; }
.lead-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 78px; border: 0; border-bottom: 1px solid #ebecee; padding: 13px 15px; color: #202124; background: #fff; text-align: left; cursor: pointer; }
.lead-row:hover, .lead-row[data-active="true"] { background: #fff7f7; }
.lead-row[data-active="true"] { box-shadow: inset 3px 0 #c91f27; }
.lead-row-main, .lead-row-meta { display: grid; min-width: 0; gap: 5px; }
.lead-row-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.lead-row small { color: #747980; font-size: 12px; }
.lead-row-meta { justify-items: end; }
.status-badge { display: inline-flex; width: fit-content; min-height: 23px; align-items: center; padding: 0 8px; color: #5e6369; background: #f0f1f2; font-size: 11px; font-weight: 700; }
.status-badge.new { color: #9d2027; background: #fdebec; }
.status-badge.working { color: #8b5c13; background: #fff3de; }
.status-badge.warning { color: #8b5c13; background: #fff3de; }
.status-badge.success { color: #1f754b; background: #e8f5ee; }
.status-badge.muted { color: #656a70; background: #eceeef; }
.lead-detail-panel { min-width: 0; padding: 22px; }
.store-photo-section { margin: 18px 0; padding: 16px; border: 1px solid #ebecee; border-radius: 12px; background: #fafafa; }
.store-photo-section h3 { margin: 0 0 12px; font-size: 15px; }
.store-photo-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.store-photo-link { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 9px; background: #eceeef; }
.store-photo-image { width: 100%; height: 100%; object-fit: cover; transition: transform .18s ease; }
.store-photo-link:hover .store-photo-image { transform: scale(1.035); }
.lead-detail-header { display: flex; justify-content: space-between; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid #ebecee; }
.lead-detail-header h2 { margin: 9px 0 0; font-size: 22px; }
.lead-detail-header p { margin: 6px 0 0; color: #6e7379; font-size: 13px; }
.lead-context { display: grid; grid-template-columns: 90px minmax(0, 1fr) 90px minmax(0, 1fr); margin: 0; padding: 18px 0; border-bottom: 1px solid #ebecee; font-size: 12px; line-height: 1.55; }
.lead-context dt { color: #7a7f85; }
.lead-context dd { min-width: 0; margin: 0; color: #373b40; overflow-wrap: anywhere; }
.lead-edit-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; padding-top: 18px; }
.portal-field { display: grid; min-width: 0; gap: 6px; color: #545960; font-size: 12px; font-weight: 700; }
.portal-field input, .portal-field select { width: 100%; height: 36px; padding: 0 9px; font-weight: 400; }
.portal-field textarea { width: 100%; resize: vertical; padding: 9px; line-height: 1.55; font-weight: 400; }
.portal-field-wide, .lead-save-row { grid-column: 1 / -1; }
.lead-save-row { display: flex; min-height: 40px; align-items: center; justify-content: space-between; gap: 12px; }
.lead-save-message { color: #71767c; font-size: 12px; }
.portal-empty { display: grid; min-height: 220px; place-content: center; padding: 24px; color: #6b7076; text-align: center; }
.portal-empty.compact { min-height: 140px; font-size: 13px; }
.portal-empty strong { color: #34383d; font-size: 16px; }
.portal-empty p { margin: 8px 0 0; font-size: 13px; }
.store-range-control { display: flex; width: fit-content; margin-top: 14px; border: 1px solid #cfd2d5; background: #fff; }
.store-range-control button { min-height: 34px; border: 0; border-right: 1px solid #dedfe1; padding: 0 13px; color: #656a70; background: transparent; font: inherit; font-size: 12px; cursor: pointer; }
.store-range-control button:last-child { border-right: 0; }
.store-range-control button.active { color: #fff; background: #c91f27; font-weight: 700; }
.stores-kpi-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.stores-workspace { display: grid; grid-template-columns: minmax(520px, 1.05fr) minmax(420px, .95fr); min-height: 590px; margin-top: 16px; border: 1px solid #dedfe1; background: #fff; }
.stores-list-panel { min-width: 0; border-right: 1px solid #dedfe1; }
.stores-table-head, .store-row { display: grid; grid-template-columns: minmax(230px, 1fr) 84px 100px 92px; align-items: center; gap: 12px; }
.stores-table-head { min-height: 42px; border-bottom: 1px solid #dedfe1; padding: 0 15px; color: #777c82; background: #fafafa; font-size: 11px; font-weight: 700; }
.stores-table { display: grid; align-content: start; }
.store-row { width: 100%; min-height: 76px; border: 0; border-bottom: 1px solid #ebecee; padding: 12px 15px; color: #202124; background: #fff; text-align: left; cursor: pointer; }
.store-row:hover, .store-row[data-active="true"] { background: #fff7f7; }
.store-row[data-active="true"] { box-shadow: inset 3px 0 #c91f27; }
.store-row-identity, .store-row-metric { display: grid; min-width: 0; gap: 5px; }
.store-row-identity strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.store-row-identity small, .store-row-metric small { overflow: hidden; color: #777c82; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.store-row-metric strong { font-size: 13px; font-variant-numeric: tabular-nums; }
.store-detail-panel { min-width: 0; padding: 22px; background: #fff; }
.store-detail-header { padding-bottom: 17px; border-bottom: 1px solid #ebecee; }
.store-detail-header h2 { margin: 9px 0 0; font-size: 22px; line-height: 1.35; }
.store-detail-header p { margin: 6px 0 0; color: #6e7379; font-size: 12px; line-height: 1.55; }
.store-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 17px 0; border-bottom: 1px solid #ebecee; background: #ebecee; }
.store-fact { min-width: 0; padding: 11px 12px; background: #fff; }
.store-fact dt { color: #777c82; font-size: 11px; }
.store-fact dd { margin: 6px 0 0; overflow-wrap: anywhere; color: #303439; font-size: 13px; font-weight: 700; }
.store-cabinets, .store-profile-section { padding-top: 18px; }
.store-cabinets h3, .store-profile-section h3 { margin: 0; font-size: 15px; }
.store-muted { margin: 7px 0 0; color: #777c82; font-size: 12px; line-height: 1.55; }
.store-cabinet-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 54px; border-bottom: 1px solid #ebecee; }
.store-cabinet-row > div { display: grid; min-width: 0; gap: 4px; }
.store-cabinet-row strong { font-size: 13px; }
.store-cabinet-row small { color: #777c82; font-size: 11px; }
.store-cabinet-meta { justify-items: end; }
.device-state { position: relative; padding-left: 11px; font-size: 11px; font-weight: 700; }
.device-state::before { position: absolute; top: 50%; left: 0; width: 7px; height: 7px; border-radius: 50%; transform: translateY(-50%); content: ""; }
.device-state.online { color: #1f754b; }
.device-state.online::before { background: #2f9c68; }
.device-state.offline { color: #9d2027; }
.device-state.offline::before { background: #c91f27; }
.store-profile-section { margin-top: 2px; border-top: 1px solid #dedfe1; }
.store-profile-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; margin-top: 14px; }
.store-detail-empty { min-height: 500px; }
.kpi-card[role="button"] { cursor: pointer; transition: border-color .16s ease, background .16s ease; }
.kpi-card[role="button"]:hover, .kpi-card[role="button"]:focus-visible { border-color: #c91f27; background: #fffafa; outline: none; }
.academy-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; border-bottom: 1px solid #dedfe1; padding-bottom: 18px; }
.academy-stats { display: flex; margin: 0; border: 1px solid #dedfe1; background: #fff; }
.academy-stats div { min-width: 128px; padding: 14px 18px; border-right: 1px solid #ebecee; }
.academy-stats div:last-child { border-right: 0; }
.academy-stats dt { color: #c91f27; font-size: 23px; font-weight: 800; }
.academy-stats dd { margin: 5px 0 0; color: #73787e; font-size: 11px; }
.academy-controls { justify-content: flex-start; margin-top: 16px; }
.academy-tabs { display: flex; gap: 28px; margin-top: 18px; overflow-x: auto; border-bottom: 1px solid #dfe1e3; }
.academy-tabs button { min-height: 44px; flex: 0 0 auto; border: 0; border-bottom: 3px solid transparent; padding: 0 2px; color: #62676d; background: transparent; font-size: 13px; cursor: pointer; }
.academy-tabs button.active { border-bottom-color: #c91f27; color: #202124; font-weight: 800; }
.academy-pane { margin-top: 16px; }
.academy-workbench { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.academy-workbench-intro { grid-column: 1 / -1; border-left: 4px solid #c91f27; padding: 18px 22px; background: #fff; }
.academy-workbench-intro h3 { margin: 4px 0 0; font-size: 22px; }
.academy-workbench-intro > p:last-child { max-width: 920px; margin: 10px 0 0; color: #60656b; font-size: 14px; line-height: 1.75; }
.academy-workbench-panel { min-width: 0; border: 1px solid #dedfe1; padding: 18px; background: #fff; }
.academy-workbench-panel.wide { grid-column: 1 / -1; }
.academy-workbench-panel h3 { margin: 0 0 14px; font-size: 16px; }
.knowledge-list { display: grid; gap: 0; }
.knowledge-row { display: grid; width: 100%; gap: 6px; border: 0; border-bottom: 1px solid #ebecee; padding: 12px 0; color: #202124; background: transparent; text-align: left; cursor: pointer; }
.knowledge-row:last-child { border-bottom: 0; }
.knowledge-row:hover strong, .knowledge-row:focus-visible strong { color: #b51e26; }
.knowledge-row strong { font-size: 14px; line-height: 1.45; }
.knowledge-row p { display: none; }
.knowledge-row .knowledge-card-footer { color: #858a90; font-size: 11px; }
.knowledge-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 18px; }
.academy-domain-list { display: grid; gap: 8px; }
.academy-domain-row { position: relative; display: grid; min-height: 31px; grid-template-columns: minmax(0, 1fr) 54%; align-items: center; overflow: hidden; border: 0; padding: 0 8px; color: #3d4247; background: #f4f5f6; text-align: left; cursor: pointer; }
.academy-domain-row > span:first-child, .academy-domain-row strong { position: relative; z-index: 1; }
.academy-domain-row strong { justify-self: end; font-size: 12px; }
.academy-domain-bar { position: absolute; top: 0; bottom: 0; left: 0; background: #f6dfe1; }
.knowledge-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.knowledge-card { display: grid; min-height: 230px; grid-template-rows: auto auto 1fr auto; gap: 0; border: 1px solid #dedfe1; border-top: 3px solid #c91f27; padding: 18px; color: #202124; background: #fff; text-align: left; cursor: pointer; }
.knowledge-card:hover, .knowledge-card:focus-visible { border-color: #c91f27; outline: none; box-shadow: 0 8px 22px rgba(27, 30, 33, .08); }
.knowledge-card > strong { margin-top: 16px; font-size: 17px; line-height: 1.45; }
.knowledge-card > p { margin: 10px 0 0; color: #62676d; font-size: 13px; line-height: 1.68; }
.knowledge-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #777c82; font-size: 11px; }
.knowledge-level { display: inline-flex; min-height: 22px; align-items: center; padding: 0 7px; color: #fff; background: #c91f27; font-size: 11px; font-weight: 800; }
.knowledge-level.l2 { background: #b7751b; }
.knowledge-level.l3 { background: #202124; }
.knowledge-card-footer { margin-top: 18px; border-top: 1px solid #ebecee; padding-top: 12px; color: #858a90; font-size: 11px; line-height: 1.5; }
.academy-graph-toolbar { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #dedfe1; border-bottom: 0; padding: 8px 12px; color: #686d73; background: #fff; font-size: 12px; }
.academy-graph-toolbar > div { display: flex; }
.academy-graph-toolbar button { width: 38px; height: 32px; border: 1px solid #d8dade; border-right: 0; color: #303439; background: #fff; font-size: 17px; cursor: pointer; }
.academy-graph-toolbar button:last-child { border-right: 1px solid #d8dade; }
.academy-graph { min-height: 620px; overflow: hidden; border: 1px solid #dedfe1; background: #fbfbfc; }
.academy-graph svg { display: block; width: 100%; min-height: 620px; cursor: grab; }
.academy-graph svg:active { cursor: grabbing; }
.graph-links line { stroke: #bfc4c8; stroke-width: .75; opacity: .48; transition: opacity .14s ease, stroke .14s ease; }
.graph-links line.active { stroke: #c91f27; stroke-width: 1.5; opacity: .9; }
.graph-links line.muted { opacity: .06; }
.graph-node { cursor: pointer; transition: opacity .14s ease; }
.graph-node.muted { opacity: .12; }
.graph-node text { fill: #41464b; font-family: "Microsoft YaHei", "微软雅黑", sans-serif; font-size: 10px; paint-order: stroke; stroke: #fbfbfc; stroke-width: 3px; stroke-linejoin: round; }
.graph-node:focus { outline: none; }
.graph-node:focus circle { stroke: #c91f27; stroke-width: 4px; }
.academy-paths { display: grid; gap: 14px; }
.academy-path { display: grid; grid-template-columns: minmax(230px, .42fr) minmax(0, 1fr); border: 1px solid #dedfe1; background: #fff; }
.academy-path > header { border-right: 1px solid #ebecee; padding: 20px; }
.academy-path h3 { margin: 12px 0 0; font-size: 18px; }
.academy-path header p { margin: 9px 0 0; color: #686d73; font-size: 13px; line-height: 1.65; }
.academy-path-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.academy-path-step { display: grid; min-height: 74px; grid-template-columns: 34px minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; gap: 4px 10px; border: 0; border-right: 1px solid #ebecee; border-bottom: 1px solid #ebecee; padding: 10px 14px; color: #202124; background: #fff; text-align: left; cursor: pointer; }
.academy-path-step:hover strong { color: #b51e26; }
.academy-step-number { grid-row: 1 / 3; align-self: center; color: #c91f27; font-size: 12px; font-weight: 800; }
.academy-path-step strong { font-size: 13px; line-height: 1.4; }
.academy-path-step small { color: #858a90; font-size: 10px; }
.knowledge-reader { margin-top: 16px; border: 1px solid #dedfe1; background: #fff; }
.knowledge-reader-toolbar { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #ebecee; padding: 8px 20px; color: #74797f; font-size: 11px; }
.knowledge-reader-header { max-width: 1000px; padding: 32px 38px 26px; }
.knowledge-reader-header h2 { margin: 8px 0 0; font-size: 30px; line-height: 1.38; }
.knowledge-reader-header > p:not(.state-kicker) { max-width: 850px; margin: 12px 0 0; color: #5e6369; font-size: 15px; line-height: 1.75; }
.knowledge-reader-header small { display: block; margin-top: 13px; color: #8a8f94; }
.knowledge-reader-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; border-top: 1px solid #ebecee; }
.knowledge-body { min-width: 0; padding: 30px 38px 50px; }
.knowledge-body h2 { margin: 30px 0 14px; font-size: 23px; }
.knowledge-body h3 { margin: 27px 0 12px; font-size: 19px; }
.knowledge-body h4 { margin: 22px 0 10px; font-size: 16px; }
.knowledge-body > :first-child { margin-top: 0; }
.knowledge-body p, .knowledge-body li { color: #3f4449; font-size: 15px; line-height: 1.9; }
.knowledge-body ul, .knowledge-body ol { padding-left: 1.5em; }
.knowledge-body blockquote { margin: 20px 0; border-left: 4px solid #c91f27; padding: 14px 18px; color: #292d31; background: #fff7f7; font-size: 16px; font-weight: 700; line-height: 1.75; }
.knowledge-body code { padding: 2px 5px; background: #f0f1f2; font-family: Consolas, monospace; font-size: .9em; }
.knowledge-body pre { overflow-x: auto; padding: 16px; color: #f4f5f6; background: #202124; }
.knowledge-body pre code { padding: 0; color: inherit; background: transparent; }
.knowledge-table-scroll { overflow-x: auto; margin: 18px 0; }
.knowledge-body table { width: 100%; border-collapse: collapse; font-size: 13px; }
.knowledge-body th, .knowledge-body td { border: 1px solid #dedfe1; padding: 9px 11px; text-align: left; }
.knowledge-body th { background: #f4f5f6; }
.knowledge-inline-link { border: 0; border-bottom: 1px solid #c91f27; padding: 0; color: #b51e26; background: transparent; font: inherit; cursor: pointer; }
.knowledge-context { min-width: 0; border-left: 1px solid #ebecee; padding: 22px 20px 34px; background: #fafafa; }
.knowledge-neighbors { margin-bottom: 25px; }
.knowledge-neighbors h3 { margin: 0 0 8px; color: #555a60; font-size: 13px; }
.knowledge-neighbor-list { display: grid; }
.knowledge-neighbor-list .knowledge-row { padding: 10px 0; }
.knowledge-muted { color: #858a90; font-size: 12px; }
.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.course-card { display: grid; min-height: 225px; grid-template-rows: auto auto 1fr auto; border: 1px solid #dedfe1; border-top: 3px solid #c91f27; padding: 18px; background: #fff; }
.course-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #73787e; font-size: 11px; }
.course-level { display: inline-flex; min-height: 22px; align-items: center; padding: 0 7px; color: #fff; background: #c91f27; font-size: 11px; font-weight: 800; }
.course-card h2 { margin: 18px 0 0; font-size: 17px; line-height: 1.4; }
.course-card > p { margin: 10px 0 0; color: #676c72; font-size: 13px; line-height: 1.65; }
.course-card footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 18px; border-top: 1px solid #ebecee; padding-top: 13px; color: #858a90; font-size: 11px; }
.course-reader { max-width: 860px; margin: 16px auto 0; border: 1px solid #dedfe1; padding: 28px 34px 36px; background: #fff; }
.course-reader-header { margin-top: 20px; border-bottom: 1px solid #dedfe1; padding-bottom: 22px; }
.course-reader-header h2 { margin: 12px 0 0; font-size: 27px; line-height: 1.35; }
.course-reader-header p { margin: 10px 0 0; color: #5f646a; line-height: 1.7; }
.course-reader-header small { display: block; margin-top: 12px; color: #8a8f94; }
.course-section { padding: 24px 0 0; }
.course-section h3 { margin: 0; font-size: 18px; }
.course-section p, .course-section li { color: #44494f; font-size: 15px; line-height: 1.85; }
.course-section ul { margin: 12px 0 0; padding-left: 1.3em; }
.course-section blockquote { margin: 16px 0 0; border-left: 4px solid #c91f27; padding: 12px 16px; color: #2f3337; background: #fff7f7; font-size: 16px; font-weight: 700; line-height: 1.7; }
.course-source { margin: 28px 0 0; border-top: 1px solid #ebecee; padding-top: 14px; color: #8a8f94; font-size: 11px; }
.system-view { padding-top: 18px; }
.system-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid #dedfe1; padding: 0 0 16px; }
.system-actions { display: flex; align-items: flex-start; gap: 12px; }
.staff-add-toggle { min-height: 34px; border: 1px solid #c91f27; padding: 0 14px; color: #fff; background: #c91f27; font-size: 13px; font-weight: 700; cursor: pointer; }
.role-preview { display: grid; min-width: 210px; gap: 5px; color: #4f555b; font-size: 13px; font-weight: 700; }
.role-preview select { min-height: 34px; border: 1px solid #cfd2d5; padding: 0 8px; color: #202124; background: #fff; font-weight: 400; }
.role-preview small { color: #777b80; font-size: 12px; font-weight: 400; line-height: 1.4; }
.role-preview-capabilities { min-height: 48px; margin-top: 14px; border-left: 3px solid #c91f27; padding: 10px 13px; background: #fafafa; color: #555a60; font-size: 13px; line-height: 1.55; }
.role-preview-capabilities p { margin: 0; }
.controlled-fixture-marker { position: static; margin: 0; border-bottom: 1px solid #e5b8bb; padding: 6px 12px; background: #fff7f7; color: #9d2027; font-size: 12px; line-height: 1.4; text-align: center; }
.staff-add-panel, .staff-applications-panel { margin-top: 16px; border: 1px solid #dedfe1; background: #fff; }
.staff-add-panel { border-top: 3px solid #c91f27; }
.staff-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid #ebecee; padding: 13px 16px; }
.staff-section-heading h3 { margin: 2px 0 0; font-size: 16px; }
.staff-section-heading .state-kicker { margin: 0; }
.staff-count { display: inline-flex; min-width: 22px; height: 22px; align-items: center; justify-content: center; margin-left: 5px; padding: 0 6px; color: #fff; background: #c91f27; font-size: 11px; }
.text-action { border: 0; padding: 4px; color: #b51e26; background: transparent; font-size: 13px; cursor: pointer; }
.staff-add-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; padding: 16px; }
.staff-field input { width: 100%; min-height: 34px; border: 1px solid #cfd2d5; padding: 6px 8px; color: #202124; background: #fff; font-weight: 400; }
.staff-add-permissions, .staff-add-submit { grid-column: 1 / -1; }
.staff-add-submit { display: flex; min-height: 34px; align-items: center; justify-content: space-between; gap: 12px; }
#staffAddMessage { color: #6b7076; font-size: 12px; }
#staffAddMessage[data-state="error"] { color: #a61921; }
.staff-applications-list { display: grid; }
.staff-application-row { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.4fr); gap: 16px; border-bottom: 1px solid #ebecee; padding: 14px 16px; }
.staff-application-row:last-child { border-bottom: 0; }
.staff-application-identity h4 { margin: 0; font-size: 14px; }
.staff-application-identity p, .staff-muted { margin: 6px 0 0; color: #777b80; font-size: 12px; line-height: 1.55; }
.staff-muted { padding: 16px; }
.staff-application-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; }
.staff-review-actions { display: flex; grid-column: 1 / -1; justify-content: flex-end; gap: 8px; }
.staff-review-actions button { min-height: 32px; border: 1px solid #c91f27; padding: 0 12px; color: #fff; background: #c91f27; font-size: 12px; font-weight: 700; cursor: pointer; }
.staff-review-actions .reject { color: #9d2027; background: #fff; }
.staff-access-state { display: grid; min-height: 164px; place-items: center; margin-top: 16px; border: 1px solid #dedfe1; border-top: 3px solid #c91f27; padding: 24px; background: #fff; text-align: center; }
.staff-access-state h2 { font-size: 18px; }
.staff-access-state p { max-width: 460px; margin: 9px 0 0; color: #686d73; font-size: 13px; line-height: 1.6; }
.staff-access-state[data-state="error"] { border-top-color: #9d2027; background: #fffafa; }
.staff-access-state[data-state="empty"] { border-top-color: #7b8288; }
.staff-access-list { display: grid; gap: 12px; margin-top: 16px; }
.staff-access-row { min-width: 0; border: 1px solid #dedfe1; background: #fff; }
.staff-access-header { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #ebecee; padding: 10px 16px; }
.staff-identity { display: flex; min-width: 0; align-items: baseline; gap: 10px; }
.staff-identity h3 { margin: 0; color: #25272a; font-size: 15px; overflow-wrap: anywhere; }
.staff-identity span, .staff-protected { color: #777b80; font-size: 12px; }
.staff-protected { color: #9d2027; font-weight: 700; white-space: nowrap; }
.staff-access-columns { display: grid; grid-template-columns: minmax(220px, .85fr) minmax(0, 1.45fr); }
.staff-current, .staff-pending { min-width: 0; padding: 16px; }
.staff-current { border-right: 1px solid #ebecee; background: #fafafa; }
.staff-current h4, .staff-pending h4 { margin: 0 0 11px; color: #50555b; font-size: 13px; }
.staff-current ul { display: grid; gap: 7px; margin: 0; padding: 0; color: #656a70; font-size: 13px; line-height: 1.45; list-style: none; }
.staff-pending { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; align-items: start; }
.staff-pending h4, .staff-pending > p { grid-column: 1 / -1; }
.staff-pending > p { margin: 0; color: #777b80; font-size: 13px; line-height: 1.55; }
.staff-field { display: grid; min-width: 0; gap: 6px; color: #545960; font-size: 12px; font-weight: 700; }
.staff-field select { width: 100%; min-height: 34px; border: 1px solid #cfd2d5; padding: 6px 8px; color: #202124; background: #fff; font-weight: 400; }
.staff-field select[multiple] { min-height: 72px; }
.permission-options { display: flex; min-height: 34px; flex-wrap: wrap; align-items: center; gap: 10px; border: 1px solid #cfd2d5; padding: 7px 8px; background: #fff; }
.permission-option { display: inline-flex; align-items: center; gap: 5px; color: #454a50; font-size: 12px; font-weight: 400; }
.staff-save { justify-self: start; min-height: 34px; border: 1px solid #c91f27; padding: 0 13px; color: #fff; background: #c91f27; font-size: 13px; font-weight: 700; }
.staff-save:disabled { cursor: wait; opacity: .7; }
.system-view[data-role-preview="L1"] .staff-access-row { border-left: 3px solid #7b8288; }
.system-view[data-role-preview="L2"] .staff-access-row { border-left: 3px solid #b7751b; }
.system-view[data-role-preview="L3"] .staff-access-row { border-left: 3px solid #c91f27; }
.pc-login { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #f4f5f6; }
.pc-login-panel { width: min(400px, 100%); padding: 28px; border: 1px solid #dedfe1; background: #fff; text-align: center; }
.pc-login-panel .brand { margin-bottom: 20px; text-align: left; }
.pc-login-build { display: block; margin-top: 18px; color: #9ca3af; font-size: 11px; line-height: 1.4; }
.sms-login-form { display: grid; gap: 16px; text-align: left; }
.sms-field { display: grid; gap: 7px; color: #4f545a; font-size: 13px; font-weight: 700; }
.sms-field input { width: 100%; min-width: 0; height: 42px; border: 1px solid #cfd2d5; padding: 0 12px; color: #202124; background: #fff; outline: none; }
.sms-field input:focus { border-color: #c91f27; box-shadow: 0 0 0 2px #f7dfe1; }
.sms-code-row { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 10px; }
.sms-code-button, .sms-submit, .legacy-entry a { min-height: 42px; border: 1px solid #c91f27; padding: 0 14px; color: #fff; background: #c91f27; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.sms-code-button { color: #c91f27; background: #fff; font-size: 13px; }
.sms-code-button:disabled, .sms-submit:disabled { cursor: not-allowed; opacity: .6; }
.sms-submit { width: 100%; margin-top: 2px; }
#smsLoginStatus { min-height: 22px; margin: 14px 0 0; color: #666b71; font-size: 13px; line-height: 1.55; }
#smsLoginStatus[data-state="error"] { color: #a61921; }
#smsLoginStatus[data-state="success"] { color: #217a4d; }
.legacy-entry { display: grid; gap: 12px; align-content: center; min-height: 260px; padding: 28px; border: 1px solid #dedfe1; background: #fff; }
.legacy-entry p { margin: 0; color: #555a60; }
.legacy-entry a { justify-self: start; }
.coming-soon { display: grid; min-height: 300px; align-content: center; border: 1px solid #dedfe1; padding: 32px; background: #fff; }
.coming-soon p:last-child { margin: 12px 0 0; color: #70757b; line-height: 1.7; }
.management-module { min-width: 0; }
.control-center { margin-bottom: 14px; border: 1px solid #dedfe1; padding: 22px 24px; background: #fff; }
.control-center-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.control-center-heading h2 { margin: 3px 0 7px; color: #202124; font-size: 24px; }
.control-center-heading p:last-child { max-width: 720px; margin: 0; color: #70757b; font-size: 13px; line-height: 1.7; }
.control-center-overall { flex: 0 0 auto; border-radius: 999px; padding: 7px 11px; color: #8a5a10; background: #fff5df; font-size: 12px; font-weight: 800; }
.control-center-overall[data-state="ready"] { color: #257148; background: #e7f5ec; }
.control-center-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.control-center-card { min-width: 0; border: 1px solid #e3e5e7; border-left: 4px solid #a0a4a8; padding: 14px 15px; background: #fbfbfc; }
.control-center-card[data-state="ready"] { border-left-color: #2d8b57; }
.control-center-card[data-state="pending"] { border-left-color: #d59a31; }
.control-center-card[data-state="blocked"], .control-center-card[data-state="error"] { border-left-color: #c91f27; }
.control-center-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.control-center-card h3 { margin: 0; color: #292c30; font-size: 15px; }
.control-center-card header span { color: #73787e; font-size: 12px; font-weight: 800; }
.control-center-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 13px 0 0; }
.control-center-metrics div { min-width: 0; border-right: 1px solid #e7e8ea; padding-right: 8px; text-align: center; }
.control-center-metrics div:last-child { border-right: 0; padding-right: 0; }
.control-center-metrics dt { color: #c91f27; font-size: 19px; font-weight: 800; }
.control-center-metrics dd { margin: 4px 0 0; overflow: hidden; color: #777c82; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.control-center-notes { margin: 11px 0 0; padding-left: 18px; color: #6a6f75; font-size: 12px; line-height: 1.55; }
.control-center-missing, .control-center-ok { margin: 13px 0 0; color: #9b1c25; font-size: 12px; line-height: 1.65; }
.control-center-ok { color: #257148; }
.management-toolbar { display: flex; justify-content: space-between; gap: 24px; border: 1px solid #dedfe1; padding: 22px 24px; background: #fff; }
.management-toolbar h2 { margin: 3px 0 7px; color: #202124; font-size: 24px; }
.management-toolbar p:last-child { max-width: 620px; margin: 0; color: #70757b; font-size: 13px; line-height: 1.7; }
.management-actions { display: flex; align-items: flex-start; gap: 9px; }
.management-button { min-height: 34px; border: 1px solid #c91f27; padding: 0 13px; color: #c91f27; background: #fff; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.management-button.primary { color: #fff; background: #c91f27; }
.management-button:disabled { cursor: not-allowed; opacity: .55; }
.management-status { margin-top: 14px; border: 1px solid #ebecee; padding: 11px 13px; color: #5d636a; background: #fafafa; font-size: 13px; line-height: 1.5; }
.management-status[data-state="warning"] { border-color: #ecd5a7; color: #8b5d11; background: #fff9ed; }
.management-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.management-kpi { border: 1px solid #dedfe1; padding: 17px; background: #fff; }
.management-kpi strong { display: block; color: #c91f27; font-size: 28px; line-height: 1; }
.management-kpi span { display: block; margin-top: 8px; color: #6b7075; font-size: 13px; }
.management-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr); gap: 14px; margin-top: 14px; }
.management-panel { min-width: 0; border: 1px solid #dedfe1; background: #fff; }
.management-panel > header { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid #ebecee; padding: 15px 17px; }
.management-panel h3 { margin: 0; color: #26282b; font-size: 16px; }
.management-panel header span { color: #777c82; font-size: 12px; }
.management-list { display: grid; }
.management-task, .management-row { display: grid; grid-template-columns: minmax(0, 1fr) 120px 96px; gap: 12px; align-items: center; border-bottom: 1px solid #f0f0f1; padding: 13px 17px; }
.management-task:last-child, .management-row:last-child { border-bottom: 0; }
.management-task strong, .management-row strong { display: block; color: #303338; font-size: 14px; }
.management-task small, .management-row small { display: block; margin-top: 4px; color: #7a7f85; font-size: 12px; line-height: 1.4; }
.management-badge { justify-self: start; border-radius: 12px; padding: 4px 8px; color: #6f5558; background: #f8ecee; font-size: 12px; font-weight: 700; white-space: nowrap; }
.management-badge.overdue { color: #9b1c25; background: #fde9ea; }
.management-badge.done { color: #28734b; background: #e6f5eb; }
.management-metric { text-align: right; color: #c91f27; font-size: 13px; font-weight: 700; }
.management-progress { height: 6px; margin-top: 8px; overflow: hidden; background: #eceef0; }
.management-progress i { display: block; height: 100%; background: #c91f27; }
.management-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 16px 17px; }
.management-form label { display: grid; gap: 5px; color: #62676d; font-size: 12px; font-weight: 700; }
.management-form input, .management-form textarea, .management-form select { width: 100%; min-width: 0; border: 1px solid #cfd2d5; padding: 8px; color: #292c30; background: #fff; font: inherit; font-size: 13px; }
.management-form textarea, .management-form .wide { grid-column: 1 / -1; }
.management-form textarea { min-height: 70px; resize: vertical; }
.management-form .form-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 9px; }
.management-note { padding: 15px 17px; color: #72777d; font-size: 13px; line-height: 1.6; }
.management-news { display: grid; gap: 0; }
.management-news-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; border-bottom: 1px solid #eceeef; padding: 15px 17px; }

.identity-relations, .identity-statuses, .identity-preview-targets, .identity-anomalies { border: 1px solid #dedfe1; padding: 16px; background: #fff; }
.identity-relations h3, .identity-statuses h3, .identity-preview-targets h3, .identity-anomalies h3 { margin: 0 0 11px; font-size: 15px; }
.identity-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin: 0; }
.identity-metric { border-left: 3px solid #c91f27; padding: 8px 10px; background: #f7f7f8; }
.identity-metric dt { color: #6b7075; font-size: 12px; }
.identity-metric dd { margin: 4px 0 0; color: #202124; font-size: 18px; font-weight: 800; }
.identity-anomaly-list { display: grid; gap: 9px; }
.identity-anomaly { display: grid; gap: 6px; border: 1px solid #e2e3e5; border-left: 3px solid #b7751b; padding: 13px; background: #fff; }
.identity-anomaly-group[data-severity="error"] .identity-anomaly { border-left-color: #c91f27; }
.identity-anomaly p { margin: 0; color: #656a70; font-size: 13px; line-height: 1.55; }
.identity-action-guidance { color: #787d82 !important; }
.identity-repair-open, .identity-preview-button { justify-self: start; border: 1px solid #c91f27; min-height: 32px; padding: 0 12px; color: #c91f27; background: #fff; font-size: 12px; font-weight: 700; }
.identity-repair-open:hover, .identity-preview-button:hover { color: #fff; background: #c91f27; }
.identity-preview-controls { display: flex; flex-wrap: wrap; gap: 8px; }

.identity-repair-drawer { position: fixed; z-index: 40; inset: 0 0 0 auto; width: min(560px, 100vw); overflow-y: auto; border-left: 1px solid #d8dade; background: #f5f6f7; box-shadow: -16px 0 38px rgb(26 26 28 / 18%); }
.identity-repair-content { min-height: 100%; padding: 22px; }
.identity-repair-header { position: sticky; z-index: 2; top: -22px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid #dedfe1; margin: -22px -22px 16px; padding: 20px 22px 15px; background: #fff; }
.identity-repair-close { border: 1px solid #cfd2d5; min-height: 34px; padding: 0 12px; color: #4d5258; background: #fff; font-weight: 700; }
.identity-repair-close:focus-visible, .identity-repair-button:focus-visible, .identity-repair-open:focus-visible { outline: 3px solid rgb(201 31 39 / 24%); outline-offset: 2px; }
.identity-repair-anomaly, .identity-repair-section { margin-top: 12px; border: 1px solid #dedfe1; padding: 15px; background: #fff; }
.identity-repair-anomaly { border-left: 4px solid #c91f27; }
.identity-repair-anomaly p, .identity-repair-section p { margin: 7px 0 0; color: #666b71; font-size: 13px; line-height: 1.55; }
.identity-repair-subject { font-family: Consolas, monospace; }
.identity-repair-section h3 { margin: 0 0 10px; color: #303338; font-size: 14px; }
.identity-repair-json { max-height: 220px; overflow: auto; margin: 0; border: 1px solid #eceeef; padding: 10px; color: #444950; background: #f8f8f9; font: 12px/1.55 Consolas, monospace; white-space: pre-wrap; }
.identity-repair-form { display: grid; gap: 9px; }
.identity-repair-reason, .identity-repair-input { box-sizing: border-box; width: 100%; border: 1px solid #cfd2d5; padding: 9px 10px; color: #202124; background: #fff; font: inherit; }
.identity-repair-reason { min-height: 88px; resize: vertical; }
.identity-repair-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.identity-repair-button { border: 1px solid #c91f27; min-height: 34px; padding: 0 13px; color: #fff; background: #c91f27; font-size: 13px; font-weight: 700; }
.identity-repair-button.secondary { color: #c91f27; background: #fff; }
.identity-repair-button:disabled { cursor: wait; opacity: .55; }
.identity-repair-risk { display: inline-block; border-radius: 12px; padding: 4px 9px; color: #6e4c13; background: #fff1cf; font-size: 12px; font-weight: 800; }
.identity-repair-risk.high, .identity-repair-risk.critical { color: #9a1d25; background: #fde9ea; }
.identity-repair-error { border-left: 3px solid #c91f27; padding: 10px 12px; color: #971d24; background: #fff1f2; }
.identity-repair-readonly, .identity-repair-pending { border-left: 3px solid #7b8288; padding: 11px 13px; color: #5d6268; background: #fff; }
.identity-repair-history-row { border-bottom: 1px solid #eceeef; padding: 7px 0; font-variant-numeric: tabular-nums; }
.identity-repair-status { color: #c91f27 !important; font-weight: 700; }
.management-news-item:last-child { border-bottom: 0; }
.management-news-item h4 { margin: 0; color: #2b2e32; font-size: 15px; line-height: 1.5; }
.management-news-item p { margin: 6px 0 0; color: #6f747a; font-size: 13px; line-height: 1.55; }
.management-news-meta { color: #8a8f95; font-size: 12px; }
.management-inline-actions { display: flex; align-items: flex-start; gap: 6px; }
.management-inline-actions button { min-height: 28px; border: 1px solid #d5d8db; padding: 0 8px; color: #535960; background: #fff; font: inherit; font-size: 12px; cursor: pointer; }
.management-inline-actions button.danger { color: #a91f27; border-color: #e8bdc0; }
.management-publication { display: grid; gap: 11px; padding: 16px 17px; }
.management-publication-list { display: grid; gap: 8px; padding: 0 17px 17px; }
.management-publication-item { display: flex; justify-content: space-between; gap: 12px; border: 1px solid #ebecee; padding: 10px; }
.management-publication-item span { color: #777c82; font-size: 12px; }
.management-config-form { display: grid; gap: 10px; padding: 0 17px 17px; }
.management-config-form textarea { min-height: 210px; width: 100%; border: 1px solid #cfd2d5; padding: 11px; color: #292c30; background: #fbfbfc; font: 12px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; resize: vertical; }
.management-config-form textarea[readonly] { color: #71767c; background: #f2f3f4; }
.management-config-form .management-button { justify-self: end; }
.task-center-toolbar { border-top: 3px solid #c91f27; }
.task-project-board { display: flex; gap: 14px; margin-top: 14px; padding-bottom: 10px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-color: #cfd2d5 transparent; }
.task-project-column { flex: 0 0 min(350px, 82vw); min-height: 380px; border: 1px solid #dedfe1; background: #f5f6f7; scroll-snap-align: start; }
.task-project-column > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; border-bottom: 1px solid #dedfe1; padding: 14px; background: #fff; }
.task-project-column h3 { margin: 0; color: #24272b; font-size: 15px; }
.task-project-column header span { display: block; margin-top: 4px; color: #7a7f85; font-size: 11px; }
.task-project-column header button { border: 0; padding: 4px 0; color: #c91f27; background: transparent; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.task-project-list { display: grid; gap: 9px; padding: 10px; }
.task-project-empty { margin: 0; padding: 28px 12px; color: #8a8f95; text-align: center; font-size: 12px; }
.task-center-card { display: grid; gap: 7px; width: 100%; border: 1px solid #e0e2e4; border-left: 3px solid #c91f27; padding: 12px; color: #25282c; background: #fff; text-align: left; cursor: pointer; box-shadow: 0 2px 8px rgb(27 31 35 / 4%); }
.task-center-card:hover, .task-center-card:focus-visible { border-color: #c91f27; outline: none; box-shadow: 0 5px 18px rgb(201 31 39 / 12%); transform: translateY(-1px); }
.task-center-card.overdue { border-left-color: #a61921; background: #fff8f8; }
.task-center-card strong { font-size: 14px; line-height: 1.45; }
.task-center-card small, .task-card-number { overflow: hidden; color: #797e84; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.task-card-number { color: #a61921; font-weight: 700; }
.task-center-card footer { display: flex; justify-content: space-between; border-top: 1px solid #f0f1f2; padding-top: 7px; color: #676c72; font-size: 11px; }
.task-center-drawer { position: fixed; z-index: 60; inset: 0; }
.task-center-drawer[hidden] { display: none; }
.task-drawer-backdrop { position: absolute; inset: 0; background: rgb(25 27 30 / 42%); backdrop-filter: blur(2px); }
.task-drawer-panel { position: absolute; top: 0; right: 0; width: min(640px, 100vw); height: 100%; overflow-y: auto; border-left: 1px solid #d7d9dc; padding: 22px; background: #f6f7f8; box-shadow: -18px 0 44px rgb(25 27 30 / 18%); }
.task-drawer-panel > header { position: sticky; z-index: 2; top: -22px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin: -22px -22px 14px; border-bottom: 1px solid #dedfe1; padding: 20px 22px 15px; background: #fff; }
.task-drawer-panel h3 { margin: 4px 0 0; color: #202124; font-size: 21px; }
.task-drawer-close { border: 0; padding: 7px 0; color: #686d73; background: transparent; font: inherit; cursor: pointer; }
.task-detail-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; border: 1px solid #dedfe1; padding: 16px; background: #fff; }
.task-detail-form label { display: grid; gap: 6px; color: #666b71; font-size: 12px; font-weight: 700; }
.task-detail-form .wide { grid-column: 1 / -1; }
.task-detail-form input, .task-detail-form select, .task-detail-form textarea, .task-comment-form textarea, .task-comment-form select, .task-related-form select { box-sizing: border-box; width: 100%; min-width: 0; border: 1px solid #cfd2d5; padding: 9px 10px; color: #292c30; background: #fff; font: inherit; font-size: 13px; }
.task-detail-form textarea { min-height: 80px; resize: vertical; }
.task-detail-form .form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.task-save-message { flex: 1; color: #7a5a13; font-size: 12px; }
.task-detail-section { margin-top: 12px; border: 1px solid #dedfe1; padding: 16px; background: #fff; }
.task-detail-section > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.task-detail-section h4 { margin: 0; font-size: 15px; }
.task-detail-section header span { color: #7a7f85; font-size: 12px; }
.task-detail-hint { margin: 10px 0 0; color: #7a7f85; font-size: 12px; line-height: 1.6; }
.task-attachment-list { display: flex; flex-wrap: wrap; gap: 7px; }
.task-attachment-list span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid #e1e2e4; background: #f7f7f8; color: #42474d; padding: 5px 8px; font-size: 12px; }
.task-related-list { display: flex; flex-wrap: wrap; gap: 7px; }
.task-related-list button { border: 1px solid #e0c6c8; padding: 6px 9px; color: #a61921; background: #fff7f7; font: inherit; font-size: 12px; cursor: pointer; }
.task-related-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 10px; }
.task-entry-list { display: grid; gap: 8px; }
.task-entry-list article { border-left: 3px solid #d9dcdf; padding: 9px 11px; background: #f8f8f9; }
.task-entry-list strong { font-size: 12px; }
.task-entry-list p { margin: 5px 0; color: #454a50; font-size: 13px; line-height: 1.6; white-space: pre-wrap; }
.task-entry-list small { color: #858a90; font-size: 11px; }
.task-comment-form { display: grid; grid-template-columns: minmax(0, 1fr) 180px auto; gap: 8px; align-items: end; margin-top: 12px; }
.task-comment-form textarea { min-height: 68px; resize: vertical; }
.task-comment-form label { display: grid; gap: 5px; color: #6d7278; font-size: 11px; }
.task-comment-form select { height: 68px; }

@media (max-width: 1080px) {
  .app-shell { grid-template-columns: 190px minmax(0, 1fr); }
  .dashboard-grid, .lower-grid { grid-template-columns: 1fr; }
  .sidebar { padding-inline: 8px; }
  .nav-item { padding-inline: 10px; }
  .portal-toolbar, .academy-hero { display: grid; }
  .portal-toolbar-actions { justify-content: flex-start; }
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .knowledge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .knowledge-reader-layout { grid-template-columns: minmax(0, 1fr) 270px; }
  .knowledge-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recruitment-workspace { grid-template-columns: minmax(260px, .65fr) minmax(420px, 1.35fr); }
  .stores-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stores-workspace { grid-template-columns: minmax(470px, 1fr) minmax(390px, .92fr); }
}

@media (max-width: 700px) {
  .management-toolbar { display: grid; padding: 16px; }
  .management-actions { width: 100%; }
  .management-actions .management-button { flex: 1; }
  .management-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .management-kpi { padding: 13px; }
  .management-kpi strong { font-size: 22px; }
  .task-project-column { flex-basis: 86vw; }
  .task-drawer-panel { padding: 14px; }
  .task-drawer-panel > header { top: -14px; margin: -14px -14px 12px; padding: 15px 14px 12px; }
  .task-detail-form { grid-template-columns: 1fr; padding: 13px; }
  .task-detail-form .wide { grid-column: auto; }
  .task-comment-form { grid-template-columns: 1fr; }
  .task-comment-form select { height: auto; min-height: 72px; }
  .identity-repair-drawer { width: 100vw; }
  .identity-repair-content { padding: 14px; }
  .identity-repair-header { top: -14px; margin: -14px -14px 14px; padding: 15px 14px 12px; }
  .identity-repair-button { width: 100%; }
  .app-shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; min-height: 0; padding: 14px 14px 0; overflow: visible; }
  .brand { padding: 0 0 13px; }
  .main-nav { display: flex; gap: 0; margin: 0 -14px; overflow-x: auto; border-top: 1px solid #454142; scrollbar-width: none; }
  .main-nav::-webkit-scrollbar { display: none; }
  .nav-item { flex: 0 0 auto; min-height: 43px; border-left: 0; border-bottom: 3px solid transparent; padding: 0 12px; font-size: 13px; }
  .nav-item.active { border-left: 0; border-bottom-color: #df3038; }
  .sidebar-footer { display: none; }
  .workspace { padding: 18px 14px 28px; }
  .topbar { align-items: flex-start; gap: 14px; }
  h1 { font-size: 21px; }
  .topbar-actions { flex-direction: column; align-items: flex-end; gap: 7px; }
  .data-source { max-width: 132px; }
  .filter-bar { flex-wrap: wrap; align-items: stretch; gap: 8px; }
  .range-control { width: 100%; }
  .range-button { flex: 1; min-width: 0; }
  .city-field { width: 100%; min-width: 0; flex: 1 0 100%; justify-content: space-between; }
  .city-field select { min-width: 0; flex: 1; text-align: right; }
  .refresh-button { width: 100%; margin-left: 0; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .kpi-card { min-height: 102px; padding: 13px; }
  .metric-value { margin-top: 14px; font-size: 22px; }
  .trend-chart { min-height: 224px; padding-inline: 8px; }
  .chart-svg { height: 196px; }
  .legacy-module { height: calc(100vh - 180px); min-height: 500px; }
  .portal-toolbar-actions, .academy-controls { display: grid; grid-template-columns: 1fr; width: 100%; }
  .portal-search input, .portal-select select, .secondary-action { width: 100%; }
  .portal-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-kpi { border-bottom: 1px solid #ebecee; }
  .recruitment-workspace { grid-template-columns: 1fr; }
  .lead-list-panel { border-right: 0; border-bottom: 1px solid #dedfe1; }
  .lead-list { max-height: 320px; overflow-y: auto; }
  .lead-detail-panel { padding: 18px 14px; }
  .lead-context { grid-template-columns: 82px minmax(0, 1fr); gap: 5px 0; }
  .lead-edit-form { grid-template-columns: 1fr; }
  .portal-field-wide, .lead-save-row { grid-column: auto; }
  .store-range-control { width: 100%; }
  .store-range-control button { flex: 1; }
  .stores-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stores-workspace { grid-template-columns: 1fr; }
  .stores-list-panel { border-right: 0; border-bottom: 1px solid #dedfe1; }
  .stores-table { max-height: 380px; overflow-y: auto; }
  .stores-table-head, .store-row { grid-template-columns: minmax(180px, 1fr) 62px 78px; }
  .stores-table-head span:last-child, .store-row > .status-badge { display: none; }
  .store-detail-panel { padding: 18px 14px; }
  .store-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-profile-form { grid-template-columns: 1fr; }
  .academy-stats { width: 100%; }
  .academy-stats div { min-width: 0; flex: 1; }
  .course-grid { grid-template-columns: 1fr; }
  .course-reader { padding: 22px 18px 28px; }
  .academy-tabs { gap: 20px; }
  .academy-workbench, .knowledge-grid { grid-template-columns: 1fr; }
  .academy-workbench-panel.wide, .academy-workbench-intro { grid-column: auto; }
  .knowledge-strip { grid-template-columns: 1fr; }
  .academy-path { grid-template-columns: 1fr; }
  .academy-path > header { border-right: 0; border-bottom: 1px solid #ebecee; }
  .academy-path-steps { grid-template-columns: 1fr; }
  .knowledge-reader-header { padding: 24px 18px 20px; }
  .knowledge-reader-header h2 { font-size: 23px; }
  .knowledge-reader-layout { grid-template-columns: 1fr; }
  .knowledge-body { padding: 24px 18px 36px; }
  .knowledge-context { border-top: 1px solid #ebecee; border-left: 0; }
  .academy-graph, .academy-graph svg { min-height: 520px; }
  .system-toolbar { display: grid; gap: 12px; }
  .system-actions { display: grid; width: 100%; }
  .staff-add-toggle { width: 100%; }
  .role-preview { min-width: 0; width: 100%; }
  .staff-access-columns { grid-template-columns: 1fr; }
  .staff-current { border-right: 0; border-bottom: 1px solid #ebecee; }
  .staff-pending { grid-template-columns: 1fr; gap: 11px; }
  .staff-add-form, .staff-application-row, .staff-application-controls { grid-template-columns: 1fr; }
  .staff-add-permissions, .staff-add-submit, .staff-review-actions { grid-column: auto; }
  .staff-save { width: 100%; }
  .management-toolbar { display: grid; padding: 17px; }
  .control-center { padding: 17px; }
  .control-center-heading { display: grid; }
  .control-center-grid { grid-template-columns: 1fr; }
  .management-actions { flex-wrap: wrap; }
  .management-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .management-grid { grid-template-columns: 1fr; }
  .management-task, .management-row { grid-template-columns: minmax(0, 1fr) auto; }
  .management-task .management-metric, .management-row .management-metric { display: none; }
  .management-form { grid-template-columns: 1fr; }
  .management-form textarea, .management-form .wide, .management-form .form-actions { grid-column: auto; }
  .management-news-item { grid-template-columns: 1fr; }
  .management-config-form .management-button { width: 100%; }
}
