/* ============================================================
   壹朵云数据平台 · 全站设计令牌（P0 统一）
   由 app.py 中间件自动注入到所有 text/html 页面。
   原则：只做「变量 + 低侵入规范化」，页面自有样式优先不受破坏。
   ============================================================ */
:root{
  /* 主色 */
  --c-primary:#2563eb;
  --c-primary-h:#1d4ed8;
  --c-success:#16a34a;
  --c-danger:#dc2626;
  --c-warn:#d97706;
  --c-info:#0ea5e9;
  /* 灰阶（收敛定义：线/输入边/页面底/表头底/主文字/次文字/弱文字） */
  --g-line:#e5e7eb;
  --g-line2:#d5d9e2;
  --g-bg:#f5f6fa;
  --g-bg2:#f0f3f8;
  --g-tx:#222222;
  --g-tx2:#667085;
  --g-tx3:#9aa3b2;
  /* 字体 */
  --font-ui:-apple-system,'Microsoft YaHei','PingFang SC','Helvetica Neue',sans-serif;
  --font-num:Consolas,'SF Mono',Menlo,monospace;
  /* 圆角/阴影 */
  --r-card:10px;
  --r-btn:6px;
  --sh-card:0 1px 4px rgba(30,40,60,.07);
}

/* ---- 基础字体栈统一（元素级，页面自定义优先） ---- */
body{font-family:var(--font-ui);color:var(--g-tx);}
input,select,textarea,button{font-family:var(--font-ui);}

/* ---- 焦点态全站统一 ---- */
input:focus,select:focus,textarea:focus{outline:2px solid rgba(37,99,235,.25);border-color:var(--c-primary);}
button:focus-visible,a:focus-visible{outline:2px solid rgba(37,99,235,.45);outline-offset:1px;}

/* ---- 裸按钮兜底（页面写了样式的按钮不受影响） ---- */
button{transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;}
button:disabled{opacity:.55;cursor:not-allowed;}

/* ---- 输入控件边色统一（页面自定义优先） ---- */
input:not([type=checkbox]):not([type=radio]),select,textarea{border-color:var(--g-line2);}
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#b9c2d0;}

/* ---- 数字/编号等宽 ---- */
.num,.mono{font-variant-numeric:tabular-nums;}

/* ---- 全站滚动条统一 ---- */
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#c7cdd8;border-radius:6px;border:2px solid transparent;background-clip:content-box;}
::-webkit-scrollbar-thumb:hover{background:#aab2c0;border:2px solid transparent;background-clip:content-box;}

/* ---- 文本选择色 ---- */
::selection{background:rgba(37,99,235,.18);}

/* ============ 公共组件类（新页面/渐进替换用） ============ */
.u-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border:1px solid var(--c-primary);
  border-radius:var(--r-btn);background:var(--c-primary);color:#fff;font-size:13px;cursor:pointer;
  transition:background .15s ease;}
.u-btn:hover{background:var(--c-primary-h);border-color:var(--c-primary-h);}
.u-btn.gray{background:#fff;border-color:var(--g-line2);color:var(--g-tx2);}
.u-btn.gray:hover{background:var(--g-bg2);}
.u-btn.red{background:var(--c-danger);border-color:var(--c-danger);}
.u-btn.red:hover{background:#b91c1c;}
.u-btn.orange{background:var(--c-warn);border-color:var(--c-warn);}
.u-tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;line-height:1.6;}
.u-card{background:#fff;border-radius:var(--r-card);box-shadow:var(--sh-card);padding:14px 16px;}
