/* ==========================================================================
   AIOS 控制台 · 换皮层(谷 1009 定:默认 A 流体×像素;C 暗场辉光跟随系统深色;B 贴纸舞台可选)
   设计源:laplace-work/design/system(tokens/motion/fx)+ 方案墙 A/B/C(素材/aios-ui-suite-1008)。

   规矩(新页面必须遵守,否则换皮会穿帮):
   - 页面和组件只用下面的「语义变量」(--bg --card --ink --muted --line --brand …),不写死颜色。
   - 皮 = <html data-skin="fluid|sticker|midnight">,由 core.js 的 AIOS.skin 设置。
   - 皮之间只差变量 + 少量装饰(本文件末尾按皮分段);组件结构只有一份。
   ========================================================================== */

@font-face{font-family:'Onest';font-weight:100 900;font-style:normal;font-display:swap;src:url('/vendor/onest-wght.woff2') format('woff2')}
@font-face{font-family:'Unbounded';font-weight:200 900;font-style:normal;font-display:swap;src:url('/vendor/unbounded-wght.woff2') format('woff2')}
@font-face{font-family:'Martian Mono';font-weight:100 800;font-style:normal;font-display:swap;src:url('/vendor/martian-mono-wght.woff2') format('woff2')}

/* ---------- 品牌与动效(三套皮共用) ---------- */
:root{
  --lw-orange:#FF7A45; --lw-magenta:#E23CB5; --lw-violet:#8B3DFF; --lw-blue:#2F7BFF;
  --lw-grad:linear-gradient(115deg,var(--lw-orange) 0%,var(--lw-magenta) 38%,var(--lw-violet) 68%,var(--lw-blue) 100%);
  --lw-grad-soft:linear-gradient(115deg,rgb(255 122 69 / .14),rgb(226 60 181 / .12) 45%,rgb(47 123 255 / .10));
  --lw-good:#1FB878; --lw-warn:#F2A516; --lw-bad:#F0466A;
  --lw-spring:cubic-bezier(.34,1.56,.64,1); --lw-spring2:cubic-bezier(.26,1.9,.5,1);
  --lw-out:cubic-bezier(.22,1,.36,1); --lw-in:cubic-bezier(.6,0,.8,.25); --lw-stagger:38ms;
  --lw-font-display:"Unbounded","PingFang SC","Hiragino Sans GB",system-ui,sans-serif;
  --lw-font-body:"Onest","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --lw-font-mono:"Martian Mono","SF Mono",ui-monospace,Menlo,monospace;
  --grad:var(--lw-grad); --grad-soft:var(--lw-grad-soft);
  --spring:var(--lw-spring); --ease:var(--lw-out);
  --on-grad:#FFFFFF;   /* 品牌渐变上的字/图标(渐变三皮相同,所以固定白) */
  /* 页面点缀色(谷1009 串皮整治):应用图标底色、头像渐变、图表分类色、加载像素、竖条……一律用 --acc-1..4,
     不直接写 --lw-orange/magenta/violet/blue。三套基础皮=品牌四色;更多主题在自己的 css 里换成本皮的色。 */
  --acc-1:var(--lw-orange); --acc-2:var(--lw-magenta); --acc-3:var(--lw-violet); --acc-4:var(--lw-blue);
  /* 两个点缀色之间的渐变(如 AI 同事头像):第一色铺到哪;0%=渐变(A 的流体感),100%=纯色块 */
  --acc-solid:0%;
  /* 卡片角落的点阵底纹(A 的像素语言);不要点阵的主题设 none */
  --deco-dots:var(--lw-dots);
}

/* ==========================================================================
   A · 流体 × 像素(默认,浅色)
   ========================================================================== */
:root,:root[data-skin="fluid"]{
  color-scheme:light;
  --app-font:var(--lw-font-body); --app-mono:var(--lw-font-mono); --font-display:var(--lw-font-display);
  --bg:#F6F4FB; --panel:#EFEBF8; --card:#FFFFFF; --raised:#F3F0FA; --sunken:#E8E3F4;
  --ink:#17122A; --ink2:#2C2547; --muted:#5E5780; --hint:#8D86A8;
  --line:rgb(23 18 42 / .09); --line2:rgb(23 18 42 / .06); --line-strong:rgb(23 18 42 / .16);
  --brand:#C42A9C; --brand-d:#A71F83; --brand-bg:rgb(226 60 181 / .09); --on-brand:#FFFFFF;
  --primary-bg:#17122A; --primary-fg:#FFFFFF; --primary-bg-hover:#2C2547;
  --danger:#CF2650; --danger-bg:rgb(240 70 106 / .11);
  --warn:#A86400;   --warn-bg:rgb(242 165 22 / .15);
  --ok:#0B8A56;     --ok-bg:rgb(31 184 120 / .12);
  --info:#1E5FD6;   --info-bg:rgb(47 123 255 / .11);
  --radius:10px; --radius-lg:16px; --radius-sm:7px;
  --lift-color:rgb(23 18 42 / .12);
  --lw-lift-color:var(--lift-color);
  --lw-lift-sm:3px 4px 0 var(--lift-color); --lw-lift:6px 7px 0 var(--lift-color);
  --shadow:0 0 0 1px var(--line); --shadow-hover:0 0 0 1px var(--line-strong),3px 4px 0 var(--lift-color);
  --shadow-pop:0 0 0 1px var(--line),0 18px 40px -12px rgb(23 18 42 / .22),6px 7px 0 var(--lift-color);
  --side-bg:#FFFFFF; --top-bg:rgb(246 244 251 / .82);
  --mask-bg:rgb(23 18 42 / .32);
  --code-bg:#F1EDF9; --th-bg:#F8F6FC; --row-hover:rgb(226 60 181 / .05);
  --ava-bg:#17122A; --ava-fg:#FFFFFF; --chip-dark:#17122A;
  --scroll-thumb:rgb(23 18 42 / .18);
  --lw-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .09 0 0 0 0 .07 0 0 0 0 .16 0 0 0 .13 -.04'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --lw-dots:radial-gradient(circle,rgb(23 18 42 / .08) 1px,transparent 1.4px);
}

