/* ==========================================================================
   尚书 · DeepSeek 风格层（唯一风格定义，非补丁覆盖层）
   设计令牌 + 全站组件统一。加载在 workbench.css / app-extra.css / 各模块 CSS 之后，
   用层叠顺序覆盖基础样式。规则：每个组件只定义一次，无 !important，统一变量。
   ========================================================================== */

/* —— 品牌字体 —— */
@font-face { font-family:'DinglieSong'; src:url('../fonts/dingliesong.ttf') format('truetype'); font-weight:normal; font-display:swap; }
@font-face { font-family:'Futura'; src:url('../fonts/futura-medium.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:'Futura'; src:url('../fonts/futura-bold.ttf') format('truetype'); font-weight:700; font-display:swap; }

/* ==========================================================================
   0. 设计令牌（DeepSeek 官网风格定稿）
   白底 + 左灰栏；黑白灰打底，品牌绿克制使用；层级靠底色/透明度，不靠彩色块。
   ========================================================================== */
:root{
  /* 底色：外层画布用中性灰，业务/对话两张主卡片保持纯白 */
  --bg:#ffffff; --bg-alt:rgba(0,0,0,.04); --card:#ffffff;
  /* 线条（仅用于极少数分隔） */
  --line:rgba(0,0,0,.08); --line2:rgba(0,0,0,.14);
  /* 文字 */
  --fg:#1e232c; --fg2:rgba(0,0,0,.65); --fg3:rgba(0,0,0,.45);
  /* 品牌绿（2026-08-17 改：墨绿退役，改浅绿 + 克制光效）
     --green   面（主按钮/选中开关底）  --green2 深一档（hover）
     --green-ink 绿字（浅底上保证对比）  --acc 点缀绿（AI 标识 / 状态点 / 开关开启态） */
  --green:#10B981; --green2:#0EA372; --green-ink:#0A6E4C;
  --acc:#34D399; --accd:#E9F8F1;
  /* 侧栏浅灰 + 画布略深一档，白卡片才能浮起来 */
  --side-bg:#EFF0F1;
  --canvas:#E8EAEB;
  /* 光效：全站只出现在对话输入框（轻量绿光晕）。按钮一律纯色，不做渐变、不做发光。 */
  --halo:0 0 0 1px rgba(0,0,0,.08),0 0 0 3px rgba(16,185,129,.05),0 2px 10px rgba(16,185,129,.10);
  --halo-on:0 0 0 1px rgba(16,185,129,.32),0 0 0 4px rgba(16,185,129,.08),0 3px 16px rgba(16,185,129,.16);
  /* 语义色（信息/警告/错误） */
  --blue:#2563EB; --blued:#E8F0FB;
  --amber:#C77A0A; --amberd:#FBF3E4;
  --red:#DC4444; --redd:#FBEAEA;
  --muted:rgba(0,0,0,.45); --tag:rgba(0,0,0,.04);
  /* 圆角（Cursor 风：尽量压平圆角存在感——面 6px / 控件 5px / 小件 4px；不再有胶囊） */
  --r:6px; --r-sm:5px; --r-lg:8px; --r-xs:4px;
  /* 阴影：面不投影，只用发丝线环分界（浮层另有 --pop） */
  --shadow:0 0 0 1px rgba(0,0,0,.07);
  --pop:0 10px 28px rgba(0,0,0,.10),0 0 0 1px rgba(0,0,0,.06);
  --workspace-shadow:0 0 0 1px rgba(0,0,0,.06),0 4px 18px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04);
  --workspace-radius:10px;
  /* 动效曲线 */
  --spring:cubic-bezier(.22,1.1,.32,1); --ease:cubic-bezier(.16,1,.3,1);
  /* 跨系统字体栈（Mac=SF/苹方 · Win=Segoe/雅黑 · Android=Roboto） */
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','TaipeiSans',sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}

/* ==========================================================================
   1. 全局基础
   ========================================================================== */
body{
  background:var(--canvas);
  color:var(--fg);
}
::selection{background:rgba(0,0,0,.08)}
/* 细贴边滚动条：4px 透明轨道，容器 hover 时才显滑块（覆盖 workbench 8px 粗条） */
html{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0) transparent}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}
.side-scroll:hover::-webkit-scrollbar-thumb,
#main:hover::-webkit-scrollbar-thumb,
.chat-scroll:hover::-webkit-scrollbar-thumb,
.chat-float-panel:hover::-webkit-scrollbar-thumb,
.chat-float-sess:hover::-webkit-scrollbar-thumb,
.main:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18)}

/* ==========================================================================
   2. 布局（中性画布 + 两张主卡片；卡片上圆角、下方直落到底）
   ========================================================================== */
.layout{display:flex;height:100vh;background:var(--canvas)}
#side.side{
  width:var(--side-w, 196px);flex-shrink:0;display:flex;flex-direction:column;min-height:0;
  height:100%;
  background:var(--side-bg);
  border-right:none;
  padding:14px 6px 0;
  overflow:hidden;
  scrollbar-gutter:auto;
  font-family:var(--sans);
  transition:width .3s var(--ease);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
#side.rail{
  padding-left:0;
  padding-right:0;
}
.side-scroll{
  flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;
  padding:0 0 6px;
  scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0) transparent;
}
.workspace-shell{
  flex:1;min-width:0;display:flex;overflow:hidden;
  padding:6px 0 0 2px;
}
.workspace-card{
  background:#fff;border-radius:var(--workspace-radius) var(--workspace-radius) 0 0;
  box-shadow:var(--workspace-shadow);
}
#main.workspace-card{
  overflow-x:hidden;overflow-y:auto;min-height:0;
  scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0) transparent;
}
.ai-copilot.workspace-card{overflow:hidden}
.main{
  flex:1;min-width:0;min-height:0;
}
/* 列宽拖拽条：侧栏 / AI 分栏共用同一视觉（10px 热区 + 居中 2×44 竖条） */
.col-resizer{
  position:relative;flex:0 0 10px;width:10px;cursor:col-resize;touch-action:none;
  background:transparent;
}
.col-resizer::after{
  content:"";position:absolute;left:4px;top:calc(50% - 22px);width:2px;height:44px;
  border-radius:2px;background:transparent;transition:background .15s var(--ease);
}
.col-resizer:hover::after,.col-resizer.dragging::after,.col-resizer:active::after{
  background:rgba(0,0,0,.22);
}
.side-resizer{
  position:absolute;top:0;right:-5px;bottom:0;width:10px;z-index:20;
}
#side.rail .side-resizer{display:none}

