:root {
  color-scheme: dark;
  --bg: #070e20;
  --panel: #0c1730;
  --edge: #223f69;
  --ink: #e1edff;
  --muted: #8198ba;
  --blue: #4288ff;
  --cyan: #60d5ff;
  --lime: #b0e5a6;
  --purple: #a39aff;
  --red: #ff7599;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font:
    14px/1.6 -apple-system,
    BlinkMacSystemFont,
    "PingFang SC",
    "Microsoft YaHei",
    sans-serif;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  outline-offset: 4px;
}
button {
  cursor: pointer;
  border: 1px solid var(--edge);
  background: #12213d;
  color: var(--ink);
  padding: 8px 15px;
  border-radius: 5px;
}
button:hover {
  background: #193359;
  border-color: #527cbb;
}
button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
a {
  color: var(--cyan);
  text-decoration: none;
}
input,
textarea,
select {
  border: 1px solid var(--edge);
  border-radius: 5px;
  background: #081329;
  color: var(--ink);
  padding: 9px 12px;
}
input::placeholder {
  color: #6c83a6;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h2 {
  font-size: 16px;
  font-weight: 600;
}
h3 {
  font-size: 14px;
}
small,
.muted {
  color: var(--muted);
}
.shell {
  min-height: 100vh;
  background: radial-gradient(ellipse at 50% -20%, #152b50 0, transparent 65%);
}
.topbar {
  height: 90px;
  margin: 0 28px;
  border-bottom: 1px solid #2d4f77;
  display: grid;
  grid-template-columns: 1fr 1.3fr 1fr;
  align-items: center;
  gap: 20px;
  position: relative;
}
.brand {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 18px;
  font-weight: 600;
}
.mark {
  width: 37px;
  height: 37px;
  display: flex;
  align-items: end;
  gap: 4px;
  padding: 7px;
  border: 1px solid #3762a2;
  transform: skewY(-8deg);
}
.mark i {
  width: 5px;
  background: var(--cyan);
}
.mark i:nth-child(1) {
  height: 11px;
}
.mark i:nth-child(2) {
  height: 22px;
}
.mark i:nth-child(3) {
  height: 16px;
}
.masthead {
  text-align: center;
  font-size: 28px;
  letter-spacing: 7px;
  color: #c3e7d0;
  font-weight: 600;
  position: relative;
}
.masthead:before,
.masthead:after {
  content: "";
  position: absolute;
  width: 35px;
  height: 5px;
  top: 24px;
  background: var(--blue);
  box-shadow: 11px -7px #244c8b;
}
.masthead:before {
  left: 0;
  transform: skewX(35deg);
}
.masthead:after {
  right: 0;
  transform: skewX(-35deg);
}
.clock {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: #9bbbea;
}
.clock small {
  display: block;
}
.nav {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 13px 28px;
  border-bottom: 1px solid #152844;
}
.nav button {
  background: none;
  border: 0;
  color: #8aa3c6;
  padding: 8px 20px;
}
.nav button.active {
  color: var(--cyan);
  background: #143158;
  box-shadow: inset 0 -2px var(--cyan);
}
.nav .spacer {
  flex: 1;
}
.nav .utility {
  padding: 6px 10px;
  font-size: 12px;
}
.workspace {
  padding: 22px 28px 28px;
  max-width: 2000px;
  margin: auto;
}
.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 18px;
}
.titleline {
  display: flex;
  align-items: center;
  gap: 13px;
}
.titleline h1 {
  font-size: 20px;
  letter-spacing: 1px;
}
.breadcrumb {
  font-size: 12px;
  color: #7192b8;
}
.segments {
  display: flex;
  align-items: center;
  background: #080f20;
  border: 1px solid #223b60;
  border-radius: 5px;
  padding: 3px;
  gap: 3px;
}
.segments button {
  border: 0;
  background: transparent;
  color: #8ea6ca;
  font-size: 12px;
  padding: 6px 16px;
}
.segments button.selected {
  background: #244d87;
  color: #e2f3ff;
}
.filters {
  display: flex;
  align-items: center;
  gap: 10px;
}
.kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  margin-bottom: 18px;
}
.kpi {
  min-height: 134px;
  padding: 19px 22px;
  position: relative;
  background: linear-gradient(115deg, #14284b, #0b1730 70%);
  border: 1px solid #315589;
  border-radius: 6px;
  overflow: hidden;
}
.kpi:after {
  content: "";
  position: absolute;
  width: 90px;
  height: 30px;
  bottom: 0;
  right: 15px;
  opacity: 0.2;
  background: repeating-linear-gradient(
    90deg,
    #54afff 0,
    #54afff 3px,
    transparent 3px,
    transparent 8px
  );
  clip-path: polygon(
    0 100%,
    0 60%,
    15% 70%,
    25% 20%,
    40% 65%,
    50% 45%,
    60% 80%,
    75% 0,
    85% 30%,
    100% 10%,
    100% 100%
  );
}
.kpi:nth-child(2) {
  border-color: #426257;
}
.kpi:nth-child(3) {
  border-color: #534c8c;
}
.kpi-label {
  color: #8fb6e0;
  font-size: 13px;
}
.kpi-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.kpi-mom { white-space: nowrap; font-size: 11px; font-weight: 600; }
.kpi-mom.up { color: #c94c56; }
.kpi-mom.down { color: #16876e; }
.kpi-mom.flat { color: #7d8983; }
.kpi-value {
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 1px;
  color: var(--cyan);
  line-height: 1.6;
  font-variant-numeric: tabular-nums;
}
.kpi-value em {
  font-size: 12px;
  font-style: normal;
  margin-left: 8px;
  color: #7c97bb;
}
.kpi small {
  font-size: 11px;
}
.kpi-inspect { margin-left: 8px; padding: 4px 8px; font-size: 11px; border-color: rgba(15,118,110,.25); color: #0f766e; background: #fff; }
.catalog-filters { display: grid; grid-template-columns: minmax(260px,2fr) 160px 220px auto; gap: 12px; align-items: end; padding: 16px; }
.catalog-filters label { margin: 0; }
.catalog-filters label span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 12px; }
.catalog-table { max-height: 68vh; }
.catalog-table table { min-width: 1180px; }
.catalog-table thead { position: sticky; top: 0; z-index: 1; }
.field-description { min-width: 320px; max-width: 480px; }
.field-description strong { display: block; color: var(--text); font-weight: 600; line-height: 1.55; }
.field-description small { display: block; margin-top: 5px; color: var(--muted); line-height: 1.45; }
.catalog-pagination { display: flex; justify-content: center; align-items: center; gap: 12px; padding: 14px; }
.metric-trace-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 14px 0 20px; }
.metric-trace-grid > div { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f8faf9; }
.metric-trace-grid span,.metric-trace-grid strong { display: block; }
.metric-trace-grid span { font-size: 12px; color: var(--muted); margin-bottom: 5px; }
.trace-rules { margin-bottom: 20px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #f8faf9; }
.trace-rules p { margin: 0 0 10px; color: var(--muted); font-size: 13px; }
.trace-rules ol { margin: 0; padding-left: 24px; }
.trace-rules li { padding: 7px 0; color: var(--muted); }
.trace-rules li strong { color: var(--text); font-weight: 600; }
.trace-rules li span { margin: 0 8px; }
.trace-rules li em { padding: 3px 8px; border-radius: 7px; background: rgba(15,118,110,.09); color: #0f766e; font-style: normal; font-weight: 600; }
.notice.warning { border-color: #f2c66d; background: #fff8e8; color: #8a5300; }
@media (max-width: 900px) { .catalog-filters,.metric-trace-grid { grid-template-columns: 1fr; } }
.organization-stats { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 12px; margin-bottom: 14px; }
.organization-stats .panel { padding: 16px; }
.organization-stats span { color: var(--muted); font-size: 12px; }
.organization-stats strong { display: block; margin-top: 8px; font-size: 24px; }
.organization-stats small { margin-left: 5px; font-size: 12px; color: var(--muted); }
.organization-stats em { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; font-style: normal; }
.kpi-breakdown { display: flex; flex-wrap: wrap; gap: 6px 14px; min-height: 22px; margin: -2px 0 7px; color: var(--muted); font-size: 11px; }
.kpi-breakdown span { white-space: nowrap; }
.kpi-breakdown b { margin-left: 3px; color: var(--text); font-size: 12px; }
.signing-kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.mcp-section + .mcp-section { margin-top: 28px; }
.mcp-section .section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin: 0 2px 14px; }
.mcp-section .section-heading span { color: var(--accent); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.mcp-section .section-heading h2 { margin: 4px 0 0; font-size: 21px; }
.mcp-section .section-heading p { max-width: 580px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.mcp-output-card dl { display: grid; gap: 8px; margin: 14px 0 0; }
.mcp-output-card dl div { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 10px; align-items: baseline; }
.mcp-output-card dt { color: var(--muted); font-size: 12px; }
.mcp-output-card dd { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; }
.mcp-output-card code { font-size: 11px; }
@media (max-width: 760px) { .mcp-section .section-heading { display: block; } .mcp-section .section-heading p { margin-top: 8px; } }
.okr-mcp-list { display: grid; gap: 10px; }
.okr-mcp-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; }
.okr-mcp-main { min-width: 0; }
.okr-mcp-main > span { color: var(--accent); font-size: 12px; font-weight: 700; }
.okr-mcp-main h3 { margin: 5px 0 7px; font-size: 16px; }
.okr-mcp-main p { margin: 0 0 5px; color: var(--text); }
.okr-mcp-main small { color: var(--muted); }
.token-once { display: grid; gap: 16px; }
.token-once > span { color: var(--accent); font-weight: 700; }
.token-once p { margin: 0; color: var(--muted); line-height: 1.7; }
.token-once label { display: grid; gap: 7px; }
.token-once textarea { min-height: 90px; resize: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
@media (max-width: 760px) { .okr-mcp-card { align-items: stretch; flex-direction: column; } }
.department-bars { max-height: 360px; overflow: auto; padding: 8px 18px 18px; }
.department-bar { display: grid; grid-template-columns: 28px minmax(110px,180px) minmax(120px,1fr) 52px; align-items: center; gap: 12px; min-height: 42px; border-bottom: 1px solid var(--line); }
.department-bar:last-child { border-bottom: 0; }
.department-bar .bar-rank { color: var(--muted); font-size: 12px; text-align: center; }
.department-bar strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.department-bar > b { color: #0f766e; font-size: 14px; text-align: right; }

.okr-owner-editor { display:flex; flex-direction:column; gap:5px; min-width:190px; }
.okr-owner-editor input { width:100%; min-width:260px; background:var(--panel); }
.okr-owner-editor small,.okr-link-hint { color:var(--muted); font-size:11px; }
.okr-progress-column { min-width:340px; max-width:420px; }
.okr-progress-list { display:grid; gap:8px; padding:3px 0; }
.okr-progress-list article { display:grid; gap:4px; padding:9px 10px; background:rgba(7,28,49,.56); border-left:2px solid #2e9a91; }
.okr-progress-list article>div:first-child { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.okr-progress-list strong { font-size:12px; color:var(--ink); }
.okr-progress-list span { color:#78d8cf; font-size:12px; white-space:nowrap; }
.okr-progress-list p { max-width:360px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#a9bbcc; font-size:11px; }
.okr-progress-track { height:4px; overflow:hidden; background:#132c46; }
.okr-progress-track i { display:block; height:100%; background:linear-gradient(90deg,#26877f,#55e4d4); }
.okr-progress-list small { font-size:10px; color:var(--muted); }
.publication-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.publication-card { padding:18px; }
.publication-card>header { display:flex; align-items:start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.publication-card>header span { color:var(--muted); font-size:12px; }
.publication-card>header h2 { margin-top:3px; font-size:20px; }
.publication-card>p { margin:12px 0; color:var(--muted); }
.publication-card>label { display:grid; gap:6px; }
.publication-card>label span { font-size:12px; color:var(--muted); }
.publication-preview { aspect-ratio:3.777/1; background:#030a11; border:1px solid var(--edge); overflow:hidden; }
.publication-preview.hall { aspect-ratio:3.714/1; }
.publication-preview iframe { width:100%; height:100%; border:0; }
.button-link { display:inline-flex; padding:8px 14px; border:1px solid var(--edge); border-radius:5px; }
@media (max-width:1100px) { .publication-grid { grid-template-columns:1fr; } }
.bar-track { height: 10px; overflow: hidden; border-radius: 999px; background: #e8eeeb; }
.bar-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#0f766e,#2db69e); }
@media (max-width: 900px) {
  .signing-kpis { grid-template-columns: 1fr 1fr; }
  .department-bar { grid-template-columns: 24px minmax(90px,130px) 1fr 42px; gap: 8px; }
}
@media (max-width: 560px) { .signing-kpis { grid-template-columns: 1fr; } }
.organization-browser { display: grid; grid-template-columns: 320px minmax(0,1fr); overflow: hidden; padding: 0; }
.organization-browser aside { max-height: 72vh; overflow: auto; border-right: 1px solid var(--line); padding: 16px 10px; }
.org-tree-heading { display: flex; align-items: baseline; justify-content: space-between; padding: 0 8px 10px; }
.organization-browser aside h2 { padding: 0; }
.org-tree-heading small { color: var(--muted); }
.org-tree { margin-top: 4px; }
.org-tree-children { margin-left: 15px; padding-left: 7px; border-left: 1px solid var(--line); }
.org-tree-children[hidden] { display: none; }
.org-dept { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px 9px 8px; border: 0; border-radius: 9px; background: transparent; text-align: left; }
.org-dept-row { margin-bottom: 3px; }
.org-dept-controls { display: flex; align-items: center; min-width: 0; }
.org-dept-controls .org-dept { flex: 1; width: auto; min-width: 0; }
.org-tree-toggle { display: grid; place-items: center; width: 24px; height: 34px; flex: 0 0 24px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font-size: 13px; }
.org-tree-toggle:not(.org-tree-leaf):hover { background: rgba(33,193,159,.1); color: var(--cyan); }
.org-tree-toggle:focus-visible { outline: 2px solid var(--cyan); outline-offset: -2px; }
.org-tree-leaf { font-size: 10px; }
.org-module-select { width: calc(100% - 24px); margin: 2px 10px 5px 14px; padding: 5px 7px; border-radius: 7px; font-size: 10px; color: var(--muted); background: #f8faf8; }
.org-module-readonly { display: block; margin: -3px 10px 6px 29px; color: var(--muted); font-size: 9px; }
.org-dept.active { background: rgba(33,193,159,.12); color: var(--cyan); }
.org-dept-name { display: flex; align-items: center; gap: 6px; min-width: 0; }
.org-dept-name i { width: 14px; flex: 0 0 14px; color: var(--muted); font-style: normal; text-align: center; }
.org-dept-name span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.org-dept-name em { flex: 0 0 auto; padding: 1px 5px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-size: 9px; font-style: normal; }
.org-all { margin-bottom: 4px; border-bottom: 1px solid var(--line); border-radius: 0; }
.org-dept b { color: var(--muted); font-size: 11px; }
.organization-people { min-width: 0; padding: 16px; }
.organization-search { display: flex; gap: 8px; margin-bottom: 14px; }
.organization-search input { flex: 1; }
.role-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.role-chips span { padding: 3px 7px; border: 1px solid var(--line); border-radius: 99px; font-size: 11px; }
@media (max-width: 900px) { .organization-stats { grid-template-columns: 1fr 1fr; } .organization-browser { grid-template-columns: 1fr; } .organization-browser aside { max-height: 260px; border-right: 0; border-bottom: 1px solid var(--line); } }
.status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #b1c4de;
  font-size: 11px;
  white-space: nowrap;
}
.status:before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #d6ab69;
}
.status.good:before {
  background: #87d8b3;
}
.status.bad:before {
  background: #ee8c90;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.72fr;
  gap: 16px;
}
.panel {
  background: linear-gradient(135deg, #0d1b37, #0a142a);
  border: 1px solid var(--edge);
  border-radius: 6px;
  min-width: 0;
  overflow: hidden;
  position: relative;
}
.panel-head {
  padding: 14px 18px;
  border-bottom: 1px solid #1b3152;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.panel-head h2 {
  padding-left: 11px;
  border-left: 3px solid var(--blue);
  color: #bdd9ff;
}
.panel-body {
  padding: 17px 18px;
}
.main-trend {
  grid-column: span 2;
  min-height: 320px;
}
.trend-layout {
  display: grid;
  grid-template-columns: 165px 1fr;
  min-height: 272px;
}
.trend-switches {
  border-right: 1px solid #1c3150;
  padding: 15px 0;
  display: flex;
  flex-direction: column;
}
.trend-switches button {
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 17px 18px;
  color: #839bc0;
  font-size: 12px;
}
.trend-switches button.active {
  background: linear-gradient(90deg, #214b89, #132747);
  color: var(--cyan);
  border-left: 3px solid var(--blue);
}
.trend-switches b {
  display: block;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 3px;
}
.chart {
  position: relative;
  min-height: 220px;
  padding: 18px 22px 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.chart-grid {
  position: absolute;
  inset: 45px 22px 37px;
  background: repeating-linear-gradient(
    0deg,
    transparent 0,
    transparent 41px,
    #1b31504d 42px,
    #1b31504d 43px
  );
  border-bottom: 1px solid #2b4160;
  border-left: 1px solid #2b4160;
}
.chart-empty {
  text-align: center;
  z-index: 1;
  color: #829bbb;
  font-size: 12px;
}
.chart-empty strong {
  display: block;
  color: #bbd2ef;
  font-weight: 500;
  font-size: 14px;
  margin-bottom: 7px;
}
.chart-labels {
  position: absolute;
  bottom: 10px;
  left: 25px;
  right: 20px;
  display: flex;
  justify-content: space-between;
  color: #577498;
  font-size: 10px;
}
.legend {
  display: flex;
  gap: 20px;
  color: #8fa7ca;
  font-size: 11px;
  align-items: center;
}
.legend span:before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  background: var(--cyan);
  margin-right: 5px;
  border-radius: 50%;
}
.legend span:nth-child(2):before {
  background: var(--purple);
}
.summary-list {
  padding: 10px 19px;
}
.summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 17px 0;
  border-bottom: 1px solid #1c3050;
  color: #93b0d5;
}
.summary-row:last-child {
  border: 0;
}
.summary-row strong {
  font-size: 23px;
  color: #b0e5da;
  font-weight: 500;
}
.summary-row small {
  font-size: 11px;
  margin-left: 5px;
}
.bottom-panel {
  min-height: 268px;
}
.platforms {
  display: flex;
  gap: 12px;
  padding: 18px;
}
.platform {
  flex: 1;
  border: 1px solid #263c63;
  padding: 15px;
  text-align: center;
  border-radius: 5px;
}
.platform-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  border-radius: 8px;
  background: #bd315c;
  font-size: 10px;
  margin-right: 7px;
  color: #fff;
}
.platform-logo.dy {
  background: #171b2b;
  color: #59eef1;
  font-size: 22px;
}
.platform strong {
  display: block;
  font-size: 30px;
  color: var(--cyan);
  margin-top: 18px;
}
.platform small {
  font-size: 11px;
}
.platform-comparison { min-height: 400px; }
.pie-grid { display: grid; gap: 12px; padding: 16px; }
.pie-card { padding: 13px; border: 1px solid #e7ebe8; border-radius: 14px; background: #fafbfa; }
.pie-card h3 { margin: 0 0 12px; color: #44514b; font-size: 12px; }
.pie-card p { margin: 10px 0 0; color: #909a95; font-size: 10px; line-height: 1.45; }
.pie-wrap { display: flex; align-items: center; gap: 16px; }
.pie { width: 104px; height: 104px; flex: 0 0 104px; border-radius: 50%; background: conic-gradient(#e84b5f 0 var(--xhs), #17201d var(--xhs) 100%); position: relative; display: grid; place-content: center; text-align: center; }
.pie:after { content: ""; position: absolute; inset: 18px; border-radius: 50%; background: #fafbfa; }
.pie strong,.pie small { position: relative; z-index: 1; display: block; }
.pie strong { color: #1f2a25; font-size: 15px; }
.pie small { color: #8b9691; font-size: 9px; }
.pie-legend { min-width: 0; flex: 1; display: grid; gap: 10px; }
.pie-legend span { display: flex; justify-content: space-between; gap: 8px; color: #68746e; font-size: 11px; }
.pie-legend span:before { content: ""; width: 7px; height: 7px; margin-top: 3px; border-radius: 50%; background: #e84b5f; }
.pie-legend span.dy:before { background: #17201d; }
.pie-legend b { margin-left: auto; color: #29352f; font-family: ui-monospace, monospace; }
.pie-empty { width: 104px; height: 104px; margin: 4px auto; border: 18px solid #e8ece9; border-radius: 50%; display: grid; place-items: center; color: #a2aaa6; }
.business-definition { border-left: 3px solid #d7e5df; }
.mapping-state { padding: 4px 8px; border-radius: 999px; background: #fff4df; color: #986018; font-size: 10px; white-space: nowrap; }
.mapping-state.confirmed { background: #e6f4ee; color: #14725d; }
.op-field-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 11px 0 3px; }
.op-field-chips span { padding: 4px 8px; border-radius: 7px; background: #f1f5f2; color: #53615a; font-size: 10px; }
.source-list {
  padding: 2px 18px;
}
.source-item {
  padding: 12px 0;
  border-bottom: 1px solid #1c3050;
  display: flex;
  gap: 12px;
  align-items: center;
}
.source-item:last-child {
  border: 0;
}
.source-dot {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  background: #163866;
  display: grid;
  place-items: center;
  border-radius: 6px;
  color: #79b7ff;
  font-size: 12px;
}
.source-item strong {
  font-weight: 500;
  font-size: 12px;
  display: block;
}
.source-item small {
  font-size: 10px;
}
.source-item .status {
  margin-left: auto;
}
.empty-inline {
  padding: 35px 22px;
  text-align: center;
  color: var(--muted);
  font-size: 12px;
}
.empty-inline .empty-glyph {
  font-size: 30px;
  color: #386aa3;
  display: block;
  margin-bottom: 10px;
}
.caption {
  font-size: 11px;
  color: #647f9f;
  margin-top: 17px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.subnav {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.subnav button {
  color: #829cc2;
  background: #0d1c35;
  border: 1px solid #21395d;
}
.subnav button.active {
  color: var(--cyan);
  border-color: #4777b4;
  background: #173359;
}
.okr-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 18px;
}
.okr-summary .kpi {
  min-height: 115px;
}
.okr-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 295px;
  gap: 17px;
}
.table-wrap {
  overflow: auto;
  max-height: 60vh;
}
table {
  border-collapse: collapse;
  width: 100%;
  font-size: 12px;
  text-align: left;
}
th {
  background: #142646;
  color: #9bbbdf;
  font-weight: 500;
  position: sticky;
  top: 0;
  z-index: 1;
  white-space: nowrap;
}
th,
td {
  padding: 13px 16px;
  border-bottom: 1px solid #1c3050;
  vertical-align: top;
}
td {
  color: #a6bddb;
  min-width: 140px;
  max-width: 340px;
}
td .cell {
  max-height: 70px;
  overflow: hidden;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
td:first-child {
  color: #d0e2fb;
  min-width: 210px;
}
tbody tr:hover {
  background: #152744;
}
tbody tr {
  cursor: pointer;
}
.table-tools {
  display: flex;
  gap: 10px;
  align-items: center;
}
.table-tools input {
  max-width: 260px;
}
.table-meta {
  padding: 10px 17px;
  color: #7893b5;
  font-size: 11px;
}
.notice {
  border: 1px solid #3f4b62;
  background: #192333;
  padding: 12px 16px;
  border-radius: 5px;
  font-size: 12px;
  color: #a8bdd7;
  margin-bottom: 17px;
}
.progress-track {
  height: 6px;
  background: #1b3051;
  margin: 12px 0;
  border-radius: 4px;
}
.indicator {
  padding: 13px 0;
  border-bottom: 1px solid #213659;
  font-size: 12px;
}
.indicator p {
  color: #b9cfea;
  margin-bottom: 6px;
}
.config-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.config-card {
  padding: 20px;
  min-height: 194px;
}
.config-card h2 {
  margin: 10px 0;
}
.config-card p {
  font-size: 12px;
  color: #829cbd;
  margin: 10px 0;
  min-height: 38px;
}
.config-card .actions {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 15px;
}
.config-card button {
  padding: 5px 10px;
  font-size: 12px;
}
.tag {
  display: inline-block;
  padding: 2px 7px;
  border: 1px solid #2d4d79;
  color: #a0bde2;
  border-radius: 4px;
  font-size: 10px;
  margin-right: 6px;
}
.badge {
  font-size: 10px;
  color: #94dfbf;
  background: #123a36;
  border: 1px solid #275747;
  border-radius: 4px;
  padding: 2px 8px;
}
.toolbar-actions {
  display: flex;
  gap: 8px;
}
.primary {
  background: #266ac0;
  border-color: #347dcd;
  color: white;
}
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: #020713bf;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
}
.modal {
  background: #0e1c34;
  border: 1px solid #3a6093;
  border-radius: 9px;
  width: min(750px, 100%);
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 30px 120px #0009;
}
.modal.large {
  width: min(1100px, 100%);
}
.modal-head {
  padding: 18px 23px;
  border-bottom: 1px solid #263c5f;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  background: #0e1c34;
  z-index: 1;
}
.modal-body {
  padding: 22px;
}
.modal label {
  display: block;
  color: #9bb7d7;
  font-size: 12px;
  margin: 12px 0 6px;
}
.modal input,
.modal textarea,
.modal select {
  width: 100%;
}
.modal textarea {
  min-height: 80px;
}
.modal-foot {
  padding: 15px 23px;
  border-top: 1px solid #263c5f;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.detail-field {
  display: grid;
  grid-template-columns: 155px 1fr;
  border-bottom: 1px solid #203450;
  padding: 12px 0;
  gap: 15px;
  font-size: 12px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.detail-field span {
  color: #7f9bbc;
}
.checklist {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.checklist label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.checklist input {
  width: auto;
}
#toast {
  position: fixed;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 24px;
  background: #23486d;
  border: 1px solid #618ab7;
  border-radius: 6px;
  z-index: 30;
  display: none;
}
.login {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: radial-gradient(circle, #163252, #070e20 60%);
}
.login .panel {
  width: min(410px, 90vw);
  padding: 35px;
}
.login h1 {
  font-size: 25px;
  margin-bottom: 10px;
}
.login input {
  width: 100%;
  margin: 25px 0 15px;
}
.login button {
  width: 100%;
}
.loading {
  padding: 80px;
  text-align: center;
  color: #789ac4;
}
.full-empty {
  padding: 80px 20px;
  text-align: center;
}
.full-empty h2 {
  font-size: 21px;
  margin-bottom: 12px;
}
.error {
  color: #ffadad;
}
.health-line {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: #7994b8;
}
.screen-mode .nav {
  display: none;
}
.screen-mode .workspace {
  padding-top: 17px;
}
.screen-mode .topbar {
  height: 77px;
}
svg.plot {
  width: 100%;
  height: 200px;
}
.bonus-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 18px;
}
.bonus-card {
  padding: 15px;
}
.bonus-card strong {
  font-size: 23px;
  color: var(--cyan);
  display: block;
}
.bonus-card small {
  display: block;
}
.mapping-table td {
  min-width: 120px;
}
.mapping-table td:first-child {
  min-width: 180px;
}
.metric-module {
  margin: 18px 0 28px;
}
.metric-module-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 12px;
}
.metric-module-head span {
  color: var(--muted);
  font-size: 12px;
}
.metric-module-head h2 {
  margin: 4px 0 0;
  font-size: 20px;
}
.metric-submodule {
  margin: 12px 0 20px;
}
.metric-submodule > h3 {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
}
.metric-definition-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.metric-definition {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--panel);
  padding: 16px;
}
.metric-definition-main,
.metric-definition footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.metric-definition-main strong,
.metric-definition-main span {
  display: block;
}
.metric-definition-main span,
.metric-definition footer > span,
.metric-definition > small {
  color: var(--muted);
  font-size: 12px;
  margin-top: 5px;
}
.metric-definition p {
  min-height: 38px;
  margin: 14px 0;
  line-height: 1.6;
}
.metric-definition .actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.metric-definition button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.metric-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.metric-form-grid label,
#metric-form > label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.code-input {
  min-height: 140px !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
}
.field-coverage {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 16px;
}
.field-coverage article {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 13px;
}
.field-coverage span,
.field-coverage strong,
.field-coverage small {
  display: block;
}
.field-coverage span,
.field-coverage small {
  color: var(--muted);
  font-size: 12px;
}
.field-coverage strong {
  margin: 7px 0;
  font-size: 18px;
}
.muted a {
  color: #8ebde8;
}
@media (min-width: 1700px) {
  .kpi {
    min-height: 158px;
  }
  .main-trend {
    min-height: 385px;
  }
  .trend-layout {
    min-height: 325px;
  }
  .bottom-panel {
    min-height: 320px;
  }
  .platform {
    padding: 27px 15px;
  }
  .source-item {
    padding: 17px 0;
  }
  .summary-row {
    padding: 22px 0;
  }
  .kpi-value {
    font-size: 42px;
  }
}
@media (max-width: 1100px) {
  .metric-definition-list,
  .metric-form-grid,
  .field-coverage {
    grid-template-columns: 1fr;
  }
  .masthead {
    font-size: 21px;
    letter-spacing: 3px;
  }
  .masthead:before,
  .masthead:after {
    display: none;
  }
  .nav button {
    padding: 8px 11px;
  }
  .dashboard-grid {
    grid-template-columns: 1fr 1fr;
  }
  .dashboard-grid > .panel:nth-child(2) {
    grid-column: span 2;
  }
  .summary-list {
    display: flex;
    gap: 20px;
  }
  .summary-row {
    flex: 1;
    display: block;
    border: 0;
  }
  .summary-row strong {
    display: block;
  }
  .okr-layout {
    grid-template-columns: 1fr;
  }
  .config-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .dashboard-grid > .panel:last-child {
    grid-column: span 2;
  }
  .kpis {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 700px) {
  .topbar {
    height: 78px;
    margin: 0 15px;
    grid-template-columns: 1fr auto;
  }
  .brand {
    font-size: 14px;
  }
  .masthead {
    display: none;
  }
  .clock {
    font-size: 11px;
  }
  .nav {
    padding: 10px 12px;
    overflow: auto;
    white-space: nowrap;
  }
  .nav button {
    padding: 7px 10px;
    font-size: 12px;
  }
  .nav .spacer,
  .nav .utility {
    display: none;
  }
  .workspace {
    padding: 18px 13px;
  }
  .toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .filters {
    width: 100%;
    justify-content: space-between;
  }
  .segments button {
    padding: 5px 10px;
  }
  .titleline h1 {
    font-size: 18px;
  }
  .kpis,
  .okr-summary {
    gap: 10px;
    grid-template-columns: 1fr 1fr;
  }
  .kpi {
    padding: 13px;
    min-height: 120px;
  }
  .kpi-value {
    font-size: 29px;
  }
  .dashboard-grid {
    display: flex;
    flex-direction: column;
  }
  .trend-layout {
    grid-template-columns: 1fr;
  }
  .trend-switches {
    flex-direction: row;
    padding: 0;
    border-right: 0;
    overflow: auto;
  }
  .trend-switches button {
    padding: 12px;
    white-space: nowrap;
  }
  .trend-switches button b {
    font-size: 12px;
  }
  .summary-list {
    flex-wrap: wrap;
  }
  .summary-row {
    min-width: 40%;
    padding: 8px;
  }
  .config-grid {
    grid-template-columns: 1fr;
  }
  .toolbar-actions {
    flex-wrap: wrap;
  }
  .panel-head {
    padding: 13px;
  }
  .panel-head h2 {
    font-size: 14px;
  }
  .table-tools input {
    width: 135px;
  }
  .table-tools {
    gap: 5px;
  }
  .bonus-grid {
    grid-template-columns: 1fr 1fr;
  }
  .caption {
    flex-direction: column;
    gap: 4px;
  }
  .detail-field {
    grid-template-columns: 1fr;
    gap: 5px;
  }
  .modal-backdrop {
    padding: 12px;
  }
  .breadcrumb {
    display: none;
  }
  .table-wrap {
    max-height: 65vh;
  }
  .okr-summary .kpi {
    min-height: 100px;
  }
}

/* CRM reservation and human-resources workspace */
.crm-placeholder,.hr-placeholder { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:42px; text-align:center; }
.crm-placeholder>span,.hr-placeholder>span { display:grid; place-items:center; min-width:62px; height:34px; padding:0 14px; border-radius:999px; background:#e7f2ee; color:#187768; font-size:12px; font-weight:750; letter-spacing:.08em; }
.crm-placeholder h2,.hr-placeholder h2 { margin:18px 0 7px; color:#20312b; font-size:22px; }
.crm-placeholder p,.hr-placeholder p { color:#7b8984; }
.hr-subnav { margin-bottom:14px; }

/* Editable OKR tactics and campaign notes */
.section-intro .section-add-button { margin-left:auto; border-color:#c7dbd4; background:#fff; color:#167566; }
.okr-item-actions { display:flex; align-items:center; gap:5px; margin-top:7px; }
.okr-item-actions button { min-height:25px; padding:3px 8px; border-color:#d8e3df; border-radius:7px; background:#fff; color:#486059; font-size:10px; }
.okr-item-actions .danger-link { color:#a84851; }
.business-tactic-name .okr-item-actions { grid-column:2; }
.business-okr-card footer .okr-item-actions { margin-left:auto; }
.business-note-preview { max-height:190px; overflow:hidden; color:#5d7069; font-size:12px; line-height:1.75; }
.business-note-preview ul,.business-note-preview ol { padding-left:20px; }
.okr-note-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:18px; }
.okr-note-list>article { min-width:0; padding:20px; border:1px solid #dfe7e3; border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(35,58,49,.05); }
.okr-note-list article>header,.okr-note-list article>footer { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.okr-note-list header span { color:#178071; font-size:10px; font-weight:700; }
.okr-note-list h3 { margin:4px 0 0; color:#1f302a; font-size:16px; }
.okr-note-content { min-height:100px; margin:16px 0; color:#4f625b; line-height:1.8; }
.okr-note-content ul,.okr-note-content ol { padding-left:22px; }
.okr-note-list article>footer { justify-content:flex-start; flex-wrap:wrap; padding-top:12px; border-top:1px solid #edf1ef; color:#86938e; font-size:10px; }
.okr-note-list article>footer .okr-item-actions { margin-left:auto; }
.okr-editor-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.okr-editor-meta label { margin:0; }
.okr-editor-meta label>span,.okr-note-form>label>span { display:block; margin-bottom:6px; color:#60726b; font-size:11px; }
.note-paper { overflow:hidden; border:1px solid #dce5e1; border-radius:13px; background:#fff; box-shadow:0 9px 28px rgba(35,55,48,.06); }
.note-toolbar { display:flex; align-items:center; gap:2px; min-height:48px; padding:6px 10px; border-bottom:1px solid #e7ece9; background:#fbfcfb; }
.note-toolbar button { display:grid; place-items:center; width:34px; height:34px; min-height:0; padding:0; border:0; border-radius:7px; background:transparent; color:#44544f; font-size:15px; }
.note-toolbar button:hover:not(:disabled) { background:#e9f2ef; color:#147768; }
.note-toolbar button:disabled { opacity:.35; cursor:not-allowed; }
.note-toolbar>i { width:1px; height:22px; margin:0 5px; background:#e0e6e3; }
.note-editor-body { min-height:320px; padding:26px 30px; outline:0; color:#283a34; font-size:14px; line-height:1.85; }
.note-editor-body:empty::before { content:attr(data-placeholder); color:#a0aaa6; }
.note-editor-body h2 { margin:14px 0 8px; font-size:22px; }
.note-editor-body ul,.note-editor-body ol { padding-left:24px; }
.note-editor-body blockquote { margin:12px 0; padding-left:14px; border-left:3px solid #a9c9bf; color:#64766f; }
@media (max-width:760px) { .okr-note-list,.okr-editor-meta { grid-template-columns:1fr; } .note-toolbar { overflow-x:auto; } .note-editor-body { min-height:240px; padding:20px; } }
.okr-indicator-mapping { margin:18px 0; padding:18px; border:1px solid #dce9e4; border-radius:18px; background:#f7fbf9; }
.okr-indicator-mapping>header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:14px; }
.okr-indicator-mapping>header span,.okr-indicator-mapping label>span,.okr-bonus-settings span { display:block; color:#71827c; font-size:11px; margin-bottom:5px; }
.okr-indicator-mapping h3 { margin:0; color:#19372f; }
.okr-indicator-mapping>header p,.okr-indicator-mapping.empty p { max-width:520px; margin:0; color:#6f807a; font-size:12px; line-height:1.6; }
.okr-indicator-mapping>div { display:grid; gap:10px; }
.okr-indicator-mapping article { display:grid; grid-template-columns:minmax(250px,1fr) minmax(280px,1fr) auto; gap:14px; align-items:center; padding:14px; border:1px solid #e1ebe7; border-radius:14px; background:#fff; }
.okr-indicator-mapping article>div { display:grid; grid-template-columns:28px 1fr; gap:3px 9px; }
.okr-indicator-mapping article b { grid-row:1 / span 2; display:grid; place-items:center; width:28px; height:28px; border-radius:9px; background:#e3f3ee; color:#167767; }
.okr-indicator-mapping article small { color:#84938e; }
.okr-indicator-mapping article label { margin:0; }
.okr-indicator-mapping article em { color:#75857f; font-size:11px; font-style:normal; white-space:nowrap; }
.okr-bonus-settings { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(340px,1.3fr); gap:14px; align-items:stretch; margin:18px 0; }
.okr-bonus-settings label,.okr-bonus-settings>div { margin:0; padding:14px 16px; border:1px solid #dce9e4; border-radius:14px; background:#fff; }
.okr-bonus-settings p { margin:0; color:#244a40; font-weight:700; }
.okr-bonus-settings small { display:block; margin-top:5px; color:#7b8b85; line-height:1.5; }
@media (max-width:900px) { .okr-indicator-mapping article,.okr-bonus-settings { grid-template-columns:1fr; } .okr-indicator-mapping>header { display:block; } .okr-indicator-mapping>header p { margin-top:8px; } }
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
.kpis {
  grid-template-columns: repeat(var(--kpi-count, 4), 1fr);
}
.trend-switches button {
  padding: 12px 18px;
}
svg.plot {
  position: relative;
  z-index: 1;
}
.chart {
  min-height: 240px;
}
@media (max-width: 1100px) {
  .kpis {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1700px) {
  .kpi {
    min-height: 135px;
  }
  .main-trend {
    min-height: 315px;
  }
  .trend-layout {
    min-height: 260px;
  }
  .bottom-panel {
    min-height: 265px;
  }
  .platform {
    padding: 18px 15px;
  }
  .source-item {
    padding: 11px 0;
  }
  .summary-row {
    padding: 15px 0;
  }
  .kpi-value {
    font-size: 37px;
  }
}
.platform-logo {
  white-space: nowrap;
  font-size: 8px;
}
.platform-logo.dy {
  font-size: 22px;
}

/* 2026 minimal light business dashboard */
:root {
  color-scheme: light;
  --bg: #f4f6f3;
  --panel: #ffffff;
  --edge: #e2e7e3;
  --ink: #17201d;
  --muted: #74807b;
  --blue: #0f766e;
  --cyan: #0f766e;
  --lime: #5b8f6a;
  --purple: #d97706;
  --red: #c94c56;
}
body {
  background: var(--bg);
  color: var(--ink);
  font-family:
    Inter,
    "SF Pro Display",
    -apple-system,
    BlinkMacSystemFont,
    "PingFang SC",
    "Microsoft YaHei",
    sans-serif;
  letter-spacing: -0.012em;
}
body:before {
  display: none;
}
.shell {
  min-height: 100dvh;
  background: var(--bg);
}
a {
  color: #0f766e;
}
button {
  border: 1px solid #dfe5e1;
  border-radius: 10px;
  background: #fff;
  color: #35403c;
  box-shadow: 0 1px 1px #14251e08;
  transition:
    background 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}
button:hover {
  border-color: #bcc8c2;
  background: #f8faf8;
  color: #17201d;
}
button:active {
  transform: translateY(1px);
}
input,
textarea,
select {
  border: 1px solid #dce3df;
  border-radius: 10px;
  background: #fff;
  color: #17201d;
  box-shadow: inset 0 1px 1px #17201d08;
}
input::placeholder {
  color: #a2aaa6;
}
small,
.muted {
  color: #7b8782;
}
.topbar {
  height: 68px;
  margin: 0;
  padding: 0 42px;
  grid-template-columns: 1fr auto 1fr;
  border-bottom: 1px solid #e6eae7;
  background: #ffffffed;
  backdrop-filter: blur(18px);
}
.brand {
  gap: 11px;
  color: #17201d;
  font-size: 15px;
  font-weight: 680;
}
.brand small {
  margin-left: 5px;
  color: #8b9691;
  font-size: 11px;
  font-weight: 450;
}
.brand-icon {
  width: 78px;
  height: 32px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  object-fit: cover;
  object-position: center;
  flex: 0 0 auto;
}
.mark {
  width: 32px;
  height: 32px;
  padding: 7px;
  gap: 3px;
  border: 0;
  border-radius: 9px;
  background: #e6f1ed;
  transform: none;
  align-items: end;
  justify-content: center;
}
.mark i {
  width: 4px;
  border-radius: 3px 3px 0 0;
  background: #0f766e;
}
.masthead {
  color: #17201d;
  font-size: 17px;
  font-weight: 650;
  letter-spacing: 0.1em;
}
.masthead:before,
.masthead:after {
  display: none;
}
.clock {
  color: #28332f;
  font:
    600 14px/1.2 ui-monospace,
    "SFMono-Regular",
    Consolas,
    monospace;
}
.clock small {
  margin-top: 3px;
  color: #929c97;
  font: 10px/1.2 inherit;
  letter-spacing: 0.04em;
}
.nav {
  position: sticky;
  top: 0;
  z-index: 5;
  gap: 4px;
  padding: 8px 42px;
  border-bottom: 1px solid #e6eae7;
  background: #fffffff2;
  backdrop-filter: blur(18px);
}
.nav button {
  padding: 8px 13px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  box-shadow: none;
  color: #707b76;
  font-size: 12px;
}
.nav button:hover {
  background: #f1f4f1;
  color: #26322d;
}
.nav button.active {
  background: #e8f2ee;
  color: #0b6b63;
  box-shadow: none;
  font-weight: 620;
}
.nav .utility {
  border: 1px solid #e0e5e2;
  background: #fff;
  color: #68736e;
}
.workspace {
  max-width: 1680px;
  padding: 34px 42px 42px;
}
.toolbar {
  margin-bottom: 24px;
}
.titleline {
  align-items: baseline;
  gap: 14px;
}
.titleline h1 {
  color: #17201d;
  font-size: 27px;
  font-weight: 680;
  letter-spacing: -0.04em;
}
.breadcrumb {
  color: #8b9691;
  font-size: 12px;
  letter-spacing: 0;
}
.filters {
  gap: 10px;
}
.segments {
  padding: 3px;
  border: 1px solid #e0e6e2;
  border-radius: 11px;
  background: #edf1ee;
}
.segments button {
  padding: 6px 14px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #77827d;
  box-shadow: none;
}
.segments button.selected {
  background: #fff;
  color: #17201d;
  box-shadow: 0 1px 4px #17201d14;
  font-weight: 600;
}
.kpis {
  gap: 0;
  margin-bottom: 18px;
  padding: 5px 0;
  border: 1px solid #e4e8e5;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px #18251f08;
  overflow: hidden;
}
.kpi {
  min-height: 126px;
  padding: 22px 24px 18px;
  border: 0;
  border-right: 1px solid #e9ecea;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  animation: light-rise 420ms both;
}
.kpi:last-child {
  border-right: 0;
}
.kpi:nth-child(2) {
  animation-delay: 50ms;
  border-color: #e9ecea;
}
.kpi:nth-child(3) {
  animation-delay: 100ms;
  border-color: #e9ecea;
}
.kpi:nth-child(4) {
  animation-delay: 150ms;
}
.kpi:nth-child(5) {
  animation-delay: 200ms;
}
.kpi:before,
.kpi:after {
  display: none;
}
.kpi-label {
  color: #717d78;
  font-size: 12px;
  font-weight: 520;
  letter-spacing: 0.015em;
}
.kpi-value {
  margin: 7px 0 5px;
  color: #111815;
  font:
    650 31px/1.25 ui-monospace,
    "SFMono-Regular",
    Consolas,
    monospace;
  letter-spacing: -0.055em;
}
.kpi-value em {
  margin-left: 7px;
  color: #8c9792;
  font: 500 11px/1 inherit;
  letter-spacing: 0;
}
.kpi small {
  color: #9aa39f;
}
.status {
  color: #818c87;
}
.status:before {
  width: 5px;
  height: 5px;
  background: #d89a45;
}
.status.good:before {
  background: #2e9d80;
  box-shadow: none;
}
.status.bad:before {
  background: #c94c56;
}
.dashboard-grid {
  grid-template-columns: minmax(0, 2fr) minmax(310px, 0.92fr);
  gap: 18px;
}
.panel {
  border: 1px solid #e3e8e4;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px #18251f07;
  animation: light-rise 460ms 100ms both;
}
.panel-head {
  min-height: 57px;
  padding: 17px 20px;
  border-bottom: 1px solid #edf0ee;
}
.panel-head h2 {
  padding: 0;
  border: 0;
  color: #26312d;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0;
}
.panel-head h2:before {
  display: none;
}
.panel-body {
  color: #4d5954;
}
.main-trend {
  grid-column: 1;
  min-height: 400px;
}
.trend-layout {
  display: flex;
  flex-direction: column;
  min-height: 340px;
}
.trend-switches {
  flex-direction: row;
  gap: 7px;
  padding: 12px 16px 0;
  border: 0;
  border-bottom: 1px solid #edf0ee;
}
.trend-switches button {
  padding: 9px 12px 12px;
  border: 0;
  border-radius: 8px 8px 0 0;
  background: transparent;
  color: #89938f;
  box-shadow: none;
}
.trend-switches button:hover {
  background: #f7f9f7;
  color: #394640;
}
.trend-switches button.active {
  border: 0;
  background: transparent;
  color: #0f766e;
  box-shadow: inset 0 -2px #0f766e;
}
.trend-switches b {
  display: inline;
  margin: 0 7px 0 0;
  font-weight: 630;
}
.chart {
  min-height: 290px;
  padding: 22px 26px 26px;
}
.plot {
  filter: none;
}
.chart-grid {
  inset: 48px 26px 39px;
  border-color: #dfe5e1;
  background: repeating-linear-gradient(
    0deg,
    transparent 0,
    transparent 43px,
    #dce3df99 44px,
    #dce3df99 45px
  );
}
.chart-labels {
  color: #96a09b;
}
.chart-empty {
  color: #89948f;
}
.chart-empty strong {
  color: #405049;
}
.legend {
  color: #7c8782;
}
.legend span:before {
  background: #0f766e;
}
.legend span:nth-child(2):before {
  background: #d97706;
}
.summary-list {
  padding: 8px 20px;
}
.summary-row {
  padding: 17px 0;
  border-bottom: 1px solid #edf0ee;
  color: #6f7b76;
}
.summary-row:last-child {
  border-bottom: 0;
}
.summary-row strong {
  color: #1e2925;
  font:
    620 20px/1.2 ui-monospace,
    "SFMono-Regular",
    Consolas,
    monospace;
  letter-spacing: -0.035em;
}
.summary-row strong small {
  color: #929c97;
}
.bottom-panel {
  min-height: 270px;
}
.dashboard-grid > .panel:last-child {
  grid-column: span 2;
}
.platforms {
  gap: 10px;
}
.platform {
  border: 1px solid #e7ebe8;
  border-radius: 12px;
  background: #f8faf8;
  color: #55615c;
}
.platform strong {
  color: #17201d;
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
}
.platform-logo {
  box-shadow: none;
}
.source-item {
  border-bottom-color: #edf0ee;
}
.source-dot {
  border-radius: 8px;
  background: #e8f2ee;
  color: #0f766e;
}
.source-item strong {
  color: #34413b;
}
.source-item small {
  color: #87928d;
}
.table-meta,
.caption {
  color: #909a95;
}
.caption {
  border-top-color: #e1e6e3;
}
.subnav {
  gap: 7px;
}
.subnav button {
  border-color: #dfe5e1;
  background: #fff;
  color: #66736d;
}
.subnav button.active {
  border-color: #c2d8d0;
  background: #eaf3ef;
  color: #0f766e;
}
.okr-summary {
  gap: 0;
}
.okr-summary .kpi {
  border-right: 1px solid #e9ecea;
}
.okr-summary .kpi:last-child {
  border-right: 0;
}
.table-wrap {
  scrollbar-color: #c7d0cb #f4f6f4;
}
table {
  color: #43504a;
}
th {
  background: #f7f9f7;
  color: #68756f;
}
th,
td {
  border-bottom-color: #e7ece8;
}
td {
  color: #59655f;
}
td:first-child {
  color: #25322c;
}
tbody tr:hover {
  background: #f5f8f6;
}
.notice {
  border-color: #d7e5df;
  border-radius: 12px;
  background: #eef6f2;
  color: #496158;
}
.config-card {
  border-radius: 16px;
}
.tag,
.badge {
  border-color: #dce7e2;
  background: #eef5f2;
  color: #397062;
}
.indicator,
.detail-field {
  border-bottom-color: #e7ece9;
}
.progress-track {
  background: #e7ece9;
}
.primary {
  border-color: #0f766e;
  background: #0f766e;
  color: #fff;
}
.primary:hover {
  border-color: #0b625b;
  background: #0b625b;
  color: #fff;
}
.modal-backdrop {
  background: #18231e52;
  backdrop-filter: blur(8px);
}
.modal,
.modal-head {
  border-color: #e1e6e3;
  background: #fff;
}
.modal {
  border-radius: 18px;
  box-shadow: 0 28px 80px #18251f2e;
}
.modal-head {
  color: #202c27;
}
.login {
  background: #f2f5f2;
}
.login .panel {
  border-radius: 22px;
  box-shadow: 0 24px 80px #18251f1a;
}
.login h1 {
  color: #17201d;
}
.login-logo {
  display: block;
  width: 170px;
  height: 54px;
  margin: 0 0 20px;
  object-fit: cover;
  object-position: center;
}
.loading {
  min-height: 420px;
  color: transparent;
  border: 1px solid #e7ebe8;
  border-radius: 18px;
  background: linear-gradient(100deg, #f3f5f3 20%, #e7ece9 35%, #f3f5f3 50%);
  background-size: 240% 100%;
  animation: light-skeleton 1.4s ease infinite;
}
.empty-inline,
.full-empty {
  color: #7f8b85;
}
.full-empty {
  min-height: 390px;
  display: grid;
  place-content: center;
}
#toast {
  border-color: #d9e2dd;
  background: #17201d;
  color: #fff;
  box-shadow: 0 12px 40px #18251f33;
}
.role-management {
  overflow: visible;
}
.role-management-head {
  min-height: 86px;
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #e5eae7;
}
.role-management-head h2 {
  font-size: 18px;
  color: #17201d;
}
.role-management-head p {
  margin-top: 3px;
  color: #7b8781;
  font-size: 13px;
}
.role-management-head .actions,
.role-detail-head .actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}
.role-workspace {
  min-height: 620px;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
}
.role-browser {
  padding: 20px;
  background: #f7f9f8;
  border-right: 1px solid #e5eae7;
}
.role-browser-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}
.role-browser-summary strong {
  color: #25312c;
}
.role-browser-summary small {
  font-size: 11px;
}
.role-filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin-bottom: 16px;
}
.role-filters label {
  display: grid;
  gap: 5px;
}
.role-filters label > span {
  color: #718078;
  font-size: 11px;
}
.role-filters input,
.role-filters select {
  width: 100%;
}
.role-search {
  grid-column: 1 / -1;
}
.role-search > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px;
}
.role-browser-list {
  display: grid;
  gap: 7px;
  max-height: 440px;
  overflow: auto;
  padding-right: 3px;
}
.role-browser-row {
  width: 100%;
  min-height: 66px;
  padding: 11px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  text-align: left;
  border-color: #e1e7e3;
  background: #fff;
  border-radius: 10px;
}
.role-browser-row:hover {
  border-color: #8fc2b7;
  background: #f8fcfb;
}
.role-browser-row.selected {
  border-color: #0f766e;
  background: #eef8f5;
  box-shadow: 0 0 0 1px #0f766e1f;
}
.role-browser-row > span {
  display: grid;
  min-width: 0;
}
.role-browser-row strong {
  color: #23302a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.role-browser-row small {
  font-size: 11px;
}
.role-state {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 20px;
  background: #f0f2f1;
  color: #89938e;
  font-size: 10px;
  font-weight: 500;
}
.role-state.active {
  background: #dff3ec;
  color: #0f766e;
}
.role-list-empty,
.role-empty-small,
.role-detail-empty {
  color: #7b8781;
  text-align: center;
}
.role-list-empty {
  padding: 34px 10px;
}
.role-detail {
  padding: 24px 26px 30px;
  min-width: 0;
}
.role-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 23px;
  border-bottom: 1px solid #e7ebe9;
}
.role-detail-head > div:first-child > span {
  color: #0f766e;
  font-size: 11px;
  font-weight: 600;
}
.role-detail-head h2 {
  margin-top: 3px;
  font-size: 22px;
  color: #17201d;
}
.role-detail-head p {
  margin-top: 5px;
  color: #738078;
}
.danger-button {
  color: #b43b48;
  border-color: #efd0d3;
  background: #fff8f8;
}
.danger-button:hover {
  color: #962d38;
  border-color: #dfa8ae;
  background: #fff2f2;
}
.role-member-section {
  padding: 22px 0 24px;
  border-bottom: 1px solid #e7ebe9;
}
.role-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 13px;
}
.role-section-head > div {
  display: grid;
  gap: 2px;
}
.role-section-head strong {
  color: #25312c;
}
.role-section-head small {
  font-size: 11px;
}
.role-members {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}
.role-members article {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid #e4e9e6;
  border-radius: 10px;
  background: #fbfcfb;
}
.role-members article > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #dff2ed;
  color: #0f766e;
  font-weight: 600;
}
.role-members article > div {
  display: grid;
  min-width: 0;
}
.role-members strong {
  color: #26312c;
}
.role-members small {
  font-size: 10px;
}
.role-empty-small {
  padding: 24px;
  display: grid;
  gap: 4px;
  border: 1px dashed #d9e0dc;
  border-radius: 10px;
  background: #fbfcfb;
}
.permissions-head {
  margin: 23px 0 12px;
}
.role-permission-table {
  border: 1px solid #e4e9e6;
  border-radius: 10px;
}
.role-permission-table table,
.role-form-matrix table {
  min-width: 860px;
}
.role-permission-table th:first-child,
.role-form-matrix th:first-child {
  width: 26%;
}
.permission-on {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  background: #dff3ec;
  color: #0f766e;
  font-size: 11px;
  font-weight: 600;
}
.permission-off {
  color: #aab2ae;
}
.permission-na {
  color: #a0aaa5;
  font-size: 12px;
}
.role-detail-empty {
  min-height: 380px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 9px;
  padding: 30px;
}
.role-detail-empty strong {
  color: #35413b;
  font-size: 16px;
}
.role-detail-empty p {
  max-width: 460px;
}
.role-detail-empty button {
  margin-top: 5px;
}
.role-form-identity {
  display: grid;
  gap: 3px;
  padding: 16px 18px;
  margin-bottom: 17px;
  border-radius: 11px;
  background: #f1f7f4;
}
.role-form-identity > span {
  color: #0f766e;
  font-size: 11px;
}
.role-form-identity > strong {
  color: #1f2b26;
  font-size: 18px;
}
.permission-bulk {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  color: #35413b;
}
.permission-bulk>strong { margin-right:4px; }
.permission-bulk .scope-bulk { margin-left:auto; }
.permission-bulk .scope-bulk select,.permission-scope { min-width:132px; }
.data-scope-badge { display:inline-flex; padding:4px 9px; border-radius:999px; background:#e8f5ef; color:#267466; font-size:10px; white-space:nowrap; }
.permission-bulk label,
.permission-check,
.role-active-check {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #4c5952;
}
.permission-check {
  justify-content: center;
  white-space: nowrap;
}
.permission-bulk input,
.permission-check input,
.role-active-check input {
  accent-color: #0f766e;
}
.role-form-matrix {
  border: 1px solid #e2e8e4;
  border-radius: 10px;
}
.role-active-check {
  margin-top: 17px;
}
@keyframes light-rise {
  from {
    opacity: 0;
    transform: translateY(7px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes light-skeleton {
  to {
    background-position-x: -240%;
  }
}
@media (min-width: 1500px) {
  .main-trend {
    min-height: 430px;
  }
  .trend-layout {
    min-height: 370px;
  }
  .chart {
    min-height: 320px;
  }
  .bottom-panel {
    min-height: 290px;
  }
}
@media (max-width: 1100px) {
  .topbar,
  .nav {
    padding-left: 24px;
    padding-right: 24px;
  }
  .dashboard-grid {
    grid-template-columns: 1fr;
  }
  .main-trend,
  .dashboard-grid > .panel:last-child {
    grid-column: 1;
  }
  .kpis {
    grid-template-columns: repeat(2, 1fr);
  }
  .kpi:nth-child(2) {
    border-right: 0;
  }
  .kpi:nth-child(-n + 2) {
    border-bottom: 1px solid #e9ecea;
  }
  .role-workspace {
    grid-template-columns: 270px minmax(0, 1fr);
  }
  .role-members {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .topbar {
    padding: 0 15px;
  }
  .masthead {
    display: none;
  }
  .nav {
    padding: 7px 14px;
    overflow-x: auto;
  }
  .workspace {
    padding: 22px 14px 30px;
  }
  .toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .filters {
    width: 100%;
    overflow-x: auto;
  }
  .kpis {
    grid-template-columns: 1fr;
  }
  .kpi,
  .kpi:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid #e9ecea;
  }
  .kpi:last-child {
    border-bottom: 0;
  }
  .trend-switches {
    overflow-x: auto;
  }
  .trend-switches button {
    white-space: nowrap;
  }
  .trend-switches b {
    display: block;
    margin-right: 0;
  }
  .dashboard-grid > .panel:last-child {
    grid-column: 1;
  }
  .role-management-head,
  .role-detail-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .role-workspace {
    grid-template-columns: 1fr;
  }
  .role-browser {
    border-right: 0;
    border-bottom: 1px solid #e5eae7;
  }
  .role-browser-list {
    max-height: 260px;
  }
  .role-detail {
    padding: 20px 16px 24px;
  }
  .role-members {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  .kpi,
  .panel,
  .loading {
    animation: none;
  }
}
.field-candidates {
  margin: 16px 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.field-candidates > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.field-candidates button {
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.field-candidates button span {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.field-candidates button small {
  color: var(--muted);
}

.okr-relation-column {
  min-width: 190px;
  position: sticky;
  left: 0;
  z-index: 2;
  background: #fff;
  box-shadow: 1px 0 0 var(--line);
}
thead .okr-relation-column {
  z-index: 3;
  background: #f5f8f6;
}
.okr-relation,
.okr-relation-readonly {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.okr-relation select {
  min-width: 158px;
  border: 1px solid #cddbd6;
  border-radius: 9px;
  background: #f8fbfa;
  color: #20312c;
  padding: 8px 28px 8px 10px;
}
.okr-relation small,
.okr-relation-readonly small {
  color: var(--muted);
  font-size: 11px;
}

.tactics-panel { overflow:hidden; border-radius:18px; box-shadow:0 18px 48px rgba(23,55,46,.07); }
.tactics-panel>header { padding:18px 20px; border-bottom:1px solid #e4ece8; background:linear-gradient(135deg,#fbfdfc,#f2f8f5); }
.tactics-panel .table-wrap { max-height:72vh; background:#f6f9f7; }
.tactics-list table { min-width:1480px; table-layout:fixed; border-collapse:separate; border-spacing:0; }
.tactics-list thead th { position:sticky; top:0; z-index:3; padding:12px 14px; border-bottom:1px solid #dbe6e1; background:#edf5f1; color:#587068; font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.tactics-list th:nth-child(1) { width:220px; }
.tactics-list th:nth-child(2) { width:120px; }
.tactics-list th:nth-child(3) { width:360px; }
.tactics-list th:nth-child(4) { width:430px; }
.tactics-list th:nth-child(5) { width:220px; }
.tactics-list th:nth-child(6) { width:170px; }
.tactics-list td { padding:17px 14px; border-bottom:10px solid #f6f9f7; background:#fff; color:#263832; vertical-align:top; }
.tactics-list tbody tr:first-child td { border-top:10px solid #f6f9f7; }
.tactics-list tr:hover td { background:#fbfdfc; }
.tactic-title { display:grid; gap:12px; }
.tactic-title>strong { font-size:14px; line-height:1.5; color:#17251f; }
.tactic-title .okr-relation select { width:100%; min-width:0; }
.tactic-owner { font-weight:650; color:#1f4d43 !important; }
.tactic-description,
.tactic-incentive { white-space:pre-wrap; line-height:1.7; color:#53645e; }
.tactic-indicator-details { display:grid; gap:10px; }
.tactic-indicator-details>div { display:grid; grid-template-columns:22px 1fr; column-gap:8px; row-gap:3px; }
.tactic-indicator-details b { grid-row:1 / span 2; display:grid; place-items:center; width:20px; height:20px; border-radius:7px; background:#e8f5f1; color:#18796b; font-size:11px; }
.tactic-indicator-details span { line-height:1.55; color:#344b43; }
.tactic-indicator-details small { color:#84938e; }
.tactic-progress-summary { display:grid; gap:7px; padding:0 0 11px; margin-bottom:10px; border-bottom:1px solid #e5ece9; }
.tactic-progress-summary>div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.tactic-progress-summary strong { font-size:20px; color:#177c6d; }
.tactic-progress-summary span { color:#677b74; font-size:11px; }
.tactic-progress-summary small,
.tactic-progress-summary em { color:#7f918a; font-size:10px; font-style:normal; }
.tactic-progress-track { height:7px; overflow:hidden; border-radius:999px; background:#deebe6; }
.tactic-progress-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#1b8e7d,#71cdbd); }
.tactics-list .okr-progress-list article { padding:8px 0; border:0; border-bottom:1px solid #edf1ef; border-radius:0; background:transparent; }
.tactics-list .okr-progress-list strong { color:#263832; }
.tactics-list .okr-progress-list p { color:#667a73; }
.tactics-list .okr-progress-list small { color:#83938e; }
.tactics-list .okr-progress-track { background:#deebe6; }
.tactic-bonus { display:grid; gap:6px; }
.tactic-bonus strong { font-size:17px; color:#b16b20; }
.tactic-bonus small { line-height:1.5; color:#89958f; }
.tactics-list .tactic-frozen { position:sticky; z-index:2; background:#fff; box-shadow:1px 0 0 #e2ebe7; }
.tactics-list thead .tactic-frozen { z-index:4; background:#f5f8f6; }
.tactics-list .tactic-actions-column { position:sticky; right:0; z-index:2; border-left:1px solid #e1eae6; background:#fff; box-shadow:-8px 0 18px rgba(26,54,46,.05); }
.tactics-list thead .tactic-actions-column { z-index:5; background:#edf5f1; }
.tactic-row-actions .okr-item-actions { justify-content:flex-end; flex-wrap:wrap; margin-top:0; }
.compact-control { display:flex; align-items:center; gap:5px; color:#71837d; font-size:11px; white-space:nowrap; }
.compact-control select { min-width:96px; }
.tactic-field-pill {
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 9px;
  border:1px solid #dce6e2;
  border-radius:999px;
  background:#f3f7f5;
  color:#5f726b;
  font-size:11px;
  font-weight:650;
  white-space:nowrap;
}
.tactic-field-pill.importance-0 { border-color:#f2c2c7; background:#fff0f1; color:#b83e4d; }
.tactic-field-pill.importance-1 { border-color:#f2d1ad; background:#fff6e9; color:#a56219; }
.tactic-field-pill.importance-2 { border-color:#c9ddd6; background:#edf7f3; color:#267565; }
.tactic-collapsed-group { margin:14px 0 0; border:1px solid #dce7e2; border-radius:12px; background:#fff; overflow:hidden; }
.tactic-collapsed-group>summary { display:flex; align-items:center; gap:12px; min-height:48px; padding:0 16px; cursor:pointer; list-style:none; background:#f7faf8; color:#536861; }
.tactic-collapsed-group>summary::-webkit-details-marker { display:none; }
.tactic-collapsed-group>summary::before { content:"›"; color:#188170; font-size:20px; transform:rotate(0); transition:transform .18s ease; }
.tactic-collapsed-group[open]>summary::before { transform:rotate(90deg); }
.tactic-collapsed-group>summary strong { color:#263c35; font-size:13px; }
.tactic-collapsed-group>summary span { flex:1; font-size:11px; }
.tactic-collapsed-group>summary b { color:#188170; font-size:11px; font-weight:650; }
.tactic-collapsed-group[open]>summary b { font-size:0; }
.tactic-collapsed-group[open]>summary b::after { content:"收起"; font-size:11px; }
.tactic-collapsed-group .table-wrap,
.tactic-collapsed-group .business-tactic-table-wrap { margin:0; border:0; border-radius:0; }

/* Business-page index: the 42px rail stays quiet until the pointer or keyboard reaches it. */
.business-rail {
  position: fixed;
  top: 50%;
  left: 0;
  z-index: 6;
  width: 148px;
  display: grid;
  gap: 5px;
  transform: translateY(-50%);
  pointer-events: none;
}
.business-rail button {
  width: 148px;
  min-height: 40px;
  padding: 0 10px 0 16px;
  border: 1px solid #dce5e0;
  border-left: 0;
  border-radius: 0 10px 10px 0;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 5px 18px rgba(34, 53, 45, 0.07);
  color: #5d6b64;
  display: flex;
  align-items: center;
  gap: 11px;
  transform: translateX(-106px);
  transition: transform 280ms cubic-bezier(0.16, 1, 0.3, 1),
    background-color 180ms ease, color 180ms ease;
  pointer-events: auto;
}
.business-rail:hover button,
.business-rail:focus-within button {
  transform: translateX(0);
}
.business-rail button:hover,
.business-rail button:focus-visible {
  background: #eaf3ef;
  color: #0f766e;
}
.business-rail button:active {
  transform: translateX(0) scale(0.98);
}
.business-rail button span {
  order: 2;
  margin-left: auto;
  width: 22px;
  color: #0f766e;
  font: 650 10px/1 ui-monospace, "SFMono-Regular", Consolas, monospace;
  text-align: center;
}
.business-rail button b {
  order: 1;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 620;
}
.dashboard-anchor {
  scroll-margin-top: 118px;
}
.business-okr-section { margin-top: 22px; }
.business-okr-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.business-okr-card,
.business-okr-empty {
  min-width: 0;
  min-height: 132px;
  padding: 17px 18px;
  border: 1px solid #dfe7e3;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(29, 48, 40, .045);
}
.business-okr-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.business-okr-card-head strong {
  overflow: hidden;
  color: #1f2c27;
  font-size: 14px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.business-okr-card-head span {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e9f4f1;
  color: #176f66;
  font-size: 10px;
}
.business-okr-card p {
  display: -webkit-box;
  min-height: 36px;
  margin: 10px 0 13px;
  overflow: hidden;
  color: #65736d;
  font-size: 11px;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.business-okr-card footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 12px;
  padding-top: 10px;
  border-top: 1px solid #eef2f0;
  color: #89938f;
  font-size: 10px;
}
.business-okr-empty {
  grid-column: 1 / -1;
  display: grid;
  place-items: center;
  color: #89958f;
  font-size: 12px;
  background: #f8faf9;
  box-shadow: none;
}
.business-tactic-ledger { display:block; }
.business-tactic-table-wrap {
  max-width:100%;
  overflow:auto;
  border:1px solid #dce7e2;
  border-radius:18px;
  background:#f5f8f6;
  box-shadow:0 18px 50px rgba(24,52,43,.065);
}
.business-tactic-table {
  width:100%;
  min-width:1430px;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
}
.business-tactic-table col.title { width:200px; }
.business-tactic-table col.owner { width:145px; }
.business-tactic-table col.description { width:330px; }
.business-tactic-table col.progress { width:390px; }
.business-tactic-table col.incentive { width:200px; }
.business-tactic-table col.bonus { width:165px; }
.business-tactic-table thead th {
  position:sticky;
  top:0;
  z-index:2;
  padding:13px 16px;
  border-bottom:1px solid #dce7e2;
  background:#edf4f1;
  color:#5f746d;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-align:left;
}
.business-tactic-table tbody td {
  padding:18px 16px;
  border-bottom:8px solid #f5f8f6;
  background:#fff;
  color:#31463f;
  font-size:11px;
  line-height:1.55;
  vertical-align:top;
}
.business-tactic-table tbody tr:first-child td { border-top:8px solid #f5f8f6; }
.business-tactic-table tbody tr:hover td { background:#fbfdfc; }
.business-tactic-name { display:grid; grid-template-columns:26px 1fr; gap:5px 9px; align-items:start; }
.business-tactic-name>span {
  grid-row:1 / span 2;
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:8px;
  background:#e3f2ed;
  color:#147766;
  font:700 10px/1 ui-monospace,"SFMono-Regular",Consolas,monospace;
}
.business-tactic-name strong { color:#182923; font-size:13px; line-height:1.5; }
.business-tactic-name small { width:max-content; padding:2px 7px; border-radius:999px; background:#f0f5f3; color:#71837d; font-size:9px; }
.business-tactic-owner { display:flex; align-items:center; gap:9px; color:#274b41; font-weight:650; }
.business-tactic-owner i {
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#e6f2ee;
  color:#187565;
  font-size:11px;
  font-style:normal;
}
.business-tactic-indicators { display:grid; gap:9px; }
.business-tactic-indicators>div { display:grid; grid-template-columns:20px 1fr; gap:2px 8px; }
.business-tactic-indicators b { grid-row:1 / span 2; display:grid; place-items:center; width:20px; height:20px; border-radius:6px; background:#edf4f1; color:#397569; font-size:9px; }
.business-tactic-indicators span { color:#30463f; }
.business-tactic-indicators small { color:#8a9893; font-size:9px; }
.business-tactic-copy,.business-tactic-incentive { margin:0; color:#65766f; white-space:pre-wrap; }
.business-tactic-progress { display:grid; gap:6px; }
.business-tactic-progress>header { display:flex; align-items:baseline; gap:9px; }
.business-tactic-progress>header strong { color:#137767; font-size:20px; line-height:1; }
.business-tactic-progress>header span { color:#7b8c86; font-size:9px; }
.business-tactic-progress-track { height:6px; overflow:hidden; border-radius:999px; background:#e4ece8; }
.business-tactic-progress-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#168270,#61c0af); }
.business-tactic-progress>p { margin:0; color:#667a73; font-size:10px; }
.business-tactic-progress>small { color:#93a09b; font-size:9px; }
.business-tactic-progress-list { display:grid; gap:5px; margin-top:4px; padding-top:8px; border-top:1px solid #edf1ef; }
.business-tactic-progress-list>div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; }
.business-tactic-progress-list span { overflow:hidden; color:#60736c; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.business-tactic-progress-list b { color:#526a62; font-size:9px; }
.business-tactic-progress-list i { grid-column:1 / -1; height:3px; overflow:hidden; border-radius:99px; background:#edf2f0; }
.business-tactic-progress-list em { display:block; height:100%; border-radius:inherit; background:#72b9ac; }
.business-tactic-bonus { display:grid; gap:6px; }
.business-tactic-bonus strong { color:#a8661b; font-size:17px; }
.business-tactic-bonus small { color:#8a9893; font-size:9px; line-height:1.5; }

/* Keep the complete business navigation and tactic names readable on narrow screens. */
.nav {
  overflow-x:auto;
  overflow-y:hidden;
  flex-wrap:nowrap;
  scrollbar-width:none;
}
.nav::-webkit-scrollbar { display:none; }
.nav button { flex:0 0 auto; white-space:nowrap; }
.tactics-list table { min-width:1560px; }
.tactics-list th:nth-child(1) { width:300px; }
.tactic-title { min-width:260px; }
.tactic-title>strong {
  display:block;
  min-width:0;
  word-break:normal;
  overflow-wrap:break-word;
  white-space:normal;
}
.okr-item-actions { flex-wrap:nowrap; }
.okr-item-actions button { flex:0 0 auto; white-space:nowrap; word-break:keep-all; }
.business-tactic-table { min-width:2120px; }
.business-tactic-table col.title { width:340px; }
.business-tactic-table col.importance { width:140px; }
.business-tactic-table col.task-progress { width:120px; }
.business-tactic-table col.campaigns { width:170px; }
.business-tactic-table col.actions { width:120px; }
.business-tactic-name { grid-template-columns:30px minmax(0,1fr); }
.business-tactic-name>span { grid-row:1 / span 2; grid-column:1; }
.business-tactic-title-copy {
  display:grid;
  grid-column:2;
  min-width:0;
  gap:7px;
}
.business-tactic-title-copy strong {
  display:block;
  min-width:0;
  word-break:keep-all;
  overflow-wrap:normal;
  white-space:normal;
}
.business-tactic-actions {
  position:sticky !important;
  right:0;
  z-index:3;
  background:#fff !important;
  box-shadow:-1px 0 0 #e1e9e5;
}
.business-tactic-table thead .business-tactic-actions { z-index:4; background:#edf4f1 !important; }
.business-tactic-actions .okr-item-actions { justify-content:flex-end; margin-top:0; }
.hr-okr-heading { margin:6px 0 16px; }
.okr-subnav { margin-top:0; }

/* Weekly campaign records, workbench notifications and DingTalk delivery */
.notification-button { position:relative; }
.notification-button b { display:grid; place-items:center; position:absolute; top:2px; right:2px; min-width:17px; height:17px; padding:0 4px; border:2px solid #fff; border-radius:999px; background:#d34d5b; color:#fff; font-size:9px; line-height:1; }
.notification-drawer { position:fixed; z-index:130; top:0; right:0; display:grid; grid-template-rows:auto 1fr; width:min(420px,94vw); height:100vh; background:#fff; border-left:1px solid #dfe7e3; box-shadow:-24px 0 60px rgba(26,48,40,.14); }
.notification-drawer>header { display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid #e5ebe8; }
.notification-drawer>header span { color:#168071; font-size:10px; font-weight:700; letter-spacing:.08em; }
.notification-drawer>header h2 { margin:3px 0 0; font-size:22px; }
.notification-drawer>header button { width:36px; height:36px; padding:0; }
.notification-list { overflow:auto; padding:12px; background:#f6f8f6; }
.notification-item { display:grid; width:100%; margin-bottom:8px; padding:15px 16px; text-align:left; border:1px solid #e0e7e3; border-radius:12px; background:#fff; }
.notification-item.unread { border-color:#a8d0c5; background:#f1faf7; box-shadow:inset 3px 0 #168071; }
.notification-item span { color:#168071; font-size:10px; }
.notification-item strong { margin:6px 0; color:#25362f; font-size:13px; line-height:1.55; }
.notification-item small { color:#87958f; }
.weekly-report-heading { margin:-4px 0 18px; padding:18px 20px; border-radius:14px; background:#f1f7f4; }
.weekly-report-heading span { color:#177b6d; font-size:10px; font-weight:750; letter-spacing:.08em; }
.weekly-report-heading h3 { margin:5px 0; color:#21332c; font-size:20px; }
.weekly-report-heading p { margin:0; color:#75847f; }
.weekly-report-meta .wide { grid-column:1/-1; }
.weekly-report-meta input[readonly] { background:#f4f6f5; color:#52655e; }
.okr-cc-picker { margin:4px 0 16px; padding:14px 16px; border:1px solid #dde7e2; border-radius:12px; background:#fafcfb; }
.okr-cc-picker label>span { display:block; margin-bottom:7px; color:#60726b; font-size:11px; }
.okr-cc-picker label>div { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:7px; }
.okr-cc-picker label button { white-space:nowrap; }
#okr-cc-selected { display:flex; flex-wrap:wrap; gap:6px; min-height:10px; margin-top:10px; }
#okr-cc-selected button { min-height:28px; padding:4px 10px; border:0; border-radius:999px; background:#e6f2ee; color:#1c7467; font-size:11px; }
.okr-cc-picker>small { display:block; margin-top:9px; color:#84938e; }
.campaign-count-button { display:grid; grid-template-columns:auto auto; align-items:baseline; justify-content:start; gap:2px 4px; min-width:105px; padding:10px 12px; border-color:#cde0da; background:#f5faf8; color:#17796b; text-align:left; }
.campaign-count-button strong { font-size:20px; }
.campaign-count-button span { font-size:11px; }
.campaign-count-button small { grid-column:1/-1; color:#779089; }
.campaign-timeline { display:grid; gap:14px; }
.campaign-timeline article { padding:20px; border:1px solid #dfe8e4; border-radius:14px; background:#fff; box-shadow:0 8px 25px rgba(28,55,45,.05); }
.campaign-timeline article>header { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:10px; align-items:start; }
.campaign-timeline article>header>span { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; background:#e3f2ed; color:#167a6b; font-weight:750; }
.campaign-timeline h3 { margin:0 0 4px; color:#20332c; font-size:16px; }
.campaign-timeline header small,.campaign-timeline footer { color:#83928c; font-size:10px; }
.campaign-timeline footer { display:flex; gap:14px; padding-top:12px; border-top:1px solid #edf1ef; }
.campaign-parent { display:block; margin-top:5px; color:#70847c; font-size:10px; }
.ding-push-button { border-color:#bcd8d0 !important; color:#157768 !important; }
@media(max-width:760px){.okr-cc-picker label>div{grid-template-columns:1fr}.weekly-report-meta .wide{grid-column:auto}.notification-drawer{width:100vw}}
/* Keep the trend at left and the two compact platform charts stacked at right. */
.dashboard-grid > .panel:last-child {
  grid-column: auto;
}
.overview-grid .main-trend,
.signing-grid .main-trend {
  grid-column: 1;
  grid-row: 1;
}
.overview-grid .platform-comparison,
.signing-grid .broker-ranking {
  grid-column: 2;
  grid-row: 1;
}
.single-trend-grid .main-trend {
  grid-column: 1 / -1;
}
.platform-comparison {
  min-height: 400px;
}
.platform-comparison .pie-grid {
  height: calc(100% - 58px);
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
.platform-comparison .pie-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (max-width: 1100px) {
  .business-okr-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-grid .main-trend,
  .overview-grid .platform-comparison,
  .signing-grid .main-trend,
  .signing-grid .broker-ranking,
  .single-trend-grid .main-trend {
    grid-column: 1;
    grid-row: auto;
  }
}

@media (max-width: 700px) {
  .business-okr-list { grid-template-columns: 1fr; }
  .business-rail {
    top: auto;
    bottom: 18px;
  }
  .business-rail button {
    min-height: 36px;
  }
}

/* Unified business-stat layout: one readable ledger across every dashboard. */
.dashboard-kpis {
  --module-accent: #176f66;
  --module-accent-soft: #e8f3f0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.dashboard-kpis-mcn { --module-accent: #326d9b; --module-accent-soft: #eaf2f8; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-kpis-incubation { --module-accent: #bd3f4b; --module-accent-soft: #faecee; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-kpis-external { --module-accent: #a46a1e; --module-accent-soft: #f8f0e3; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.external-module-panel { margin-top: 14px; }
.external-module-panel .panel-head { border-bottom: 1px solid #edf0ee; }
.external-module-panel .dashboard-kpis { padding: 18px; }
.external-module-panel .table-meta { margin: 0 18px 18px; }
.compact-business-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-kpis-creator { --module-accent: #76549a; --module-accent-soft: #f2edf7; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-kpis .kpi,
.dashboard-kpis .kpi:nth-child(n) {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 154px;
  padding: 20px 20px 16px;
  border: 1px solid #dde4e0;
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
  animation: none;
  overflow: hidden;
}
.dashboard-kpis .kpi:before {
  content: "";
  display: block;
  position: absolute;
  inset: 0 0 auto;
  width: auto;
  height: 3px;
  background: var(--module-accent);
}
.dashboard-kpis .kpi:after { display: none; }
.dashboard-kpis .kpi-head { align-items: flex-start; min-height: 24px; }
.dashboard-kpis .kpi-label {
  color: #58645f;
  font-size: 13px;
  font-weight: 620;
  line-height: 1.45;
  letter-spacing: 0;
}
.dashboard-kpis .kpi-mom {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 6px;
  background: var(--module-accent-soft);
  font-size: 10px;
  line-height: 1.35;
}
.dashboard-kpis .kpi-value {
  margin: 9px 0 8px;
  color: #15201c;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: clamp(27px, 2.05vw, 34px);
  font-weight: 680;
  line-height: 1.15;
  letter-spacing: -0.035em;
  font-variant-numeric: tabular-nums;
}
.dashboard-kpis .kpi-value em { margin-left: 5px; color: #7d8984; font-size: 11px; font-weight: 500; letter-spacing: 0; }
.dashboard-kpis .kpi-breakdown {
  gap: 4px 12px;
  min-height: 27px;
  margin: 0;
  padding: 7px 0 0;
  border-top: 1px solid #edf0ee;
  color: #75817c;
  font-size: 10px;
}
.dashboard-kpis .kpi-breakdown b { color: #394640; font-size: 11px; }
.dashboard-kpis .kpi-inspect {
  align-self: flex-start;
  margin: auto 0 0;
  padding: 3px 0 0;
  border: 0;
  background: transparent;
  color: var(--module-accent);
  font-size: 11px;
  font-weight: 600;
}
.dashboard-kpis .kpi-inspect:hover { border: 0; background: transparent; text-decoration: underline; }
.dashboard-kpis .kpi-inspect:focus-visible { outline: 2px solid var(--module-accent); outline-offset: 3px; }
.section-intro {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 2px 0 14px;
}
.section-intro > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid #e4c4c8;
  border-radius: 10px;
  background: #fff7f8;
  color: #a83340;
  font-size: 11px;
  font-weight: 700;
}
.section-intro h2 { margin: 0; color: #26332e; font-size: 17px; }
.section-intro p { margin: 3px 0 0; color: #7a8580; font-size: 11px; }
.incubation-cost-panel,
.incubation-region-panel,
.incubation-trend { margin-top: 14px; }
.incubation-cost-grid {
  --module-accent: #a87527;
  --module-accent-soft: #f8f1e5;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 18px;
}
.incubation-cost-panel .table-meta,
.incubation-region-panel .table-meta { margin: 0 18px 16px; }
.incubation-regions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 18px;
}
.incubation-region-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid #dfe6e2;
  border-radius: 14px;
  background: linear-gradient(180deg, #fff 0%, #fafcfb 100%);
}
.incubation-region-card header span {
  color: #9a6a70;
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .08em;
}
.incubation-region-card h3 {
  margin: 5px 0 15px;
  overflow: hidden;
  color: #25312d;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.incubation-region-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 10px;
  margin: 0;
}
.incubation-region-card dl div { min-width: 0; }
.incubation-region-card dt { color: #7b8782; font-size: 10px; }
.incubation-region-card dd {
  margin: 4px 0 0;
  color: #17221e;
  font-size: 19px;
  font-weight: 680;
  font-variant-numeric: tabular-nums;
}
.incubation-region-card dd small {
  display: block;
  min-height: 14px;
  margin-top: 2px;
  color: #929c98;
  font-size: 9px;
  font-weight: 500;
}
.broker-ranking .panel-head { align-items: center; gap: 16px; }
.broker-ranking .segments.compact { flex: 0 0 auto; padding: 3px; }
.broker-ranking .segments.compact button { min-height: 30px; padding: 5px 10px; font-size: 11px; }
@media (max-width: 1180px) {
  .dashboard-kpis,
  .dashboard-kpis-mcn,
  .dashboard-kpis-incubation,
  .dashboard-kpis-creator,
  .incubation-cost-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .incubation-regions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .dashboard-kpis,
  .dashboard-kpis-mcn,
  .dashboard-kpis-incubation,
  .dashboard-kpis-external,
  .dashboard-kpis-creator { grid-template-columns: 1fr; }
  .dashboard-kpis .kpi,
  .dashboard-kpis .kpi:nth-child(n) { min-height: 142px; }
  .broker-ranking .panel-head { align-items: flex-start; flex-direction: column; }
  .broker-ranking .segments.compact { width: 100%; }
  .broker-ranking .segments.compact button { flex: 1; padding-inline: 4px; }
  .incubation-regions { grid-template-columns: 1fr; padding: 12px; }
}

/* Global BI usage assistant, adapted from the reference system's quiet floating entry. */
.assistant-launcher {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 9px;
  height: 46px;
  padding: 0 17px 0 11px;
  border: 1px solid #b9d7cd;
  border-radius: 24px;
  background: #fff;
  color: #176f66;
  box-shadow: 0 12px 34px rgba(31, 57, 48, .16);
}
.assistant-launcher span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #176f66; color: #fff; }
.assistant-launcher b { font-size: 13px; font-weight: 650; }
.assistant-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 50;
  width: min(520px, 100vw);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  background: #f8faf9;
  color: #23322d;
  box-shadow: -18px 0 60px rgba(25, 47, 39, .18);
}
.assistant-drawer > header { display: flex; align-items: center; justify-content: space-between; padding: 24px 24px 18px; border-bottom: 1px solid #e2e9e5; background: #fff; }
.assistant-drawer > header span { color: #178176; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.assistant-drawer > header h2 { margin-top: 2px; color: #17231f; font-size: 21px; }
.assistant-drawer > header button { border: 0; background: transparent; color: #68766f; font-size: 25px; }
.assistant-drawer > nav { display: flex; gap: 4px; padding: 10px 18px; border-bottom: 1px solid #e3e9e6; background: #fff; }
.assistant-drawer > nav button { border: 0; background: transparent; color: #718078; }
.assistant-drawer > nav button.active { background: #e7f2ee; color: #176f66; }
.assistant-thread { min-height: 0; overflow-y: auto; padding: 22px; }
.assistant-welcome { max-width: 360px; margin: 10vh auto 0; text-align: center; }
.assistant-welcome > span { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 18px; background: #176f66; color: #fff; font-size: 25px; }
.assistant-welcome h3 { color: #17231f; font-size: 18px; }
.assistant-welcome p { margin: 8px 0 20px; color: #74817b; }
.assistant-welcome div { display: grid; gap: 8px; }
.assistant-welcome button { border-color: #d9e4df; background: #fff; color: #3e5049; text-align: left; }
.assistant-message { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; margin-bottom: 18px; }
.assistant-message > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: #e3efeb; color: #176f66; font-size: 11px; font-weight: 700; }
.assistant-message.user > span { background: #eef0f5; color: #536071; }
.assistant-message p { padding: 12px 14px; border: 1px solid #dde6e1; border-radius: 4px 14px 14px; background: #fff; color: #34463f; line-height: 1.75; }
.assistant-message.user p { background: #f1f4f3; }
.assistant-compose { display: grid; grid-template-columns: 1fr auto; gap: 9px; margin: 0 20px; padding: 10px; border: 1px solid #cadbd4; border-radius: 14px; background: #fff; }
.assistant-compose textarea { min-height: 48px; resize: none; border: 0; background: transparent; color: #263630; }
.assistant-compose textarea:focus { outline: 0; }
.assistant-compose button { align-self: end; }
.assistant-footnote { padding: 9px 24px 17px; color: #87938d; text-align: center; }
.assistant-guide { min-height: 0; overflow-y: auto; padding: 24px; }
.assistant-guide-meta { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.assistant-guide-meta strong { font-size: 17px; }
.assistant-guide-meta small { text-align: right; }
.assistant-guide-content { padding: 20px; border: 1px solid #e0e7e3; border-radius: 14px; background: #fff; line-height: 1.85; }
.assistant-admin-summary { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 24px; margin-bottom: 14px; }
.assistant-admin-summary > div > span, .assistant-review-panel .section-heading span { color: #178176; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.assistant-admin-summary h2 { margin: 4px 0; }
.assistant-admin-summary p { color: #68766f; }
.assistant-review-panel { padding: 0; overflow: hidden; }
.assistant-review-panel .section-heading { padding: 22px 24px; border-bottom: 1px solid #e4e9e6; }
.assistant-review-list { display: grid; gap: 12px; padding: 18px; }
.assistant-review-list article { padding: 18px; border: 1px solid #e0e7e3; border-radius: 12px; background: #fbfcfb; }
.assistant-review-list article header, .assistant-review-list article footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.assistant-review-list article header span { color: #738079; font-size: 11px; }
.assistant-review-list article h3 { margin-top: 4px; color: #25342e; font-size: 15px; }
.assistant-review-list label { display: block; margin: 14px 0; }
.assistant-review-list label > span { display: block; margin-bottom: 6px; color: #68766f; font-size: 11px; }
.assistant-review-list textarea { width: 100%; min-height: 110px; resize: vertical; background: #fff; color: #263630; }
@media (max-width: 700px) {
  .assistant-launcher { right: 14px; bottom: 14px; }
  .assistant-drawer { width: 100vw; }
  .assistant-admin-summary, .assistant-review-list article footer { align-items: flex-start; flex-direction: column; }
}

/* OKR tactics: compact ledger layout with strict column boundaries. */
.tactics-panel>header { padding:12px 16px; }
.tactics-panel .table-tools { gap:7px; }
.tactics-panel .table-tools select,
.tactics-panel .table-tools input,
.tactics-panel .table-tools button { min-height:34px; }
.tactics-list thead th {
  padding:9px 10px;
  font-size:9px;
  letter-spacing:.03em;
  text-transform:none;
}
.tactics-list td {
  box-sizing:border-box;
  min-width:0;
  padding:10px;
  border-bottom-width:5px;
  overflow:hidden;
  font-size:11px;
  line-height:1.45;
}
.tactics-list tbody tr:first-child td { border-top-width:5px; }
.tactics-list .tactic-title { min-width:0; gap:7px; }
.tactics-list .tactic-title>strong { font-size:12px; line-height:1.45; }
.tactics-list .okr-relation { min-width:0; gap:3px; }
.tactics-list .okr-relation select {
  height:32px;
  padding:5px 28px 5px 9px;
  font-size:10px;
}
.tactics-list .okr-relation small,
.tactics-list .okr-link-hint { font-size:9px; line-height:1.35; }
.tactics-list .tactic-owner,
.tactics-list .okr-owner-editor {
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.tactics-list .okr-owner-editor input {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
  height:34px;
  padding:6px 9px;
  overflow:hidden;
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tactics-list .okr-owner-editor small { display:none; }
.tactics-list .tactic-description { margin:0; line-height:1.5; }
.tactics-list .tactic-indicator-details { gap:6px; }
.tactics-list .tactic-indicator-details>div {
  grid-template-columns:18px minmax(0,1fr);
  column-gap:6px;
  row-gap:1px;
}
.tactics-list .tactic-indicator-details b {
  width:17px;
  height:17px;
  border-radius:5px;
  font-size:9px;
}
.tactics-list .tactic-indicator-details span { line-height:1.45; }
.tactics-list .tactic-indicator-details small { font-size:9px; }
.tactics-list .campaign-count-button {
  min-width:0;
  width:100%;
  padding:7px 9px;
}
.tactics-list .campaign-count-button strong { font-size:17px; }
.tactics-list .tactic-progress-summary {
  gap:5px;
  margin:0;
  padding:0;
  border:0;
}
.tactics-list .tactic-progress-summary strong { font-size:17px; }
.tactics-list .tactic-progress-track { height:5px; }
.tactics-list .tactic-progress-summary small,
.tactics-list .tactic-progress-summary em {
  display:block;
  overflow:hidden;
  font-size:9px;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tactics-list .tactic-incentive,
.tactics-list .tactic-bonus small { font-size:10px; line-height:1.45; }
.tactics-list .tactic-bonus { gap:4px; }
.tactics-list .tactic-bonus strong { font-size:15px; }
.tactics-list .tactic-row-actions .okr-item-actions { gap:5px; }
.tactics-list .tactic-row-actions button { padding:5px 7px; font-size:9px; }

/* ── 分销业务模块 ── */
.dist-target { margin-bottom:14px; padding:12px 14px; background:#f0fdfa; border:1px solid #99f6e4; border-radius:10px; }
.dist-target-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-size:13px; color:#0f766e; }
.dist-target-head b { font-size:20px; }
.dist-progress { height:10px; background:#ccfbf1; border-radius:6px; overflow:hidden; }
.dist-progress i { display:block; height:100%; background:linear-gradient(90deg,#14b8a6,#0d9488); border-radius:6px; transition:width .5s ease; }
.dist-target small { display:block; margin-top:6px; color:#5eead4; font-size:11px; color:#0f766e; opacity:.75; }
.dist-bars { display:flex; align-items:flex-end; gap:14px; height:170px; padding:12px 8px 4px; }
.dist-match-channels { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.dist-channel { border:1px solid rgba(120,144,156,.25); border-radius:12px; padding:14px 16px; }
.dist-channel h3 { margin:0 0 6px; font-size:15px; }
.dist-bar { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:4px; flex:1; max-width:64px; }
.dist-bar i { display:block; width:26px; background:linear-gradient(180deg,#14b8a6,#0f766e); border-radius:5px 5px 0 0; }
.dist-bar small { font-size:10px; color:#64748b; white-space:nowrap; }
.dist-table { width:100%; border-collapse:collapse; font-size:12px; }
.dist-table th { text-align:left; padding:8px 10px; background:#f8fafc; color:#475569; font-weight:600; border-bottom:1px solid #e2e8f0; white-space:nowrap; }
.dist-table td { padding:8px 10px; border-bottom:1px solid #f1f5f9; vertical-align:top; }
.dist-table tr:hover td { background:#f8fafc; }

/* 校企实训运营层 */
.dist-form { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin-top:12px; padding-top:12px; border-top:1px dashed #e2e8f0; }
.dist-form label { display:flex; flex-direction:column; gap:4px; }
.dist-form label.wide { flex:1; min-width:200px; }
.dist-form label span { font-size:11px; color:#64748b; }
.dist-form input, .dist-form select { padding:7px 9px; border:1px solid #cbd5e1; border-radius:6px; font-size:12px; min-width:110px; }
.dist-form .primary { align-self:flex-end; }
.dist-chip { display:inline-block; padding:1px 8px; border-radius:999px; background:#eef2ff; color:#4338ca; font-size:11px; margin-right:4px; }
.dist-table td small { display:block; color:#94a3b8; font-size:10px; }
.dist-action-list { display:flex; flex-direction:column; gap:10px; }
.dist-action-item { border:1px solid #e2e8f0; border-radius:8px; padding:10px 12px; }
.dist-action-item header { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.dist-action-item h4 { margin:0; font-size:13px; }
.dist-action-item small { color:#94a3b8; font-size:11px; }
.dist-action-item select { padding:4px 6px; border:1px solid #cbd5e1; border-radius:6px; font-size:12px; }
.dist-action-detail { margin:8px 0 0; font-size:12px; color:#475569; }
.dist-fb { margin-top:8px; padding:6px 8px; background:#f8fafc; border-radius:6px; font-size:12px; }
.dist-fb strong { font-size:11px; }
.dist-fb p { margin:2px 0 0; }
.dist-fb-compose { display:flex; gap:6px; margin-top:8px; }
.dist-fb-compose input { flex:1; padding:6px 8px; border:1px solid #cbd5e1; border-radius:6px; font-size:12px; }
.dist-fb-compose button { padding:6px 12px; border:none; background:#4f46e5; color:#fff; border-radius:6px; font-size:12px; cursor:pointer; }
.danger-button { padding:4px 8px; border:1px solid #fecaca; background:#fff; color:#dc2626; border-radius:6px; font-size:11px; cursor:pointer; }
.danger-button:hover { background:#fef2f2; }
.dist-note-list { margin:0; padding-left:18px; font-size:12px; color:#475569; }
.dist-note-list li { margin:4px 0; }