/* ==========================================================================
   B · 贴纸舞台(浅色·活泼;延续现网登录页)
   ========================================================================== */
:root[data-skin="sticker"]{
  color-scheme:light;
  --app-font:"Onest","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --font-display:"Onest","PingFang SC",system-ui,sans-serif;
  --bg:#F4F1FD; --panel:#F1F2F9; --card:#FFFFFF; --raised:#F7F7FC; --sunken:#ECEEF8;
  --ink:#23252B; --ink2:#3C4149; --muted:#6B6F80; --hint:#9A9EAE;
  --line:#ECEEF3; --line2:#F1F2F7; --line-strong:#E1E3EE;
  --brand:#5E6AD2; --brand-d:#4F5BC4; --brand-bg:#EEF0FC; --on-brand:#FFFFFF;
  --primary-bg:#5E6AD2; --primary-fg:#FFFFFF; --primary-bg-hover:#4F5BC4;
  --danger:#D6453F; --danger-bg:#FDECEB;
  --warn:#B2661C;   --warn-bg:#FFF4E6;
  --ok:#2F9E5B;     --ok-bg:#E9F7EF;
  --info:#3370FF;   --info-bg:#EAF1FF;
  --radius:12px; --radius-lg:16px; --radius-sm:9px;
  --lift-color:rgb(40 44 90 / .12); --lw-lift-color:var(--lift-color);
  --lw-lift-sm:0 0 0 2px #fff,0 0 0 3px rgba(30,34,60,.07),0 4px 14px rgba(40,44,90,.08);
  --lw-lift:0 0 0 3px #fff,0 0 0 4px rgba(30,34,60,.08),0 12px 26px rgba(40,44,90,.14);
  --shadow:0 0 0 2px #fff,0 0 0 3px rgba(30,34,60,.06),0 4px 14px rgba(40,44,90,.06);
  --shadow-hover:0 0 0 3px #fff,0 0 0 4px rgba(30,34,60,.08),0 12px 26px rgba(40,44,90,.14);
  --shadow-pop:0 0 0 3px #fff,0 0 0 4px rgba(30,34,60,.08),0 24px 50px rgba(40,44,90,.2);
  --side-bg:rgb(255 255 255 / .72); --top-bg:rgb(244 241 253 / .7);
  --mask-bg:rgb(35 37 43 / .28);
  --code-bg:#F1F2F7; --th-bg:#F7F7FC; --row-hover:#F3F4FD;
  --ava-bg:#23252B; --ava-fg:#FFFFFF; --chip-dark:#23252B;
  --scroll-thumb:rgb(94 106 210 / .22);
  --lw-dots:radial-gradient(rgba(94,106,210,.16) 1.2px,transparent 1.3px);
}

/* ==========================================================================
   C · 暗场辉光(深色;系统深色时自动用它)
   ========================================================================== */
:root[data-skin="midnight"]{
  color-scheme:dark;
  --app-font:"Onest","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --font-display:"Onest","PingFang SC",system-ui,sans-serif;
  --bg:#08080C; --panel:#141419; --card:#101016; --raised:#17171F; --sunken:#0B0B10;
  --ink:#EDEDF2; --ink2:#D2D2DC; --muted:#9A9AAE; --hint:#6E6E84;
  --line:rgb(255 255 255 / .07); --line2:rgb(255 255 255 / .045); --line-strong:rgb(255 255 255 / .14);
  --brand:#A880FF; --brand-d:#B794FF; --brand-bg:rgb(157 107 255 / .14); --on-brand:#0A0A0F;
  --primary-bg:#EDEDF2; --primary-fg:#0A0A0F; --primary-bg-hover:#FFFFFF;
  --danger:#FF8AA3; --danger-bg:rgb(255 107 138 / .13);
  --warn:#FDD27F;   --warn-bg:rgb(251 191 74 / .13);
  --ok:#7BEDB8;     --ok-bg:rgb(74 222 155 / .13);
  --info:#8DBAFF;   --info-bg:rgb(91 155 255 / .13);
  --lw-good:#4ADE9B; --lw-warn:#FBBF4A; --lw-bad:#FF6B8A;
  --radius:10px; --radius-lg:14px; --radius-sm:7px;
  --lift-color:rgb(0 0 0 / .5); --lw-lift-color:var(--lift-color);
  --lw-lift-sm:inset 0 1px 0 rgb(255 255 255 / .05),0 0 0 1px rgb(0 0 0 / .35),0 2px 6px -2px rgb(0 0 0 / .5);
  --lw-lift:inset 0 1px 0 rgb(255 255 255 / .05),0 0 0 1px rgb(0 0 0 / .4),0 16px 40px -12px rgb(0 0 0 / .6);
  --shadow:inset 0 1px 0 rgb(255 255 255 / .04),0 0 0 1px var(--line);
  --shadow-hover:inset 0 1px 0 rgb(255 255 255 / .06),0 0 0 1px var(--line-strong),0 0 30px -12px rgb(139 61 255 / .45);
  --shadow-pop:inset 0 1px 0 rgb(255 255 255 / .07),0 0 0 1px rgb(255 255 255 / .08),0 30px 80px -20px rgb(0 0 0 / .85),0 0 60px -30px rgb(139 61 255 / .35);
  --side-bg:#0B0B10; --top-bg:rgb(8 8 12 / .78);
  --mask-bg:rgb(0 0 0 / .6);
  --code-bg:#17171F; --th-bg:#0E0E14; --row-hover:rgb(255 255 255 / .035);
  --ava-bg:#EDEDF2; --ava-fg:#0A0A0F; --chip-dark:#2A2A35;
  --scroll-thumb:rgb(255 255 255 / .14);
  --lw-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .12 -.04'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --lw-dots:radial-gradient(circle,rgb(255 255 255 / .07) 1px,transparent 1.4px);
}