/* ==========================================================================
   3. 侧栏（品牌 / 导航 / 用户 / 折叠 / 玻璃条）
   ========================================================================== */
/* —— 品牌（印章 + 尚书，brand-mark.png；登录页另用带英文的 brand.png） —— */
/* 品牌页眉：44px 固定带，品牌图在带内光学居中，成为独立页眉区。
   侧栏字标去掉 Lingeringtek：中英全词按 21px 高要占 164px，加折叠键槽位后把栏宽顶到 232px 起，
   右侧业务区跟着被挤窄；只留印章 + 尚书后字标 62px，栏宽得以收到 196px。
   左内边距 8px 与导航行 padding 对齐（两者左边缘同在 14px 一条线上），折叠键留固定 34px 槽位。 */
.side-brand{display:flex;align-items:center;column-gap:10px;height:44px;padding:0 8px;margin-bottom:16px;flex-shrink:0}
.side-brand-img{height:21px;width:auto;display:block;min-width:0;max-width:calc(100% - 34px);object-fit:contain;object-position:left center}
.side-toggle{margin-left:auto;flex-shrink:0;border-radius:var(--r-sm)}
/* 展开态只显示箭头；印章图只在 rail 静止态出现（见下方 rail 段） */
.side-toggle-seal{display:none;width:19px;height:19px;object-fit:contain}
.side-toggle-chev{display:grid;place-items:center}

/* —— 导航项：文字与图标尺寸恒定（hover 改字号会让整栏文字抖动，是长期疲劳源）
   行高 32px：原 30px 让 12 个条目全挤在顶部 60%，下方空一大片；放宽后整列填充更均匀 —— */
.side-item{position:relative;z-index:2;line-height:22px;padding:5px 8px;margin-bottom:2px;border-radius:var(--r-sm)}
.side-item.workspace-item{padding-right:26px}
.side-item .side-label,.side-item .ico svg{transition:none}
.side-item:hover{background:transparent;color:var(--fg);transform:none}
.side-item:hover .ico{color:var(--fg)}
.side-item.on{background:transparent;color:var(--green2);font-weight:400;box-shadow:none}
.side-item.on .ico{background:transparent;color:var(--green2)}
.side-item .ico{background:transparent;color:var(--fg2)}
.core-item{font-weight:400}
.side-core,.side-sec,.side-favorites{border-bottom:none}

/* —— 分组节奏：组间距 ≫ 组内行距，小灰字只做辅助（左缩进与行文字对齐） —— */
.side-core{padding-bottom:0}
.side-favorites{margin-top:20px}
.workspace-group{margin-top:20px}
.side-main .workspace-group:first-child{margin-top:16px}
.side-main .workspace-group:last-child{margin-bottom:6px}
.side-sec{padding:0 8px 6px;font-size:10px;letter-spacing:1.4px;color:rgba(0,0,0,.38)}
.workspace-group .workspace-body{
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .28s var(--ease),opacity .18s ease;
}
.workspace-group.open .workspace-body{max-height:2400px;opacity:1}
.workspace-sec{
  display:flex;align-items:center;gap:6px;width:100%;
  padding:0 8px 6px;font-size:10px;letter-spacing:1.4px;
  color:rgba(0,0,0,.38);cursor:pointer;background:transparent;border:none;text-align:left;
}
.workspace-sec:hover{color:var(--fg2)}
.workspace-sec .workspace-chev{
  margin-left:auto;width:10px;height:10px;opacity:.55;
  transform:rotate(90deg);transition:transform .2s var(--ease);
}
.workspace-group.open .workspace-sec .workspace-chev{transform:rotate(180deg);opacity:.8}
#side.rail .workspace-body{max-height:none!important;opacity:1!important;overflow:visible}
#side.rail .workspace-sec .workspace-chev{display:none}

/* —— 账号区：钉在栏底实色展开，不浮层盖导航 —— */
.side-foot{
  flex-shrink:0;margin:0 -6px 0;padding:8px 6px 12px;
  border-top:1px solid var(--line);
  background:var(--side-bg);
  position:relative;z-index:5;
}
.side-account{background:var(--side-bg)}
.side-user{
  display:flex;align-items:center;gap:9px;width:100%;
  padding:6px 8px;border-radius:var(--r-sm);border:none;cursor:pointer;
  transition:background .15s;text-align:left;
  background:transparent;
}
.side-user:hover{background:rgba(0,0,0,.05)}
.side-avatar{width:24px;height:24px;border-radius:var(--r-sm);background:rgba(0,0,0,.06);color:var(--fg);display:grid;place-items:center;font-size:11.5px;flex-shrink:0}
.side-user-name{font-size:12px;color:var(--fg);display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:0}
.side-user-name em{font-style:normal;font-size:10px;color:var(--fg3);font-weight:400}
.side-user-caret{display:grid;place-items:center;color:var(--fg3);flex-shrink:0;transition:transform .18s var(--ease)}
.side-user[aria-expanded="true"] .side-user-caret{transform:rotate(180deg)}
.side-account-menu{
  position:absolute;bottom:calc(100% + 6px);left:6px;right:6px;
  padding:6px;background:#fff;border:none;
  border-radius:var(--r);box-shadow:var(--pop);
}
.side-account-menu[hidden]{display:none!important}
.side-account-item{display:flex;align-items:center;gap:9px;width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--r-sm);font-size:12.5px;color:var(--fg2);cursor:pointer;text-align:left}
.side-account-item .ico{display:grid;place-items:center;color:var(--fg3);flex-shrink:0}
.side-account-item:hover{background:rgba(0,0,0,.05);color:var(--fg)}
.side-account-item:hover .ico{color:var(--fg)}
.side-account-item.danger{color:var(--red)}
.side-account-item.danger .ico{color:var(--red)}
.side-account-item.danger:hover{background:var(--redd);color:var(--red)}

