/* ============================================================================
 * 批次34-A · 租户端（server/public/app.html）iOS 液态玻璃外壳层
 * 与 admin-glass.css 同族写法；令牌真源 = /static/tokens.css。
 *
 * 本文件职责（契约见 docs/design/tokens.md §1/§3/§8/§9、docs/batch33_integration.md §②）：
 *   1) 别名转发：app.html 历史令牌名（--surface/--fg/--bg-hover/--brand-dark/…）
 *      → tokens.css 真源。本文件不定义任何新令牌字面值；组件色一律 color-mix/var 派生。
 *   2) 玻璃外壳：body 环境光斑（--amb-* 四团）/ .wrap 玻璃衬底 / .top 玻璃顶栏（含光带）
 *      / .side 浮动深色玻璃导轨 / .card 玻璃档 / .stat KPI 玻璃片。
 *   3) body.perf-mode 降级（与平台端同名同语义）+ 窄屏复位。
 * 表格保持实底（契约：表格区不得玻璃底）；暗色翻转完全交给 tokens.css 暗色块，
 * 本文件不出现按主题硬编码的暗色色值（恒深色导轨的固定文字色与平台端 layout.html 同款）。
 * ==========================================================================*/

/* ---------- 1. 别名转发（app.html 里既有 var(--surface) 等引用无需改写即生效） ---------- */
:root{
  --surface:var(--bg,#f4f5fa);
  --surface-2:var(--card,#fff);
  --fg:var(--text,#1f2430);
  --fg-2:var(--muted,#5A6072);
  /* 行悬停/浅衬底：随 --card 暗色自动翻转（浅色近 #fafbff，暗色为深底加品牌微光） */
  --bg-hover:color-mix(in srgb,var(--brand-lite,#7C74FF) 8%,var(--card,#fff));
  /* app.html 专属组件令牌：全部由 tokens 派生，不新造字面值 */
  --brand-dark:color-mix(in srgb,var(--brand,#4B3FE3) 72%,#000);
  --brand-grad:linear-gradient(135deg,var(--brand,#4B3FE3),var(--brand-dark,#3228b3));
  --shadow:var(--shadow-1,0 1px 3px rgba(20,20,50,.06));
}
/* tokens.css 暗色块不翻转 --brand-soft（租户端 th/.b30-tag/.lf-eye 大量消费）→
   在此按 tokens 派生暗色值，消除 app.html 原 #232a4d 硬编码 */
html[data-theme="dark"]{
  --brand-soft:color-mix(in srgb,var(--brand,#4B3FE3) 18%,var(--card,#1a1d28));
}

/* ---------- 2. body 壁纸（批次35：与设计稿 .admin 同款 3 团光斑 + 斜向底渐变） ----------
 * AA 红线：正文裸文字一律坐在 .wrap 托底上（app.html 全部内容页均在 .wrap 内）；
 * 光斑色相/强度、玻璃档位全部由 tokens.css 供，本文件只消费。 */
body{
  color:var(--text,#1f2430);
  background-color:var(--bg,#f4f5fa);
  background-image:radial-gradient(900px 520px at 12% 0%,var(--amb-1) 0,transparent 55%),
                   radial-gradient(820px 600px at 92% 18%,var(--amb-2) 0,transparent 55%),
                   radial-gradient(700px 520px at 48% 104%,var(--amb-3) 0,transparent 60%),
                   var(--base-grad,none);
  background-attachment:fixed;background-repeat:no-repeat;
}

/* ---------- 3. .wrap 托底（批次35 制度：不再是"一整块大白衬底"，只留极淡磨砂抬亮度） ----------
 * padding 仍由 app.html 自带规则提供（20px 24px / 窄屏 12px 14px），此处只管托底与悬浮边距。 */
.wrap{
  position:relative;
  margin:var(--s5,24px) var(--s5,24px);
  background-color:var(--wrap-fill,rgba(255,255,255,.30));
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  backdrop-filter:blur(14px) saturate(160%);
  border:0;
  border-radius:var(--r-card,20px);
  box-shadow:none;
}


/* ---------- 4. .top 玻璃顶栏（胶囊 + 横向光带，光带在 perf-mode 关闭） ---------- */
.top{
  position:sticky;top:var(--s5,24px);z-index:60;
  margin:var(--s5,24px) var(--s5,24px) 0;
  background-color:var(--sheet-fill,color-mix(in srgb,#fff 46%,transparent));
  background-image:linear-gradient(100deg,
    color-mix(in srgb,var(--brand-lite,#7C74FF) 14%,transparent),
    transparent 46%,
    color-mix(in srgb,var(--info,#22D3EE) 12%,transparent));
  -webkit-backdrop-filter:var(--blur-sheet,blur(20px) saturate(180%));
  backdrop-filter:var(--blur-sheet,blur(20px) saturate(180%));
  border:1px solid var(--spec-edge,rgba(255,255,255,.8));
  border-radius:var(--r-pill,999px);
  box-shadow:var(--depth-sheet,0 8px 32px rgba(30,34,60,.10)),inset 0 1px 0 var(--spec-top,rgba(255,255,255,.9));
}

/* ---------- 5. .side 导轨（批次35：改主题跟随玻璃卡，配色全部吃 --rail-* 令牌） ----------
 * 几何（宽度/圆角/外距/sticky）在 app.html，材质与文字色在此，两端与平台端 layout.html 同源。 */
.side{
  overflow:hidden;
  background-color:var(--rail-fill,rgba(255,255,255,.62));
  background-image:none;
  -webkit-backdrop-filter:var(--rail-blur,blur(20px) saturate(180%));
  backdrop-filter:var(--rail-blur,blur(20px) saturate(180%));
  border:1px solid var(--rail-line,rgba(255,255,255,.85));
  box-shadow:var(--depth-sheet,0 8px 32px rgba(30,34,60,.10)),inset 0 1px 0 var(--spec-top,rgba(255,255,255,.9));
  color:var(--rail-fg,#1F2430);
}
.side .logo{color:var(--rail-fg,#1F2430)}
.side .sub{color:var(--rail-fg-dim,#5A6072)}
.side nav a{color:var(--rail-fg,#1F2430);border-radius:var(--r-pill,999px);
  transition:background-color .18s var(--ease,cubic-bezier(.32,.72,0,1)),color .18s var(--ease,cubic-bezier(.32,.72,0,1))}
/* 毛玻璃元素禁位移动画：hover 只改 background/color */
.side nav a:hover{background:var(--rail-hover,rgba(30,34,60,.06));color:var(--rail-fg,#1F2430)}
.side nav a.active{background:var(--rail-active,rgba(75,63,227,.14));color:var(--rail-active-fg,#3228B3);font-weight:600}
.side nav .navgrp{color:var(--rail-fg-dim,#5A6072);letter-spacing:1.6px}
.side .foot{color:var(--rail-fg-dim,#5A6072);border-top:1px solid var(--rail-line,rgba(255,255,255,.85))}
.side :focus-visible{outline-color:var(--link-ink,#4B3FE3)}

/* ---------- 6. .card 玻璃档（批次45 已随族归库 aigeo-ui.css §11a）/ .stat KPI 玻璃片 / 表格实底 ----------
 * .card 的材质/hover 副本已删（此前与平台端逐字同值，唯一真源在库）；.stat 语义不同族，仍留本层。 */
/* .stat = 租户端 KPI 卡（对齐设计稿 .stat：弱玻璃片、圆角 16、默认无左色条） */
.stat{
  background-color:var(--card-fill,color-mix(in srgb,#fff 55%,transparent));
  border:1px solid var(--spec-edge,rgba(255,255,255,.8));
  border-radius:var(--r-soft,16px);
  -webkit-backdrop-filter:var(--blur-card,blur(16px) saturate(160%));
  backdrop-filter:var(--blur-card,blur(16px) saturate(160%));
  box-shadow:var(--depth-card,0 8px 32px rgba(30,34,60,.10)),inset 0 1px 0 var(--spec-top,rgba(255,255,255,.9));
}
/* 表格区保持实底（契约：表格不得玻璃底；table 在 .card 玻璃档内也要可读性优先） */
table{background-color:var(--card,#fff)}

/* ---------- 7. 性能模式（与平台端同名同语义；.card 的 perf 降级已随族归库 §17，批次45） ----------
 * tokens.css 已负责：关光斑（body background-image:none）、全局关 backdrop-filter、
 * .wrap 退实底。此处补齐租户端专属层。 */
body.perf-mode .top{background-image:none;background-color:var(--card,#fff);border-color:var(--line,#e7e9f2)}
body.perf-mode .stat{background-color:var(--card,#fff);background-image:none;border-color:var(--line,#e7e9f2);box-shadow:none}
body.perf-mode .stat{border-left-color:var(--brand,#4B3FE3)}
body.perf-mode .side{background-image:none;background-color:var(--card,#fff);border-color:var(--line,#e7e9f2);box-shadow:none}

/* ---------- 8. 窄屏复位（≤760px 与 app.html 既有断点一致：抽屉侧栏 + 通栏顶栏/内容） ---------- */
@media (max-width:760px){
  .top{position:static;margin:0;border-radius:0;border-width:0 0 1px;border-color:var(--line,#e7e9f2)}
  .wrap{margin:0;border-radius:0;border-width:0}
  .side{border-radius:0;border-width:0}
}