/* ---------- Element Plus 令牌 → 语义变量(三套皮自动跟随) ---------- */
:root,:root[data-skin]{
  --el-font-family:var(--app-font); --el-font-size-base:13px;
  --el-color-primary:var(--brand);
  --el-color-primary-light-3:color-mix(in srgb,var(--brand) 70%,var(--card));
  --el-color-primary-light-5:color-mix(in srgb,var(--brand) 50%,var(--card));
  --el-color-primary-light-7:color-mix(in srgb,var(--brand) 30%,var(--card));
  --el-color-primary-light-8:color-mix(in srgb,var(--brand) 20%,var(--card));
  --el-color-primary-light-9:color-mix(in srgb,var(--brand) 10%,var(--card));
  --el-color-primary-dark-2:var(--brand-d);
  --el-color-success:var(--ok); --el-color-warning:var(--warn); --el-color-danger:var(--danger); --el-color-error:var(--danger); --el-color-info:var(--muted);
  --el-color-success-light-9:var(--ok-bg); --el-color-warning-light-9:var(--warn-bg); --el-color-danger-light-9:var(--danger-bg); --el-color-error-light-9:var(--danger-bg); --el-color-info-light-9:var(--panel);
  --el-color-success-light-8:color-mix(in srgb,var(--ok) 22%,var(--card)); --el-color-warning-light-8:color-mix(in srgb,var(--warn) 22%,var(--card));
  --el-color-danger-light-8:color-mix(in srgb,var(--danger) 22%,var(--card)); --el-color-error-light-8:color-mix(in srgb,var(--danger) 22%,var(--card)); --el-color-info-light-8:var(--line-strong);
  --el-color-success-light-5:color-mix(in srgb,var(--ok) 50%,var(--card)); --el-color-warning-light-5:color-mix(in srgb,var(--warn) 50%,var(--card));
  --el-color-danger-light-5:color-mix(in srgb,var(--danger) 50%,var(--card)); --el-color-info-light-5:var(--hint);
  --el-color-success-light-3:color-mix(in srgb,var(--ok) 70%,var(--card)); --el-color-warning-light-3:color-mix(in srgb,var(--warn) 70%,var(--card));
  --el-color-danger-light-3:color-mix(in srgb,var(--danger) 70%,var(--card)); --el-color-info-light-3:var(--muted);
  --el-bg-color:var(--card); --el-bg-color-page:var(--bg); --el-bg-color-overlay:var(--card);
  --el-text-color-primary:var(--ink); --el-text-color-regular:var(--ink2); --el-text-color-secondary:var(--muted); --el-text-color-placeholder:var(--hint); --el-text-color-disabled:var(--hint);
  --el-border-color:var(--line-strong); --el-border-color-light:var(--line); --el-border-color-lighter:var(--line); --el-border-color-extra-light:var(--line2); --el-border-color-dark:var(--line-strong); --el-border-color-hover:var(--hint);
  --el-fill-color:var(--panel); --el-fill-color-light:var(--raised); --el-fill-color-lighter:var(--raised); --el-fill-color-extra-light:var(--raised); --el-fill-color-blank:var(--card); --el-fill-color-dark:var(--sunken); --el-fill-color-darker:var(--sunken);
  --el-mask-color:color-mix(in srgb,var(--bg) 80%,transparent); --el-overlay-color-lighter:var(--mask-bg);
  --el-border-radius-base:var(--radius-sm); --el-border-radius-small:6px; --el-border-radius-round:20px;
  --el-box-shadow:var(--shadow-pop); --el-box-shadow-light:var(--shadow-pop); --el-box-shadow-lighter:var(--shadow); --el-box-shadow-dark:var(--shadow-pop);
  --el-transition-function-ease-in-out-bezier:var(--lw-out);
}

/* ---------- 公共组件微调(只用变量) ---------- */
.el-button--primary{--el-button-bg-color:var(--primary-bg);--el-button-border-color:var(--primary-bg);--el-button-text-color:var(--primary-fg);
  --el-button-hover-bg-color:var(--primary-bg-hover);--el-button-hover-border-color:var(--primary-bg-hover);--el-button-hover-text-color:var(--primary-fg);
  --el-button-active-bg-color:var(--primary-bg);--el-button-active-border-color:var(--primary-bg)}
.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color:var(--brand-d);--el-button-bg-color:var(--brand-bg);--el-button-border-color:color-mix(in srgb,var(--brand) 30%,transparent);
  --el-button-hover-text-color:var(--on-brand);--el-button-hover-bg-color:var(--brand);--el-button-hover-border-color:var(--brand)}
