/* ============================================================================
   Robotxz-UC 统一主题
   Robotxz-UC  ·  智能融合通信系统
   ----------------------------------------------------------------------------
   说明：排版思路（分组导航、卡片解剖、工具栏位置）参考了同类产品的成熟做法，
   属于功能性布局；配色、图标、文案与品牌标识均为咻智自有，与任何第三方不同。

   作用范围：由中间件注入到每一个页面，因此 240 多个模板一次性统一，无需逐个改。
   ============================================================================ */

:root {
  /* 品牌色：沉稳中蓝为主，青绿为标识色 */
  --xz-primary:      #1b64d9;
  --xz-primary-dark: #14509f;
  --xz-primary-soft: #e8f0fd;
  --xz-teal:         #00b8a9;   /* 咻智标识色 */
  --xz-teal-soft:    #e2f7f5;

  /* 侧栏 */
  --xz-rail:         #0f1b2d;
  --xz-rail-2:       #16273f;
  --xz-rail-ink:     #c3d2e4;
  --xz-rail-ink-2:   #7a8ea8;
  --xz-rail-active:  #1b3a63;
  --xz-rail-line:    rgba(255, 255, 255, .09);

  /* 中性 */
  --xz-bg:           #f3f6fb;
  --xz-card:         #ffffff;
  --xz-line:         #e3e9f2;
  --xz-ink:          #1c2b41;
  --xz-ink-2:        #5f7291;
  --xz-ink-3:        #93a3b8;

  /* 状态 */
  --xz-ok:           #10b981;
  --xz-warn:         #f59e0b;
  --xz-err:          #dc2626;
  --xz-info:         #1b64d9;

  --xz-shadow:       0 6px 22px rgba(20, 50, 100, .07);
  --xz-shadow-lg:    0 16px 44px rgba(20, 50, 100, .13);
  --xz-radius:       12px;
  --xz-radius-sm:    9px;

  /* 尺寸令牌（2026-10-25 从 xz-ui.css 上收，换主题只改这一处）
     xz-ui.css 只以 var(--xz-h, 32px) 的形式引用，不再自己定义，
     所以改这里一个值，所有接入页面一起变。 */
  --xz-h:            32px;   /* 控件高度：按钮 / 输入框 / 下拉 */
  --xz-h-sm:         28px;   /* 小号控件高度 */
  --xz-r:            6px;    /* 控件圆角：按钮 / 输入框 */
  --xz-r-lg:         8px;    /* 容器圆角：卡片 / 弹层 */
  --xz-label-w:      110px;  /* 表单标签宽度（.xz-form 用） */
}

/* ---------------------------------------------------------------- 基础排版 */
body {
  font-family: "Inter", "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif !important;
  color: var(--xz-ink);
}
.layui-table, .layui-form, .layui-btn, .layui-input, .layui-select,
.layui-textarea, .layui-layer, .layui-tab { font-family: inherit !important; }

/* ---------------------------------------------------------------- 按钮 */
.layui-btn {
  border-radius: var(--xz-radius-sm) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transition: background .15s, border-color .15s, color .15s, box-shadow .15s !important;
}
.layui-btn-normal, .layui-btn:not([class*="layui-btn-"]) {
  background-color: var(--xz-primary) !important;
  border-color: var(--xz-primary) !important;
}
.layui-btn-normal:hover, .layui-btn:not([class*="layui-btn-"]):hover {
  background-color: var(--xz-primary-dark) !important;
  box-shadow: 0 4px 14px rgba(27, 100, 217, .28) !important;
}
.layui-btn-primary {
  background: #fff !important; color: var(--xz-ink) !important;
  border: 1px solid var(--xz-line) !important;
}
.layui-btn-primary:hover { border-color: var(--xz-primary) !important; color: var(--xz-primary) !important; }
.layui-btn-danger { background-color: var(--xz-err) !important; border-color: var(--xz-err) !important; }
.layui-btn-warm   { background-color: var(--xz-warn) !important; border-color: var(--xz-warn) !important; }
.layui-btn-sm { border-radius: 7px !important; }

