/* 大管家 · 统一组件样式（毛坯模块收口用）2026-09-07
   全部色值走 design_tokens.css（design-tokens.json 唯一事实源）设计令牌，禁止硬编码；
   消除 4 个毛坯模块重复的内联样式。收编自另一对话框 brand.css 版 WIP（BL-P1FOUND-010）。 */
.dgj-wrap{max-width:1400px;margin:0 auto;padding: var(--space-4)}
.dgj-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap: var(--space-3);flex-wrap:wrap}
.dgj-hd h1{font-size:18px;font-weight:600;color:var(--text-strong);margin:0}
.dgj-hd .sub{font-size:12px;color:var(--text-muted);margin-top:4px}
.dgj-btn{padding:6px 16px;font-size:12px;border:none;border-radius:6px;background:var(--primary);color:var(--brand-white);cursor:pointer;font-family:inherit}
.dgj-btn:hover{filter:brightness(1.08)}
.dgj-btn.ghost{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}
.dgj-btn:disabled{opacity:.5;cursor:not-allowed}
.dgj-btn.sm{padding:3px 10px;font-size:11px}
.dgj-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.dgj-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}
.dgj-card .k{font-size:11px;color:var(--text-muted);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dgj-card .v{font-size:20px;font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}
.dgj-card .v.red{color:var(--primary)}
.dgj-card .v.green{color:var(--success)}
.dgj-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:14px;overflow:hidden}
.dgj-panel .ph{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text-strong);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.dgj-panel .pb{padding:0;overflow-x:auto}
table.dgj-table{width:100%;border-collapse:collapse;font-size:12px}
.dgj-table th{background:var(--surface-2);padding:8px 10px;text-align:left;color:var(--text-muted);font-weight:500;white-space:nowrap;border-bottom:1px solid var(--border)}
.dgj-table td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-strong);white-space:nowrap}
.dgj-table tbody tr:hover td{background:var(--surface-2)}
.dgj-tag{display:inline-block;padding:1px 8px;border-radius: var(--radius-md);font-size:11px;line-height:18px;white-space:nowrap}
.dgj-tag.r{color:var(--danger);background:var(--danger-light)}
.dgj-tag.g{color:var(--success);background:var(--success-light)}
.dgj-tag.o{color:var(--warning);background:var(--warning-light)}
.dgj-tag.b{color:var(--info);background:var(--surface-2);border:1px solid var(--border)}
.dgj-tag.gray{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border)}
.dgj-empty{text-align:center;padding:40px 20px;color:var(--text-muted)}
.dgj-empty .ico{font-size:36px;margin-bottom:10px}
.dgj-empty .t{font-size:14px;font-weight:600;color:var(--text-strong);margin-bottom:6px}
.dgj-empty .d{font-size:12px;line-height:1.7}
.dgj-loading{text-align:center;padding:30px;color:var(--text-muted)}
.dgj-err{text-align:center;padding:24px;color:var(--danger);background:var(--danger-light);border-radius:8px;margin:14px}
.dgj-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:14px}
.dgj-fld{display:flex;flex-direction:column;gap: var(--space-1)}
.dgj-fld label{font-size:11px;color:var(--text-muted)}
.dgj-fld input,.dgj-fld select,.dgj-fld textarea{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;min-width:150px;font-family:inherit;background:var(--surface);color:var(--text-strong)}
.dgj-fld textarea{min-width:320px;min-height:60px;resize:vertical}
.dgj-hint{padding:10px 14px;background:var(--surface-2);color:var(--text-muted);font-size:12px;line-height:1.7;border-top:1px solid var(--border)}
.dgj-note{font-size:12px;color:var(--text-muted);font-weight:400}
.dgj-modal-mask{display:none;position:fixed;inset:0;background:color-mix(in srgb, var(--gray-900) 40%, transparent);z-index:50;align-items:center;justify-content:center}
.dgj-modal{background:var(--surface);border-radius:10px;max-width:480px;width:90%;padding:18px;box-shadow:var(--shadow-lg)}
.dgj-modal h3{margin:0 0 10px;color:var(--text-strong);font-size:15px}
.dgj-modal textarea{width:100%;min-height:80px;border:1px solid var(--border);border-radius:6px;padding:8px;font-family:inherit;font-size:13px;color:var(--text-strong);box-sizing:border-box}
.dgj-modal .acts{display:flex;gap: var(--space-2);justify-content:flex-end;margin-top: var(--space-3)}

/* =========================================================================
 * 全站通用组件唯一样式入口 · P0 收口（2026-09-08）
 * 调用规范：所有全局组件（page-frame / ai-floating-copilot / admin-tools /
 * bim / nav_new 等）的输入框、下拉、文本域一律使用 .dgj-input；
 * 禁止在任何 JS 内联写 border/background 色值，配色统一走 design_tokens.css。
 * 浅底语义色统一用 .dgj-badge--* / 对应 --*-light 变量，禁止写 #FDEBEC 之类。
 * ========================================================================= */
:root { --info-light: #E8F1FF; }  /* 信息浅底（AI 副驾 / 导航图标等） */

/* 输入框 / 下拉 / 文本域：全站唯一标准输入控件样式（色值集中在此，禁止散落） */
.dgj-input{
  color:var(--text);
  background:var(--surface);
  border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);
  box-sizing:border-box;
  padding:6px 10px;
  font:400 13px/1.4 var(--font-sans);
  transition:var(--transition);
}
.dgj-input:focus{ outline:none; border-color:var(--primary); box-shadow:0 0 0 2px var(--primary-light); }
.dgj-input::placeholder{ color:var(--text-muted); }
/* 紧凑型（搜索框/项目下拉等，对齐原 .dg-in.sm 的 36px 高度） */
.dgj-input.sm{ height:36px; padding:5px 10px; font-size:12px; }
