/* ==========================================================================
   归浦GEO v8.5 —— 工作台浅色主题（light shell）

   目标：全站统一浅色 —— 落地页 / 加载动画 / 登录页 / 工作台后台同一套语言：
     · 页面底 #F7F9FC，卡片 #FFFFFF，主色 #2563EB，发丝级描边，克制动效
     · 只做「变量覆盖 + 少量硬编码修正」，不改动 v8.css / v83.css 的结构契约
   加载顺序：v8.css → v83.css → 本文件 → login.css（登录页自带浅色，不受影响）
   ========================================================================== */

:root{
  /* 底色 */
  --bg:#FAFAF7;
  --surface:#FFFFFF;
  --surface-2:#F7F6F1;
  --surface-3:#F1F0E9;

  /* 主色（与落地页 / 登录页同色板） */
  --brand:#1D4ED8;
  --brand-600:#1D4ED8;
  --brand-500:#2563EB;
  --brand-50:rgba(29,78,216,.08);
  --brand-100:rgba(29,78,216,.16);
  --accent:#7C3AED;
  --accent-50:#F1EEFE;

  /* 文本 */
  --text:#111110;
  --text-2:rgba(17,17,16,.66);
  --text-3:rgba(17,17,16,.48);
  --text-4:rgba(17,17,16,.34);

  /* 边框与分隔（发丝级描边，参考模板 #111110/10） */
  --line:rgba(17,17,16,.10);
  --line-2:rgba(17,17,16,.06);

  /* 状态色（浅色底上的可读版本） */
  --success:#059669;  --success-bg:#E9FBF2;
  --warn:#D97706;     --warn-bg:#FFF8EC;
  --danger:#DC2626;   --danger-bg:#FEF3F2;
  --info:#2563EB;     --info-bg:#EFF8FF;

  /* 阴影（浅色底用轻柔阴影拉开层次） */
  --shadow-1:0 1px 2px rgba(16,24,40,.04);
  --shadow-2:0 4px 12px rgba(16,24,40,.06);
  --shadow-3:0 12px 32px rgba(16,24,40,.10)}

/* ---------------- 根容器 ---------------- */
html, body{ background:var(--bg); color:var(--text)}
body{ -webkit-font-smoothing:antialiased}
::selection{ background:rgba(37,99,235,.18); color:var(--text)}

/* 滚动条 */
*::-webkit-scrollbar{ width:9px; height:9px}
*::-webkit-scrollbar-track{ background:transparent}
*::-webkit-scrollbar-thumb{ background:rgba(15,23,42,.18); border-radius:6px}
*::-webkit-scrollbar-thumb:hover{ background:rgba(15,23,42,.30)}

.v8-shell{ background:var(--bg)}
.v8-main, .v8-body, .v8-wrap{ background:transparent; color:var(--text)}

/* ---------------- 侧边栏（始终展开，不做折叠） ---------------- */
.v8-side{
  width:var(--sidebar-w,224px);
  flex:0 0 var(--sidebar-w,224px);
  background:#FFFFFF !important;
  border-right:1px solid var(--line) !important}
.v8-side__brand{ color:var(--text)}
.v8-side__brand img{ filter:none}
.v8-side__foot, .v8-side__sub{ color:var(--text-4) !important}
.v8-nav__item{ color:var(--text-2)}
.v8-nav__item:hover{ background:rgba(15,23,42,.04) !important; color:var(--text)}
.v8-nav__item.is-active{
  background:var(--brand-50) !important;
  color:var(--brand-600) !important;
  font-weight:600}
.v8-nav__group{ color:var(--text-4) !important}
.v8-nav__subitem{ color:var(--text-3)}
.v8-nav__subitem:hover{ color:var(--text); background:rgba(15,23,42,.04) !important}

/* ---------------- 顶栏 ---------------- */
.v8-top{
  background:rgba(255,255,255,.88) !important;
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line) !important;
  color:var(--text)}
.v8-top__title, .v8-top__crumb{ color:var(--text)}
.v8-top__search{
  background:var(--surface-2) !important;
  border-color:var(--line) !important;
  color:var(--text)}
.v8-top__search:focus-within{
  background:#FFFFFF !important;
  border-color:var(--brand-500) !important}
.v8-top__search input{ color:var(--text)}
.v8-top__search input::placeholder{ color:var(--text-4)}

/* ---------------- 卡片 / KPI ---------------- */
.v8-card, .v8-kpi{
  background:var(--surface) !important;
  border:1px solid var(--line) !important;
  color:var(--text)}
.v8-card__head{ border-bottom:1px solid var(--line-2) !important; color:var(--text)}
.v8-card--hoverable:hover{ border-color:rgba(37,99,235,.40) !important}
.v8-kpi__label{ color:var(--text-3) !important}
.v8-kpi__val{ color:var(--text)}
.v8-stat, .v8-item, .v8-timeline__item{ border-color:var(--line-2) !important}
.v8-item:hover{ background:rgba(15,23,42,.02) !important}
.v8-quote, .v8-raw, .v8-code{
  background:var(--surface-3) !important; color:var(--text-2);
  border-color:var(--line) !important}

/* ---------------- 表格 ---------------- */
.v8-table{ color:var(--text)}
.v8-table th{
  background:var(--surface-3) !important;
  color:var(--text-3) !important;
  border-bottom:1px solid var(--line) !important}
