/* Alice app.css transplant. Scope is exclusive to the Flux cabin; source values stay intact.
 * Flux selectors and financial data surfaces are the only structural adaptations. */
@font-face { font-family: "Alice Orbitron"; src: url("/vendor/fonts/orbitron-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
:root[data-skin="alice"][data-theme][data-palette],
:root[data-skin="alice"][data-theme][data-palette] body {
  --ac-r: 16px; --ac-r2: 12px; --ac-r-seam: 8px; --ac-gap: 4px;
  --font: system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;
  --sb-full-w: 224px; --top-h: 64px; --gap: 4px; --seam: 4px;
  --r: 16px; --r-sm: 10px; --r-lg: 18px; --view-max: 2560px;
  --bg: var(--ac-bg); --solid-surface: rgb(var(--ac-s-060a18));
  --panel: var(--ac-glass-2); --panel-2: var(--ac-panel2); --panel-3: var(--ac-glass-3);
  --tx: var(--ac-tx); --tx-2: var(--ac-tx2); --tx-3: var(--ac-tx3); --tx-inv: var(--ac-tx-hi);
  --line: var(--ac-line); --line-2: var(--ac-line2); --hover: var(--ac-panel2);
  --pri: var(--ac-cy); --pri-rgb: var(--ac-cy-rgb); --pri-tx: var(--ac-cy); --pri-soft: rgba(var(--ac-cy-rgb),.10);
  --acc: var(--ac-vi); --acc-rgb: var(--ac-vi-rgb); --grad: var(--ac-grad);
  --brand: var(--ac-cy); --brand-fill: var(--ac-cy); --brand-rgb: var(--ac-cy-rgb); --brand-peer: var(--ac-vi); --brand-peer-rgb: var(--ac-vi-rgb);
  --brand-ink: var(--ac-cy); --brand-on: #060914; --brand-soft: rgba(var(--ac-cy-rgb),.10);
  --c1: var(--ac-cy); --c2: var(--ac-vi); --c3: var(--ac-am); --c4: var(--ac-bl); --c5: var(--ac-pk); --c6: var(--ac-or); --c7: var(--ac-gr); --c8: var(--ac-rd);
  --chart-axis: var(--ac-tx2); --chart-grid: var(--ac-line); --home-reference-chart: var(--ac-am);
  --glass-1: var(--ac-glass-1); --glass-2: var(--ac-glass-2); --glass-3: var(--ac-glass-3); --glass-hi: var(--ac-glass-hi); --glass-rim: var(--ac-glass-rim);
  --fg-rgb: var(--ac-fg-rgb); --sl-rgb: var(--ac-sl-rgb);
  --sticky-surface: var(--ac-glass-1); --sticky-highlight: none; --sticky-blur: blur(22px) saturate(1.7);
  --px-bg: var(--ac-bg); --px-panel: var(--ac-glass-2); --px-panel-2: var(--ac-panel2); --px-text: var(--ac-tx); --px-muted: var(--ac-tx2);
  --px-line: var(--ac-line); --px-line-2: var(--ac-line2); --px-brand: var(--ac-cy); --px-brand-soft: var(--pri-soft);
  --alice-text: var(--ac-tx); --alice-muted: var(--ac-tx2); --alice-dim: var(--ac-tx3); --alice-line: var(--ac-line); --alice-line-2: var(--ac-line2);
  --alice-structure: var(--ac-glass-1); --alice-overlay: var(--ac-glass-3); --alice-primary: var(--ac-cy); --alice-primary-text: var(--ac-cy); --alice-primary-soft: var(--pri-soft);
  --x-bg: var(--ac-bg); --x-panel: var(--ac-glass-2); --x-panel2: var(--ac-panel2); --x-text: var(--ac-tx); --x-sub: var(--ac-tx2); --x-mute: var(--ac-tx3);
  --x-line: var(--ac-line); --x-line2: var(--ac-line2); --x-brand: var(--ac-cy); --x-brand-ink: var(--ac-cy); --x-brand-soft: var(--pri-soft);
  --x-grad: var(--ac-grad); --x-step-grad: var(--ac-grad);
  --ai-bg: var(--ac-bg); --ai-text: var(--ac-tx); --ai-text-2: var(--ac-tx2); --ai-text-3: var(--ac-tx3);
  --ai-ink-primary: var(--ac-tx); --ai-ink-secondary: var(--ac-tx2); --ai-ink-muted: var(--ac-tx3); --ai-ink-accent: var(--ac-cy); --ai-ink-violet: var(--ac-vi);
  --ai-panel: var(--ac-glass-2); --ai-panel-2: var(--ac-panel2); --ai-panel-3: var(--ac-glass-3); --ai-line: var(--ac-line); --ai-line-2: var(--ac-line2);
  --ai-fill-base: var(--ac-glass-2); --ai-fill-soft: var(--ac-panel2); --ai-edge-neutral: var(--ac-line);
  --ai-surface: var(--ac-glass-2); --ai-surface-alt: var(--ac-glass-2); --ai-kpi: var(--ac-glass-2); --ai-control: var(--ac-panel2);
  --ai-soft: var(--ac-panel2); --ai-raised: var(--ac-glass-2); --ai-control-flat: var(--ac-panel2); --ai-chart: transparent;
  --ai-accent: var(--ac-cy); --ai-accent-rgb: var(--ac-cy-rgb); --ai-accent-ink: var(--ac-cy); --ai-accent-dark: var(--ac-cy);
  --ai-edge: var(--ac-line); --ai-edge-strong: var(--ac-line2); --ai-side-ink: var(--ac-tx2); --ai-side-muted: var(--ac-tx3);
  --ai-selected: rgba(var(--ac-cy-rgb),.10); --ai-nav-selected: var(--ai-selected);
  --ai-side-bg: var(--ac-glass-1); --ai-top-bg: transparent; --ai-badge-panel: var(--ac-panel2); --ai-badge-line: var(--ac-line2);
  --ai-surface-shadow: inset 0 1px 0 var(--ac-glass-hi); --cx-glass-shadow: var(--ai-surface-shadow);
  --cx-bg: var(--ac-bg); --cx-border: var(--ac-line); --cx-glass: var(--ac-glass-2); --cx-text: var(--ac-tx); --cx-muted: var(--ac-tx2);
  /* Alice app.css .modal: 58% of glass-3 + 160deg .045/.008 highlight.
   * An inset stays in the same glass family as the enclosing card. */
  --cabin-data-surface: linear-gradient(160deg, rgba(var(--ac-fg-rgb), .045), rgba(var(--ac-fg-rgb), .008)), color-mix(in srgb, var(--ac-glass-3) 58%, transparent);
}
:root[data-skin="alice"][data-theme][data-palette] body { background:var(--ac-bg); color:var(--ac-tx); font:14px/1.6 var(--font); -webkit-font-smoothing:antialiased; }
:root[data-skin="alice"][data-theme][data-palette] body :is(button,input,select,textarea) { font-family:inherit; }
:root[data-skin="alice"][data-theme][data-palette] body .main { background:transparent; min-width:0; }
:root[data-skin="alice"][data-theme][data-palette] body .shell { position:relative; z-index:1; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar {
  position: fixed; top: var(--ac-gap); left: var(--ac-gap); bottom: var(--ac-gap);
  width: max(0px, calc(var(--ac-sb) - var(--ac-gap))); z-index: 30;
  background: var(--ac-glass-1); backdrop-filter: blur(var(--ac-glass-blur)) saturate(var(--ac-glass-sat)); -webkit-backdrop-filter: blur(var(--ac-glass-blur)) saturate(var(--ac-glass-sat));
  border: 1px solid var(--ac-glass-rim);
  /* 右边是缝：右上的角朝顶栏、右下的角朝内容面板，都取 --ac-r-seam（8px，半个外框角），
   * 缝仍是一条 4px 的直槽，只是槽口带一点圆；左边朝窗口的两个角仍是 14px。详见顶栏上方那段说明。 */
  border-radius: 14px var(--ac-r-seam) 14px 14px;
  box-shadow: inset 0 1px 0 var(--ac-glass-hi), 0 18px 44px -28px rgba(var(--ac-shadow-rgb), .85);
  display: flex; flex-direction: column; padding: 18px 12px 12px;
}
:root[data-skin="alice"][data-theme][data-palette] body .sidebar { width:max(0px,calc(var(--sb-w) - 4px)); --sb-tx:var(--ac-tx2); --sb-tx-hi:var(--ac-tx-hi); --sb-group:var(--ac-tx3); --sb-line:var(--ac-line); --sb-hover:var(--ac-panel2); }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .brand { display: flex; align-items: center; gap: 12px; padding: 0 2px 14px 2px; margin-bottom: 4px; position: relative; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .brand { height:auto; min-height:0; border:0; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .brand::after { content: ""; position: absolute; left: 4px; right: 4px; bottom: 0; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, rgba(var(--ac-cy-rgb), .55), rgba(var(--ac-vi-rgb), .25) 45%, transparent); }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-wordmark { font-family: "Alice Orbitron", var(--ac-sans, system-ui), sans-serif; font-weight: 600; font-size: 16px; letter-spacing: 3px; text-transform: uppercase; line-height: 1.25; color: var(--ac-tx-hi);
  background: linear-gradient(90deg, var(--ac-tx-hi) 10%, rgb(var(--ac-cy-rgb)) 120%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-core { width:54px; height:54px; flex:none; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-brand-text { flex:1; min-width:0; }
:root[data-skin="alice"][data-theme][data-palette] body #cabin-station { display: flex; align-items: center; gap: 6px; margin-top: 3px; font-size: 11.5px; letter-spacing: .2px; color: var(--ac-tx3); white-space: nowrap; overflow: hidden; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-company { margin-top:8px; padding:12px 2px 4px; border-top:1px solid var(--ac-line); display:grid; gap:4px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-company img { width:88px; height:40px; object-fit:contain; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-company span { font:10px/1.6 var(--mono); letter-spacing:1px; color:var(--ac-tx3); }
:root[data-skin="alice"][data-theme][data-palette] body .nav { flex: 1; overflow-y: auto; margin: 0 -4px; padding: 0 4px; display: flex; flex-direction: column; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item {
  display: flex; align-items: center; gap: 11px; padding: 8px 12px; border-radius: 9px; color: var(--ac-tx2); font-size: 13px; /* 2026-11-13 14→13：与页签/面包屑/经典布局同级，层级靠图标+字重+缩进区分 */
  cursor: pointer; position: relative; transition: background .15s, color .15s; user-select: none; text-decoration: none !important;
}
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item { margin:0; min-height:0; border:0; box-shadow:none; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item svg.i { width: 16px; height: 16px; color: var(--ac-tx3); transition: color .15s; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item:hover { background: var(--ac-panel2); color: var(--ac-tx); }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item:hover svg.i { color: var(--ac-tx2); }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item.active { background: rgba(var(--ac-cy-rgb), .10); color: var(--ac-tx-hi); font-weight: 600; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item.active svg.i { color: var(--ac-cy); }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-item.active::before { content: ""; position: absolute; left: -4px; top: 10px; bottom: 10px; width: 3px; border-radius: 3px; background: var(--ac-cy); }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-sub { display: none; margin: 1px 0 4px 21px; padding-left: 9px; border-left: 1px solid var(--ac-line); }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-sub .nav-item { padding: 6px 10px; font-size: 13px; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-sub .nav-item.active::before { display: none; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-sec.open > .nav-sub { display:block; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav-sec-title { font-size:11.5px; color:var(--ac-tx3); letter-spacing:1px; }
:root[data-skin="alice"][data-theme][data-palette] body .sb-foot { margin-top:4px; padding:8px 0; border-color:var(--ac-line); color:var(--ac-tx2); background:none; }
:root[data-skin="alice"][data-theme][data-palette] body .topbar {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 14px;
  padding: calc(10px + var(--ac-gap)) 14px 10px;
  backdrop-filter: blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat)); -webkit-backdrop-filter: blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat));
}
:root[data-skin="alice"][data-theme][data-palette] body .topbar::before {
  content: ""; position: absolute; inset: var(--ac-gap) var(--ac-gap) 0; z-index: -1; pointer-events: none;
  /* 两级都用主题 token：以前下沿写死 rgba(11,17,35,.28)（暗色底），亮色下会把这张卡压成灰板，和旁边白卡片不像一套 */
  background: linear-gradient(180deg, var(--ac-glass-1), var(--ac-glass-2));
  border: 1px solid var(--ac-glass-rim);
  /* 左边的两个角朝缝（上邻侧栏、下邻内容面板），取 --ac-r-seam（8px）；右边两个角贴窗口，仍是 14px。
   * 以前四角都是 14px：两个 14px 圆角隔 4px 的缝相对，斜对角处多出约 13px 的壁纸楔形，
   * 顶栏看着像被挤在侧栏边上的一块药丸（2026-10-20 用户圈出上、下两个左角，要求「弧度小一点、空少一点」）。
   * 收到 4px 后又被指出「过于少了，还是要有一点弧度」，现取 8px：槽还是那条 4px 直槽，槽口只带半个外框角的圆。
   * 右上 / 右下的外角照旧圆。侧栏右边那两个角同理（见 .sidebar）。 */
  border-radius: var(--ac-r-seam) 14px 14px var(--ac-r-seam);
  box-shadow: inset 0 1px 0 var(--ac-glass-hi), 0 18px 44px -28px rgba(var(--ac-shadow-rgb), .85);
}
:root[data-skin="alice"][data-theme][data-palette] body .topbar { height:64px; min-height:64px; margin:0; flex:none; flex-wrap:nowrap; background:transparent !important; border:0 !important; border-radius:0; box-shadow:none; }
/* 用户信息块原来是顶栏里唯一高 50px 的元素（其余按钮 36～40px），下沿比别的低，正下方的页头工具按钮被它顶着；两行字的行高收紧，整块与其他按钮同为 40px。 */
:root[data-skin="alice"][data-theme][data-palette] body .topbar:not([data-cabin-compact]) .user-chip { height:40px; }
:root[data-skin="alice"][data-theme][data-palette] body .topbar:not([data-cabin-compact]) .user-chip .nm { line-height:17px; }
:root[data-skin="alice"][data-theme][data-palette] body .topbar:not([data-cabin-compact]) .user-chip .rl { line-height:15px; }
:root[data-skin="alice"][data-theme][data-palette] body .topbar::after { content:none; }
:root[data-skin="alice"][data-theme][data-palette] body .crumb { flex:0 1 auto; min-width:0; }
:root[data-skin="alice"][data-theme][data-palette] body .top-actions { flex:none; margin-left:auto; gap:8px; white-space:nowrap; }
:root[data-skin="alice"][data-theme][data-palette] body .icon-btn { position: relative; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--ac-panel); border: 1px solid var(--ac-line); cursor: pointer; color: var(--ac-tx2); flex: none; }
:root[data-skin="alice"][data-theme][data-palette] body .icon-btn:hover { color: var(--ac-tx); border-color: var(--ac-line2); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.view, #view) { padding:4px 4px 96px; max-width:2560px; }
/* 首页正好铺满一屏（用户 2026-11-13）：96px 底边距在首页收到 12px，否则拉到底总空一条；悬浮 Flux 落在最后一块卡片右下角留白处 */
:root[data-skin="alice"][data-theme][data-palette] body #view:has(> #home-time) { padding-bottom:12px; }
:root[data-skin="alice"][data-theme][data-palette] body .cx-inner { padding:0; }
:root[data-skin="alice"][data-theme][data-palette] body :is(.card,.kpi,.cd-card,.cd-kpi,.cx-panel,.co-stepper,.co-activity,.co-readiness,.co-metric,.cx-revenue,.co-soc-panel,.co-brief-grid article) {
  /* 卡片要「是块面」而不是「一块窗」：先用 --ac-glass-2 打一层底，再叠顶亮底暗的薄高光，
   * 否则身后的色雾会整片透上来、文字压在彩色云上（2026-10-20 首轮就翻过这个车）。 */
  background: linear-gradient(160deg, rgba(var(--ac-fg-rgb), .10), rgba(var(--ac-fg-rgb), .02)), var(--ac-glass-2);
  border: 1px solid var(--ac-glass-rim); border-radius: var(--ac-r); padding: 18px;
  position: relative; min-width: 0; box-shadow: inset 0 1px 0 var(--ac-glass-hi);
  backdrop-filter: blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat)); -webkit-backdrop-filter: blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat));
}
:root[data-skin="alice"][data-theme][data-palette] body :is(.card,.kpi,.cd-card,.cd-kpi,.cx-panel,.co-stepper,.co-activity,.co-readiness,.co-metric,.cx-revenue,.co-soc-panel,.co-brief-grid article) { color:var(--ac-tx); }
:root[data-skin="alice"][data-theme][data-palette] body .card .card { background:var(--ac-panel); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.btn,.cx-btn) {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 14px; border-radius: 10px;
  border: 1px solid var(--ac-line2); background: rgba(var(--ac-fg-rgb), .04); color: var(--ac-tx); cursor: pointer; white-space: nowrap;
  transition: transform .1s, background .15s, border-color .15s, box-shadow .2s; font-size: 13px; text-decoration: none !important;
}
:root[data-skin="alice"][data-theme][data-palette] body :is(.btn,.cx-btn):hover { background: rgba(var(--ac-fg-rgb), .08); border-color: rgba(var(--ac-sl-rgb), .4); }
:root[data-skin="alice"][data-theme][data-palette] body .btn:active { transform: scale(.97); }
:root[data-skin="alice"][data-theme][data-palette] body .btn:disabled { opacity: .5; cursor: not-allowed; }
:root[data-skin="alice"][data-theme][data-palette] body :is(.btn.primary,.cx-btn.primary) { background: var(--ac-grad); border-color: transparent; color: #060914; font-weight: 700; box-shadow: 0 6px 24px -8px rgba(var(--ac-in-rgb), .8); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.btn.primary,.cx-btn.primary):hover { filter: brightness(1.08); box-shadow: 0 8px 30px -6px rgba(var(--ac-in-rgb), .9); }
:root[data-skin="alice"][data-theme][data-palette] body .btn.ghost { background: transparent; border-color: transparent; color: var(--ac-tx2); }
:root[data-skin="alice"][data-theme][data-palette] body .btn.ghost:hover { color: var(--ac-tx); background: var(--ac-panel2); }
:root[data-skin="alice"][data-theme][data-palette] body .btn.danger { color: var(--ac-rd); border-color: rgba(var(--ac-rd-rgb), .35); }
:root[data-skin="alice"][data-theme][data-palette] body .btn.sm { padding: 5px 10px; font-size: 12px; border-radius: 8px; }
:root[data-skin="alice"][data-theme][data-palette] body .btn.xs { padding: 3px 8px; font-size: 11px; border-radius: 7px; }
:root[data-skin="alice"][data-theme][data-palette] body :is(.input,.select,textarea.input,.cx-date-control input,.cx-date input) {
  width: 100%; padding: 9px 12px; border-radius: 10px; background: rgba(var(--ac-s-020617), .55); border: 1px solid var(--ac-line2); outline: none;
  transition: border-color .15s, box-shadow .15s;
}
:root[data-skin="alice"][data-theme][data-palette] body :is(.input,.select):focus { border-color: rgba(var(--ac-cy-rgb), .6); box-shadow: 0 0 0 3px rgba(var(--ac-cy-rgb), .12); }
:root[data-skin="alice"][data-theme][data-palette] body select option { background: rgb(var(--ac-s-0b1226)); }
:root[data-skin="alice"][data-theme][data-palette] body .seg { display: inline-flex; padding: 3px; border-radius: 11px; background: rgba(var(--ac-s-020617), .5); border: 1px solid var(--ac-line); gap: 2px; flex-wrap: wrap; }
:root[data-skin="alice"][data-theme][data-palette] body .seg button { border: 0; background: transparent; padding: 5px 12px; border-radius: 8px; color: var(--ac-tx2); cursor: pointer; font-size: 13px; white-space: nowrap; }
:root[data-skin="alice"][data-theme][data-palette] body .seg button.on { background: rgba(var(--ac-fg-rgb), .09); color: var(--ac-tx-hi); box-shadow: inset 0 0 0 1px rgba(var(--ac-cy-rgb), .35); }
:root[data-skin="alice"][data-theme][data-palette] body table.tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
:root[data-skin="alice"][data-theme][data-palette] body .tbl th { text-align: left; font-weight: 600; color: var(--ac-tx3); font-size: 12px; padding: 8px 10px; border-bottom: 1px solid var(--ac-line); white-space: nowrap; position: sticky; top: 0; background: rgba(var(--ac-s-080c1c), .96); }
:root[data-skin="alice"][data-theme][data-palette] body .tbl td { padding: 8px 10px; border-bottom: 1px solid rgba(var(--ac-sl-rgb), .07); vertical-align: middle; }
:root[data-skin="alice"][data-theme][data-palette] body .tbl tr:hover td { background: rgba(var(--ac-fg-rgb), .025); }
:root[data-skin="alice"][data-theme][data-palette] body .tbl th.num { text-align:right; }
:root[data-skin="alice"][data-theme][data-palette] body .tbl { background:var(--cabin-data-surface); color:var(--ac-tx); }
:root[data-skin="alice"][data-theme][data-palette] body .tbl th { color:var(--ac-tx2); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.tag,.cx-pill,.cd-badge) { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 99px; font-size: 11.5px; border: 1px solid var(--ac-line2); color: var(--ac-tx2); white-space: nowrap; background: rgba(var(--ac-fg-rgb), .03); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.tag.warn,.cx-pill.amber,.cd-badge.amber) { color:var(--warn); background:var(--warn-soft); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.tag.ok,.cx-pill.green) { color:var(--down); background:var(--cabin-data-surface); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.link,a:not(.nav-item)) { color:var(--ac-cy); }
:root[data-skin="alice"][data-theme][data-palette] body .mask { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; background: rgba(var(--ac-s-02040c), .35); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: 16px; animation: fadein .15s; }
:root[data-skin="alice"][data-theme][data-palette] body .modal { width: 100%; max-width: 520px; max-height: 88vh; overflow: auto;
  background: linear-gradient(160deg, rgba(var(--ac-fg-rgb), .045), rgba(var(--ac-fg-rgb), .008)), color-mix(in srgb, var(--ac-glass-3) 58%, transparent);
  backdrop-filter: blur(var(--ac-glass-blur)) saturate(var(--ac-glass-sat)); -webkit-backdrop-filter: blur(var(--ac-glass-blur)) saturate(var(--ac-glass-sat)); border: 1px solid var(--ac-glass-rim); border-radius: 18px; padding: 22px; box-shadow: var(--ac-sh), inset 0 1px 0 var(--ac-glass-hi); animation: pop .2s cubic-bezier(.2,.8,.2,1); }
:root[data-skin="alice"][data-theme][data-palette] body .mask { z-index:200; }
:root[data-skin="alice"][data-theme][data-palette] body .modal { display:block; }
:root[data-skin="alice"][data-theme][data-palette] body .modal-h { padding:0; border:0; background:none; }
:root[data-skin="alice"][data-theme][data-palette] body .modal h3 { margin: 0 0 14px; font-size: 17px; }
:root[data-skin="alice"][data-theme][data-palette] body .modal-b { padding:0; overflow:visible; }
:root[data-skin="alice"][data-theme][data-palette] body .modal-f { padding:18px 0 0; border:0; background:none; }
:root[data-skin="alice"][data-theme][data-palette] body .modal-h [data-x] { width:30px; height:30px; border-radius:50%; align-self:flex-start; }
:root[data-skin="alice"][data-theme][data-palette] body :is(.menu,.toast,.drawer,.du-progress,#cabin-status-popup) { background:var(--ac-glass-3); border:1px solid var(--ac-glass-rim); color:var(--ac-tx); backdrop-filter:blur(22px) saturate(var(--ac-glass-sat)); -webkit-backdrop-filter:blur(22px) saturate(var(--ac-glass-sat)); box-shadow:var(--ac-sh),inset 0 1px 0 var(--ac-glass-hi); }
:root[data-skin="alice"][data-theme][data-palette] body .ap-sec { margin: 14px 0 8px; font-size: 12px; color: var(--ac-tx2); }
:root[data-skin="alice"][data-theme][data-palette] body .ap-sec small { color: var(--ac-tx3); }
:root[data-skin="alice"][data-theme][data-palette] body .ap-row { display: flex; gap: 8px; flex-wrap: wrap; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-opt { padding: 7px 14px; border-radius: 10px; border: 1px solid var(--ac-line2); background: rgba(var(--ac-fg-rgb), .03); color: var(--ac-tx); cursor: pointer; font-size: 13px; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-opt.on, :root[data-skin="alice"][data-theme][data-palette] body .ap-pal.on { border-color: var(--ac-cy); box-shadow: 0 0 0 1px var(--ac-cy) inset; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-pal { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px; border-radius: 12px; border: 1px solid var(--ac-line2); background: rgba(var(--ac-fg-rgb), .03); color: var(--ac-tx); cursor: pointer; text-align: left; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-pal small { color: var(--ac-tx3); font-size: 11px; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-nm { font-size: 14px; font-weight: 600; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-sw { position: relative; width: 100%; height: 44px; border-radius: 8px; border: 1px solid var(--ac-line2); overflow: hidden; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-sw i { position: absolute; left: 10px; top: 10px; right: 40%; bottom: 10px; border-radius: 5px; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-sw b { position: absolute; right: 12px; top: 16px; width: 24px; height: 6px; border-radius: 3px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-appearance-modal { max-width:520px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-style-picker .skin-pick { padding:0; margin-bottom:14px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-style-picker .pv { display:none; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-style-picker .skin-opt { padding:5px 10px; border-radius:10px; font-size:12px; background:var(--ac-panel); color:var(--ac-tx2); }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-style-picker .skin-opt.on { border-color:var(--ac-cy); color:var(--ac-tx); }

/* Flux data/status markup retained; materials and typography map to Alice. */
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status { display: flex; gap: 8px; align-items: center; flex: 1; min-width: 56px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell { display: grid; flex: none; white-space: nowrap; align-content: center; gap: 4px; min-width: 144px; padding: 8px 12px; border: 1px solid var(--ac-line); border-radius: 8px; background: var(--ac-panel); }
:root[data-skin="alice"][data-theme][data-palette] body :is(.cabin-status-cell[hidden], .cabin-status-cell[data-folded="true"], #cabin-status-more[hidden]) { display: none; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell>span { font: 10px/16px var(--mono); letter-spacing: 1px; color: var(--ac-tx2); }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell :is(strong,time) { font: 500 14px/20px var(--mono); color: var(--ac-tx); font-variant-numeric: tabular-nums; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell time { font-size: 20px; letter-spacing: 2px; }
:root[data-skin="alice"] #cabin-status-more { flex: none; position: relative; }
:root[data-skin="alice"] #cabin-status-more summary::-webkit-details-marker { display: none; }
:root[data-skin="alice"] :is(#cabin-status-more summary,.cabin-assistant):focus-visible { outline: 2px solid var(--ac-cy); outline-offset: 4px; }
:root[data-skin="alice"] #cabin-status-popup dt { color: var(--ac-tx2); font: 12px/20px var(--mono); }
:root[data-skin="alice"] #cabin-status-popup dd { margin: 4px 0 0; font: 14px/20px var(--mono); font-variant-numeric: tabular-nums; }
:root[data-skin="alice"] #cabin-status-popup .cabin-status-note { color: var(--ac-tx2); font: 12px/20px var(--font); }
:root[data-skin="alice"][data-theme][data-palette] body .topbar[data-cabin-compact] :is(.ai-btn .ph,.ai-btn kbd,.user-chip .who,.st-chip .nm,.st-chip .chev) { display: none; }
:root[data-skin="alice"][data-theme][data-palette] body .topbar[data-cabin-compact] :is(.ai-btn,.st-chip,.user-chip) { min-width: 36px; width: 36px; height: 36px; padding: 0; justify-content: center; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell { padding:4px 10px; min-width:128px; gap:0; background:var(--ac-panel); border-color:var(--ac-line); border-radius:12px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell time { font-size:13px; letter-spacing:0; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell > span { font-size:10px; letter-spacing:0; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status-cell :is(strong,time) { font-size:12px; line-height:18px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant { position:fixed; z-index:35; right:24px; bottom:24px; width:48px; height:48px; display:grid; place-items:center; padding:0; border:1px solid var(--ac-glass-rim); border-radius:50%; background:var(--ac-glass-1); backdrop-filter:blur(14px) saturate(var(--ac-glass-sat)); box-shadow:var(--ac-sh); cursor:pointer; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant .ex-orb { width:32px; height:32px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ai-drawer.open) .cabin-assistant { opacity:0; pointer-events:none; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant:focus-visible { outline:2px solid var(--ac-cy); outline-offset:4px; }
:root[data-skin="alice"][data-theme][data-palette][data-nav="mini"] .sidebar { padding:14px 8px 10px; }
:root[data-skin="alice"][data-theme][data-palette][data-nav="mini"] .sidebar .brand { padding:0 0 14px; justify-content:center; }
:root[data-skin="alice"][data-theme][data-palette][data-nav="mini"] :is(.cabin-brand-text,.cabin-company) { display:none; }
/* The neutral data inset preserves Flux financial ink contrast without changing semantic colours. */
:root[data-skin="alice"][data-theme][data-palette] body :is(.home-three,.home-pnl,.co-metric,.cx-revenue,.co-soc-panel) { background:var(--cabin-data-surface); border-radius:12px; }
:root[data-skin="alice"][data-theme][data-palette] body .home-three { padding:12px; }
:root[data-skin="alice"][data-theme][data-palette] body .home-pnl { padding:16px; }
:root[data-skin="alice"][data-theme][data-palette] body .home-panel-foot { background:linear-gradient(160deg, rgba(var(--ac-fg-rgb), .025), rgba(var(--ac-fg-rgb), .008)); color:var(--ac-tx2); }
:root[data-skin="alice"][data-theme][data-palette] body .home-section-index { color:var(--ac-cy); }
:root[data-skin="alice"][data-theme][data-palette] body .co-stage.on { background:rgba(var(--ac-cy-rgb),.1); border-color:var(--ac-line2); }
:root[data-skin="alice"][data-theme][data-palette] body .co-stage[data-state="done"] .co-node { background:var(--cabin-data-surface); border-color:var(--down); color:var(--down); }
:root[data-skin="alice"][data-theme][data-palette] body .co-stage[data-state="done"] em { color:var(--down); background:var(--cabin-data-surface); border-radius:4px; padding:2px 6px; width:fit-content; }

:root[data-skin="alice"][data-theme][data-palette] body .fa-banner { background:var(--ac-glass-1); border-color:var(--ac-line); }
:root[data-skin="alice"][data-theme][data-palette] body .co-brief-grid article { color:var(--ac-tx); }
:root[data-skin="alice"][data-theme][data-palette] body .cx { background:transparent; }
:root[data-skin="alice"][data-theme][data-palette] body .cx-page-title h1 { font-size:24px; }
:root[data-skin="alice"][data-theme][data-palette] body .admin-view { --admin-surface:var(--ac-glass-2); --panel:var(--ac-glass-2); --panel-2:var(--ac-panel2); --panel-3:var(--ac-glass-3); --tx:var(--ac-tx); --tx-2:var(--ac-tx2); --tx-3:var(--ac-tx3); --line:var(--ac-line); --pri:var(--ac-cy); }
@media (max-width:900px) {
:root[data-skin="alice"][data-theme][data-palette] body .topbar { height:auto; min-height:64px; gap:8px; padding:10px; flex-wrap:wrap; }
:root[data-skin="alice"][data-theme][data-palette] body .top-actions { gap:4px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-status { order:3; flex-basis:100%; justify-content:flex-end; }
:root[data-skin="alice"][data-theme][data-palette] body :is(.view,#view) { padding:8px 8px 140px; }
:root[data-skin="alice"][data-theme][data-palette] body .sidebar { bottom:calc(var(--tabbar-h) + 4px); }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant { bottom:calc(var(--tabbar-h) + 16px); right:16px; }
:root[data-skin="alice"][data-theme][data-palette] body .crumb { display:none; }
:root[data-skin="alice"][data-theme][data-palette] body .modal { max-height:92dvh; padding:18px; }
:root[data-skin="alice"][data-theme][data-palette] body .ap-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* Numeric insets need one extra class of specificity above shared card surfaces. */
:root[data-skin="alice"][data-theme][data-palette] body :is(.home-three,.home-pnl,.co-metric,.cx-revenue,.co-soc-panel)[class] {
  background:var(--cabin-data-surface); border-radius:12px;
  border:1px solid var(--ac-glass-rim); box-shadow:inset 0 1px 0 var(--ac-glass-hi);
  backdrop-filter:blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat));
  -webkit-backdrop-filter:blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat));
}
:root[data-skin="alice"][data-theme][data-palette] body .home-three { padding:12px; }
:root[data-skin="alice"][data-theme][data-palette] body #cabin-status-more { flex:none; position:relative; }
:root[data-skin="alice"][data-theme][data-palette] body #cabin-status-more summary { display:grid; place-items:center; width:48px; height:36px; list-style:none; border:1px solid var(--ac-line2); border-radius:10px; background:var(--ac-panel); color:var(--ac-tx2); cursor:pointer; }
:root[data-skin="alice"][data-theme][data-palette] body #cabin-status-popup { position:absolute; z-index:5; width:288px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 180px); margin:0; padding:16px; display:grid; gap:16px; border-radius:12px; overflow-y:auto; }
/* AI financial figures retain their existing red/green inks in either mode. */
/* Fixed AI red/green inks require a denser tinted glass; retain transparency and rim. */
:root[data-skin="alice"][data-theme][data-palette] body.ex-ai-mode {
  --cabin-data-surface: linear-gradient(160deg, rgba(255,255,255,.025), rgba(255,255,255,.008)), rgba(2,6,23,.76);
}
:root[data-skin="alice"][data-theme][data-palette] body.ex-ai-mode :is(.cd-attention-list,.cx-scene-stats)[class] { background:var(--cabin-data-surface); border-radius:10px; }
:root[data-skin="alice"][data-theme][data-palette] body.ex-ai-mode .cd-attention-list { padding:8px 12px; }
:root[data-skin="alice"][data-theme="light"][data-palette] body.ex-ai-mode :is(.cd-attention-list,.co-metric,.cx-revenue,.co-soc-panel,.cx-scene-stats) {
  --cabin-data-surface:linear-gradient(160deg, rgba(255,255,255,.025), rgba(255,255,255,.008)), rgba(2,6,23,.95);
  --ac-glass-rim:rgba(148,163,184,.16); --ac-glass-hi:rgba(255,255,255,.07);
  --ac-tx:#e6ecf7; --ac-tx2:#9aa7bd; --ac-tx3:#9aa7bd;
  --tx:#e6ecf7; --tx-2:#9aa7bd; --tx-3:#9aa7bd;
  --x-text:#e6ecf7; --x-sub:#9aa7bd; --x-mute:#9aa7bd;
  --ai-text:#e6ecf7; --ai-text-2:#9aa7bd; --ai-text-3:#9aa7bd;
  --ai-ink-primary:#e6ecf7; --ai-ink-secondary:#9aa7bd; --ai-ink-muted:#9aa7bd;
  color:#e6ecf7;
}

/* Bright solid wallpapers need a denser inset, using Alice's .ask-box base. */
:root[data-skin="alice"][data-theme="dark"][data-cabin-palette-group="solid"] body:not(.ex-ai-mode) {
  --cabin-data-surface: linear-gradient(160deg, rgba(var(--ac-fg-rgb), .025), rgba(var(--ac-fg-rgb), .008)), rgba(var(--ac-s-020617), .82);
}
/* Nord's intentionally soft body text needs a small lift over its lighter glass. */
:root[data-skin="alice"][data-theme="dark"][data-palette="nord"],
:root[data-skin="alice"][data-theme="dark"][data-palette="nord"] body {
  --ac-tx2:#b4bfd1; --ac-tx3:#b4bfd1;
}
/* Jade's lower green haze needs 12% extra glass under the settlement footnote. */
:root[data-skin="alice"][data-theme="dark"][data-palette="jade"] body .home-panel-foot {
  background:linear-gradient(160deg, rgba(var(--ac-fg-rgb), .025), rgba(var(--ac-fg-rgb), .008)), rgba(var(--ac-s-020617), .12);
}

/* Alice numeric inset glass also carries persistent explanatory strips. */
:root[data-skin="alice"][data-theme][data-palette] body #view :is(.note,.callout,.fm-demand-pending-file)[class] {
  background: var(--cabin-data-surface); color: var(--ac-tx);
  border: 1px solid var(--ac-glass-rim); border-radius: 12px;
  box-shadow: inset 0 1px 0 var(--ac-glass-hi);
  backdrop-filter: blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat));
  -webkit-backdrop-filter: blur(var(--ac-glass-blur-s)) saturate(var(--ac-glass-sat));
}
:root[data-skin="alice"][data-theme][data-palette] body #view .fm-demand-pending-file > :is(span,code),
:root[data-skin="alice"][data-theme][data-palette] body #view .note > b { color: var(--ac-tx); }
/* SOC renders an empty chart after its explicit empty state. Keep its date controls. */
:root[data-skin="alice"] #soc-windows :is(#day,#fc):has(> .empty) .chart { display: none !important; }

/* A1b: four top-level AI KPI cards share Alice's outer-card gradient, rim and top highlight.
 * Keep the existing financial inks. Only this material may receive a contrast correction. */
:root[data-skin="alice"][data-theme][data-palette] body.ex-ai-mode .cd-kpi[class] {
  --cabin-kpi-glass: var(--ac-glass-2);
  background: linear-gradient(160deg, rgba(var(--ac-fg-rgb), .10), rgba(var(--ac-fg-rgb), .02)), var(--cabin-kpi-glass);
  border-color: var(--ac-glass-rim); box-shadow: inset 0 1px 0 var(--ac-glass-hi);
}

/* A small density correction preserves fixed red ink and 12px source labels on the brightest haze. */
:root[data-skin="alice"][data-theme="dark"][data-palette] body.ex-ai-mode .cd-kpi[class] {
  --cabin-kpi-glass: color-mix(in srgb, var(--ac-glass-2) 65%, rgb(var(--ac-s-0e1630)));
}

:root[data-skin="alice"][data-theme="light"][data-palette] body.ex-ai-mode .cd-kpi[class] {
  --cabin-kpi-glass: color-mix(in srgb, var(--ac-glass-2) 25%, rgb(var(--ac-s-0e1630)));
}

/* Ask Flux 悬浮按钮：页面底部多留一段，滚到底时最后一块内容能完全露出来、不被按钮盖住；
 * 空闲时按钮弱化，悬停或键盘聚焦时恢复。桌面与手机共用一组位置变量，手机上让开底部导航栏。 */
:root[data-skin="alice"] body {
  --cabin-assistant-bottom: 24px;
  --cabin-assistant-right: 24px;
}
:root[data-skin="alice"][data-theme][data-palette] body:has(> .cabin-assistant) #view.view {
  padding-bottom: calc(var(--cabin-assistant-bottom) + 56px + 24px);
}
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant {
  bottom: var(--cabin-assistant-bottom);
  right: var(--cabin-assistant-right);
  touch-action: none;
  user-select: none;
  /* 与左上角品牌能量核同款观感（用户 2026-11-13：右下角形象逊色不少）：去掉描边圆框和裁切，
     能量核放大到 52px、常态全不透明，只留一圈柔和光晕；悬停略放大提亮 */
  width: 56px; height: 56px;
  overflow: visible;
  border: 0;
  background: radial-gradient(circle, rgba(var(--ac-cy-rgb, 63,210,255), .16) 0%, rgba(var(--ac-cy-rgb, 63,210,255), .06) 55%, transparent 72%);
  backdrop-filter: none; -webkit-backdrop-filter: none;
  box-shadow: none;
  transition: opacity .15s, transform .18s ease, filter .18s ease;
}
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant .ex-orb {
  width: 52px; height: 52px;
  opacity: 1;
  filter: drop-shadow(0 0 10px rgba(var(--ac-cy-rgb, 63,210,255), .35));
  transition: opacity .2s, filter .2s;
}
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant:is(:hover, :focus-visible) {
  transform: scale(1.08);
  filter: brightness(1.15);
}
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant:is(:hover, :focus-visible) .ex-orb {
  opacity: 1;
  filter: drop-shadow(0 0 16px rgba(var(--ac-cy-rgb, 63,210,255), .55));
}
/* 压到可点击内容时保留淡影并让点击穿透；键盘聚焦始终完整可见、可操作。 */
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant[data-yielded]:not([data-pointer-over]):not([data-dragging]):not(:focus-visible) {
  opacity: .28;
  pointer-events: none;
}
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant:focus-visible {
  opacity: 1;
  pointer-events: auto;
  transition: none;
}
:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant:focus-visible .ex-orb { transition: none; }
@media (max-width: 900px) {
  :root[data-skin="alice"] body {
    --cabin-assistant-bottom: calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom, 0px));
    --cabin-assistant-right: 16px;
  }
}
@media (prefers-reduced-motion: reduce) {
  :root[data-skin="alice"][data-theme][data-palette] body :is(.cabin-assistant, .cabin-assistant .ex-orb) { transition: none; }
}
:root[data-skin="alice"][data-theme][data-palette][data-navfx="none"] body :is(.cabin-assistant, .cabin-assistant .ex-orb),
:root[data-skin="alice"] body:has(.cx[data-motion="off"]) :is(.cabin-assistant, .cabin-assistant .ex-orb) { transition: none; }

:root[data-skin="alice"][data-theme][data-palette] body .cabin-assistant[data-dragging] { cursor: grabbing; opacity: 1; }
/* 外观弹窗：切换主题色 / 动态背景 / 透明度时要直接看背后效果，遮罩不压暗、不虚化（用户 2026-11-13）。 */
:root[data-skin="alice"][data-theme][data-palette] body .mask:has(> .cabin-appearance-modal) { background: transparent !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }

/* 智能舱 / AI 外观面板顶部「恢复默认」（2026-11-13） */
.cabin-appearance .ap-reset-row { display: flex; justify-content: flex-end; margin: -4px 0 4px; }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-appearance .ap-reset-row .mh-act { color: var(--ac-tx2, inherit); }
:root[data-skin="alice"][data-theme][data-palette] body .cabin-appearance .ap-reset-row .mh-act:hover:not([disabled]) { background: rgba(var(--ac-fg-rgb, 255,255,255), .08); color: var(--ac-tx, inherit); }

/* 所有模块拉到底不再空一条（用户 2026-11-13：最底部模块拉到底就停，不要再拉出空白）。
   桌面端把各处 96px 底部预留统一收到 12px；悬浮 Flux 只压在最后一块卡片右下角的留白上。手机端仍给底部导航让位。 */
@media (min-width: 901px) {
  :root[data-skin="alice"][data-theme][data-palette] body :is(.view, #view),
  :root[data-skin="alice"][data-theme][data-palette] body:has(> .cabin-assistant) #view.view,
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page,
  :root[data-skin="alice"][data-theme][data-palette] body .view.admin-view.ops-system,
  :root[data-skin="alice"][data-theme][data-palette] body:has(> .cabin-assistant) .view.admin-view.ops-system { padding-bottom: 12px; }
}

/* 智能舱·浅色顶栏：时间块 / 超级 Flux 按钮 / 经典·智能舱·AI 切换原为 78–86% 纯白实底，像贴了白纸（用户 2026-11-13）。
   改成半透明白 + 背景模糊的毛玻璃，与卡片同一套玻璃质感。 */
:root[data-skin="alice"][data-theme="light"][data-palette] body .topbar :is(#cabin-time, #sf-entry, #ex-mode-switch, .cabin-status summary) {
  background: linear-gradient(160deg, rgba(255,255,255,.52), rgba(255,255,255,.22));
  backdrop-filter: blur(14px) saturate(1.5); -webkit-backdrop-filter: blur(14px) saturate(1.5);
  border-color: rgba(255,255,255,.65);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 4px 14px -8px rgba(15,23,42,.25);
}
/* 智能舱一级模块间距：与经典布局统一为模块间 4px（powerx.css 的 nav-sec 外边距已归零，2026-11-13） */
:root[data-skin="alice"][data-theme][data-palette] body .sidebar .nav > :is(.nav-item, .nav-sec:not(.nav-bottom)) { margin-block: 2px; }

/* 外观面板：毛玻璃 + 不压暗背景（边调边看效果），可拖动（2026-11-13） */
body .mask.cabin-appearance-mask { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
:root[data-skin][data-theme] body .modal.cabin-appearance-modal {
  background: color-mix(in srgb, var(--ac-glass-1, rgba(20,28,54,.6)) 70%, transparent);
  backdrop-filter: blur(22px) saturate(1.5); -webkit-backdrop-filter: blur(22px) saturate(1.5);
  border: 1px solid var(--ac-glass-rim, rgba(255,255,255,.16));
  box-shadow: 0 24px 64px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.12);
}
:root[data-skin][data-theme] body .modal.cabin-appearance-modal :is(.modal-h, .modal-b) { background: transparent; }
:root[data-skin][data-theme="light"] body .modal.cabin-appearance-modal { background: rgba(255,255,255,.62); border-color: rgba(255,255,255,.75); box-shadow: 0 24px 64px rgba(15,40,80,.18), inset 0 1px 0 rgba(255,255,255,.9); }
body .modal.cabin-appearance-modal.dragging { transition: none; user-select: none; }