/* —— 折叠 rail（56px 图标列，由 sidebarLayout 控制器驱动） —— */
/* rail 态品牌区沿用展开态的 44px 带高与 16px 下边距：原来改成竖排 + height:auto + 2px/14px，
   折叠后按钮上移了十几个像素，与展开态不在同一条水平线上，切换时整栏跟着跳。 */
#side.rail .side-brand{justify-content:center;height:44px;padding:0;margin-bottom:16px}
#side.rail .side-brand-img{display:none}
#side.rail .side-toggle{margin-left:0}
/* rail 静止态显示印章（品牌仍在场），hover / 键盘聚焦才换成展开箭头 —— 折叠后按钮不再是一枚裸箭头 */
#side.rail .side-toggle-seal{display:block}
#side.rail .side-toggle-chev{display:none}
#side.rail .side-toggle:hover .side-toggle-seal,
#side.rail .side-toggle:focus-visible .side-toggle-seal{display:none}
#side.rail .side-toggle:hover .side-toggle-chev,
#side.rail .side-toggle:focus-visible .side-toggle-chev{display:grid;transform:rotate(180deg)}
#side.rail #side-glass{display:none}

/* —— 滑动指示条：与行等宽、与框线等距的实心高亮（Cursor 风）——
   原「液态玻璃」= 白渐变 + blur18 + 内高光 + 3.6s 循环扫光：边缘虚、比行宽、常驻动画，
   看着松垮且长期疲劳。现改为无模糊、无投影、无扫光的紧实块，左右 inset 与 .side padding 一致。 */
#side{position:relative}
#side-glass{
  position:absolute;left:0;top:0;width:0;z-index:1;pointer-events:none;
  border-radius:var(--r-sm);opacity:0;
  /* 选中块不上色：浅绿侧栏上用白块提亮（整块变绿已否决），绿只留给文字与图标 */
  background:#fff;
  box-shadow:0 0 0 1px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.03);
  transition:transform .18s var(--ease),height .18s var(--ease),opacity .12s;
}
#side-glass.show{opacity:1}
/* hover 预览：更淡的白块，无描边 */
#side-glass.hover{opacity:.6;box-shadow:none}

/* ==========================================================================
   4. 通用组件（卡片 / 按钮 / 标签 / 表格 / 表单 / tab）
   ========================================================================== */
/* 卡片族：白底、无边框、6px 圆角、克制发丝环 */
.card,.mo-card,.panel,.ap-card,.cron-card,.tool-card,.exec-card,.art-card,.cf-card{
  background:var(--card);border:none;border-radius:var(--r);
  box-shadow:var(--shadow);
}
.card-hd{border-bottom:none}
.panel{overflow:hidden}
.panel-hd{padding:13px 16px;font-size:13.5px;font-weight:600;display:flex;align-items:center}
.panel-hd .more{margin-left:auto;font-size:11.5px;color:var(--fg3);cursor:pointer}
.panel-hd .more:hover{color:var(--green-ink)}

/* 按钮：主操作浅绿方角（胶囊已废弃——圆角存在感统一压到 6px），ghost 无边框 */
.btn,.btn-pri,.ap-btn.ok,.ap-ok,.appr .ok,.cf-btn.ok,.send-btn{border-radius:var(--r);font-weight:500}
/* 主操作：纯色浅绿，无渐变、无发光（渐变按钮已否决） */
.btn-pri,.ap-btn.ok,.ap-ok,.appr .ok,.cf-btn.ok,.send-btn{
  background:var(--green);color:#fff;border:1px solid transparent;
  box-shadow:none;transition:background .15s var(--ease);
}
.btn-pri:hover,.ap-btn.ok:hover,.ap-ok:hover,.appr .ok:hover,.cf-btn.ok:hover,.send-btn:hover{
  background:var(--green2);box-shadow:none;transform:none;filter:none;
}
/* 绿色用量纪律：主操作按钮限 inline 尺寸，绝不铺满整行（整条绿块是最刺眼的滥用） */
.card-bd>.btn-pri,.card-bd>.btn{align-self:flex-start}
.btn-ghost,.ap-no,.appr .no{background:transparent;border:1px solid rgba(0,0,0,.12);color:var(--fg)}
.btn-ghost:hover,.ap-no:hover,.appr .no:hover{background:var(--bg-alt);color:var(--fg)}

/* 标签 / 小件：浅灰底无边框，圆角压到 4px */
.tag,.pill,.chip{border:none;border-radius:var(--r-xs)}
.tag{background:var(--bg-alt);color:var(--fg2)}
.tag.am{background:var(--amberd);color:var(--amber)}
.tag.bl{background:var(--blued);color:var(--blue)}
.tag.rd{background:var(--redd);color:var(--red)}
.pill.g{background:var(--accd);color:var(--green2)}
.pill.b{background:var(--blued);color:var(--blue)}
.pill.a{background:var(--amberd);color:var(--amber)}
.pill.r{background:var(--redd);color:var(--red)}
.pill.n{background:var(--bg-alt);color:var(--fg3)}
.chip{background:var(--bg-alt);color:var(--fg2)}
.chip:hover{background:rgba(0,0,0,.07);color:var(--fg)}
.chip.on{background:rgba(0,0,0,.06);color:var(--fg)}

/* 表格：灰字表头、浅分隔线、合计绿字；对齐规范 = 文本左 / 数字右(.r) / 状态居中(.c) */
.dtable th{color:var(--fg3);border-bottom:none;background:transparent;text-align:left}
.dtable td{border-top:none;border-bottom:none;color:var(--fg2);text-align:left}
.dtable .r{text-align:right;font-variant-numeric:tabular-nums}
.dtable .c{text-align:center}
.dtable tr:hover td{background:transparent}
.dtable tr.total td{background:var(--bg-alt);color:var(--green-ink);font-weight:600}
.dtable td.ed:focus{outline:none;background:var(--bg-alt)}

