:root {
  --tsp-shell-panel: #0f172a;
  --tsp-shell-panel-raised: #172033;
  --tsp-shell-border: rgba(103, 232, 249, 0.56);
  --tsp-shell-text: #e6f7ff;
  --tsp-shell-muted: #a8bac8;
  --tsp-shell-accent: #67e8f9;
}

.tsp-shell-popover {
  position: fixed;
  z-index: 2147483647;
  box-sizing: border-box;
  width: min(520px, calc(100vw - 24px));
  max-height: calc(100dvh - 96px);
  overflow: auto;
  border: 1px solid var(--tsp-shell-border);
  border-radius: 14px;
  padding: 18px;
  background-color: var(--tsp-shell-panel);
  background-image: none;
  color: var(--tsp-shell-text);
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.56);
  font-family: system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif;
  opacity: 1;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.tsp-shell-popover[data-kind="settings"] {
  width: min(400px, calc(100vw - 24px));
}

/* V119-r113: 消息中心弹窗(与网站使用说明同体系)。容器宽度/滚动独立设置;
   页面元素(.tsp-user-card 等)原为浅色大面板设计,夜间主题下统一转深色,
   日间主题(data-tsp-theme=light)沿用其浅色原样,不做覆写。 */
.tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) {
  width: min(520px, calc(100vw - 24px));
}

/* V119-r149: 图层管理面板按钮字号缩小——天地图/吉林一号/省域历史/矢量/影像
   等按钮 16px 偏大,统一 13px(按钮高度不变) */
.tsp-map-layer-panel button {
  font-size: 13px !important;
}

/* V119-r143/r148: 地图工具面板关闭键统一——测量/标注等带 title="关闭×";
   收藏/地名搜索的关闭钮是 shadcn ghost 图标钮(无 title,h-7/h-6 text-slate-400
   hover:text-white),r148 扩展按类名子串一并命中。统一为 28px 方块/深灰底/浅灰图标。 */
.tsp-map-tool-panel button[title^="关闭"],
.tsp-map-tool-panel button[class*="text-slate-400"][class*="hover:text-white"] {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  border: 1px solid rgba(148, 163, 184, 0.25) !important;
  border-radius: 8px !important;
  background: rgba(30, 41, 59, 0.8) !important;
  color: #94a3b8 !important;
  font-size: 16px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.15s, color 0.15s !important;
}

.tsp-map-tool-panel button[title^="关闭"]:hover,
.tsp-map-tool-panel button[class*="text-slate-400"][class*="hover:text-white"]:hover {
  background: rgba(51, 65, 85, 0.95) !important;
  color: #e2e8f0 !important;
}

.tsp-map-tool-panel button[title^="关闭"] svg,
.tsp-map-tool-panel button[class*="text-slate-400"][class*="hover:text-white"] svg {
  width: 14px !important;
  height: 14px !important;
}

/* V119-r147: 原生意见反馈面板的关闭×与弹窗系(tsp-shell-popover-close)统一 */
.timespace-feedback-panel [data-testid="feedback-close"] {
  flex: 0 0 auto;
  width: 34px !important;
  height: 34px !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: #243047 !important;
  color: #cbd5e1 !important;
  font-size: 23px !important;
  line-height: 1 !important;
  cursor: pointer;
}

html[data-tsp-theme="light"] .timespace-feedback-panel [data-testid="feedback-close"] {
  background: #f0f5f9 !important;
  color: #243342 !important;
}

/* V119-r125: 使用手册选择小窗(在线查看/下载 PDF)——窄幅即可 */
/* V119-r145: 反馈系弹窗(收件箱/撰写/我的反馈/详情)固定高度——内容多少、点开
   多选下拉都不再改变弹窗高度;列表区在固定高度内滚动,下拉面板有稳定空间 */
.tsp-shell-popover[data-kind="feedback"] {
  height: min(640px, calc(100dvh - 96px));
}

.tsp-shell-popover[data-kind="manual"] {
  width: min(320px, calc(100vw - 24px));
}

.tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-content {
  padding: 2px;
  max-height: min(62dvh, 580px);
  overflow-y: auto;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-card {
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(103, 232, 249, 0.16);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-card h3 {
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-meta,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-help {
  color: #8fb6c9;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) h4,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-clickable-item h4 {
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) h4.tsp-user-form-section {
  color: #a5f3fc;
  border-bottom-color: rgba(103, 232, 249, 0.22);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-empty {
  background: rgba(255, 255, 255, 0.03);
  color: #7d9db0;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-nav-entry {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(103, 232, 249, 0.18);
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-nav-entry:hover {
  background: rgba(8, 51, 68, 0.55);
  border-color: rgba(103, 232, 249, 0.5);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-nav-count {
  color: #8fb6c9;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-nav-badge {
  background: #7f1d1d;
  color: #fecaca;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-button {
  background: rgba(8, 47, 73, 0.65);
  border-color: #155e75;
  color: #a5f3fc;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-button[data-primary="true"] {
  background: #0e7490;
  color: #ecfeff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-button[data-danger="true"] {
  background: rgba(127, 29, 29, 0.5);
  border-color: #b91c1c;
  color: #fecaca;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-message {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(103, 232, 249, 0.22);
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-private-item,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-clickable-item {
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(103, 232, 249, 0.16);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-brief {
  color: #9fc0d3;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-detail-content {
  /* V119-r117:深色弹窗下正文块必须同补背景,否则残留浅底+浅字不可读 */
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(103, 232, 249, 0.16);
  color: #d7ecf5;
}

/* V119-r215: 发布通知自选用户清单与核对页内容框——同为浅色面板遗留白底,深色弹窗下补背景 */
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-user-list,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-confirm-content {
  background: rgba(8, 47, 73, 0.35);
  border-color: rgba(103, 232, 249, 0.2);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-badge {
  background: rgba(6, 182, 212, 0.16);
  border-color: rgba(6, 182, 212, 0.4);
  color: #67e8f9;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-badge[data-kind="warning"] {
  background: rgba(180, 83, 9, 0.22);
  border-color: rgba(245, 158, 11, 0.5);
  color: #fcd34d;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-field span,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-check span {
  color: #cfe8f3;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-field input,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-field textarea,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-field select {
  background: #0b2237;
  border-color: #164e63;
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-content {
  background: rgba(255, 255, 255, 0.05);
  color: #d7ecf5;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-status[data-status="undecided"] {
  background: #334155;
  color: #cbd5e1;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-status[data-status="pending_change"] {
  background: #7c2d12;
  color: #fed7aa;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-status[data-status="changed"] {
  background: #14532d;
  color: #bbf7d0;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-status[data-status="no_change"] {
  background: #1e3a5f;
  color: #bfdbfe;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-multiselect-toggle {
  background: #0b2237;
  border-color: #164e63;
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-multiselect-panel {
  background: #0f2a40;
  border-color: #164e63;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-select-toggle {
  background: #0b2237;
  border-color: #164e63;
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-select-panel {
  background: #0f2a40;
  border-color: #164e63;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-select-option {
  color: #d7ecf5;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-select-option:hover {
  background: rgba(8, 51, 68, 0.6);
  color: #e6f7ff;
}

/* V119-r115: 反馈卡片与多选面板选项行——修复弹窗内残留浅色块(用户图1) */
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-check {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(103, 232, 249, 0.2);
  color: #cfe8f3;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-check input[type="checkbox"] {
  accent-color: #22d3ee;
}

/* V119-r135: 弹窗内卡片标题缩小——17px 与弹窗大标题(19px)几乎同级显得过大,
   统一 15px(消息中心/反馈等弹窗内全部 h3,含详情页) */
.tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-user-card h3 {
  font-size: 15px;
}

/* V119-r121: 发布通知的"定时发布"日历控件深色化(此前残留白底浅框) */
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-toggle {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(103, 232, 249, 0.2);
  color: #cfe8f3;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-toggle:hover {
  border-color: rgba(103, 232, 249, 0.5);
  background: rgba(8, 51, 68, 0.5);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar {
  background: #0b1626;
  border-color: rgba(103, 232, 249, 0.24);
  box-shadow: 0 18px 40px rgba(2, 8, 20, 0.6);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-title {
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-nav {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(103, 232, 249, 0.24);
  color: #cfe8f3;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-nav:hover {
  background: rgba(8, 51, 68, 0.6);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-week {
  color: #9fc0d3;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-day {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(103, 232, 249, 0.16);
  color: #d7ecf5;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-day:hover {
  border-color: rgba(103, 232, 249, 0.55);
  background: rgba(8, 51, 68, 0.55);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-past {
  color: #64748b;
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(148, 163, 184, 0.14);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-selected {
  background: rgba(6, 182, 212, 0.3);
  border-color: #22d3ee;
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-time {
  border-color: rgba(103, 232, 249, 0.16);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-time > span {
  color: #9fc0d3;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-notice-calendar-blank {
  background: transparent;
  border-color: transparent;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-item {
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(103, 232, 249, 0.16);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-item:hover {
  border-color: rgba(103, 232, 249, 0.5);
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-item-head h4,
html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-item-head h3 {
  color: #e6f7ff;
}

html:not([data-tsp-theme="light"]) .tsp-shell-popover:is([data-kind="messages"], [data-kind="feedback"]) .tsp-feedback-item .tsp-feedback-brief {
  color: #9fc0d3;
}

.tsp-shell-popover-arrow {
  position: absolute;
  top: -8px;
  left: var(--tsp-shell-arrow-left, 28px);
  z-index: 0;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border-top: 1px solid var(--tsp-shell-border);
  border-left: 1px solid var(--tsp-shell-border);
  background-color: var(--tsp-shell-panel);
  transform: rotate(45deg);
}

.tsp-shell-popover-header,
.tsp-shell-popover-title,
.tsp-shell-tabs,
.tsp-theme-options {
  display: flex;
  align-items: center;
}

.tsp-shell-popover-header {
  position: relative;
  z-index: 1;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(103, 232, 249, 0.22);
}

.tsp-shell-popover-title {
  gap: 9px;
  min-width: 0;
}

.tsp-shell-popover-title h2 {
  margin: 0;
  color: var(--tsp-shell-accent);
  font-size: 19px;
  line-height: 1.3;
}

.tsp-shell-popover-icon {
  color: var(--tsp-shell-accent);
  font-size: 21px;
}

.tsp-shell-popover-close {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 9px;
  background: #243047;
  color: #cbd5e1;
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}

.tsp-shell-popover-close:hover,
.tsp-shell-popover-close:focus-visible {
  background: #334155;
  color: #fff;
  outline: 2px solid rgba(103, 232, 249, 0.48);
}

.tsp-shell-tabs {
  position: relative;
  z-index: 1;
  gap: 8px;
  margin: 14px 0 0;
}

.tsp-shell-tab {
  min-height: 38px;
  border: 1px solid #40506a;
  border-radius: 9px;
  padding: 7px 14px;
  background: #1b263a;
  color: #cbd5e1;
  font: 700 14px/1.2 inherit;
  cursor: pointer;
}

.tsp-shell-tab[aria-selected="true"] {
  border-color: #0891b2;
  background: #0369a1;
  color: #fff;
}

.tsp-shell-tab:focus-visible {
  outline: 3px solid rgba(103, 232, 249, 0.35);
  outline-offset: 2px;
}

.tsp-shell-tab-panel {
  position: relative;
  z-index: 1;
  padding-top: 15px;
  color: var(--tsp-shell-text);
  font-size: 14px;
  line-height: 1.72;
}

.tsp-shell-tab-panel[hidden] {
  display: none;
}

.tsp-shell-tab-panel h3 {
  margin: 2px 0 8px;
  color: #cffafe;
  font-size: 16px;
}

.tsp-shell-tab-panel h4 {
  margin: 16px 0 5px;
  color: #bae6fd;
  font-size: 14px;
}

.tsp-shell-tab-panel p {
  margin: 6px 0 10px;
  color: var(--tsp-shell-muted);
}

.tsp-shell-tab-panel ol,
.tsp-shell-tab-panel ul {
  margin: 7px 0 11px;
  padding-left: 22px;
}

.tsp-shell-tab-panel li {
  margin: 5px 0;
}

.tsp-shell-notice {
  margin-top: 13px;
  border-left: 3px solid #22d3ee;
  border-radius: 7px;
  padding: 9px 11px;
  background: #17283a;
  color: #c6edf4;
}

.tsp-settings-section {
  position: relative;
  z-index: 1;
  padding-top: 16px;
}

.tsp-settings-section h3 {
  margin: 0;
  color: #cffafe;
  font-size: 16px;
}

.tsp-settings-section p {
  margin: 5px 0 13px;
  color: var(--tsp-shell-muted);
  font-size: 13px;
  line-height: 1.55;
}

.tsp-theme-options {
  gap: 10px;
}

.tsp-theme-option {
  flex: 1 1 0;
  display: grid;
  min-height: 84px;
  place-items: center;
  gap: 4px;
  border: 1px solid #40506a;
  border-radius: 11px;
  padding: 10px;
  background: #1b263a;
  color: #d8e4ec;
  font: 700 14px/1.25 inherit;
  cursor: pointer;
}

.tsp-theme-option svg {
  width: 18px;
  height: 18px;
  display: block;
}
.tsp-theme-option span:first-child {
  font-size: 24px;
}

.tsp-theme-option[aria-pressed="true"] {
  border-color: #22d3ee;
  background: #0e6072;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(34, 211, 238, 0.18);
}

.tsp-theme-option:focus-visible {
  outline: 3px solid rgba(103, 232, 249, 0.35);
  outline-offset: 2px;
}

/* The map toolbar and every panel it opens use a fully opaque surface. */
.tsp-map-toolbar,
.tsp-map-toolbar-collapsed > button,
.tsp-map-tool-panel,
.tsp-coordinate-convert-panel,
.tsp-map-layer-panel,
.tsp-map-context-menu,
.timespace-feedback-panel,
.timespace-feedback-arrow {
  background-color: #0f172a !important;
  background-image: none !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.timespace-feedback-panel {
  right: auto !important;
}

.timespace-feedback-arrow {
  right: auto !important;
}

.tsp-site-header-title h1 {
  font-size: 32px !important;
  line-height: 1.15 !important;
}

.tsp-data-panel,
.tsp-mobile-data-drawer {
  container-name: tsp-data-panel;
  container-type: inline-size;
  min-width: 0;
}

.tsp-data-panel [data-radix-scroll-area-viewport] > div[style*="display: table"],
.tsp-mobile-data-drawer [data-radix-scroll-area-viewport] > div[style*="display: table"] {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.tsp-evidence-asset-card {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.tsp-evidence-asset-card > .flex {
  min-width: 0;
  flex-wrap: wrap;
}

.tsp-evidence-asset-card > .flex > .flex-1 {
  flex: 1 1 180px;
}

.tsp-evidence-asset-actions {
  flex: 0 1 auto;
  min-width: 0;
}

.tsp-raster-controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(124px, 1fr));
  gap: 7px 10px;
  min-width: 0;
}

.tsp-raster-control {
  display: block;
  min-width: 0;
  border-radius: 7px;
  padding: 5px 7px 6px;
  background: #111c30;
}

.tsp-raster-control input[type="range"] {
  display: block;
  width: 100%;
  min-width: 0;
  height: 16px;
  margin: 0;
  accent-color: #22d3ee;
}

@container tsp-data-panel (max-width: 460px) {
  .tsp-evidence-asset-card {
    padding: 8px !important;
  }

  .tsp-evidence-asset-card > .flex {
    gap: 7px !important;
  }

  .tsp-raster-controls {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    margin-top: 7px !important;
  }

  .tsp-raster-control {
    padding: 3px 6px 4px;
  }

  .tsp-raster-control > div {
    margin-bottom: 1px !important;
  }

  .tsp-raster-control input[type="range"] {
    height: 13px;
  }
}

html[data-tsp-theme="light"] {
  --tsp-shell-panel: #ffffff;
  --tsp-shell-panel-raised: #fff;
  --tsp-shell-border: #c9d8e2;
  --tsp-shell-text: #243342;
  --tsp-shell-muted: #5b6b7a;
  --tsp-shell-accent: #0369a1;
  color-scheme: light;
}

html[data-tsp-theme="dark"] {
  color-scheme: dark;
}

html[data-tsp-theme="light"] body {
  background: #f5f7fa;
}

html[data-tsp-theme="light"] .tsp-app-shell {
  background: #f5f7fa !important;
}

html[data-tsp-theme="light"] .tsp-app-shell > header,
html[data-tsp-theme="light"] .tsp-app-shell > footer,
html[data-tsp-theme="light"] .tsp-mobile-footer {
  border-color: #c9d8e2 !important;
  background: #ffffff !important;
  color: #243342 !important;
}

html[data-tsp-theme="light"] .tsp-app-shell > header > div.absolute.inset-0,
html[data-tsp-theme="light"] .tsp-app-shell > footer > div.absolute.inset-0,
html[data-tsp-theme="light"] .tsp-mobile-footer > div.absolute.inset-0 {
  background: none !important;
}

html[data-tsp-theme="light"] .tsp-site-header-actions button {
  color: #0369a1 !important;
}

html[data-tsp-theme="light"] .tsp-site-header-actions button:hover,
html[data-tsp-theme="light"] .tsp-site-header-actions button:focus-visible {
  background: #e4eff7 !important;
}

html[data-tsp-theme="light"] .tsp-data-rail,
html[data-tsp-theme="light"] .tsp-data-panel,
html[data-tsp-theme="light"] .tsp-mobile-data-drawer {
  border-color: #c9d8e2 !important;
  background: #ffffff !important;
  color: #243342 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html[data-tsp-theme="light"] .tsp-data-rail button,
html[data-tsp-theme="light"] .tsp-data-panel button,
html[data-tsp-theme="light"] .tsp-mobile-data-drawer button {
  color: #3d5566 !important;
}

html[data-tsp-theme="light"] .tsp-data-panel [class*="text-white"],
html[data-tsp-theme="light"] .tsp-mobile-data-drawer [class*="text-white"] {
  color: #243342 !important;
}

html[data-tsp-theme="light"] .tsp-data-panel [class*="text-slate-"],
html[data-tsp-theme="light"] .tsp-mobile-data-drawer [class*="text-slate-"] {
  color: #5b6b7a !important;
}

html[data-tsp-theme="light"] .tsp-data-panel [class*="border-slate-"],
html[data-tsp-theme="light"] .tsp-mobile-data-drawer [class*="border-slate-"] {
  border-color: #d4e0e8 !important;
}

html[data-tsp-theme="light"] .tsp-data-panel [class*="bg-slate-8"],
html[data-tsp-theme="light"] .tsp-mobile-data-drawer [class*="bg-slate-8"] {
  background-color: #f0f5f9 !important;
}

html[data-tsp-theme="light"] .tsp-data-panel button.bg-cyan-600,
html[data-tsp-theme="light"] .tsp-mobile-data-drawer button.bg-cyan-600 {
  background-color: #0891b2 !important;
  color: #fff !important;
}

html[data-tsp-theme="light"] .tsp-map-toolbar,
html[data-tsp-theme="light"] .tsp-map-toolbar-collapsed > button,
html[data-tsp-theme="light"] .tsp-map-tool-panel,
html[data-tsp-theme="light"] .tsp-coordinate-convert-panel,
html[data-tsp-theme="light"] .tsp-map-layer-panel,
html[data-tsp-theme="light"] .tsp-map-context-menu,
html[data-tsp-theme="light"] .timespace-feedback-panel,
html[data-tsp-theme="light"] .timespace-feedback-arrow {
  border-color: #c9d8e2 !important;
  background-color: #ffffff !important;
  color: #243342 !important;
}

html[data-tsp-theme="light"] .tsp-map-toolbar button {
  color: #0369a1 !important;
}

html[data-tsp-theme="light"] .tsp-map-tool-panel [class*="text-slate-"],
html[data-tsp-theme="light"] .tsp-map-layer-panel [class*="text-slate-"],
html[data-tsp-theme="light"] .tsp-map-context-menu [class*="text-slate-"],
html[data-tsp-theme="light"] .timespace-feedback-panel p,
html[data-tsp-theme="light"] .timespace-feedback-panel span {
  color: #3d5566 !important;
  text-shadow: none !important;
}

@media (max-width: 1023px) {
  .tsp-site-header-title h1 {
    font-size: 24px !important;
  }

  .tsp-site-header-actions > button,
  .tsp-user-launcher[data-in-header="true"],
  .tsp-mobile-data-launcher,
  .tsp-map-toolbar button,
  .tsp-map-toolbar-collapsed > button,
  .leaflet-control-zoom a {
    min-width: 44px !important;
    min-height: 44px !important;
  }

  .tsp-site-header-actions > button,
  .tsp-map-toolbar button,
  .tsp-map-toolbar-collapsed > button {
    width: 44px !important;
    height: 44px !important;
  }

  .tsp-user-launcher[data-in-header="true"],
  .tsp-mobile-data-launcher {
    height: 44px !important;
  }

  .tsp-app-shell button[class~="rounded-full"][class~="h-10"][class~="w-10"] {
    width: 44px !important;
    height: 44px !important;
  }

  .tsp-app-shell button[class*="bg-slate-900/95"][class*="border-cyan-500/50"] {
    min-height: 44px !important;
  }

  .leaflet-control-zoom a {
    width: 44px !important;
    height: 44px !important;
    line-height: 44px !important;
  }
}

@media (max-width: 640px) {
  .tsp-site-header-title h1 {
    font-size: 18px !important;
  }
}

/* V114: compact mobile map chrome while preserving the desktop layout. */
.tsp-mobile-header-menu {
  display: none;
  touch-action: manipulation;
}

/* 手机菜单底部图标行只在手机菜单展开时显示(桌面隐藏,防止出现在桌面头部) */
.tsp-mobile-menu-icon-row {
  display: none;
}

/* 修复:Tailwind 未编译 max-h-[78vh],地图图层面板没有高度上限,
   选择天地图等内容变高后顶部会顶出屏幕、关闭按钮不可达。
   补上高度上限与内部滚动,并让标题栏(含关闭按钮)吸顶常驻。 */
.tsp-map-layer-panel {
  max-height: min(78vh, calc(100vh - 240px)) !important;
  overflow-y: auto !important;
}

.tsp-map-layer-panel > div:first-child {
  position: sticky;
  top: -12px;
  z-index: 2;
  background: inherit;
}

/* 手机页脚公安备案链接补上备案图标,与桌面页脚一致;
   inline-flex 垂直居中图标与文字,行高保持与 ICP 链接一致,文字不下沉 */
.tsp-mobile-footer-filing[href*="beian.mps.gov.cn"] {
  display: inline-flex;
  align-items: center;
}

.tsp-mobile-footer-filing[href*="beian.mps.gov.cn"]::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 4px;
  flex-shrink: 0;
  background: url("/beian-icon.png") center / contain no-repeat;
}

/* 数据中心标签两端统一为:…转换 → 报告 → AI。
   桌面侧栏构建顺序是 AI 在前,手机抽屉是报告在前,这里用 flex order 统一。 */
[role="tablist"] [data-testid="report-tab"] {
  order: 5;
}

[role="tablist"] [data-testid="ai-tab"] {
  order: 6;
}

/* V119-r2 手机端修正：Tailwind 未生成 bg-slate-950/98(98% 透明度档位)，
   数据中心移动端入口因此没有任何背景，点按前几乎不可见。
   按需求改为直接使用不透明深蓝底色(与原 hover 色 slate-800 一致)。 */
html:not([data-tsp-theme="light"]) .tsp-mobile-data-launcher {
  background-color: #1e293b !important;
}

html:not([data-tsp-theme="light"]) .tsp-mobile-data-launcher:hover,
html:not([data-tsp-theme="light"]) .tsp-mobile-data-launcher:focus-visible {
  background-color: #334155 !important;
}

@media (max-width: 767px) {
  .tsp-app-shell > header {
    min-height: 48px !important;
    height: 48px !important;
    padding: 0 6px !important;
    /* 高于地图工具栏(z-1000)等图层，保证三点菜单下拉面板不被遮挡 */
    z-index: 1300 !important;
  }

  /* 手机用双指缩放地图，左下角加减号缩放控件直接隐藏 */
  .leaflet-control-zoom {
    display: none !important;
  }

  .tsp-app-shell > header > img {
    width: 28px !important;
    height: 28px !important;
  }

  .tsp-site-header-title {
    position: absolute !important;
    inset: 0 38px !important;
    display: flex !important;
    width: auto !important;
    padding: 0 !important;
    transform: none !important;
    justify-content: center !important;
    pointer-events: none;
  }

  .tsp-site-header-title h1 {
    width: auto !important;
    max-width: 100% !important;
    overflow: visible !important;
    color: #67e8f9;
    font-size: clamp(10px, 3.35vw, 15px) !important;
    line-height: 1.1 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }

  .tsp-site-header-actions {
    position: absolute !important;
    top: 7px !important;
    right: 6px !important;
    z-index: 1200 !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 32px !important;
    min-width: 32px !important;
    max-width: 172px !important;
    gap: 3px !important;
  }

  .tsp-mobile-header-menu {
    display: inline-flex !important;
    align-self: flex-end;
    align-items: center;
    justify-content: center;
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    border: 1px solid rgba(103, 232, 249, 0.42);
    border-radius: 8px;
    padding: 0 !important;
    background: #0f172a;
    color: #67e8f9;
    font: 800 20px/1 system-ui, sans-serif;
  }

  .tsp-site-header-actions:not([data-mobile-open="true"]) > :not(.tsp-mobile-header-menu) {
    display: none !important;
  }

  .tsp-site-header-actions[data-mobile-open="true"] {
    /* 面板下移到顶栏(48px)下方，不再与标题平行、不遮挡标题 */
    top: 54px !important;
    width: 176px !important;
    padding: 4px !important;
    border: 1px solid rgba(103, 232, 249, 0.42);
    border-radius: 10px;
    background: #0f172a;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.42);
  }

  /* V119-r112: 展开后为统一图标网格——账户(人名/登录)在上,下方 6 个同款 42px 方块图标
     (消息/手册/使用说明/设置/功能反馈/意见反馈)居中换行排布,取代旧的"整行按钮+小图标行"混排 */
  .tsp-site-header-actions[data-mobile-open="true"] #tsp-user-launcher-slot {
    order: 1;
  }

  .tsp-site-header-actions[data-mobile-open="true"] #tsp-header-utility-slot {
    order: 2;
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-mobile-menu-icon-row {
    /* 行容器融入 slot 网格,消息/手册与四个功能图标共用同一套 flex 排布 */
    display: contents;
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-header-icon-btn {
    display: inline-flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 0 !important;
    border: 1px solid rgba(103, 232, 249, 0.3) !important;
    border-radius: 9px !important;
    background: #0b1a33 !important;
    color: #67e8f9 !important;
    transition: background 0.15s ease, color 0.15s ease;
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-header-icon-btn:hover,
  .tsp-site-header-actions[data-mobile-open="true"] .tsp-header-icon-btn:active {
    background: #12315e !important;
    color: #a5f3fc !important;
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-header-icon-btn svg {
    width: 20px !important;
    height: 20px !important;
  }

  .tsp-mobile-menu-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 9px;
    border: 1px solid rgba(103, 232, 249, 0.3);
    background: #0b1a33;
    color: #67e8f9;
    padding: 0;
  }

  .tsp-mobile-menu-icon:hover,
  .tsp-mobile-menu-icon:active {
    background: #12315e;
  }

  .tsp-mobile-menu-icon svg {
    width: 20px;
    height: 20px;
  }

  /* 原生意见反馈按钮已由图标行替代，手机菜单中不再显示 */
  .tsp-site-header-actions[data-mobile-open="true"] > button:not(.tsp-mobile-header-menu) {
    display: none !important;
  }

  .tsp-site-header-actions[data-mobile-open="true"] #tsp-header-utility-slot,
  .tsp-site-header-actions[data-mobile-open="true"] #tsp-user-launcher-slot {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex-direction: column !important;
    gap: 3px !important;
  }

  /* V119-r112: 图标网格容器改横向换行,六个图标居中排布 */
  .tsp-site-header-actions[data-mobile-open="true"] #tsp-header-utility-slot {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 2px 4px !important;
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-user-launcher[data-in-header="true"] {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 38px !important;
    min-height: 38px !important;
    justify-content: center !important;
    align-items: center !important;
    border-radius: 7px !important;
    padding: 0 7px !important;
    font-size: 12px !important;
  }

  .tsp-mobile-data-launcher {
    top: 54px !important;
    left: 6px !important;
    /* V119-r15: 3D 模式顶部坐标读数条与按钮同带排列,原 104px 会重叠;缩到约 3/5(62px)并收紧内距/字号 */
    min-width: 62px !important;
    min-height: 34px !important;
    height: 34px !important;
    border-radius: 8px !important;
    padding: 0 6px !important;
    font-size: 10px !important;
  }

  .tsp-mobile-data-launcher svg {
    width: 12px !important;
    height: 12px !important;
    margin-right: 3px !important;
  }

  .tsp-mobile-data-backdrop {
    background: rgba(0, 0, 0, 0.08) !important;
  }

  .tsp-mobile-data-drawer {
    top: 90px !important;
    right: auto !important;
    bottom: auto !important;
    left: 6px !important;
    /* V119-r17: 3D模式右下角"地图图层管理/全球局部"竖排按钮列(约 left:100vw-149px)不可被抽屉遮住,
       66vw 在窄屏会伸进去;取 min 保证与按钮列至少留 8px 间隙 */
    width: min(66vw, calc(100vw - 165px)) !important;
    max-width: min(66vw, calc(100vw - 165px)) !important;
    height: 66dvh !important;
    max-height: calc(100dvh - 132px) !important;
    border: 1px solid rgba(34, 211, 238, 0.46) !important;
    border-radius: 10px !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.5) !important;
  }

  .tsp-mobile-data-drawer > div:first-child {
    min-height: 30px !important;
    padding: 3px 6px !important;
  }

  .tsp-mobile-data-drawer button {
    min-width: 28px !important;
    min-height: 28px !important;
    font-size: 10px !important;
  }

  .tsp-mobile-data-drawer [role="tablist"] {
    margin: 3px 4px 0 !important;
    padding: 1px !important;
  }

  .tsp-mobile-data-drawer [role="tab"] {
    min-height: 32px !important;
    gap: 1px !important;
    padding: 2px 1px !important;
  }

  .tsp-mobile-data-drawer [role="tab"] svg {
    width: 12px !important;
    height: 12px !important;
  }

  .tsp-mobile-data-drawer [role="tab"] span {
    font-size: 9px !important;
  }

  .tsp-mobile-data-drawer [data-radix-scroll-area-viewport] .px-3.py-4 {
    padding: 5px !important;
  }

  .tsp-mobile-data-drawer input,
  .tsp-mobile-data-drawer select,
  .tsp-mobile-data-drawer textarea {
    min-height: 28px !important;
    padding: 3px 5px !important;
    font-size: 10px !important;
  }

  .tsp-mobile-data-drawer p,
  .tsp-mobile-data-drawer label,
  .tsp-mobile-data-drawer [class*="text-sm"],
  .tsp-mobile-data-drawer [class*="text-xs"] {
    font-size: 9px !important;
    line-height: 1.25 !important;
  }

  .tsp-map-toolbar,
  .tsp-map-toolbar-collapsed {
    top: auto !important;
    right: 6px !important;
    bottom: 32px !important;
  }

  .tsp-map-toolbar {
    max-height: min(58dvh, 360px) !important;
    gap: 1px !important;
    padding: 2px !important;
    border-radius: 8px !important;
  }

  .tsp-map-toolbar button,
  .tsp-map-toolbar-collapsed > button {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    border-radius: 6px !important;
    padding: 0 !important;
  }

  .tsp-map-toolbar button svg,
  .tsp-map-toolbar-collapsed > button svg {
    width: 15px !important;
    height: 15px !important;
  }

  .tsp-geolocation-control {
    top: auto !important;
    right: 6px !important;
    bottom: calc(38px + min(58dvh, 360px)) !important;
  }

  .tsp-geolocation-control button {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
  }

  .tsp-map-tool-panel:not([data-drag-active="true"]),
  .tsp-map-tool-panel-wide:not([data-drag-active="true"]),
  .tsp-coordinate-convert-panel:not([data-drag-active="true"]) {
    top: 54px !important;
    /* V119-r24: 右缘右移避开右侧地图工具栏(约57px),搜索/坐标转换面板文字不再被遮挡 */
    right: 60px !important;
    left: auto !important;
  }

  .tsp-map-tool-panel,
  .tsp-map-tool-panel-wide,
  .tsp-coordinate-convert-panel {
    width: min(70vw, 260px) !important;
    max-width: calc(100vw - 54px) !important;
    max-height: min(58dvh, 360px) !important;
    border-radius: 9px !important;
    padding: 8px !important;
    font-size: 10px !important;
  }

  .tsp-map-tool-panel h2,
  .tsp-map-tool-panel h3,
  .tsp-map-tool-panel [class*="text-lg"],
  .tsp-map-tool-panel [class*="text-base"] {
    font-size: 12px !important;
    line-height: 1.25 !important;
  }

  .tsp-map-tool-panel p,
  .tsp-map-tool-panel label,
  .tsp-map-tool-panel span,
  .tsp-map-tool-panel [class*="text-sm"],
  .tsp-map-tool-panel [class*="text-xs"] {
    font-size: 10px !important;
    line-height: 1.3 !important;
  }

  .tsp-map-tool-panel button,
  .tsp-coordinate-convert-panel button {
    min-height: 28px !important;
    border-radius: 6px !important;
    padding: 3px 6px !important;
    font-size: 10px !important;
  }

  .tsp-map-tool-panel input,
  .tsp-map-tool-panel select,
  .tsp-map-tool-panel textarea,
  .tsp-coordinate-convert-panel input,
  .tsp-coordinate-convert-panel select,
  .tsp-coordinate-convert-panel textarea {
    min-height: 28px !important;
    padding: 3px 5px !important;
    font-size: 10px !important;
  }

  .tsp-map-tool-panel textarea,
  .tsp-coordinate-convert-panel textarea {
    max-height: 92px !important;
  }

  .tsp-map-tool-panel .mb-4,
  .tsp-map-tool-panel .mb-3,
  .tsp-map-tool-panel .mb-2 {
    margin-bottom: 5px !important;
  }

  .tsp-map-tool-panel .gap-4,
  .tsp-map-tool-panel .gap-3,
  .tsp-map-tool-panel .gap-2 {
    gap: 5px !important;
  }

  .tsp-shell-popover {
    width: min(82vw, 300px) !important;
    max-height: 62dvh !important;
    border-radius: 10px !important;
    padding: 9px !important;
    font-size: 11px !important;
    /* 手机端固定在右上角顶栏下方，不随触发按钮行内定位漂移到左上角 */
    left: auto !important;
    right: 8px !important;
    top: 56px !important;
  }

  .tsp-shell-popover-arrow {
    display: none !important;
  }

  /* 意见反馈面板同样固定右上角(placeFeedback 的行内定位会被此规则覆盖) */
  .timespace-feedback-panel {
    left: auto !important;
    right: 8px !important;
    top: 56px !important;
    z-index: 1400 !important;
  }

  .timespace-feedback-arrow {
    display: none !important;
  }

  .tsp-shell-popover-title h2 {
    font-size: 14px !important;
  }

  .tsp-shell-tab {
    min-height: 30px !important;
    padding: 4px 7px !important;
    font-size: 10px !important;
  }
}

html[data-tsp-theme="light"] .tsp-map-tool-panel input,
html[data-tsp-theme="light"] .tsp-map-tool-panel select,
html[data-tsp-theme="light"] .tsp-map-tool-panel textarea {
  border-color: #aac8d0 !important;
  background: #fff !important;
  color: #243342 !important;
}

html[data-tsp-theme="light"] .tsp-map-tool-panel [class*="bg-slate-8"],
html[data-tsp-theme="light"] .tsp-map-layer-panel [class*="bg-slate-8"] {
  background-color: #e7f1f4 !important;
}

html[data-tsp-theme="light"] .tsp-raster-control {
  background: #e7f1f4;
}

html[data-tsp-theme="light"] .timespace-compliance-footer,
html[data-tsp-theme="light"] .timespace-compliance-footer a {
  color: #426472 !important;
}

html[data-tsp-theme="light"] .tsp-shell-popover-close {
  background: #e4eef2;
  color: #315867;
}

html[data-tsp-theme="light"] .tsp-shell-tab,
html[data-tsp-theme="light"] .tsp-theme-option {
  border-color: #b7cfd7;
  background: #edf5f7;
  color: #315867;
}

html[data-tsp-theme="light"] .tsp-shell-tab[aria-selected="true"],
html[data-tsp-theme="light"] .tsp-theme-option[aria-pressed="true"] {
  border-color: #0369a1;
  background: #0369a1;
  color: #fff;
}

html[data-tsp-theme="light"] .tsp-shell-tab-panel h3,
html[data-tsp-theme="light"] .tsp-shell-tab-panel h4,
html[data-tsp-theme="light"] .tsp-settings-section h3 {
  color: #0b5365;
}

html[data-tsp-theme="light"] .tsp-shell-notice {
  background: #e6f4f7;
  color: #275664;
}

@media (max-width: 640px) {
  .tsp-shell-popover {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 74px);
    padding: 14px;
  }

  .tsp-shell-popover[data-kind="settings"] {
    width: calc(100vw - 16px);
  }

  .tsp-shell-tabs {
    overflow-x: auto;
  }

  .tsp-shell-tab {
    flex: 1 0 auto;
  }

  .tsp-raster-controls {
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    gap: 6px;
  }
}

@media (max-width: 767px) and (orientation: portrait) {
  .tsp-map-toolbar {
    max-height: calc(100% - 176px) !important;
    scrollbar-width: thin;
  }

  .tsp-mobile-data-drawer button {
    min-width: 44px !important;
    min-height: 44px !important;
  }

  .tsp-mobile-data-backdrop {
    background: rgba(0, 0, 0, 0.16) !important;
  }

  .tsp-mobile-data-drawer {
    left: 6px !important;
    right: 6px !important;
    top: auto !important;
    bottom: 50px !important;
    width: auto !important;
    max-width: none !important;
    height: min(52vh, 470px) !important;
    max-height: 52vh !important;
    border: 1px solid rgba(34, 211, 238, 0.45) !important;
    border-bottom: 0 !important;
    border-radius: 14px 14px 0 0;
    overflow: hidden;
  }

  .tsp-mobile-data-drawer > div:first-child {
    min-height: 38px;
    padding: 5px 9px !important;
  }

  .tsp-mobile-data-drawer [role="tablist"] {
    margin: 4px 6px 0 !important;
    padding: 2px !important;
  }

  .tsp-mobile-data-drawer [role="tab"] {
    gap: 1px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }

  .tsp-mobile-data-drawer [role="tab"] span {
    font-size: 11px !important;
    line-height: 1.05 !important;
  }

  .tsp-mobile-data-drawer [data-radix-scroll-area-viewport] .px-3.py-4 {
    padding: 7px !important;
  }

  .tsp-mobile-data-drawer .tsp-raster-controls {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 4px !important;
    margin-top: 7px !important;
  }

  .tsp-mobile-data-drawer .tsp-raster-control {
    padding: 3px 6px 4px;
  }

  .tsp-mobile-data-drawer .tsp-raster-control > div {
    margin-bottom: 1px !important;
  }

  .tsp-mobile-data-drawer .tsp-raster-control input[type="range"] {
    height: 13px;
  }
}

@media (max-width: 1023px) and (orientation: landscape) {
  .tsp-mobile-data-drawer {
    width: min(46vw, 420px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tsp-shell-popover *,
  .tsp-shell-popover {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* 20260730: keep the embedded multi-source workbench readable at every viewport. */
.tsp-multisource-embed-header {
  display: grid !important;
  grid-template-columns: minmax(180px, 1fr) repeat(4, max-content);
  align-items: center;
}

.tsp-multisource-embed-title {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.tsp-multisource-embed-frame {
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
}

/* The status card belongs beside the right toolbar, not underneath it. */
.tsp-geolocation-status {
  right: calc(100% + 12px) !important;
  width: max-content;
  max-width: calc(100vw - 96px) !important;
  white-space: normal !important;
}

.tsp-geolocation-status > div {
  white-space: nowrap;
}

.tsp-geolocation-error {
  min-width: min(180px, calc(100vw - 96px));
}

@media (max-width: 640px) {
  .tsp-multisource-embed-backdrop {
    padding: 0 !important;
  }

  .tsp-multisource-embed-shell {
    width: 100vw !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  .tsp-multisource-embed-header {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px !important;
    padding: 6px !important;
  }

  .tsp-multisource-embed-title {
    grid-column: 1 / -1;
    padding: 0 4px !important;
    font-size: 14px;
    line-height: 20px;
  }

  .tsp-multisource-embed-header > button {
    width: 100%;
    min-width: 0;
    padding-right: 4px !important;
    padding-left: 4px !important;
    font-size: 12px;
  }
}

/* Keep V114 mobile sizing last in the cascade. */
@media (max-width: 767px) {
  .tsp-site-header-actions > .tsp-mobile-header-menu {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
  }

  .tsp-shell-popover,
  .tsp-shell-popover[data-kind="settings"] {
    width: min(82vw, 300px) !important;
    max-height: 62dvh !important;
    padding: 9px !important;
  }

  .tsp-map-toolbar {
    max-height: min(58dvh, 360px) !important;
  }

  .tsp-mobile-data-drawer button {
    min-width: 28px !important;
    min-height: 28px !important;
  }

  .tsp-mobile-data-backdrop {
    background: rgba(0, 0, 0, 0.08) !important;
  }

  .tsp-mobile-data-drawer {
    top: 90px !important;
    right: auto !important;
    bottom: auto !important;
    left: 6px !important;
    /* V119-r17: 3D模式右下角"地图图层管理/全球局部"竖排按钮列(约 left:100vw-149px)不可被抽屉遮住,
       66vw 在窄屏会伸进去;取 min 保证与按钮列至少留 8px 间隙 */
    width: min(66vw, calc(100vw - 165px)) !important;
    max-width: min(66vw, calc(100vw - 165px)) !important;
    height: 66dvh !important;
    max-height: calc(100dvh - 132px) !important;
    border: 1px solid rgba(34, 211, 238, 0.46) !important;
    border-radius: 10px !important;
  }

  .tsp-mobile-data-drawer > div:first-child {
    min-height: 30px !important;
    padding: 3px 6px !important;
  }

  .tsp-mobile-data-drawer [role="tablist"] {
    margin: 3px 4px 0 !important;
    padding: 1px !important;
  }

  .tsp-mobile-data-drawer [role="tab"] {
    min-height: 32px !important;
    gap: 1px !important;
    padding: 2px 1px !important;
  }

  .tsp-mobile-data-drawer [role="tab"] span {
    font-size: 9px !important;
  }

  .tsp-mobile-data-drawer [data-radix-scroll-area-viewport] .px-3.py-4 {
    padding: 5px !important;
  }
}

/* V119-r12 手机端聚焦缩放修复：
   iOS Safari / 钉钉等 WebView 在文本输入控件字号 <16px 时，聚焦会强制放大整页，
   且登录提交导致页面 reload 后缩放不还原，表现为“登录后界面被放大、按钮看不到”。
   将手机端所有可输入控件字号统一提升至 16px，从根源阻止聚焦自动缩放；
   复选框/单选/滑杆等非文本控件不受影响，桌面端(≥768px)布局不变。 */
@media (max-width: 767px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
  select,
  textarea {
    font-size: 16px !important;
  }
}

/* V119-r21 手机端友链卡片:图标在上、文字在下(桌面保持图标左/文字右) */
@media (max-width: 767px) {
  .tsp-friend-card > div:first-child {
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    text-align: center;
  }

  .tsp-friend-card > div:first-child > div:last-child {
    width: 100%;
  }
}

/* ============================================================
   V119-r39 白天模式全面适配(通用算法版)
   ============================================================ */
/* —— 顶栏标题:青色渐变字在白底发虚,改为实色深青 —— */
html[data-tsp-theme="light"] .tsp-site-header-title h1 {
  background-image: none !important;
  -webkit-text-fill-color: currentColor !important;
  color: #0369a1 !important;
}

/* —— 深色胶囊按钮统一转浅(顶栏登录/手册/消息等工具钮、右下"地图图层管理/2D模式/
      3D地形/全球局部/复位"、地图工具栏收起钮) —— */
html[data-tsp-theme="light"] .tsp-app-shell button[class*="bg-slate-900/95"],
html[data-tsp-theme="light"] .tsp-app-shell a[class*="bg-slate-900/95"],
html[data-tsp-theme="light"] .tsp-map-layer-mode-control button,
html[data-tsp-theme="light"] .tsp-map-toolbar-collapsed > button {
  background-color: #ffffff !important;
  border-color: #c9d8e2 !important;
  color: #0369a1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html[data-tsp-theme="light"] .tsp-app-shell button[class*="bg-slate-900/95"]:hover,
html[data-tsp-theme="light"] .tsp-app-shell button[class*="bg-slate-900/95"]:focus-visible,
html[data-tsp-theme="light"] .tsp-map-layer-mode-control button:hover {
  background-color: #e4eff7 !important;
  color: #075985 !important;
}

/* —— 顶栏工具按钮(浅色态下文字与悬浮) —— */
html[data-tsp-theme="light"] .tsp-header-utility,
html[data-tsp-theme="light"] .tsp-user-launcher[data-in-header="true"] {
  background-color: #ffffff !important;
  border-color: #c9d8e2 !important;
  color: #0369a1 !important;
}
html[data-tsp-theme="light"] .tsp-header-utility:hover,
html[data-tsp-theme="light"] .tsp-user-launcher[data-in-header="true"]:hover {
  background-color: #e4eff7 !important;
}

/* —— 顶栏消息未读红点保持,不加处理 —— */

/* —— 底部状态栏内容:省市钮/备案/坐标/天气胶囊 —— */
html[data-tsp-theme="light"] .tsp-app-shell > footer button,
html[data-tsp-theme="light"] .tsp-mobile-footer button {
  color: #0284c7 !important;
}
html[data-tsp-theme="light"] .tsp-app-shell > footer button:hover {
  background: #e4eff7 !important;
}
html[data-tsp-theme="light"] .tsp-app-shell > footer [class*="text-cyan-"],
html[data-tsp-theme="light"] .tsp-mobile-footer [class*="text-cyan-"] {
  color: #0284c7 !important;
}
html[data-tsp-theme="light"] .tsp-app-shell > footer [class*="text-slate-"],
html[data-tsp-theme="light"] .tsp-mobile-footer [class*="text-slate-"],
html[data-tsp-theme="light"] .tsp-app-shell > footer span:not([class*="bg-"]),
html[data-tsp-theme="light"] .tsp-mobile-footer span:not([class*="bg-"]) {
  color: #5b6b7a !important;
}
html[data-tsp-theme="light"] .tsp-app-shell > footer a,
html[data-tsp-theme="light"] .tsp-mobile-footer a {
  color: #5b6b7a !important;
}
html[data-tsp-theme="light"] .tsp-app-shell > footer a:hover {
  color: #0284c7 !important;
}
/* 深色坐标/天气胶囊 */
html[data-tsp-theme="light"] .tsp-app-shell > footer [class*="bg-slate-9"],
html[data-tsp-theme="light"] .tsp-app-shell > footer [class*="bg-slate-8"],
html[data-tsp-theme="light"] .tsp-mobile-footer [class*="bg-slate-9"],
html[data-tsp-theme="light"] .tsp-mobile-footer [class*="bg-slate-8"] {
  background-color: #e8f1f8 !important;
  color: #243342 !important;
}

/* —— Leaflet 控件:缩放/比例尺/属性/右键弹窗 —— */
html[data-tsp-theme="light"] .leaflet-control-zoom a {
  background-color: #ffffff !important;
  color: #0369a1 !important;
  border-color: #d4e0e8 !important;
}
html[data-tsp-theme="light"] .leaflet-control-zoom a:hover {
  background-color: #e4eff7 !important;
}
html[data-tsp-theme="light"] .leaflet-control-scale-line {
  background: rgba(255, 255, 255, 0.92) !important;
  color: #243342 !important;
  border-color: #5b6b7a !important;
  text-shadow: none !important;
}
html[data-tsp-theme="light"] .leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.93) !important;
  color: #5b6b7a !important;
}
html[data-tsp-theme="light"] .leaflet-control-attribution a {
  color: #0284c7 !important;
}
html[data-tsp-theme="light"] .leaflet-popup-content-wrapper,
html[data-tsp-theme="light"] .leaflet-popup-tip {
  background: #ffffff !important;
  color: #243342 !important;
  border: 1px solid #d4e0e8 !important;
}
html[data-tsp-theme="light"] .leaflet-popup-tip {
  border: none !important;
}
html[data-tsp-theme="light"] .leaflet-container a.leaflet-popup-close-button {
  color: #5b6b7a !important;
}

/* —— 工具面板内的下拉框/输入框(图层年份选择、搜索框、省市选择等) —— */
html[data-tsp-theme="light"] .tsp-map-tool-panel select,
html[data-tsp-theme="light"] .tsp-map-tool-panel input,
html[data-tsp-theme="light"] .tsp-map-layer-panel select,
html[data-tsp-theme="light"] .tsp-map-layer-panel input,
html[data-tsp-theme="light"] .timespace-history-timeline select,
html[data-tsp-theme="light"] .timespace-history-timeline input,
html[data-tsp-theme="light"] .tsp-coordinate-convert-panel select,
html[data-tsp-theme="light"] .tsp-coordinate-convert-panel input,
html[data-tsp-theme="light"] .tsp-data-panel select,
html[data-tsp-theme="light"] .tsp-data-panel input,
html[data-tsp-theme="light"] .tsp-data-panel textarea,
html[data-tsp-theme="light"] .tsp-mobile-data-drawer select,
html[data-tsp-theme="light"] .tsp-mobile-data-drawer input,
html[data-tsp-theme="light"] .tsp-mobile-data-drawer textarea,
html[data-tsp-theme="light"] .tsp-report-dialog select,
html[data-tsp-theme="light"] .tsp-report-dialog input,
html[data-tsp-theme="light"] .tsp-report-dialog textarea,
html[data-tsp-theme="light"] .tsp-ai-dialog select,
html[data-tsp-theme="light"] .tsp-ai-dialog input,
html[data-tsp-theme="light"] .tsp-ai-dialog textarea {
  background-color: #ffffff !important;
  color: #243342 !important;
  border-color: #d4e0e8 !important;
}
html[data-tsp-theme="light"] .timespace-history-source-select option,
html[data-tsp-theme="light"] .tsp-map-layer-panel select option,
html[data-tsp-theme="light"] .tsp-map-tool-panel select option {
  background: #ffffff !important;
  color: #243342 !important;
}

/* —— 时间轴(已由映射表转换面板底,这里修刻度按钮与活动态) —— */
html[data-tsp-theme="light"] .timespace-history-timeline button {
  color: #243342 !important;
}
html[data-tsp-theme="light"] .timespace-history-timeline .timespace-history-active button {
  background: #e4eff7 !important;
  color: #0284c7 !important;
}
html[data-tsp-theme="light"] .timespace-history-title strong {
  color: #0369a1 !important;
}

/* —— 提示浮条(toast) —— */
html[data-tsp-theme="light"] [data-sonner-toast] {
  background: #ffffff !important;
  color: #243342 !important;
  border: 1px solid #d4e0e8 !important;
  box-shadow: 0 8px 30px rgba(36, 51, 66, 0.13) !important;
}
html[data-tsp-theme="light"] [data-sonner-toast] [data-description] {
  color: #5b6b7a !important;
}

/* —— 3D 视角层级指示器与坐标读数 —— */
html[data-tsp-theme="light"] .tsp-3d-view-indicator {
  background: rgba(255, 255, 255, 0.95) !important;
  color: #243342 !important;
  border-color: #c9d8e2 !important;
  text-shadow: none !important;
}

/* —— 定位状态浮条 —— */
html[data-tsp-theme="light"] .tsp-geolocation-status {
  background: rgba(255, 255, 255, 0.97) !important;
  color: #0284c7 !important;
  border: 1px solid #c9d8e2 !important;
  box-shadow: 0 6px 24px rgba(36, 51, 66, 0.12) !important;
}
html[data-tsp-theme="light"] .tsp-geolocation-error {
  background: #fdf0f0 !important;
  color: #8a2929 !important;
  border-color: #e1b4b4 !important;
}

/* —— 报告常驻选区浮条与调整工具条 —— */
html[data-tsp-theme="light"] .tsp-report-selection-badge,
html[data-tsp-theme="light"] .tsp-report-adjust-toolbar {
  background: rgba(255, 255, 255, 0.97) !important;
  color: #243342 !important;
  border-color: #c9d8e2 !important;
  box-shadow: 0 6px 24px rgba(36, 51, 66, 0.12) !important;
}

/* —— 设置/使用说明气泡弹窗 —— */
html[data-tsp-theme="light"] .tsp-shell-popover {
  background: #ffffff !important;
  color: #243342 !important;
  border-color: #d4e0e8 !important;
}
html[data-tsp-theme="light"] .tsp-shell-popover [class*="text-slate-"] {
  color: #5b6b7a !important;
}

/* —— 地图右键菜单/私有数据弹窗文字微调(容器已由映射转换) —— */
html[data-tsp-theme="light"] .tsp-map-context-menu button {
  color: #243342 !important;
}
html[data-tsp-theme="light"] .tsp-private-map-popup,
html[data-tsp-theme="light"] .tsp-vector-fields-popup {
  color: #243342 !important;
}

/* V119-r127: 功能页签容器框加高,把整排"图标+文字"按钮包住——
   React 原生容器是 h-9(36px,为横排文字页签设计),而功能钮是竖排图标+文字(52px),
   按钮下段连同文字标签一直露在容器背景框外(生产站同样如此)。容器改自动高度,
   按钮高度+上下 padding(52+4×2=60px)完整入框;下方内容区 flex 吸收 24px 增量。 */
.tsp-data-panel [role="tablist"][class*="bg-slate-800/50"],
.tsp-mobile-data-drawer [role="tablist"][class*="bg-slate-800/50"] {
  height: auto !important;
  min-height: 60px !important;
}

/* V119-r128: 全站 text-cyan-300(浅青 #67e8f9,"多源遥感工作台"等标题/链接/强调文字
   共 63 处)整体调色——夜间改天蓝 sky-300(清爽不荧光),日间改深天蓝 sky-700
   (原浅青在浅底下几乎看不清);hover 变体(36 处)同步:夜间 sky-200/日间 sky-800。
   用精确类选择器,不影响 hover: 前缀元素的基础色。 */
html:not([data-tsp-theme="light"]) .text-cyan-300 {
  color: #7dd3fc !important;
}

html[data-tsp-theme="light"] .text-cyan-300 {
  color: #0369a1 !important;
}

html:not([data-tsp-theme="light"]) .hover\:text-cyan-300:hover {
  color: #bae6fd !important;
}

html[data-tsp-theme="light"] .hover\:text-cyan-300:hover {
  color: #075985 !important;
}

/* V119-r129: 深青底区块(bg-cyan-950/900 系,"多源遥感工作台"引导盒与图标圆底等)
   日间转浅——此前 r39 只转了 slate/violet 系,cyan 深底在日间一直是深灰块。
   用精确类选择器(斜杠转义),不碰 hover 变体元素的基础色;hover 洗底单独转浅青。 */
html[data-tsp-theme="light"] .bg-cyan-900\/50,
html[data-tsp-theme="light"] .bg-cyan-950\/30,
html[data-tsp-theme="light"] .bg-cyan-950\/50,
html[data-tsp-theme="light"] .bg-cyan-950\/60 {
  background-color: #e8f4f9 !important;
}

html[data-tsp-theme="light"] :is(.bg-cyan-900\/50, .bg-cyan-950\/30, .bg-cyan-950\/50, .bg-cyan-950\/60) [class*="text-slate-"] {
  color: #5b6b7a !important;
}

html[data-tsp-theme="light"] .hover\:bg-cyan-900\/50:hover,
html[data-tsp-theme="light"] .hover\:bg-cyan-950\/30:hover,
html[data-tsp-theme="light"] .hover\:bg-cyan-950\/50:hover,
html[data-tsp-theme="light"] .hover\:bg-cyan-950\/60:hover {
  background-color: #dceef6 !important;
}

/* —— 主按钮保持深青底白字(浅色下更清晰) —— */
/* V119-r121: 日间主色由 sky 蓝 #0284c7 换成青蓝 #0e7490(cyan-700)——
   与站点 cyan 主色同族(夜间 cyan-400 的日间对应色),浅色下更协调 */
html[data-tsp-theme="light"] .tsp-data-panel button[class*="bg-cyan-600"],
html[data-tsp-theme="light"] .tsp-mobile-data-drawer button[class*="bg-cyan-600"],
html[data-tsp-theme="light"] .tsp-report-dialog button[class*="bg-cyan-600"],
html[data-tsp-theme="light"] .tsp-ai-dialog button[class*="bg-cyan-600"] {
  background-color: #0e7490 !important;
  color: #ffffff !important;
}

/* V119-r121: 顶栏功能页签(数据/研判/多源/转换/报告/AI)——此前按 class 子串
   匹配把未选中页签也漆成实心蓝;现仅选中态实心青蓝,未选中恢复透明底灰蓝字 */
html[data-tsp-theme="light"] .tsp-data-panel button[class*="bg-cyan-600"][data-state="inactive"],
html[data-tsp-theme="light"] .tsp-mobile-data-drawer button[class*="bg-cyan-600"][data-state="inactive"] {
  background-color: transparent !important;
  color: #5b6b7a !important;
}
html[data-tsp-theme="light"] .tsp-data-panel button[class*="bg-cyan-600"][data-state="inactive"]:hover,
html[data-tsp-theme="light"] .tsp-mobile-data-drawer button[class*="bg-cyan-600"][data-state="inactive"]:hover {
  background-color: #e4eff7 !important;
}

/* —— V119-r39:Tailwind 深色 hover 态统一转浅 —— */
html[data-tsp-theme="light"] [class*="hover:bg-slate-7"]:hover,
html[data-tsp-theme="light"] [class*="hover:bg-slate-8"]:hover,
html[data-tsp-theme="light"] [class*="hover:bg-slate-9"]:hover {
  background-color: #e4eff7 !important;
}
html[data-tsp-theme="light"] [class*="hover:text-white"]:hover {
  color: #243342 !important;
}
html[data-tsp-theme="light"] [class*="hover:bg-violet-9"]:hover {
  background-color: #ece5f9 !important;
}

/* —— V119-r39:紫色系(OSGB/三维模型区块)转浅 —— */
html[data-tsp-theme="light"] [class*="bg-violet-9"] {
  background-color: #f4f0fc !important;
}
html[data-tsp-theme="light"] [class*="text-violet-"] {
  color: #5b21b6 !important;
}
html[data-tsp-theme="light"] [class*="border-violet-"] {
  border-color: #d8c9f2 !important;
}

/* —— V119-r39:影像比对工作区内部控件转浅 —— */
html[data-tsp-theme="light"] .tsp-compare-split-overlay [class*="bg-slate-8"],
html[data-tsp-theme="light"] .tsp-compare-split-overlay [class*="bg-slate-9"] {
  background-color: #ffffff !important;
}
html[data-tsp-theme="light"] .tsp-compare-split-overlay [class*="text-slate-"] {
  color: #5b6b7a !important;
}
html[data-tsp-theme="light"] .tsp-compare-split-overlay [class*="text-white"]:not([class*="bg-cyan"]):not([class*="bg-blue"]) {
  color: #243342 !important;
}
html[data-tsp-theme="light"] .tsp-compare-split-overlay [class*="border-slate-"] {
  border-color: #d4e0e8 !important;
}
html[data-tsp-theme="light"] .tsp-compare-split-overlay select,
html[data-tsp-theme="light"] .tsp-compare-split-overlay input {
  background-color: #ffffff !important;
  color: #243342 !important;
  border-color: #d4e0e8 !important;
}
html[data-tsp-theme="light"] .tsp-compare-split-overlay select option {
  background: #ffffff !important;
  color: #243342 !important;
}

/* ===== 白天模式浅色覆盖(通用算法):由 ai-workbench-v1.css 生成 ===== */
html[data-tsp-theme="light"] .tsp-ai-overlay { position:fixed; inset:0; z-index:10080; display:none; align-items:center; justify-content:center; padding:3vh 3vw; background:rgba(255, 255, 255, .4) !important }
/* V119-r121+: 补打开态——上方日间基础规则的特异性压过了 ai-workbench 的
   [data-open="true"]{display:flex},导致日间点 AI/报告按钮"没反应"(遮罩恒隐藏) */
html[data-tsp-theme="light"] .tsp-ai-overlay[data-open="true"] { display:flex }
html[data-tsp-theme="light"] .tsp-ai-dialog { width:min(1500px, 96vw); height:min(920px, 94vh); display:grid; grid-template-rows:auto minmax(0, 1fr); overflow:hidden; color:#243342 !important; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:18px; box-shadow:0 24px 56px rgba(36, 51, 66, 0.16) !important }
html[data-tsp-theme="light"] .tsp-ai-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 22px; background:#ffffff !important; border-bottom:1px solid #9cc8d8 !important }
html[data-tsp-theme="light"] .tsp-ai-title h2 { margin:0; color:#0369a1 !important; font-size:clamp(18px, 1.55vw, 26px); line-height:1.2; white-space:nowrap }
html[data-tsp-theme="light"] .tsp-ai-quota { display:flex; align-items:center; gap:10px; margin-left:auto; padding:8px 12px; color:#243342 !important; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:10px; font-size:13px }
html[data-tsp-theme="light"] .tsp-ai-close { width:42px; height:42px; color:#243342 !important; background:#f0f5f9 !important; border:0; border-radius:11px; font-size:28px; cursor:pointer }
html[data-tsp-theme="light"] .tsp-ai-nav { min-height:0; overflow-y:auto; padding:16px 12px; background:#ffffff !important; border-right:1px solid #9cc8d8 !important }
html[data-tsp-theme="light"] .tsp-ai-nav button { width:100%; display:flex; align-items:center; gap:10px; min-height:48px; margin-bottom:8px; padding:10px 12px; color:#243342 !important; text-align:left; background:#ffffff !important; border:1px solid #d4e0e8 !important; border-radius:10px; cursor:pointer }
html[data-tsp-theme="light"] .tsp-ai-nav button:hover, html[data-tsp-theme="light"] .tsp-ai-nav button[data-active="true"] { color:#243342 !important; background:#2a7895; border-color:#71d8f4 }
html[data-tsp-theme="light"] .tsp-ai-main { min-width:0; min-height:0; overflow-y:auto; padding:22px; background:#ffffff !important }
html[data-tsp-theme="light"] .tsp-ai-main h3 { margin:0 0 7px; font-size:22px; color:#243342 !important }
html[data-tsp-theme="light"] .tsp-ai-help { margin:0 0 16px; color:#243342 !important; line-height:1.65 }
html[data-tsp-theme="light"] .tsp-ai-section { margin-bottom:18px; padding:16px; background:#ffffff !important; border:1px solid #d4e0e8 !important; border-radius:13px }
html[data-tsp-theme="light"] .tsp-ai-section h4 { margin:0 0 12px; color:#0369a1 !important; font-size:17px }
html[data-tsp-theme="light"] .tsp-ai-card { position:relative; display:grid; grid-template-columns:auto minmax(0, 1fr); gap:11px; padding:13px; color:#243342 !important; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:11px }
html[data-tsp-theme="light"] .tsp-ai-thumb { grid-column:1 / -1; width:100%; height:150px; object-fit:cover; border-radius:8px; background:#ffffff !important }
html[data-tsp-theme="light"] .tsp-ai-button { min-height:40px; padding:8px 15px; color:#243342 !important; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:9px; cursor:pointer }
html[data-tsp-theme="light"] .tsp-ai-button[data-primary="true"] { color:#243342 !important; background:#2781a0; border-color:#55c4e4 }
html[data-tsp-theme="light"] .tsp-ai-button[data-danger="true"] { color:#243342 !important; border-color:#e1b4b4 !important }
html[data-tsp-theme="light"] .tsp-ai-field { display:grid; gap:6px; color:#243342 !important; font-size:13px }
html[data-tsp-theme="light"] .tsp-ai-field input, html[data-tsp-theme="light"] .tsp-ai-field select, html[data-tsp-theme="light"] .tsp-ai-field textarea { width:100%; min-height:42px; padding:9px 11px; color:#243342 !important; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:8px; outline:none }
html[data-tsp-theme="light"] .tsp-ai-status { margin:12px 0 0; padding:10px 12px; color:#243342 !important; background:#ffffff !important; border:1px solid #bcd9c8 !important; border-radius:9px }
html[data-tsp-theme="light"] .tsp-ai-status[data-kind="error"] { color:#243342 !important; background:#ffffff !important; border-color:#e1b4b4 !important }
html[data-tsp-theme="light"] .tsp-ai-empty { padding:30px 18px; text-align:center; color:#243342 !important; background:#ffffff !important; border:1px dashed #9cc8d8 !important; border-radius:11px }
html[data-tsp-theme="light"] .tsp-ai-report h1 { margin-top:0; padding-bottom:10px; border-bottom:2px solid #9cc8d8 !important }
html[data-tsp-theme="light"] .tsp-ai-table th, html[data-tsp-theme="light"] .tsp-ai-table td { padding:9px 8px; text-align:left; border-bottom:1px solid #d4e0e8 !important; vertical-align:top }
html[data-tsp-theme="light"] .tsp-ai-table th { color:#0369a1 !important }
html[data-tsp-theme="light"] .tsp-ai-policy-card { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:9px; padding:12px; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:10px }
html[data-tsp-theme="light"] .tsp-ai-admin-control input { width:72px; min-height:38px; padding:7px 8px; color:#243342 !important; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:8px }
html[data-tsp-theme="light"] .tsp-ai-progress { margin-top:14px; padding:15px; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:11px }
html[data-tsp-theme="light"] .tsp-ai-progress-phase, html[data-tsp-theme="light"] .tsp-ai-progress-meta { margin:7px 0; color:#243342 !important }
html[data-tsp-theme="light"] .tsp-ai-progress-track { height:10px; overflow:hidden; background:#ffffff !important; border:1px solid #9cc8d8 !important; border-radius:999px }
html[data-tsp-theme="light"] .tsp-ai-progress[data-status="failed"] { border-color:#e1b4b4 !important }
html[data-tsp-theme="light"] .tsp-ai-progress[data-status="succeeded"] { border-color:#bcd9c8 !important }
html[data-tsp-theme="light"] .tsp-ai-progress-error { margin-top:10px; padding:9px 11px; color:#243342 !important; background:#ffffff !important; border-radius:8px }
html[data-tsp-theme="light"] .tsp-ai-pill { display:inline-flex; align-items:center; padding:3px 8px; margin:2px; color:#243342 !important; background:#1e4255; border-radius:999px; font-size:12px }
html[data-tsp-theme="light"] .tsp-ai-privacy { margin-top:14px; padding:10px 12px; color:#243342 !important; background:#ffffff !important; border:1px solid #d4e0e8 !important; border-radius:8px; font-size:13px; line-height:1.55 }
html[data-tsp-theme="light"] .tsp-ai-map-tip { position:fixed; z-index:10120; left:50%; top:88px; transform:translateX(-50%); padding:11px 16px; color:#243342 !important; background:#ffffff !important; border:1px solid #66d5f3; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.4) }
@media (max-width: 820px) {
html[data-tsp-theme="light"] .tsp-ai-nav { display:flex; gap:7px; overflow-x:auto; padding:8px; border-right:0; border-bottom:1px solid #9cc8d8 !important }
}

/* ===== 白天模式浅色覆盖(通用算法):由 report-timeseries-v1.css 生成 ===== */
html[data-tsp-theme="light"] .tsp-report-overlay { position:fixed; inset:0; z-index:2300; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(255, 255, 255, 0.72) !important }
/* V119-r121+: 同 AI 遮罩——补打开态,否则日间打不开 */
html[data-tsp-theme="light"] .tsp-report-overlay[data-open="true"] { display:flex }
html[data-tsp-theme="light"] .tsp-report-dialog { width:min(940px, 96vw); max-height:92vh; overflow:hidden; border:1px solid rgba(34, 211, 238, 0.45); border-radius:16px; background:#ffffff !important; color:#243342 !important; box-shadow:0 28px 80px rgba(2, 6, 23, 0.72) }
html[data-tsp-theme="light"] .tsp-report-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 22px; border-bottom:1px solid #d4e0e8 !important; background:#ffffff !important }
html[data-tsp-theme="light"] .tsp-report-header h2 { margin:0; color:#0369a1 !important; font-size:20px }
html[data-tsp-theme="light"] .tsp-report-close { width:34px; height:34px; border:0; border-radius:9px; background:#ffffff !important; color:#243342 !important; font-size:24px; cursor:pointer }
html[data-tsp-theme="light"] .tsp-report-section { margin-bottom:16px; padding:16px; border:1px solid #d4e0e8 !important; border-radius:12px; background:#ffffff !important }
html[data-tsp-theme="light"] .tsp-report-section h3 { margin:0 0 12px; color:#243342 !important; font-size:17px }
html[data-tsp-theme="light"] .tsp-report-progress[data-kind="error"] { color:#243342 !important }
html[data-tsp-theme="light"] .tsp-report-progress[data-kind="success"] { color:#243342 !important }
html[data-tsp-theme="light"] .tsp-report-selection-source { margin:8px 0; color:#0369a1 !important; font-size:13px; line-height:1.6 }
html[data-tsp-theme="light"] .tsp-report-button { min-height:38px; padding:8px 16px; border:1px solid #d4e0e8 !important; border-radius:9px; background:#ffffff !important; color:#243342 !important; font-size:14px; cursor:pointer }
html[data-tsp-theme="light"] .tsp-report-button:hover { border-color:#22d3ee; color:#0369a1 !important }
html[data-tsp-theme="light"] .tsp-report-button[data-primary="true"] { border-color:#9cc8d8 !important; background:#0891b2; color:#243342 !important }
html[data-tsp-theme="light"] .tsp-report-area-picker { margin-top:14px; padding:12px; border:1px solid #d4e0e8 !important; border-radius:10px; background:#ffffff !important }
html[data-tsp-theme="light"] .tsp-report-area-picker-title { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#0369a1 !important }
html[data-tsp-theme="light"] .tsp-report-area-card { display:flex; min-width:0; flex-direction:column; align-items:flex-start; gap:6px; padding:12px; border:1px solid #d4e0e8 !important; border-radius:9px; background:#ffffff !important; color:#94a3b8; font-size:12px; line-height:1.45 }
html[data-tsp-theme="light"] .tsp-report-area-card strong { max-width:100%; overflow-wrap:anywhere; color:#243342 !important; font-size:13px }
html[data-tsp-theme="light"] .tsp-report-field { display:flex; flex-direction:column; gap:6px; color:#243342 !important; font-size:13px }
html[data-tsp-theme="light"] .tsp-report-field input, html[data-tsp-theme="light"] .tsp-report-field select { min-height:40px; padding:8px 10px; border:1px solid #d4e0e8 !important; border-radius:8px; outline:none; background:#ffffff !important; color:#243342 !important }
html[data-tsp-theme="light"] .tsp-report-template { margin-top:16px; padding-top:14px; border-top:1px solid #d4e0e8 !important }
html[data-tsp-theme="light"] .tsp-report-template h4 { margin:0 0 12px; color:#0369a1 !important; font-size:15px }
html[data-tsp-theme="light"] .tsp-report-source-group { max-height:290px; overflow:auto; padding:12px; border:1px solid #d4e0e8 !important; border-radius:10px; background:#ffffff !important }
html[data-tsp-theme="light"] .tsp-report-source-group strong { display:block; margin-bottom:8px; color:#0369a1 !important; font-size:14px }
html[data-tsp-theme="light"] .tsp-report-source-option { display:flex; align-items:flex-start; gap:8px; padding:5px 0; color:#243342 !important; font-size:12px; line-height:1.35 }
html[data-tsp-theme="light"] .tsp-report-preview { display:block; width:100%; height:auto; margin-top:12px; border:1px solid #d4e0e8 !important; background:#fff }
html[data-tsp-theme="light"] .tsp-report-map-tip { position:fixed; left:50%; top:92px; z-index:2400; transform:translateX(-50%); padding:10px 16px; border:1px solid #22d3ee; border-radius:9px; background:#ffffff !important; color:#243342 !important; box-shadow:0 12px 30px rgba(2, 6, 23, 0.55); font-size:13px }
html[data-tsp-theme="light"] .tsp-report-map-tip-cancel { margin-left:12px; padding:2px 10px; border:1px solid rgba(34, 211, 238, 0.55); border-radius:6px; background:rgba(8, 47, 73, 0.65); color:#243342 !important; font:inherit; font-size:12px; cursor:pointer }
html[data-tsp-theme="light"] .tsp-report-adjust-toolbar { position:fixed; left:50%; top:88px; z-index:2450; display:flex; align-items:center; gap:12px; transform:translateX(-50%); max-width:min(92vw, 820px); padding:9px 12px; border:1px solid #22d3ee; border-radius:10px; background:rgba(255, 255, 255, 0.96) !important; color:#243342 !important; box-shadow:0 12px 30px rgba(2, 6, 23, 0.58); font-size:12px }
html[data-tsp-theme="light"] .tsp-report-aoi-move-handle > span { display:flex; align-items:center; justify-content:center; width:44px; height:26px; border:1px solid #cffafe; border-radius:13px; background:#0e7490; color:#243342 !important; box-shadow:0 4px 12px rgba(2, 6, 23, 0.65); cursor:move; font-size:11px; font-weight:700 }
html[data-tsp-theme="light"] .tsp-image-viewer { position:fixed; inset:0; z-index:3000; display:flex; flex-direction:column; background:rgba(255, 255, 255, 0.93) !important }
html[data-tsp-theme="light"] .tsp-image-viewer-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:8px 12px; background:rgba(255, 255, 255, 0.97) !important; border-bottom:1px solid rgba(103, 232, 249, 0.28); color:#243342 !important }
html[data-tsp-theme="light"] .tsp-image-viewer-btn { min-width:34px; height:30px; padding:0 10px; border-radius:6px; border:1px solid rgba(103, 232, 249, 0.35); background:#ffffff !important; color:#0369a1 !important; font-size:14px; line-height:1; cursor:pointer }
html[data-tsp-theme="light"] .tsp-image-viewer-zoom { min-width:46px; text-align:center; font-size:12px; color:#243342 !important }
html[data-tsp-theme="light"] .tsp-image-viewer-close { width:34px; height:30px; border-radius:6px; border:1px solid rgba(248, 113, 113, 0.5); background:#ffffff !important; color:#243342 !important; font-size:16px; line-height:1; cursor:pointer }
html[data-tsp-theme="light"] .tsp-image-viewer-hint { margin:0; padding:6px 12px; text-align:center; font-size:12px; color:#94a3b8; background:rgba(255, 255, 255, 0.97) !important; border-top:1px solid rgba(103, 232, 249, 0.18) }

/* ===== 白天模式浅色覆盖(通用算法):由 compare-public-v1.css 生成 ===== */
html[data-tsp-theme="light"] .tsp-compare-map-toolbar { position:absolute; top:12px; left:50%; z-index:1100; display:flex; align-items:center; gap:8px; width:max-content; max-width:calc(100% - 24px); flex-wrap:nowrap; padding:7px 9px; border:1px solid rgba(34, 211, 238, 0.42); border-radius:12px; color:#243342 !important; background:#ffffff !important; box-shadow:0 10px 26px rgba(36, 51, 66, 0.13) !important; transform:translateX(-50%); font-family:system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif }
html[data-tsp-theme="light"] .tsp-compare-map-toolbar button { min-height:32px; padding:5px 10px; border:1px solid rgba(148, 163, 184, 0.38); border-radius:7px; color:#243342 !important; background:#ffffff !important; font-size:12px; font-weight:700; white-space:nowrap; flex:0 0 auto; cursor:pointer }
html[data-tsp-theme="light"] .tsp-compare-live-mode-switch { display:grid; flex:0 0 auto; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:4px; padding:3px; border:1px solid rgba(34, 211, 238, 0.22); border-radius:9px; background:#ffffff !important }
html[data-tsp-theme="light"] .tsp-compare-map-toolbar .tsp-compare-live-mode-button { border:0; color:#243342 !important; background:transparent }
html[data-tsp-theme="light"] .tsp-compare-live-field { display:grid; width:min(420px, 100%); min-width:0; grid-template-columns:auto minmax(0, 1fr); align-items:center; justify-self:center; gap:7px; padding:7px 9px; border:1px solid rgba(34, 211, 238, 0.42); border-radius:10px; color:#243342 !important; background:#ffffff !important; box-shadow:0 8px 22px rgba(0, 0, 0, 0.34); font-size:12px; font-weight:700; pointer-events:auto }
html[data-tsp-theme="light"] .tsp-compare-live-field select { width:100%; min-width:0; height:34px; padding:4px 7px; overflow:hidden; border:1px solid rgba(148, 163, 184, 0.42); border-radius:7px; color:#243342 !important; background:#ffffff !important; font:700 12px/1.2 system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif; text-overflow:ellipsis }
html[data-tsp-theme="light"] .tsp-compare-live-annotation-toggle { position:absolute; bottom:50%; left:50%; min-height:34px; padding:5px 10px; border:1px solid rgba(148, 163, 184, 0.42); border-radius:999px; color:#243342 !important; background:#ffffff !important; box-shadow:0 8px 22px rgba(0, 0, 0, 0.34); font:700 11px/1.2 system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif; white-space:nowrap; pointer-events:auto; transform:translate(-50%, 50%); cursor:pointer }
html[data-tsp-theme="light"] .tsp-compare-live-status { flex:0 0 auto; color:#243342 !important; font-size:12px; white-space:nowrap }
html[data-tsp-theme="light"] .tsp-compare-map-label { position:absolute; top:66px; z-index:1080; max-width:min(42%, 300px); padding:6px 10px; overflow:hidden; border:1px solid rgba(34, 211, 238, 0.36); border-radius:8px; color:#243342 !important; background:rgba(255, 255, 255, 0.82) !important; font:700 12px/1.3 system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif; text-overflow:ellipsis; white-space:nowrap; pointer-events:none }
html[data-tsp-theme="light"] .tsp-compare-split-map { position:relative; min-width:0; height:100%; background:#ffffff !important }
@media (max-width: 760px) {
html[data-tsp-theme="light"] .tsp-compare-live-status { position:absolute; top:100%; left:50%; padding:3px 7px; border-radius:0 0 7px 7px; background:#ffffff !important; text-align:center; transform:translateX(-50%) }
}

/* ===== 白天模式浅色覆盖(通用算法):由 page-bootstrap-no-inline-style-v1.css 生成 ===== */
html[data-tsp-theme="light"] .timespace-history-timeline { position:absolute; left:50%; bottom:72px; z-index:1001; width:min(1240px, calc(100% - 180px)); min-width:420px; transform:translateX(-50%); padding:10px 12px; border:1px solid rgba(34, 211, 238, 0.34); border-radius:8px; background:rgba(255, 255, 255, 0.82) !important; box-shadow:0 14px 40px rgba(36, 51, 66, 0.14) !important; backdrop-filter:blur(12px); color:#243342 !important; overscroll-behavior:contain; pointer-events:auto; cursor:grab; touch-action:none }
html[data-tsp-theme="light"] .timespace-history-title strong { font-size:13px; color:#0369a1 !important; line-height:1.1 }
html[data-tsp-theme="light"] .timespace-history-active { display:flex; align-items:center; gap:8px; color:#243342 !important; font-size:13px; font-weight:700; white-space:nowrap }
html[data-tsp-theme="light"] .timespace-history-active button { width:26px; height:26px; border-radius:6px; background:#0f2a3f; color:#243342 !important; border:1px solid rgba(148, 163, 184, 0.22) }
html[data-tsp-theme="light"] .timespace-history-source-select { width:130px; border:1px solid rgba(148, 163, 184, 0.24); border-radius:6px; background:rgba(255, 255, 255, 0.9) !important; color:#243342 !important; font-size:12px; padding:5px 7px }
html[data-tsp-theme="light"] .timespace-history-close { flex:0 0 26px; width:26px; height:26px; border:1px solid rgba(148, 163, 184, 0.22); border-radius:6px; background:#0f2a3f; color:#243342 !important; font-size:18px; line-height:1 }
html[data-tsp-theme="light"] .timespace-history-source-select-panel { width:100% !important; min-height:38px; color:#243342 !important !important; background:rgba(255, 255, 255, 0.96) !important !important; border-color:rgba(103, 232, 249, 0.34) !important }
html[data-tsp-theme="light"] .timespace-feedback-panel { background:rgba(255, 255, 255, 0.98) !important !important; color:#243342 !important !important; border-color:rgba(103, 232, 249, 0.65) !important; box-shadow:0 18px 55px rgba(0, 0, 0, 0.55), 0 0 36px rgba(6, 182, 212, 0.28) !important }
html[data-tsp-theme="light"] .timespace-feedback-arrow { background:rgba(255, 255, 255, 0.98) !important !important; border-color:rgba(103, 232, 249, 0.65) !important }
html[data-tsp-theme="light"] .timespace-compliance-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:4px 9px; color:#243342 !important; font-size:12px; line-height:1.7; text-align:center }
html[data-tsp-theme="light"] .timespace-compliance-footer a { color:#0369a1 !important; text-decoration:none }
html[data-tsp-theme="light"] .timespace-compliance-footer a:hover { color:#243342 !important; text-decoration:underline }
html[data-tsp-theme="light"] .timespace-compliance-badge { border:1px solid rgba(148, 163, 184, 0.5); border-radius:4px; padding:0 4px; color:#243342 !important }
html[data-tsp-theme="light"] .timespace-history-ticks button { min-width:44px; height:22px; border-radius:5px; border:1px solid rgba(148, 163, 184, 0.2); background:rgba(255, 255, 255, 0.78) !important; color:#94a3b8; font-size:10px; line-height:1; white-space:nowrap }
html[data-tsp-theme="light"] .timespace-history-ticks button[aria-pressed="true"] { border-color:#67e8f9; background:#0891b2; color:#243342 !important; box-shadow:0 0 16px rgba(6, 182, 212, 0.36) }
html[data-tsp-theme="light"] .timespace-convert-panel textarea, html[data-tsp-theme="light"] .timespace-convert-panel input, html[data-tsp-theme="light"] .timespace-convert-panel select, html[data-tsp-theme="light"] textarea[class*="bg-slate-900/60"], html[data-tsp-theme="light"] input[class*="bg-slate-900/60"], html[data-tsp-theme="light"] select[class*="bg-slate-900/60"] { width:100%; box-sizing:border-box; border:1px solid rgba(103, 232, 249, 0.34) !important; border-radius:8px; background:rgba(255, 255, 255, 0.96) !important !important; color:#243342 !important !important; caret-color:#0369a1 !important; outline:none; box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.04) }
html[data-tsp-theme="light"] .timespace-convert-panel textarea::placeholder, html[data-tsp-theme="light"] .timespace-convert-panel input::placeholder, html[data-tsp-theme="light"] textarea[class*="bg-slate-900/60"]::placeholder, html[data-tsp-theme="light"] input[class*="bg-slate-900/60"]::placeholder { color:#0369a1 !important; opacity:0.76 }
html[data-tsp-theme="light"] .timespace-convert-panel select option, html[data-tsp-theme="light"] select[class*="bg-slate-900/60"] option { background:#ffffff !important; color:#243342 !important }
@media (max-width: 1023px) {
html[data-tsp-theme="light"] .tsp-mobile-data-drawer { width:min(92vw, 420px) !important; max-width:420px !important; background:#ffffff !important !important }
html[data-tsp-theme="light"] .tsp-map-toolbar { max-height:calc(100% - 72px); padding:4px !important; gap:2px !important; background:rgba(255, 255, 255, 0.98) !important !important }
html[data-tsp-theme="light"] .tsp-map-tool-panel, html[data-tsp-theme="light"] .tsp-map-tool-panel-wide { top:56px; left:8px; right:58px; width:auto; max-height:calc(100% - 66px); padding:12px !important; background:rgba(255, 255, 255, 0.98) !important !important }
}
/* V119-r39 白天模式全面适配结束 */

/* ============================================================
   V119-r38 白天模式补充:自制吐司 / sonner吐司 / 层级控件 / 坐标读数
   ============================================================ */

/* 自制数据操作吐司(原深青底) */
html[data-tsp-theme="light"] .tsp-private-data-toast {
  background: rgba(255, 255, 255, 0.97) !important;
  color: #243342 !important;
  border-color: #c9d8e2 !important;
  box-shadow: 0 10px 28px rgba(36, 51, 66, 0.14) !important;
}
html[data-tsp-theme="light"] .tsp-private-data-toast[data-kind="error"] {
  background: #fff2f2 !important;
  color: #8a2929 !important;
  border-color: #e1b4b4 !important;
}

/* sonner 吐司:库内嵌 dark 主题变量(--normal-bg:#000),日间下强制浅色 */
html[data-tsp-theme="light"] [data-sonner-toast][data-styled="true"] {
  background: #ffffff !important;
  border-color: #d4e0e8 !important;
  color: #243342 !important;
  box-shadow: 0 8px 26px rgba(36, 51, 66, 0.14) !important;
}
html[data-tsp-theme="light"] [data-sonner-toast] [data-title] { color: #243342 !important; }
html[data-tsp-theme="light"] [data-sonner-toast] [data-description] { color: #5b6b7a !important; }
html[data-tsp-theme="light"] [data-sonner-toast] [data-button] {
  color: #ffffff !important;
  background: #0369a1 !important;
}
html[data-tsp-theme="light"] [data-sonner-toast] [data-close-button] {
  background: #ffffff !important;
  border-color: #d4e0e8 !important;
  color: #5b6b7a !important;
}

/* 地图层级显示控件(L10/比例尺角标) */
html[data-tsp-theme="light"] .timespace-zoom-level-control {
  background-color: rgba(255, 255, 255, 0.94) !important;
  color: #243342 !important;
  border-color: #c9d8e2 !important;
}
html[data-tsp-theme="light"] .timespace-zoom-level-control * {
  background-color: transparent !important;
  color: inherit !important;
}

/* 3D 坐标读数条 */
html[data-tsp-theme="light"] .tsp-three-d-coordinate-readout {
  background: rgba(255, 255, 255, 0.94) !important;
  color: #243342 !important;
  border-color: #c9d8e2 !important;
  text-shadow: none !important;
}

/* V119-r101-U13(演示)/V119-r112:移动端展开菜单六个图标方块统一加文字微标并统一 44px。
   旧版按 aria-label 匹配,设置/反馈的标签因自建按钮 aria 不同而丢失(仅"说明"44px,其余42px)。
   不满意删除本块即可。 */
@media (max-width: 767px) {
  .tsp-site-header-actions[data-mobile-open="true"] .tsp-header-icon-btn,
  .tsp-site-header-actions[data-mobile-open="true"] .tsp-mobile-menu-icon {
    flex-direction: column;
    gap: 2px;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }

  .tsp-site-header-actions[data-mobile-open="true"] [data-testid="site-message-trigger"]::after {
    content: "消息";
  }

  .tsp-site-header-actions[data-mobile-open="true"] [data-testid="site-manual-download"]::after {
    content: "手册";
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-mobile-menu-icon[data-testid="site-help-trigger"]::after {
    content: "说明";
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-mobile-menu-icon[data-testid="site-settings-trigger"]::after {
    content: "设置";
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-mobile-menu-icon[data-testid="site-feedback-trigger"]::after {
    content: "反馈";
  }

  .tsp-site-header-actions[data-mobile-open="true"] .tsp-header-icon-btn::after,
  .tsp-site-header-actions[data-mobile-open="true"] .tsp-mobile-menu-icon::after {
    font-size: 9px;
    line-height: 1;
    color: inherit;
    opacity: 0.75;
  }
}
