/* 道威斯顿报告中心 V4.0 - 样式（V4.49：Google 产品级色板精确对齐）
   色彩体系（基于 Google 官方三层色彩构成研究）：
   ① 品牌 UI 层 —— Google Blue #0B57D0（Google 官方产品主操作色，见
      Google Identity Services 品牌规范 filled_blue），hover 深 #0842A0，
      淡容器 #E8F0FE / #D2E3FC（Google 蓝 100）
   ② 中性灰阶 —— 全部采用 Google 产品灰（Search/Gmail/Account 同款）：
      底 #F8F9FA / 表头 #F1F3F4 / 分隔线 #E8EAED / 描边 #DADCE0 /
      正文 #202124 / 次级 #5F6368 / 弱化 #9AA0A6 / 页脚 #202124
   ③ 状态点缀 —— Google 官方语义色：绿 #188038·#E6F4EA / 黄 #E37400·#FEF7E0 /
      红 #D93025·#FCE8E6 / 紫 #8430CE·#F3E8FD（仅徽章/横幅等小面积点缀）
   形状沿用 Material 3 Expressive（2025-05 I/O 发布，Google 最新设计语言）：
   胶囊按钮 / 面板 14px / 弹窗 18px / 柔和双层阴影
   双显示模式：html.mode-2k（2560×1440 横屏）/ html.mode-1080（1920×1080 横屏），自动检测
   双主题：默认白天 / html.theme-dark 黑夜（按本地时间 18:00~06:00 自动识别） */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: system-ui, -apple-system, "Segoe UI", "PingFang SC",
    "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
  background: var(--dw-bg); color: var(--dw-text-main); font-size: 14px; padding-top: 90px; }

:root {
  /* 品牌色（Google 产品级 UI 色，非 Logo 四色 #4285F4，也非 M3 基线紫 #6750A4） */
  --dw-blue: #0b57d0;        /* Google Blue（产品主操作色，Google Identity 规范同款） */
  --dw-blue-dark: #0842a0;   /* hover 深蓝（Google Blue 900） */
  --dw-blue-light: #e8f0fe;  /* 蓝色淡容器（Google 搜索结果页 hover 同款） */
  --dw-blue-text: #0b57d0;   /* 文字用蓝（暗色下提亮） */
  /* 表面与文字（Google 产品灰阶，Search/Gmail/Account 同款） */
  --dw-bg: #f8f9fa;          /* 页面底色（Google Grey 50） */
  --dw-surface: #ffffff;     /* 面板/卡片 */
  --dw-surface-2: #f1f3f4;   /* 次级表面（Google Grey 100，表头/卡片底） */
  --dw-border: #dadce0;      /* 输入框描边（Google Grey 300） */
  --dw-line: #e8eaed;        /* 常规分隔线（Google Grey 200） */
  --dw-text-main: #202124;   /* 主文字（Google Grey 900） */
  --dw-text-2: #5f6368;      /* 次级文字（Google Grey 600） */
  --dw-text-3: #9aa0a6;      /* 弱文字（Google Muted） */
  --dw-header-bg: #ffffff;   /* 头部底色 */
  --dw-header-shadow: 0 1px 2px rgba(32,33,36,.06), 0 4px 16px rgba(32,33,36,.06);
  --dw-panel-shadow: 0 1px 2px rgba(32,33,36,.04), 0 8px 24px rgba(32,33,36,.06);
  --dw-chip-bg: #e8f0fe;     /* chip 底（Google 蓝容器） */
  --dw-chip-border: #d2e3fc; /* 蓝描边（Google 蓝 100） */
  --dw-chip-text: #174ea6;
  --dw-iframe-border: #dadce0;
  /* 常量 */
  --dw-footer: #202124;      /* footer Google Grey 900 */
  --dw-copyright: #161616;   /* 版权条 Google Grey 950 */
}

/* ---- 黑夜主题（18:00~06:00 自动）—— Google 官方深色模式色板（Search/Gmail Dark 同款） ---- */
html.theme-dark { color-scheme: dark;
  --dw-blue-text: #8ab4f8;   /* Google 深色模式链接蓝 */
  --dw-blue-light: #1d2b45;
  --dw-bg: #202124;          /* Google Dark 页面底（Grey 900） */
  --dw-surface: #303134;     /* Google Dark 卡片面 */
  --dw-surface-2: #3c4043;   /* Google Dark 悬浮/表头（Grey 800） */
  --dw-border: #5f6368;      /* Google Grey 600 */
  --dw-line: #3c4043;
  --dw-text-main: #e8eaed;   /* Google Dark 主文字 */
  --dw-text-2: #9aa0a6;      /* Google Dark 次级文字 */
  --dw-text-3: #9aa0a6;
  --dw-header-bg: #202124;
  --dw-header-shadow: 0 1px 2px rgba(0,0,0,.5), 0 4px 16px rgba(0,0,0,.4);
  --dw-panel-shadow: 0 1px 2px rgba(0,0,0,.35), 0 8px 24px rgba(0,0,0,.35);
  --dw-chip-bg: #1d2b45;
  --dw-chip-border: #32486b;
  --dw-chip-text: #a9c7f5;
  --dw-iframe-border: #5f6368;
}

/* ================= 顶部（复刻 tools.doweston.cn #header） ================= */
.dw-header { position: fixed; top: 0; left: 0; width: 100%; height: 90px;
  background-color: var(--dw-header-bg); z-index: 999; box-shadow: var(--dw-header-shadow); }
.dw-header-in { position: relative; max-width: 1856px; height: 90px; line-height: 90px;
  margin: 0 auto; padding: 0 32px; }
.dw-logo { position: absolute; left: 32px; top: 0; z-index: 1; }
.dw-logo img { width: 220px; vertical-align: middle; }
.dw-title { position: absolute; left: 0; right: 0; text-align: center;
  font-size: 24px; color: var(--dw-blue-text); font-weight: bold; letter-spacing: 1px;
  pointer-events: none; }
.dw-nav { position: absolute; right: 32px; top: 0; bottom: 0; z-index: 1; display: flex; align-items: center; }
.dw-nav a { font-size: 16px; margin-left: 36px; color: var(--dw-blue-text);
  text-decoration: none; transition: opacity .15s; }