/* 表单：微灰底、10px 圆角、聚焦深灰边 */
.fld input,.fld select,.fld textarea,
.main input[type="text"],.main input[type="number"],.main input[type="date"],.main input[type="password"],.main input[type="email"],.main input:not([type]),.main select,.main textarea{
  border:1px solid rgba(0,0,0,.12);border-radius:var(--r-sm);background:rgba(0,0,0,.03);color:var(--fg);
}
.fld input:focus,.fld select:focus,.fld textarea:focus,
.main input:focus,.main select:focus,.main textarea:focus{
  border-color:rgba(0,0,0,.22);box-shadow:0 0 0 3px rgba(0,0,0,.04);background:#fff;outline:none;
}

/* tab：底部指示线选中（浅绿） */
.tabbar{border-bottom:1px solid var(--line)}
.tab{color:var(--fg3);font-weight:600;border-bottom:2px solid transparent}
.tab:hover{color:var(--fg)}
.tab.on{color:var(--green-ink);border-bottom-color:var(--green)}
.sub-tab{background:var(--bg-alt);border:none;color:var(--fg2);border-radius:var(--r-sm)}
.sub-tab:hover{color:var(--fg)}
.sub-tab.on{background:var(--green);color:#fff;border:none}
.sub-tab .bdg{background:var(--redd);color:var(--red)}
.sub-tab.on .bdg{background:rgba(255,255,255,.2);color:#fff}

/* 分段选择器（seg/freq） */
.seg{background:var(--bg-alt);border:none;border-radius:var(--r);padding:2px}
.seg button{color:var(--fg2);font-weight:500;border-radius:var(--r-xs)}
.seg button.on{background:var(--green);color:#fff}
.seg-ind{display:none}
.freq button{background:var(--bg-alt);border:none;color:var(--fg2);border-radius:var(--r-sm)}
.freq button.on{background:var(--green);color:#fff}

/* ==========================================================================
   5. 业务组件（KPI / 列表 / AI 元素 / 生产 / 待审批 / 定时任务 / 工具）
   ========================================================================== */
/* KPI */
.kpi{background:var(--card);border:none;border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px;position:relative}
.kpi-ic{position:absolute;top:14px;right:14px;width:26px;height:26px;border-radius:var(--r-xs);display:grid;place-items:center;background:var(--accd);color:var(--green2)}
.kpi-ic svg{width:14px;height:14px;display:block}
.kpi:hover{transform:none;box-shadow:var(--shadow)}
.kpi .k{color:var(--fg3)}
.kpi .v{font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.kpi .v small{color:var(--fg3)}
.kpi .d.up{color:var(--acc)} .kpi .d.warn{color:var(--amber)} .kpi .d.bad{color:var(--red)}
.sec-title{color:var(--fg)}
.sec-title .sub{color:var(--fg3)}
.stat:hover{background:var(--bg-alt)}
.stat:hover .v{color:var(--green-ink)}

/* 空态：窄条内联提示，不用大空卡片 */
.empty-hint{padding:2px 2px;color:var(--fg3);font-size:12.5px;text-align:left}
/* 提醒行：浅琥珀底无边框 */
.alert-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;background:var(--amberd);border:none;border-radius:var(--r-sm)}

/* 看板泳道 */
.lane{background:var(--bg-alt)}
.lane-hd .n{background:rgba(0,0,0,.06)}
.b-card{background:var(--card);border:none;border-radius:var(--r);box-shadow:var(--shadow)}
.b-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:transparent}
.b-card .who{background:var(--green2);color:#fff}

/* AI 元素（只读洞察 / 感知横幅 / 洞察条） */
.ai-note{background:var(--bg-alt);border:none;color:var(--fg)}
.ai-note .spark{color:var(--acc)}
.ai-note b{color:var(--green-ink)}
.ai-banner{background:var(--amberd);border:none;color:var(--amber);border-radius:var(--r)}
.ai-banner .b1{background:var(--green);color:#fff;border-radius:var(--r-sm)}
.ai-banner .b2{color:var(--fg3)}
/* insight：墨绿实底 → 中性灰面（大面积一律不上绿，绿只留给图标与关键词） */
.insight{background:var(--bg-alt);color:var(--fg);box-shadow:none}
.insight::after{display:none}
.insight .i{background:var(--accd);color:var(--green-ink)}
.insight .tx b{color:var(--green-ink)}
.insight .go{color:var(--green-ink);border-color:rgba(16,185,129,.35);border-radius:var(--r-sm)}
.insight .go:hover{background:rgba(16,185,129,.12)}

/* 列表项（待审批 / 动态 / 文件 / 记忆 / 员工） */
.appr{border-bottom:none}
.file-item,.file-row{background:var(--card);border:none;border-radius:var(--r);box-shadow:var(--shadow)}
.file-item:hover,.file-row:hover{transform:none;box-shadow:var(--shadow)}
.feed-item{border-bottom:none}
.mem-note{background:var(--amberd);border:none;color:var(--amber)}
.mem-item{background:var(--card);border:none;border-radius:var(--r);box-shadow:var(--shadow)}
.mem-txt:focus{background:var(--bg-alt);box-shadow:none}
.add-row{border:1.5px dashed var(--line2);border-radius:var(--r)}
.add-row:hover{color:var(--green2);border-color:var(--acc);background:var(--accd)}
.staff-chip{background:var(--card);border:none;border-radius:var(--r);box-shadow:var(--shadow)}
.staff-chip:hover{transform:none;box-shadow:var(--shadow)}
.staff-chip.on{background:var(--accd);box-shadow:none}

/* 生产工单 */
.mo-prog{background:var(--bg-alt)}
.mo-prog i{background:var(--green)}
.mo-step.done{color:var(--green2)} .mo-step.done .st-dot{background:var(--accd);color:var(--green2)}
.mo-step.cur{color:var(--amber)} .mo-step.cur .st-dot{background:var(--amberd);color:var(--amber)}

/* 待审批 */
.ap-card{border-left:3px solid var(--amber)}
.ap-card.approved{border-left-color:var(--acc)}
.ap-card.rejected{border-left-color:var(--red)}
.ap-why{background:var(--bg-alt)}
.ap-body b{color:var(--green-ink)}

/* 定时任务 */
.cron-toggle{border-radius:999px}
.cron-toggle.on{background:var(--acc)}
.cron-log-item{border-bottom:none}

/* 工具卡 / 甘特 / 甘特 mock */
.tool-card-bd b{color:var(--green-ink)}
.gantt-track{background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 10%)}
.gantt-bar{background:var(--line2);border-radius:3px}
.gantt-bar>i{background:var(--green)}
.gantt-bar.late>i{background:var(--red)}
.gantt-today{background:var(--amber)}
.gantt,.g-bar{border:none}
.restricted{border:1.5px dashed var(--line2)}

/* 文档 */
.doc-page{border-radius:var(--r)}
.doc-page h4{color:var(--green-ink)}
.doc-page:focus{box-shadow:0 0 0 3px rgba(0,0,0,.05)}

/* 预览区 */
.preview{border:none;background:var(--bg-alt);border-radius:var(--r)}

/* ==========================================================================
   6. 消息页（im）
   ========================================================================== */
.im-layout{margin:-20px -24px;height:calc(100vh - 44px)}
.im-list{border-right:none;background:transparent;backdrop-filter:none}
.im-list-hd{border-bottom:none}
.im-add-btn{border:none;background:var(--bg-alt);border-radius:var(--r-sm)}
.im-add-btn:hover{color:var(--fg);background:rgba(0,0,0,.07)}
.im-item{border-bottom:none}
.im-item:hover{background:var(--bg-alt)}
/* 会话选中：与侧栏选中同一语言——中性块 + 绿只做左缘细标，不整行上绿 */
.im-item.on{background:rgba(0,0,0,.05);box-shadow:inset 2px 0 0 var(--green)}
.im-hd{border-bottom:none;background:transparent;backdrop-filter:none}
.im-bubble{border:none;border-radius:var(--r);box-shadow:var(--shadow)}
/* 自己发的消息：与对话页用户气泡一致的中性灰（绿气泡属于大面积上色，已否决） */
.im-msg.self .im-bubble{background:rgba(0,0,0,.05);color:var(--fg)}
.im-bubble.ai{background:var(--bg-alt);color:var(--fg)}
.im-input{border-top:none;background:transparent;backdrop-filter:none}
.im-input-box input,.im-input-field{border:1px solid rgba(0,0,0,.12);border-radius:var(--r-sm);background:rgba(0,0,0,.03)}
.im-input-box input:focus,.im-input-field:focus{border-color:rgba(0,0,0,.22);box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.im-modal-box{border:none;border-radius:var(--r-lg);box-shadow:0 20px 60px rgba(0,0,0,.18)}
.im-modal-hd{border-bottom:none}
.im-modal-ft{border-top:none}
.im-member-check:hover{background:var(--bg-alt)}
.im-member-check input{accent-color:var(--green)}

/* ==========================================================================
   7. 日历
   ========================================================================== */
.cal-bar .nav-b{border:none;background:var(--bg-alt);border-radius:var(--r-sm)}
.cal-bar .nav-b:hover{background:rgba(0,0,0,.07);transform:none}
.cal-tab{background:var(--bg-alt);border:none;color:var(--fg2);border-radius:var(--r-sm)}
.cal-tab.on{background:var(--green);color:#fff}
.cal-cell{border:none;background:var(--card);border-radius:var(--r-sm);box-shadow:var(--shadow)}
.cal-cell:hover{transform:none;box-shadow:var(--shadow)}
.cal-cell.sel{box-shadow:0 0 0 2px rgba(16,185,129,.35)}
.cal-cell.today .d-num{background:var(--green);color:#fff}
.cal-ev{border-radius:3px}
.ym-card{border:none;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.ym-card:hover{transform:none;box-shadow:var(--shadow)}
.ym-d.td{background:var(--green);color:#fff}
.day-row{border-bottom:none}
.day-ev{border-radius:3px}

/* ==========================================================================
   8. 对话页（单一消息流 + 底部轻光晕输入框 + 悬浮栏）
   ========================================================================== */
#main.chat-page{overflow:hidden}
.chat-main{position:relative;flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}

/* 右上角悬浮栏 */
.chat-float-btn{position:absolute;top:14px;right:18px;z-index:15;width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;background:transparent;color:var(--fg3);transition:background .15s,color .15s}
.chat-float-btn:hover{background:rgba(0,0,0,.06);color:var(--fg)}
.chat-float-panel{position:absolute;top:54px;right:18px;z-index:16;width:286px;max-height:min(540px,72%);display:flex;flex-direction:column;background:#fff;border-radius:var(--r);box-shadow:var(--pop);padding:8px;overflow-y:auto;animation:pop .16s var(--ease) both}
.chat-float-new{display:flex;align-items:center;justify-content:center;width:100%;padding:8px 0;flex-shrink:0;border-radius:var(--r-sm);background:var(--bg-alt);color:var(--fg);font-size:13px;font-weight:500;transition:background .15s}
.chat-float-new:hover{background:rgba(0,0,0,.08)}
.chat-float-hd{font-size:10.5px;color:var(--fg3);letter-spacing:1.5px;padding:14px 6px 6px;flex-shrink:0}
.chat-float-sess{display:flex;flex-direction:column;gap:2px;min-height:0;overflow-y:auto}
.chat-float-abs{display:flex;flex-direction:column;gap:2px;flex-shrink:0}
.chat-float-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--r-sm);cursor:pointer;font-size:12.5px;color:var(--fg2);transition:background .12s}
.chat-float-item:hover{background:var(--bg-alt);color:var(--fg)}
.chat-float-item.on{background:rgba(0,0,0,.06);color:var(--fg)}
.chat-float-item .t{flex:1;min-width:0;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-float-item .d{font-size:10.5px;color:var(--fg3);flex-shrink:0}
.chat-float-item .si{width:24px;height:24px;border-radius:var(--r-xs);flex-shrink:0;display:grid;place-items:center;background:var(--bg-alt);color:var(--fg2)}
.chat-float-item .si svg{display:block}
.chat-float-empty{font-size:11.5px;color:var(--fg3);padding:10px 6px}
.chat-loading{font-size:12px;color:var(--fg3);padding:6px 2px}

/* 消息流：轮次分组（提问→回答成组）+ 正文排版 */
.chat-scroll{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0) transparent}
.chat-inner{max-width:780px;margin:0 auto;padding:30px 28px 8px;display:flex;flex-direction:column;gap:0}
.chat-inner>*{margin-top:28px}
.chat-inner>*:first-child{margin-top:0}
.m-user{align-self:flex-end;max-width:78%}
.m-user .bub{background:rgba(0,0,0,.05);color:var(--fg);padding:10px 14px;border-radius:var(--r) var(--r) 2px var(--r);box-shadow:none;border:none;font-size:14.5px;line-height:1.7}
.m-ai{align-self:flex-start;max-width:94%;margin-top:10px}
.m-ai+.m-user{margin-top:32px}
/* AI 标识：声波三条（--acc）；生成中大幅波动 */
/* 声波标识与正文首行光学居中：正文 15px × 1.85 = 27.75px 行盒，标识 12px 高，
   (27.75-12)/2 ≈ 8px。另需把首段的 9px 上边距清零，否则文字整体下沉、标识显得偏高。 */
.m-ai .ava{width:15px;height:12px;flex-shrink:0;margin-top:8px;display:flex;align-items:center;gap:3px;border:none;background:none}
.m-ai .ava i{width:3px;border-radius:2px;background:var(--acc)}
.m-ai .ava i:nth-child(1){height:6px}
.m-ai .ava i:nth-child(2){height:12px}
.m-ai .ava i:nth-child(3){height:6px}
.m-ai .ava.thinking i{animation:ava-wave .8s ease-in-out infinite}
.m-ai .ava.thinking i:nth-child(2){animation-delay:.12s}
.m-ai .ava.thinking i:nth-child(3){animation-delay:.24s}
@keyframes ava-wave{0%,100%{transform:scaleY(.45);opacity:.55}50%{transform:scaleY(1.25);opacity:1}}
.m-ai .body{max-width:100%}
.m-ai .txt{font-size:15px;line-height:1.85;letter-spacing:.1px}
.m-ai .txt b{color:var(--fg);font-weight:600}
.m-ai .txt .md-p{margin:9px 0}
.m-ai .txt .md-list{margin:9px 0}
.m-ai .txt>:first-child{margin-top:0}
.m-ai .txt>:last-child{margin-bottom:0}
.m-ai .txt .md-li{padding-left:18px;margin:4px 0;line-height:1.8}
.m-ai .txt .md-li::before{content:'';width:4.5px;height:4.5px;border-radius:50%;background:var(--fg3);left:2px;top:.92em}
.m-ai .txt code{background:rgba(0,0,0,.06);border-radius:4px}

/* 工具卡 / 确认卡 */
.tool{border:none;border-radius:var(--r);background:var(--bg-alt);box-shadow:none;margin:4px 0}
.tool:hover{background:rgba(0,0,0,.05)}
.tool-hd{border-radius:var(--r)}
.tool-bd-in{border-top:none;padding:0 14px 10px}
.tool-st{background:rgba(0,0,0,.06);color:var(--fg2)}
.tool-arg{color:var(--fg2)}
.cf-card{border:none;background:var(--amberd);box-shadow:none}
.cf-card.resolved{background:var(--bg-alt);animation:none}
.cf-tag{background:var(--amberd);color:var(--amber)}
.cf-btn.ghost{background:var(--bg-alt);border:none;color:var(--fg2)}
.cf-btn.ghost:hover{background:rgba(0,0,0,.09);color:var(--fg)}

/* 简报/欢迎 */
.brief{border:none;box-shadow:none;background:transparent}
.brief-hd{padding:0 0 4px}
.brief-item{border-top:none;padding:10px 0}
.lv.l3{color:var(--red);background:var(--redd)}
.lv.l2{color:var(--amber);background:var(--amberd)}
.lv.l1{color:var(--fg3);background:var(--bg-alt)}

/* 建议 chips */
.chips{max-width:780px;padding:4px 0 0}

/* 输入区：白底发丝环 + 极浅绿光晕；textarea 本体完全透明无框 */
.chat-input-wrap{max-width:820px;margin:0 auto;width:100%;padding:14px 28px 24px;position:relative;flex-shrink:0}
.chat-status{display:none;align-items:center;gap:7px;font-size:11.5px;color:var(--fg3);padding:0 8px 10px}
.chat-status.show{display:flex}
.chat-status .st-dot{width:6px;height:6px;border-radius:50%;background:var(--acc);animation:pulse-dot 1s infinite}
/* 输入框：白底 + 发丝线 + 轻量绿光晕（全站唯一保留光效的位置）。
   去掉了原来的 blur18 液态玻璃与内高光——虚边才是松垮的来源，光晕本身是好的。 */
.input-box{
  border:none;border-radius:var(--r-lg);
  background:#fff;
  box-shadow:var(--halo);
  padding:13px 15px 9px;transition:box-shadow .2s var(--ease);
}
.input-box:focus-within{box-shadow:var(--halo-on)}
.input-bar{display:flex;align-items:center;gap:6px;margin-top:8px}
.ib-btn{width:28px;height:28px;border-radius:var(--r-xs)}
.ib-btn:hover{background:rgba(0,0,0,.06);color:var(--fg)}
.ib-hint b{border:none}
.send-btn{width:32px;height:32px}
.chat-main .input-box textarea{background:none;border:none;outline:none;box-shadow:none;padding:4px 2px;border-radius:0;font-size:14.5px;line-height:1.65}
.chat-main .input-box textarea::placeholder{color:var(--fg3)}

/* / 菜单 */
.slash-menu{border:none;background:#fff;box-shadow:var(--pop);border-radius:var(--r);left:28px}
.slash-item .si{background:var(--bg-alt);color:var(--fg2);border-radius:var(--r-xs)}
.slash-item .sd{color:var(--fg3)}

/* ==========================================================================
   9. 其他通用（页头 / mock 标注 / toast / 开关）
   ========================================================================== */
.page-hd h1{font-weight:600}
.ai-hint{display:none}
.mock-note{border:none;background:var(--bg-alt);color:var(--fg3);border-radius:var(--r-sm)}
.toast{border-radius:var(--r);background:var(--green)}
.switch{border-radius:999px}
.switch i{border-radius:999px}
.switch input:checked + i{background:var(--acc)}
.wfail{color:var(--fg3)}
.testr{color:var(--fg3)}

/* ==========================================================================
   10. 侧栏布局编辑器（系统配置页 · 拖拽定制）
   ========================================================================== */
.sb-ed-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}
.sb-ed-panels{display:grid;grid-template-columns:1fr 240px;gap:14px;align-items:start}
@media (max-width:900px){.sb-ed-panels{grid-template-columns:1fr}}
.sb-ed-panel{
  background:#fff;border-radius:var(--r);
  box-shadow:var(--shadow);padding:10px 10px 12px;min-height:280px;
}
.sb-ed-panel-hd{font-size:12px;font-weight:600;color:var(--fg);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.sb-ed-hint{font-size:11px;color:var(--fg3);margin:-4px 0 8px;line-height:1.45}
.sb-ed-core{
  font-size:10.5px;color:var(--fg3);letter-spacing:.3px;
  padding:6px 8px;margin-bottom:8px;border-radius:var(--r-xs);background:rgba(0,0,0,.04);
}
.sb-ed-canvas,.sb-ed-lib{display:flex;flex-direction:column;gap:8px;min-height:120px}
.sb-ed-grp{
  background:#fff;border-radius:var(--r-sm);
  box-shadow:0 0 0 1px rgba(0,0,0,.05);
  overflow:hidden;
}
.sb-ed-grp-hd{
  display:flex;align-items:center;gap:8px;padding:7px 8px;
  font-size:10px;letter-spacing:1.2px;color:rgba(0,0,0,.42);
  background:rgba(0,0,0,.025);cursor:grab;user-select:none;
}
.sb-ed-grp-hd:active{cursor:grabbing}
.sb-ed-grp-name{flex:1;font-weight:600}
.sb-ed-grp-count{font-size:10px;color:var(--fg3);font-family:var(--mono)}
.sb-ed-grp-body{
  display:flex;flex-direction:column;gap:4px;padding:6px;min-height:44px;
  transition:background .12s,box-shadow .12s;
}
.sb-ed-grp-body.sb-ed-drop-over,.sb-ed-lib.sb-ed-drop-over{
  background:rgba(16,185,129,.06);box-shadow:inset 0 0 0 1px rgba(16,185,129,.22);
}
.sb-ed-item{
  display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r-sm);
  background:rgba(0,0,0,.03);cursor:grab;user-select:none;transition:opacity .12s,transform .12s,box-shadow .12s;
}
.sb-ed-item:active{cursor:grabbing}
.sb-ed-item.dragging{opacity:.45;transform:scale(.98)}
.sb-ed-item .ico{display:grid;place-items:center;color:var(--fg2);flex-shrink:0}
.sb-ed-item .ico svg{display:block}
.sb-ed-name{flex:1;font-size:12.5px;color:var(--fg);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-ed-grip{display:grid;place-items:center;color:var(--fg3);opacity:.55;flex-shrink:0}
.sb-ed-grip svg{display:block}
.sb-ed-lock{font-size:10px;opacity:.65;flex-shrink:0}
.sb-ed-act{
  flex-shrink:0;width:20px;height:20px;border:none;border-radius:6px;cursor:pointer;
  display:grid;place-items:center;font-size:13px;line-height:1;
  background:rgba(0,0,0,.05);color:var(--fg2);transition:background .12s,color .12s;
}
.sb-ed-act:hover{background:var(--acc);color:#fff}
.sb-ed-item.sb-ed-drop-before{box-shadow:inset 0 2px 0 var(--acc)}
.sb-ed-item.sb-ed-drop-after{box-shadow:inset 0 -2px 0 var(--acc)}
.sb-ed-empty{
  font-size:11.5px;color:var(--fg3);text-align:center;padding:14px 8px;
  border:1px dashed rgba(0,0,0,.12);border-radius:var(--r-sm);
}
.sb-ed-lib-panel .sb-ed-item{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.05)}

/* ==========================================================================
   10. 模块管理（系统配置页）
   侧栏显示开关：恢复原先不丑的样式，不要被侧栏布局编辑器 CSS 污染
   ========================================================================== */
.mod-grp{margin-bottom:4px}
.mod-list{display:flex;flex-wrap:wrap;gap:8px}
.mod-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r-sm);background:var(--bg-alt)}
.mod-name{font-size:12.5px;color:var(--fg2)}
.mod-sw{font-size:11px;padding:3px 12px;border-radius:var(--r-xs);background:rgba(0,0,0,.06);color:var(--fg2);transition:background .15s,color .15s}
.mod-sw:hover{background:rgba(0,0,0,.1);color:var(--fg)}
.mod-sw.on{background:var(--accd);color:var(--green2)}
.mod-sw.on:hover{background:var(--accd);color:var(--green2)}
.mod-sw.locked{background:var(--bg-alt);color:var(--fg3);cursor:default}
.mod-sw.locked:hover{background:var(--bg-alt);color:var(--fg3)}

/* ==========================================================================
   11. 汉堡 + 窄屏适配
   ========================================================================== */
.tb-burger{
  position:fixed;top:14px;left:14px;z-index:60;
  place-items:center;width:34px;height:34px;border-radius:var(--r-sm);
  background:rgba(255,255,255,.85);border:1px solid var(--line);color:var(--fg);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
@media (max-width:768px){
  .tb-burger{display:grid}
  .chat-inner{padding:20px 16px 8px}
  .chat-input-wrap{padding:8px 16px 16px}
}

/* ==========================================================================
   12. 全局 AI 协作层（同一 DOM / 同一会话的悬浮、分栏、全屏三形态）
   ========================================================================== */
.ai-copilot{display:none;min-width:0;background:#fff;position:relative}
.ai-copilot.mode-float{
  display:flex;position:fixed;right:20px;bottom:20px;z-index:70;
  width:min(390px,calc(100vw - 32px));height:min(620px,calc(100vh - 40px));
  border-radius:var(--workspace-radius);box-shadow:var(--pop);
}
.ai-copilot.mode-split{display:flex;flex:0 0 var(--ai-panel-width,38%);height:100%}
.ai-copilot.mode-full{display:flex;flex:1;height:100%}
.workspace-shell:has(.ai-copilot.mode-full)>.main{display:none}
.ai-splitter{display:none}
.workspace-shell:has(.ai-copilot.mode-split)>.ai-splitter{display:block}
.ai-fab{
  display:none;position:fixed;right:20px;bottom:20px;z-index:69;height:38px;
  align-items:center;gap:7px;padding:0 14px;border-radius:19px;background:var(--green);
  color:#fff;font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(16,185,129,.26);
}
.ai-fab.show{display:flex}
.ai-fab svg{width:15px;height:15px}
.ai-fab .running{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse-dot 1s infinite}

.ai-copilot .chat-main{width:100%;height:100%;background:#fff}
.copilot-head{
  min-height:43px;display:flex;align-items:center;gap:8px;padding:8px 10px 8px 12px;
  border-bottom:1px solid var(--line);background:#fff;flex-shrink:0;
}
.copilot-title{display:flex;align-items:center;gap:7px;min-width:0;font-size:12.5px;font-weight:600}
.copilot-title .wave{display:flex;align-items:center;gap:2px;color:var(--acc)}
.copilot-title .wave i{display:block;width:2px;border-radius:2px;background:currentColor}
.copilot-title .wave i:nth-child(1),.copilot-title .wave i:nth-child(3){height:6px}
.copilot-title .wave i:nth-child(2){height:11px}
.copilot-modes{margin-left:auto;display:flex;gap:2px}
.copilot-mode{
  width:26px;height:26px;display:grid;place-items:center;border-radius:var(--r-xs);color:var(--fg3);
}
.copilot-mode:hover{background:var(--bg-alt);color:var(--fg)}
.copilot-mode.on{background:var(--bg-alt);color:var(--green2)}
.copilot-mode svg{width:14px;height:14px}
.copilot-context{
  display:none;align-items:center;gap:6px;margin:8px 11px 0;padding:5px 8px;
  border-radius:var(--r-xs);background:var(--accd);color:var(--green-ink);font-size:11.5px;
}
.copilot-context.show{display:flex}
.copilot-context .text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.copilot-context .close{margin-left:auto;color:inherit;opacity:.65}
.ai-copilot.mode-split .chat-inner,.ai-copilot.mode-float .chat-inner{padding:18px 16px 8px}
.ai-copilot.mode-split .m-ai .txt,.ai-copilot.mode-float .m-ai .txt{font-size:13.5px;line-height:1.75}
.ai-copilot.mode-split .chat-input-wrap,.ai-copilot.mode-float .chat-input-wrap{padding:8px 14px 14px}
.ai-copilot.mode-split .chat-float-btn,.ai-copilot.mode-float .chat-float-btn{top:48px}

/* AI 确认与 Diff 草稿固定落在业务卡片顶部；右侧对话只负责解释。 */
.ai-business-layer{margin:0 0 14px}
.ai-business-layer:empty{display:none}
.ai-business-action,.ai-diff-draft{
  padding:11px 13px;border-radius:var(--r);background:var(--amberd);color:var(--fg);
}
.ai-business-action+.ai-business-action,.ai-diff-draft+.ai-business-action{margin-top:8px}
.ai-business-action .cf-card{margin:0;max-width:none}
.ai-diff-head{display:flex;align-items:center;gap:8px;color:var(--amber);font-size:12px}
.ai-diff-head .actions{margin-left:auto;display:flex;gap:6px}
.ai-diff-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}
.ai-diff-field{padding:7px 9px;border-radius:var(--r-xs);background:rgba(255,255,255,.72)}
.ai-diff-field .label{font-size:10.5px;color:var(--fg3);margin-bottom:3px}
.ai-diff-line{font-family:var(--mono);font-size:12px;line-height:1.65}
.ai-diff-line.old{color:var(--red);text-decoration:line-through}
.ai-diff-line.new{color:var(--green-ink)}
.ai-target-flash{animation:ai-target-flash 1.2s var(--ease) 2}
@keyframes ai-target-flash{0%,100%{background:transparent}35%,70%{background:rgba(52,211,153,.18)}}

@media(max-width:900px){
  .ai-copilot.mode-split{flex-basis:46%}
}

/* 移动端抽屉始终按 wide 形态呈现。sidebar.css 的 rail 选择器带 #side，
   原 mobile.css 低特异性规则无法恢复品牌、分组标题和账号文字，导致 220px 抽屉仍像 56px rail。 */
@media(max-width:768px){
  #side{background:var(--side-bg)}
  #side.rail .side-brand{justify-content:flex-start;padding:0 8px}
  #side.rail .side-brand-img{display:block}
  #side.rail .side-toggle{margin-left:auto}
  #side.rail .side-toggle-seal{display:none}
  #side.rail .side-toggle-chev{display:grid;transform:none}
  #side.rail .side-label,
  #side.rail .side-sec,
  #side.rail .workspace-count,
  #side.rail .workspace-chev,
  #side.rail .workspace-toggle span,
  #side.rail .side-favorites .side-sec{display:inline}
  #side.rail .side-item{justify-content:flex-start;padding:5px 8px}
  #side.rail .side-user{justify-content:flex-start;padding:6px 8px}
  #side.rail .side-user-name{display:flex}
  #side.rail .side-user-caret{display:grid}
  #side.rail #side-glass{display:block}
}
