:root {
  --navy-950: #061b36;
  --navy-900: #0a2547;
  --navy-800: #123763;
  --cobalt: #2463d4;
  --cobalt-2: #3479ec;
  --glacier: #71aee4;
  --cyan: #59d4f2;
  --ice: #eaf3fb;
  --paper: #ffffff;
  --bg: #f3f7fc;
  --line: #dce6f1;
  --line-strong: #c6d7e8;
  --ink: #14233a;
  --muted: #718198;
  --green: #13a477;
  --green-soft: #e8f8f2;
  --orange: #f59b32;
  --orange-soft: #fff3e3;
  --red: #ed4149;
  --red-soft: #fff0f1;
  --purple: #7868df;
  --shadow: 0 12px 34px rgba(30, 65, 110, .08);
  --shadow-strong: 0 18px 50px rgba(24, 68, 126, .14);
  --radius: 14px;
  --font-caption: clamp(10px, calc(9px + .08vw), 11px);
  --font-body: clamp(12px, calc(10px + .15vw), 14px);
  --font-card-title: clamp(14px, calc(12px + .15vw), 16px);
  --font-section-title: clamp(16px, calc(13px + .27vw), 20px);
  --font-page-title: clamp(22px, calc(16px + .47vw), 28px);
  --font-metric: clamp(26px, calc(14px + .86vw), 36px);
  --font-nav: clamp(15px, calc(13px + .16vw), 17px);
  --line-body: 1.6;
  --line-caption: 1.4;
  --line-title: 1.25;
}

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 78% -8%, rgba(83, 180, 239, .14), transparent 27%),
    linear-gradient(180deg, #f7faff 0%, var(--bg) 44%, #eef4fb 100%);
  font-family: Inter, "SF Pro Display", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, textarea, select { font: inherit; }
button { color: inherit; }
.ui-icon,
.kpi-svg-icon,
.task-svg-icon,
.method-svg-icon,
.report-metric-svg-icon,
.context-svg-icon,
.evidence-svg-icon,
.task-card-svg-icon,
.send-svg-icon,
.button-svg-icon,
.composer-task-icon,
.composer-tool-icon,
.analysis-status-icon,
.period-icon,
.risk-svg-icon,
.bank-logo-icon,
.search-svg-icon,
.task-list-svg-icon,
.recent-svg-icon,
.building-svg-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  overflow: visible;
  color: currentColor;
  vertical-align: -.14em;
}

