/* 大管家 · 骨架/补全组件类（闸门12 一致性收口）
   以下 dgj-/sk- 组件类被 components-preview.html 等既有页面引用，此前在 src/css 下
   无任何定义，导致"HTML 引用未定义组件类"违规。此处按 design_tokens / foundation-tokens
   的新令牌体系补全（与 dgj-components.css 同套令牌），全部走 var(--xxx)，禁止硬编码色值。
   独立成文件，避免与 dgj-components.css 的清理提交互相覆盖。 */
.dgj-btn--primary{background:var(--primary);color:var(--brand-white)}
.dgj-btn--ghost{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}
.dgj-tag--success{color:var(--success);background:var(--success-light)}
.dgj-tag--warning{color:var(--warning);background:var(--warning-light)}
.dgj-tag--info{color:var(--info);background:var(--surface-2);border:1px solid var(--border)}
.dgj-tag--danger{color:var(--danger);background:var(--danger-light)}
.dgj-tag--gray{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border)}
.dgj-card-head{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text-strong)}
.dgj-card-body{padding:14px}
.dgj-card-foot{padding:10px 14px;border-top:1px solid var(--border)}
.dgj-avatar{width:36px;height:36px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);object-fit:cover;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);overflow:hidden;font-size:13px}
.dgj-avatar--lg{width:48px;height:48px;font-size:16px}
.dgj-avatar--sm{width:28px;height:28px;font-size:11px}
.dgj-icon{display:inline-flex;width:18px;height:18px;color:var(--text-strong);vertical-align:middle}
.dgj-icon--secondary{color:var(--text-muted)}
.dgj-input--error{border-color:var(--danger)!important;background:var(--danger-light)}
.dgj-link{color:var(--primary);text-decoration:none;cursor:pointer}
.dgj-link:hover{text-decoration:underline}
.dgj-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;display:inline-block;animation:dgj-spin .8s linear infinite}
@keyframes dgj-spin{to{transform:rotate(360deg)}}
.dgj-skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:dgj-shimmer 1.4s ease infinite;border-radius:4px}
@keyframes dgj-shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
.dgj-skeleton--circle{width:36px;height:36px;border-radius:50%}
.dgj-skeleton--text{height:12px;margin:6px 0}
.dgj-skeleton--title{height:16px;margin:8px 0;width:50%}
.dgj-exception{text-align:center;padding:40px 20px;color:var(--text-muted)}
.dgj-exception .ico{font-size:40px;margin-bottom:10px}
.dgj-exception .t{font-size:15px;font-weight:600;color:var(--text-strong);margin-bottom:6px}
.dgj-exception .d{font-size:12px;line-height:1.7}
