:root {
  color-scheme: light;
  font-family: "Segoe UI", "Microsoft YaHei", sans-serif;
  color: #20302b;
  background: #f1f5f1;
  --ink: #20302b;
  --muted: #66756f;
  --line: #dce6df;
  --paper: #ffffff;
  --forest: #174d3c;
  --forest-soft: #e5f0ea;
  --ochre: #c58b3a;
  --danger: #b34e4e;
  --shadow: 0 12px 36px rgba(38, 66, 55, 0.08);
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #f1f5f1; }
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: var(--forest); font-weight: 700; }

.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 252px; flex: 0 0 252px; display: flex; flex-direction: column; padding: 28px 18px; color: #eaf4ee; background: var(--forest); }
.brand { display: flex; align-items: center; }
.brand-logo { display: block; width: 148px; height: 62px; border-radius: 9px; object-fit: cover; object-position: center; background: #fff; }
.scope-note { margin: 10px 0 28px 42px; color: #a9c8b7; font-size: 12px; }
.sidebar nav { display: grid; gap: 6px; }
.sidebar button { border: 1px solid transparent; border-radius: 10px; padding: 12px 14px; color: #cce0d4; text-align: left; background: transparent; transition: .18s ease; }
.sidebar button:hover, .sidebar button.active { color: #fff; border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.12); }
.sidebar-foot { margin-top: auto; padding: 14px; border-top: 1px solid rgba(255,255,255,.14); color: #a9c8b7; font-size: 12px; line-height: 1.6; }

.main-content { width: min(1440px, 100%); margin: 0 auto; padding: 42px 46px 72px; }
.page-header, .section-heading, .result-heading, .toolbar, .header-actions, .form-actions { display: flex; align-items: center; }
.page-header, .section-heading { justify-content: space-between; gap: 20px; }
.page-header { margin-bottom: 28px; align-items: flex-start; }
.eyebrow { margin: 0 0 7px; color: var(--ochre); font-size: 11px; font-weight: 800; letter-spacing: .16em; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; color: var(--ink); font-size: clamp(28px, 3vw, 42px); letter-spacing: -.03em; }
h2 { margin-bottom: 0; font-size: 25px; letter-spacing: -.02em; }
h3 { margin-bottom: 10px; font-size: 16px; }
.subtitle, .muted { margin-bottom: 0; color: var(--muted); }
.header-actions { flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.switch-row { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.auth-state, .data-count, .data-cutoff { color: var(--muted); font-size: 13px; }
.auth-state { padding: 8px 10px; border-radius: 999px; background: var(--forest-soft); color: var(--forest); }

.button { border: 0; border-radius: 9px; padding: 10px 15px; font-weight: 700; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: #fff; background: var(--forest); }
.button.secondary { border: 1px solid var(--line); color: var(--ink); background: #fff; }
.button.ghost { color: var(--muted); background: transparent; }
.message { margin: 0 0 22px; padding: 11px 14px; border-left: 3px solid var(--forest); border-radius: 8px; color: var(--muted); background: #fff; box-shadow: var(--shadow); font-size: 13px; }
.message.success { border-left-color: #3d9469; }
.message.warning { border-left-color: var(--ochre); }
.message.error { border-left-color: var(--danger); color: #8c3f3f; }

.page-section { display: none; }
.page-section.active { display: block; }
.section-heading { margin-bottom: 20px; align-items: flex-end; }
.card-grid { display: grid; gap: 14px; margin: 18px 0; }
.card-grid.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.card-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric-card, .notice-card, .table-card, .upload-card, .result-card, .auth-panel { border: 1px solid var(--line); border-radius: 16px; background: var(--paper); box-shadow: var(--shadow); }
.metric-card { min-height: 130px; padding: 18px; }
.detail-card { position: relative; cursor: pointer; transition: .18s ease; }
.detail-card:hover, .detail-card:focus, .detail-card.is-selected { border-color: var(--ochre); box-shadow: 0 14px 32px rgba(197,139,58,.18); outline: none; transform: translateY(-2px); }
.metric-card span { display: block; color: var(--muted); font-size: 13px; }
.metric-card strong { display: block; margin: 12px 0 6px; color: var(--forest); font-size: 30px; letter-spacing: -.04em; }
.metric-card small { color: #91a098; font-size: 12px; }
.metric-card.public { min-height: 112px; }
.notice-card { padding: 22px; line-height: 1.8; color: var(--muted); }
.detail-popover { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin: -8px 0 16px; padding: 10px 14px; border: 1px solid #ecd9b4; border-radius: 10px; color: #795820; background: #fff8e9; font-size: 13px; }
.detail-popover strong { color: #5f4518; }
.detail-popover > span:not(.detail-actions) { flex: 1 1 280px; }
.detail-actions { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
.detail-action { padding: 7px 10px; font-size: 12px; }
.detail-table { margin-top: 16px; }
.table-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 16px 18px 0; }
.table-title h3 { margin: 0; }
.table-title span { color: var(--muted); font-size: 12px; }
.operation-note { margin-top: 16px; }
.toolbar { flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.toolbar label, .login-form label, .upload-card label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
select, input { min-width: 190px; border: 1px solid var(--line); border-radius: 8px; padding: 10px 11px; color: var(--ink); background: #fff; outline: none; }
select:focus, input:focus { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(23,77,60,.1); }
.table-card { overflow: hidden; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 620px; font-size: 13px; }
th, td { padding: 13px 15px; border-bottom: 1px solid #edf2ee; text-align: left; white-space: nowrap; vertical-align: top; }
th { color: var(--muted); background: #f8fbf8; font-size: 11px; letter-spacing: .04em; }
td { color: #32453d; }
tr:last-child td { border-bottom: 0; }
.loading-state, .empty-state { padding: 28px; color: var(--muted); text-align: center; }
.two-column, .public-grid { display: grid; gap: 16px; }
.two-column { grid-template-columns: 1fr 1fr; margin-bottom: 16px; }
.public-grid { grid-template-columns: 1fr 1fr; }
.public-grid h3 { margin: 22px 0 10px; }
.public-wide { grid-column: 1 / -1; }
.chart-card, .policy-feed, .route-map { min-height: 170px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); box-shadow: var(--shadow); }
.chart-row { display: grid; grid-template-columns: 88px 1fr auto; align-items: center; gap: 10px; margin: 11px 0; color: var(--muted); font-size: 12px; }
.chart-bar { height: 10px; overflow: hidden; border-radius: 99px; background: #edf3ee; }
.chart-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--forest), #74a77c); }
.chart-row strong { min-width: 58px; color: var(--forest); text-align: right; }
.policy-feed { display: grid; gap: 9px; }
.policy-item { display: grid; gap: 4px; padding: 10px 12px; border-left: 3px solid var(--ochre); border-radius: 8px; text-decoration: none; background: #fffaf0; }
.policy-item strong { color: var(--ink); }
.policy-item span, .policy-item small { color: var(--muted); font-size: 12px; }
.route-map { display: grid; gap: 14px; }
.route-line { display: grid; grid-template-columns: 100px 1fr 70px; align-items: center; gap: 12px; color: var(--muted); font-size: 12px; }
.route-line strong { color: var(--ink); }
.route-points { display: flex; align-items: center; gap: 0; }
.route-point { position: relative; display: block; width: 18px; height: 18px; border: 4px solid #72ac7e; border-radius: 50%; background: #fff; }
.route-point:not(:last-child)::after { position: absolute; top: 5px; left: 14px; width: 34px; height: 2px; content: ''; background: #b4d4bb; }
.route-point.anomaly { border-color: #d46464; }
.upload-card { display: grid; gap: 16px; align-content: center; padding: 22px; }
.upload-card input { width: 100%; }
.result-card { margin-top: 16px; padding: 20px; }
.result-heading { justify-content: space-between; gap: 12px; }
.result-heading h3 { margin-bottom: 0; }
pre { min-height: 80px; margin: 14px 0 0; padding: 15px; overflow: auto; border-radius: 10px; color: #d9f0df; background: #1c2c25; font: 12px/1.7 Consolas, monospace; white-space: pre-wrap; }
.analytics-toolbar { align-items: flex-end; }
.analytics-toolbar label { flex: 1 1 180px; }
.analytics-toolbar .button { align-self: flex-end; }
.auth-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-bottom: 22px; padding: 24px; }
.login-form { display: grid; gap: 12px; }
.login-form input { width: 100%; }
.form-actions { gap: 9px; }
.form-message { min-height: 18px; margin: 0; color: var(--danger); font-size: 13px; }

@media (max-width: 1180px) {
  .card-grid.six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .app-shell { display: block; }
  .sidebar { width: 100%; height: auto; padding: 18px; }
  .scope-note { margin: 7px 0 16px 42px; }
  .sidebar nav { display: flex; overflow-x: auto; padding-bottom: 3px; }
  .sidebar button { min-width: max-content; }
  .sidebar-foot { display: none; }
  .main-content { padding: 28px 18px 50px; }
  .page-header { display: block; }
  .header-actions { justify-content: flex-start; margin-top: 18px; }
  .two-column, .public-grid, .auth-panel { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .card-grid.six, .card-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric-card { min-height: 112px; padding: 14px; }
  .metric-card strong { font-size: 24px; }
  .section-heading { align-items: flex-start; flex-direction: column; }
}

/* E02 独立 1920×1080 演示大屏。E01 仍使用上方响应式后台样式。 */
body.screen-mode { width: 100vw; height: 100vh; overflow: hidden; color: #e9fff5; background: #061713; }
body.screen-mode .app-shell { display: block; min-height: 0; }
body.screen-mode .sidebar,
body.screen-mode .page-header,
body.screen-mode #global-message,
body.screen-mode #auth-panel { display: none !important; }
body.screen-mode .main-content { width: 100%; max-width: none; height: 100%; margin: 0; padding: 0; }
body.screen-mode .page-section:not(#public) { display: none !important; }
body.screen-mode .public-screen-stage.active { position: fixed; inset: 0; display: block; overflow: hidden; background: radial-gradient(circle at 50% -20%, rgba(49, 151, 112, .24), transparent 45%), linear-gradient(145deg, #061713, #09251d 52%, #061713); }

.public-screen-canvas { position: absolute; top: 50%; left: 50%; display: grid; width: 1920px; height: 1080px; padding: 24px 28px; grid-template-rows: 88px 118px minmax(0, 1fr) 30px; gap: 16px; overflow: hidden; transform: translate(-50%, -50%); transform-origin: center center; color: #e9fff5; background-image: linear-gradient(rgba(94, 209, 154, .025) 1px, transparent 1px), linear-gradient(90deg, rgba(94, 209, 154, .025) 1px, transparent 1px); background-size: 40px 40px; }
.public-screen-canvas::before { position: absolute; inset: 0; pointer-events: none; content: ''; border: 1px solid rgba(103, 225, 170, .22); box-shadow: inset 0 0 100px rgba(20, 94, 70, .18); }

.screen-header { position: relative; z-index: 1; display: grid; grid-template-columns: 360px 1fr 500px; align-items: center; border: 1px solid rgba(98, 220, 163, .22); border-radius: 14px; padding: 12px 18px; background: linear-gradient(90deg, rgba(10, 48, 37, .92), rgba(12, 66, 49, .76), rgba(10, 48, 37, .92)); box-shadow: 0 0 34px rgba(33, 150, 104, .12); }
.screen-header::after { position: absolute; right: 32%; bottom: -1px; left: 32%; height: 2px; content: ''; background: linear-gradient(90deg, transparent, #69dc9e, transparent); }
.screen-brand-block { display: flex; align-items: center; }
.screen-brand-logo { display: block; width: 148px; height: 58px; border: 1px solid rgba(82, 188, 245, .42); border-radius: 9px; object-fit: cover; object-position: center; background: #fff; box-shadow: 0 0 22px rgba(53, 185, 255, .2); }
.screen-title-block { display: flex; align-items: center; justify-content: center; gap: 22px; text-align: center; }
.screen-title-block span { display: block; margin-bottom: 2px; color: #78b79a; font-size: 12px; letter-spacing: .28em; }
.screen-title-block h2 { margin: 0; color: #f2fff8; font-size: 31px; letter-spacing: .08em; text-shadow: 0 0 18px rgba(118, 229, 176, .2); }
.screen-title-block b { border: 1px solid rgba(240, 181, 77, .46); border-radius: 999px; padding: 7px 10px; color: #f2c86f; background: rgba(172, 112, 24, .12); font-size: 10px; letter-spacing: .08em; }
.screen-control-block { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.screen-clock { display: grid; margin-right: 10px; text-align: right; }
.screen-clock strong { color: #b7f5d1; font: 25px/1.1 Consolas, monospace; letter-spacing: .08em; }
.screen-clock span { color: #6ca58a; font-size: 11px; }
.screen-button { border: 1px solid rgba(105, 220, 165, .32); border-radius: 8px; padding: 9px 12px; color: #c9f6db; background: rgba(30, 117, 83, .22); font-size: 12px; font-weight: 700; }
.screen-button:hover { border-color: #68daa0; background: rgba(48, 147, 106, .32); }
.screen-button.muted { color: #91b5a4; }

.screen-kpi-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.screen-kpi { position: relative; display: grid; align-content: center; min-width: 0; border: 1px solid rgba(88, 196, 145, .2); border-radius: 13px; padding: 14px 18px; overflow: hidden; background: linear-gradient(145deg, rgba(18, 67, 51, .86), rgba(10, 42, 33, .9)); box-shadow: inset 0 0 22px rgba(46, 163, 114, .04); }
.screen-kpi::before { position: absolute; top: 0; left: 0; width: 4px; height: 100%; content: ''; background: linear-gradient(#60dc9f, rgba(96, 220, 159, .08)); }
.screen-kpi::after { position: absolute; right: -24px; bottom: -34px; width: 105px; height: 105px; border: 18px solid rgba(77, 200, 142, .035); border-radius: 50%; content: ''; }
.screen-kpi.accent::before { background: linear-gradient(#e9b957, rgba(233, 185, 87, .08)); }
.screen-kpi span { color: #7fae99; font-size: 13px; letter-spacing: .08em; }
.screen-kpi strong { margin: 5px 0 1px; overflow: hidden; color: #c5f8d9; font-size: 32px; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.screen-kpi.accent strong { color: #f2ca79; }
.screen-kpi small { color: #557c69; font-size: 11px; }

.screen-body-grid { position: relative; z-index: 1; display: grid; min-height: 0; grid-template-columns: 420px minmax(0, 1fr) 420px; gap: 16px; }
.screen-column { display: grid; min-width: 0; min-height: 0; gap: 16px; }
.screen-left-column { grid-template-rows: 420px minmax(0, 1fr); }
.screen-center-column { grid-template-rows: 312px minmax(0, 1fr); }
.screen-right-column { grid-template-rows: 270px 178px minmax(0, 1fr); }
.screen-panel { min-width: 0; min-height: 0; border: 1px solid rgba(92, 199, 149, .2); border-radius: 13px; padding: 16px 18px; overflow: hidden; background: linear-gradient(150deg, rgba(11, 48, 37, .91), rgba(8, 34, 27, .94)); box-shadow: inset 0 0 30px rgba(52, 164, 116, .035), 0 10px 28px rgba(0, 0, 0, .1); }
.screen-panel-title { display: flex; height: 46px; align-items: flex-start; justify-content: space-between; border-bottom: 1px solid rgba(92, 190, 145, .12); margin-bottom: 10px; }
.screen-panel-title span { color: #4f8d70; font-size: 9px; letter-spacing: .16em; }
.screen-panel-title h3 { margin: 2px 0 0; color: #dff8e9; font-size: 17px; letter-spacing: .04em; }
.screen-panel-title em { border-radius: 999px; padding: 4px 8px; color: #6dad8f; background: rgba(57, 142, 103, .12); font-size: 10px; font-style: normal; }

.capacity-list { display: grid; gap: 7px; }
.capacity-item { display: grid; grid-template-columns: 126px 86px 1fr 66px; align-items: center; gap: 8px; min-height: 32px; }
.capacity-item > strong { overflow: hidden; color: #d8f3e3; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.capacity-item > span { overflow: hidden; color: #64947e; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.capacity-bar { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(98, 171, 137, .1); }
.capacity-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #36ad72, #8be0ad); box-shadow: 0 0 8px rgba(91, 210, 147, .3); }
.capacity-value { color: #a9e7c2 !important; text-align: right; }

.enterprise-donut { display: grid; grid-template-columns: 150px 1fr; align-items: center; gap: 20px; height: 220px; }
.donut-visual { position: relative; width: 148px; height: 148px; border-radius: 50%; background: conic-gradient(#59d69a 0 16.5%, #38b97f 16.5% 31%, #87d68f 31% 44%, #d4b85e 44% 56%, #65b6ae 56% 67%, #4d8fc3 67% 76%, #9178c5 76% 84%, #cc7f6f 84% 91%, #8aa25c 91% 96%, #5e7f73 96% 100%); box-shadow: 0 0 22px rgba(73, 199, 139, .16); }
.donut-visual::after { position: absolute; inset: 28px; display: grid; place-items: center; border: 1px solid rgba(104, 208, 160, .18); border-radius: 50%; content: ''; background: #0a2c22; }
.donut-center { position: absolute; inset: 0; z-index: 1; display: grid; place-content: center; color: #dff9ea; text-align: center; }
.donut-center strong { font-size: 22px; }
.donut-center span { color: #66947f; font-size: 10px; }
.donut-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.donut-legend div { display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 6px; color: #75a18c; font-size: 10px; }
.donut-legend i { width: 7px; height: 7px; border-radius: 50%; background: var(--legend-color); }
.donut-legend strong { color: #b9e8cd; font-size: 11px; }

.trend-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.trend-pair > div { min-width: 0; }
.trend-caption { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 4px; color: #6d9c87; font-size: 11px; }
.trend-caption strong { color: #bdeecf; font-size: 13px; }
.line-chart { height: 190px; }
.line-chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.chart-grid-line { stroke: rgba(116, 192, 157, .11); stroke-width: 1; }
.chart-area { fill: url(#orderArea); }
.sales .chart-area { fill: url(#salesArea); }
.chart-line { fill: none; stroke: #62dda0; stroke-width: 3; filter: drop-shadow(0 0 5px rgba(98, 221, 160, .35)); }
.sales .chart-line { stroke: #e8bd62; filter: drop-shadow(0 0 5px rgba(232, 189, 98, .3)); }
.chart-point { fill: #0a2a21; stroke: #7ae3ac; stroke-width: 3; }
.sales .chart-point { stroke: #efc96e; }
.chart-axis-label { fill: #547967; font-size: 9px; }

.screen-route-map { position: relative; display: grid; gap: 7px; min-height: 0; padding: 2px 0; }
.screen-route-line { position: relative; z-index: 1; display: grid; grid-template-columns: 106px 1fr 150px 66px; min-height: 48px; align-items: center; gap: 12px; border-bottom: 1px solid rgba(94, 174, 137, .08); }
.screen-route-line:last-child { border-bottom: 0; }
.route-task strong { display: block; color: #c5ebd5; font-size: 11px; }
.route-task span { color: #567d6a; font-size: 9px; }
.screen-route-points { display: flex; align-items: center; }
.screen-route-point { position: relative; display: block; width: 16px; height: 16px; flex: 0 0 16px; border: 4px solid #55c88b; border-radius: 50%; background: #0a2a20; box-shadow: 0 0 7px rgba(85, 200, 139, .4); }
.screen-route-point:not(:last-child) { margin-right: 44px; }
.screen-route-point:not(:last-child)::after { position: absolute; top: 4px; left: 12px; width: 48px; height: 2px; content: ''; background: linear-gradient(90deg, #4ebd82, #325f4b); }
.screen-route-point.anomaly { border-color: #df6e63; box-shadow: 0 0 9px rgba(223, 110, 99, .45); }
.route-meta { color: #6c9984; font-size: 10px; }
.route-meta strong { display: block; color: #a9d9bd; font-size: 11px; }
.route-state { border-radius: 999px; padding: 5px 7px; color: #8dd5aa; background: rgba(53, 153, 103, .14); font-size: 9px; text-align: center; }
.route-state.abnormal { color: #ef9b90; background: rgba(190, 75, 67, .15); }

.preorder-list { display: grid; gap: 4px; }
.preorder-item { display: grid; grid-template-columns: 112px 88px 72px 1fr; align-items: center; min-height: 26px; border-bottom: 1px solid rgba(95, 178, 140, .08); color: #6d9a85; font-size: 10px; }
.preorder-item:last-child { border-bottom: 0; }
.preorder-item strong { overflow: hidden; color: #c2e8d2; text-overflow: ellipsis; white-space: nowrap; }
.preorder-item b { color: #e2be70; font-size: 11px; }
.preorder-item time { text-align: right; }

.transport-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.transport-stat { display: grid; min-height: 76px; place-content: center; border: 1px solid rgba(92, 190, 145, .12); border-radius: 9px; color: #658f7b; background: rgba(24, 78, 59, .2); text-align: center; font-size: 9px; }
.transport-stat strong { display: block; margin-bottom: 4px; color: #bce9cd; font-size: 20px; }
.transport-stat.alert strong { color: #ef8e83; }

.policy-window { height: 180px; overflow: hidden; }
.screen-policy-feed { display: grid; gap: 7px; animation: policy-scroll 26s linear infinite; }
.screen-policy-feed:hover { animation-play-state: paused; }
.screen-policy-item { display: grid; grid-template-columns: 74px 1fr; gap: 8px; border-left: 2px solid #d9ae58; border-radius: 7px; padding: 8px 9px; color: inherit; text-decoration: none; background: rgba(80, 71, 30, .13); }
.screen-policy-item > span { color: #dfb85f; font-size: 9px; }
.screen-policy-item div { min-width: 0; }
.screen-policy-item strong { display: block; overflow: hidden; color: #d8f1e2; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.screen-policy-item small { display: block; overflow: hidden; color: #668b79; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
@keyframes policy-scroll { 0%, 16% { transform: translateY(0); } 84%, 100% { transform: translateY(calc(-50% - 3px)); } }

.screen-footer { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; color: #527965; font-size: 10px; letter-spacing: .04em; }
.screen-footer span { display: flex; align-items: center; gap: 6px; }
.screen-footer i { width: 7px; height: 7px; border-radius: 50%; background: #55d28f; box-shadow: 0 0 8px #55d28f; }
.screen-footer b { color: #78a990; font-weight: 600; }

/* E02 长春市服务辐射大屏：基于已确认的 16:9 视觉概念 */
body.screen-mode [hidden] { display: none !important; }
body.screen-mode .public-screen-stage.active { background: radial-gradient(circle at 50% -12%, rgba(27, 113, 189, .34), transparent 48%), linear-gradient(145deg, #061326, #081f3a 52%, #061326); }
.public-screen-canvas { grid-template-rows: 82px 118px minmax(0, 1fr) 26px; gap: 12px; padding: 22px 24px; color: #eaf6ff; background-image: linear-gradient(rgba(48, 155, 224, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(48, 155, 224, .035) 1px, transparent 1px); background-size: 42px 42px; }
.public-screen-canvas::before { border-color: rgba(65, 190, 255, .28); box-shadow: inset 0 0 110px rgba(17, 102, 184, .18); }
.screen-header { grid-template-columns: 310px 1fr 560px; border-color: rgba(56, 183, 255, .3); background: linear-gradient(90deg, rgba(7, 30, 57, .97), rgba(9, 54, 91, .83), rgba(7, 30, 57, .97)); box-shadow: 0 0 34px rgba(38, 166, 236, .16); }
.screen-header::after { background: linear-gradient(90deg, transparent, #35b9ff, transparent); }
.screen-title-block span { color: #63b9f0; }
.screen-title-block h2 { color: #f1fbff; text-shadow: 0 0 20px rgba(53, 185, 255, .35); }
.screen-title-block b { border-color: rgba(243, 189, 87, .56); color: #f6cd77; background: rgba(158, 111, 18, .2); }
.screen-clock strong { color: #8fddff; }
.screen-clock span { color: #6795bd; }
.screen-button { border-color: rgba(87, 184, 239, .28); color: #aadfff; background: rgba(25, 101, 156, .2); }
.screen-button:hover { border-color: #45c4ff; background: rgba(35, 137, 205, .35); }
.screen-button.muted { color: #87aeca; }
.screen-kpi { border-color: rgba(55, 177, 244, .28); background: linear-gradient(145deg, rgba(11, 61, 101, .9), rgba(7, 31, 60, .96)); box-shadow: inset 0 0 28px rgba(51, 183, 255, .08), 0 10px 28px rgba(0, 0, 0, .16); }
.screen-kpi::before { background: linear-gradient(#35b9ff, rgba(53, 185, 255, .08)); }
.screen-kpi::after { border-color: rgba(53, 185, 255, .08); }
.screen-kpi.accent::before { background: linear-gradient(#f3bd57, rgba(243, 189, 87, .08)); }
.screen-kpi span { color: #7eafd2; }
.screen-kpi strong { color: #d4f3ff; }
.screen-kpi.accent strong { color: #f7d481; }
.screen-kpi small { color: #5f89af; }
.screen-kpi { transform-origin: center; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; will-change: transform; }
.screen-kpi strong { display: inline-block; transform-origin: left center; transition: transform .18s ease, text-shadow .18s ease; }
.screen-kpi:hover, .screen-kpi:focus-visible { z-index: 2; border-color: rgba(91, 209, 255, .72); outline: none; transform: translateY(-3px) scale(1.025); box-shadow: inset 0 0 34px rgba(51, 183, 255, .14), 0 12px 30px rgba(0, 0, 0, .24), 0 0 18px rgba(53, 185, 255, .18); }
.screen-kpi:hover strong, .screen-kpi:focus-visible strong { transform: scale(1.045); text-shadow: 0 0 14px rgba(82, 205, 255, .5); }

.screen-body-grid { grid-template-columns: 390px minmax(0, 1fr) 390px; gap: 12px; }
.screen-column { gap: 12px; }
.screen-left-column { grid-template-rows: 305px minmax(0, 1fr); }
.screen-center-column { grid-template-rows: 300px minmax(0, 1fr); }
.screen-right-column { grid-template-rows: 310px 270px minmax(0, 1fr); }
.screen-panel { border-color: rgba(57, 174, 239, .28); border-radius: 12px; padding: 14px 16px; background: linear-gradient(150deg, rgba(8, 44, 79, .94), rgba(5, 23, 49, .97)); box-shadow: inset 0 0 30px rgba(43, 166, 236, .06), 0 10px 28px rgba(0, 0, 0, .18); }
.screen-panel-title { height: 40px; border-color: rgba(57, 174, 239, .16); margin-bottom: 8px; }
.screen-panel-title span { color: #4f9aca; }
.screen-panel-title h3 { color: #e0f4ff; font-size: 17px; }
.screen-panel-title em { color: #74bce4; background: rgba(34, 124, 184, .16); }
.screen-panel-action { border: 1px solid rgba(53, 185, 255, .25); border-radius: 999px; padding: 4px 9px; color: #82cfff; background: rgba(35, 133, 205, .12); cursor: pointer; font: inherit; font-size: 10px; }
.screen-panel-action:hover { border-color: #35b9ff; background: rgba(35, 133, 205, .28); }

.capacity-list { gap: 5px; }
.capacity-item { grid-template-columns: 135px 80px 1fr 60px; min-height: 27px; gap: 7px; }
.capacity-item > strong { color: #d7efff; font-size: 11px; }
.capacity-item > span { color: #71a4c7; font-size: 10px; }
.capacity-bar { background: rgba(66, 150, 207, .15); }
.capacity-bar i { background: linear-gradient(90deg, #277ed4, #42d1e7); box-shadow: 0 0 8px rgba(53, 185, 255, .34); }
.capacity-value { color: #91dfff !important; font-size: 10px; }

.enterprise-order-list { height: calc(100% - 48px); overflow: hidden; }
.enterprise-order-window { height: calc(100% - 21px); overflow: hidden; }
.enterprise-order-window.is-expanded { overflow-x: hidden; overflow-y: auto; cursor: ns-resize; scrollbar-color: rgba(65, 177, 231, .55) rgba(5, 36, 66, .45); scrollbar-width: thin; }
.enterprise-order-window.is-expanded::-webkit-scrollbar { width: 5px; }
.enterprise-order-window.is-expanded::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(65, 177, 231, .55); }
.enterprise-order-window.is-expanded::-webkit-scrollbar-track { background: rgba(5, 36, 66, .45); }
.enterprise-order-track.is-scrolling { animation: enterprise-order-scroll 22s linear infinite; }
.enterprise-order-window:hover .enterprise-order-track.is-scrolling { animation-play-state: paused; }
@keyframes enterprise-order-scroll { to { transform: translateY(-50%); } }
.enterprise-order-head, .enterprise-order-row { display: grid; grid-template-columns: minmax(0, 1fr) 72px 62px 62px; align-items: center; gap: 7px; }
.enterprise-order-head { min-height: 21px; color: #5c91b6; font-size: 9px; }
.enterprise-order-row { width: 100%; min-height: 42px; border: 0; border-top: 1px solid rgba(56, 151, 208, .13); padding: 5px 0; color: #dcefff; background: transparent; text-align: left; cursor: pointer; font: inherit; }
.enterprise-order-row:hover { background: rgba(47, 153, 220, .12); }
.enterprise-order-row > span { min-width: 0; }
.enterprise-order-row strong, .enterprise-order-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.enterprise-order-row strong { color: #d7efff; font-size: 10px; }
.enterprise-order-row small { margin-top: 2px; color: #6293b7; font-size: 9px; }
.enterprise-order-row > b { color: #9edfff; font-size: 10px; }
.enterprise-order-row > i { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: rgba(67, 148, 205, .17); }
.enterprise-order-row > i em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #287fd6, #4ee0e4); }
.enterprise-order-row mark { overflow: hidden; border-radius: 999px; padding: 4px 5px; color: #78dbb0; background: rgba(48, 175, 127, .14); font-size: 9px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.enterprise-order-row mark.warn { color: #f4c66e; background: rgba(174, 122, 31, .18); }

.trend-caption { color: #70a6ca; }
.trend-caption strong { color: #a7e2ff; }
.dual-trend-chart { height: 205px; }
.dual-trend-chart svg { display: block; width: 100%; height: calc(100% - 20px); overflow: visible; }
.dual-chart-legend { display: flex; align-items: center; gap: 14px; margin: -1px 0 0 40px; color: #76acd0; font-size: 10px; }
.dual-chart-legend span { display: inline-flex; align-items: center; gap: 4px; }
.dual-chart-legend i { width: 8px; height: 3px; border-radius: 3px; background: #35b9ff; }
.dual-chart-legend i.sales { background: #f3bd57; }
.dual-chart-legend small { margin-left: auto; color: #557f9e; }
.dual-chart-area { fill: url(#dualOrderArea); }
.dual-chart-line { fill: none; stroke-width: 3; }
.dual-chart-line.order { stroke: #35b9ff; filter: drop-shadow(0 0 5px rgba(53, 185, 255, .5)); }
.dual-chart-line.sales { stroke: #f3bd57; filter: drop-shadow(0 0 5px rgba(243, 189, 87, .42)); }
.dual-chart-point { fill: #071b35; stroke: var(--point-color); stroke-width: 3; }
.dual-axis-label { fill: #5d91b3; font-size: 9px; }
.chart-axis-label { fill: #5d91b3; font-size: 9px; }

.screen-map-shell { position: relative; height: calc(100% - 52px); min-height: 0; overflow: hidden; border: 1px solid rgba(55, 163, 224, .16); border-radius: 10px; background: radial-gradient(circle at 51% 45%, rgba(35, 151, 219, .2), transparent 23%), linear-gradient(140deg, rgba(5, 38, 72, .8), rgba(4, 22, 48, .95)); }
.map-legend { display: flex; align-items: center; gap: 14px; margin: -2px 0 6px; color: #71a6ca; font-size: 9px; }
.map-legend small { margin-left: auto; color: #527e9f; }
.map-dot { display: inline-block; width: 7px; height: 7px; margin-right: 4px; border-radius: 50%; background: #4fe0aa; box-shadow: 0 0 6px currentColor; }
.map-dot.red { background: #f27470; }
.screen-route-map { position: relative; display: block; height: 100%; min-height: 0; padding: 0; overflow: hidden; }
.map-grid-label { position: absolute; top: 10px; left: 12px; z-index: 2; color: #4d86aa; font-size: 9px; letter-spacing: .08em; }
.map-route-line { position: absolute; top: 45%; left: 51%; z-index: 1; width: var(--length); height: 2px; transform: rotate(var(--angle)); transform-origin: 0 50%; background: linear-gradient(90deg, rgba(52, 188, 255, .8), rgba(52, 188, 255, .08)); box-shadow: 0 0 5px rgba(52, 188, 255, .35); }
.map-route-line.abnormal { background: linear-gradient(90deg, rgba(244, 116, 112, .92), rgba(244, 116, 112, .08)); box-shadow: 0 0 6px rgba(244, 116, 112, .45); }
.map-center-node, .map-node { position: absolute; z-index: 3; display: grid; place-items: center; text-align: center; }
.map-center-node { top: 45%; left: 51%; width: 112px; min-height: 52px; transform: translate(-50%, -50%); border: 1px solid rgba(68, 212, 255, .66); border-radius: 10px; background: rgba(8, 75, 117, .92); box-shadow: 0 0 24px rgba(53, 185, 255, .42); }
.map-center-node i, .map-node i { width: 9px; height: 9px; border: 2px solid #c8f4ff; border-radius: 50%; background: #35d5ff; box-shadow: 0 0 10px #35d5ff; }
.map-center-node strong { color: #e8faff; font-size: 10px; }
.map-center-node small { color: #86cbe9; font-size: 8px; }
.map-node { top: var(--y); left: var(--x); width: 76px; min-height: 38px; transform: translate(-50%, -50%); border: 0; padding: 2px 3px; color: #8bc4e4; background: transparent; cursor: pointer; font: inherit; }
.map-node:hover { z-index: 5; color: #eafaff; }
.map-node i { width: 8px; height: 8px; margin-bottom: 2px; border-color: #bcefff; background: #4fe0aa; box-shadow: 0 0 9px #4fe0aa; }
.map-node.abnormal i { background: #f27470; box-shadow: 0 0 9px #f27470; }
.map-node strong { max-width: 100%; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.map-node small { color: #5c91b3; font-size: 8px; }
.map-node.abnormal small { color: #ef9791; }
.map-route-detail { position: absolute; right: 10px; bottom: 10px; left: 10px; z-index: 6; display: grid; gap: 3px; border: 1px solid rgba(71, 196, 247, .36); border-radius: 8px; padding: 8px 10px; color: #86c7e5; background: rgba(4, 28, 56, .94); box-shadow: 0 0 18px rgba(35, 161, 225, .2); font-size: 9px; }
.map-route-detail strong { color: #dff7ff; font-size: 10px; }

.screen-map-summary { position: absolute; right: 10px; bottom: 10px; left: 10px; z-index: 4; grid-template-columns: repeat(4, 1fr); gap: 6px; opacity: .96; }
.transport-stat { min-height: 48px; border-color: rgba(57, 170, 231, .2); color: #6da1c2; background: rgba(8, 53, 88, .82); }
.transport-stat strong { margin-bottom: 2px; color: #afe4ff; font-size: 16px; }
.transport-stat.alert strong { color: #f38680; }

.procurement-chart { display: grid; grid-template-columns: 130px 1fr; align-items: center; gap: 16px; height: calc(100% - 48px); }
.procurement-donut { position: relative; display: grid; width: 128px; height: 128px; place-items: center; border-radius: 50%; box-shadow: 0 0 24px rgba(53, 185, 255, .2); }
.procurement-donut svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.procurement-track { stroke: rgba(45, 123, 174, .2); }
.procurement-segment { cursor: pointer; transform-box: fill-box; transform-origin: center; transition: stroke-width .16s ease, opacity .16s ease, filter .16s ease, transform .16s ease; }
.procurement-chart.has-active .procurement-segment:not(.is-active) { opacity: .42; }
.procurement-segment.is-active { stroke-width: 21; transform: scale(1.025); filter: drop-shadow(0 0 4px currentColor); }
.procurement-donut-center { position: absolute; inset: 28px; z-index: 1; display: grid; place-items: center; border: 1px solid rgba(95, 198, 239, .25); border-radius: 50%; color: #e5f8ff; background: #072241; text-align: center; pointer-events: none; }
.procurement-donut strong { font-size: 18px; }
.procurement-donut span { max-width: 64px; overflow: hidden; color: #6fa7c8; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.procurement-donut-center strong { transition: transform .16s ease, color .16s ease; }
.procurement-donut-center.is-active strong { transform: scale(1.08); color: #fff; }
.procurement-legend { display: grid; gap: 6px; }
.procurement-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto auto; align-items: center; gap: 5px; transform-origin: left center; border: 0; border-bottom: 1px solid rgba(57, 151, 207, .12); border-radius: 4px; padding: 4px 2px; color: #82b4d2; background: transparent; text-align: left; cursor: pointer; font: inherit; font-size: 9px; transition: transform .16s ease, color .16s ease, background .16s ease; }
.procurement-row:hover { color: #e1f8ff; }
.procurement-chart.has-active .procurement-row:not(.is-active) { opacity: .58; }
.procurement-row.is-active { transform: translateX(2px) scale(1.025); color: #effbff; background: rgba(40, 153, 218, .16); }
.procurement-row i { width: 7px; height: 7px; border-radius: 50%; background: var(--legend-color); }
.procurement-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.procurement-row strong { color: #b3e7ff; font-size: 10px; }
.procurement-row.is-active strong { color: #fff; }
.procurement-row small { color: #5e91b1; }

.news-tabs { display: flex; gap: 6px; margin: -1px 0 8px; }
.news-tabs button { border: 1px solid rgba(53, 169, 231, .2); border-radius: 999px; padding: 4px 9px; color: #6597b8; background: rgba(27, 104, 163, .1); cursor: pointer; font: inherit; font-size: 9px; }
.news-tabs button.active, .news-tabs button:hover { border-color: #35b9ff; color: #dff7ff; background: rgba(35, 145, 213, .25); }
.policy-window { height: calc(100% - 88px); }
.screen-policy-feed, .screen-news-feed { display: grid; gap: 6px; }
.screen-policy-feed { animation: policy-scroll 28s linear infinite; }
.screen-policy-item { grid-template-columns: 62px 1fr; border-left-color: #f3bd57; padding: 6px 8px; background: rgba(75, 75, 29, .12); }
.screen-policy-item > span { color: #f0c56e; }
.screen-policy-item strong { color: #dff6ff; font-size: 10px; }
.screen-policy-item small { color: #6b99b7; }
.screen-news-item { display: grid; grid-template-columns: 58px 1fr; gap: 8px; border: 0; border-left: 2px solid #35b9ff; border-radius: 6px; padding: 6px 8px; color: inherit; background: rgba(35, 132, 198, .1); text-align: left; cursor: pointer; font: inherit; }
.screen-news-item.green { border-left-color: #4fe0aa; }
.screen-news-item.red { border-left-color: #f27470; }
.screen-news-item.amber { border-left-color: #f3bd57; }
.screen-news-item:hover { background: rgba(39, 155, 222, .22); }
.news-image { display: grid; min-height: 34px; place-items: center; border-radius: 5px; color: #d9f5ff; background: linear-gradient(145deg, rgba(53, 185, 255, .38), rgba(55, 93, 214, .32)); font-size: 9px; }
.screen-news-item.green .news-image { background: linear-gradient(145deg, rgba(79, 224, 170, .38), rgba(26, 138, 149, .32)); }
.screen-news-item.red .news-image { background: linear-gradient(145deg, rgba(242, 116, 112, .4), rgba(149, 53, 96, .32)); }
.screen-news-item.amber .news-image { background: linear-gradient(145deg, rgba(243, 189, 87, .4), rgba(153, 101, 35, .32)); }
.screen-news-item strong, .screen-news-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.screen-news-item strong { color: #dcf5ff; font-size: 10px; }
.screen-news-item small { margin-top: 3px; color: #6d9cba; font-size: 9px; }

.assistant-content { display: grid; gap: 8px; height: calc(100% - 48px); }
.assistant-answer { border-left: 2px solid #35b9ff; border-radius: 6px; padding: 8px 9px; color: #9ccfea; background: rgba(35, 142, 210, .12); font-size: 10px; line-height: 1.55; }
.assistant-questions { display: flex; flex-wrap: wrap; align-content: start; gap: 5px; }
.assistant-questions button { border: 1px solid rgba(53, 185, 255, .25); border-radius: 999px; padding: 5px 8px; color: #85c8e9; background: rgba(21, 104, 170, .16); cursor: pointer; font: inherit; font-size: 9px; }
.assistant-questions button:hover { border-color: #35b9ff; color: #effbff; }

.screen-footer { color: #5787a8; }
.screen-footer i { background: #4fe0aa; box-shadow: 0 0 8px #4fe0aa; }
.screen-footer b { color: #79afd0; }

/* E02 第二轮反馈：滚动列表、真实底图、宽趋势图和机器人消息气泡 */
.screen-body-grid { grid-template-columns: 360px minmax(0, 1fr) 350px; }
.screen-left-column { grid-template-rows: 305px minmax(0, 1fr); }
.capacity-list { position: relative; height: calc(100% - 48px); overflow: hidden; mask-image: linear-gradient(180deg, transparent, #000 8%, #000 92%, transparent); }
.capacity-track { display: grid; gap: 4px; animation: capacity-scroll 25s linear infinite; }
.capacity-list:hover .capacity-track { animation-play-state: paused; }
.capacity-item { grid-template-columns: minmax(0, 1fr) 82px 70px 42px; min-height: 36px; gap: 6px; align-items: center; }
.capacity-identity { min-width: 0; }
.capacity-identity strong, .capacity-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.capacity-identity strong { color: #d7efff; font-size: 10px; }
.capacity-identity small { margin-top: 2px; color: #6c9abe; font-size: 9px; }
.capacity-progress { display: grid; gap: 3px; min-width: 0; }
.capacity-progress i { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: linear-gradient(90deg, #277ed4, #42d1e7); box-shadow: 0 0 8px rgba(53, 185, 255, .34); }
.capacity-progress span { color: #86c9e9; font-size: 8px; white-space: nowrap; }
.capacity-remaining { overflow: hidden; color: #a8e4ff; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.capacity-status { overflow: hidden; border-radius: 999px; padding: 4px 2px; color: #72d9ae; background: rgba(48, 175, 127, .14); font-size: 8px; font-style: normal; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.capacity-status.warn { color: #f4c66e; background: rgba(174, 122, 31, .18); }
@keyframes capacity-scroll { 0%, 10% { transform: translateY(0); } 90%, 100% { transform: translateY(calc(-50% - 2px)); } }

.dual-trend-chart { height: 205px; }
.dual-trend-chart svg { width: 100%; }

.map-tile-layer { position: absolute; inset: -160%; z-index: 0; display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(7, 1fr); opacity: .62; filter: saturate(.72) hue-rotate(165deg) brightness(.66) contrast(1.08); }
.map-tile-layer img { display: block; width: 100%; height: 100%; object-fit: cover; }
.map-route-line { top: var(--center-y, 68%); left: var(--center-x, 40%); }
.map-center-node { top: var(--y, 68%); left: var(--x, 40%); }
.map-attribution { position: absolute; right: 8px; bottom: 5px; z-index: 7; color: rgba(215, 241, 255, .72); font-size: 8px; text-shadow: 0 1px 3px #02152a; }
.map-vehicle { position: absolute; top: var(--y); left: var(--x); z-index: 4; display: grid; place-items: center; width: 30px; min-height: 27px; transform: translate(-50%, -50%); border: 1px solid rgba(110, 229, 255, .72); border-radius: 8px; padding: 2px 3px; color: #dff8ff; background: rgba(7, 54, 93, .88); box-shadow: 0 0 12px rgba(44, 196, 255, .5); cursor: pointer; font: inherit; }
.map-vehicle span { font-size: 15px; line-height: 1; }
.map-vehicle small { max-width: 58px; overflow: hidden; color: #8ed8f4; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.map-vehicle.abnormal { border-color: rgba(255, 128, 122, .9); background: rgba(116, 35, 52, .9); box-shadow: 0 0 13px rgba(244, 116, 112, .58); }
.map-vehicle.abnormal small { color: #ffb0a8; }

.procurement-chart { grid-template-columns: 108px minmax(0, 1fr); gap: 10px; }
.procurement-donut { width: 104px; height: 104px; }
.procurement-donut-center { inset: 23px; }
.procurement-donut strong { font-size: 14px; }
.procurement-donut span { font-size: 8px; }
.procurement-row { gap: 4px; padding: 3px 0; font-size: 8px; }
.procurement-row strong { font-size: 9px; }
.procurement-row small { font-size: 8px; }

.screen-policy-feed, .screen-news-feed { will-change: transform; }
.screen-news-feed { animation: policy-scroll 25s linear infinite; }
.screen-news-feed:hover { animation-play-state: paused; }

.assistant-content { align-content: start; }
.assistant-widget { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: start; gap: 7px; }
.assistant-avatar { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid rgba(53, 185, 255, .55); border-radius: 50%; background: radial-gradient(circle at 35% 30%, #9ceaff, #2d8ee4 66%, #0d3a76); box-shadow: 0 0 15px rgba(53, 185, 255, .48); font-size: 17px; }
.assistant-bubble { position: relative; border: 1px solid rgba(53, 185, 255, .3); border-radius: 8px 8px 8px 2px; padding: 6px 8px; background: rgba(20, 105, 169, .18); }
.assistant-bubble::before { position: absolute; bottom: 8px; left: -6px; width: 10px; height: 10px; border-bottom: 1px solid rgba(53, 185, 255, .3); border-left: 1px solid rgba(53, 185, 255, .3); content: ''; transform: rotate(45deg); background: #0b3967; }
.assistant-bubble small { position: relative; z-index: 1; color: #79cfff; font-size: 8px; }
.assistant-bubble .assistant-answer { position: relative; z-index: 1; margin: 3px 0 0; border-left: 0; padding: 0; background: transparent; }

/* E02 第三轮反馈：路线化伪 3D 地图、缩放控制和订单/销售分图 */
.trend-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; height: 205px; }
.trend-chart-card { min-width: 0; overflow: hidden; border: 1px solid rgba(61, 174, 232, .18); border-radius: 8px; padding: 7px 8px 3px; background: linear-gradient(145deg, rgba(12, 76, 128, .28), rgba(3, 27, 57, .48)); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.trend-chart-card:hover { border-color: rgba(71, 199, 255, .5); transform: translateY(-1px); box-shadow: inset 0 0 20px rgba(45, 174, 239, .08), 0 0 14px rgba(38, 166, 236, .1); }
.trend-chart-card-head { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 5px; }
.trend-chart-card-head span { color: #4e93bc; font-size: 8px; letter-spacing: .08em; }
.trend-chart-card-head strong { overflow: hidden; color: #d9f6ff; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.trend-chart-card-head small { color: #85cae9; font-size: 8px; white-space: nowrap; }
.trend-chart-card-legend { display: flex; align-items: center; gap: 4px; margin: 3px 0 -2px 32px; color: #70a9cc; font-size: 8px; }
.trend-chart-card-legend i { width: 14px; height: 3px; border-radius: 3px; background: var(--trend-color); box-shadow: 0 0 6px var(--trend-color); }
.trend-chart-card svg { display: block; width: 100%; height: 166px; overflow: visible; pointer-events: none; }
.trend-axis-label { fill: #5d91b3; font-size: 8px; }
.trend-chart-area { opacity: .72; }
.trend-chart-line { fill: none; stroke: var(--trend-color); stroke-width: 2.2; filter: drop-shadow(0 0 3px var(--trend-color)); }
.trend-chart-area, .trend-chart-line { pointer-events: none; }
.trend-chart-node { outline: none; cursor: pointer; pointer-events: all; }
.trend-chart-hit { fill: transparent; pointer-events: all; }
.trend-chart-point { fill: var(--point-color); stroke: #d9f8ff; stroke-width: 1; pointer-events: none; transform-box: fill-box; transform-origin: center; transition: transform .15s ease, stroke-width .15s ease, filter .15s ease; }
.trend-chart-node:hover .trend-chart-point, .trend-chart-node:focus-visible .trend-chart-point { stroke-width: 1.6; transform: scale(1.9); filter: drop-shadow(0 0 5px var(--point-color)); }
.trend-chart-node.previous .trend-chart-point { stroke: #ead8ff; stroke-width: .8; opacity: .88; }
.trend-hover-label { opacity: 0; pointer-events: none; transition: opacity .12s ease; }
.trend-hover-label rect { fill: rgba(7, 57, 94, .96); stroke: #9feaff; stroke-width: .7; filter: drop-shadow(0 0 3px rgba(35, 174, 255, .5)); }
.trend-hover-label text { fill: #f3fcff; font-size: 8px; font-weight: 700; }
.trend-chart-node.previous .trend-hover-label rect { fill: rgba(67, 39, 103, .96); stroke: #d7b5ff; }
.trend-chart-node:hover .trend-hover-label, .trend-chart-node:focus-visible .trend-hover-label { opacity: 1; }
.trend-chart-card:has(.trend-chart-node:hover) .trend-end-label, .trend-chart-card:has(.trend-chart-node:focus-visible) .trend-end-label { opacity: .28; }

.map-legend { flex-wrap: wrap; row-gap: 4px; }
.map-legend small { margin-left: 0; }
.map-zoom-controls { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; }
.map-zoom-controls button { min-width: 20px; height: 19px; border: 1px solid rgba(70, 185, 238, .32); border-radius: 4px; padding: 0 5px; color: #9fe4ff; background: rgba(9, 80, 130, .44); cursor: pointer; font: inherit; font-size: 10px; line-height: 17px; }
.map-zoom-controls button:hover { border-color: #52d9ff; color: #fff; background: rgba(24, 139, 198, .7); }
.map-zoom-controls span { min-width: 34px; color: #72b5d8; font-size: 8px; text-align: center; }
.screen-route-map { perspective: 900px; }
.map-scene { position: absolute; inset: -18% -7%; transform: perspective(900px) rotateX(48deg) scale(var(--map-zoom, 1.08)); transform-origin: 50% 57%; transform-style: preserve-3d; transition: transform .35s ease; }
.map-route-layer { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.map-route-path { fill: none; stroke: #37d5ff; stroke-width: .75; stroke-dasharray: 2.8 1.8; filter: drop-shadow(0 0 2px rgba(51, 214, 255, .9)); animation: map-route-flow 8s linear infinite; }
.map-route-path.abnormal { stroke: #ff746f; filter: drop-shadow(0 0 2px rgba(255, 82, 94, .9)); }
@keyframes map-route-flow { to { stroke-dashoffset: -46; } }
.map-scene .map-center-node, .map-scene .map-node, .map-scene .map-vehicle { transform: translate(-50%, -50%) translateZ(12px); }
.map-scene .map-center-node { z-index: 5; }
.map-scene .map-node { z-index: 4; }
.map-scene .map-vehicle { z-index: 6; width: 34px; min-height: 28px; border-radius: 8px; }
.map-scene .map-vehicle span { font-size: 16px; }
.map-scene .map-vehicle small { font-size: 7px; }
.map-scene .map-grid-label { z-index: 3; }
.map-attribution { bottom: 5px; }

/* 恢复领导样图要求的平面 2D 地图，并保留路线、缩放与拖拽能力 */
.screen-route-map { perspective: none; cursor: grab; touch-action: none; user-select: none; -webkit-user-drag: none; }
.screen-route-map.is-dragging { cursor: grabbing; }
.map-scene { inset: 0; transform: translate(0, 0) scale(var(--map-zoom, 1.08)); transform-origin: 50% 50%; transition: transform .14s ease-out; will-change: transform; }
.screen-route-map.is-dragging .map-scene { transition: none; }
.map-scene, .map-scene * { user-select: none; -webkit-user-drag: none; }
.map-scene .map-center-node, .map-scene .map-node, .map-scene .map-vehicle { transform: translate(-50%, -50%); }

.trend-chart-card-head { grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; }
.trend-chart-card-head > div { display: grid; gap: 1px; min-width: 0; }
.trend-chart-card-icon { display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid rgba(85, 203, 255, .45); border-radius: 4px; color: #92e5ff; background: rgba(35, 140, 218, .24); font-size: 11px; }
.trend-chart-card-head small { color: #4e93bc; font-size: 7px; letter-spacing: .06em; }
.trend-chart-card-head b { color: #a9e7ff; font-size: 8px; white-space: nowrap; }
.trend-chart-card-legend { flex-wrap: wrap; gap: 4px 5px; margin-left: 26px; }
.trend-chart-card-legend i.previous { width: 14px; background: repeating-linear-gradient(90deg, #b47be7 0 4px, transparent 4px 7px); box-shadow: none; }
.trend-chart-line.previous { stroke: #b47be7; stroke-width: 1.6; stroke-dasharray: 5 4; opacity: .82; filter: none; }
.trend-end-label rect { fill: #238ed9; stroke: #9feaff; stroke-width: .7; filter: drop-shadow(0 0 3px rgba(35, 174, 255, .55)); }
.trend-end-label text { fill: #f3fcff; font-size: 8px; font-weight: 700; }

/* E02 滚轮交互与趋势图空间优化 */
.screen-center-column { grid-template-rows: 330px minmax(0, 1fr); }
.trend-chart-grid { height: 240px; gap: 10px; }
.trend-chart-card { padding: 9px 10px 4px; }
.trend-chart-card svg { height: 195px; }
.capacity-list, .policy-window { overflow-x: hidden; overflow-y: auto; scrollbar-color: rgba(65, 177, 231, .55) rgba(5, 36, 66, .45); scrollbar-width: thin; }
.capacity-list { mask-image: none; cursor: ns-resize; }
.policy-window { cursor: ns-resize; }
.capacity-list::-webkit-scrollbar, .policy-window::-webkit-scrollbar { width: 5px; }
.capacity-list::-webkit-scrollbar-thumb, .policy-window::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(65, 177, 231, .55); }
.capacity-list::-webkit-scrollbar-track, .policy-window::-webkit-scrollbar-track { background: rgba(5, 36, 66, .45); }
.map-tile-layer img { user-select: none; -webkit-user-drag: none; pointer-events: none; }

/* E02 日间模式：默认仍为夜间模式，点击控制区按钮后启用 */
body.screen-mode.screen-day { color: #17324a; background: #dbe8f3; }
body.screen-mode.screen-day .public-screen-stage.active,
body.screen-mode.screen-day .public-screen-stage.active:fullscreen { background: radial-gradient(circle at 50% -12%, rgba(105, 190, 239, .42), transparent 48%), linear-gradient(145deg, #dcebf5, #f6fbfe 52%, #d8e8f3); }
body.screen-mode.screen-day .public-screen-canvas { color: #17324a; background-color: #eef6fb; background-image: linear-gradient(rgba(45, 128, 184, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(45, 128, 184, .07) 1px, transparent 1px); }
body.screen-mode.screen-day .public-screen-canvas::before { border-color: rgba(45, 137, 196, .34); box-shadow: inset 0 0 100px rgba(82, 162, 207, .12); }
body.screen-mode.screen-day .screen-header { border-color: rgba(45, 137, 196, .36); background: linear-gradient(90deg, rgba(239, 249, 254, .98), rgba(214, 237, 249, .94), rgba(239, 249, 254, .98)); box-shadow: 0 8px 26px rgba(51, 119, 160, .12); }
body.screen-mode.screen-day .screen-header::after { background: linear-gradient(90deg, transparent, #238ed9, transparent); }
body.screen-mode.screen-day .screen-title-block h2 { color: #103e61; text-shadow: none; }
body.screen-mode.screen-day .screen-title-block span,
body.screen-mode.screen-day .screen-clock span { color: #4e7894; }
body.screen-mode.screen-day .screen-title-block b { border-color: rgba(187, 132, 39, .56); color: #966a1c; background: rgba(236, 199, 103, .2); }
body.screen-mode.screen-day .screen-clock strong { color: #1d6b9e; }
body.screen-mode.screen-day .screen-button { border-color: rgba(45, 137, 196, .34); color: #1e628e; background: rgba(255, 255, 255, .72); }
body.screen-mode.screen-day .screen-button:hover { border-color: #238ed9; color: #124a72; background: #fff; }
body.screen-mode.screen-day .screen-button.muted { color: #5a7b91; }
body.screen-mode.screen-day .screen-kpi { border-color: rgba(45, 137, 196, .3); background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(218, 239, 250, .96)); box-shadow: inset 0 0 28px rgba(82, 174, 224, .1), 0 9px 24px rgba(53, 116, 153, .12); }
body.screen-mode.screen-day .screen-kpi span { color: #537994; }
body.screen-mode.screen-day .screen-kpi strong { color: #0f5b89; }
body.screen-mode.screen-day .screen-kpi.accent strong { color: #a16d16; }
body.screen-mode.screen-day .screen-kpi small { color: #708da2; }
body.screen-mode.screen-day .screen-panel { border-color: rgba(45, 137, 196, .3); background: linear-gradient(150deg, rgba(250, 253, 255, .98), rgba(224, 241, 250, .97)); box-shadow: inset 0 0 26px rgba(82, 174, 224, .08), 0 9px 24px rgba(53, 116, 153, .1); }
body.screen-mode.screen-day .screen-panel-title { border-color: rgba(45, 137, 196, .18); }
body.screen-mode.screen-day .screen-panel-title span { color: #4f82a1; }
body.screen-mode.screen-day .screen-panel-title h3 { color: #173f5f; }
body.screen-mode.screen-day .screen-panel-title em { color: #4b83a4; background: rgba(61, 157, 211, .12); }
body.screen-mode.screen-day .screen-panel-action { border-color: rgba(45, 137, 196, .3); color: #2877a5; background: rgba(61, 157, 211, .1); }
body.screen-mode.screen-day .capacity-identity strong,
body.screen-mode.screen-day .enterprise-order-row strong { color: #214e6d; }
body.screen-mode.screen-day .capacity-identity small,
body.screen-mode.screen-day .enterprise-order-row small,
body.screen-mode.screen-day .capacity-progress span { color: #66869d; }
body.screen-mode.screen-day .capacity-remaining,
body.screen-mode.screen-day .enterprise-order-row > b { color: #397495; }
body.screen-mode.screen-day .capacity-bar,
body.screen-mode.screen-day .enterprise-order-row > i { background: rgba(67, 150, 198, .16); }
body.screen-mode.screen-day .capacity-list::-webkit-scrollbar-track,
body.screen-mode.screen-day .policy-window::-webkit-scrollbar-track { background: rgba(150, 190, 211, .28); }
body.screen-mode.screen-day .enterprise-order-row { color: #315e7b; border-top-color: rgba(45, 137, 196, .14); }
body.screen-mode.screen-day .enterprise-order-row:hover { background: rgba(61, 157, 211, .12); }
body.screen-mode.screen-day .trend-caption,
body.screen-mode.screen-day .trend-chart-card-legend { color: #5c7d96; }
body.screen-mode.screen-day .trend-chart-card { border-color: rgba(45, 137, 196, .24); background: linear-gradient(145deg, rgba(246, 252, 255, .96), rgba(220, 239, 249, .92)); box-shadow: inset 0 0 18px rgba(82, 174, 224, .08); }
body.screen-mode.screen-day .trend-chart-card-head strong { color: #1b4a6b; }
body.screen-mode.screen-day .trend-chart-card-head small,
body.screen-mode.screen-day .trend-chart-card-head b { color: #4b82a1; }
body.screen-mode.screen-day .trend-axis-label,
body.screen-mode.screen-day .chart-axis-label { fill: #65869d; }
body.screen-mode.screen-day .trend-chart-point { stroke: #fff; }
body.screen-mode.screen-day .screen-map-shell { border-color: rgba(45, 137, 196, .24); background: linear-gradient(140deg, rgba(220, 239, 249, .9), rgba(239, 248, 252, .96)); }
body.screen-mode.screen-day .map-tile-layer { opacity: .78; filter: saturate(.82) brightness(1.12) contrast(.92); }
body.screen-mode.screen-day .map-grid-label,
body.screen-mode.screen-day .map-node { color: #3d6f8b; }
body.screen-mode.screen-day .map-node small { color: #5a8097; }
body.screen-mode.screen-day .map-center-node { border-color: rgba(35, 142, 217, .58); background: rgba(231, 247, 255, .94); box-shadow: 0 0 20px rgba(35, 142, 217, .28); }
body.screen-mode.screen-day .map-center-node strong { color: #17557d; }
body.screen-mode.screen-day .map-center-node small { color: #5683a0; }
body.screen-mode.screen-day .map-vehicle { border-color: rgba(35, 142, 217, .58); color: #164d70; background: rgba(242, 251, 255, .94); box-shadow: 0 0 10px rgba(35, 142, 217, .24); }
body.screen-mode.screen-day .map-vehicle small { color: #4e829f; }
body.screen-mode.screen-day .map-route-detail { border-color: rgba(45, 137, 196, .3); color: #4a7894; background: rgba(248, 253, 255, .94); box-shadow: 0 0 16px rgba(45, 137, 196, .14); }
body.screen-mode.screen-day .map-route-detail strong { color: #174f75; }
body.screen-mode.screen-day .map-attribution { color: rgba(47, 85, 108, .72); text-shadow: none; }
body.screen-mode.screen-day .transport-stat { border-color: rgba(45, 137, 196, .2); color: #5a8199; background: rgba(237, 248, 253, .9); }
body.screen-mode.screen-day .transport-stat strong { color: #1c638e; }
body.screen-mode.screen-day .procurement-donut-center { border-color: rgba(45, 137, 196, .25); color: #174f75; background: #f5fbfe; }
body.screen-mode.screen-day .procurement-donut span { color: #62839a; }
body.screen-mode.screen-day .procurement-row { color: #47728c; border-bottom-color: rgba(45, 137, 196, .14); }
body.screen-mode.screen-day .procurement-row strong { color: #1d638f; }
body.screen-mode.screen-day .procurement-row small { color: #66879d; }
body.screen-mode.screen-day .news-tabs button { border-color: rgba(45, 137, 196, .22); color: #5b829a; background: rgba(61, 157, 211, .08); }
body.screen-mode.screen-day .news-tabs button.active,
body.screen-mode.screen-day .news-tabs button:hover { border-color: #238ed9; color: #1d5c84; background: rgba(61, 157, 211, .16); }
body.screen-mode.screen-day .screen-policy-item { background: rgba(230, 196, 91, .1); }
body.screen-mode.screen-day .screen-policy-item strong,
body.screen-mode.screen-day .screen-news-item strong { color: #214e6d; }
body.screen-mode.screen-day .screen-policy-item small,
body.screen-mode.screen-day .screen-news-item small { color: #66879d; }
body.screen-mode.screen-day .screen-news-item { background: rgba(61, 157, 211, .08); }
body.screen-mode.screen-day .assistant-bubble { border-color: rgba(45, 137, 196, .28); background: rgba(226, 245, 254, .94); }
body.screen-mode.screen-day .assistant-bubble::before { border-color: rgba(45, 137, 196, .28); background: #e2f5fe; }
body.screen-mode.screen-day .assistant-bubble small { color: #32779f; }
body.screen-mode.screen-day .assistant-answer { color: #4a7894; }
body.screen-mode.screen-day .assistant-questions button { border-color: rgba(45, 137, 196, .24); color: #35759a; background: rgba(61, 157, 211, .1); }
body.screen-mode.screen-day .assistant-questions button:hover { border-color: #238ed9; color: #174f75; background: rgba(61, 157, 211, .18); }
body.screen-mode.screen-day .screen-footer { color: #5a8199; }
body.screen-mode.screen-day .screen-footer b { color: #4a7894; }

/* 最新反馈：地图本地降级、可拖拽交互、协同助手问答和具体预警条目 */
.screen-route-map { touch-action: none; cursor: grab; }
.screen-route-map.is-dragging { cursor: grabbing; }
.map-fallback { position: absolute; inset: 0; z-index: 0; display: none; width: 100%; height: 100%; pointer-events: none; }
.screen-route-map[data-map-tile-status="fallback"] .map-fallback { display: block; }
.map-fallback-river { fill: none; stroke: rgba(77, 202, 236, .54); stroke-width: 1.3; stroke-dasharray: 1.5 1.3; }
.map-fallback-road { fill: none; stroke: rgba(194, 222, 239, .26); stroke-width: .75; stroke-dasharray: 2 2; }
.map-fallback-boundary { fill: rgba(26, 102, 147, .13); stroke: rgba(127, 201, 232, .38); stroke-width: .45; }
.map-fallback-labels { fill: rgba(204, 237, 250, .76); font-size: 2.7px; letter-spacing: .08em; }
.map-fallback-caption { fill: rgba(178, 224, 244, .72); font-size: 2.3px; letter-spacing: .06em; }
.map-tile-layer img[hidden] { display: none; }
.assistant-messages { min-height: 0; overflow-y: auto; display: grid; align-content: start; gap: 6px; padding-right: 3px; scrollbar-color: rgba(65, 177, 231, .55) rgba(5, 36, 66, .45); scrollbar-width: thin; }
.assistant-messages::-webkit-scrollbar { width: 4px; }
.assistant-messages::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(65, 177, 231, .55); }
.assistant-message { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: start; gap: 6px; }
.assistant-message .assistant-avatar { width: 27px; height: 27px; font-size: 13px; }
.assistant-message .assistant-bubble { min-width: 0; padding: 5px 7px; }
.assistant-message .assistant-answer { overflow-wrap: anywhere; }
.assistant-message.user { grid-template-columns: minmax(0, 1fr) 28px; }
.assistant-message.user .assistant-avatar { order: 2; color: #dff8ff; background: linear-gradient(145deg, #318fc9, #17537f); }
.assistant-message.user .assistant-bubble { order: 1; border-radius: 8px 8px 2px 8px; border-color: rgba(243, 189, 87, .32); background: rgba(134, 102, 32, .18); }
.assistant-message.user .assistant-bubble::before { right: -6px; bottom: 8px; left: auto; border-right: 1px solid rgba(243, 189, 87, .32); border-bottom: 1px solid rgba(243, 189, 87, .32); border-left: 0; transform: rotate(-45deg); background: #3f351f; }
.assistant-message.user .assistant-bubble small { color: #f3c978; }
.assistant-question-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px; }
.assistant-question-form input { min-width: 0; border: 1px solid rgba(53, 185, 255, .25); border-radius: 6px; padding: 6px 8px; color: #dff8ff; background: rgba(4, 37, 70, .72); outline: none; font: inherit; font-size: 9px; }
.assistant-question-form input:focus { border-color: #35b9ff; box-shadow: 0 0 0 2px rgba(53, 185, 255, .12); }
.assistant-question-form button { border: 1px solid rgba(53, 185, 255, .36); border-radius: 6px; padding: 0 10px; color: #dff8ff; background: rgba(26, 126, 190, .42); cursor: pointer; font: inherit; font-size: 9px; }
.assistant-question-form button:hover { border-color: #35b9ff; background: rgba(26, 148, 215, .62); }
.operation-alert-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; color: #7da0a7; font-size: 11px; }
.operation-alert-heading strong { color: #174f3e; font-size: 14px; }
.operation-alert-heading span { color: #688d82; font-size: 10px; }
.operation-alert { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; border: 1px solid rgba(211, 164, 67, .22); border-left: 3px solid #d3a443; border-radius: 8px; margin-top: 6px; padding: 8px 10px; background: rgba(255, 249, 226, .76); }
.operation-alert.critical { border-left-color: #d65b51; background: rgba(255, 239, 235, .9); }
.operation-alert.info { border-left-color: #4c9bc0; background: rgba(235, 248, 255, .84); }
.operation-alert strong, .operation-alert small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.operation-alert strong { color: #285f4f; font-size: 12px; }
.operation-alert small { margin-top: 3px; color: #678b82; font-size: 10px; }
.operation-alert b { border-radius: 999px; padding: 5px 8px; color: #8f681d; background: rgba(211, 164, 67, .16); font-size: 10px; white-space: nowrap; }
.operation-alert.critical b { color: #a0443b; background: rgba(214, 91, 81, .13); }
.operation-alert.info b { color: #2f7094; background: rgba(76, 155, 192, .13); }
.operation-alert-empty { color: #6d8f84; font-size: 12px; }
body.screen-mode.screen-day .map-fallback { filter: saturate(.75) brightness(1.35) contrast(.9); }
body.screen-mode.screen-day .assistant-messages { scrollbar-color: rgba(45, 137, 196, .5) rgba(150, 190, 211, .28); }
body.screen-mode.screen-day .assistant-message.user .assistant-bubble { border-color: rgba(182, 133, 37, .28); background: rgba(249, 239, 211, .9); }
body.screen-mode.screen-day .assistant-message.user .assistant-bubble::before { border-color: rgba(182, 133, 37, .28); background: #f9efd3; }
body.screen-mode.screen-day .assistant-message.user .assistant-bubble small { color: #92691f; }
body.screen-mode.screen-day .assistant-question-form input { border-color: rgba(45, 137, 196, .28); color: #214e6d; background: rgba(255, 255, 255, .86); }
body.screen-mode.screen-day .assistant-question-form button { border-color: rgba(45, 137, 196, .3); color: #215d82; background: rgba(61, 157, 211, .14); }
body.screen-mode.screen-day .operation-alert-heading strong { color: #214e6d; }
body.screen-mode.screen-day .operation-alert-heading span,
body.screen-mode.screen-day .operation-alert-empty { color: #66869d; }

/* 最新反馈：助手默认收起输入，优先保证机器人回答完整可见 */
.screen-right-column { grid-template-rows: 270px 220px minmax(240px, 1fr); }
.assistant-content { grid-template-rows: minmax(0, 1fr) auto auto; align-content: stretch; gap: 6px; height: calc(100% - 48px); }
.assistant-content:not(.assistant-ask-open) { grid-template-rows: minmax(0, 1fr) auto; }
.assistant-messages { min-height: 0; overflow-y: auto; }
.assistant-question-launcher { width: 100%; min-height: 25px; border: 1px solid rgba(53, 185, 255, .28); border-radius: 6px; padding: 4px 8px; color: #91d9f7; background: rgba(21, 104, 170, .16); cursor: pointer; font: inherit; font-size: 9px; text-align: left; }
.assistant-question-launcher:hover { border-color: #35b9ff; color: #effbff; background: rgba(26, 148, 215, .3); }
.assistant-question-form { min-height: 25px; }
body.screen-mode.screen-day .assistant-question-launcher { border-color: rgba(45, 137, 196, .28); color: #35759a; background: rgba(61, 157, 211, .1); }
body.screen-mode.screen-day .assistant-question-launcher:hover { border-color: #238ed9; color: #174f75; background: rgba(61, 157, 211, .18); }