.shell { min-height: 100vh; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  height: 64px;
  align-items: center;
  border-bottom: 1px solid rgba(198, 215, 232, .86);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 6px 24px rgba(38, 73, 118, .045);
  backdrop-filter: blur(18px);
}
.brand {
  display: flex;
  min-width: 375px;
  align-items: center;
  gap: 9px;
  padding-left: 24px;
  cursor: pointer;
}
.bank-mark {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 2px;
  color: #fff;
  background: linear-gradient(145deg, #0868c2, #0055a8);
  box-shadow: 0 6px 14px rgba(0, 87, 169, .2);
  font-size: 18px;
  font-weight: 900;
}
.bank-logo-icon { width: 33px; height: 33px; color: #fff; }
.bank-wordmark { min-width: 77px; color: #0868c2; line-height: 1; }
.bank-wordmark strong { display: block; font-size: 19px; font-weight: 850; letter-spacing: .08em; }
.bank-wordmark small { display: block; margin-top: 4px; color: #0868c2; font-size: 7px; font-weight: 700; letter-spacing: -.02em; }
.brand-divider { width: 1px; height: 31px; margin: 0 2px; background: linear-gradient(180deg, transparent, #b8c7d8 18%, #b8c7d8 82%, transparent); }
.platform-wordmark { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 5px; color: #26384e; line-height: 1; }
.platform-wordmark strong { font-size: 12px; font-weight: 750; letter-spacing: .02em; }
.platform-wordmark span { font-size: 12px; font-weight: 650; white-space: nowrap; }
.platform-wordmark small { grid-column: 1 / -1; display: block; margin-top: 5px; color: #8b9caf; font-size: 6px; letter-spacing: .11em; white-space: nowrap; }
.main-nav { display: flex; height: 100%; align-items: stretch; gap: 12px; }
.main-nav button {
  position: relative;
  min-width: 92px;
  border: 0;
  background: transparent;
  color: #29384e;
  cursor: pointer;
  font-size: 13px;
  transition: .2s ease;
}
.main-nav button:hover { color: var(--cobalt); }
.main-nav button.active { color: var(--cobalt); font-weight: 700; }
.main-nav button.active::after {
  position: absolute;
  right: 18px;
  bottom: 0;
  left: 18px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: linear-gradient(90deg, var(--cobalt), var(--cyan));
  box-shadow: 0 0 14px rgba(36, 99, 212, .4);
  content: "";
}
.top-actions { display: flex; align-items: center; gap: 11px; margin-left: auto; padding-right: 20px; }
.system-state { display: flex; align-items: center; gap: 8px; color: #34455b; font-size: 10px; }
.system-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(19, 164, 119, .08), 0 0 13px rgba(19, 164, 119, .35); animation: pulse 2.2s infinite; }
.icon-btn, .user-btn, .mobile-menu {
  position: relative;
  display: grid;
  width: 35px;
  height: 35px;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
}
.icon-btn:hover, .user-btn:hover { border-color: var(--line); background: #f6f9fd; }
.icon-btn em { position: absolute; top: -3px; right: -4px; display: grid; width: 16px; height: 16px; place-items: center; border-radius: 50%; color: white; background: var(--red); font-size: 8px; font-style: normal; }
.user-btn { border-color: #d8e4ef; color: #fff; background: linear-gradient(145deg, var(--cobalt), #12458f); }
.user-menu {
  position: absolute;
  top: 55px;
  right: 18px;
  z-index: 80;
  width: 205px;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--shadow-strong);
  animation: pop .16s ease;
}
.user-menu header { padding: 10px 10px 12px; border-bottom: 1px solid #edf1f6; }
.user-menu b, .user-menu small { display: block; }
.user-menu b { font-size: 11px; }.user-menu small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.user-menu button { width: 100%; margin-top: 5px; padding: 10px; border: 0; border-radius: 8px; background: transparent; color: #53657c; text-align: left; cursor: pointer; font-size: 10px; }
.user-menu button:hover { color: var(--cobalt); background: #f1f6fd; }
.mobile-menu { display: none; }

.page {
  position: relative;
  width: min(1680px, 100%);
  margin: 0 auto;
  padding: 18px 28px 52px;
  animation: pageIn .3s ease;
}
.page.soft-render { animation: none; }
.diag-side.soft-render { animation: surfaceIn .24s cubic-bezier(.2, .8, .2, 1); }
.copilot-center.soft-render,
.copilot-right.soft-render { animation: surfaceIn .2s cubic-bezier(.2, .8, .2, 1); }
.page::before, .page::after {
  position: fixed;
  z-index: -1;
  width: 190px;
  height: 390px;
  opacity: .2;
  background-image: linear-gradient(90deg, rgba(60, 143, 226, .22) 1px, transparent 1px), linear-gradient(rgba(60, 143, 226, .18) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(90deg, transparent, #000, transparent);
  content: "";
}
.page::before { left: -70px; top: 16%; }.page::after { right: -80px; bottom: 3%; transform: rotate(180deg); }
.page-head { display: flex; min-height: 56px; align-items: flex-start; justify-content: space-between; }
.page-title h1 { margin: 0; font-size: 19px; letter-spacing: -.02em; }
.page-title p { margin: 7px 0 0; color: var(--muted); font-size: 9px; }
.page-actions { display: flex; align-items: center; gap: 9px; }
.control, .secondary, .primary, .danger, .text-button {
  height: 35px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 9px;
  transition: .2s ease;
}
.control { min-width: 118px; padding: 0 11px; border: 1px solid var(--line-strong); color: #536983; background: rgba(255, 255, 255, .88); }
.secondary { padding: 0 13px; border: 1px solid #a8c3e8; color: var(--cobalt); background: #fff; }
.primary { padding: 0 17px; border: 0; color: #fff; background: linear-gradient(120deg, #194e9d, var(--cobalt-2)); box-shadow: 0 8px 20px rgba(36, 99, 212, .22); }
.danger { padding: 0 14px; border: 1px solid #f1b9bd; color: #c43b43; background: #fff5f5; }
.secondary:hover, .primary:hover, .danger:hover { transform: translateY(-1px); }
.primary:disabled { opacity: .65; cursor: wait; transform: none; }
.text-button { height: auto; border: 0; color: var(--cobalt); background: transparent; }

.card {
  border: 1px solid rgba(213, 225, 238, .92);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--shadow);
}
.smart-card { position: relative; overflow: hidden; }
.smart-card::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(82, 164, 236, .07), transparent 26%, transparent 72%, rgba(89, 212, 242, .07));
  content: "";
}
.panel-head { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
.panel-head h2 { margin: 0; font-size: 13px; }.panel-head p { margin: 4px 0 0; color: var(--muted); font-size: 8px; }
.panel-head .link { border: 0; color: var(--cobalt); background: transparent; cursor: pointer; font-size: 8px; }

.orbital {
  position: relative;
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.orbital::before, .orbital::after { position: absolute; border: 1px solid rgba(70, 154, 231, .23); border-radius: 50%; content: ""; animation: rotate 10s linear infinite; }
.orbital::before { inset: -7px; border-style: dashed; }.orbital::after { inset: -12px; border-color: rgba(89, 212, 242, .15); animation-direction: reverse; animation-duration: 16s; }

.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 12px 0; }
.kpi { position: relative; display: flex; min-height: 108px; align-items: center; gap: 16px; padding: 17px 20px; overflow: hidden; }
.kpi::after { position: absolute; right: -24px; bottom: -22px; width: 110px; height: 70px; opacity: .36; background-image: radial-gradient(circle, #8fc8f0 1px, transparent 1.5px); background-size: 8px 8px; content: ""; }
.kpi-icon { display: grid; flex: 0 0 52px; width: 52px; height: 52px; place-items: center; border: 1px solid rgba(118, 173, 229, .45); border-radius: 50%; color: #fff; background: radial-gradient(circle at 35% 28%, #79b7ee, #2d69bb 55%, #123a74); box-shadow: inset 0 0 13px rgba(255,255,255,.25), 0 7px 17px rgba(32,93,165,.18); font-size: 22px; }
.kpi-svg-icon { width: 27px; height: 27px; color: #fff; filter: drop-shadow(0 2px 4px rgba(3, 27, 64, .22)); }
.kpi-icon.green { background: radial-gradient(circle at 35% 28%, #73dac2, #18a67d 55%, #08725a); }.kpi-icon.orange { background: radial-gradient(circle at 35% 28%, #ffd18e, #f59b32 55%, #c1690c); }.kpi-icon.red { background: radial-gradient(circle at 35% 28%, #ff9da2, #e94750 55%, #a92831); }.kpi-icon.purple { background: radial-gradient(circle at 35% 28%, #aaa0f2, #7868df 55%, #4d3eae); }
.kpi span { color: #73849a; font-size: 9px; }.kpi strong { display: block; margin-top: 6px; font-size: 22px; letter-spacing: -.03em; }.kpi strong small { color: #7e8da1; font-size: 9px; font-weight: 400; }.kpi p { margin: 5px 0 0; color: var(--muted); font-size: 8px; }.kpi p.good { color: var(--green); }

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(330px, .8fr) 350px; gap: 12px; }
.ai-summary {
  position: relative;
  min-height: 185px;
  overflow: hidden;
  padding: 24px 28px;
  border-color: rgba(77, 147, 221, .55);
  color: #fff;
  background:
    radial-gradient(circle at 78% 48%, rgba(45, 141, 255, .35), transparent 22%),
    linear-gradient(110deg, #072548, #0b376a 62%, #0f4380);
  box-shadow: 0 16px 42px rgba(9, 51, 99, .22);
}
.ai-summary::before { position: absolute; inset: 0; opacity: .23; background-image: linear-gradient(rgba(138, 196, 242, .14) 1px, transparent 1px), linear-gradient(90deg, rgba(138, 196, 242, .14) 1px, transparent 1px); background-size: 26px 26px; mask-image: linear-gradient(90deg, transparent, #000 58%, #000); content: ""; }
.ai-summary h2, .ai-summary p, .ai-summary .summary-stats { position: relative; z-index: 2; }.ai-summary h2 { margin: 0; font-size: 15px; }.ai-summary p { max-width: 70%; margin: 11px 0 0; color: #c2d3e8; font-size: 10px; line-height: 1.85; }.summary-stats { display: flex; gap: 26px; margin-top: 21px; }.summary-stats span { color: #d9e7f7; font-size: 10px; }.summary-stats b { margin-right: 5px; font-size: 15px; }
.summary-stats span { display: inline-flex; align-items: center; gap: 6px; }
.summary-stat-icon { width: 22px; height: 22px; padding: 4px; border-radius: 50%; color: #fff; background: rgba(71, 139, 218, .56); box-shadow: 0 0 12px rgba(86, 182, 255, .25); }
.summary-stat-icon.alert { color: #ffd9d9; background: rgba(237, 65, 73, .78); }
.summary-stat-icon.opportunity { color: #d7edff; background: rgba(50, 126, 218, .8); }
.summary-stat-icon.healthy { color: #d9fff3; background: rgba(19, 164, 119, .78); }
.period-icon { width: 13px; height: 13px; }
.inference-orbit { position: absolute; right: 15px; top: -33px; width: 260px; height: 260px; border: 1px solid rgba(122, 199, 255, .24); border-radius: 50%; box-shadow: inset 0 0 35px rgba(71, 164, 255, .12), 0 0 0 35px rgba(66, 150, 242, .045), 0 0 0 70px rgba(66, 150, 242, .025); animation: breathe 3.2s ease-in-out infinite; }
.inference-orbit::before, .inference-orbit::after { position: absolute; border-radius: 50%; content: ""; }.inference-orbit::before { inset: 60px; border: 1px dashed rgba(119, 220, 255, .55); animation: rotate 12s linear infinite; }.inference-orbit::after { inset: 105px; background: #8be7ff; box-shadow: 0 0 18px #5bcffa, 0 0 55px rgba(73, 158, 255, .75); }
.risk-card, .assistant-mini { padding: 20px; }.risk-card .risk-title { display: flex; align-items: center; gap: 12px; margin-top: 17px; padding: 14px; border: 1px solid #f3d5d8; border-radius: 10px; background: #fff8f8; }.risk-badge { display: grid; width: 33px; height: 33px; place-items: center; border-radius: 8px; color: #fff; background: var(--red); font-size: 11px; }.risk-title h3 { margin: 0; font-size: 11px; }.risk-title p { margin: 4px 0 0; color: var(--muted); font-size: 8px; }.risk-meta { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 16px; }.risk-meta div { padding: 0 10px; border-left: 1px solid #e7edf4; }.risk-meta div:first-child { padding-left: 0; border: 0; }.risk-meta span { color: var(--muted); font-size: 7px; }.risk-meta b { display: block; margin-top: 5px; font-size: 10px; }.risk-meta .red { color: var(--red); }
.risk-svg-icon { width: 20px; height: 20px; }
.assistant-mini { display: flex; min-height: 185px; flex-direction: column; }.assistant-head { display: flex; align-items: center; gap: 10px; }.robot { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #a6c9ed; border-radius: 50%; color: #c9ebff; background: radial-gradient(circle, #2e6fbe, #0a315f); box-shadow: 0 0 0 6px rgba(67, 154, 231, .08), 0 0 22px rgba(62, 155, 232, .22); font-size: 15px; }.assistant-head div { flex: 1; }.assistant-head b { font-size: 12px; }.assistant-head small { display: block; margin-top: 3px; color: var(--green); font-size: 7px; }.assistant-message { margin-top: 13px; padding: 11px 12px; border: 1px solid #d8e5f2; border-radius: 10px; color: #62758d; background: #f7faff; font-size: 9px; line-height: 1.7; }.quick-tasks { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }.quick-tasks button { padding: 9px; border: 1px solid var(--line); border-radius: 8px; color: #536983; background: #fff; cursor: pointer; font-size: 8px; text-align: left; }.quick-tasks button:hover { color: var(--cobalt); border-color: #a6c8ef; background: #f5f9ff; }.mini-input { display: flex; gap: 7px; margin-top: auto; padding-top: 12px; }.mini-input input { min-width: 0; flex: 1; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; outline: none; color: #3f526a; background: #fff; font-size: 8px; }.mini-input input:focus { border-color: #7daee5; box-shadow: 0 0 0 3px rgba(51, 119, 216, .08); }.mini-input button { width: 35px; border: 0; border-radius: 8px; color: #fff; background: var(--cobalt); cursor: pointer; }

.dashboard-row { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); gap: 12px; margin-top: 12px; }.panel { padding: 18px 20px; }.chart { display: block; width: 100%; height: 220px; margin-top: 8px; }.donut-wrap { display: grid; grid-template-columns: 170px 1fr; align-items: center; margin-top: 18px; }.donut { position: relative; display: grid; width: 155px; height: 155px; place-items: center; border-radius: 50%; background: conic-gradient(#286bd0 0 45.2%, #21a2d7 45.2% 63.8%, #f59b32 63.8% 80.1%, #51b99b 80.1% 89.9%, #8b86db 89.9%); box-shadow: 0 0 0 8px rgba(62, 148, 228, .05), 0 8px 24px rgba(38, 106, 175, .13); }.donut::before { position: absolute; inset: 22px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px #e6edf5; content: ""; }.donut div { position: relative; text-align: center; }.donut b { display: block; font-size: 18px; }.donut span { color: var(--muted); font-size: 8px; }.legend-list div { display: flex; align-items: center; margin: 9px 0; color: #687990; font-size: 8px; }.legend-list i { width: 7px; height: 7px; margin-right: 8px; border-radius: 2px; }.legend-list span { flex: 1; }.legend-list b { color: #394d66; }
.bottom-grid { display: grid; grid-template-columns: 1.08fr .95fr; gap: 12px; margin-top: 12px; }.data-table { width: 100%; margin-top: 10px; border-collapse: collapse; font-size: 8px; }.data-table th { padding: 9px; color: #8090a4; background: #f5f8fc; text-align: left; font-weight: 500; }.data-table td { padding: 10px 9px; border-bottom: 1px solid #edf1f6; color: #55677d; }.data-table tbody tr { transition: .15s; }.data-table tbody tr.clickable { cursor: pointer; }.data-table tbody tr.clickable:hover, .data-table tbody tr.selected { background: #f2f7fe; }.status { display: inline-flex; align-items: center; padding: 4px 6px; border-radius: 5px; font-size: 7px; }.status.red { color: #c9363e; background: var(--red-soft); }.status.orange { color: #b36c12; background: var(--orange-soft); }.status.green { color: #14835f; background: var(--green-soft); }.status.blue { color: #2c67bb; background: #eaf2fd; }.progress { width: 90px; height: 5px; border-radius: 8px; background: #e9eff6; }.progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--cobalt), var(--cyan)); }

.pipeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 17px 24px; }.stage { position: relative; display: flex; align-items: center; gap: 12px; }.stage:not(:last-child)::after { position: absolute; right: 15px; width: 38%; height: 1px; background: linear-gradient(90deg, #8db8e7, #d2dfec); content: ""; }.stage-num { display: grid; width: 38px; height: 38px; place-items: center; border: 2px solid #7db3ed; border-radius: 50%; color: var(--cobalt); background: #fff; box-shadow: 0 0 0 6px rgba(64, 143, 224, .06); font-weight: 700; }.stage.done .stage-num { color: #fff; background: linear-gradient(145deg, #397fe2, #1854ad); }.stage.ai .stage-num { background: linear-gradient(145deg, #34b991, #087f61); }.stage b { display: block; font-size: 10px; }.stage small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; }
.diag-layout { display: grid; grid-template-columns: minmax(0, 1fr) 325px; gap: 12px; }.diag-main { min-width: 0; }.diag-side { padding: 18px; }.evidence-step { position: relative; margin: 14px 0; padding-left: 33px; }.evidence-step:not(:last-child)::before { position: absolute; top: 25px; bottom: -17px; left: 13px; width: 1px; background: linear-gradient(#4385d9, #d7e3ef); content: ""; }.evidence-step>i { position: absolute; top: 0; left: 0; display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid #84b4e8; border-radius: 50%; color: var(--cobalt); background: #fff; box-shadow: 0 0 0 5px rgba(69,143,222,.06); font-size: 9px; font-style: normal; }.evidence-step>div { padding: 11px; border: 1px solid #e0e8f1; border-radius: 9px; background: #fafcff; }.evidence-step b { font-size: 9px; }.evidence-step span { float: right; }.evidence-step p { margin: 7px 0 0; color: #728299; font-size: 8px; line-height: 1.6; }.evidence-summary { margin-top: 15px; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: #f7faff; }.evidence-summary div { display: flex; justify-content: space-between; margin: 8px 0; color: var(--muted); font-size: 8px; }.evidence-summary b { color: #40536b; }
.diag-charts { display: grid; grid-template-columns: 1.25fr 1fr; gap: 12px; margin-top: 12px; }.method-flow { display: flex; align-items: center; justify-content: space-between; margin-top: 26px; }.method-flow div { position: relative; text-align: center; }.method-flow div:not(:last-child)::after { position: absolute; top: 18px; left: calc(50% + 28px); width: 80px; height: 1px; background: linear-gradient(90deg, var(--cobalt), #cbdbea); content: ""; }.method-flow i { display: grid; width: 37px; height: 37px; margin: auto; place-items: center; border: 1px solid #afd0ed; border-radius: 50%; color: var(--cobalt); background: #f7fbff; box-shadow: 0 0 0 6px rgba(66,143,222,.05); font-style: normal; }.method-flow b { display: block; margin-top: 8px; font-size: 8px; }.method-flow span { display: block; margin-top: 3px; color: var(--muted); font-size: 6px; }

.energy-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(390px, .8fr) 325px; gap: 12px; }.matrix { position: relative; height: 330px; margin-top: 13px; border-left: 1px solid #8fa9c3; border-bottom: 1px solid #8fa9c3; background: linear-gradient(90deg, transparent 49.9%, #dbe6f1 50%, transparent 50.1%), linear-gradient(transparent 49.9%, #dbe6f1 50%, transparent 50.1%); }.matrix::before { position: absolute; top: 0; right: 0; width: 50%; height: 50%; border-radius: 0 12px 0 0; background: linear-gradient(135deg, rgba(81, 157, 232, .03), rgba(69, 139, 222, .16)); content: ""; }.axis-y, .axis-x { position: absolute; color: #77899f; font-size: 8px; }.axis-y { top: 5px; left: 7px; }.axis-x { right: 8px; bottom: 7px; }.matrix-node { position: absolute; display: flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid #d5e3f0; border-radius: 20px; background: rgba(255,255,255,.95); box-shadow: 0 6px 18px rgba(46, 85, 128, .08); cursor: pointer; font-size: 9px; transition: .2s; }.matrix-node:hover, .matrix-node.active { transform: translateY(-2px); border-color: #8ab9e8; box-shadow: 0 8px 24px rgba(36,99,212,.16); }.matrix-node i { width: 12px; height: 12px; border: 3px solid currentColor; border-radius: 50%; box-shadow: 0 0 0 5px currentColor; opacity: .72; }.matrix-node.n1 { top: 18%; left: 59%; color: #1d68cd; }.matrix-node.n2 { top: 23%; left: 18%; color: #13a477; }.matrix-node.n3 { top: 62%; left: 12%; color: #7465d8; }.matrix-node.n4 { top: 62%; left: 64%; color: #e98a19; }
.dark-ai-card { position: relative; overflow: hidden; padding: 18px; color: #fff; background: linear-gradient(145deg, #061e3a, #0b3b73); }.dark-ai-card::after { position: absolute; top: -90px; right: -30px; width: 220px; height: 220px; border: 1px solid rgba(105, 202, 255, .33); border-radius: 50%; box-shadow: 0 0 0 32px rgba(62,149,236,.07), 0 0 0 64px rgba(62,149,236,.03); content: ""; animation: breathe 3s infinite; }.dark-ai-card h2 { position: relative; z-index: 2; margin: 0; font-size: 13px; }.recommendation { position: relative; z-index: 2; display: grid; grid-template-columns: 24px 1fr 30px 30px; gap: 8px; align-items: center; margin-top: 10px; padding: 9px; border: 1px solid rgba(141,195,245,.17); border-radius: 8px; background: rgba(4,18,35,.28); font-size: 8px; }.recommendation>i { display: grid; width: 20px; height: 20px; place-items: center; border: 1px solid #86c5fa; border-radius: 50%; font-style: normal; }.recommendation small { color: #8fd8c0; }.dark-ai-card button { position: relative; z-index: 2; width: 100%; height: 31px; margin-top: 10px; border: 1px solid rgba(104,190,255,.55); border-radius: 6px; color: #fff; background: rgba(21,93,171,.7); cursor: pointer; font-size: 9px; }
.kanban { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 11px; }.kanban-col { padding: 10px; border: 1px solid #e0e8f1; border-radius: 10px; background: #f8fafd; }.kanban-col h3 { margin: 0 0 8px; color: #4f6279; font-size: 9px; }.task-card { margin-top: 7px; padding: 10px; border: 1px solid #e0e8f1; border-radius: 8px; background: #fff; cursor: pointer; transition: .2s; }.task-card:hover, .task-card.active { border-color: #4a8cdc; box-shadow: 0 6px 16px rgba(42,101,174,.1); transform: translateY(-1px); }.task-card b { display: block; font-size: 8px; }.task-card p { margin: 5px 0; color: var(--muted); font-size: 7px; }.task-card span { color: #75869b; font-size: 7px; }.timeline { margin-top: 14px; }.timeline div { position: relative; padding: 0 0 16px 22px; color: #73849a; font-size: 8px; }.timeline div::before { position: absolute; top: 2px; left: 0; width: 8px; height: 8px; border: 2px solid #a8c6e7; border-radius: 50%; background: #fff; content: ""; }.timeline div.done::before { border-color: var(--green); background: var(--green); }.timeline div.active::before { border-color: var(--cobalt); box-shadow: 0 0 0 5px rgba(36,99,212,.08); }.timeline div:not(:last-child)::after { position: absolute; top: 12px; bottom: 0; left: 5px; width: 1px; background: #d8e3ee; content: ""; }.side-detail { padding: 18px; }.side-detail section { margin-top: 15px; padding: 12px; border: 1px solid #e0e8f1; border-radius: 9px; }.side-detail dl { display: grid; grid-template-columns: 70px 1fr; gap: 11px 5px; margin: 0; font-size: 8px; }.side-detail dt { color: #8190a3; }.side-detail dd { margin: 0; color: #455971; }.full-btn { width: 100%; height: 38px; margin-top: 14px; border: 0; border-radius: 8px; color: #fff; background: linear-gradient(110deg, #174f9e, #2773dd); box-shadow: 0 8px 20px rgba(36,99,212,.18); cursor: pointer; font-size: 10px; }

.report-layout { display: grid; grid-template-columns: 345px minmax(0, 1fr) 315px; gap: 12px; }.report-list { padding: 16px; }.filter-tabs, .report-tabs { display: flex; gap: 6px; }.filter-tabs button, .report-tabs button { padding: 7px 11px; border: 1px solid transparent; border-radius: 7px; color: #6e8097; background: #f2f6fb; cursor: pointer; font-size: 8px; }.filter-tabs button.active, .report-tabs button.active { border-color: #76a9e7; color: var(--cobalt); background: #fff; }.report-item { display: grid; grid-template-columns: 52px 1fr auto; gap: 10px; align-items: center; margin-top: 8px; padding: 12px; border: 1px solid #e1e8f0; border-radius: 9px; background: #fff; cursor: pointer; }.report-item:hover, .report-item.active { border-color: #478be0; background: #f6f9fe; box-shadow: 0 5px 16px rgba(36,99,212,.08); }.report-month { color: var(--cobalt); font-size: 19px; text-align: center; }.report-month small { display: block; color: #67809f; font-size: 8px; }.report-item b { display: block; font-size: 9px; }.report-item p { margin: 4px 0 0; color: var(--muted); font-size: 7px; }.report-viewer { padding: 14px; }.viewer-tools { display: flex; align-items: center; justify-content: space-between; }.report-paper { margin-top: 10px; padding: 18px 28px; border: 1px solid #e2e8f0; background: #fff; box-shadow: inset 0 0 0 1px #f6f8fb; }.report-paper>h2 { margin: 0; font-size: 17px; text-align: center; }.report-paper>p { margin: 5px 0 12px; color: var(--muted); font-size: 7px; text-align: center; }.report-summary { position: relative; overflow: hidden; padding: 14px 16px; border-radius: 8px; color: #fff; background: linear-gradient(110deg, #08254a, #0b3f7b); }.report-summary::after { position: absolute; top: -80px; right: -20px; width: 200px; height: 200px; border: 1px solid rgba(90,197,255,.4); border-radius: 50%; box-shadow: 0 0 0 30px rgba(62,149,236,.06), 0 0 0 60px rgba(62,149,236,.03); content: ""; }.report-summary b { position: relative; z-index: 2; font-size: 9px; }.report-summary p { position: relative; z-index: 2; width: 72%; margin: 7px 0 0; color: #c8d9ec; font-size: 8px; line-height: 1.6; }.report-score { position: absolute; top: 16px; right: 35%; z-index: 3; text-align: center; }.report-score strong { display: block; font-size: 22px; }.report-score span { font-size: 7px; }.report-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 12px; }.report-kpis div { padding: 10px; border: 1px solid #e0e8f1; border-radius: 8px; }.report-kpis span { color: #7b8ba0; font-size: 7px; }.report-kpis b { display: block; margin-top: 5px; font-size: 12px; }.report-mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }.report-mini-grid article { padding: 10px; border: 1px solid #e1e8f0; border-radius: 8px; }.report-mini-grid h3 { margin: 0; font-size: 8px; }.finding { display: flex; gap: 7px; margin-top: 7px; font-size: 7px; }.finding i { display: grid; width: 17px; height: 17px; place-items: center; border-radius: 4px; color: #fff; background: var(--cobalt); font-style: normal; }.report-side { display: flex; flex-direction: column; gap: 12px; }.report-side .card { padding: 16px; }.info-list div { display: flex; justify-content: space-between; margin: 10px 0; color: #75869a; font-size: 8px; }.info-list b { color: #40546c; font-weight: 500; }.ai-audit { display: flex; align-items: center; gap: 16px; }.ai-audit-orb { display: grid; width: 70px; height: 70px; place-items: center; border: 1px solid #83b9ec; border-radius: 50%; color: #fff; background: radial-gradient(circle, #2f87e9, #073466); box-shadow: 0 0 0 8px rgba(63,147,229,.06), 0 0 28px rgba(40,130,221,.2); font-size: 21px; font-weight: 800; }.audit-list { flex: 1; }.audit-list div { margin: 8px 0; color: #5f728a; font-size: 8px; }.audit-list i { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--green); }

.report-month.annual { font-size: 14px; font-weight: 750; letter-spacing: .05em; }
.annual-report-paper .report-summary p { width: 70%; }
.annual-report-embed {
  height: calc(100% - 43px);
  min-height: 560px;
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid #d8e4ef;
  border-radius: 10px;
  background: #eef4fb;
}
.annual-report-frame { display: block; width: 100%; height: 100%; border: 0; background: #eef4fb; }

.copilot-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr) 405px; gap: 12px; height: calc(100vh - 100px); min-height: 740px; }.copilot-left, .copilot-center, .copilot-right { overflow: hidden; }.copilot-left { display: flex; flex-direction: column; padding: 17px; }.copilot-brand { display: flex; align-items: center; gap: 10px; }.new-chat { width: 100%; height: 39px; margin-top: 14px; border: 0; border-radius: 8px; color: #fff; background: linear-gradient(110deg, #174e9e, #2470d9); cursor: pointer; }.search { width: 100%; margin-top: 11px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; outline: 0; background: #f9fbfe; font-size: 8px; }.task-list h3, .recent-list h3 { margin: 17px 0 9px; font-size: 10px; }.task-list button, .recent-list button { display: flex; width: 100%; align-items: center; gap: 9px; margin-top: 6px; padding: 9px 10px; border: 1px solid #e2e9f1; border-radius: 8px; color: #556a82; background: #fff; cursor: pointer; font-size: 8px; text-align: left; }.task-list button:hover, .recent-list button:hover, .recent-list button.active { color: var(--cobalt); border-color: #a8c6e8; background: #f2f7fe; }.recent-list { min-height: 0; overflow: auto; }.building-selector { margin-top: auto; padding: 11px; border: 1px solid #e0e8f1; border-radius: 9px; color: #4a6079; background: #f8fafd; font-size: 8px; }.copilot-center { display: flex; flex-direction: column; }.conversation-head { display: flex; min-height: 66px; align-items: center; justify-content: space-between; padding: 0 20px; border-bottom: 1px solid #e2e9f1; }.conversation-head h2 { margin: 0; font-size: 13px; }.conversation-head p { margin: 4px 0 0; color: var(--muted); font-size: 7px; }.conversation-body { flex: 1; overflow-y: auto; padding: 17px 22px; }.message { display: flex; gap: 10px; margin-bottom: 13px; }.message.user { justify-content: flex-end; }.message.user .bubble { max-width: 62%; border: 1px solid #c7d9ee; border-radius: 10px 2px 10px 10px; background: #f2f7fe; }.message .bubble { max-width: 88%; padding: 11px 13px; border-radius: 2px 10px 10px; color: #53677f; background: #f5f8fc; font-size: 9px; line-height: 1.7; }.message.bot .bubble { border: 1px solid #dce7f2; background: #fff; }.message .avatar-dot { display: grid; flex: 0 0 29px; width: 29px; height: 29px; place-items: center; border-radius: 50%; color: #d7efff; background: #0c3a6e; font-size: 10px; }.reason-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }.reason-cards article { padding: 10px; border: 1px solid #dbe6f1; border-radius: 8px; background: #fbfdff; }.reason-cards b { color: var(--cobalt); font-size: 8px; }.reason-cards p { margin: 6px 0 0; color: #5d7189; font-size: 8px; line-height: 1.55; }.ai-viz { display: grid; grid-template-columns: 1.1fr .9fr; gap: 8px; margin-top: 9px; }.ai-viz article { padding: 10px; border: 1px solid #dfe8f1; border-radius: 8px; }.ai-viz canvas { display: block; width: 100%; height: 130px; }.recommend-box { margin-top: 8px; padding: 10px 12px; border: 1px solid #d7e5f4; border-radius: 8px; background: #f5f9ff; font-size: 8px; line-height: 1.7; }.suggestion-chips { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 18px 9px; }.suggestion-chips button { padding: 6px 10px; border: 1px solid #d7e2ed; border-radius: 16px; color: #5d7188; background: #fff; cursor: pointer; font-size: 7px; }.composer { margin: 0 14px 14px; padding: 9px 11px; border: 1px solid #4b8de2; border-radius: 10px; background: #fff; box-shadow: 0 0 0 3px rgba(46,116,211,.05), 0 8px 24px rgba(40,89,154,.08); }.composer textarea { width: 100%; height: 48px; resize: none; border: 0; outline: 0; color: #42566f; font-size: 9px; }.composer footer { display: flex; align-items: center; justify-content: space-between; color: #8b98a8; font-size: 7px; }.composer button { height: 31px; padding: 0 13px; border: 0; border-radius: 7px; color: #fff; background: var(--cobalt); cursor: pointer; }.composer button:disabled { opacity: .45; cursor: wait; }.copilot-right { overflow-y: auto; }.context-section { padding: 17px; border-bottom: 1px solid #e3eaf2; }.context-section h2 { margin: 0 0 11px; font-size: 11px; }.context-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.context-grid div { padding: 10px; border: 1px solid #e0e8f1; border-radius: 8px; }.context-grid span { color: #8391a4; font-size: 7px; }.context-grid b { display: block; margin-top: 5px; font-size: 10px; }.evidence-list div { display: flex; align-items: center; gap: 8px; margin-top: 7px; padding: 9px; border: 1px solid #e1e8f0; border-radius: 7px; color: #5d7088; font-size: 8px; }.evidence-list i { color: var(--cobalt); font-style: normal; }.evidence-list b { margin-left: auto; color: var(--green); font-size: 7px; }.boundary { padding: 10px; border: 1px solid #dfe8f1; border-radius: 8px; color: #61738a; background: #f8fafd; font-size: 8px; line-height: 1.7; }.work-product { padding: 11px; border: 1px solid #d8e4f0; border-radius: 8px; background: #fff; }.work-product b { font-size: 9px; }.work-product p { margin: 7px 0 0; color: var(--muted); font-size: 8px; line-height: 1.6; }.context-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 11px; }
.typing { display: inline-flex; gap: 4px; padding: 4px 0; }.typing i { width: 5px; height: 5px; border-radius: 50%; background: #4b8fd9; animation: blink 1s infinite; }.typing i:nth-child(2) { animation-delay: .16s; }.typing i:nth-child(3) { animation-delay: .32s; }

.admin-tabs { display: flex; gap: 4px; margin-bottom: 10px; border-bottom: 1px solid #dbe5ef; }.admin-tabs button { position: relative; padding: 0 14px 12px; border: 0; color: #50647c; background: transparent; cursor: pointer; font-size: 9px; }.admin-tabs button.active { color: var(--cobalt); font-weight: 700; }.admin-tabs button.active::after { position: absolute; right: 8px; bottom: -1px; left: 8px; height: 2px; background: var(--cobalt); content: ""; }.admin-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(450px, .95fr) 340px; gap: 12px; }.rule-list, .rule-editor, .audit-panel { padding: 16px; }.filter-row { display: flex; gap: 7px; margin-top: 12px; }.filter-row input, .filter-row select { min-width: 0; height: 32px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; color: #5f7187; background: #fff; font-size: 8px; }.rule-grid { display: grid; grid-template-columns: 90px 1fr; gap: 8px 9px; margin-top: 14px; align-items: center; }.rule-grid label { color: #7a899d; font-size: 8px; }.rule-grid input, .rule-grid select { width: 100%; height: 32px; padding: 0 9px; border: 1px solid var(--line); border-radius: 6px; color: #4e627a; background: #fff; font-size: 8px; }.condition-builder { display: flex; align-items: center; gap: 8px; margin-top: 13px; padding: 13px; border: 1px dashed #91bbe8; border-radius: 9px; background: #f7fbff; }.condition-builder span { padding: 8px; border: 1px solid #c9dcef; border-radius: 6px; color: var(--cobalt); background: #fff; font-size: 8px; }.simulation { position: relative; overflow: hidden; margin-top: 13px; padding: 16px; border-radius: 9px; color: #fff; background: linear-gradient(135deg, #061e3a, #0a3c75); }.simulation::after { position: absolute; right: -20px; bottom: -70px; width: 180px; height: 180px; border: 1px solid rgba(105,200,255,.5); border-radius: 50%; box-shadow: 0 0 0 25px rgba(75,155,232,.07), 0 0 0 50px rgba(75,155,232,.04); content: ""; animation: rotate 18s linear infinite; }.simulation header, .simulation .sim-stats, .simulation button { position: relative; z-index: 2; }.simulation header { display: flex; justify-content: space-between; font-size: 9px; }.sim-stats { display: flex; gap: 25px; margin-top: 18px; }.sim-stats span { color: #9bb5d3; font-size: 7px; }.sim-stats b { display: block; margin-top: 4px; color: #fff; font-size: 18px; }.simulation button { height: 30px; margin-top: 13px; padding: 0 18px; border: 1px solid #5ea3e9; border-radius: 6px; color: #fff; background: rgba(43,111,184,.52); cursor: pointer; font-size: 8px; }.audit-change { margin-top: 12px; padding: 11px; border: 1px solid #e0e7ef; border-radius: 8px; background: #f9fbfd; }.audit-change b { font-size: 8px; }.audit-change ul { margin: 8px 0 0; padding-left: 14px; color: #687a91; font-size: 7px; line-height: 1.9; }

.modal-mask { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: rgba(8, 25, 48, .28); backdrop-filter: blur(3px); }.modal { width: min(440px, calc(100% - 28px)); padding: 22px; border: 1px solid #cbdbea; border-radius: 14px; background: #fff; box-shadow: 0 28px 90px rgba(14, 43, 79, .25); animation: pop .2s ease; }.modal h2 { margin: 0; font-size: 15px; }.modal p { color: #687a90; font-size: 9px; line-height: 1.75; }.modal footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.toast { position: fixed; left: 50%; bottom: 28px; z-index: 150; padding: 11px 16px; border: 1px solid rgba(120,173,225,.4); border-radius: 9px; color: #fff; background: rgba(8, 38, 73, .94); box-shadow: 0 12px 34px rgba(8,36,69,.22); font-size: 9px; opacity: 0; pointer-events: none; transform: translate(-50%, 15px); transition: .24s ease; }.toast.show { opacity: 1; transform: translate(-50%, 0); }
.empty { display: grid; min-height: 260px; place-items: center; color: var(--muted); font-size: 10px; }

/* 高保真矢量图标系统 */
.mini-composer .send-svg-icon,
.composer .send-svg-icon { width: 16px; height: 16px; }
.method-svg-icon { width: 20px; height: 20px; }
.method-flow i:has(.method-svg-icon) { color: #1f69c8; background: radial-gradient(circle at 35% 30%, #fff, #edf6ff 75%); }
.search-wrap { position: relative; margin-top: 11px; }
.search-wrap .search { margin-top: 0; padding-left: 32px; }
.search-svg-icon { position: absolute; top: 50%; left: 11px; z-index: 1; width: 15px; height: 15px; color: #4e72a0; transform: translateY(-50%); }
.task-list-svg-icon,
.recent-svg-icon { width: 17px; height: 17px; color: #1764c5; }
.task-list button > span,
.recent-list button > span { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recent-list button time { margin-left: auto; color: #7f91a6; font-size: 8px; }
.building-selector { display: flex; align-items: center; gap: 8px; }
.building-selector > span { flex: 1; }
.building-svg-icon { width: 18px; height: 18px; color: #1764c5; }
.analysis-status b { display: inline-flex; align-items: center; gap: 5px; }
.analysis-status-icon { width: 15px; height: 15px; }
.button-svg-icon { width: 14px; height: 14px; margin-right: 5px; }
.recommend-box button,
.composer button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.composer-task-icon { width: 14px; height: 14px; margin-right: 5px; color: #1764c5; }
.composer-tools { display: inline-flex; align-items: center; gap: 5px; }
.composer-tool-icon { width: 13px; height: 13px; color: #2770ca; }
.context-grid > div { position: relative; padding-left: 43px; }
.context-svg-icon {
  position: absolute;
  top: 13px;
  left: 10px;
  width: 24px;
  height: 24px;
  padding: 4px;
  border-radius: 6px;
  color: #1764c5;
  background: #eef6ff;
}
.evidence-list i { display: grid; width: 22px; height: 22px; place-items: center; }
.evidence-svg-icon { width: 17px; height: 17px; color: #1764c5; }
.task-card { position: relative; }
.task-card b { padding-right: 24px; }
.task-card-svg-icon { position: absolute; top: 9px; right: 9px; width: 16px; height: 16px; color: #2670cd; }

.copilot-page .composer-taskbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  padding: 0 18px 8px;
}
.copilot-page .composer-taskbar button {
  display: inline-flex;
  min-width: 0;
  height: 31px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0 8px;
  border: 1px solid #d6e3ef;
  border-radius: 7px;
  color: #506a86;
  background: linear-gradient(180deg, #fff, #f8fbff);
  box-shadow: 0 2px 7px rgba(40, 89, 154, .04);
  cursor: pointer;
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.copilot-page .composer-taskbar button:hover {
  border-color: #9fc4ed;
  color: #1764c5;
  background: #f2f8ff;
}

@keyframes pageIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes pop { from { opacity: 0; transform: translateY(-5px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes rotate { to { transform: rotate(360deg); } }
@keyframes breathe { 50% { opacity: .72; transform: scale(1.035); } }
@keyframes pulse { 50% { box-shadow: 0 0 0 8px rgba(19,164,119,0), 0 0 18px rgba(19,164,119,.55); } }
@keyframes blink { 0%, 80%, 100% { opacity: .28; transform: scale(.85); } 40% { opacity: 1; transform: scale(1); } }

@media (max-width: 1300px) {
  .brand { min-width: 330px; padding-left: 20px; }.main-nav { gap: 3px; }.main-nav button { min-width: 76px; }
  .hero-grid { grid-template-columns: 1.5fr .8fr; }.assistant-mini { grid-column: 1 / -1; min-height: 0; }.quick-tasks { grid-template-columns: repeat(4,1fr); }
  .energy-layout { grid-template-columns: 1.3fr .8fr; }.energy-layout>.side-detail { grid-column: 1/-1; }
  .report-layout { grid-template-columns: 310px 1fr; }.report-side { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3,1fr); }
  .admin-layout { grid-template-columns: 1fr 1fr; }.audit-panel { grid-column: 1/-1; }
  .copilot-layout { grid-template-columns: 270px 1fr 340px; }
}
@media (max-width: 1050px) {
  .brand { min-width: 275px; }.platform-wordmark small { display: none; }.main-nav button { min-width: 68px; font-size: 11px; }
  .kpis { grid-template-columns: repeat(2, 1fr); }.diag-layout, .energy-layout, .report-layout, .admin-layout { grid-template-columns: 1fr; }.diag-side, .energy-layout>.side-detail, .report-side, .audit-panel { grid-column: auto; }.report-side { display: grid; grid-template-columns: 1fr 1fr; }.report-side .card:last-child { grid-column: 1/-1; }
  .copilot-layout { grid-template-columns: 245px 1fr; height: auto; }.copilot-right { grid-column: 1/-1; display: grid; grid-template-columns: repeat(2,1fr); }.context-section { border: 1px solid var(--line); }.context-section:last-child { grid-column: 1/-1; }
}
@media (max-width: 820px) {
  .topbar { height: 58px; }.brand { min-width: 0; flex: 1; padding-left: 13px; }.bank-mark { width: 31px; height: 31px; }.bank-logo-icon { width: 28px; height: 28px; }.bank-wordmark strong { font-size: 16px; }.platform-wordmark strong, .platform-wordmark span { font-size: 11px; }.mobile-menu { display: grid; }.main-nav { position: absolute; top: 58px; right: 0; left: 0; display: none; height: auto; padding: 7px 10px; border-bottom: 1px solid var(--line); background: #fff; box-shadow: var(--shadow); }.main-nav.open { display: flex; overflow-x: auto; }.main-nav button { flex: 1; height: 38px; white-space: nowrap; }.system-state { display: none; }.top-actions { padding-right: 10px; }.page { padding: 16px 12px 42px; }.page-head { display: block; }.page-actions { flex-wrap: wrap; margin-top: 14px; }.hero-grid, .dashboard-row, .bottom-grid, .diag-charts { grid-template-columns: 1fr; }.ai-summary p { max-width: 72%; }.pipeline { grid-template-columns: 1fr 1fr; gap: 18px; }.stage:not(:last-child)::after { display: none; }.method-flow div:not(:last-child)::after { width: 35px; }.kanban { grid-template-columns: 1fr 1fr; }.copilot-layout { display: block; min-height: 0; }.copilot-left, .copilot-center, .copilot-right { min-height: 640px; margin-bottom: 12px; }.copilot-right { display: block; }.context-section { border: 0; border-bottom: 1px solid var(--line); }.reason-cards { grid-template-columns: 1fr; }.report-side { grid-template-columns: 1fr; }.report-side .card:last-child { grid-column: auto; }
}
@media (max-width: 560px) {
  .bank-wordmark { display: none; }.brand-divider { display: none; }.platform-wordmark strong, .platform-wordmark span { font-size: 10px; }.icon-btn { display: none; }.page-title h1 { font-size: 17px; }.kpis { grid-template-columns: 1fr; }.hero-grid { display: block; }.hero-grid>.card { margin-bottom: 10px; }.ai-summary { min-height: 225px; }.ai-summary p { max-width: 95%; }.inference-orbit { opacity: .45; }.quick-tasks { grid-template-columns: 1fr 1fr; }.donut-wrap { grid-template-columns: 1fr; }.legend-list { margin-top: 15px; }.pipeline, .kanban { grid-template-columns: 1fr; }.method-flow { gap: 7px; overflow-x: auto; }.method-flow div { min-width: 75px; }.report-paper { padding: 16px 11px; }.report-kpis, .report-mini-grid { grid-template-columns: 1fr 1fr; }.report-score { right: 15px; }.report-summary p { width: 75%; }.ai-viz { grid-template-columns: 1fr; }.copilot-left, .copilot-center, .copilot-right { min-height: 580px; }.admin-tabs { overflow-x: auto; }.admin-tabs button { white-space: nowrap; }
}

/* V3 智能增强工作台：按效果图收敛首屏比例、信息密度与 AI 侧栏 */
.bank-mark span {
  position: relative;
  display: block;
  width: 15px;
  height: 16px;
  border: 3px solid #fff;
  border-radius: 1px;
}
.bank-mark span::before,
.bank-mark span::after {
  position: absolute;
  background: #fff;
  content: "";
}
.bank-mark span::before { top: 3px; left: 2px; width: 5px; height: 3px; box-shadow: 5px 0 #fff; }
.bank-mark span::after { bottom: 1px; left: 2px; width: 3px; height: 6px; box-shadow: 6px 0 #fff; }
.icon-btn { font-size: 0; }
.icon-btn::before {
  width: 12px;
  height: 12px;
  border: 2px solid #1b2d45;
  border-radius: 7px 7px 3px 3px;
  content: "";
}
.icon-btn::after {
  position: absolute;
  bottom: 7px;
  width: 4px;
  height: 2px;
  border-radius: 50%;
  background: #1b2d45;
  content: "";
}
.user-btn {
  border-color: #d7e4f1;
  border-radius: 50%;
  color: #2463d4;
  background: #f2f7fd;
  box-shadow: inset 0 0 0 3px #fff, 0 5px 14px rgba(42, 93, 160, .09);
  font-size: 0;
}
.user-btn::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #2463d4;
  box-shadow: 0 9px 0 3px #2463d4;
  content: "";
}
.smart-card {
  background-image:
    linear-gradient(120deg, rgba(82, 164, 236, .055), transparent 26%, transparent 72%, rgba(89, 212, 242, .055)),
    radial-gradient(circle at 100% 0, rgba(87, 175, 238, .05), transparent 30%);
}
.workbench-page {
  width: min(1710px, 100%);
  padding: 16px 20px 6px;
}
.workbench-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 348px;
  gap: 12px;
  align-items: stretch;
}
.workbench-main {
  display: grid;
  min-width: 0;
  grid-template-rows: 192px 126px 242px 224px;
  gap: 13px;
}
.workbench-top {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1.62fr) minmax(360px, 1fr);
  gap: 12px;
}
.workbench-top > .card,
.workbench-charts > .card,
.workbench-bottom > .card {
  height: 100%;
  min-height: 0;
}
.workbench-top .ai-summary {
  min-height: 0;
  padding: 20px 28px;
  background:
    radial-gradient(circle at 78% 62%, rgba(114, 224, 255, .54), transparent 5%),
    radial-gradient(circle at 76% 58%, rgba(38, 148, 255, .24), transparent 23%),
    linear-gradient(108deg, #062449, #0a376d 62%, #0a4b8e);
}
.workbench-top .ai-summary::before {
  opacity: .46;
  background-image:
    radial-gradient(circle, rgba(114, 211, 255, .72) 0 1px, transparent 1.7px),
    linear-gradient(rgba(112, 193, 243, .11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(112, 193, 243, .11) 1px, transparent 1px);
  background-position: 4px 7px, 0 0, 0 0;
  background-size: 37px 29px, 26px 26px, 26px 26px;
  mask-image: linear-gradient(90deg, transparent 8%, #000 43%, #000);
}
.workbench-top .ai-summary::after {
  position: absolute;
  right: -35px;
  bottom: -75px;
  width: 590px;
  height: 285px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 55% 50%, rgba(169, 245, 255, .96) 0 2px, rgba(64, 187, 255, .55) 3px 5px, transparent 7px),
    repeating-radial-gradient(ellipse at 55% 50%, transparent 0 17px, rgba(107, 207, 255, .19) 18px 19px, transparent 20px 30px);
  filter: drop-shadow(0 0 13px rgba(71, 185, 255, .42));
  pointer-events: none;
  transform: rotate(-7deg);
  content: "";
}
.workbench-top .inference-orbit {
  top: 8px;
  right: 52px;
  z-index: 1;
  width: 235px;
  height: 165px;
  border-color: rgba(120, 212, 255, .24);
  box-shadow: inset 0 0 35px rgba(71, 164, 255, .10), 0 0 0 26px rgba(66, 150, 242, .035), 0 0 0 52px rgba(66, 150, 242, .02);
}
.workbench-top .inference-orbit::before { inset: 34px 48px; }
.workbench-top .inference-orbit::after {
  inset: auto;
  top: 72px;
  left: 111px;
  width: 14px;
  height: 14px;
}
.summary-period {
  position: absolute;
  top: 17px;
  right: 18px;
  z-index: 3;
  padding: 7px 10px;
  border: 1px solid rgba(145, 201, 244, .25);
  border-radius: 6px;
  color: #d7e8f8;
  background: rgba(4, 28, 55, .28);
  font-size: 8px;
  backdrop-filter: blur(5px);
}
.summary-period {
  display: flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
}
.summary-period .period-icon { flex: 0 0 15px; width: 15px; height: 15px; pointer-events: none; }
.summary-period select {
  min-width: 105px;
  border: 0;
  outline: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-weight: 550;
}
.summary-period select option { color: #263d58; background: #fff; }
.summary-period:focus-within {
  border-color: rgba(137, 205, 255, .72);
  box-shadow: 0 0 0 3px rgba(71, 165, 240, .14);
}
.workbench-top .ai-summary p {
  max-width: 68%;
  margin-top: 10px;
  font-size: 10px;
}
.workbench-top .ai-summary h2 { font-size: 16px; letter-spacing: .02em; }
.workbench-top .summary-stats { gap: 30px; }
.workbench-top .summary-stats span { font-size: 10px; }
.workbench-top .summary-stats b { font-size: 16px; }
.workbench-top .summary-stats { margin-top: 15px; }
.workbench-top .risk-card { padding: 18px 20px; }
.workbench-top .risk-card .risk-title { margin-top: 14px; padding: 12px; }
.workbench-top .risk-badge { width: 39px; height: 39px; border-radius: 9px; font-size: 15px; }
.workbench-top .risk-title h3 { font-size: 12px; }
.workbench-top .risk-title p { font-size: 8.5px; }
.workbench-top .risk-meta span { font-size: 8px; }
.workbench-top .risk-meta b { font-size: 10px; }
.workbench-top .risk-meta { margin-top: 13px; }
.workbench-kpis {
  margin: 0;
  gap: 12px;
}
.workbench-kpis .kpi {
  height: 100%;
  min-height: 0;
  padding: 14px 17px;
}
.workbench-kpis .kpi-icon {
  flex-basis: 62px;
  width: 62px;
  height: 62px;
  font-size: 25px;
}
.workbench-kpis .kpi-svg-icon {
  width: clamp(28px, 2vw, 40px);
  height: clamp(28px, 2vw, 40px);
}
.workbench-kpis .kpi span { font-size: 10px; }
.workbench-kpis .kpi strong { margin-top: 7px; font-size: 24px; }
.workbench-kpis .kpi p { font-size: 8px; }
.workbench-charts {
  min-height: 0;
  margin: 0;
  grid-template-columns: minmax(0, 1.52fr) minmax(360px, .75fr);
}
.workbench-charts > .card {
  overflow: hidden;
  padding: 15px 18px;
}
.workbench-charts .panel-head h2,
.workbench-bottom .panel-head h2 { font-size: 14px; }
.workbench-charts .panel-head p { font-size: 8px; }
.workbench-charts .chart {
  height: 185px;
  margin-top: 2px;
}
.workbench-charts .donut-wrap {
  margin-top: 6px;
  grid-template-columns: 145px 1fr;
}
.workbench-charts .donut {
  width: 132px;
  height: 132px;
}
.workbench-charts .donut::before { inset: 19px; }
.workbench-bottom {
  min-height: 0;
  margin: 0;
  grid-template-columns: 1.08fr 1fr;
}
.workbench-bottom > .card {
  overflow: hidden;
  padding: 13px 16px;
}
.workbench-bottom .data-table {
  margin-top: 6px;
  font-size: 8.5px;
}
.workbench-bottom .data-table th { padding: 7px; font-size: 8px; }
.workbench-bottom .data-table td { padding: 8px 7px; }
.workbench-bottom .data-table th:first-child,
.workbench-bottom .data-table td:first-child,
.workbench-bottom .data-table th:nth-child(4),
.workbench-bottom .data-table td:nth-child(4) { white-space: nowrap; }
.workbench-bottom .status { padding: 3px 5px; }
.workbench-assistant {
  position: relative;
  grid-column: auto;
  height: 100%;
  min-height: 0;
  padding: 18px 16px;
}
.workbench-assistant::after {
  position: absolute;
  right: -70px;
  bottom: 92px;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(71, 154, 229, .11);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(76, 158, 233, .035), 0 0 0 56px rgba(76, 158, 233, .02);
  pointer-events: none;
  content: "";
}
.workbench-assistant > * { position: relative; z-index: 1; }
.workbench-assistant h3 {
  margin: 17px 0 4px;
  font-size: 11px;
}
.workbench-assistant .assistant-head .text-button {
  margin-left: auto;
  white-space: nowrap;
  font-size: 7px;
}
.workbench-assistant .assistant-message {
  margin-top: 16px;
  padding: 12px;
  font-size: 9px;
}
.assistant-chat-region { margin-top: 14px; }
.assistant-thread {
  height: clamp(118px, 17vh, 190px);
  overflow-y: auto;
  padding: 10px;
  border: 1px solid #d8e5f2;
  border-radius: 11px;
  background: rgba(247, 251, 255, .92);
  scrollbar-width: thin;
  scrollbar-color: #b8d4ee transparent;
}
.mini-message { display: flex; align-items: flex-start; gap: 7px; margin-top: 8px; }
.mini-message:first-child { margin-top: 0; }
.mini-message.user { justify-content: flex-end; }
.mini-avatar {
  display: grid;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid #8fc0eb;
  border-radius: 50%;
  color: #dff6ff;
  background: linear-gradient(145deg, #1c68bd, #082f5d);
  box-shadow: 0 4px 10px rgba(24, 91, 166, .16);
  font-size: 8px;
  font-weight: 750;
}
.mini-bubble {
  max-width: calc(100% - 31px);
  padding: 8px 9px;
  border: 1px solid #dce8f3;
  border-radius: 4px 10px 10px;
  color: #5b7088;
  background: #fff;
  line-height: 1.55;
  white-space: pre-line;
}
.mini-message.user .mini-bubble {
  border-color: #c5dbf2;
  border-radius: 10px 4px 10px 10px;
  color: #315d92;
  background: #eef6ff;
}
.mini-followups { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.mini-followups button {
  padding: 5px 9px;
  border: 1px solid #cfe0f0;
  border-radius: 14px;
  color: #56718f;
  background: rgba(255,255,255,.9);
  cursor: pointer;
  transition: .18s ease;
}
.mini-followups button:hover { color: var(--cobalt); border-color: #8eb9e8; background: #f3f8ff; }
.mini-typing { display: flex; align-items: center; gap: 4px; }
.mini-typing i { width: 4px; height: 4px; border-radius: 50%; background: #468bd6; animation: blink 1s infinite; }
.mini-typing i:nth-child(2) { animation-delay: .15s; }
.mini-typing i:nth-child(3) { animation-delay: .3s; }
.mini-typing span { margin-left: 3px; }
.workbench-assistant .robot {
  position: relative;
  width: 43px;
  height: 43px;
  background: radial-gradient(circle at 50% 30%, #75baf5, #155baa 57%, #082b59);
}
.robot i {
  position: relative;
  display: block;
  width: 25px;
  height: 18px;
  border: 2px solid #d8f5ff;
  border-radius: 8px;
  background: #092b54;
  box-shadow: inset 0 -4px 8px rgba(68, 158, 232, .32);
}
.robot i::before {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #8deaff;
  box-shadow: 9px 0 #8deaff, 0 0 7px #58d3fa, 9px 0 7px #58d3fa;
  content: "";
}
.robot i::after {
  position: absolute;
  bottom: 2px;
  left: 8px;
  width: 6px;
  height: 2px;
  border-radius: 4px;
  background: #8deaff;
  content: "";
}
.workbench-assistant .quick-tasks {
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 8px;
}
.workbench-assistant .quick-tasks button {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 10px;
  background: rgba(255, 255, 255, .88);
}
.workbench-assistant .quick-tasks button::before { display: none; content: none; }
.workbench-assistant .quick-tasks button > span { flex: 1; }
.workbench-assistant .quick-tasks button > b { color: #8aa2bc; font-size: 11px; font-weight: 500; }
.task-svg-icon {
  width: 26px;
  height: 26px;
  padding: 5px;
  border: 1px solid #c5ddf2;
  border-radius: 7px;
  color: #1760bb;
  background: linear-gradient(145deg, #fff, #edf6ff);
  box-shadow: 0 4px 10px rgba(39, 104, 179, .08);
}
.assistant-spacer {
  position: relative;
  display: grid;
  flex: 1;
  min-height: 150px;
  place-items: center;
  color: #8b9db1;
  font-size: 8px;
  text-align: center;
}
.workbench-assistant .assistant-spacer { min-height: 44px; }
.assistant-spacer::before {
  position: absolute;
  width: 86px;
  height: 86px;
  border: 1px dashed rgba(55, 136, 218, .18);
  border-radius: 50%;
  box-shadow: inset 0 0 28px rgba(71, 154, 231, .05), 0 0 0 17px rgba(75, 157, 231, .025);
  content: "";
  animation: rotate 18s linear infinite;
}
.assistant-spacer span {
  position: relative;
  max-width: 120px;
  padding: 6px;
  background: rgba(255, 255, 255, .75);
}
.mini-composer {
  margin-top: 0;
  padding: 10px 11px 8px;
  border: 1px solid #4f96e7;
  border-radius: 11px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 0 0 3px rgba(58, 139, 226, .045), 0 8px 24px rgba(44, 91, 151, .07);
}
.mini-composer textarea {
  width: 100%;
  height: 76px;
  resize: none;
  border: 0;
  outline: 0;
  color: #465c75;
  background: transparent;
  font-size: 9px;
  line-height: 1.65;
}
.mini-composer footer { display: flex; align-items: flex-end; justify-content: space-between; }
.mini-composer footer span { color: #8ca0b5; font-size: 7px; }
.mini-composer button {
  width: 33px;
  height: 33px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #3d8bea, #1758b9);
  box-shadow: 0 6px 14px rgba(35, 98, 189, .2);
  cursor: pointer;
}
.ai-disclaimer {
  display: block;
  margin-top: 8px;
  color: #9aa8b8;
  font-size: 7px;
  text-align: center;
}

@media (max-width: 1300px) {
  .workbench-layout { grid-template-columns: minmax(0, 1fr) 310px; }
  .workbench-assistant { grid-column: auto; }
}
@media (max-width: 1050px) {
  .workbench-layout { grid-template-columns: 1fr; }
  .workbench-main { grid-template-rows: auto; }
  .workbench-assistant { grid-column: auto; min-height: 560px; }
}
@media (max-width: 820px) {
  .workbench-page { padding: 14px 12px 36px; }
  .workbench-top,
  .workbench-charts,
  .workbench-bottom { grid-template-columns: 1fr; }
  .workbench-top .ai-summary { min-height: 210px; }
  .workbench-top .ai-summary p { max-width: 76%; }
  .workbench-kpis { grid-template-columns: repeat(2, 1fr); }
  .workbench-charts > .card,
  .workbench-bottom > .card { height: auto; min-height: 230px; }
}

@media (min-width: 821px) {
  .bank-wordmark strong { font-size: 19px; }
  .main-nav button { font-size: 15px; }
  .system-state { padding-right: 16px; border-right: 1px solid #d9e4ef; font-size: 11px; }
  .user-btn { margin-left: 4px; }
  .page-title h1 { font-size: 20px; }
  .page-title p { font-size: 10px; }
}

/* 桌面端效果图骨架：右侧栏贯穿首屏，主内容按参考图分区 */
@media (min-width: 1301px) {
  .diagnosis-page {
    display: grid;
    width: min(1710px, 100%);
    padding: 0 20px 8px;
    grid-template-columns: minmax(0, 1fr) 370px;
    grid-template-rows: 72px 78px 665px;
    gap: 8px 12px;
  }
  .diagnosis-page > .page-head { min-height: 72px; padding-top: 14px; grid-column: 1; grid-row: 1; }
  .diagnosis-page > .pipeline { grid-column: 1; grid-row: 2; height: 78px; }
  .diagnosis-page > .diag-layout { display: contents; }
  .diagnosis-page .diag-main {
    display: grid;
    min-width: 0;
    grid-column: 1;
    grid-row: 3;
    grid-template-rows: 110px 324px 207px;
    gap: 12px;
  }
  .diagnosis-page .diag-main > .kpis { height: 110px; margin: 0; }
  .diagnosis-page .diag-main > .kpis .kpi { min-height: 0; }
  .diagnosis-page .diag-charts { height: 324px; margin: 0; }
  .diagnosis-page .diag-charts > .card { height: 324px; overflow: hidden; }
  .diagnosis-page .diag-charts > div { grid-template-rows: 190px 122px; }
  .diagnosis-page .diag-charts > div > .card { min-height: 0; overflow: hidden; padding: 13px 16px; }
  .diagnosis-page .diag-charts .chart { height: 258px; margin-top: 2px; }
  .diagnosis-page .diag-charts .donut { width: 108px !important; height: 108px !important; }
  .diagnosis-page .diag-charts .donut::before { inset: 17px; }
  .diagnosis-page .diag-charts .method-flow { margin-top: 17px; }
  .diagnosis-page .diag-main > article:last-child { height: 207px; margin-top: 0 !important; overflow: hidden; padding: 13px 16px; }
  .diagnosis-page .diag-main > article:last-child .data-table { margin-top: 6px; font-size: 8px; }
  .diagnosis-page .diag-main > article:last-child .data-table th { padding: 7px 8px; }
  .diagnosis-page .diag-main > article:last-child .data-table td { padding: 8px; }
  .diagnosis-page .diag-side {
    display: flex;
    height: 831px;
    min-height: 0;
    flex-direction: column;
    grid-column: 2;
    grid-row: 1 / 4;
    overflow: hidden;
  }
  .diagnosis-page .diag-side .evidence-step { flex: 0 0 auto; }
  .diagnosis-page .diag-side .evidence-step > div { min-height: 88px; padding: 13px; }
  .diagnosis-page .diag-side .evidence-step b { font-size: 9.5px; }
  .diagnosis-page .diag-side .evidence-step p { font-size: 8.5px; line-height: 1.75; }
  .diagnosis-page .diag-side .evidence-summary { min-height: 148px; padding: 14px; }
  .diagnosis-page .diag-side .evidence-summary div { margin: 10px 0; font-size: 8.5px; }
  .diagnosis-page .diag-side > .full-btn { margin-top: auto; }
  .diagnosis-page .kpi span,
  .efficiency-page .kpi span,
  .reports-page .kpi span { font-size: 11px; }
  .diagnosis-page .kpi strong,
  .efficiency-page .kpi strong,
  .reports-page .kpi strong { font-size: 24px; }
  .diagnosis-page .panel-head h2,
  .efficiency-page .panel-head h2,
  .reports-page .panel-head h2 { font-size: 14px; }
  .diagnosis-page .diag-charts > div > .card:first-child .legend-list div {
    min-height: 30px;
    margin: 0;
    padding: 7px 8px;
    border-bottom: 1px solid #edf2f7;
    font-size: 8.5px;
  }
  .diagnosis-page .diag-charts > div > .card:first-child .legend-list div:last-child { border-bottom: 0; }

  .efficiency-page {
    display: grid;
    width: min(1710px, 100%);
    padding: 16px 20px 8px;
    grid-template-columns: minmax(0, 1.58fr) minmax(390px, .82fr) 325px;
    grid-template-rows: 44px 477px 284px;
    column-gap: 12px;
    row-gap: 0;
  }
  .efficiency-page > .page-head { min-height: 44px; grid-column: 1 / 3; grid-row: 1; }
  .efficiency-page > .energy-layout { display: contents; }
  .efficiency-page > .energy-layout > div:first-child {
    display: grid;
    min-width: 0;
    grid-column: 1;
    grid-row: 2;
    grid-template-rows: 99px 366px;
    gap: 12px;
  }
  .efficiency-page > .energy-layout > div:first-child > .kpis { height: 99px; margin: 0 !important; }
  .efficiency-page > .energy-layout > div:first-child > .kpis .kpi { min-height: 0; padding: 13px 17px; }
  .efficiency-page > .energy-layout > div:first-child > .card { height: 366px; overflow: hidden; }
  .efficiency-page .matrix { height: 286px; }
  .efficiency-page > .energy-layout > div:nth-child(2) {
    display: grid !important;
    height: 477px;
    grid-column: 2;
    grid-row: 2;
    grid-template-rows: 286px 179px;
    gap: 12px !important;
  }
  .efficiency-page .dark-ai-card { height: 286px; }
  .efficiency-page > .energy-layout > div:nth-child(2) > .panel { height: 179px; overflow: hidden; padding: 12px 16px; }
  .efficiency-page > .energy-layout > div:nth-child(2) .donut-wrap { margin-top: 2px; grid-template-columns: 145px 1fr; }
  .efficiency-page > .energy-layout > div:nth-child(2) .donut { width: 138px; height: 138px; }
  .efficiency-page > .energy-layout > div:nth-child(2) .donut::before { inset: 20px; }
  .efficiency-page > .energy-layout > .side-detail {
    display: flex;
    height: 805px;
    min-height: 0;
    flex-direction: column;
    grid-column: 3;
    grid-row: 1 / 4;
    overflow: hidden;
  }
  .efficiency-page > article:last-child {
    height: 272px;
    margin-top: 12px !important;
    grid-column: 1 / 3;
    grid-row: 3;
    overflow: hidden;
    padding: 13px 16px;
  }
  .efficiency-page .kanban { margin-top: 8px; }
  .efficiency-page .kanban-col { padding: 8px; }
  .efficiency-page .task-card { min-height: 70px; padding: 10px; }
  .efficiency-page .task-card b { font-size: 9px; }
  .efficiency-page .task-card p,
  .efficiency-page .task-card span { font-size: 7.5px; }
  .efficiency-page .side-detail > .full-btn { margin-top: auto; }
  .efficiency-page .side-detail > section { flex: 0 0 auto; }
  .efficiency-page .side-detail > section:first-of-type { min-height: 200px; }
  .efficiency-page .side-detail > section:nth-of-type(2) { min-height: 166px; }
  .efficiency-page .side-detail > section:nth-of-type(3) { min-height: 92px; }
  .efficiency-page .side-detail > section:nth-of-type(4) { min-height: 152px; }
  .efficiency-page .dark-ai-card::before {
    position: absolute;
    top: -42px;
    right: -30px;
    width: 270px;
    height: 145px;
    border-radius: 50%;
    background:
      radial-gradient(circle at 55% 50%, rgba(164, 242, 255, .95) 0 2px, rgba(54, 165, 255, .52) 3px 5px, transparent 7px),
      repeating-radial-gradient(ellipse at 55% 50%, transparent 0 11px, rgba(105, 205, 255, .22) 12px 13px, transparent 14px 21px);
    filter: drop-shadow(0 0 10px rgba(71, 185, 255, .42));
    transform: rotate(-7deg);
    content: "";
  }

  .reports-page {
    display: grid;
    width: min(1710px, 100%);
    padding: 16px 20px 8px;
    grid-template-columns: 365px minmax(0, 1fr) 335px;
    grid-template-rows: 47px 98px 12px 638px;
    column-gap: 12px;
    row-gap: 0;
  }
  .reports-page > .page-head { min-height: 47px; grid-column: 1 / 4; grid-row: 1; }
  .reports-page > .kpis { height: 98px; margin: 0; grid-column: 1 / 3; grid-row: 2; }
  .reports-page > .kpis .kpi { min-height: 0; padding: 12px 17px; }
  .reports-page > .report-layout { display: contents; }
  .reports-page .report-list { height: 638px; grid-column: 1; grid-row: 4; overflow: hidden; }
  .reports-page .report-viewer { height: 638px; grid-column: 2; grid-row: 4; overflow: hidden; }
  .reports-page .report-side { display: grid; height: 748px; grid-column: 3; grid-row: 2 / 5; grid-template-rows: 288px 142px 294px; gap: 12px; overflow: hidden; }
  .reports-page .report-side .card { min-height: 0; }
  .reports-page .report-side .card:last-child { display: flex; flex-direction: column; }
  .reports-page .report-side .card:last-child .context-actions { margin-top: auto; }
  .reports-page .report-side .ai-audit { flex-direction: row-reverse; }
  .reports-page .info-list div { margin: 12px 0; font-size: 8.5px; }
  .reports-page .report-item { min-height: 74px; margin-top: 7px; padding: 10px 11px; }
  .reports-page .report-item b { font-size: 9.5px; }
  .reports-page .report-item p { font-size: 7.5px; }
  .reports-page .report-month sup { margin-left: 1px; font-size: 8px; font-weight: 500; }
  .reports-page .report-paper { height: 563px; overflow: hidden; padding-top: 15px; }
  .reports-page .report-summary { height: 112px; padding: 18px 20px; }
  .reports-page .report-summary p { font-size: 8.5px; line-height: 1.75; }
  .reports-page .report-score { top: 21px; }
  .reports-page .report-kpis { position: relative; padding-top: 24px; }
  .reports-page .report-kpis::before {
    position: absolute;
    top: 2px;
    left: 0;
    color: #354b65;
    font-size: 9px;
    font-weight: 700;
    content: "关键指标概览";
  }
  .reports-page .report-kpis div { position: relative; min-height: 70px; padding: 12px 12px 12px 54px; }
  .reports-page .report-kpis div::before {
    position: absolute;
    top: 15px;
    left: 13px;
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;
    border: 1px solid #a9cced;
    border-radius: 50%;
    color: #fff;
    background: radial-gradient(circle at 35% 28%, #75b4ef, #2366c3 60%, #103d7c);
    box-shadow: 0 0 0 5px rgba(63, 143, 224, .06);
    font-size: 13px;
    content: "▥";
  }
  .reports-page .report-kpis div:nth-child(2)::before { color: #d9fff5; background: radial-gradient(circle at 35% 28%, #62d8c0, #18a17d 60%, #08725a); content: "⌁"; }
  .reports-page .report-kpis div:nth-child(3)::before { content: "∞"; }
  .reports-page .report-kpis div:nth-child(4)::before { color: #d9fff5; background: radial-gradient(circle at 35% 28%, #62d8c0, #18a17d 60%, #08725a); content: "◇"; }
  .reports-page .report-summary::before {
    position: absolute;
    right: -35px;
    bottom: -77px;
    width: 420px;
    height: 205px;
    border-radius: 50%;
    background:
      radial-gradient(circle at 55% 50%, rgba(170, 244, 255, .95) 0 2px, rgba(59, 173, 255, .5) 3px 5px, transparent 7px),
      repeating-radial-gradient(ellipse at 55% 50%, transparent 0 15px, rgba(107, 207, 255, .18) 16px 17px, transparent 18px 26px);
    filter: drop-shadow(0 0 11px rgba(71, 185, 255, .38));
    transform: rotate(-7deg);
    content: "";
  }

  .copilot-page {
    width: 100%;
    max-width: none;
    padding: 8px 10px 12px;
  }
  .copilot-page .copilot-layout {
    height: calc(100vh - 84px);
    min-height: 0;
    grid-template-columns: 310px minmax(0, 1fr) 425px;
  }
  .copilot-page .copilot-brand .robot { width: 44px; height: 44px; }
  .copilot-page .conversation-body { padding: 17px 22px 8px; }
  .copilot-page .message.assistant .avatar-dot,
  .copilot-page .message.bot .avatar-dot {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
    border: 2px solid #d7f4ff;
    color: transparent;
    background:
      radial-gradient(circle at 39% 45%, #8ceaff 0 2px, transparent 2.5px),
      radial-gradient(circle at 61% 45%, #8ceaff 0 2px, transparent 2.5px),
      radial-gradient(ellipse at 50% 54%, #092e59 0 34%, transparent 35%),
      radial-gradient(circle at 50% 34%, #62aceb, #155ba9 60%, #082c58);
    box-shadow: 0 0 0 6px rgba(62, 144, 224, .06), 0 0 18px rgba(45, 133, 218, .18);
  }
  .copilot-page .message .bubble { font-size: 9px; }
  .copilot-page .analysis-status { display: flex; align-items: center; gap: 9px; margin-top: 8px; color: #2c68bd; font-size: 8px; }
  .copilot-page .analysis-status b { font-size: 9px; }
  .copilot-page .analysis-status span { color: #7a8ca2; }
  .copilot-page .reason-cards article { min-height: 118px; padding: 13px; }
  .copilot-page .reason-cards p { font-size: 9px; line-height: 1.8; }
  .copilot-page .ai-viz canvas { height: 145px; }
  .copilot-page .recommend-box { position: relative; min-height: 78px; padding-right: 170px; }
  .copilot-page .recommend-box button {
    position: absolute;
    right: 12px;
    bottom: 13px;
    height: 32px;
    padding: 0 13px;
    border: 0;
    border-radius: 7px;
    color: #fff;
    background: linear-gradient(110deg, #1856b0, #2778df);
    cursor: pointer;
    font-size: 8px;
  }
  .copilot-page .composer-taskbar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    padding: 0 18px 8px;
  }
  .copilot-page .composer-taskbar button {
    min-width: 0;
    height: 31px;
    overflow: hidden;
    border: 1px solid #d6e3ef;
    border-radius: 7px;
    color: #506a86;
    background: #fff;
    cursor: pointer;
    font-size: 7px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .copilot-page .composer { margin-top: 0; }
  .copilot-page .composer-tools { color: #66809c; }
}
@media (max-width: 560px) {
  .workbench-kpis { grid-template-columns: 1fr; }
  .workbench-top .ai-summary p { max-width: 96%; }
  .workbench-assistant { min-height: 590px; }
}

/* 设计稿高保真图标 */
.button-svg-icon {
  width: 15px;
  height: 15px;
  margin-right: 5px;
  vertical-align: -3px;
}

@media (min-width: 1301px) {
  .reports-page .report-kpis div::before {
    display: none;
    content: none;
  }

  .reports-page .report-metric-svg-icon {
    position: absolute;
    top: 15px;
    left: 13px;
    width: 31px;
    height: 31px;
    padding: 7px;
    border: 1px solid #a9cced;
    border-radius: 50%;
    color: #fff;
    background: radial-gradient(circle at 35% 28%, #75b4ef, #2366c3 60%, #103d7c);
    box-shadow: 0 0 0 5px rgba(63, 143, 224, .06), 0 5px 12px rgba(31, 91, 158, .18);
  }

  .reports-page .report-kpis div:nth-child(2) .report-metric-svg-icon,
  .reports-page .report-kpis div:nth-child(4) .report-metric-svg-icon {
    border-color: #a3e0d2;
    color: #eafff9;
    background: radial-gradient(circle at 35% 28%, #62d8c0, #18a17d 60%, #08725a);
    box-shadow: 0 0 0 5px rgba(24, 161, 125, .06), 0 5px 12px rgba(8, 114, 90, .16);
  }

}

/* 金融科技交互反馈 */
.interactive-surface {
  --spot-x: 50%;
  --spot-y: 50%;
  animation: surfaceIn .42s cubic-bezier(.2, .75, .25, 1) backwards;
  animation-delay: var(--enter-delay, 0ms);
  transition: border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}
.smart-card.interactive-surface::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  opacity: 0;
  background: radial-gradient(240px circle at var(--spot-x) var(--spot-y), rgba(74, 161, 236, .13), transparent 70%);
  content: "";
  transition: opacity .22s ease;
}

.fx-button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .16s ease;
}
.fx-button:active { transform: translateY(1px) scale(.985); }
.button-ripple {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  border-radius: 50%;
  background: currentColor;
  opacity: .16;
  transform: scale(0);
  animation: buttonRipple .52s ease-out forwards;
}

.brand .bank-mark,
.brand-divider,
.bank-wordmark,
.platform-wordmark { transition: transform .28s ease, filter .28s ease, opacity .28s ease; }
.brand:hover .bank-mark {
  transform: translateY(-1px) scale(1.045);
  filter: drop-shadow(0 8px 10px rgba(0, 87, 169, .24));
}
.brand:hover .brand-divider { transform: scaleY(1.12); }
.main-nav button.active::after { animation: navLineIn .34s cubic-bezier(.2, .8, .2, 1) both; }
.workbench-top .ai-summary::before { animation: gridDrift 14s linear infinite; }
.risk-badge { animation: riskBreathe 2.8s ease-in-out infinite; }
.matrix-node.active i { animation: nodeSignal 1.8s ease-in-out infinite; }
.assistant-head .robot,
.copilot-brand .robot { transition: transform .25s ease, box-shadow .25s ease; }
.assistant-head:hover .robot,
.copilot-brand:hover .robot { transform: scale(1.06); box-shadow: 0 0 0 7px rgba(53, 143, 225, .08), 0 0 28px rgba(46, 146, 230, .25); }
.legend-list div,
.evidence-list div,
.recommendation { transition: background-color .2s ease, transform .2s ease, border-color .2s ease; }
.legend-list div:hover,
.evidence-list div:hover,
.recommendation:hover { transform: translateX(3px); border-color: #bfd8ef; background-color: rgba(241, 248, 255, .82); }

@media (hover: hover) and (pointer: fine) {
  .interactive-surface:hover {
    border-color: rgba(126, 177, 224, .9);
    box-shadow: 0 16px 38px rgba(37, 82, 133, .12), 0 0 0 1px rgba(126, 194, 238, .08);
    transform: translateY(-2px);
  }
  .smart-card.interactive-surface:hover::after { opacity: 1; }
  .kpi.interactive-surface:hover .kpi-icon { transform: translateY(-2px) scale(1.055); }
  .quick-tasks button:hover .task-svg-icon,
  .task-list button:hover .task-list-svg-icon,
  .composer-taskbar button:hover .composer-task-icon { transform: scale(1.12) rotate(-3deg); }
}

/* AI 推荐操作按钮 */
.recommend-box { padding-right: 12px; }
.recommend-box button {
  position: static;
  display: flex;
  width: max-content;
  height: 32px;
  align-items: center;
  justify-content: center;
  margin: 9px 0 0 auto;
  padding: 0 13px;
  border: 0;
  border-radius: 7px;
  color: #fff;
  background: linear-gradient(110deg, #1856b0, #2778df);
  box-shadow: 0 7px 16px rgba(31, 100, 184, .16);
  cursor: pointer;
  font-size: var(--font-caption);
}

@keyframes surfaceIn {
  from { opacity: 0; transform: translateY(7px) scale(.995); }
  to { opacity: 1; transform: none; }
}
@keyframes buttonRipple { to { opacity: 0; transform: scale(1); } }
@keyframes navLineIn { from { opacity: .25; transform: scaleX(.28); } to { opacity: 1; transform: scaleX(1); } }
@keyframes gridDrift { to { background-position: 52px 26px, 26px 52px; } }
@keyframes riskBreathe { 50% { box-shadow: 0 0 0 7px rgba(234, 74, 82, .08), 0 7px 18px rgba(220, 47, 59, .16); } }
@keyframes nodeSignal { 50% { opacity: 1; box-shadow: 0 0 0 7px currentColor; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* 1600px+ 大屏自适应：宽度、列比和纵向空间同步扩展 */
@media (min-width: 1600px) {
  .page,
  .workbench-page,
  .diagnosis-page,
  .efficiency-page,
  .reports-page,
  .copilot-page {
    width: 100%;
    max-width: 2400px;
    padding-right: clamp(28px, 2.4vw, 64px);
    padding-left: clamp(28px, 2.4vw, 64px);
  }

  .workbench-page {
    min-height: calc(100vh - 64px);
    padding-top: 18px;
    padding-bottom: 18px;
  }
  .workbench-layout {
    height: calc(100vh - 100px);
    min-height: 900px;
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
    grid-template-columns: minmax(0, 1fr) clamp(370px, 19vw, 460px);
    gap: clamp(14px, .9vw, 22px);
  }
  .workbench-main {
    height: 100%;
    min-height: 0;
    overflow: hidden;
    grid-template-rows:
      minmax(210px, .95fr)
      minmax(140px, .65fr)
      minmax(270px, 1.25fr)
      minmax(245px, 1.1fr);
    gap: clamp(14px, .9vw, 22px);
  }
  .workbench-top,
  .workbench-kpis,
  .workbench-charts,
  .workbench-bottom { gap: clamp(14px, .9vw, 22px); }
  .workbench-top { grid-template-columns: minmax(0, 1.68fr) minmax(420px, .92fr); }
  .workbench-top .ai-summary { padding: clamp(24px, 1.6vw, 38px); }
  .workbench-top .ai-summary p { max-width: 64%; }
  .workbench-top .risk-card { padding: clamp(18px, 1.05vw, 24px); }
  .workbench-top .risk-badge { width: clamp(42px, 2.55vw, 56px); height: clamp(42px, 2.55vw, 56px); }
  .workbench-top .risk-svg-icon { width: 52%; height: 52%; }
  .workbench-top .summary-stat-icon { width: clamp(24px, 1.45vw, 31px); height: clamp(24px, 1.45vw, 31px); padding: clamp(4px, .28vw, 6px); }
  .workbench-kpis .kpi { padding: clamp(16px, 1vw, 24px); }
  .workbench-kpis .kpi-icon { flex-basis: clamp(66px, 4.4vw, 88px); width: clamp(66px, 4.4vw, 88px); height: clamp(66px, 4.4vw, 88px); }
  .workbench-charts { grid-template-columns: minmax(0, 1.62fr) minmax(420px, .78fr); }
  .workbench-charts > .card { padding: clamp(18px, 1.2vw, 28px); }
  .workbench-charts .chart { height: calc(100% - 38px); }
  .workbench-charts .donut-wrap { grid-template-columns: clamp(155px, 10vw, 220px) 1fr; }
  .workbench-charts .donut { width: clamp(150px, 9vw, 205px); height: clamp(150px, 9vw, 205px); }
  .workbench-bottom > .card { padding: clamp(16px, 1vw, 24px); }
  .workbench-assistant { padding: clamp(20px, 1.25vw, 30px); }
  .workbench-assistant .quick-tasks button { min-height: clamp(48px, 3.1vw, 62px); }

  .diagnosis-page {
    height: calc(100vh - 64px);
    min-height: 900px;
    grid-template-columns: minmax(0, 1fr) clamp(400px, 22vw, 520px);
    grid-template-rows: 76px 88px minmax(0, 1fr);
    gap: 12px clamp(14px, .9vw, 22px);
    padding-top: 0;
    padding-bottom: 12px;
  }
  .diagnosis-page .diag-main {
    height: 100%;
    grid-template-rows: 126px minmax(360px, 1.45fr) minmax(250px, 1fr);
    gap: clamp(14px, .9vw, 22px);
  }
  .diagnosis-page .diag-main > .kpis,
  .diagnosis-page .diag-charts,
  .diagnosis-page .diag-charts > .card,
  .diagnosis-page .diag-main > article:last-child { width: 100%; height: 100%; }
  .diagnosis-page .diag-charts > div { grid-template-rows: minmax(220px, 1.55fr) minmax(150px, 1fr); }
  .diagnosis-page .diag-charts .chart { height: calc(100% - 36px); }
  .diagnosis-page .diag-side { height: 100%; }

  .efficiency-page {
    height: calc(100vh - 64px);
    min-height: 920px;
    grid-template-columns: minmax(0, 1.55fr) minmax(430px, .82fr) clamp(360px, 20vw, 470px);
    grid-template-rows: 58px minmax(520px, 1.65fr) minmax(300px, 1fr);
    column-gap: clamp(14px, .9vw, 22px);
    row-gap: 14px;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .efficiency-page > .energy-layout > div:first-child {
    height: 100%;
    grid-template-rows: 126px minmax(0, 1fr);
    gap: clamp(14px, .9vw, 22px);
  }
  .efficiency-page > .energy-layout > div:first-child > .kpis,
  .efficiency-page > .energy-layout > div:first-child > .card,
  .efficiency-page > .energy-layout > div:nth-child(2),
  .efficiency-page .dark-ai-card,
  .efficiency-page > .energy-layout > div:nth-child(2) > .panel,
  .efficiency-page > .energy-layout > .side-detail,
  .efficiency-page > article:last-child { height: 100%; }
  .efficiency-page .matrix { height: calc(100% - 40px); }
  .efficiency-page > .energy-layout > div:nth-child(2) { grid-template-rows: minmax(300px, 1.4fr) minmax(210px, 1fr); gap: clamp(14px, .9vw, 22px) !important; }
  .efficiency-page > article:last-child { margin-top: 0 !important; }
  .efficiency-page .task-card { min-height: clamp(76px, 5vw, 96px); }

  .reports-page {
    height: calc(100vh - 64px);
    min-height: 920px;
    grid-template-columns: clamp(380px, 19vw, 470px) minmax(0, 1fr) clamp(360px, 18vw, 450px);
    grid-template-rows: 58px 120px 14px minmax(0, 1fr);
    column-gap: clamp(14px, .9vw, 22px);
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .reports-page .report-list,
  .reports-page .report-viewer,
  .reports-page .report-side { height: 100%; }
  .reports-page .report-side { grid-template-rows: 1.08fr .58fr 1.12fr; gap: clamp(14px, .9vw, 22px); }
  .reports-page .report-paper { height: calc(100% - 55px); }
  .reports-page .report-item { min-height: clamp(78px, 4.8vw, 98px); }

  .copilot-page {
    padding: 12px clamp(24px, 2vw, 52px) 16px;
  }
  .copilot-page .copilot-layout {
    height: calc(100vh - 92px);
    grid-template-columns: clamp(330px, 18vw, 420px) minmax(0, 1fr) clamp(430px, 23vw, 550px);
    gap: clamp(14px, .9vw, 22px);
  }
  .copilot-page .conversation-body { padding: clamp(20px, 1.4vw, 34px); }

}

/* 节能管理：用决策型收益榜替代抽象机会矩阵 */
.energy-lifecycle {
  position: relative;
  display: grid;
  min-height: 88px;
  margin: 0 !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px;
}
.lifecycle-card {
  position: relative;
  display: flex;
  min-width: 0;
  height: 100%;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  overflow: visible;
  border: 1px solid #dce7f2;
  border-radius: 10px;
  color: #60738b;
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(246,250,255,.9));
  box-shadow: 0 6px 18px rgba(39,91,150,.06);
  cursor: pointer;
  text-align: left;
  transition: transform .2s, border-color .2s, box-shadow .2s, background .2s;
}
.lifecycle-card:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -9px;
  z-index: 3;
  width: 8px;
  height: 8px;
  border-top: 2px solid #82a9d2;
  border-right: 2px solid #82a9d2;
  background: #f5f9fd;
  content: "";
  transform: translateY(-50%) rotate(45deg);
}
.lifecycle-card:hover { transform: translateY(-2px); border-color: #9cc4eb; box-shadow: 0 9px 24px rgba(32,101,181,.12); }
.lifecycle-card.active { border-color: #5798df; background: linear-gradient(145deg, #f8fbff, #ebf5ff); box-shadow: 0 8px 24px rgba(33,105,190,.14), inset 0 -3px 0 #2873cf; }
.lifecycle-card > i {
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: linear-gradient(145deg, #2c7bd9, #1852a4);
  box-shadow: 0 5px 13px rgba(33,92,173,.22);
  font-size: var(--font-caption);
  font-style: normal;
  font-weight: 700;
}
.lifecycle-card.measure > i { background: linear-gradient(145deg, #2f9bc8, #1c6bab); }
.lifecycle-card.action > i { background: linear-gradient(145deg, #746dde, #4c56b7); }
.lifecycle-card.verification > i { background: linear-gradient(145deg, #2db994, #13856e); }
.lifecycle-card > span { display: grid; min-width: 0; flex: 1; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 5px; }
.lifecycle-card span > b { overflow: hidden; color: #314a64; font-size: var(--font-body); text-overflow: ellipsis; white-space: nowrap; }
.lifecycle-card span > strong { color: #173b63; font-size: var(--font-section-title); line-height: 1; }
.lifecycle-card span > strong small { margin-left: 2px; color: #6e8299; font-size: var(--font-caption); font-weight: 500; }
.lifecycle-card span > em { overflow: hidden; grid-column: 1 / 3; color: #8191a3; font-size: var(--font-caption); font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.priority-board { display: flex; min-height: 0; flex-direction: column; }
.priority-board .panel-head p { margin: 4px 0 0; color: var(--muted); font-size: var(--font-caption); }
.priority-table { margin-top: 10px; }
.priority-table-head,
.priority-row {
  display: grid;
  grid-template-columns: minmax(210px, 1.7fr) repeat(4, minmax(72px, .72fr));
  align-items: center;
  column-gap: 8px;
}
.priority-table-head {
  padding: 0 12px 7px;
  color: #8191a5;
  font-size: var(--font-caption);
}
.priority-table-head span:not(:first-child) { text-align: right; }
.priority-row {
  width: 100%;
  min-height: 48px;
  margin-top: 5px;
  padding: 7px 12px;
  border: 1px solid #e2eaf3;
  border-radius: 9px;
  color: #52657d;
  background: rgba(255,255,255,.86);
  cursor: pointer;
  font-size: var(--font-caption);
  text-align: right;
  transition: border-color .2s, box-shadow .2s, transform .2s, background .2s;
}
.priority-row:hover { transform: translateY(-1px); border-color: #9bc6ee; box-shadow: 0 8px 20px rgba(40,108,190,.1); }
.priority-row.active { border-color: #5a9fe5; background: linear-gradient(90deg, #f4f9ff, #fff); box-shadow: 0 7px 22px rgba(36,105,194,.13), inset 3px 0 0 #2674d8; }
.priority-name { display: flex; min-width: 0; align-items: center; gap: 8px; text-align: left; }
.priority-name > i { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; border-radius: 7px; color: #fff; background: linear-gradient(145deg, #2a7adb, #1855ad); box-shadow: 0 4px 10px rgba(27,92,176,.22); font-style: normal; font-weight: 700; }
.priority-name > b { overflow: hidden; color: #213a56; font-size: var(--font-body); text-overflow: ellipsis; white-space: nowrap; }
.priority-tag { margin-left: auto; padding: 3px 6px; border-radius: 10px; font-size: var(--font-caption); font-style: normal; white-space: nowrap; }
.priority-tag.green { color: #098365; background: #e8f8f2; }
.priority-tag.blue { color: #2168c6; background: #eaf3ff; }
.priority-tag.orange { color: #bd7012; background: #fff3e3; }
.priority-row > strong { color: #087f68; font-size: var(--font-body); }
.confidence { display: grid; justify-items: end; gap: 4px; }
.confidence b { color: #274967; font-size: var(--font-caption); }
.confidence > i { display: block; width: 52px; height: 4px; overflow: hidden; border-radius: 4px; background: #e4edf6; }
.confidence u { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2469cf, #3bc1d6); text-decoration: none; }
.saving-roadmap { display: grid; margin-top: auto; padding-top: 10px; grid-template-columns: 72px 1fr; align-items: start; }
.saving-roadmap > b { padding-top: 3px; color: #29435e; font-size: var(--font-caption); }
.saving-roadmap > div { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); }
.saving-roadmap > div::before { position: absolute; top: 6px; right: 8%; left: 8%; height: 2px; background: linear-gradient(90deg, #1ca67d, #2e7cd8, #7c70d5); content: ""; }
.saving-roadmap span { position: relative; display: grid; justify-items: center; color: #51687f; }
.saving-roadmap span > i { position: relative; z-index: 1; width: 13px; height: 13px; border: 3px solid #fff; border-radius: 50%; background: #2a76d2; box-shadow: 0 0 0 1px #64a2e4; }
.saving-roadmap span:first-child > i { background: #16a17a; box-shadow: 0 0 0 1px #57c6a5; }
.saving-roadmap span:last-child > i { background: #7668d0; box-shadow: 0 0 0 1px #a89de8; }
.saving-roadmap strong { margin-top: 5px; font-size: var(--font-caption); }
.saving-roadmap small { margin-top: 2px; color: #8795a7; font-size: var(--font-caption); }

@media (max-width: 1300px) {
  .energy-lifecycle { gap: 7px; }
  .lifecycle-card { gap: 7px; padding: 9px 8px; }
  .lifecycle-card > i { width: 27px; height: 27px; flex-basis: 27px; }
  .priority-table-head,
  .priority-row { grid-template-columns: minmax(180px, 1.55fr) repeat(4, minmax(62px, .65fr)); }
  .priority-tag { display: none; }
  .saving-roadmap small { display: none; }
}

/* 工作台风险卡：与诊断摘要等高，紧凑排布以避免内容侵入下一行 */
.workbench-top .risk-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  padding: 14px 18px;
}
.workbench-top .risk-card .risk-title {
  min-width: 0;
  margin-top: 9px;
  padding: 9px 11px;
}
.workbench-top .risk-card .risk-title > div { min-width: 0; }
.workbench-top .risk-card .risk-title p {
  margin-top: 3px;
  line-height: 1.45;
}
.workbench-top .risk-card .risk-meta {
  margin-top: 9px;
}
.workbench-top .risk-card .risk-meta div { padding: 0 8px; }
.workbench-top .risk-card .risk-meta b {
  margin-top: 3px;
  white-space: nowrap;
}

@media (min-width: 1600px) {
  .workbench-top .risk-card { padding: clamp(18px, 1.05vw, 24px); }
  .workbench-top .risk-card .risk-title {
    margin-top: clamp(10px, .65vw, 14px);
    padding: clamp(10px, .7vw, 14px);
  }
  .workbench-top .risk-card .risk-meta { margin-top: clamp(10px, .7vw, 14px); }
}

/* 统一字体系统：此处是组件字号的唯一映射入口 */
.main-nav button { font-size: var(--font-nav) !important; }

.page-title h1 {
  font-size: var(--font-page-title) !important;
  line-height: var(--line-title);
}
.page-title p {
  font-size: var(--font-body) !important;
  line-height: var(--line-body);
}

.workbench-top .ai-summary h2,
.report-paper > h2 {
  font-size: var(--font-section-title) !important;
  line-height: var(--line-title);
}

.card .panel-head h2,
.risk-title h3,
.assistant-head b,
.copilot-brand b,
.conversation-head h2,
.task-list h3,
.recent-list h3,
.context-section h2,
.report-mini-grid h3 {
  font-size: var(--font-card-title) !important;
  line-height: var(--line-title);
}

.control,
.secondary,
.primary,
.danger,
.text-button,
.full-btn,
.new-chat,
.card button,
.user-menu button,
.ai-summary p,
.assistant-message,
.mini-bubble,
.quick-tasks button,
.legend-list div,
.evidence-step p,
.evidence-summary div,
.matrix-node,
.recommendation,
.timeline div,
.side-detail dl,
.info-list div,
.audit-list div,
.message .bubble,
.reason-cards p,
.recommend-box,
.task-list button,
.recent-list button,
.building-selector,
.composer textarea,
.composer-taskbar button,
.context-grid b,
.evidence-list div,
.boundary,
.work-product p,
.finding {
  font-size: var(--font-body) !important;
  line-height: var(--line-body);
}

.task-card b,
.report-item b,
.work-product b,
.method-flow b {
  font-size: var(--font-body) !important;
  line-height: var(--line-title);
}

.status,
.summary-period,
.panel-head .link,
.kpi p,
.risk-meta span,
.report-item p,
.task-card p,
.task-card span,
.method-flow small,
.context-grid span,
.evidence-list b,
.report-paper > p,
.report-kpis span,
.conversation-head p,
.suggestion-chips button,
.mini-followups button,
.filter-tabs button,
.report-tabs button,
.recent-list time,
.composer footer,
.mini-composer footer span,
.ai-disclaimer,
.axis-x,
.axis-y,
.report-month small,
.report-score span {
  font-size: var(--font-caption) !important;
  line-height: var(--line-caption);
}

.data-table,
.data-table th,
.data-table td {
  font-size: var(--font-body) !important;
  line-height: var(--line-body);
}

.kpi span,
.risk-meta b,
.analysis-status,
.analysis-status b,
.context-grid b,
.report-kpis b {
  font-size: var(--font-body) !important;
}

.kpi strong {
  font-size: var(--font-metric) !important;
  line-height: 1.1;
}
.kpi strong small { font-size: var(--font-caption) !important; }
.summary-stats b,
.donut b,
.report-score strong,
.report-month,
.sim-stats b {
  font-size: var(--font-section-title) !important;
  line-height: 1.1;
}

.workbench-top .ai-summary p { font-size: var(--font-body) !important; }
.workbench-top .summary-stats span { font-size: var(--font-body) !important; }
.workbench-top .summary-stats b { font-size: var(--font-section-title) !important; }
.workbench-top .risk-title h3 { font-size: var(--font-card-title) !important; }
.workbench-top .risk-title p,
.workbench-top .risk-meta span,
.workbench-top .risk-meta b { font-size: var(--font-body) !important; }
.workbench-kpis .kpi span { font-size: var(--font-body) !important; }
.workbench-kpis .kpi strong { font-size: var(--font-metric) !important; }
.workbench-kpis .kpi p { font-size: var(--font-caption) !important; }
.workbench-bottom .data-table,
.workbench-bottom .data-table th,
.workbench-bottom .data-table td { font-size: var(--font-body) !important; }
.workbench-assistant .assistant-message,
.workbench-assistant .mini-bubble,
.workbench-assistant .quick-tasks button,
.workbench-assistant .mini-composer textarea { font-size: var(--font-body) !important; }

.card p,
.card dd,
.card td { line-height: var(--line-body); }

/* 图表悬停反馈：指针、参考线、数据提示与分段联动 */
.interactive-chart { cursor: crosshair; }
.interactive-donut { cursor: pointer; transition: transform .2s ease, filter .2s ease, box-shadow .2s ease; }
.interactive-donut.is-hovered {
  filter: saturate(1.18) drop-shadow(0 8px 15px rgba(36, 99, 212, .16));
  transform: scale(1.035);
}
.legend-list div.is-active {
  border-color: color-mix(in srgb, var(--cobalt) 38%, var(--line));
  color: var(--cobalt);
  background: #f1f7ff;
  box-shadow: 0 5px 14px rgba(36, 99, 212, .08);
  transform: translateX(3px);
}
.chart-tooltip {
  position: fixed;
  z-index: 120;
  max-width: 230px;
  padding: 8px 11px 8px 13px;
  border: 1px solid rgba(255, 255, 255, .68);
  border-radius: 8px;
  color: #edf7ff;
  background: rgba(8, 35, 70, .94);
  box-shadow: 0 10px 26px rgba(10, 45, 91, .24), inset 3px 0 0 var(--tooltip-accent, #2463d4);
  font-size: var(--font-caption);
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, calc(-100% - 12px)) scale(.96);
  transition: opacity .14s ease, transform .14s ease;
  white-space: nowrap;
}
.chart-tooltip.visible { opacity: 1; transform: translate(-50%, calc(-100% - 12px)) scale(1); }

/* 首页副驾：首屏紧凑布局与连续会话模式 */
.workbench-assistant .assistant-chat-region {
  display: flex;
  min-height: 0;
  flex-direction: column;
  margin-bottom: 12px;
}
.workbench-assistant .mini-composer {
  flex: 0 0 auto;
  margin-top: auto;
}
.workbench-assistant .mini-composer textarea { height: 50px; }
.workbench-assistant.has-conversation .assistant-chat-region { flex: 1 1 auto; }
.workbench-assistant.has-conversation .assistant-thread {
  height: auto;
  min-height: 180px;
  flex: 1 1 auto;
}
.workbench-assistant.has-conversation > h3,
.workbench-assistant.has-conversation > .quick-tasks { display: none; }
.workbench-assistant .quick-tasks button > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (min-width: 1101px) and (max-width: 1599px) and (max-height: 900px) {
  .workbench-layout { align-items: start; }
  .workbench-assistant {
    position: fixed;
    top: 80px;
    right: 20px;
    z-index: 20;
    height: calc(100vh - 96px);
    max-height: calc(100vh - 96px);
    align-self: start;
    overflow: hidden;
  }
  .workbench-assistant .assistant-thread { height: 108px; }
  .workbench-assistant .quick-tasks { gap: 6px; }
  .workbench-assistant .quick-tasks button {
    min-height: 38px;
    padding: 7px 8px;
  }
  .workbench-assistant .task-svg-icon {
    width: 23px;
    height: 23px;
  }
  .workbench-assistant h3 { margin-top: 11px; }
  .workbench-assistant.has-conversation .assistant-thread {
    height: auto;
    min-height: 180px;
  }
}

@media (min-width: 1101px) and (max-width: 1300px) and (max-height: 900px) {
  .workbench-assistant { width: 310px; }
}

@media (min-width: 1301px) and (max-width: 1599px) and (max-height: 900px) {
  .workbench-assistant { width: 348px; }
}

/* 报告中心：为统一后的大字号预留真实高度，并提升年度摘要可读性 */
.reports-page > .page-head {
  position: relative;
  z-index: 2;
  overflow: visible;
  padding-bottom: 12px;
}
.reports-page .annual-report-paper { overflow-y: auto !important; }
.reports-page .annual-report-paper .report-summary {
  height: auto;
  min-height: 132px;
  padding: 22px 24px;
}
.reports-page .annual-report-paper .report-summary > b {
  font-size: var(--font-card-title) !important;
  line-height: var(--line-title);
}
.reports-page .annual-report-paper .report-summary p {
  width: 64%;
  margin-top: 10px;
  font-size: var(--font-body) !important;
  line-height: 1.75;
}
.reports-page .annual-report-paper .report-score { top: 25px; right: 27%; }
.reports-page .annual-report-paper .report-score strong {
  font-size: clamp(28px, calc(22px + .45vw), 34px) !important;
}
.reports-page .annual-report-paper .report-score span { font-size: var(--font-caption) !important; }

@media (min-width: 1301px) and (max-width: 1599px) {
  .reports-page { grid-template-rows: 74px 98px 12px 638px; }
  .reports-page > .page-head { min-height: 74px; }
}

@media (min-width: 1600px) {
  .reports-page { grid-template-rows: 80px 120px 14px minmax(0, 1fr); }
  .reports-page > .page-head { min-height: 80px; }
  .reports-page .annual-report-paper .report-summary { min-height: 148px; padding: 25px 28px; }
}

/* 节能管理主从布局：左侧机会/措施/行动清单，右侧对象详情 */
.status.gray { color: #687b91; background: #edf2f7; }
.efficiency-master-page {
  display: flex !important;
  width: min(1800px, 100%);
  height: calc(100vh - 64px) !important;
  min-height: 0 !important;
  flex-direction: column;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  gap: 0 !important;
  padding: 16px 20px 14px;
}
.efficiency-master-page > .page-head {
  width: 100%;
  min-height: 58px !important;
  flex: 0 0 58px;
}
.energy-workspace {
  display: grid;
  min-height: 0;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1fr) clamp(370px, 25vw, 460px);
  gap: 12px;
  margin-top: 12px;
}
.energy-lists {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.energy-list-column {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}
.energy-list-column:not(:last-child)::after {
  position: absolute;
  top: 31px;
  right: -9px;
  z-index: 4;
  width: 9px;
  height: 9px;
  border-top: 2px solid #74a3d2;
  border-right: 2px solid #74a3d2;
  background: #f4f8fc;
  content: "";
  transform: rotate(45deg);
}
.energy-list-column > header {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  padding: 13px 15px 10px;
  border-bottom: 1px solid #e5edf5;
  background: linear-gradient(135deg, #fbfdff, #f3f8fe);
}
.energy-list-column > header > div { display: flex; min-width: 0; align-items: center; gap: 9px; }
.energy-list-column > header h2 { margin: 0; color: #213b58; font-size: var(--font-card-title); white-space: nowrap; }
.energy-list-column > header > b { color: #2b6fc7; font-size: var(--font-body); white-space: nowrap; }
.entity-step { display: grid; width: 29px; height: 29px; flex: 0 0 29px; place-items: center; border-radius: 8px; color: #fff; background: linear-gradient(145deg, #2c7bd9, #174f9f); box-shadow: 0 5px 12px rgba(34,93,171,.18); font-size: var(--font-caption); font-weight: 700; }
.measure-column .entity-step { background: linear-gradient(145deg, #2c9ecb, #1768a3); }
.action-column .entity-step { background: linear-gradient(145deg, #766ddd, #4d54b5); }
.column-help { margin: 0; padding: 8px 15px; color: #8090a3; background: #fafcff; font-size: var(--font-caption); }
.entity-list { min-height: 0; flex: 1 1 auto; overflow-x: hidden; overflow-y: auto; padding: 4px 10px 12px; scrollbar-width: thin; scrollbar-color: #bed0e2 transparent; }
.entity-item {
  position: relative;
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 11px 12px;
  overflow: hidden;
  border: 1px solid #e0e9f2;
  border-radius: 9px;
  color: #597087;
  background: rgba(255,255,255,.94);
  cursor: pointer;
  text-align: left;
  transition: transform .18s, border-color .18s, box-shadow .18s, background .18s;
}
.entity-item:hover { transform: translateY(-1px); border-color: #9bc3ea; box-shadow: 0 7px 17px rgba(37,97,167,.09); }
.entity-item.related { border-color: #b4d3ef; background: #f5faff; box-shadow: inset 3px 0 0 #79addf; }
.entity-item.active { border-color: #4d94dc; background: linear-gradient(100deg, #edf6ff, #fff); box-shadow: 0 8px 20px rgba(35,102,181,.13), inset 3px 0 0 #216bc6; }
.entity-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.entity-top > i { color: #4a75a6; font-size: var(--font-caption); font-style: normal; font-weight: 700; letter-spacing: .02em; }
.entity-item > b { display: block; margin-top: 8px; overflow: hidden; color: #253d58; font-size: var(--font-body); line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.entity-source { display: block; margin-top: 6px; overflow: hidden; color: #7b8da2; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.entity-metrics { display: flex; margin-top: 9px; justify-content: space-between; gap: 8px; }
.entity-metrics small { color: #637d97; font-size: var(--font-caption); white-space: nowrap; }
.energy-workspace > .entity-detail {
  display: flex !important;
  height: 100% !important;
  min-height: 0 !important;
  flex-direction: column;
  grid-column: auto !important;
  grid-row: auto !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding: 18px;
}
.entity-detail > .panel-head { flex: 0 0 auto; }
.entity-detail .panel-head > div { display: flex; align-items: center; gap: 9px; }
.entity-detail .panel-head h2 { margin: 0; }
.detail-kind { padding: 4px 7px; border-radius: 5px; color: #2769ba; background: #eaf3ff; font-size: var(--font-caption); }
.detail-path { display: flex; margin-top: 13px; align-items: center; gap: 7px; color: #8090a2; font-size: var(--font-caption); }
.detail-path span { padding: 4px 7px; border: 1px solid #d9e5f1; border-radius: 5px; color: #426789; background: #f8fbfe; }
.detail-path i { color: #4b8bd0; font-style: normal; font-size: 17px; }
.efficiency-master-page .entity-detail > section {
  min-height: 0 !important;
  flex: 0 0 auto !important;
  margin-top: 13px;
  padding: 13px;
}
.detail-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, #f4f9ff, #fbfdff); }
.detail-hero::after { position: absolute; top: -42px; right: -35px; width: 120px; height: 120px; border: 1px solid #d4e8fb; border-radius: 50%; box-shadow: 0 0 0 18px rgba(79,145,213,.04); content: ""; }
.detail-hero > i { position: relative; z-index: 1; color: #3976b8; font-size: var(--font-caption); font-style: normal; font-weight: 700; }
.detail-hero h3 { position: relative; z-index: 1; margin: 7px 0 0; color: #203c59; font-size: var(--font-card-title); }
.detail-hero p { position: relative; z-index: 1; margin: 7px 0 0; color: #71859a; font-size: var(--font-body); line-height: 1.65; }
.detail-metric-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; border: 0 !important; padding: 0 !important; }
.detail-metric-grid.four { grid-template-columns: repeat(2, 1fr); }
.detail-metric-grid > div { padding: 10px; border: 1px solid #e2ebf3; border-radius: 8px; background: #fbfdff; }
.detail-metric-grid span { display: block; color: #8291a3; font-size: var(--font-caption); }
.detail-metric-grid b { display: block; margin-top: 5px; color: #245f9f; font-size: var(--font-body); }
.detail-section-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.detail-section-head > b { color: #31485f; font-size: var(--font-body); }
.detail-section-head > span:not(.status) { color: #8090a3; font-size: var(--font-caption); }
.linked-items { margin-top: 8px; }
.linked-items button { display: flex; width: 100%; margin-top: 6px; align-items: center; justify-content: space-between; gap: 10px; padding: 9px; border: 1px solid #e3ebf3; border-radius: 7px; color: #58718a; background: #fbfdff; cursor: pointer; text-align: left; }
.linked-items button:hover { border-color: #9bc3ea; background: #f4f9ff; }
.linked-items button > span { display: grid; min-width: 0; gap: 3px; }
.linked-items button i { color: #3978b8; font-size: var(--font-caption); font-style: normal; }
.linked-items button b { overflow: hidden; color: #314b65; font-size: var(--font-body); text-overflow: ellipsis; white-space: nowrap; }
.linked-items button em { flex: 0 0 auto; color: #5d84ad; font-size: var(--font-caption); font-style: normal; white-space: nowrap; }
.detail-evidence p,
.verification-summary p { margin: 8px 0 0; color: #6d8197; font-size: var(--font-body); line-height: 1.65; }
.verification-card { background: linear-gradient(135deg, #f5fbf9, #fbfefd); }
.verification-card dl { margin-top: 10px; }
.entity-detail > .full-btn { flex: 0 0 auto; margin-top: 13px; }

@media (max-width: 1100px) {
  .efficiency-master-page { height: auto !important; min-height: 0 !important; }
  .energy-workspace { grid-template-columns: 1fr; }
  .energy-lists { min-height: 650px; }
  .energy-workspace > .entity-detail { min-height: 620px !important; }
}

@media (max-width: 760px) {
  .energy-lists { min-height: 0; grid-template-columns: 1fr; }
  .energy-list-column { min-height: 430px; }
  .energy-list-column:not(:last-child)::after { display: none; }
}

/* AI副驾：千问连接与Excel数据上下文 */
.qwen-online { display: block; margin-top: 3px; color: #13a477; font-size: var(--font-caption); }
.left-excel-upload {
  display: flex;
  min-height: 38px;
  align-items: center;
  gap: 9px;
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid #b8d2ec;
  border-radius: 8px;
  color: #286abd;
  background: linear-gradient(180deg, #fff, #f2f8ff);
  cursor: pointer;
  font-size: var(--font-body);
}
.left-excel-upload span { min-width: 0; flex: 1; }
.left-excel-upload b { font-size: 17px; font-weight: 500; }
.left-excel-upload:hover { border-color: #6ea6df; box-shadow: 0 6px 16px rgba(42,103,177,.1); }
.model-badge { display: inline-flex; height: 27px; margin-right: 6px; align-items: center; padding: 0 9px; border: 1px solid #b9d7ee; border-radius: 14px; color: #1768ac; background: linear-gradient(100deg, #eef9ff, #f5f2ff); font-size: var(--font-caption); font-weight: 700; }
.message .bubble { white-space: pre-wrap; }
.excel-context-strip {
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
  padding: 8px 10px;
  border: 1px solid #d9e7f3;
  border-radius: 8px;
  background: linear-gradient(100deg, #f8fbff, #f2f8ff);
}
.excel-context-strip > div { min-width: 0; flex: 1; }
.excel-context-strip b,
.excel-context-strip small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.excel-context-strip b { color: #31516f; font-size: var(--font-body); }
.excel-context-strip small { margin-top: 3px; color: #7e90a3; font-size: var(--font-caption); }
.excel-context-strip label,
.excel-drop-card label,
.uploaded-file-card label { flex: 0 0 auto; padding: 6px 9px; border: 1px solid #9bc2e6; border-radius: 6px; color: #2369b9; background: #fff; cursor: pointer; font-size: var(--font-caption); }
.excel-context-strip label:hover,
.excel-drop-card label:hover,
.uploaded-file-card label:hover { border-color: #4b91d7; background: #f2f8ff; }
.excel-context-strip.ready { border-color: #b9e2d5; background: linear-gradient(100deg, #f6fcfa, #f4f9ff); }
.excel-ready { flex: 0 0 auto; color: #158565; font-size: var(--font-caption); }
.excel-file-icon { display: grid; width: 29px; height: 29px; flex: 0 0 29px; place-items: center; border-radius: 7px; color: #fff; background: linear-gradient(145deg, #21aa72, #0b7952); box-shadow: 0 5px 12px rgba(17,135,91,.18); font-size: var(--font-body); font-weight: 800; }
.excel-file-icon.large { width: 42px; height: 42px; margin: 0 auto; border-radius: 10px; font-size: 16px; }
.excel-spinner { width: 18px; height: 18px; flex: 0 0 18px; border: 2px solid #d4e5f4; border-top-color: #2774c9; border-radius: 50%; animation: rotate .8s linear infinite; }
.composer-upload { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px; border-radius: 5px; color: #286abd; cursor: pointer; background: #eef6ff; }
.composer-upload:hover { background: #e1efff; }
.excel-drop-card { display: grid; min-height: 190px; place-items: center; align-content: center; gap: 9px; padding: 18px; border: 1px dashed #9fc3e7; border-radius: 10px; text-align: center; background: linear-gradient(145deg, #fbfdff, #f2f8ff); }
.excel-drop-card b { color: #2d4d6e; font-size: var(--font-card-title); }
.excel-drop-card p { max-width: 290px; margin: 0; color: #74889d; font-size: var(--font-body); line-height: 1.65; }
.uploaded-file-card { display: flex; align-items: center; gap: 10px; padding: 11px; border: 1px solid #cfe1ef; border-radius: 9px; background: linear-gradient(100deg, #f6fcfa, #f5f9ff); }
.uploaded-file-card > div { min-width: 0; flex: 1; }
.uploaded-file-card b,
.uploaded-file-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uploaded-file-card b { color: #31516f; font-size: var(--font-body); }
.uploaded-file-card small { margin-top: 4px; color: #75899d; font-size: var(--font-caption); }
.sheet-summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 9px; }
.sheet-summary { min-width: 0; padding: 9px; border: 1px solid #e0e9f1; border-radius: 7px; background: #fbfdff; }
.sheet-summary span,
.sheet-summary b,
.sheet-summary small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet-summary span { color: #7f91a4; font-size: var(--font-caption); }
.sheet-summary b { margin-top: 4px; color: #365a7c; font-size: var(--font-body); }
.sheet-summary small { margin-top: 4px; color: #8a99a9; font-size: var(--font-caption); }
.excel-evidence div { align-items: flex-start; }
.excel-evidence div > span { min-width: 0; flex: 1; }
.excel-evidence div span small { display: block; margin-top: 3px; color: #8292a3; font-size: var(--font-caption); }
.model-connection { display: flex; align-items: center; gap: 11px; padding: 12px; border: 1px solid #dbe7f1; border-radius: 9px; background: linear-gradient(120deg, #f2f9ff, #f8f5ff); }
.model-connection > i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #2188ce, #6755c9); box-shadow: 0 6px 16px rgba(48,104,188,.18); font-style: normal; font-weight: 800; }
.model-connection b,
.model-connection span { display: block; }
.model-connection b { color: #294b6d; font-size: var(--font-body); }
.model-connection span { margin-top: 3px; color: #7d8fa2; font-size: var(--font-caption); }
.ai-answer-content { white-space: normal !important; }
.ai-answer-content > p { margin: 0 0 8px; }
.ai-answer-content > h2,
.ai-answer-content > h3,
.ai-answer-content > h4 { margin: 14px 0 7px; color: #294e75; line-height: 1.4; }
.ai-answer-content > h2 { font-size: var(--font-section-title); }
.ai-answer-content > h3 { font-size: var(--font-card-title); }
.ai-answer-content > h4 { font-size: var(--font-body); }
.ai-answer-content strong { color: #245f9f; }
.ai-answer-content code { padding: 2px 5px; border-radius: 4px; color: #355d84; background: #edf4fb; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.ai-answer-gap { display: block; height: 5px; }
.ai-answer-list { display: grid; margin: 5px 0; grid-template-columns: 12px 1fr; gap: 6px; align-items: start; }
.ai-answer-list > i { width: 5px; height: 5px; margin-top: 7px; border-radius: 50%; background: #2e78cb; }
.ai-answer-list.numbered { grid-template-columns: 21px 1fr; }
.ai-answer-list.numbered > b { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 5px; color: #fff; background: #2b72c5; font-size: var(--font-caption); }
.ai-answer-table { width: 100%; margin: 10px 0 14px; overflow-x: auto; border: 1px solid #dce8f5; border-radius: 10px; background: #fff; }
.ai-answer-table table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: var(--font-body); }
.ai-answer-table th,
.ai-answer-table td { padding: 9px 11px; border-bottom: 1px solid #e5edf6; text-align: left; vertical-align: top; }
.ai-answer-table th { color: #315d87; background: #f2f7fc; font-weight: 650; white-space: nowrap; }
.ai-answer-table tr:last-child td { border-bottom: 0; }
.streaming-message .bubble::after { content: ""; display: inline-block; width: 7px; height: 15px; margin-left: 3px; border-radius: 2px; vertical-align: -2px; background: #2d73c5; animation: stream-caret .75s steps(1) infinite; }
@keyframes stream-caret { 50% { opacity: .18; } }
@media (prefers-reduced-motion: reduce) { .streaming-message .bubble::after { animation: none; } }

@media (max-width: 900px) {
  .sheet-summary-grid { grid-template-columns: 1fr; }
  .excel-ready { display: none; }
}

/* 能效智脑：左右上下文栏可独立收拢 */
.copilot-page .copilot-layout { transition: grid-template-columns .26s cubic-bezier(.2,.8,.2,1); }
.copilot-page .copilot-left,
.copilot-page .copilot-right { position: relative; transition: width .26s ease, min-height .26s ease, padding .26s ease; }
.sidebar-collapse {
  position: absolute;
  z-index: 8;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  padding: 0;
  border: 1px solid #b9d1e8;
  border-radius: 8px;
  color: #3374b7;
  background: rgba(255,255,255,.96);
  box-shadow: 0 5px 14px rgba(38,88,146,.11);
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  transition: color .2s, border-color .2s, background .2s, transform .2s;
}
.sidebar-collapse:hover { color: #125da9; border-color: #74a8d8; background: #eef7ff; }
.sidebar-collapse-left { top: 14px; right: 12px; }
.sidebar-collapse-right { top: 14px; left: 12px; }
.copilot-left:not(.collapsed) .copilot-brand { padding-right: 34px; }
.copilot-right:not(.collapsed) > .context-section:first-of-type .panel-head { padding-left: 34px; }
.copilot-left.collapsed { align-items: center; padding: 10px 8px; }
.copilot-left.collapsed .copilot-brand { justify-content: center; gap: 0; }
.copilot-left.collapsed .copilot-brand > div,
.copilot-left.collapsed .new-chat,
.copilot-left.collapsed .left-excel-upload,
.copilot-left.collapsed .search-wrap,
.copilot-left.collapsed .task-list,
.copilot-left.collapsed .recent-list,
.copilot-left.collapsed .building-selector { display: none; }
.copilot-left.collapsed .sidebar-collapse-left { top: 68px; right: 50%; transform: translateX(50%); }
.copilot-right.collapsed { padding: 0; overflow: hidden; }
.copilot-right.collapsed .context-section { display: none; }
.copilot-right.collapsed .sidebar-collapse-right { top: 14px; left: 50%; transform: translateX(-50%); }

@media (min-width: 1051px) and (max-width: 1300px) {
  .copilot-page .copilot-layout { --brain-left-width: 270px; --brain-right-width: 340px; }
}
@media (min-width: 1301px) and (max-width: 1599px) {
  .copilot-page .copilot-layout { --brain-left-width: 310px; --brain-right-width: 425px; }
}
@media (min-width: 1600px) {
  .copilot-page .copilot-layout { --brain-left-width: clamp(330px,18vw,420px); --brain-right-width: clamp(430px,23vw,550px); }
}
@media (min-width: 1051px) {
  .copilot-page .copilot-layout.left-collapsed { grid-template-columns: 64px minmax(0,1fr) var(--brain-right-width); }
  .copilot-page .copilot-layout.right-collapsed { grid-template-columns: var(--brain-left-width) minmax(0,1fr) 54px; }
  .copilot-page .copilot-layout.left-collapsed.right-collapsed { grid-template-columns: 64px minmax(0,1fr) 54px; }
}
@media (min-width: 821px) and (max-width: 1050px) {
  .copilot-page .copilot-layout.left-collapsed { grid-template-columns: 64px minmax(0,1fr); }
  .copilot-page .copilot-right.collapsed { display: block; grid-column: 1/-1; min-height: 54px; height: 54px; }
}
@media (max-width: 820px) {
  .copilot-page .copilot-left.collapsed,
  .copilot-page .copilot-right.collapsed { min-height: 58px; height: 58px; margin-bottom: 12px; }
  .copilot-page .copilot-left.collapsed { display: flex; align-items: center; padding: 7px 10px; }
  .copilot-left.collapsed .copilot-brand { justify-content: flex-start; }
  .copilot-left.collapsed .sidebar-collapse-left,
  .copilot-right.collapsed .sidebar-collapse-right { top: 14px; right: 12px; left: auto; transform: none; }
}

/* 能效智脑主操作：提升“新建对话”的高度与按钮层级 */
.copilot-page .new-chat {
  display: flex;
  width: 100%;
  min-height: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
  padding: 0 15px;
  border: 1px solid rgba(31,103,196,.34);
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(110deg, #174f9f 0%, #246fd5 58%, #2d86df 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 9px 20px rgba(32,94,174,.2);
  font-size: var(--font-body) !important;
  font-weight: 680;
  letter-spacing: .04em;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.copilot-page .new-chat-plus {
  display: grid;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 6px;
  background: rgba(255,255,255,.14);
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
}
.copilot-page .new-chat:hover {
  filter: saturate(1.08) brightness(1.03);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 12px 26px rgba(32,94,174,.27);
  transform: translateY(-1px);
}
.copilot-page .new-chat:active { box-shadow: 0 5px 12px rgba(32,94,174,.2); transform: translateY(1px); }

/* 能效智脑左栏：最近会话可独立折叠 */
.copilot-left .collapsible-section { min-width: 0; }
.copilot-left .recent-list {
  display: flex;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
}
.copilot-left .recent-list { flex: 1 1 0; }
.copilot-left .collapsible-section .section-toggle {
  display: flex;
  width: 100%;
  min-height: 36px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 4px;
  padding: 0 4px;
  border: 0;
  border-bottom: 1px solid #e4edf6;
  border-radius: 0;
  color: #314a64;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  font-size: var(--font-card-title) !important;
  font-weight: 700;
  line-height: var(--line-title);
  text-align: left;
}
.copilot-left .collapsible-section .section-toggle:hover {
  color: #1765bd;
  border-color: #bcd4eb;
  background: transparent;
}
.copilot-left .section-toggle i {
  display: grid;
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  place-items: center;
  border: 1px solid #d5e3f1;
  border-radius: 7px;
  color: #4b7eb5;
  background: #f7fbff;
  font-size: 14px;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
}
.copilot-left .collapsible-section .section-content {
  min-height: 0;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 2px;
}
.copilot-left .collapsible-section.collapsed { min-height: auto; flex: 0 0 auto; overflow: visible; }
.copilot-left .collapsible-section.collapsed .section-content { display: none; }
.copilot-left .collapsible-section.collapsed .section-toggle { margin-bottom: 0; }

/* 对话框上方：合并并去重后的常用任务 */
.copilot-page .composer-quick-panel {
  flex: 0 0 auto;
  margin: 0 14px 8px;
  padding: 7px 9px 9px;
  border: 1px solid #dce8f4;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(247,251,255,.98), rgba(252,254,255,.98));
}
.copilot-page .composer-quick-panel .section-toggle {
  display: flex;
  width: 100%;
  height: 27px;
  align-items: center;
  gap: 8px;
  padding: 0 3px 6px;
  border: 0;
  color: #314a64;
  background: transparent;
  cursor: pointer;
  font-size: var(--font-body) !important;
  font-weight: 700;
  text-align: left;
}
.copilot-page .composer-quick-panel .section-toggle small {
  color: #8496aa;
  font-size: var(--font-caption);
  font-weight: 500;
}
.copilot-page .composer-quick-panel .section-toggle i {
  margin-left: auto;
  color: #3b78bb;
  font-size: 14px;
  font-style: normal;
  font-weight: 500;
}
.copilot-page .composer-quick-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}
.copilot-page .composer-quick-grid > button {
  display: flex;
  min-width: 0;
  height: 32px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  overflow: hidden;
  padding: 0 7px;
  border: 1px solid #d5e3f0;
  border-radius: 7px;
  color: #506a86;
  background: #fff;
  cursor: pointer;
  font-size: var(--font-caption) !important;
  white-space: nowrap;
}
.copilot-page .composer-quick-grid > button span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.copilot-page .composer-quick-grid > button:hover {
  color: #1764c5;
  border-color: #9fc4ed;
  background: #f2f8ff;
}
.copilot-page .composer-quick-panel.collapsed { padding-bottom: 5px; }
.copilot-page .composer-quick-panel.collapsed .section-content { display: none; }
.copilot-page .composer-quick-panel.collapsed .section-toggle { padding-bottom: 0; }

@media (max-width: 1100px) {
  .copilot-page .composer-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 诊断证据链：AI 解释摘要与可展开详情 */
.diagnosis-page .diag-evidence-content {
  min-height: 0;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}
.diagnosis-page .evidence-step-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.diagnosis-page .evidence-step-head .status { float: none; flex: 0 0 auto; }
.diagnosis-page .ai-explanation-step > div {
  border-color: #cbdff4;
  background: linear-gradient(150deg, #f8fbff, #f2f8ff);
}
.diagnosis-page .ai-explain-summary { color: #536b86; }
.diagnosis-page .ai-explain-toggle {
  display: flex;
  width: 100%;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 9px;
  padding: 0 10px;
  border: 1px solid #c9dcf0;
  border-radius: 7px;
  color: #286db7;
  background: rgba(255,255,255,.8);
  cursor: pointer;
  font-size: var(--font-caption) !important;
  font-weight: 650;
}
.diagnosis-page .ai-explain-toggle:hover { border-color: #88b6e4; background: #fff; }
.diagnosis-page .ai-explain-toggle i { font-size: 13px; font-style: normal; font-weight: 500; }
.diagnosis-page .ai-explain-detail {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #cbdced;
}
.diagnosis-page .ai-explain-detail[hidden] { display: none; }
.diagnosis-page .ai-explain-detail section { margin-top: 9px; }
.diagnosis-page .ai-explain-detail section:first-child { margin-top: 0; }
.diagnosis-page .ai-explain-detail section > b { color: #2e5f94; font-size: var(--font-caption) !important; }
.diagnosis-page .ai-explain-detail section > p { margin-top: 4px; color: #5e7188; }
.diagnosis-page .ai-explain-grid { display: grid; grid-template-columns: 1fr; gap: 2px; }
.diagnosis-page .ai-explain-detail ol { margin: 6px 0 0; padding-left: 20px; color: #5e7188; }
.diagnosis-page .ai-explain-detail li { margin: 4px 0; font-size: var(--font-caption); line-height: 1.55; }
.diagnosis-page .ai-explain-detail > small {
  display: block;
  margin-top: 10px;
  padding: 8px 9px;
  border-radius: 6px;
  color: #7c6a3d;
  background: #fff9eb;
  font-size: var(--font-caption);
  line-height: 1.55;
}

/* V8 深海蓝主题：参考驾驶舱式能效智脑界面 */
:root {
  color-scheme: dark;
  --navy-950: #020f25;
  --navy-900: #031a38;
  --navy-800: #073368;
  --cobalt: #35a8ff;
  --cobalt-2: #238eff;
  --glacier: #79c9ff;
  --cyan: #42e0ff;
  --ice: #d9efff;
  --paper: #082d5f;
  --bg: #031a38;
  --line: rgba(83, 164, 230, .27);
  --line-strong: rgba(94, 181, 247, .48);
  --ink: #e9f5ff;
  --muted: #91aac6;
  --green: #37d7a8;
  --green-soft: rgba(34, 203, 151, .14);
  --orange: #ffb65a;
  --orange-soft: rgba(245, 155, 50, .14);
  --red: #ff6f78;
  --red-soft: rgba(237, 65, 73, .15);
  --purple: #a394ff;
  --shadow: 0 12px 34px rgba(0, 8, 24, .26);
  --shadow-strong: 0 20px 54px rgba(0, 7, 21, .48);
  --chart-grid: rgba(101, 173, 229, .17);
  --chart-label: #86a8c8;
  --chart-line: #39aaff;
  --chart-point: #082b58;
  --chart-track: rgba(91, 158, 216, .13);
  --chart-track-hover: rgba(75, 171, 242, .23);
}

html { background: #020f25; }
body {
  color: var(--ink);
  background:
    radial-gradient(circle at 52% -18%, rgba(28, 115, 209, .34), transparent 42%),
    radial-gradient(circle at 94% 52%, rgba(0, 174, 232, .09), transparent 30%),
    linear-gradient(160deg, #020f25 0%, #031a38 44%, #05254d 100%);
}
body::before {
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(77, 157, 224, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(77, 157, 224, .035) 1px, transparent 1px);
  background-size: 32px 32px;
  content: "";
}
::selection { color: #fff; background: rgba(39, 149, 245, .62); }
* { scrollbar-color: rgba(75, 151, 214, .55) rgba(3, 22, 48, .42); }

.topbar {
  border-color: rgba(75, 160, 229, .28);
  background: rgba(2, 18, 43, .92);
  box-shadow: 0 8px 28px rgba(0, 7, 20, .32), inset 0 -1px 0 rgba(66, 203, 255, .06);
}
.bank-mark {
  background: linear-gradient(145deg, #1aa8ed, #1764cf);
  box-shadow: 0 0 18px rgba(43, 183, 255, .3);
}
.bank-wordmark,
.bank-wordmark small { color: #f2f9ff; }
.brand-divider { background: linear-gradient(180deg, transparent, rgba(117, 183, 237, .46) 18%, rgba(117, 183, 237, .46) 82%, transparent); }
.platform-wordmark { color: #dbeeff; }
.platform-wordmark small { color: #6f93b8; }
.main-nav button { color: #a9c0da; }
.main-nav button:hover,
.main-nav button.active { color: #68d7ff; }
.main-nav button.active::after { background: linear-gradient(90deg, #2f9eff, #42e0ff); box-shadow: 0 0 17px rgba(66, 224, 255, .58); }
.system-state { color: #91aac4; }
.icon-btn::before { border-color: #a9c6e2; }
.icon-btn::after { background: #a9c6e2; }
.icon-btn:hover,
.user-btn:hover { border-color: rgba(95, 181, 245, .45); background: rgba(24, 93, 157, .32); }
.user-btn { border-color: #3f78b2; color: #8edcff; background: #0b386e; box-shadow: inset 0 0 0 3px #06264e, 0 0 18px rgba(57, 170, 255, .16); }
.user-btn::before { background: #78d9ff; box-shadow: 0 9px 0 3px #78d9ff; }
.user-menu { border-color: var(--line-strong); background: #072951; }
.user-menu header { border-color: var(--line); }
.user-menu button { color: #aac1d9; }
.user-menu button:hover { color: #75d8ff; background: rgba(33, 113, 185, .24); }

.page::before,
.page::after { opacity: .25; }
.page-title p,
.panel-head p { color: var(--muted); }
.control,
.secondary,
.danger,
input,
select,
textarea {
  color: #cce1f4;
  border-color: var(--line-strong);
  background: rgba(7, 38, 77, .9);
}
input::placeholder,
textarea::placeholder { color: #6686a6; }
select option { color: #dcecff; background: #082d5c; }
.secondary { color: #75cfff; background: rgba(10, 55, 107, .84); }
.secondary:hover { border-color: #59caff; background: rgba(18, 76, 140, .92); }
.danger { color: #ff9aa0; border-color: rgba(255, 111, 120, .4); background: rgba(117, 29, 43, .22); }
.primary,
.full-btn { background: linear-gradient(110deg, #1469c9, #2a9ff4); box-shadow: 0 9px 24px rgba(11, 110, 211, .3); }
.text-button,
.panel-head .link { color: #62c8ff; }

.card {
  border-color: rgba(72, 157, 226, .31);
  background: rgba(6, 34, 72, .84);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(137, 205, 255, .045);
  backdrop-filter: blur(13px);
}
.smart-card {
  background-color: rgba(5, 34, 73, .9);
  background-image:
    linear-gradient(120deg, rgba(33, 126, 211, .12), transparent 27%, transparent 72%, rgba(33, 192, 238, .08)),
    radial-gradient(circle at 100% 0, rgba(48, 157, 238, .12), transparent 34%);
}
.smart-card::before { background: linear-gradient(120deg, rgba(70, 169, 248, .08), transparent 28%, transparent 70%, rgba(66, 224, 255, .055)); }
.card:hover { border-color: rgba(79, 174, 242, .43); }

.kpi::after { opacity: .17; }
.kpi span,
.kpi strong small,
.kpi p { color: #86a2bf; }
.risk-card .risk-title { border-color: rgba(255, 111, 120, .32); background: rgba(111, 31, 47, .22); }
.risk-title p,
.risk-meta span { color: #94abc2; }
.risk-meta div { border-color: rgba(93, 161, 218, .2); }
.assistant-message,
.mini-bubble,
.mini-followups button { color: #a9c1d9; border-color: var(--line); background: rgba(9, 49, 95, .72); }
.quick-tasks button,
.mini-input input { color: #abc2d9; border-color: var(--line); background: rgba(7, 42, 85, .78); }
.quick-tasks button:hover,
.mini-followups button:hover { color: #72d7ff; border-color: rgba(83, 184, 248, .62); background: rgba(15, 65, 122, .86); }

.donut::before { background: #062a58; box-shadow: inset 0 0 0 1px rgba(84, 166, 229, .25); }
.legend-list div { color: #8fa9c2; }
.legend-list b { color: #d5e8f8; }
.data-table th { color: #7fa0bf; background: rgba(8, 40, 78, .86); }
.data-table td { color: #afc5da; border-color: rgba(82, 148, 205, .17); }
.data-table tbody tr.clickable:hover,
.data-table tbody tr.selected { background: rgba(26, 101, 174, .22); }
.status.red { color: #ff9da3; background: rgba(237, 65, 73, .16); }
.status.orange { color: #ffc16f; background: rgba(245, 155, 50, .15); }
.status.green { color: #69e3bd; background: rgba(19, 164, 119, .16); }
.status.blue { color: #72caff; background: rgba(39, 120, 212, .2); }
.progress { background: rgba(87, 151, 207, .18); }

.stage-num,
.evidence-step > i,
.method-flow i { color: #78d4ff; border-color: rgba(102, 191, 250, .55); background: #082f60; }
.stage:not(:last-child)::after,
.method-flow div:not(:last-child)::after { background: linear-gradient(90deg, #328dde, rgba(80, 139, 191, .23)); }
.evidence-step:not(:last-child)::before { background: linear-gradient(#3f98e5, rgba(75, 139, 194, .24)); }
.evidence-step > div,
.evidence-summary,
.diagnosis-page .ai-explanation-step > div { border-color: var(--line); background: rgba(8, 45, 88, .72); }
.evidence-step p,
.diagnosis-page .ai-explain-summary,
.diagnosis-page .ai-explain-detail li,
.diagnosis-page .ai-explain-detail section > p { color: #9fb6cd; }
.evidence-summary b,
.diagnosis-page .ai-explain-detail section > b { color: #d3e9fb; }
.diagnosis-page .ai-explain-toggle { color: #68ccff; border-color: var(--line-strong); background: rgba(7, 38, 76, .84); }
.diagnosis-page .ai-explain-detail > small { color: #e0bf77; background: rgba(112, 76, 12, .2); }

.kanban-col,
.task-card,
.side-detail section { border-color: var(--line); background: rgba(7, 41, 82, .72); }
.kanban-col h3,
.task-card span,
.timeline div,
.side-detail dt { color: #8fa8c1; }
.side-detail dd { color: #bfd4e7; }
.timeline div::before { border-color: #5888b5; background: #072a57; }
.timeline div:not(:last-child)::after { background: rgba(83, 150, 209, .25); }

.report-item,
.report-paper,
.report-kpis div,
.report-mini-grid article { border-color: var(--line); background: rgba(7, 39, 78, .78); }
.report-item:hover,
.report-item.active { border-color: #3da8ef; background: rgba(18, 76, 139, .62); box-shadow: 0 0 18px rgba(44, 171, 255, .1); }
.filter-tabs button,
.report-tabs button { color: #8fa9c2; background: rgba(8, 43, 83, .72); }
.filter-tabs button.active,
.report-tabs button.active { color: #78d5ff; border-color: #399be4; background: rgba(18, 83, 150, .74); }
.info-list div,
.audit-list div { color: #8fa8c0; }
.info-list b { color: #c8ddef; }
.annual-report-embed,
.annual-report-frame { border-color: var(--line); background: #06244b; }

.lifecycle-card,
.priority-row,
.energy-list-column,
.entity-item,
.detail-metric-grid > div,
.linked-items button { color: #9db5cb; border-color: var(--line); background: rgba(7, 42, 83, .78); box-shadow: 0 6px 18px rgba(0, 12, 32, .18); }
.lifecycle-card.active,
.priority-row.active,
.entity-item.active,
.entity-item.related { border-color: #3d9fe9; background: linear-gradient(100deg, rgba(20, 86, 153, .72), rgba(7, 43, 85, .86)); box-shadow: 0 8px 24px rgba(0, 12, 35, .26), inset 3px 0 0 #42b8ff; }
.lifecycle-card:not(:last-child)::after { border-color: #4e91c9; background: #062d5b; }
.lifecycle-card span > b,
.lifecycle-card span > strong,
.priority-name > b,
.confidence b,
.saving-roadmap > b,
.energy-list-column > header h2,
.entity-item > b,
.detail-hero h3,
.detail-section-head > b,
.linked-items button b { color: #d5e9f8; }
.lifecycle-card span > em,
.lifecycle-card span > strong small,
.priority-table-head,
.saving-roadmap span,
.saving-roadmap small,
.column-help,
.entity-source,
.detail-path,
.detail-hero p,
.detail-metric-grid span,
.detail-evidence p,
.verification-summary p { color: #87a3bd; }
.energy-list-column > header,
.column-help { border-color: var(--line); background: rgba(6, 35, 72, .92); }
.detail-kind { color: #6fcaff; background: rgba(39, 117, 195, .2); }
.detail-path span { color: #a7c7e2; border-color: var(--line); background: rgba(9, 47, 90, .72); }
.detail-hero,
.verification-card { background: linear-gradient(135deg, rgba(12, 59, 112, .74), rgba(6, 38, 77, .78)); }

.filter-row input,
.filter-row select,
.rule-grid input,
.rule-grid select { color: #bfd4e7; border-color: var(--line); background: rgba(7, 39, 78, .82); }
.rule-grid label { color: #8ca6bf; }
.condition-builder,
.audit-change { border-color: var(--line); background: rgba(7, 42, 82, .7); }
.condition-builder span { color: #6dccff; border-color: var(--line-strong); background: rgba(8, 49, 95, .88); }
.audit-change ul { color: #9db4ca; }
.admin-tabs { border-color: var(--line); }
.admin-tabs button { color: #8ca6bf; }
.modal-mask { background: rgba(0, 8, 23, .66); }
.modal { border-color: var(--line-strong); background: #072950; box-shadow: 0 28px 90px rgba(0, 4, 15, .58); }
.modal p { color: #a0b8cf; }

/* 能效智脑三栏布局的层次与光效 */
.copilot-page .copilot-layout { gap: 13px; }
.copilot-page .copilot-left,
.copilot-page .copilot-center,
.copilot-page .copilot-right {
  border-color: rgba(68, 166, 237, .42);
  box-shadow: 0 14px 36px rgba(0, 7, 24, .34), inset 0 0 30px rgba(31, 121, 213, .035);
}
.copilot-page .copilot-left { background-color: rgba(4, 33, 71, .94); }
.copilot-page .copilot-center { background-color: rgba(5, 39, 83, .92); }
.copilot-page .copilot-right { background-color: rgba(4, 34, 73, .94); }
.copilot-brand b,
.recent-list h3,
.context-section h2,
.conversation-head h2 { color: #edf8ff; }
.copilot-page .new-chat {
  border-color: rgba(73, 196, 255, .55);
  background: linear-gradient(105deg, #126dd0 0%, #219ce9 62%, #2dc8ef 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 0 22px rgba(41, 173, 250, .24);
}
.copilot-page .new-chat-plus { border-color: rgba(210, 245, 255, .42); background: rgba(213, 245, 255, .12); }
.search { color: #c7ddf1; border-color: var(--line); background: rgba(4, 28, 61, .72); }
.search-svg-icon { color: #73bce9; }
.copilot-left .collapsible-section .section-toggle { color: #d6ebfa; border-color: rgba(72, 145, 205, .25); }
.copilot-left .collapsible-section .section-toggle:hover { color: #73d8ff; border-color: rgba(79, 181, 244, .5); }
.copilot-left .section-toggle i { color: #75cfff; border-color: var(--line); background: rgba(12, 58, 108, .66); }
.task-list button,
.recent-list button { color: #a8bfd5; border-color: rgba(74, 145, 204, .28); background: rgba(7, 40, 80, .74); }
.task-list button:hover,
.recent-list button:hover,
.recent-list button.active { color: #83dcff; border-color: rgba(65, 183, 249, .64); background: rgba(19, 81, 145, .64); box-shadow: inset 3px 0 0 #37b7ff; }
.recent-list button time { color: #718fab; }
.recent-svg-icon,
.building-svg-icon,
.composer-task-icon,
.composer-tool-icon,
.evidence-svg-icon { color: #62c9ff; }
.building-selector { color: #b5cce0; border-color: var(--line); background: rgba(6, 38, 78, .78); }
.conversation-head { border-color: var(--line); background: rgba(5, 31, 67, .5); }
.conversation-head p { color: #7897b5; }
.model-badge { color: #79d8ff; border-color: rgba(91, 196, 248, .46); background: linear-gradient(100deg, rgba(22, 108, 176, .3), rgba(85, 77, 174, .24)); }
.conversation-body { background: radial-gradient(circle at 50% 25%, rgba(25, 103, 188, .09), transparent 45%); }
.message .bubble { color: #b8cde1; background: rgba(8, 44, 87, .72); }
.message.bot .bubble,
.message.assistant .bubble { border-color: rgba(73, 149, 211, .3); background: rgba(7, 43, 86, .88); }
.message.user .bubble { color: #dcf2ff; border-color: rgba(60, 177, 247, .47); background: linear-gradient(110deg, rgba(15, 81, 153, .84), rgba(14, 103, 185, .68)); }
.message .avatar-dot { border: 1px solid rgba(85, 202, 255, .6); background: radial-gradient(circle at 35% 30%, #26a5ed, #0a407b 68%); box-shadow: 0 0 16px rgba(47, 184, 255, .18); }
.reason-cards article,
.ai-viz article,
.recommend-box { color: #acc2d7; border-color: var(--line); background: rgba(8, 45, 87, .72); }
.reason-cards b,
.recommend-box > b { color: #6fd1ff !important; }
.reason-cards p { color: #9fb7ce; }
.copilot-page .composer-quick-panel { border-color: var(--line); background: linear-gradient(180deg, rgba(6, 37, 75, .96), rgba(5, 31, 67, .96)); }
.copilot-page .composer-quick-panel .section-toggle { color: #d3e8f8; }
.copilot-page .composer-quick-panel .section-toggle small { color: #7796b4; }
.copilot-page .composer-quick-grid > button { color: #a9c2d9; border-color: var(--line); background: rgba(8, 45, 88, .82); }
.copilot-page .composer-quick-grid > button:hover { color: #75d8ff; border-color: rgba(73, 187, 249, .62); background: rgba(16, 72, 132, .86); }
.composer { border-color: rgba(62, 184, 250, .72); background: rgba(5, 31, 66, .96); box-shadow: 0 0 0 3px rgba(45, 159, 235, .08), 0 10px 28px rgba(0, 9, 28, .26); }
.composer textarea { color: #d1e5f5; background: transparent; }
.composer footer { color: #7897b3; }
.composer-upload { color: #75d3ff; background: rgba(35, 124, 205, .18); }
.composer-upload:hover { background: rgba(35, 124, 205, .3); }
.context-section { border-color: var(--line); }
.context-grid div,
.evidence-list div,
.boundary,
.work-product { color: #a8bfd5; border-color: var(--line); background: rgba(7, 42, 82, .72); }
.context-grid span,
.work-product p { color: #839fb9; }
.context-grid b,
.work-product b { color: #d3e8f8; }
.context-svg-icon { color: #66caff; background: rgba(36, 121, 201, .18); }
.sidebar-collapse { color: #75d5ff; border-color: var(--line-strong); background: rgba(7, 45, 88, .96); box-shadow: 0 0 13px rgba(47, 181, 249, .1); }

.excel-context-strip,
.excel-context-strip.ready,
.excel-drop-card,
.uploaded-file-card,
.sheet-summary,
.model-connection { border-color: var(--line); background: linear-gradient(110deg, rgba(7, 43, 84, .88), rgba(7, 49, 93, .7)); }
.excel-context-strip b,
.uploaded-file-card b,
.sheet-summary b,
.model-connection b,
.excel-drop-card b { color: #cce3f5; }
.excel-context-strip small,
.uploaded-file-card small,
.sheet-summary span,
.sheet-summary small,
.model-connection span,
.excel-drop-card p,
.excel-evidence div span small { color: #87a4be; }
.excel-context-strip label,
.excel-drop-card label,
.uploaded-file-card label { color: #79d2ff; border-color: var(--line-strong); background: rgba(11, 57, 106, .82); }
.excel-context-strip label:hover,
.excel-drop-card label:hover,
.uploaded-file-card label:hover { color: #bcecff; border-color: #55c8ff; background: rgba(21, 88, 153, .92); }
.ai-answer-content > h2,
.ai-answer-content > h3,
.ai-answer-content > h4,
.ai-answer-content strong { color: #74d0ff; }
.ai-answer-content code { color: #b9dbf4; background: rgba(42, 120, 191, .2); }
.ai-answer-table { border-color: var(--line); background: rgba(6, 37, 75, .84); }
.ai-answer-table th { color: #81cfff; background: rgba(15, 67, 123, .68); }
.ai-answer-table td { color: #b0c7da; border-color: var(--line); }

.chart-tooltip { color: #e8f6ff; border-color: rgba(102, 195, 250, .45); background: rgba(3, 25, 55, .96); box-shadow: 0 12px 28px rgba(0, 7, 20, .4); }

@media (max-width: 820px) {
  .main-nav { border-color: var(--line); background: #05254d; }
}

/* 工作台右侧智脑：清理遗留的浅色内容层 */
.workbench-assistant .assistant-thread {
  border-color: rgba(74, 164, 228, .34);
  background: rgba(4, 28, 61, .76);
  box-shadow: inset 0 1px 0 rgba(130, 205, 255, .04);
  scrollbar-color: rgba(77, 160, 222, .55) transparent;
}
.workbench-assistant .mini-bubble {
  color: #b8cee1;
  border-color: rgba(75, 153, 216, .32);
  background: rgba(10, 53, 101, .82);
}
.workbench-assistant .mini-message.user .mini-bubble {
  color: #ddf3ff;
  border-color: rgba(69, 185, 248, .48);
  background: linear-gradient(110deg, rgba(16, 82, 153, .88), rgba(16, 105, 185, .72));
}
.workbench-assistant .mini-followups button {
  color: #93b8d7;
  border-color: rgba(72, 159, 224, .4);
  background: rgba(7, 42, 83, .76);
}
.workbench-assistant .quick-tasks button {
  color: #a9c3da;
  border-color: rgba(73, 159, 222, .34);
  background: linear-gradient(145deg, rgba(8, 48, 94, .88), rgba(7, 39, 79, .84));
  box-shadow: inset 0 1px 0 rgba(128, 201, 255, .035);
}
.workbench-assistant .quick-tasks button:hover {
  color: #79d8ff;
  border-color: rgba(74, 192, 250, .68);
  background: linear-gradient(145deg, rgba(16, 78, 142, .92), rgba(10, 58, 111, .9));
  box-shadow: 0 6px 18px rgba(0, 13, 35, .24), inset 3px 0 0 #39b9ff;
}
.workbench-assistant .quick-tasks button > b { color: #629bc9; }
.workbench-assistant .task-svg-icon {
  color: #6bd1ff;
  border-color: rgba(85, 177, 238, .42);
  background: linear-gradient(145deg, rgba(21, 91, 158, .72), rgba(8, 53, 103, .88));
  box-shadow: 0 0 12px rgba(44, 169, 242, .08);
}
.workbench-assistant .mini-composer {
  border-color: rgba(63, 181, 245, .72);
  background: rgba(4, 29, 62, .94);
  box-shadow: 0 0 0 3px rgba(48, 166, 238, .07), 0 10px 28px rgba(0, 8, 27, .28);
}
.workbench-assistant .mini-composer textarea {
  color: #d0e6f7;
  background: transparent;
}
.workbench-assistant .mini-composer textarea::placeholder { color: #6f91af; }
.workbench-assistant .mini-composer footer span,
.workbench-assistant .ai-disclaimer { color: #7896b1; }
.workbench-assistant .assistant-spacer span { color: #8eabc4; background: rgba(5, 34, 70, .78); }