.dw-nav a:hover { opacity: .75; }
.dw-nav a.active { font-weight: bold; border-bottom: 3px solid var(--dw-blue-text); }
/* 主题切换（「设置」旁）：☀/☾ 双按钮，默认跟随时间，点击锁定，再点已锁定的恢复自动 */
.dw-theme-group { display: flex; margin-left: 20px; border: 1px solid var(--dw-chip-border);
  border-radius: 18px; overflow: hidden; flex: none; }
.dw-theme-ico { width: 40px; height: 36px; border: none; background: var(--dw-chip-bg);
  color: var(--dw-blue-text); cursor: pointer; font-size: 15px; line-height: 1;
  transition: all .15s; font-family: inherit; }
.dw-theme-ico + .dw-theme-ico { border-left: 1px solid var(--dw-chip-border); }
.dw-theme-ico:hover:not(.active) { background: var(--dw-blue-light); }
.dw-theme-ico.active { background: var(--dw-blue); color: #ffffff; }
/* 2K 模式：头部内容与主区同宽对齐 */
html.mode-2k .dw-header-in { max-width: 2464px; padding: 0 40px; }
html.mode-2k .dw-logo { left: 40px; }
html.mode-2k .dw-nav { right: 40px; }

/* ================= 底部（复刻 #footer / #copyright） ================= */
/* V4.45.2 对齐修正：页脚/版权条与头部、主区共用同一对齐体系——
   同 max-width 容器居中 + 容器内统一安全边距（不再外层 padding + 内层居中的双重偏移） */
.dw-footer { position: relative; padding: 50px 0; background-color: var(--dw-footer);
  color: #ffffff; margin-top: 32px; }
.dw-footer-in { position: relative; max-width: 1856px; margin: 0 auto; padding: 0 32px;
  display: flex; align-items: flex-start; flex-wrap: wrap; }
.dw-f1 { width: 620px; max-width: 100%; }
.dw-f1 .dw-flogo { margin: 6px 0 24px 0; }
.dw-f1 .dw-flogo img { width: 210px; }
.dw-f1 .dw-ftext { font-size: 14px; line-height: 24px; color: #d5d5d5; max-width: 560px; }
.dw-f2 { margin-left: 15.4%; width: 180px; }
.dw-f3 { margin-left: auto; width: 260px; }
.dw-ft1 { padding-top: 20px; font-size: 16px; line-height: 40px; font-weight: bold; }
.dw-f2 .dw-ft2 { font-size: 14px; line-height: 28px; }
.dw-f2 .dw-ft2 a { color: #c9c9c9; text-decoration: none; }
.dw-f2 .dw-ft2 a:hover { color: #ffffff; }
.dw-f3 .dw-ft3 { font-size: 16px; line-height: 28px; font-weight: bold; }
.dw-f3 .dw-ft4 { font-size: 14px; line-height: 28px; color: #c9c9c9; }
.dw-copyright { position: relative; background-color: var(--dw-copyright); padding: 14px 0; }
.dw-cp-in { max-width: 1856px; margin: 0 auto; padding: 0 32px; font-size: 14px; line-height: 24px;
  color: #7f7e7e; display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.dw-cp-in a { color: #7f7e7e; text-decoration: none; }
.dw-cp-in a:hover { color: #a5a4a4; }
.dw-cp-links { margin-left: auto; }

/* ================= 布局：双显示模式 ================= */
/* 默认按 1080P 横屏（1920×1080）设计；html.mode-2k 切换 2K 横屏（2560×1440） */
.main { max-width: 1856px; margin: 20px auto 0; padding: 0 32px; }
.main.narrow { max-width: 1240px; }
/* 左栏自适应吃满剩余宽度；右栏 PDF 预览封顶、窄屏自动收缩 */
.gen-layout { display: grid; grid-template-columns: minmax(440px, 1fr) minmax(340px, 940px);
  gap: 20px; align-items: start; }
.preview-col .panel { position: sticky; top: 106px; display: flex; flex-direction: column;
  height: calc(100vh - 130px); min-height: 700px; }
/* 证书预览：V4.64 自适应方案——预览框吃满右栏宽度（不锁死），
   高度按 A4 比例随宽联动 + 封顶视口；PDF 用浏览器原生查看器的
   顶部工具栏自缩放（FitH），充满整个预览框，不再四周留白 */
.preview-col .panel iframe {
  display: block; flex: none;
  width: 100%;                                /* 吃满右栏（V4.64 不再按 0.7071 锁宽） */
  aspect-ratio: 210 / 297;                    /* 高随宽联动，A4 竖版 */
  max-height: calc(100vh - 250px);            /* 封顶视口（标题+工具条+表格区避让） */
  min-height: 420px;
  border: 1px solid var(--dw-iframe-border); border-radius: 8px; background: #ffffff; }
/* 预览高度被视口封顶时，宽度随之收窄并水平居中（保持 A4 比例无留白） */
@supports (aspect-ratio: 1) {
  .preview-col .panel iframe { margin: 0 auto; }
}
.opt-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.opt-layout .panel:last-child { grid-column: 1 / -1; }

/* ---- 2K 横屏模式（2560×1440）：满幅 2464px、更大留白与字号 ---- */
html.mode-2k body { font-size: 15px; }
html.mode-2k .main { max-width: 2464px; padding: 0 40px; }
html.mode-2k .gen-layout { grid-template-columns: minmax(520px, 1fr) minmax(340px, 1100px); gap: 24px; }
html.mode-2k .panel { padding: 20px 26px; }
html.mode-2k .opt-grid { grid-template-columns: repeat(8, 1fr); }
html.mode-2k .search-form input { width: 460px; }
html.mode-2k .preview-col .panel iframe { max-height: calc(100vh - 260px); }
html.mode-2k .dw-footer-in, html.mode-2k .dw-cp-in { max-width: 2464px; padding: 0 40px; }

/* ---- 4K 横屏模式（≥3400px，如 3840×2160）：更大字号、留白与预览 ---- */
html.mode-4k body { font-size: 17px; }
html.mode-4k .dw-title { font-size: 30px; }
html.mode-4k .dw-nav a { font-size: 19px; margin-left: 44px; }
html.mode-4k .dw-header-in, html.mode-4k .dw-footer-in, html.mode-4k .dw-cp-in { max-width: 3552px; }
html.mode-4k .main { max-width: 3552px; padding: 0 56px; }
html.mode-4k .dw-header-in { padding: 0 56px; }
html.mode-4k .dw-logo { left: 56px; }
html.mode-4k .dw-nav { right: 56px; }
html.mode-4k .gen-layout { grid-template-columns: minmax(760px, 1fr) minmax(420px, 1400px); gap: 32px; }
html.mode-4k .panel { padding: 26px 34px; }
html.mode-4k .sec-title { font-size: 19px; }
html.mode-4k .search-form input { width: 560px; }
html.mode-4k .preview-col .panel iframe { max-height: calc(100vh - 270px); }
html.mode-4k .dw-footer-in, html.mode-4k .dw-cp-in { padding: 0 56px; }

/* ================= 面板 ================= */
.panel { background: var(--dw-surface); border-radius: 14px; padding: 16px 20px; margin-bottom: 18px;
  box-shadow: var(--dw-panel-shadow); border: 1px solid var(--dw-line); }
.sec-title { font-weight: bold; font-size: 16px; color: var(--dw-blue-text); margin-bottom: 14px;
  border-left: 4px solid var(--dw-blue); padding-left: 11px; display: flex; align-items: center; gap: 10px; }
.hint { color: var(--dw-text-3); font-size: 13px; font-weight: normal; }

/* ================= 类别 tabs ================= */
.tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 8px; }
.tab { border: 1px solid var(--dw-border); background: var(--dw-surface); color: var(--dw-text-2);
  padding: 9px 22px; border-radius: 999px; cursor: pointer; font-size: 14px; transition: all .15s;
  text-decoration: none; display: inline-block; }
.tab:hover { border-color: var(--dw-blue); color: var(--dw-blue-text); }
.tab.active { background: var(--dw-blue); color: #ffffff; border-color: var(--dw-blue); font-weight: bold; }

/* ================= 报告类型卡片 ================= */
.rt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rt-card { border: 1px solid var(--dw-line); border-radius: 12px; padding: 12px 14px; cursor: pointer;
  display: block; transition: all .15s; background: var(--dw-surface-2); position: relative; }
.rt-card:hover { border-color: #8ab4f8; background: var(--dw-blue-light); }
.rt-card.rt-active { border-color: var(--dw-blue); background: var(--dw-blue-light);
  box-shadow: 0 0 4px rgba(11,87,208,.22); }
.rt-card input { position: absolute; opacity: 0; }
.rt-card.rt-active::after { content: '✓'; position: absolute; top: 9px; right: 12px;
  color: var(--dw-blue-text); font-weight: 900; }
.rt-name { font-weight: bold; font-size: 14.5px; color: var(--dw-text-main); margin-bottom: 4px; }
.rt-desc { font-size: 12.5px; color: var(--dw-text-3); line-height: 1.5; }

/* ================= 表单 ================= */
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; }
.grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px 18px; }
.grid4 { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 12px 16px; }
label.full { display: flex; flex-direction: column; font-size: 13.5px; color: var(--dw-text-2); gap: 6px; margin-bottom: 11px; }
.grid2 label, .grid3 label, .grid4 label { display: flex; flex-direction: column;
  font-size: 13.5px; color: var(--dw-text-2); gap: 6px; }
.grid2 input, .grid3 input, .grid4 input, .grid2 select, .grid3 select, .grid4 select,
label.full input, .search-form input {
  border: 1px solid var(--dw-border); border-radius: 8px; padding: 9px 12px; font-size: 14px;
  background: var(--dw-surface); transition: all .15s; width: 100%; color: var(--dw-text-main); }
.grid2 input:focus, .grid3 input:focus, .grid4 input:focus, .grid2 select:focus,
label.full input:focus { outline: none; border-color: var(--dw-blue);
  box-shadow: 0 0 0 2px rgba(11,87,208,.12); }
label.chk { flex-direction: row; align-items: center; gap: 8px; font-size: 14px; }
label.chk input { width: auto; }
.hidden { display: none !important; }

/* ================= 设备行 ================= */
.eq-row { display: grid; grid-template-columns: 1fr 170px 42px; gap: 10px; margin-bottom: 10px; align-items: center; }
.eq-row select, .eq-row input { border: 1px solid var(--dw-border); border-radius: 8px; padding: 8px 10px;
  font-size: 13.5px; background: var(--dw-surface); color: var(--dw-text-main); width: 100%; }
.eq-row select:focus, .eq-row input:focus { outline: none; border-color: var(--dw-blue); }
.chk-preview { display: flex; flex-wrap: wrap; gap: 8px; }

/* ================= 按钮（V4.48：Material 3 胶囊按钮 / 描边次级） ================= */
.btn { display: inline-block; border: 1px solid var(--dw-border); background: var(--dw-surface);
  color: var(--dw-text-2); padding: 0 24px; line-height: 42px; border-radius: 999px; cursor: pointer;
  font-size: 15px; text-decoration: none; transition: all .15s; font-family: inherit; }
.btn:hover { background: var(--dw-surface-2); border-color: var(--dw-text-3); color: var(--dw-text-main); }
.btn-primary { background: var(--dw-blue); border: 1px solid var(--dw-blue); color: #ffffff; font-weight: bold; }
.btn-primary:hover { background: var(--dw-blue-dark); border-color: var(--dw-blue-dark); color: #ffffff; }
.btn-outline { background: var(--dw-surface); border: 2px solid var(--dw-blue); color: var(--dw-blue-text); font-weight: bold; }
.btn-outline:hover { background: var(--dw-blue-light); color: var(--dw-blue-text); }
.btn-green { background: #188038; border: 1px solid #188038; color: #ffffff; font-weight: bold; }
.btn-green:hover { background: #146c2e; border-color: #146c2e; color: #ffffff; }
.btn-danger { background: var(--dw-surface); border-color: #f3b8b4; color: #d93025; }
.btn-danger:hover { background: #fce8e6; }
.btn-sm { padding: 0 16px; line-height: 30px; font-size: 13px; }
.btn-row { margin-top: 16px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
#genStatus { font-size: 14px; color: #188038; font-weight: bold; }
html.theme-dark #genStatus { color: #81c995; }
html.theme-dark .btn-danger { background: #342724; }

/* ================= 预览 ================= */
.preview-panel iframe { width: 100%; flex: 1; border: 1px solid var(--dw-iframe-border);
  border-radius: 8px; background: #ffffff; }
.tbl-wrap { max-height: 236px; overflow: auto; margin-top: 12px; }
#ptTable { width: 100%; border-collapse: collapse; font-size: 13px; }
#ptTable th, #ptTable td { border: 1px solid var(--dw-line); padding: 5px 8px; text-align: center; }
#ptTable th { background: var(--dw-surface-2); color: var(--dw-text-main); position: sticky; top: 0; }

/* ================= 工具栏 / 统计 ================= */
.toolbar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.search-form { display: flex; gap: 10px; }
.search-form input { width: 380px; }
.stats { margin-left: auto; color: var(--dw-text-2); font-size: 14px; }
.chip { background: var(--dw-chip-bg); border: 1px solid var(--dw-chip-border); color: var(--dw-chip-text);
  border-radius: 13px; padding: 3px 12px; font-size: 13px; margin-left: 6px; }

/* ================= 表格 ================= */
table.list { width: 100%; border-collapse: collapse; font-size: 14px; }
table.list th, table.list td { border-bottom: 1px solid var(--dw-line); padding: 10px 12px;
  text-align: left; white-space: nowrap; }
table.list th { background: var(--dw-surface-2); color: var(--dw-text-main); position: sticky; top: 0; font-size: 13.5px; }
table.list tr:hover td { background: var(--dw-blue-light); }
table.list.compact th, table.list.compact td { padding: 8px 10px; font-size: 13.5px; }
.empty { text-align: center; color: var(--dw-text-3); padding: 32px !important; }

/* ================= 信息维护 ================= */
.opt-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.opt-col h3 { font-size: 14px; color: var(--dw-blue-text); margin-bottom: 8px; }
.opt-list { border: 1px solid var(--dw-line); border-radius: 10px; max-height: 300px; overflow: auto;
  background: var(--dw-surface); }
.opt-item { display: flex; justify-content: space-between; align-items: center; padding: 6px 11px;
  border-bottom: 1px solid var(--dw-line); font-size: 13px; gap: 6px; }
.opt-item:last-child { border-bottom: none; }
.opt-item button { border: none; background: none; color: #d93025; cursor: pointer; font-size: 14px; }
.opt-add { display: flex; gap: 8px; margin-top: 8px; }
.opt-add input { flex: 1; min-width: 60px; border: 1px solid var(--dw-border); border-radius: 8px;
  padding: 8px 10px; font-size: 13px; background: var(--dw-surface); color: var(--dw-text-main); }
.opt-add input:focus { outline: none; border-color: var(--dw-blue); }

/* ================= 产品级联与产品编辑器 ================= */
.prod-info { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.prod-info .chip { background: var(--dw-chip-bg); border: 1px solid var(--dw-chip-border);
  color: var(--dw-text-main); border-radius: 8px; padding: 4px 12px; font-size: 13px; }
.prod-info .chip b { color: var(--dw-blue-text); }
.prod-editor { margin-top: 16px; padding: 18px; background: var(--dw-surface-2); border: 1px solid var(--dw-line);
  border-radius: 12px; }
.prod-editor h3 { margin: 0 0 12px; color: var(--dw-blue-text); font-size: 16px; }
.prod-editor label { display: flex; flex-direction: column; gap: 5px; font-size: 13px;
  color: var(--dw-text-2); margin-bottom: 10px; }
.prod-editor input, .prod-editor select, .prod-editor textarea {
  padding: 8px 10px; border: 1px solid var(--dw-border); border-radius: 8px; font-size: 14px;
  background: var(--dw-surface); color: var(--dw-text-main); }
.prod-editor textarea { font-family: inherit; }
.prod-editor .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* ================= 响应式：4K/2K/1080P 之外，窄屏 → 平板 → 手机逐级回落 ================= */
@media (max-width: 1500px) {
  .gen-layout, html.mode-2k .gen-layout, html.mode-4k .gen-layout { grid-template-columns: 1fr; }
  .preview-col .panel { position: static; height: auto; min-height: 0;
    max-width: 1100px; margin: 0 auto; width: 100%; }
  /* 堆叠模式：A4 预览完整展示，不再按视口高度压缩 */
  .preview-col .panel iframe { width: 100%; max-height: none; min-height: 360px; }
  .opt-layout { grid-template-columns: 1fr; }
  .opt-grid, html.mode-2k .opt-grid { grid-template-columns: 1fr 1fr; }
  .search-form input, html.mode-2k .search-form input { width: 320px; }
  .dw-title { display: none; }
  .dw-nav a { margin-left: 16px; font-size: 15px; }
  .dw-theme-group { margin-left: 16px; }
  .dw-theme-ico { width: 34px; height: 34px; }
  .dw-user { margin-left: 14px; }
  .dw-avatar { width: 30px; height: 30px; font-size: 14px; }
  .dw-caret { display: none; }
  .dw-logo img { width: 180px; }
  .dw-footer-in { flex-direction: column; }
  .dw-f1, .dw-f2, .dw-f3 { width: 100%; margin-left: 0; }
  .dw-f2 { margin-top: 12px; }
  .dw-f3 { margin-top: 12px; }
  .dw-cp-links { margin-left: 0; width: 100%; }
}

/* ---- ≤1024px（平板竖屏 / iPad）：表单两列化，面板内表格可横滑 ---- */
@media (max-width: 1024px) {
  .grid3, .grid4 { grid-template-columns: 1fr 1fr; }
  .eq-row { grid-template-columns: 1fr 150px 42px; }
  .panel { padding: 14px 16px; overflow-x: auto; }
  .main { padding: 0 16px; }
  .dw-header-in { padding: 0 16px; }
  .dw-logo { left: 16px; }
  .dw-nav { right: 16px; }
  .dw-footer-in, .dw-cp-in { padding: 0 16px; }
  .search-form { flex-wrap: wrap; }
  .search-form input, html.mode-2k .search-form input { width: min(320px, 100%); }
  .tbl-wrap { max-height: 200px; }
}

/* ---- ≤768px（手机）：头部换行自适应、表单单列、按钮加大易点按 ---- */
@media (max-width: 768px) {
  body { padding-top: 0; }
  .dw-header { position: static; height: auto; }
  .dw-header-in { height: auto; line-height: normal; display: flex; flex-wrap: wrap;
    align-items: center; gap: 8px 12px; padding: 10px 12px; }
  .dw-logo, .dw-title, .dw-nav { position: static; }
  .dw-logo img { width: 140px; }
  .dw-title { display: block; flex: 1; text-align: right; font-size: 15px; pointer-events: auto; }
  .dw-nav { width: 100%; flex-wrap: wrap; gap: 8px 0; }
  .dw-nav a { margin-left: 0; margin-right: 16px; font-size: 14px; }
  .dw-theme-group { margin-left: 0; }
  .dw-user { margin-left: auto; }
  .main { margin-top: 12px; padding: 0 12px; }
  .dw-footer-in, .dw-cp-in { padding: 0 12px; }
  .panel { padding: 12px; border-radius: 8px; overflow-x: auto; }
  .sec-title { font-size: 15px; }
  .grid2, .grid3, .grid4 { grid-template-columns: 1fr; gap: 10px; }
  .eq-row { grid-template-columns: 1fr 108px 40px; }
  .btn-row .btn { flex: 1 1 45%; min-height: 44px; }
  .preview-col .panel iframe { width: 100%; aspect-ratio: auto; height: 70vh; min-height: 320px; }
  table.list { font-size: 12.5px; }
  table.list th, table.list td { padding: 6px; white-space: nowrap; }
  .stats { margin-left: 0; width: 100%; }
  .login-card { width: 92vw; }
}

/* ================= V4.0 用户体系 / toast / 弹窗 / 登录页 ================= */

/* ---- 导航用户区（头像 + 个人中心下拉菜单） ---- */
.dw-user { position: relative; margin-left: 20px; }
.dw-avatar-btn { display: flex; align-items: center; gap: 6px; background: none;
  border: none; padding: 4px 6px; border-radius: 20px; cursor: pointer;
  transition: background .15s; font-family: inherit; }
.dw-avatar-btn:hover { background: var(--dw-blue-light); }
.dw-avatar { width: 34px; height: 34px; border-radius: 50%; display: inline-flex;
  align-items: center; justify-content: center; font-size: 15px; font-weight: bold;
  color: #fff; background: linear-gradient(135deg, #0b57d0, #00a3a3);
  box-shadow: 0 1px 4px rgba(11,87,208,.35); user-select: none; flex: none; }
.dw-avatar-lg { width: 48px; height: 48px; font-size: 21px; }
.dw-caret { font-size: 11px; color: var(--dw-text-3); transition: transform .2s; }
.dw-avatar-btn.active .dw-caret { transform: rotate(180deg); }

.dw-user-menu { position: absolute; right: 0; top: calc(100% + 10px); z-index: 900;
  min-width: 250px; background: var(--dw-surface); border: 1px solid var(--dw-line);
  border-radius: 14px; box-shadow: 0 12px 36px rgba(0,0,0,.16);
  padding: 6px; opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s, transform .18s, visibility .18s; }
.dw-user-menu.open { opacity: 1; visibility: visible; transform: translateY(0); }
.dw-user-head { display: flex; align-items: center; gap: 12px; padding: 12px 12px 10px; }
.dw-user-username { font-size: 15px; font-weight: bold; color: var(--dw-text-main);
  margin-bottom: 4px; word-break: break-all; }
.dw-user-sub { font-size: 12px; color: var(--dw-text-3); margin-top: 4px; }
.pf-readonly { background: var(--dw-panel-2, #f0f2f5) !important;
  color: var(--dw-text-3) !important; cursor: not-allowed; }
html.theme-dark .pf-readonly { background: #1d2127 !important; color: #8a929c !important; }
.dw-user-sep { height: 1px; background: var(--dw-line); margin: 4px 8px; }
.dw-user-item { display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 10px 12px; font-size: 14px; color: var(--dw-text-2); background: none;
  border: none; border-radius: 8px; cursor: pointer; text-align: left;
  font-family: inherit; transition: all .12s; }
.dw-user-item:hover { background: var(--dw-blue-light); color: var(--dw-blue-text); }
.dw-user-logout:hover { background: rgba(192,57,43,.08); color: #d93025; }
html.theme-dark .dw-user-logout:hover { background: rgba(224,138,128,.12); color: #f28b82; }

/* ---- 修改密码弹窗表单 ---- */
.dw-cp-form { display: flex; flex-direction: column; gap: 14px; min-width: 340px; }
.dw-cp-row { display: flex; flex-direction: column; gap: 6px; }
.dw-cp-row label { font-size: 13px; color: var(--dw-text-2); }
.dw-cp-row input { padding: 9px 12px; border: 1px solid var(--dw-border);
  border-radius: 8px; font-size: 14px; background: var(--dw-surface);
  color: var(--dw-text-main); font-family: inherit; }
.dw-cp-row input:focus { outline: none; border-color: var(--dw-blue); }
.dw-cp-err { font-size: 13px; color: #d93025; min-height: 18px; }
html.theme-dark .dw-cp-err { color: #f28b82; }
.dw-badge { display: inline-block; font-size: 12px; padding: 1px 10px; border-radius: 10px;
  background: var(--dw-chip-bg); border: 1px solid var(--dw-chip-border);
  color: var(--dw-chip-text); }
.dw-badge.role-super { background: #f3e8fd; border-color: #d9b8f8; color: #8430ce; }
.dw-badge.role-admin { background: #e8f0fe; border-color: #aecbfa; color: #174ea6; }
.dw-badge.role-operator { background: #e6f4ea; border-color: #a8dab5; color: #137333; }
html.theme-dark .dw-badge.role-super { background: #2d2440; border-color: #584273; color: #d9b8f8; }
html.theme-dark .dw-badge.role-admin { background: #1d2b45; border-color: #32486b; color: #8ab4f8; }
html.theme-dark .dw-badge.role-operator { background: #1e2b23; border-color: #33523f; color: #81c995; }

/* ---- toast 通知 ---- */
#dwToastWrap { position: fixed; top: 104px; right: 24px; z-index: 10000;
  display: flex; flex-direction: column; gap: 10px; pointer-events: none; }
.dw-toast { min-width: 280px; max-width: 420px; background: var(--dw-surface);
  border: 1px solid var(--dw-line); border-left: 4px solid var(--dw-text-3);
  border-radius: 12px; box-shadow: var(--dw-panel-shadow); padding: 12px 18px;
  font-size: 14px; color: var(--dw-text-main); display: flex; gap: 8px; align-items: center;
  opacity: 0; transform: translateX(24px); transition: all .3s; }
.dw-toast.show { opacity: 1; transform: none; }
.dw-toast-ico { font-size: 16px; }
.dw-toast-ok { border-left-color: #188038; }
.dw-toast-err { border-left-color: #d93025; }
.dw-toast-warn { border-left-color: #e37400; }
.dw-toast-info { border-left-color: var(--dw-blue); }

/* ---- 模态弹窗（确认框 / 对话框） ---- */
.dw-mask { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 9000;
  display: flex; align-items: center; justify-content: center; }
.dw-modal { width: 400px; max-width: 92vw; background: var(--dw-surface);
  border-radius: 18px; box-shadow: 0 8px 40px rgba(0,0,0,.3); overflow: hidden;
  animation: dwPop .18s ease-out; }
.dw-modal-lg { width: 460px; }
@keyframes dwPop { from { transform: scale(.92); opacity: 0; } to { transform: none; opacity: 1; } }
.dw-modal-title { padding: 16px 22px 0; font-size: 16px; font-weight: bold; color: var(--dw-blue-text); }
.dw-modal-body { padding: 14px 22px 6px; font-size: 14px; color: var(--dw-text-main);
  line-height: 1.7; }
.dw-modal-btns { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 22px 18px; }
.btn-danger2 { background: #d93025; border-color: #d93025; color: #ffffff; font-weight: bold; }
.btn-danger2:hover { background: #b3261e; border-color: #b3261e; color: #ffffff; }
.btn.dw-busy { opacity: .65; cursor: not-allowed; pointer-events: none; }

/* ---- 登录页 ---- */
.login-body { min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(160deg, var(--dw-blue-light) 0%, var(--dw-bg) 55%);
  padding: 40px 16px; }
.login-card { width: 400px; max-width: 94vw; background: var(--dw-surface);
  border-radius: 18px; box-shadow: 0 10px 50px rgba(11,50,120,.14); padding: 40px 44px 34px; }
.login-logo { display: block; margin: 0 auto 8px; width: 230px; }
.login-title { text-align: center; font-size: 21px; font-weight: bold; color: var(--dw-blue-text);
  letter-spacing: 2px; margin-bottom: 4px; }
.login-sub { text-align: center; font-size: 12.5px; color: var(--dw-text-3); margin-bottom: 26px; }
.login-field { margin-bottom: 16px; }
.login-field label { display: block; font-size: 13px; color: var(--dw-text-2); margin-bottom: 6px; }
.login-field input[type=text], .login-field input[type=password] {
  width: 100%; border: 1px solid var(--dw-border); border-radius: 8px; padding: 10px 12px;
  font-size: 15px; background: var(--dw-surface); color: var(--dw-text-main); transition: border .15s; }
.login-field input:focus { outline: none; border-color: var(--dw-blue);
  box-shadow: 0 0 0 3px rgba(11,87,208,.12); }
.login-cap-row { display: flex; gap: 10px; align-items: stretch; }
.login-cap-row input { flex: 1; }
.login-cap-row img { width: 136px; height: 46px; border-radius: 8px; cursor: pointer;
  border: 1px solid var(--dw-line); flex: none; }
.login-cap-hint { font-size: 12px; color: var(--dw-text-3); margin-top: 5px; }
.login-err { min-height: 20px; font-size: 13px; color: #d93025; margin-bottom: 8px; text-align: center; }
.login-btn { width: 100%; height: 44px; border: none; border-radius: 999px;
  background: var(--dw-blue); color: #ffffff; font-size: 16px; font-weight: bold;
  letter-spacing: 6px; cursor: pointer; transition: background .15s; font-family: inherit; }
.login-btn:hover { background: var(--dw-blue-dark); }
.login-btn.dw-busy { opacity: .65; cursor: not-allowed; }
.login-foot { text-align: center; font-size: 12px; color: var(--dw-text-3); margin-top: 22px; }
.login-pwd-row { position: relative; }
.login-theme { position: absolute; top: 14px; right: 14px; margin-left: 0; }
.login-eye { position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  cursor: pointer; color: var(--dw-text-3); font-size: 15px; user-select: none; padding: 4px; }
.login-eye:hover { color: var(--dw-blue-text); }
@keyframes loginShake { 0%,100%{transform:none} 20%,60%{transform:translateX(-6px)}
  40%,80%{transform:translateX(6px)} }
.login-shake { animation: loginShake .4s; }

/* ---- 信息维护：授权横幅 ---- */
.oms-banner { display: flex; align-items: center; gap: 10px; border-radius: 10px;
  padding: 10px 16px; font-size: 13.5px; margin-bottom: 18px; border: 1px solid; }
.oms-banner.ok { background: #e6f4ea; border-color: #a8dab5; color: #137333; }
.oms-banner.warn { background: #fdf6e8; border-color: #f9e3ae; color: #b06000; }
html.theme-dark .oms-banner.ok { background: #1f2e24; border-color: #325040; color: #86c298; }
html.theme-dark .oms-banner.warn { background: #332b1d; border-color: #574a26; color: #fdd663; }
.oms-banner .btn-sm { margin-left: auto; }
.oms-timer { font-weight: bold; font-variant-numeric: tabular-nums; }

/* ---- 验证弹窗内表单 ---- */
.dw-verify .login-field { margin-bottom: 14px; }

/* ---- 用户管理（设置页） ---- */
.user-role-sel { border: 1px solid var(--dw-border); border-radius: 8px; padding: 6px 8px;
  font-size: 13px; background: var(--dw-surface); color: var(--dw-text-main); }
.tag-lock { color: var(--dw-text-3); font-size: 12px; }

/* ---- 生成页：必填项红星 + 校验红色提醒（2026-10-11） ---- */
.req { color: #d93025; font-weight: bold; margin-left: 2px; }
.dw-err-in { border-color: #d93025 !important; background: #fce8e6 !important; }
html.theme-dark .dw-err-in { background: #3b2a28 !important; }
.dw-err-in:focus { border-color: #d93025 !important; }
.dw-err-msg { color: #d93025; font-size: 12.5px; line-height: 1.4; font-weight: normal; }
.form-err-banner { border: 1px solid #f3b8b4; background: #fce8e6; color: #c5221f;
  border-radius: 10px; padding: 10px 14px; font-size: 13.5px; margin: 10px 0; line-height: 1.8; }
html.theme-dark .form-err-banner { background: #3b2a28; border-color: #6e4a46; color: #f28b82; }
/* 环境温湿度：天气来源提示（可点击刷新） */
.env-src { cursor: pointer; text-decoration: underline dotted; }
.env-src:hover { color: var(--dw-blue-text); }

/* ---- 设置页：更新日志（v4.35） ---- */
.changelog { list-style: none; margin: 0; padding: 0; }
.changelog li { display: flex; gap: 14px; align-items: flex-start; padding: 11px 0;
  border-bottom: 1px dashed var(--dw-line); }
.changelog li:first-child { padding-top: 4px; }
.changelog li:last-child { border-bottom: none; padding-bottom: 2px; }
.cl-ver { flex: none; background: var(--dw-blue); color: #ffffff; border-radius: 8px;
  font-size: 12.5px; font-weight: bold; padding: 2px 10px; line-height: 20px;
  font-variant-numeric: tabular-nums; }
.cl-date { flex: none; color: var(--dw-text-3); font-size: 13px; line-height: 24px;
  font-variant-numeric: tabular-nums; min-width: 82px; }
.cl-body { color: var(--dw-text-2); font-size: 13.5px; line-height: 1.75; }

/* ---- 预览操作条 + 证书作废状态（v4.38） ---- */
.pv-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 8px 0 10px; }
.pv-sep { width: 1px; height: 22px; background: var(--dw-line); margin: 0 2px; flex: none; }
.pv-bar .hint { margin-left: auto; }
.btn-warn { background: var(--dw-surface); border: 1px solid #f5d065; color: #b06000; font-weight: bold; }
.btn-warn:hover { background: #fef7e0; }
.btn-warn:disabled { opacity: .5; cursor: not-allowed; }
html.theme-dark .btn-warn { background: #332b1d; border-color: #574a26; color: #fdd663; }
html.theme-dark .btn-warn:hover { background: #383023; }
.chip-void { background: #fce8e6; color: #c5221f; border: 1px solid #f3b8b4;
  font-size: 12px; padding: 1px 8px; border-radius: 10px; white-space: nowrap; }
html.theme-dark .chip-void { background: #3b2a28; border-color: #6e4a46; color: #f28b82; }
.tr-void td { opacity: .55; }
.tr-void td:first-child b { text-decoration: line-through; }

/* ---- v4.41：编号预览 / 台账筛选批量 / 分页 ---- */
.sn-preview { margin-top: 6px; font-size: 13px; line-height: 1.6;
  padding: 7px 11px; background: var(--dw-surface-2); border-radius: 10px; }
.sn-preview.sn-err { color: #c5221f; background: #fce8e6; }
html.theme-dark .sn-preview.sn-err { background: #3b2a28; }
.arch-filter { flex-wrap: wrap; gap: 8px; }
.arch-filter input[name=q] { width: 240px; }
.arch-filter input[type=date], .arch-filter select { width: auto; flex: none;
  padding: 7px 9px; }
.arch-batch { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--dw-line); }
.chk-all { display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  font-size: 13.5px; white-space: nowrap; }
.arch-batch .btn { margin-right: 2px; }
.pager { display: flex; align-items: center; gap: 12px; justify-content: center;
  margin-top: 14px; }
/* 台账筛选下拉样式补齐 */
.search-form select, .arch-filter select {
  border: 1px solid var(--dw-border); border-radius: 8px; padding: 9px 10px;
  font-size: 14px; background: var(--dw-surface); color: var(--dw-text-main); }
.search-form select:focus, .arch-filter select:focus { outline: none; border-color: var(--dw-blue); }

/* ---- v4.42：设备/检查项说明小字 + 设备分类管理 ---- */
/* 生成页：设备行下灰色说明（检测目的 + 性能范围） */
.eq-desc { grid-column: 1 / -1; margin-top: -4px; padding-left: 2px;
  font-size: 12px; line-height: 1.55; color: var(--dw-text-3); }
/* 生成页：检查项用途小字 */
.chk-item { display: inline-flex; align-items: baseline; gap: 6px; }
.chk-note { font-size: 12px; color: var(--dw-text-3); }
/* 信息维护：设备分组标题 */
.eqgrp-title { display: flex; align-items: center; gap: 10px; margin: 14px 0 6px; }
.eqgrp-title:first-of-type { margin-top: 4px; }
.chip-grp { background: var(--dw-chip-bg); border: 1px solid var(--dw-chip-border);
  color: var(--dw-blue-text); font-weight: bold; border-radius: 8px;
  padding: 2px 12px; font-size: 13px; white-space: nowrap; }
/* 信息维护：表格说明列小字 */
.td-note { font-size: 12px; color: var(--dw-text-3); max-width: 260px; }
/* 信息维护：设备添加表单（两行） */
.eq-add-form { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--dw-line); }
.eq-add-form .opt-add + .opt-add { margin-top: 6px; }
.opt-add select { border: 1px solid var(--dw-border); border-radius: 8px;
  padding: 8px 10px; font-size: 13px; background: var(--dw-surface);
  color: var(--dw-text-main); }
.opt-add select:focus { outline: none; border-color: var(--dw-blue); }
/* 编辑弹窗表单 */
.eq-edit-form label { display: block; margin-bottom: 10px;
  font-size: 13px; color: var(--dw-text-2); }
.eq-edit-form input, .eq-edit-form select { display: block; width: 100%; margin-top: 4px;
  border: 1px solid var(--dw-border); border-radius: 8px; padding: 8px 10px;
  font-size: 13.5px; background: var(--dw-surface); color: var(--dw-text-main); }
.eq-edit-form input:focus, .eq-edit-form select:focus { outline: none; border-color: var(--dw-blue); }


/* ================= V4.45 远传/变送双模式配置区（产品编辑器） ================= */
.tx-fields { border-left: 3px solid var(--dw-blue); padding: 4px 0 4px 14px;
  margin: 4px 0 10px; display: grid; gap: 2px; }

/* ================= V4.46 批量合并 PDF 直链下载按钮 ================= */
#genStatus .gen-dl { display: inline-block; padding: 4px 14px; margin: 0 2px;
  border-radius: 8px; background: var(--dw-blue); color: #ffffff !important;
  text-decoration: none; font-weight: bold; transition: background .15s; }
#genStatus .gen-dl:hover { background: var(--dw-blue-dark); color: #ffffff; }

/* ================= V4.47 审计与基础设施状态 ================= */
.chip.ok { background: #e6f4ea; color: #137333; border: 1px solid #a8dab5;
  font-size: 12px; padding: 1px 8px; border-radius: 10px; white-space: nowrap; }
html.theme-dark .chip.ok { background: #1e2b22; border-color: #3f6b46; color: #86c78d; }
.chip.warn { background: #fef7e0; color: #b06000; border: 1px solid #f9e3ae;
  font-size: 12px; padding: 1px 8px; border-radius: 10px; white-space: nowrap; }
html.theme-dark .chip.warn { background: #332a1a; border-color: #574a26; color: #fdd663; }
#auditRows .hint { font-size: 12px; }

/* ================= V4.50 下拉选项：默认值 + 拖拽排序 ================= */
.opt-item .opt-val { flex: 1; min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.opt-item .opt-drag { color: var(--dw-text-3); cursor: grab; flex: none;
  user-select: none; font-size: 14px; line-height: 1; }
.opt-item[draggable] { cursor: grab; }
.opt-item.dragging { opacity: .45; border-left: 2px solid var(--dw-blue); }
.opt-item .opt-def-tag { font-style: normal; font-size: 11px; line-height: 16px;
  background: var(--dw-chip-bg); color: var(--dw-chip-text);
  border: 1px solid var(--dw-chip-border); border-radius: 8px;
  padding: 0 7px; margin-left: 6px; vertical-align: 1px; }
.opt-item .opt-star { border: none; background: none; cursor: pointer;
  font-size: 15px; flex: none; padding: 2px 4px; color: var(--dw-text-3);
  transition: color .15s, transform .15s; }
.opt-item .opt-star:hover { color: #e37400; transform: scale(1.15); }
.opt-item .opt-star.on { color: #e37400; }   /* Google 黄 600 点缀 */
.opt-item .opt-del { border: none; background: none; cursor: pointer;
  font-size: 14px; flex: none; padding: 2px 4px; color: #d93025; }

/* ================= V4.48 Material 3 Expressive 质感收尾 ================= */
/* 下载合并 PDF 按钮：胶囊 */
#genStatus .gen-dl { display: inline-block; padding: 4px 16px; margin: 0 2px;
  border-radius: 999px; background: var(--dw-blue); color: #ffffff !important;
  text-decoration: none; font-weight: bold; transition: background .15s; }
#genStatus .gen-dl:hover { background: var(--dw-blue-dark); color: #ffffff; }
/* 文本选区：Google 蓝淡容器 */
::selection { background: #d3e3fd; color: #174ea6; }
html.theme-dark ::selection { background: #2d4063; color: #c5dcff; }
/* 细滚动条（圆角胶囊，跟随主题） */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(31,35,41,.22); border-radius: 999px;
  border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background-color: rgba(31,35,41,.35); }
html.theme-dark ::-webkit-scrollbar-thumb { background: rgba(255,255,255,.22);
  background-clip: content-box; }
html.theme-dark ::-webkit-scrollbar-thumb:hover { background-color: rgba(255,255,255,.35); }
/* 主按钮呼吸感：hover 轻微上浮（克制） */
.btn-primary:hover, .btn-green:hover, .login-btn:hover { transform: translateY(-1px); }
.btn-primary, .btn-green, .login-btn { transition: all .16s; }
/* 键盘可达焦点环（M3 focus ring） */
:focus-visible { outline: 2px solid var(--dw-blue); outline-offset: 2px; }
/* 头部导航激活态：胶囊高亮（替代下划线，年轻化）
   v4.49 修复：导航 a 继承了 .dw-header-in 的 line-height:90px，加胶囊背景后
   背景被撑成 ~102px 高的大椭圆（hover 像"大圆圈罩着"）。显式声明 line-height 覆盖。
   v4.58b 修复：line-height 收窄后 .dw-nav 无自身高度，整簇内容贴顶不再垂直居中
   （"右边的有点偏上"）—— .dw-nav 改为 top:0;bottom:0 + align-items:center
   恢复整簇在 90px 头部内的垂直居中；统一右侧控件间距。 */
.dw-nav a.active { font-weight: bold; border-bottom: none;
  background: var(--dw-blue-light); border-radius: 999px; padding: 6px 14px; }
.dw-nav a { border-radius: 999px; padding: 6px 14px; margin-left: 12px;
  line-height: 1.4;
  transition: background .15s, opacity .15s; }
.dw-nav a:hover { opacity: 1; background: var(--dw-blue-light); }