/* 表格里那排小图标按钮（编辑/删除）统一成描边胶囊 */
.layui-table-cell .layui-btn-xs,
.layui-table-cell .layui-btn {
  border-radius: 999px !important;
  padding: 0 10px !important;
  height: 24px !important;
  line-height: 23px !important;
  font-size: 12px !important;
  background: #fff !important;
  border: 1px solid var(--xz-line) !important;
  color: var(--xz-ink-2) !important;
}
.layui-table-cell .layui-btn:hover { border-color: var(--xz-primary) !important; color: var(--xz-primary) !important; }
.layui-table-cell .layui-btn-danger { color: var(--xz-err) !important; border-color: #f4cfcf !important; }
.layui-table-cell .layui-btn-danger:hover { background: var(--xz-err) !important; color: #fff !important; border-color: var(--xz-err) !important; }

/* ---------------------------------------------------------------- 表单 */
.layui-input, .layui-textarea, .layui-select, .layui-input-inline input {
  border-radius: var(--xz-radius-sm) !important;
  border-color: var(--xz-line) !important;
  transition: border-color .15s, box-shadow .15s !important;
}
.layui-input:focus, .layui-textarea:focus {
  border-color: var(--xz-primary) !important;
  box-shadow: 0 0 0 3px rgba(27, 100, 217, .12) !important;
}
.layui-form-label { color: var(--xz-ink-2) !important; font-weight: 600 !important; }
.layui-form-item { margin-bottom: 14px !important; }
/* 分组标题：左侧一小段咻智青绿，与第三方产品区分 */
.layui-form-item .layui-form-label::before { display: none; }
.xz-section-title, .layui-elem-field legend {
  font-weight: 800 !important; color: var(--xz-ink) !important;
  border-left: 4px solid var(--xz-teal) !important;
  padding-left: 10px !important; border-bottom: 0 !important;
}
.layui-elem-field { border: 0 !important; margin-top: 6px !important; }

/* 开关与复选框用品牌色 */
.layui-form-onswitch { background-color: var(--xz-primary) !important; border-color: var(--xz-primary) !important; }
.layui-form-checked[lay-skin="primary"] i { border-color: var(--xz-primary) !important; background-color: var(--xz-primary) !important; }

/* ---------------------------------------------------------------- 表格 */
.layui-table-view { border-color: var(--xz-line) !important; border-radius: var(--xz-radius) !important; overflow: hidden; }
.layui-table-header { background: #f8fafd !important; }
.layui-table thead tr { background: #f8fafd !important; }
.layui-table th { color: var(--xz-ink-2) !important; font-weight: 700 !important; font-size: 12.5px !important; }
.layui-table td { color: var(--xz-ink) !important; border-color: #eef2f8 !important; }
.layui-table tbody tr:hover, .layui-table-hover { background: #f6faff !important; }
.layui-table-tool { border-color: var(--xz-line) !important; background: #fff !important; border-radius: var(--xz-radius) var(--xz-radius) 0 0 !important; }
.layui-table-page { border-color: var(--xz-line) !important; background: #fff !important; }
.layui-laypage .layui-laypage-curr .layui-laypage-em { background-color: var(--xz-primary) !important; }
.layui-table-total, .layui-table-total td { background: #f8fafd !important; font-weight: 600 !important; }

/* ---------------------------------------------------------------- 卡片与容器 */
.layui-card {
  border-radius: var(--xz-radius) !important;
  border: 1px solid var(--xz-line) !important;
  box-shadow: var(--xz-shadow) !important;
}
.layui-card-header {
  border-bottom: 1px solid var(--xz-line) !important;
  font-weight: 800 !important; color: var(--xz-ink) !important;
  position: relative; padding-left: 20px !important;
}
/* 卡片标题左侧的品牌青绿短条 */
.layui-card-header::before {
  content: ""; position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
  width: 4px; height: 15px; border-radius: 3px; background: var(--xz-teal);
}
.layui-collapse { border-color: var(--xz-line) !important; border-radius: var(--xz-radius) !important; }
.layui-colla-title { background: #f8fafd !important; font-weight: 700 !important; color: var(--xz-ink) !important; }
.layui-panel, .layui-tab-brief > .layui-tab-title .layui-this { color: var(--xz-primary) !important; }

/* ---------------------------------------------------------------- 标签页 */
.layui-tab-title { border-bottom-color: var(--xz-line) !important; }
.layui-tab-title .layui-this { color: var(--xz-primary) !important; font-weight: 700 !important; }
.layui-tab-brief > .layui-tab-more li.layui-this::after,
.layui-tab-brief > .layui-tab-title .layui-this::after { border-bottom-color: var(--xz-primary) !important; }

/* ---------------------------------------------------------------- 弹层 */
.layui-layer { border-radius: var(--xz-radius) !important; box-shadow: var(--xz-shadow-lg) !important; }
.layui-layer-title {
  background: #f8fafd !important; border-bottom: 1px solid var(--xz-line) !important;
  font-weight: 700 !important; color: var(--xz-ink) !important;
  border-radius: var(--xz-radius) var(--xz-radius) 0 0 !important;
}
.layui-layer-btn .layui-layer-btn0 {
  background: var(--xz-primary) !important; border-color: var(--xz-primary) !important;
  border-radius: var(--xz-radius-sm) !important;
}
.layui-layer-page .layui-layer-content { border-radius: 0 0 var(--xz-radius) var(--xz-radius) !important; }

/* ---------------------------------------------------------------- 提示条 */
.layui-badge, .layui-badge-rim { border-radius: 999px !important; }
.layui-bg-green { background-color: var(--xz-ok) !important; }
.layui-bg-red { background-color: var(--xz-err) !important; }
.layui-bg-orange { background-color: var(--xz-warn) !important; }
.layui-bg-blue { background-color: var(--xz-primary) !important; }

/* ---------------------------------------------------------------- 品牌水印
   每个页面右下角一枚极淡的咻智标识，既是品牌露出也是与第三方产品的区分 */
.xz-brandmark {
  position: fixed; right: 12px; bottom: 10px; z-index: 900;
  font-size: 11px; color: var(--xz-ink-3); opacity: .5;
  pointer-events: none; letter-spacing: .3px;
  font-family: inherit;
}
.xz-brandmark b { color: var(--xz-primary); font-weight: 800; }
.xz-brandmark i { color: var(--xz-teal); font-style: normal; font-weight: 800; }

/* ---------------------------------------------------------------- 滚动条 */
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd6e5; border-radius: 5px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: #a9bad0; background-clip: content-box; }

/* ---------------------------------------------------------------- pear 按钮降级
   2026-10-25
   pear.css 是 245 个模板在用的老组件库，按钮默认 38px 高、2px 圆角、#2D8CF0 蓝色，
   和 xz-ui 的 32px / 6px / 主题色并排时很刺眼。这里只把「尺寸 / 圆角 / 主色」
   拉齐到主题，不动结构、不改 padding 语义（左右留白仍由 pear.css 的 0 18px 决定），
   所以按钮只是变矮变圆、颜色换成主题色，排版不塌。
   生效原理：本文件由中间件注入在 </head> 之前，晚于 pear.css，同特异性下后者胜出；
   pear.css 里主色那几条自带 !important，这里也必须 !important 才盖得住。
   保留原样：.pear-btn-xs(28px) / .pear-btn-lg(44px) / .pear-btn[round] /
   .pear-btn-group（圆角拼接仍由 pear.css 管）。 */
.pear-btn { height: 32px; line-height: 32px; border-radius: var(--xz-r, 6px); font-size: 14px; }
.pear-btn-md { height: 32px; line-height: 32px; }
.pear-btn-sm { height: 28px; line-height: 28px; }
.pear-btn-primary {
  background-color: var(--xz-primary, #1b64d9) !important;
  border-color: var(--xz-primary, #1b64d9) !important;
}

/* ============================================================
   2026-10-16  阿拉伯语（从右到左）支持
   The shell is a flex row, so setting the direction reverses the
   sidebar to the right on its own. Only the handful of panels that
   are positioned with left: need mirroring by hand.
   ============================================================ */
html[dir="rtl"] body{direction:rtl;text-align:right}
html[dir="rtl"] .sb{border-right:0;border-left:1px solid var(--b,rgba(0,0,0,.06))}
html[dir="rtl"] .sb::before{background:linear-gradient(270deg,transparent,var(--p,#1b64d9),transparent)}
html[dir="rtl"] .userbar{right:auto;left:0;border-left:0;border-right:1px solid var(--b,rgba(0,0,0,.06));border-radius:0 0 12px 0}
html[dir="rtl"] #sm{left:auto;right:54px;border-right:1px solid #d0dbe8;border-left:0;border-radius:12px 0 0 0;box-shadow:4px -8px 30px rgba(0,0,0,.06)}
html[dir="rtl"] #su{left:auto;right:404px;border-radius:12px 0 0 0;box-shadow:-4px -4px 20px rgba(0,0,0,.04)}
html[dir="rtl"] #nvStart{left:auto;right:14px}
html[dir="rtl"] .xz-topbar,html[dir="rtl"] #xzTopbar{direction:rtl}
html[dir="rtl"] .xz-crumb,html[dir="rtl"] #xzCrumb{margin-right:0;margin-left:auto}
html[dir="rtl"] th,html[dir="rtl"] td{text-align:right}
html[dir="rtl"] .layui-table-cell{text-align:right}
html[dir="rtl"] input,html[dir="rtl"] textarea,html[dir="rtl"] select{direction:rtl;text-align:right}
html[dir="rtl"] .pull-right,html[dir="rtl"] .text-right{float:left !important;text-align:left !important}
html[dir="rtl"] .pull-left,html[dir="rtl"] .text-left{float:right !important;text-align:right !important}
html[dir="rtl"] ul,html[dir="rtl"] ol{padding-right:18px;padding-left:0}
/* numbers, extension numbers and IP addresses stay left-to-right inside RTL text */
html[dir="rtl"] .xz-num,html[dir="rtl"] code,html[dir="rtl"] pre{direction:ltr;unicode-bidi:embed;text-align:left}