.el-button{transition:transform .35s var(--spring),background-color .15s,border-color .15s,color .15s,box-shadow .2s}
.el-button:active:not(.is-disabled){transform:scale(.96)}
.el-dialog,.el-drawer,.el-message-box,.el-popper.is-light,.el-dropdown__popper.el-popper,.el-select__popper.el-popper{background:var(--card)}
.el-dialog,.el-message-box{border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}
.el-popper.is-light{border-color:var(--line)!important}
.el-input__wrapper,.el-textarea__inner,.el-select__wrapper{background-color:var(--card)}
.el-tag{--el-tag-bg-color:var(--panel);--el-tag-border-color:var(--line);--el-tag-text-color:var(--ink2)}
.el-tag--success{--el-tag-bg-color:var(--ok-bg);--el-tag-border-color:transparent;--el-tag-text-color:var(--ok)}
.el-tag--warning{--el-tag-bg-color:var(--warn-bg);--el-tag-border-color:transparent;--el-tag-text-color:var(--warn)}
.el-tag--danger{--el-tag-bg-color:var(--danger-bg);--el-tag-border-color:transparent;--el-tag-text-color:var(--danger)}
.el-tag--info{--el-tag-bg-color:var(--panel);--el-tag-border-color:transparent;--el-tag-text-color:var(--muted)}
.el-tag--primary,.el-tag:not([class*="el-tag--"]){--el-tag-bg-color:var(--brand-bg);--el-tag-border-color:transparent;--el-tag-text-color:var(--brand-d)}
.el-tag.el-tag--dark{--el-tag-bg-color:var(--chip-dark);--el-tag-border-color:var(--chip-dark);--el-tag-text-color:#fff}
.el-alert--success.is-light{background:var(--ok-bg);color:var(--ok)} .el-alert--warning.is-light{background:var(--warn-bg);color:var(--warn)}
.el-alert--error.is-light{background:var(--danger-bg);color:var(--danger)} .el-alert--info.is-light{background:var(--panel);color:var(--muted)}
.el-table{--el-table-bg-color:var(--card);--el-table-tr-bg-color:var(--card);--el-table-expanded-cell-bg-color:var(--card);--el-table-header-bg-color:var(--th-bg);--el-table-row-hover-bg-color:var(--row-hover);--el-table-border-color:var(--line);--el-table-text-color:var(--ink2);--el-table-header-text-color:var(--muted)}
.el-table th.el-table__cell{background:var(--th-bg)!important}
.el-switch.is-checked .el-switch__core{background:var(--grad);border-color:transparent}
.el-message{border-radius:var(--radius);box-shadow:var(--shadow-pop);background:var(--card);border-color:var(--line)}
.el-loading-mask{background-color:color-mix(in srgb,var(--card) 70%,transparent)}
.el-overlay{background-color:var(--mask-bg)}
.el-empty{--el-empty-fill-color-0:var(--card);--el-empty-fill-color-1:color-mix(in srgb,var(--brand) 6%,var(--card));--el-empty-fill-color-2:color-mix(in srgb,var(--brand) 10%,var(--card));--el-empty-fill-color-3:color-mix(in srgb,var(--brand) 14%,var(--card));--el-empty-fill-color-4:color-mix(in srgb,var(--brand) 18%,var(--card));--el-empty-fill-color-5:color-mix(in srgb,var(--brand) 22%,var(--card));--el-empty-fill-color-6:color-mix(in srgb,var(--brand) 26%,var(--card));--el-empty-fill-color-7:color-mix(in srgb,var(--brand) 30%,var(--card));--el-empty-fill-color-8:color-mix(in srgb,var(--brand) 34%,var(--card));--el-empty-fill-color-9:color-mix(in srgb,var(--brand) 40%,var(--card));--el-empty-description-color:var(--muted)}
::selection{background:color-mix(in srgb,var(--brand) 22%,transparent)}

/* ==========================================================================
   登录页舞台令牌(console.html 的 .lgn* 只用这些变量;三皮各一份)
   A=墨紫舞台上的白贴纸·硬偏移黑影;B=现网粉彩贴纸(老板喜欢的那版);C=暗场玻璃块·辉光
   ========================================================================== */
:root,:root[data-skin="fluid"]{
  --lg-l-bg:var(--card); --lg-l-img:var(--lw-grain); --lg-l-narrow:var(--card);
  --lg-card-bg:transparent; --lg-card-border:transparent; --lg-card-shadow:none;
  --lg-r-bg:#120D22; --lg-r-ink:#FFFFFF; --lg-r-sub:#A49CC0; --lg-r-line:rgb(237 233 247 / .14);
  --lg-blob1:#E23CB5; --lg-blob2:#2F7BFF; --lg-blob3:#FF7A45; --lg-blob-op:.5; --lg-blob-blur:60px;
  --lg-stage-bg:rgb(255 255 255 / .035); --lg-stage-dot:rgb(237 233 247 / .14);
  --lg-stage-shadow:inset 0 0 0 1px rgb(237 233 247 / .1),10px 12px 0 rgb(0 0 0 / .35);
  --lg-wire:url(#lgWG); --lg-graph:url(#lgWG);
  --lg-stk-bg:#FFFDF6; --lg-stk-ink:#17122A; --lg-stk-muted:#5E5780; --lg-stk-line:#ECE8F5;
  --lg-stk-shadow:0 0 0 2.5px rgb(255 255 255 / .92),6px 7px 0 2px rgb(0 0 0 / .42);
  --lg-si-1:#F1EDFA; --lg-si-2:#F1EDFA; --lg-si-3:#F1EDFA;
  --lg-chip-ink:#FFFFFF; --lg-chip-1:#2F7BFF; --lg-chip-2:#1FB878; --lg-chip-3:#FF7A45; --lg-chip-4:#E23CB5;
  --lg-chip-shadow:0 0 0 2px #FFFFFF,3px 4px 0 2px rgb(0 0 0 / .4); --lg-chip-r:8px;
  --lg-ring:#E23CB5; --lg-face:var(--lw-grad);
  --lg-ok:#0B8A56; --lg-ok-bg:rgb(31 184 120 / .12); --lg-warn:#A86400; --lg-warn-bg:rgb(242 165 22 / .16);
  --lg-ck:var(--lw-grad); --lg-ck-ink:#FFFFFF;
  --lg-hub-bg:var(--lw-grad); --lg-hub-ink:#FFFFFF; --lg-glow:rgb(226 60 181 / .22);
  --lg-phone:#17122A; --lg-screen:linear-gradient(170deg,#F3EFFC,#FFF6F0); --lg-yes:var(--lw-grad); --lg-done-bg:#FFFFFF;
  --lg-dot:rgb(237 233 247 / .2); --lg-dot-on:var(--lw-grad); --lg-dot-r:3px;
  --lg-cap-font:var(--lw-font-display);
}
:root[data-skin="sticker"]{
  --lg-l-bg:#FFFFFF; --lg-l-img:none; --lg-l-narrow:linear-gradient(160deg,#F2F2F7,#FFFFFF);
  --lg-card-bg:#FFFFFF; --lg-card-border:var(--line); --lg-card-shadow:0 1px 2px rgba(20,22,30,.04),0 12px 40px rgba(40,44,90,.08);
  --lg-r-bg:linear-gradient(160deg,#ECEEFB 0%,#F4F1FD 55%,#FBF5EF 100%); --lg-r-ink:#23252B; --lg-r-sub:#5B6070; --lg-r-line:rgba(35,37,43,.12);
  --lg-blob1:#C9CFF6; --lg-blob2:#F3D9F0; --lg-blob3:#FDE3C8; --lg-blob-op:.55; --lg-blob-blur:40px;
  --lg-stage-bg:rgba(255,255,255,.45); --lg-stage-dot:rgba(94,106,210,.16); --lg-stage-shadow:inset 0 0 0 1px rgba(255,255,255,.7);
  --lg-wire:#8F97E3; --lg-graph:#9AA1E6;
  --lg-stk-bg:#FFFFFF; --lg-stk-ink:#2B2E3A; --lg-stk-muted:#6B6F80; --lg-stk-line:#ECEEF3;
  --lg-stk-shadow:0 0 0 3px #FFFFFF,0 0 0 4px rgba(30,34,60,.08),0 12px 26px rgba(40,44,90,.14);
  --lg-si-1:#EAF5FF; --lg-si-2:#E7F6EC; --lg-si-3:#FFF1E3;
  --lg-chip-ink:#FFFFFF; --lg-chip-1:#23252B; --lg-chip-2:#2F9E5B; --lg-chip-3:#D9822B; --lg-chip-4:#5E6AD2;
  --lg-chip-shadow:0 0 0 2px #FFFFFF,0 6px 14px rgba(20,22,30,.18); --lg-chip-r:99px;
  --lg-ring:#5E6AD2; --lg-face:linear-gradient(160deg,#6B77E0,#4F5BC4);
  --lg-ok:#2F9E5B; --lg-ok-bg:#E9F7EF; --lg-warn:#B26A1D; --lg-warn-bg:#FFF4E6;
  --lg-ck:#E9F7EF; --lg-ck-ink:#2F9E5B;
  --lg-hub-bg:#23252B; --lg-hub-ink:#FFFFFF; --lg-glow:rgba(94,106,210,.18);
  --lg-phone:#23252B; --lg-screen:linear-gradient(170deg,#EEF0FB,#FBF5EF); --lg-yes:#5E6AD2; --lg-done-bg:#2F9E5B;
  --lg-dot:rgba(35,37,43,.16); --lg-dot-on:#5E6AD2; --lg-dot-r:99px;
  --lg-cap-font:inherit;
}
:root[data-skin="midnight"]{
  --lg-l-bg:var(--bg); --lg-l-img:radial-gradient(640px 320px at 40% -60px,rgb(139 61 255 / .12),transparent 70%); --lg-l-narrow:var(--bg);
  --lg-card-bg:linear-gradient(180deg,#14141B,#0F0F15); --lg-card-border:transparent;
  --lg-card-shadow:inset 0 1px 0 rgb(255 255 255 / .07),0 0 0 1px rgb(255 255 255 / .08),0 30px 80px -20px rgb(0 0 0 / .85);
  --lg-r-bg:#0B0B10; --lg-r-ink:#EDEDF2; --lg-r-sub:#9A9AAE; --lg-r-line:rgb(255 255 255 / .1);
  --lg-blob1:#5B2BD6; --lg-blob2:#1F56C9; --lg-blob3:#B4307F; --lg-blob-op:.42; --lg-blob-blur:70px;
  --lg-stage-bg:linear-gradient(180deg,rgb(255 255 255 / .03),rgb(255 255 255 / .008)); --lg-stage-dot:rgb(255 255 255 / .09);
  --lg-stage-shadow:inset 0 1px 0 rgb(255 255 255 / .07),inset 0 0 0 1px rgb(255 255 255 / .06),0 40px 100px -30px rgb(0 0 0 / .9);
  --lg-wire:rgb(183 148 255 / .55); --lg-graph:rgb(255 255 255 / .18);
  --lg-stk-bg:linear-gradient(180deg,#1C1C25,#121218); --lg-stk-ink:#EDEDF2; --lg-stk-muted:#9A9AAE; --lg-stk-line:rgb(255 255 255 / .09);
  --lg-stk-shadow:inset 0 1px 0 rgb(255 255 255 / .08),inset 0 0 0 1px rgb(255 255 255 / .07),0 14px 34px -12px rgb(0 0 0 / .9);
  --lg-si-1:rgb(255 255 255 / .05); --lg-si-2:rgb(255 255 255 / .05); --lg-si-3:rgb(255 255 255 / .05);
  --lg-chip-ink:#FFFFFF; --lg-chip-1:rgb(20 20 27 / .92); --lg-chip-2:rgb(20 20 27 / .92); --lg-chip-3:rgb(20 20 27 / .92); --lg-chip-4:rgb(20 20 27 / .92);
  --lg-chip-shadow:inset 0 0 0 1px rgb(255 255 255 / .16),0 0 18px -3px rgb(157 107 255 / .9); --lg-chip-r:7px;
  --lg-ring:#9D6BFF; --lg-face:radial-gradient(90% 70% at 50% 0%,rgb(139 61 255 / .55),transparent 75%),linear-gradient(180deg,#22222C,#15151C);
  --lg-ok:#7BEDB8; --lg-ok-bg:rgb(74 222 155 / .14); --lg-warn:#FDD27F; --lg-warn-bg:rgb(251 191 74 / .14);
  --lg-ck:rgb(74 222 155 / .15); --lg-ck-ink:#4ADE9B;
  --lg-hub-bg:radial-gradient(90% 60% at 50% 0%,rgb(139 61 255 / .35),transparent 70%),linear-gradient(180deg,#1A1A23,#101016); --lg-hub-ink:#EDEDF2; --lg-glow:rgb(139 61 255 / .35);
  --lg-phone:#050507; --lg-screen:linear-gradient(170deg,#15151D,#0C0C11); --lg-yes:#EDEDF2; --lg-done-bg:#14532D;
  --lg-dot:rgb(255 255 255 / .16); --lg-dot-on:var(--lw-grad); --lg-dot-r:99px;
  --lg-cap-font:inherit;
}
/* 外观菜单里的皮肤小样(固定展示各皮本色,与当前皮无关) */
.skdot{display:inline-block;width:16px;height:16px;border-radius:5px;flex:none;vertical-align:-3px;box-shadow:inset 0 0 0 1px rgb(0 0 0 / .12)}
.skdot[data-k="auto"]{background:linear-gradient(135deg,#F6F4FB 0 50%,#08080C 50% 100%)}
.skdot[data-k="fluid"]{background:radial-gradient(circle at 70% 30%,#E23CB5 0 3px,transparent 3.5px),linear-gradient(135deg,#F6F4FB 0 55%,#17122A 55%)}
.skdot[data-k="sticker"]{background:radial-gradient(circle at 30% 30%,#C9CFF6 0 4px,transparent 4.5px),radial-gradient(circle at 72% 70%,#FDE3C8 0 4px,transparent 4.5px),#F4F1FD;box-shadow:inset 0 0 0 1.5px #FFFFFF,0 0 0 1px rgb(30 34 60 / .14)}
.skdot[data-k="midnight"]{background:radial-gradient(circle at 50% 0%,#8B3DFF 0 3px,transparent 7px),#0B0B10;box-shadow:inset 0 0 0 1px rgb(255 255 255 / .14)}
.skdot[data-k="more"]{background:conic-gradient(from 45deg,#7A3CFF,#E23CB5,#FF7A45,#B6FF3B,#2F7BFF,#7A3CFF)}

/* ==========================================================================
   各皮的装饰层
   ========================================================================== */

/* —— A 流体×像素:硬偏移阴影、渐变选中、侧栏颗粒、数字用 Unbounded —— */
:root[data-skin="fluid"] .side,:root:not([data-skin]) .side{background-image:var(--lw-grain)}
:root[data-skin="fluid"] .el-card:hover,:root[data-skin="fluid"] .skin-lift:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}
:root[data-skin="fluid"] .el-card{transition:box-shadow .3s var(--spring),transform .35s var(--spring)}
:root[data-skin="fluid"] .el-button--primary:not(.is-plain):not(.is-text):not(.is-link){box-shadow:var(--lw-lift-sm)}
:root[data-skin="fluid"] .el-button--primary:not(.is-plain):not(.is-text):not(.is-link):hover{background:var(--lw-grad);border-color:transparent;box-shadow:var(--lw-lift)}
:root[data-skin="fluid"] .el-dialog__title,:root[data-skin="fluid"] .page-top h1{letter-spacing:-.02em}
/*   外壳:徽标/角标的小硬阴影,选中项像素标;登录页左侧点阵角 */
:root[data-skin="fluid"] .side .logo,:root[data-skin="fluid"] .lgn-brand img{box-shadow:2px 2px 0 var(--lift-color)}
:root[data-skin="fluid"] .side .nav .badge,:root[data-skin="fluid"] .tbbell .tbb{box-shadow:2px 2px 0 var(--lift-color)}
:root[data-skin="fluid"] .tbbell .tbb{box-shadow:0 0 0 2px var(--bg),2px 2px 0 2px var(--lift-color)}
:root[data-skin="fluid"] .lgn-l::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--lw-dots);background-size:16px 16px;-webkit-mask-image:radial-gradient(60% 50% at 0% 100%,#000,transparent);mask-image:radial-gradient(60% 50% at 0% 100%,#000,transparent)}
:root[data-skin="fluid"] .lgn-r::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--lw-grain);opacity:.9;filter:invert(1)}
:root[data-skin="fluid"] .lgn-eye,:root[data-skin="midnight"] .lgn-eye,:root[data-skin="fluid"] .lgn-corner,:root[data-skin="midnight"] .lgn-corner{display:flex}
:root[data-skin="fluid"] .lgn-mark{display:flex}
:root[data-skin="fluid"] .lgn-brand .bt,:root[data-skin="midnight"] .lgn-brand .bt{flex-direction:column;align-items:flex-start;gap:0;line-height:1.05}
:root[data-skin="fluid"] .lgn-brand .bt b,:root[data-skin="midnight"] .lgn-brand .bt b{font-family:var(--lw-font-display);font-weight:600;letter-spacing:-.02em}
:root[data-skin="fluid"] .lgn-brand .bt small,:root[data-skin="midnight"] .lgn-brand .bt small{font:500 9.5px/1 var(--lw-font-mono);color:var(--hint);letter-spacing:.08em;text-transform:uppercase;margin-top:4px}
:root[data-skin="fluid"] .lgn-t{font-size:26px!important;letter-spacing:-.03em;font-weight:700}
:root[data-skin="fluid"] .lgn-seg{padding:3px;gap:3px;border:0;border-radius:12px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--line)}
:root[data-skin="fluid"] .lgn-seg>div{padding:7px;border-radius:9px}
:root[data-skin="fluid"] .lgn-seg>div:not(.on):hover{color:var(--ink)}
:root[data-skin="fluid"] .lgn-seg>div.on{background:var(--grad);color:var(--on-grad);box-shadow:2px 3px 0 var(--lift-color)}

/* —— B 贴纸舞台:粉彩底+漂浮色斑、白边贴纸卡、选中项贴纸弹出 —— */
:root[data-skin="sticker"] body{background:linear-gradient(160deg,#ECEEFB 0%,#F4F1FD 55%,#FBF5EF 100%) fixed}
:root[data-skin="sticker"] .main{background:transparent}
:root[data-skin="sticker"] .el-card{border-color:transparent!important;box-shadow:var(--shadow)!important;border-radius:var(--radius-lg)}
:root[data-skin="sticker"] .el-card:hover{box-shadow:var(--shadow-hover)!important}
:root[data-skin="sticker"] .el-button--primary:not(.is-plain):not(.is-text):not(.is-link){background:var(--lw-grad);background-size:170% 100%;border-color:transparent;box-shadow:0 0 0 2px #fff,0 6px 16px rgba(139,61,255,.22);transition:background-position .5s var(--ease),box-shadow .3s,transform .35s var(--spring)}
:root[data-skin="sticker"] .el-button--primary:not(.is-plain):not(.is-text):not(.is-link):hover{background-position:100% 0;box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(139,61,255,.2),0 12px 24px rgba(139,61,255,.32)}

/*   外壳:选中项=白边贴纸弹出(轻微倾斜),侧栏半透明压在粉彩底+漂浮色斑上 */
:root[data-skin="sticker"] .cwrap{background:transparent;position:relative;isolation:isolate}
:root[data-skin="sticker"] .cwrap::before,:root[data-skin="sticker"] .cwrap::after{content:"";position:fixed;z-index:-1;border-radius:50%;filter:blur(60px);opacity:.5;pointer-events:none;animation:lgnDrift 22s ease-in-out infinite alternate}
:root[data-skin="sticker"] .cwrap::before{width:420px;height:420px;background:#C9CFF6;left:120px;top:-160px}
:root[data-skin="sticker"] .cwrap::after{width:380px;height:380px;background:#FDE3C8;right:-120px;bottom:-140px;animation-delay:-9s}
:root[data-skin="sticker"] .side{-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border-right-color:rgb(255 255 255 / .7)}
:root[data-skin="sticker"] .side .nav-cur{background:rgb(255 255 255 / .7)}
:root[data-skin="sticker"] .side .nav-cur[data-selected="true"]{background:#FFFFFF;box-shadow:0 0 0 2px #FFFFFF,0 0 0 3px rgba(30,34,60,.07),0 6px 16px rgba(40,44,90,.12);rotate:-.6deg}
:root[data-skin="sticker"] .side .nav-cur::before{display:none}
:root[data-skin="sticker"] .side .supnav.on{background:#FFFFFF;box-shadow:var(--shadow)}
:root[data-skin="sticker"] .side .orgline,:root[data-skin="sticker"] .side .uquota{background:rgb(255 255 255 / .6);box-shadow:0 0 0 1px rgb(255 255 255 / .8)}
:root[data-skin="sticker"] .fbbtn:hover,:root[data-skin="sticker"] .tbbell:hover{box-shadow:var(--shadow)}

/* —— C 暗场辉光:顶部品牌辉光、悬停聚光、主按钮白色光边 —— */
:root[data-skin="midnight"] .main{background:radial-gradient(900px 260px at 50% -140px,rgb(139 61 255 / .16),transparent 70%),radial-gradient(600px 200px at 85% -120px,rgb(226 60 181 / .10),transparent 70%)}
:root[data-skin="midnight"] .el-card{border-color:var(--line)!important;box-shadow:var(--shadow)!important}
:root[data-skin="midnight"] .el-card:hover{box-shadow:var(--shadow-hover)!important}
:root[data-skin="midnight"] .el-button--primary:not(.is-plain):not(.is-text):not(.is-link):hover{box-shadow:0 0 0 1px rgb(255 255 255 / .9),0 8px 26px -6px rgb(139 61 255 / .65),0 4px 14px -4px rgb(226 60 181 / .35)}
:root[data-skin="midnight"] img.logo{filter:drop-shadow(0 0 10px rgb(139 61 255 / .45))}
/*   外壳:中性近黑,选中项=淡紫辉光+亮边,侧栏右缘一道光;登录页网格线与指针聚光 */
:root[data-skin="midnight"] .side{box-shadow:inset -1px 0 0 rgb(255 255 255 / .03)}
:root[data-skin="midnight"] .side .nav-cur[data-selected="true"]{background:linear-gradient(90deg,rgb(157 107 255 / .16),rgb(157 107 255 / .04));box-shadow:inset 0 1px 0 rgb(255 255 255 / .06),inset 0 0 0 1px rgb(157 107 255 / .22),0 0 24px -10px rgb(139 61 255 / .8)}
:root[data-skin="midnight"] .side .nav-cur::before{box-shadow:0 0 10px rgb(226 60 181 / .8)}
:root[data-skin="midnight"] .side .nav.on .ic{color:#B794FF;filter:drop-shadow(0 0 6px rgb(139 61 255 / .6))}
:root[data-skin="midnight"] .side .nav .badge,:root[data-skin="midnight"] .tbbell .tbb{box-shadow:0 0 12px -2px rgb(226 60 181 / .7)}
:root[data-skin="midnight"] .tbbell .tbb{box-shadow:0 0 0 2px var(--bg),0 0 12px -2px rgb(226 60 181 / .7)}
:root[data-skin="midnight"] .topbar{box-shadow:inset 0 -1px 0 rgb(255 255 255 / .02)}
:root[data-skin="midnight"] .lgn-r{box-shadow:inset 1px 0 0 var(--line)}
:root[data-skin="midnight"] .lgn-r::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgb(255 255 255 / .035) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .035) 1px,transparent 1px);background-size:44px 44px;-webkit-mask:radial-gradient(70% 60% at 50% 45%,#000 30%,transparent 80%);mask:radial-gradient(70% 60% at 50% 45%,#000 30%,transparent 80%)}
:root[data-skin="midnight"] .lgn-brand img{box-shadow:0 0 22px -2px rgb(139 61 255 / .6)}
:root[data-skin="midnight"] .lgn-card{position:relative}
:root[data-skin="midnight"] .lgn-card::before{content:"";position:absolute;left:18%;right:18%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgb(183 148 255 / .8),rgb(226 60 181 / .6),transparent);z-index:1}
:root[data-skin="midnight"] .lgn-stage::before{content:"";position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgb(183 148 255 / .9),rgb(226 60 181 / .7),transparent)}
:root[data-skin="midnight"] .chip.c1{box-shadow:inset 0 0 0 1px rgb(255 255 255 / .16),0 0 18px -3px #5B9BFF}
:root[data-skin="midnight"] .chip.c2{box-shadow:inset 0 0 0 1px rgb(255 255 255 / .16),0 0 18px -3px #4ADE9B}
:root[data-skin="midnight"] .chip.c3{box-shadow:inset 0 0 0 1px rgb(255 255 255 / .16),0 0 18px -3px #FF9A6B}
:root[data-skin="midnight"] .stk.ai{box-shadow:inset 0 1px 0 rgb(255 255 255 / .09),0 0 0 1px rgb(0 0 0 / .6),0 24px 60px -16px rgb(139 61 255 / .7)}
:root[data-skin="midnight"] .stk.ai .ring{box-shadow:0 0 24px -4px rgb(139 61 255 / .6)}
:root[data-skin="midnight"] .stk .si{box-shadow:inset 0 0 0 1px rgb(255 255 255 / .07)}
:root[data-skin="midnight"] .stk.out .stamp,:root[data-skin="midnight"] .ph-done{box-shadow:0 0 18px -2px rgb(74 222 155 / .8)}
:root[data-skin="midnight"] .ph-yes{color:#0A0A0F}
:root[data-skin="midnight"] .lgn-seg{padding:3px;gap:3px;background:var(--sunken)}
:root[data-skin="midnight"] .lgn-seg>div{padding:7px;border-radius:7px}
:root[data-skin="midnight"] .lgn-seg>div.on{background:var(--raised);color:var(--ink);box-shadow:inset 0 1px 0 rgb(255 255 255 / .08),0 0 0 1px rgb(255 255 255 / .1)}
:root[data-skin="midnight"] .lgn-cap-img{filter:invert(.92) hue-rotate(180deg);border-color:var(--line-strong)}

@media (prefers-reduced-motion:reduce){ *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important} }

/* 分段按钮选中格里的计数(工单状态筛选等):跟随按钮文字色,别用浅色压在品牌底上 */
.el-radio-button.is-active .muted,.el-radio-button__original-radio:checked+.el-radio-button__inner .muted{color:inherit;opacity:.78}

/* ── 页面装饰跟主题走(谷1009:更多主题里出现 A 的像素簇/色斑=串皮)──
   页面里的品牌装饰统一挂 .deco-px(像素簇)/.deco-blob(色斑),由主题用 --deco-px / --deco-blob 决定显不显示;
   渐变字、渐变描边、渐变条一律用 var(--grad),每套主题自己定义 --grad。新页面加装饰也照这个来。
   点缀色用 --acc-1..4(不直接写 --lw-orange 等品牌常量);卡片点阵底纹用 var(--deco-dots);色斑光晕也挂 visibility:var(--deco-blob)。
   JS 里要品牌色(fx.js 爆散/聚拢像素)也读 --acc-*,并在 --deco-px:hidden 的主题里不放像素。 */
.deco-px{visibility:var(--deco-px,visible)}
.deco-blob{visibility:var(--deco-blob,visible)}
.lw-grad-text{background-image:var(--grad)}