.v8-table td{ border-bottom:1px solid var(--line-2) !important; color:var(--text-2)}
.v8-table tbody tr:hover td{ background:rgba(15,23,42,.02) !important}
.v8-table-wrap{ border-color:var(--line) !important}

/* 平台表现单元格 */
.v8-cell{ color:var(--text-2)}
.v8-cell--2{ background:var(--warn-bg) !important; color:#B45309 !important}

/* ---------------- 表单控件 ---------------- */
.v8-input, select.v8-input, textarea.v8-input, .v8-filters select, .v8-filters input{
  background:#FFFFFF !important;
  border:1px solid var(--line) !important;
  color:var(--text) !important}
.v8-input::placeholder{ color:var(--text-4)}
.v8-input:focus{
  border-color:var(--brand-500) !important}
.v8-field label{ color:var(--text-2) !important}

/* ---------------- 按钮 ---------------- */
.v8-btn{
  background:#FFFFFF !important;
  border:1px solid var(--line) !important;
  color:var(--text-2) !important}
.v8-btn:hover{ background:var(--surface-3) !important; color:var(--text) !important}
.v8-btn--primary, .v8-btn--primary:hover{
  background:linear-gradient(180deg,#3B82F6,#2563EB) !important;
  border-color:#2563EB !important; color:#fff !important}
.v8-btn--ghost{ background:transparent !important}
.v8-btn--danger{ background:var(--danger-bg) !important; color:var(--danger) !important; border-color:rgba(220,38,38,.28) !important}

/* ---------------- 徽章 / 标签 / 分段 ---------------- */
.v8-badge{ border:1px solid transparent}
.v8-badge--gray{ background:var(--surface-3) !important; color:var(--text-2) !important; border-color:var(--line) !important}
.v8-badge--brand{ background:var(--brand-50) !important; color:var(--brand-600) !important; border-color:var(--brand-100) !important}
.v8-badge--success{ background:var(--success-bg) !important; color:#047857 !important}
.v8-badge--warn{ background:var(--warn-bg) !important; color:#B45309 !important}
.v8-badge--danger{ background:var(--danger-bg) !important; color:#B42318 !important}
.v8-badge--info{ background:var(--info-bg) !important; color:#1D4ED8 !important}
.v8-seg{ background:var(--surface-3) !important; border-color:var(--line) !important}
.v8-seg button{ color:var(--text-3) !important}
.v8-seg button.is-active{ background:#FFFFFF !important; color:var(--brand-600) !important}

/* ---------------- 弹层：模态 / 抽屉 / Toast / 提示 ---------------- */
.v8-modal, .v8-drawer{
  background:var(--surface) !important;
  border:1px solid var(--line) !important;
  color:var(--text)}
.v8-modal__head, .v8-drawer__head{ border-bottom:1px solid var(--line) !important}
.v8-modal__foot, .v8-drawer__foot{ border-top:1px solid var(--line) !important; background:var(--surface-2) !important}
.v8-modal-mask, .v8-drawer-mask{ background:rgba(15,23,42,.42) !important}
.v8-toast{ background:#FFFFFF !important; color:var(--text); border:1px solid var(--line) !important}
.v8-tip{ background:#101828 !important; color:#fff !important}

/* ---------------- 空状态 / 进度 / 分页 ---------------- */
.v8-empty{ color:var(--text-3)}
.v8-empty__ico{ background:var(--surface-3) !important; color:var(--text-4) !important}
.v8-prog{ background:var(--surface-3) !important}
.v8-pager button{ background:#FFFFFF !important; border-color:var(--line) !important; color:var(--text-2) !important}
.v8-pager button.is-active{ background:var(--brand-50) !important; color:var(--brand-600) !important; border-color:var(--brand-100) !important}
.v8-dim__bar{ background:var(--surface-3) !important}
.v8-skel{ background:linear-gradient(90deg,#F2F5FA,#EDF1F7,#F2F5FA) !important}

/* ---------------- AI 平台图标与矩阵 ---------------- */
.v8-aiico{ background:var(--surface-3) !important; border-radius:8px; overflow:hidden}
.v8-aiico img{ object-fit:contain}
.v8-aimatrix__cell{
  background:#FFFFFF !important;
  border:1px solid var(--line) !important;
  color:var(--text-2)}
.v8-aimatrix__cell:hover{ border-color:rgba(37,99,235,.45) !important}
.v8-aimatrix__name{ color:var(--text-2) !important}
.v8-aimatrix__val{ color:var(--text-3) !important}

/* ---------------- 图表容器 ---------------- */
.v8-chart{ background:transparent !important}
.v8-chart > div{ background:transparent !important}

/* ---------------- 只读提示条 / 数据源标记 ---------------- */
.v8-readonly-bar{
  background:var(--info-bg) !important;
  border:1px solid var(--brand-100) !important;
  color:#1D4ED8 !important}
.v8-src{ background:var(--surface-3) !important; color:var(--text-3) !important}

/* ---------------- 微信扫码登录弹窗 ---------------- */
.v8-wx-qr{ background:#fff !important}        /* 二维码必须白底才可被扫描 */
.v8-wx-tip{ color:var(--text-3) !important}
