/* ==========================================================
   纸管家运营工作台
   交互规范 100% 对齐 sealseek.cn 实测值：
     · 圆角：胶囊 9999px / 卡片 12px / 小元素 8px / 面板 16px
     · 曲线：cubic-bezier(0.4, 0, 0.2, 1)
     · hover：scale 放大 + 描边提亮 + 白色柔光晕
     · 入场：fade-in-up（opacity 0→1, translateY 20px→0）
   ========================================================== */
:root{
  /* ---- 外壳与面板（sealseek 智学中心页实测）----
     实测：外壳 #000000 / 侧栏 #171718 / 主面板 #0d0d0e
     注意：侧栏比主面板「更亮」，这是 sealseek 的层级关系，不要写反 */
  --shell:#000000;
  --panel-main:#0d0d0e;
  --bg:#0d0d0e;
  --bg-side:#171718;        /* 侧边栏面板（比主面板亮）*/
  --panel:#171718;          /* 卡片 */
  --panel-2:#1f1f20;
  --panel-3:#262628;
  --panel-hover:#2a2a2c;
  --cell-hover:rgba(255,255,255,.055);  /* 表格里可编辑格子的悬停提亮（中性，不走紫）*/

  /* ---- 描边 ---- */
  --line:#2a2a2c;
  --line-soft:#202022;
  --line-soft-2:#1a1a1b;
  --line-hi:rgba(255,255,255,.20);

  /* ---- 文字（中性灰，不带紫）---- */
  --text:#f9f9f9;
  --text-2:#9199a6;         /* sealseek 深色侧栏未选中文字实测 */
  --text-3:#7f8794;         /* 小字：在 #171718 上 ≈5.0:1，保证可读 */
  --text-4:#6b7280;         /* 更弱的装饰性小字 */

  /* ---- 品牌（紫 → 品红）---- */
  --accent:#7c5cff;
  --accent-2:#c026d3;
  --accent-rgb:124,92,255;
  --accent-contrast:#ffffff;
  --accent-soft:rgba(124,92,255,.18);
  --nav-active:#d2abfe;     /* sealseek 深色侧栏选中文字实测 */
  --green:#4ade80;
  --red:#f87171;
  --amber:#fbbf24;

  /* ---- 圆角档位（对齐 sealseek 实测）---- */
  --r-shell:16px;     /* 侧边栏 / 主面板 / 抽屉 */
  --r-card:12px;      /* 内层卡片 */
  --r-mid:10px;       /* 导航项 / 图标块 */
  --r-sm:8px;         /* 最小元素 / tag */
  --r-pill:9999px;    /* 胶囊全圆 */
  --shell-pad:12px;   /* 外壳留白 = 面板间距 */

  /* ---- 动效（对齐 sealseek 曲线）---- */
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(.2,.8,.2,1);
  --t-fast:.15s var(--ease);
  --t-mid:.3s var(--ease);
  --t-slow:.5s var(--ease);

  /* ---- 光晕 ---- */
  --glow-white:0 0 25px rgba(255,255,255,.25);
  --glow-white-soft:0 0 25px rgba(255,255,255,.10);
  --glow-brand:0 0 40px rgba(124,92,255,.38);

  /* ---- 阴影 ---- */
  --shadow-card:0 8px 28px rgba(0,0,0,.35), 0 1px 0 rgba(255,255,255,.02) inset;
  --shadow-hover:0 18px 40px rgba(0,0,0,.50), 0 0 25px rgba(255,255,255,.06);
  --shadow-pop:0 16px 40px rgba(124,92,255,.28);
}

/* 经营中心：聚水潭店铺工作台 */
.jst-workbench-tabs{display:flex;gap:6px;margin:18px 0;border-bottom:1px solid var(--border,#e5e7eb);overflow-x:auto}.jst-workbench-tabs button{border:0;background:transparent;padding:11px 16px;color:var(--muted,#667085);white-space:nowrap;border-radius:10px 10px 0 0}.jst-workbench-tabs button.active{color:var(--text,#101828);background:var(--surface,#fff);box-shadow:inset 0 -2px #2563eb;font-weight:700}.jst-period-bar,.jst-section-head,.jst-inline-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.jst-period-bar{margin-bottom:12px}.jst-period-bar>div:first-child{display:grid;gap:4px}.jst-period-bar span,.jst-section-head p,.jst-inline-toolbar p,.jst-data-panel>p{color:var(--muted,#667085);font-size:12px;margin:0}.jst-period-bar button{border:1px solid var(--border,#e5e7eb);background:var(--surface,#fff);padding:7px 11px;border-radius:8px}.jst-period-bar button.active{background:#eef4ff;color:#2456a6;border-color:#c9d9ff}.jst-business-kpis article span{display:block;margin-top:6px;color:var(--muted,#667085);font-size:11px}.jst-store-section,.jst-data-panel,.jst-inline-toolbar{margin-top:14px;padding:18px;background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:14px}.jst-section-head h2,.jst-inline-toolbar h2,.jst-data-panel h2{margin:0 0 4px;font-size:16px}.jst-section-head select{min-width:160px}.jst-store-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px}.jst-store-card{padding:15px;background:var(--soft,#f7f8fa);border-radius:12px}.jst-store-card>div{display:flex;align-items:center;gap:10px}.jst-store-card>div>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#eaf1ff;color:#2456a6;font-weight:800}.jst-store-card>div>div{display:grid;gap:3px}.jst-store-card small{color:var(--muted,#667085)}.jst-store-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 0}.jst-store-card dl div{display:grid;gap:4px}.jst-store-card dt{font-size:11px;color:var(--muted,#667085)}.jst-store-card dd{margin:0;font-weight:700}.jst-store-table-wrap{overflow:auto;margin-top:14px}.jst-store-table{width:100%;border-collapse:collapse;min-width:680px}.jst-store-table th,.jst-store-table td{padding:10px;border-bottom:1px solid var(--border,#e5e7eb);text-align:left;font-size:12px}.jst-store-table th{color:var(--muted,#667085);font-weight:600;background:var(--soft,#f7f8fa)}.jst-capability-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.jst-capability-chips span{padding:6px 9px;border-radius:999px;background:#f4f5f7;color:#667085;font-size:11px}.jst-capability-chips span.ok{background:#eaf8ef;color:#18794e}.jst-product-finder-panel{width:min(1120px,calc(100vw - 40px));max-width:none;height:min(760px,calc(100dvh - 48px));max-height:none}.jst-product-finder-panel>.vault-head{flex:0 0 auto}.jst-product-finder-panel>.vault-body{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0;overflow:hidden}.jst-product-finder-panel .jst-product-table-wrap{min-height:0;overflow:auto;scrollbar-gutter:stable}.jst-product-finder-panel .jst-product-table thead{position:sticky;top:0;z-index:1;background:var(--panel)}.jst-product-finder-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 170px 170px;gap:10px}.jst-product-finder-toolbar input,.jst-product-finder-toolbar select{height:40px;border:1px solid var(--border,#dfe3e8);border-radius:9px;padding:0 11px;background:var(--surface,#fff);color:inherit}.jst-product-finder-summary{margin:12px 0;padding:10px 12px;border-radius:9px;background:var(--soft,#f7f8fa);font-size:12px}.jst-product-state{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:5px 10px;border-radius:999px;font-size:11px;line-height:1;white-space:nowrap;word-break:keep-all}.jst-product-table th:nth-child(3),.jst-product-table td:nth-child(3){min-width:82px}.jst-product-state.on{background:#eaf8ef;color:#18794e}.jst-product-state.off{background:#fff0ee;color:#c13b36}.jst-product-state.unknown{background:#f2f4f7;color:#667085}
@media(max-width:760px){.jst-period-bar,.jst-section-head,.jst-inline-toolbar{align-items:flex-start;flex-direction:column}.jst-product-finder-toolbar{grid-template-columns:1fr}.jst-store-card dl{grid-template-columns:1fr 1fr}.jst-product-finder-panel{width:calc(100vw - 16px);height:calc(100dvh - 16px)}}
.jst-workbench-tabs button.active,.jst-period-bar button,.jst-store-section,.jst-data-panel,.jst-inline-toolbar,.jst-product-finder-toolbar input,.jst-product-finder-toolbar select{background:var(--panel);border-color:var(--line);color:var(--text)}.jst-period-bar button.active{background:var(--accent-soft);color:var(--nav-active);border-color:rgba(var(--accent-rgb),.45)}.jst-store-card,.jst-store-table th,.jst-product-finder-summary{background:var(--panel-2)}.jst-workbench-tabs button,.jst-period-bar span,.jst-section-head p,.jst-inline-toolbar p,.jst-data-panel>p,.jst-store-card small,.jst-store-card dt,.jst-store-table th{color:var(--text-3)}.jst-capability-chips span{background:var(--panel-2);color:var(--text-3)}.jst-capability-chips span.ok,.jst-product-state.on{background:rgba(74,222,128,.12);color:var(--green)}.jst-product-state.off{background:rgba(248,113,113,.12);color:var(--red)}.jst-product-state.unknown{background:var(--panel-2);color:var(--text-3)}

/* Commerce Data Platform V1 */
.commerce-page{padding-bottom:48px}.commerce-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.commerce-head h1{font-size:26px;margin:0 0 6px}.commerce-head p{margin:0;color:var(--text-3)}
.mock-banner{display:flex;align-items:center;gap:14px;border:1px solid rgba(251,191,36,.32);background:rgba(251,191,36,.08);color:#f8d878;padding:13px 16px;border-radius:var(--r-card);margin-bottom:18px}.mock-banner span{color:#d3bd7b;font-size:13px}
.commerce-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:24px}.commerce-kpi{padding:18px;background:linear-gradient(145deg,var(--panel),#15151a);border:1px solid var(--line);border-radius:var(--r-card);min-height:104px}.commerce-kpi span,.commerce-kpi em{display:block;color:var(--text-3);font-size:12px;font-style:normal}.commerce-kpi b{display:block;font-size:25px;margin:10px 0 5px}.commerce-skeleton{height:104px;border-radius:12px;background:linear-gradient(90deg,var(--panel),var(--panel-2),var(--panel));background-size:200% 100%;animation:commerceShimmer 1.2s infinite}
@keyframes commerceShimmer{to{background-position:-200% 0}}.commerce-section{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:18px;margin-bottom:18px}.commerce-section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.commerce-section-head h2{font-size:16px;margin:0}.commerce-section-head>span{font-size:12px;color:var(--text-3)}
.platform-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.platform-card,.health-card{display:flex;gap:12px;padding:16px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-card)}.platform-logo{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-weight:800;color:white;background:linear-gradient(135deg,#7c5cff,#c026d3);flex:none}.p-taobao{background:linear-gradient(135deg,#ff6a00,#ff3500)}.p-pinduoduo{background:#e02e24}.p-douyin{background:linear-gradient(135deg,#25f4ee,#fe2c55)}.p-xiaohongshu{background:#ff2442}.p-1688{background:#ff6000}.platform-card-main{min-width:0}.platform-card h3,.health-card h3{font-size:14px;margin:0 0 8px}.platform-card p{margin:0 0 8px}.platform-card div span{font-size:11px;margin-right:8px}.platform-card .ok{color:var(--green)}.platform-card .bad{color:var(--red)}.platform-card small,.health-card small{color:var(--text-4)}
.commerce-filters{display:flex;gap:8px}.commerce-filters select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:8px 12px;border-radius:8px}.commerce-table{min-width:1000px}.commerce-table td{white-space:nowrap}.commerce-link{background:none;border:0;color:#d2abfe;cursor:pointer;font:inherit;padding:0}.mock-label{display:inline-block;color:#fbbf24;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.2);border-radius:999px;padding:2px 6px;font-size:9px;margin-left:7px}.mini-btn{background:var(--panel-3);border:1px solid var(--line);border-radius:7px;color:var(--text-2);padding:6px 9px;cursor:pointer;margin-right:5px}.mini-btn:hover{color:white;border-color:var(--accent)}
.commerce-owner{border:0;background:none;color:var(--text-2);padding:0;cursor:pointer}.commerce-owner span{font-size:10px;color:#a78bfa;margin-left:5px}.commerce-form-hint{color:var(--text-3);font-size:12px}.connector-status h3{font-size:13px;margin:20px 0 10px}.connector-status ol{color:var(--text-3);font-size:13px;line-height:1.8;padding-left:20px}.config-row{display:flex;align-items:center;justify-content:space-between;background:var(--panel-2);border:1px solid var(--line);padding:10px 12px;margin-bottom:7px;border-radius:8px}.config-row code,.callback-code{color:#d2abfe}.callback-code{display:block;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:11px;overflow:auto}.commerce-config-actions{display:flex;justify-content:flex-end;margin-top:18px}
.commerce-badge{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:10px;background:rgba(145,153,166,.12);color:var(--text-2)}.tone-active,.tone-authorized,.tone-success,.tone-healthy{background:rgba(74,222,128,.12);color:var(--green)}.tone-failed,.tone-sync_error,.tone-auth_expired,.tone-expired,.tone-degraded{background:rgba(248,113,113,.12);color:var(--red)}.tone-running,.tone-full,.tone-incremental{background:var(--accent-soft);color:#c7baff}.tone-mock,.tone-pending{background:rgba(251,191,36,.12);color:var(--amber)}
.alert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alert-card{padding:15px;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:10px}.alert-card.severity-critical{border-left-color:var(--red)}.alert-card.severity-high{border-left-color:#fb923c}.alert-card>div,.alert-card footer{display:flex;justify-content:space-between;align-items:center}.alert-card>div>span,.alert-card time{font-size:10px;color:var(--text-4)}.alert-card h3{font-size:14px;margin:12px 0 5px}.alert-card p{font-size:12px;color:var(--text-3);margin:0 0 13px}.alert-card footer em{font-size:11px;color:var(--green);font-style:normal}.commerce-empty,.commerce-error{text-align:center;padding:36px;color:var(--text-3)}.commerce-error{color:var(--red)}
.sync-tabs,.detail-tabs{display:flex;gap:7px;margin-bottom:14px}.sync-tabs button,.detail-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--text-3);border-radius:999px;padding:8px 13px;cursor:pointer}.sync-tabs button.active,.detail-tabs button.active{background:var(--accent-soft);border-color:var(--accent);color:white}.health-card{display:block}.health-card p{display:flex;justify-content:space-between;margin:8px 0;color:var(--text-3);font-size:12px}
.commerce-modal-panel{width:min(820px,calc(100vw - 30px))}.platform-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.platform-pick{display:flex;flex-direction:column;align-items:flex-start;gap:5px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;color:white;padding:16px;cursor:pointer}.platform-pick:hover{border-color:var(--accent)}.platform-pick span{font-size:12px;color:var(--text-3)}.shop-detail-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.shop-detail-kpis>div{background:var(--panel-2);padding:14px;border-radius:10px}.shop-detail-kpis span{display:block;font-size:11px;color:var(--text-3)}.shop-detail-kpis b{display:block;font-size:19px;margin-top:8px}.shop-overview{background:var(--panel-2);border-radius:12px;padding:16px}.shop-overview p{color:var(--text-3)}.shop-overview code{color:#d2abfe}.analytics-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.analytics-bars>div{display:grid;grid-template-columns:90px 1fr 90px;align-items:center;gap:10px;margin:12px 0;font-size:12px}.analytics-bars i{height:7px;background:var(--panel-3);border-radius:9px;overflow:hidden}.analytics-bars i b{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:9px}.analytics-bars em,.analytics-ranking em{font-style:normal;text-align:right;color:var(--text-2)}.analytics-ranking>div{display:grid;grid-template-columns:25px 1fr 90px;gap:8px;padding:9px;border-bottom:1px solid var(--line-soft);font-size:12px}.analytics-ranking b{color:#d2abfe}
@media(max-width:1200px){.commerce-kpis{grid-template-columns:repeat(3,1fr)}.platform-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.commerce-head{align-items:flex-start;flex-direction:column}.commerce-kpis{grid-template-columns:repeat(2,1fr)}.platform-grid,.alert-grid,.analytics-grid{grid-template-columns:1fr}.commerce-section{overflow-x:auto}.shop-detail-kpis{grid-template-columns:repeat(2,1fr)}.platform-picker{grid-template-columns:1fr}}

/* [hidden] 必须真的藏住。
   浏览器自带的 [hidden]{display:none} 只是 UA 样式，任何作者写的 display（.btn-primary{display:inline-flex}、
   .btn-ghost、.task-list{display:flex} …）都会把它盖掉——元素带着 hidden 属性照样渲染，
   而 JS 里读 el.hidden 还是 true，光看属性查不出来。这里统一兜底，省得每加一个组件就踩一次。 */
[hidden]{display:none!important}

.auth-gate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:#08080b}
.auth-gate[hidden]{display:none}
.workbench-startup{position:fixed;inset:0;z-index:9998;display:grid;place-items:center;padding:24px;background:#08080b}
.workbench-startup-card{width:min(520px,calc(100vw - 48px));padding:48px 42px;text-align:center;border:1px solid rgba(255,255,255,.1);border-radius:24px;background:linear-gradient(145deg,#17151f,#111115);box-shadow:0 30px 90px rgba(0,0,0,.48)}
.workbench-startup-card h1{margin:24px 0 10px;font-size:30px;letter-spacing:.02em}
.workbench-startup-card p{margin:0;color:#b3afbf;font-size:15px}
.workbench-startup-card small{display:block;margin-top:14px;color:#777382;font-size:12px}
.workbench-startup-mark{display:flex;justify-content:center;gap:8px}
.workbench-startup-mark i{width:10px;height:10px;border-radius:50%;background:#7c5cff;animation:workbench-startup-dot 1.1s ease-in-out infinite}
.workbench-startup-mark i:nth-child(2){animation-delay:.14s}.workbench-startup-mark i:nth-child(3){animation-delay:.28s}
.workbench-startup-progress{height:4px;margin-top:28px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}
.workbench-startup-progress span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6f4cff,#9b82ff);animation:workbench-startup-progress 1.35s ease-in-out infinite}
@keyframes workbench-startup-dot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}
@keyframes workbench-startup-progress{0%{transform:translateX(-110%)}100%{transform:translateX(340%)}}
.auth-card{position:relative;width:min(420px,100%);height:min(584px,calc(100vh - 48px));box-sizing:border-box;overflow:hidden;padding:38px;text-align:center;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:#121216;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.auth-mark{width:52px;height:52px;margin:0 auto 22px;display:grid;place-items:center;border-radius:14px;color:#fff;font-size:22px;font-weight:700;background:linear-gradient(135deg,#7c5cff,#4f46e5)}
.auth-card h1{font-size:22px;margin:0 0 22px}
.auth-card p{margin:0 0 24px;color:#92929f;font-size:14px;line-height:1.7}
.auth-card .btn-primary{justify-content:center;text-decoration:none}
.auth-form{display:grid;gap:14px;text-align:left;margin-top:22px}
.auth-form[hidden]{display:none}
.auth-form label{display:grid;gap:7px;color:#b7b7c5;font-size:12px}
.auth-form label[hidden]{display:none}
.auth-form input{width:100%;height:44px;padding:0 13px;color:#f5f5f7;background:#0b0b0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;outline:none}
.auth-form input:focus{border-color:#7c5cff;box-shadow:0 0 0 3px rgba(124,92,255,.14)}
#passwordLoginBlock,#wecomLoginBlock{display:grid;gap:12px;min-height:175px;align-content:start}
.auth-error{min-height:18px;color:#f87171;font-size:12px;text-align:center}
#authForm>.auth-error{min-height:8px}
.auth-submit{width:100%;height:44px;border:0;cursor:pointer}
.auth-submit:disabled{opacity:.6;cursor:wait}
/* ---- 登录页：自助注册 ----
   注册表单字段多，卡片放宽到 560 并允许内部滚动，否则小屏上提交按钮会被顶到视口外。 */
.auth-card.is-register{width:min(560px,100%);height:auto;max-height:calc(100vh - 48px);overflow:auto}
.auth-card.is-setup{height:auto;max-height:calc(100vh - 48px);overflow:auto}
.auth-card.is-setup #passwordLoginBlock{min-height:0}
@media(max-height:640px){.auth-card:not(.is-register){overflow:auto}}
.auth-register-form{gap:16px}
.auth-hint{color:#7f7f8f;font-size:11px;line-height:1.6;font-weight:400}
.auth-hint.ok{color:#4ade80}
.auth-hint.warn{color:#fbbf24}
.auth-hint.bad{color:#f87171}
.auth-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.auth-inline{display:flex;gap:8px}
.auth-inline input{flex:1}
.auth-check{height:44px;padding:0 14px;white-space:nowrap;border-radius:10px}
#wecomLoginBlock .auth-inline{position:relative;display:block}
#wecomLoginBlock .auth-inline input{width:100%;padding-right:116px}
#wecomLoginBlock .auth-inline .auth-check{position:absolute;top:4px;right:4px;height:36px;padding:0 13px;border-radius:8px;background:rgba(255,255,255,.06)}
.auth-scope{border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 14px;color:#b7b7c5;font-size:12px;background:rgba(255,255,255,.02)}
.auth-scope legend{padding:0 6px;color:#d7d7e2;font-size:12px}
.auth-scope-list{display:grid;gap:8px;max-height:170px;overflow:auto;margin-top:10px}
.auth-scope-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#c9c9d6;cursor:pointer}
.auth-scope-item input{width:15px;height:15px;accent-color:#7c5cff}
.auth-form textarea{width:100%;padding:10px 12px;color:#f5f5f7;background:#0b0b0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;outline:none;font-family:inherit;font-size:13px;resize:vertical;min-height:44px}
.auth-form textarea:focus{border-color:#7c5cff;box-shadow:0 0 0 3px rgba(124,92,255,.14)}
.auth-switch{background:none;border:0;color:#9c9cf0;font-size:12px;cursor:pointer;padding:4px;text-align:center}
.auth-switch:hover{color:#b9b9ff;text-decoration:underline}
.auth-secondary-actions{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:24px}
.auth-secondary-actions #gotoRegister{grid-column:2;justify-self:center}
.auth-secondary-actions .auth-forgot{grid-column:3;justify-self:end;color:#777781}
.auth-secondary-actions .auth-forgot:hover{color:#a0a0aa}
.auth-done{display:grid;gap:14px;justify-items:center;margin-top:22px}
.auth-done-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;font-size:26px;color:#4ade80;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.35)}
.auth-done p{margin:0;color:#92929f;font-size:13px;line-height:1.7}
.connection-link{color:inherit;text-decoration:none}
.connection-link .arrow{margin-left:auto}
.feedback-panel{width:min(820px,96vw)!important;max-height:min(820px,94vh)!important}.feedback-body{min-height:480px}.feedback-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.feedback-tabs{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.feedback-tabs button{padding:9px 16px;border:0;border-radius:8px;color:var(--text-2);background:transparent;cursor:pointer}.feedback-tabs button.active{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:var(--glow-brand)}.feedback-tabs em{margin-left:5px;font-size:10px;font-style:normal;opacity:.8}.feedback-form{display:grid;gap:15px;padding:19px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}.feedback-form label{display:grid;gap:7px;color:var(--text-2);font-size:12px}.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%;padding:11px 12px;color:var(--text);border:1px solid var(--line);border-radius:9px;background:var(--panel);outline:none}.feedback-form textarea{min-height:150px;line-height:1.65;resize:vertical}.feedback-form input:focus,.feedback-form select:focus,.feedback-form textarea:focus{border-color:var(--accent)}.feedback-reward-hint,.feedback-award{padding:10px 12px;border-radius:9px;color:#c4b5fd;background:rgba(124,77,255,.11);font-size:12px}.feedback-list{display:grid;gap:11px}.feedback-card{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2)}.feedback-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.feedback-card header>div{display:flex;align-items:center;gap:9px}.feedback-card header b{font-size:14px}.feedback-type{padding:3px 7px;border-radius:999px;color:#c4b5fd;background:rgba(124,77,255,.14);font-size:10px}.feedback-card header em{padding:4px 8px;border-radius:999px;font-size:10px;font-style:normal;white-space:nowrap}.feedback-card header em.pending{color:#fbbf24;background:rgba(251,191,36,.12)}.feedback-card header em.approved{color:#4ade80;background:rgba(34,197,94,.12)}.feedback-card header em.rejected{color:#fb7185;background:rgba(244,63,94,.12)}.feedback-card>small{display:block;margin-top:8px;color:var(--text-4)}.feedback-card>p{margin:12px 0 0;color:var(--text-2);font-size:13px;line-height:1.7}.feedback-review-note{margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft);color:var(--text-3);font-size:12px}.feedback-award{display:inline-block;margin-top:11px;color:#4ade80;background:rgba(34,197,94,.1)}.feedback-review-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}.feedback-admin-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.feedback-admin-head span{color:var(--text-3);font-size:12px}@media(max-width:650px){.feedback-toolbar{align-items:stretch;flex-direction:column}.feedback-tabs{width:100%}.feedback-tabs button{flex:1}.feedback-card header>div{align-items:flex-start;flex-direction:column}.feedback-body{min-height:420px}}
.feedback-reject-panel{width:min(520px,94vw)!important}.feedback-reject-body{display:grid;gap:14px}.feedback-reject-body label{display:grid;gap:8px;color:var(--text-2);font-size:12px}.feedback-reject-body textarea{width:100%;min-height:120px;padding:12px;color:var(--text);border:1px solid var(--line);border-radius:10px;background:var(--panel-2);outline:none;line-height:1.6;resize:vertical}.feedback-reject-body textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,77,255,.12)}
.feedback-image-field{display:grid;gap:10px;padding:12px;border:1px dashed var(--line);border-radius:11px;background:var(--panel)}.feedback-image-toolbar{display:flex;align-items:center;justify-content:space-between;color:var(--text-2);font-size:12px}.feedback-image-toolbar small{margin-left:7px;color:var(--text-4);font-size:11px}.feedback-image-add{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;color:var(--accent);background:var(--panel-2);font-size:23px;line-height:1;cursor:pointer}.feedback-image-add:hover{border-color:var(--accent);box-shadow:var(--glow-brand)}.feedback-image-previews{display:flex;flex-wrap:wrap;gap:9px}.feedback-image-preview{position:relative;width:96px;display:grid;gap:5px;overflow:hidden}.feedback-image-preview img{width:96px;height:72px;object-fit:cover;border:1px solid var(--line);border-radius:8px}.feedback-image-preview span{overflow:hidden;color:var(--text-4);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.feedback-image-preview button{position:absolute;top:4px;right:4px;width:21px;height:21px;border:0;border-radius:50%;color:#fff;background:rgba(0,0,0,.72);cursor:pointer}.feedback-card-images{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.feedback-card-images a{display:block}.feedback-card-images img{width:120px;height:90px;object-fit:cover;border:1px solid var(--line);border-radius:8px}.feedback-admin-filters{display:flex;gap:7px;margin:0 0 14px}.feedback-admin-filters button{padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:var(--text-2);background:var(--panel-2);cursor:pointer}.feedback-admin-filters button.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:var(--glow-brand)}.feedback-admin-filters em{margin-left:5px;font-style:normal;opacity:.8}
.vault-manage{width:100%;margin-top:12px;border:0;cursor:pointer}
.vault-modal{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:24px;background:rgba(4,4,8,.78);backdrop-filter:blur(6px)}
.vault-modal[hidden]{display:none}
/* ===== 统一弹出动效：全部弹窗共用，遮罩淡入 + 面板上浮回弹 ===== */
@keyframes vaultBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes vaultPanelPop{
  0%{opacity:0;transform:translateY(20px) scale(.955)}
  55%{opacity:1;transform:translateY(-3px) scale(1.006)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
.vault-modal:not([hidden]){animation:vaultBackdropIn .2s var(--ease-out)}
.vault-modal:not([hidden])>.vault-panel{animation:vaultPanelPop .32s cubic-bezier(.2,.9,.28,1.06)}
.vault-modal.admin-context-switching,
.vault-modal.admin-context-switching>.vault-panel{animation:none!important}
.vault-panel{width:min(860px,100%);max-height:min(760px,92vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 30px 90px rgba(0,0,0,.55)}
.vault-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}
.vault-head h2{font-size:19px;margin:0 0 5px}.vault-head p{margin:0;color:var(--muted);font-size:12px}
.vault-body{padding:20px 24px;overflow:auto}.vault-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.vault-toolbar>span{color:var(--muted);font-size:12px}.vault-toolbar-actions{display:flex;gap:9px}
.vault-list{display:grid;gap:10px}.vault-empty{padding:38px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
.vault-row{display:grid;grid-template-columns:110px minmax(150px,1fr) minmax(140px,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.vault-platform{font-weight:700}.vault-meta{min-width:0}.vault-meta b,.vault-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-meta span{margin-top:4px;color:var(--muted);font-size:12px}.vault-row-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.vault-row-actions button,.vault-row-actions a{padding:6px 9px;color:var(--muted);font-size:12px;text-decoration:none;border:1px solid var(--line);border-radius:7px;background:transparent;cursor:pointer}.vault-row-actions button:hover,.vault-row-actions a:hover{color:var(--text);border-color:var(--line-hi)}
/* 让「打开 / 复制密码 / 编辑分配 / 删除」这几个操作一眼看出是按钮 */
.vault-row-actions a,.vault-row-actions button[data-vault="copy"],.vault-row-actions button[data-vault="edit"]{color:var(--text-2);background:var(--panel)}
.vault-row-actions button[data-vault="delete"]{color:var(--red);border-color:rgba(239,68,68,.32)}
.vault-row-actions button[data-vault="delete"]:hover{color:#fff;border-color:var(--red);background:rgba(239,68,68,.18)}
.vault-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2)}.vault-form[hidden]{display:none}.vault-form label{display:grid;gap:7px;color:var(--muted);font-size:12px}.vault-form input,.vault-form select,.vault-form textarea{width:100%;padding:10px 11px;color:var(--text);border:1px solid var(--line);border-radius:9px;background:var(--panel);outline:none}.vault-form textarea{min-height:78px;resize:vertical}.vault-form input:focus,.vault-form select:focus,.vault-form textarea:focus{border-color:var(--accent)}.vault-wide{grid-column:1/-1}.vault-error{min-height:16px;color:var(--red);font-size:12px}.vault-actions{display:flex;justify-content:flex-end;gap:10px}
.vault-assignees{padding:12px;border:1px solid var(--line);border-radius:10px}.vault-assignees legend{padding:0 6px;color:var(--muted);font-size:12px}.vault-assignees>div{display:flex;flex-wrap:wrap;gap:9px}.vault-assignees label{display:flex;grid-template-columns:none;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:8px}.vault-assignees input{width:auto}.vault-assigned{color:var(--accent)!important}
.multica-config{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(230px,1.5fr) auto;gap:10px;align-items:center;margin-bottom:16px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.multica-config[hidden]{display:none}.multica-config div{display:grid;gap:3px}.multica-config span,.multica-config small{color:var(--muted);font-size:11px}.multica-config input{width:100%;padding:10px 11px;color:var(--text);border:1px solid var(--line);border-radius:9px;background:var(--panel)}.multica-config small{grid-column:1/-1;color:var(--red)}
.taobao-admin-panel{width:min(1180px,calc(100vw - 32px));max-height:calc(100vh - 48px)}.taobao-admin-body{display:grid;gap:16px;overflow:auto}.taobao-app-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.taobao-app-summary>div{display:grid;gap:6px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.taobao-app-summary small{color:var(--muted)}.taobao-app-summary b{font-size:14px}.taobao-app-summary p{grid-column:1/-1;margin:0;padding:12px;border-radius:10px;background:var(--panel-2);color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.taobao-app-summary code{color:var(--text)}.taobao-admin-actions{display:flex;gap:10px}.taobao-shop-table{overflow:auto;border:1px solid var(--line);border-radius:12px}.taobao-shop-table table{width:100%;border-collapse:collapse;min-width:900px}.taobao-shop-table th,.taobao-shop-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.taobao-shop-table th{color:var(--muted);font-size:12px;background:var(--panel-2)}.taobao-shop-table td>b,.taobao-shop-table td>small{display:block}.taobao-shop-table td>small{margin-top:3px;color:var(--muted)}.taobao-shop-table .btn-ghost{padding:6px 9px;margin:2px}.taobao-state{color:var(--green)}.taobao-sync-log{display:grid;gap:10px}.taobao-log-list{display:grid;gap:8px}.taobao-log-list>div{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:5px 16px;padding:11px 12px;border:1px solid var(--line);border-radius:10px}.taobao-log-list span,.taobao-log-list small{color:var(--muted);font-size:12px}.taobao-log-list small{grid-column:1/-1;color:var(--red)}.taobao-assignment-panel{width:min(620px,calc(100vw - 32px))}@media(max-width:900px){.taobao-app-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.task-create-panel{width:min(860px,96vw);max-height:min(900px,96vh)}
.task-create-panel:not(.task-detail-panel) .vault-body{padding:24px 30px 28px;overflow-y:auto;scrollbar-width:none!important;-ms-overflow-style:none}
.task-create-panel:not(.task-detail-panel) .vault-body::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}
.task-create-form{margin-top:0;gap:16px;padding:22px}
.task-create-form #taskDescription{min-height:132px;overflow:hidden;resize:none;line-height:1.65}
.workbench-datetime{display:block}.workbench-datetime .workbench-date-text,.workbench-time select{width:100%;min-width:0;height:46px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);padding:0 12px;font:inherit;outline:none;appearance:none;-webkit-appearance:none}.workbench-datetime .workbench-date-text{cursor:pointer;background-image:linear-gradient(45deg,transparent 48%,var(--text-3) 49% 54%,transparent 55%),linear-gradient(135deg,transparent 48%,var(--text-3) 49% 54%,transparent 55%);background-position:calc(100% - 19px) 19px,calc(100% - 14px) 19px;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}.workbench-datetime>select,.workbench-datetime>.cselect,.workbench-datetime>b{display:none!important}.workbench-time select{padding-right:25px;background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 14px) 20px,calc(100% - 9px) 20px;background-size:5px 5px;background-repeat:no-repeat}.workbench-time b{color:var(--text-2);text-align:center}.workbench-datetime :focus,.workbench-time :focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(124,92,255,.12)}.workbench-datetime.is-locked{cursor:not-allowed}.workbench-datetime.is-locked>*{pointer-events:none;opacity:.72}.workbench-time{display:grid;grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr);align-items:center;gap:7px}
.workbench-calendar-popover{position:fixed;z-index:400;width:330px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:0 22px 70px rgba(0,0,0,.38);animation:vaultPanelPop .2s var(--ease-out)}.workbench-calendar-popover[hidden]{display:none}.workbench-calendar-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:10px}.workbench-calendar-head strong{text-align:center;font-size:14px}.workbench-calendar-head button,.workbench-calendar-foot button{border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text-2);cursor:pointer}.workbench-calendar-head button{height:34px;font-size:20px}.workbench-calendar-week,.workbench-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.workbench-calendar-week span{padding:4px 0;color:var(--text-3);font-size:11px;text-align:center}.workbench-calendar-days button{height:34px;border:0;border-radius:9px;background:transparent;color:var(--text);cursor:pointer}.workbench-calendar-days button:hover,.workbench-calendar-days button:focus-visible{background:var(--accent-soft);outline:none}.workbench-calendar-days button.outside{color:var(--text-4)}.workbench-calendar-days button.today{box-shadow:inset 0 0 0 1px var(--accent)}.workbench-calendar-days button.selected{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:var(--glow-brand)}.workbench-calendar-time{display:grid;grid-template-columns:1fr 12px 1fr;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.workbench-calendar-time b{text-align:center;color:var(--text-3)}.workbench-calendar-time select{width:100%;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);font:inherit;outline:none}.workbench-calendar-time select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(124,92,255,.12)}.workbench-calendar-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}.workbench-calendar-foot button{padding:7px 12px}.workbench-calendar-foot button:first-child{margin-right:auto}.workbench-calendar-foot button[data-picker-confirm]{border-color:transparent;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:var(--glow-brand)}
.task-type-switch{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
.task-type-switch button{flex:1;padding:10px 14px;border:0;border-radius:8px;background:transparent;color:var(--text-2);cursor:pointer}.task-type-switch button.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px rgba(124,92,255,.35)}
.recurrence-fields{padding:16px;border:1px solid rgba(124,92,255,.3);border-radius:12px;background:rgba(124,92,255,.055)}
.recurrence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.recurrence-fields>p{margin:12px 0 0;color:var(--text-3);font-size:12px}.recurrence-fields label{display:grid;grid-template-rows:auto minmax(46px,auto);gap:7px;align-self:start}.recurrence-fields small{color:var(--text-3)}
.recurrence-rule-list{display:grid;gap:12px}.recurrence-rule{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.recurrence-rule h3{margin:0 0 7px;font-size:15px}.recurrence-rule p{margin:0;color:var(--text-2);font-size:12px;line-height:1.7}.recurrence-rule-actions{display:flex;align-items:center;gap:8px}.recurrence-state{display:inline-flex;padding:3px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px}.recurrence-state.paused{background:rgba(130,136,150,.12);color:var(--text-3)}
.recurrence-generation-log{grid-column:1/-1;display:grid;gap:8px;margin-top:2px;padding-top:14px;border-top:1px solid var(--line)}.recurrence-log-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.recurrence-log-head small,.recurrence-log-empty{color:var(--text-3);font-size:11px}.recurrence-log-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.recurrence-log-row div>b{font-size:12px}.recurrence-log-row p{margin-top:3px!important;color:var(--text-3)!important}.recurrence-log-row time{display:grid;justify-items:end;color:var(--text-3);font-size:11px;white-space:nowrap}.recurrence-log-row time small{margin-top:4px}.recurrence-log-state{margin-top:1px;padding:3px 7px;border-radius:999px;font-size:10px;white-space:nowrap}.recurrence-log-state.generated{background:rgba(34,197,94,.13);color:#4ade80}.recurrence-log-state.waiting{background:rgba(245,158,11,.13);color:#fbbf24}.recurrence-log-empty{padding:18px;text-align:center;border:1px dashed var(--line);border-radius:10px}
.recurrence-generation-log{max-height:0;margin-top:0;padding-top:0;overflow:hidden;border-top-color:transparent;opacity:0;visibility:hidden;transform:translateY(-6px);transition:max-height .34s var(--ease-out),opacity .22s ease,transform .34s var(--ease-out),margin-top .34s var(--ease-out),padding-top .34s var(--ease-out),border-color .22s ease,visibility 0s linear .34s}.recurrence-generation-log.is-open{max-height:520px;margin-top:2px;padding-top:14px;overflow:auto;border-top-color:var(--line);opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}
.recurrence-edit-form{margin:0;padding:20px;border:1px solid rgba(124,92,255,.35);border-radius:12px;background:var(--panel-2)}.recurrence-edit-form textarea{min-height:110px;resize:vertical}
@media(max-width:700px){.recurrence-grid{grid-template-columns:1fr}.recurrence-rule{grid-template-columns:1fr}.recurrence-rule-actions{justify-content:flex-end;flex-wrap:wrap}.recurrence-log-row{grid-template-columns:auto 1fr}.recurrence-log-row time{grid-column:2;justify-items:start}}
@media(max-height:820px){.task-create-panel:not(.task-detail-panel) .vault-head{padding:16px 24px}.task-create-panel:not(.task-detail-panel) .vault-body{padding:16px 24px 20px}.task-create-form{gap:11px;padding:17px}.task-create-form #taskDescription{min-height:104px}}
.task-detail-panel{width:min(760px,100%)}.task-row{cursor:pointer}.task-row:hover td{background:rgba(124,77,255,.06)}.task-comments{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.task-comments h3{margin:0 0 14px}.comment-list{display:grid;gap:10px;max-height:240px;overflow:auto}.comment-item{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.comment-item div{display:flex;justify-content:space-between;gap:12px}.comment-item time,.comment-empty{color:var(--muted);font-size:12px}.comment-item p{margin:8px 0 0;white-space:pre-wrap}.comment-form{display:flex;gap:10px;margin-top:12px}.comment-form textarea{flex:1;min-height:72px}.comment-form button{align-self:flex-end;white-space:nowrap}
/* 归档区等任务视图弹窗：宽度对齐任务详情（1180px），高度自适应但不超过任务详情高（94vh·920px），
   内容超过即由 .vault-body 的 overflow:auto 出滚动条。日历视图例外（:has(.month-grid) 自带更大尺寸）。 */
.task-module-panel{width:min(1180px,100%);max-height:min(920px,94vh)}.module-task-list{display:grid;gap:9px}.module-task{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);color:var(--text);text-align:left;cursor:pointer}.module-task:hover{border-color:rgba(139,92,246,.65);transform:translateY(-1px)}.module-task span{display:grid;gap:5px}.module-task small{color:var(--muted)}.module-task em{font-style:normal;white-space:nowrap}.module-empty{padding:36px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.calendar-day{margin-bottom:20px}.calendar-day>h3{margin:0 0 9px;color:var(--muted);font-size:14px}.summary-grid,.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-card,.template-grid article,.record-list article{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.summary-card h3,.template-grid h3{margin:0 0 12px}.summary-card strong{display:block;font-size:30px}.summary-card span{display:block;margin:5px 0 13px;color:var(--muted);font-size:12px}.template-grid p,.record-list p{color:var(--muted);line-height:1.6}.module-form{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);margin-bottom:16px}.module-form label{display:grid;gap:7px}.module-form input,.module-form select,.module-form textarea{width:100%}.module-form textarea{min-height:86px}.module-form button{justify-self:end}.record-list{display:grid;gap:10px}.record-list article b{display:block}.record-list article small{color:var(--muted)}@media(max-width:760px){.summary-grid,.template-grid{grid-template-columns:1fr}.comment-form{display:grid}.comment-form button{justify-self:end}}
.task-module-panel:has(.month-grid){width:min(1320px,96vw);max-height:96vh}.task-module-panel:has(.month-grid) .vault-body{overflow:hidden;padding:16px 26px 20px}.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:14px}.calendar-add,.calendar-nav button,.calendar-view-switch button{border:0;color:var(--text);background:var(--panel-2);cursor:pointer}.calendar-add{width:46px;height:46px;border-radius:50%;font-size:28px;line-height:1;box-shadow:0 8px 28px rgba(0,0,0,.14)}.calendar-view-switch{display:flex;padding:4px;border-radius:24px;background:var(--panel-2);box-shadow:0 8px 28px rgba(0,0,0,.1)}.calendar-view-switch button{min-width:64px;padding:9px 18px;border-radius:20px;font-size:15px}.calendar-view-switch button:disabled{opacity:.55}.calendar-view-switch button.active{opacity:1;background:var(--panel);box-shadow:0 1px 5px rgba(0,0,0,.13)}.calendar-nav{justify-self:end;display:flex;gap:7px}.calendar-nav button{min-width:43px;height:38px;padding:0 14px;border-radius:19px;font-size:15px}.calendar-nav button:first-child,.calendar-nav button:last-child{font-size:27px;padding-bottom:3px}.calendar-month-title{margin:0 0 11px;font-size:34px;letter-spacing:-1px}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays span{padding:0 9px 8px;text-align:right;color:var(--muted);font-size:14px}.month-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.month-cell{height:clamp(64px,8vh,86px);min-height:0;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.month-cell.outside{opacity:.35}.month-date{display:flex;justify-content:flex-end;height:27px}.month-date span{display:grid;width:27px;height:27px;place-items:center;border-radius:50%;font-size:14px}.month-cell.is-today .month-date span{color:#fff;background:#ff3b4e;font-weight:700}.month-events{display:grid;gap:3px}.calendar-event{width:100%;padding:4px 7px;border:0;border-radius:5px;color:var(--text);background:rgba(124,77,255,.12);font-size:13px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-left:3px solid #8b5cf6}.calendar-event.event-done{background:rgba(34,197,94,.12);border-color:#22c55e}.calendar-event.event-late{background:rgba(239,68,68,.12);border-color:#ef4444}.calendar-event.event-todo{background:rgba(59,130,246,.12);border-color:#3b82f6}.month-events small{padding-left:7px;color:var(--muted);font-size:11px}@media(max-width:760px){.calendar-toolbar{grid-template-columns:auto 1fr}.calendar-view-switch{display:none}.calendar-month-title{font-size:25px}.month-cell{height:clamp(54px,8vh,68px);padding:3px}.month-weekdays span{padding-right:3px;font-size:10px}.calendar-event{font-size:9px;padding:2px}.calendar-nav button{min-width:34px;padding:0 8px}}
.task-module-panel:has(.month-grid) .vault-head{padding:13px 22px}.task-module-panel:has(.month-grid) .vault-head p{margin-top:2px;font-size:11px}.task-module-panel:has(.month-grid) .vault-body{padding-top:8px}.task-module-panel:has(.month-grid) .calendar-toolbar{margin-bottom:5px}.task-module-panel:has(.month-grid) .calendar-add{width:38px;height:38px;font-size:24px}.task-module-panel:has(.month-grid) .calendar-view-switch{padding:3px}.task-module-panel:has(.month-grid) .calendar-view-switch button{min-width:58px;padding:7px 15px}.task-module-panel:has(.month-grid) .calendar-nav button{height:34px;min-width:38px}.task-module-panel:has(.month-grid) .calendar-month-title{margin-bottom:7px}
.task-module-panel:has(.month-grid) .vault-head{display:none}.task-module-panel:has(.month-grid) .vault-body{padding:18px 24px 22px}.task-module-panel:has(.month-grid) .calendar-toolbar{grid-template-columns:1fr auto 1fr;gap:18px;margin-bottom:12px}.calendar-title-actions{display:flex;align-items:center;gap:12px}.calendar-inline-title{margin:0;font-size:27px;white-space:nowrap}.task-module-panel:has(.month-grid) .calendar-add{width:38px;height:38px}.calendar-nav{align-items:center}.task-module-panel:has(.month-grid) .calendar-month-title{margin:0 8px 0 0;font-size:21px;letter-spacing:-.3px;white-space:nowrap}.calendar-close{margin-left:6px;font-size:22px!important}.month-cell{height:clamp(78px,10.3vh,108px);cursor:pointer;transition:background .15s ease}.month-cell:hover{background:rgba(124,77,255,.055)}.calendar-event{position:relative;z-index:1}@media(max-width:900px){.task-module-panel:has(.month-grid) .calendar-toolbar{grid-template-columns:auto 1fr}.task-module-panel:has(.month-grid) .calendar-view-switch{display:none}.calendar-nav{justify-self:end}.task-module-panel:has(.month-grid) .calendar-month-title{font-size:17px}.month-cell{height:clamp(66px,9.5vh,86px)}}
.account-panel{width:min(1120px,96vw)}.account-list{display:grid;gap:10px}.account-row{display:grid;grid-template-columns:44px minmax(190px,1fr) minmax(130px,180px) 90px auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.account-row-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));font-weight:700}.account-row-main{min-width:0}.account-row-main b,.account-row-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-row-main span{margin-top:3px;color:var(--muted);font-size:12px}.account-role,.account-status{font-size:12px}.account-status.on{color:var(--green)}.account-status.off{color:var(--red)}.account-row-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end}
.account-review-tabs{display:flex;align-items:center;gap:6px;margin:-4px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.account-review-tabs button{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:0;border-radius:9px;background:transparent;color:var(--text-2);font:inherit;cursor:pointer}.account-review-tabs button.active{color:var(--text);background:var(--accent-soft);box-shadow:inset 0 -2px var(--accent)}.account-review-tabs em{display:grid;min-width:20px;height:20px;padding:0 6px;place-items:center;border-radius:999px;background:rgba(239,68,68,.16);color:#fb7185;font-size:10px;font-style:normal}.account-filter-bar{display:grid;grid-template-columns:minmax(250px,1.5fr) repeat(4,minmax(120px,.8fr)) auto;gap:9px;margin:14px 0 7px}.account-search{display:flex;min-width:0;gap:7px}.account-search input{min-width:0;flex:1}.account-search button{flex:none}.account-filter-bar input,.account-filter-bar select{width:100%;min-width:0;height:40px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font:inherit}.account-filter-summary{min-height:20px;margin:0 0 9px;color:var(--text-3);font-size:11.5px}@media(max-width:980px){.account-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.account-search{grid-column:1/-1}}@media(max-width:620px){.account-filter-bar{grid-template-columns:1fr}.account-search{grid-column:auto}.account-review-tabs button{flex:1;justify-content:center}}
.account-row button{padding:7px 10px;color:var(--text-2);border:1px solid var(--line);border-radius:8px;background:transparent;cursor:pointer;white-space:nowrap}
.account-row button:hover{color:var(--text);border-color:var(--line-hi);background:var(--panel-hover)}
.account-row button[data-account-toggle]{color:var(--red);border-color:rgba(239,68,68,.32)}
.account-row button[data-account-toggle]:hover{color:#fff;border-color:var(--red);background:rgba(239,68,68,.18)}
.account-row button[disabled]{opacity:.42;cursor:not-allowed;color:var(--text-3);border-color:var(--line-soft)}
.account-row button[disabled]:hover{color:var(--text-3);border-color:var(--line-soft);background:transparent}.account-enabled{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important}.account-enabled input{width:auto!important}@media(max-width:700px){.account-row{grid-template-columns:42px 1fr auto}.account-role,.account-status{display:none}}
@media(max-width:700px){.vault-modal{padding:8px}.vault-row{grid-template-columns:1fr}.vault-row-actions{justify-content:flex-start}.vault-form{grid-template-columns:1fr}.vault-wide{grid-column:auto}.vault-toolbar{align-items:flex-start;gap:12px;flex-direction:column}}

/* ---- 账号的「可查看的项目」----
   勾选框排成自适应网格，项目多也不会把表单撑得很长。
   选中超级管理员时整块变暗 + 禁用（超管本来就看全部项目）。 */
.account-scope{padding:12px;border:1px solid var(--line);border-radius:10px;transition:opacity var(--t-fast)}
.account-scope legend{padding:0 6px;color:var(--muted);font-size:12px}
.account-scope.is-muted{opacity:.5}
.account-scope-hint{margin:0 0 10px;color:var(--text-3);font-size:11.5px;line-height:1.6}
.account-scope-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
#accountDepartmentList{max-height:240px;overflow:auto;padding-right:6px}
#accountJushuitanShopList{max-height:320px;overflow:auto;padding:2px 6px 2px 0}.account-shop-search{display:flex;align-items:center;gap:8px;margin:0 0 10px}.account-shop-search input{flex:1;min-width:0;margin:0}.account-shop-search button{flex:none;min-width:72px}.account-wecom-department{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text-2);font-size:12px}.account-wecom-department output{color:var(--text);font-size:13px}.account-wecom-department small{color:var(--text-3);font-size:11px;line-height:1.5}.jst-admin-dashboard input[type=search],#jstShopAssignmentSearch{width:100%;margin:12px 0}.jst-capability-row select[data-jst-assignment-owner]{min-width:180px}
.account-scope-item{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--text-2);font-size:12px;cursor:pointer}
.account-scope-item span{display:grid;gap:2px}.account-scope-item small{color:var(--text-3);font-size:10px}.account-business-tag{display:inline-flex!important;width:max-content;margin:4px 4px 0 0!important;padding:2px 6px;border-radius:999px;color:#bca7ff;background:rgba(124,92,255,.14);font-size:10px!important}.account-business-roles{border-color:rgba(124,92,255,.28)}
.business-position-panel{width:min(820px,94vw)}.business-position-body{display:grid;gap:16px}.business-position-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.business-position-toolbar small{color:var(--text-3);line-height:1.5}.business-position-list{display:grid;gap:10px}.business-position-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.business-position-item>div:first-child{display:grid;gap:5px;min-width:0}.business-position-item b{color:var(--text-1)}.business-position-item small{color:var(--text-3)}.business-position-item>div:last-child{display:flex;gap:8px}.business-position-form{padding-top:16px;border-top:1px solid var(--line)}@media(max-width:620px){.business-position-toolbar,.business-position-item{align-items:flex-start;flex-direction:column}.business-position-item>div:last-child{width:100%}}
.account-scope-item:hover{border-color:var(--accent)}
.account-scope-item input{width:auto!important;cursor:pointer}
.account-scope-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-scope-empty{margin:0;color:var(--text-3);font-size:12px}
/* ---- 注册申请审核（账号管理弹窗顶部） ---- */
.signup-block{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-hover)}
.signup-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.signup-head b{font-size:13px;color:var(--text)}
.signup-head span{color:var(--text-3);font-size:12px}
.signup-list{display:grid;gap:10px}
.signup-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.signup-row.is-done{opacity:.6}
.signup-main{min-width:0}
.signup-main b{font-size:13px;color:var(--text)}
.signup-meta{display:block;margin-top:4px;color:var(--text-3);font-size:11.5px;line-height:1.6;word-break:break-all}
.signup-tag{display:inline-block;margin:6px 6px 0 0;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--text-2);font-size:11px}
.signup-status{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;font-size:11px}
.signup-status.pending{color:var(--amber,#fbbf24);background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.3)}
.signup-status.approved{color:var(--green,#4ade80);background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.3)}
.signup-status.rejected{color:var(--red);background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3)}
.signup-actions{display:flex;flex-direction:column;gap:6px}
.signup-actions button{padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text-2);font-size:12px;cursor:pointer;white-space:nowrap}
.signup-actions button:hover{color:var(--text);border-color:var(--line-hi);background:var(--panel-hover)}
.signup-actions button[data-signup=approve]{color:#fff;border-color:var(--accent);background:var(--accent)}
.signup-actions button[data-signup=reject]{color:var(--red);border-color:rgba(239,68,68,.32)}
.signup-actions button[data-signup=reject]:hover{color:#fff;border-color:var(--red);background:rgba(239,68,68,.18)}
.signup-empty{margin:0;color:var(--text-3);font-size:12px}
.signup-reject-panel{width:min(500px,100%)}
.signup-reject-form{grid-template-columns:1fr;margin-top:0}
.signup-reject-form textarea{min-height:110px;line-height:1.6;resize:none}
/* 设置页「工作台账号管理」按钮上的待审核小红点 */
.vault-manage .badge-count{display:inline-block;min-width:18px;margin-left:8px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;line-height:18px;vertical-align:middle}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  /* 与 sealseek.cn 完全一致：ui-sans-serif/system-ui 优先
     → macOS 上拉丁字母与数字走 SF Pro，中文自动回落 PingFang SC
     （旧写法把 PingFang SC 放首位，导致英文与数字也被中文渲染，观感偏软）*/
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
    "Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif,
    "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
  background:var(--shell);color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-size:14px;line-height:1.5;
  font-feature-settings:"cv02","cv03","cv04","cv11";
  overflow:hidden;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea{font-family:inherit;outline:none;border:none;background:none;color:inherit}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#26263a;border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:#34344d}
::-webkit-scrollbar-track{background:transparent}

.ico{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* ================= 滚动入场（sealseek fade-in-up）================= */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes modalIn{
  from{opacity:0;transform:translateY(14px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.reveal{opacity:0}
.reveal.in{animation:fadeInUp .55s var(--ease) both;animation-delay:var(--d,0s)}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1}
  .reveal.in{animation:none}
  *{transition-duration:.01ms!important}
  .vault-modal:not([hidden]),
  .vault-modal:not([hidden])>.vault-panel{animation:none!important}
}

/* 外壳：留白 + 面板间距，形成 sealseek 的「悬浮圆角面板」结构 */
.app{
  display:flex;height:100vh;width:100%;
  padding:var(--shell-pad);gap:var(--shell-pad);
  background:var(--shell);
}

/* ================= 侧边栏 ================= */
.sidebar{
  width:228px;flex:0 0 228px;background:var(--bg-side);
  border:1px solid var(--line-soft);border-right-color:transparent;border-radius:var(--r-shell);
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:var(--shadow-card);
}
.brand{display:flex;align-items:center;gap:11px;padding:18px 16px 14px}
.brand-logo{
  width:38px;height:38px;border-radius:var(--r-mid);flex:0 0 38px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:grid;place-items:center;font-size:16px;font-weight:700;color:#fff;
  box-shadow:0 8px 20px rgba(124,92,255,.40);
  cursor:default;transition:transform var(--t-mid), box-shadow var(--t-mid), filter var(--t-fast);
}
.brand-logo:focus-visible{outline:2px solid #fff;outline-offset:3px}
.brand-text{flex:1;min-width:0}
.brand-name{font-size:14.5px;font-weight:600;letter-spacing:.3px}
.brand-sub{font-size:11px;color:var(--text-3);margin-top:2px}
.brand-collapse{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:var(--r-sm);color:#9199a6;transition:background var(--t-fast),color var(--t-fast),transform var(--t-mid)}
.brand-collapse svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.brand-collapse:hover{background:var(--panel-hover);color:var(--text)}
.brand-collapse:active{transform:scale(.94)}

/* ---- 侧边栏收起态（w 228 → 72 轨道）---- */
.sidebar{
  transition:width .16s var(--ease),flex-basis .16s var(--ease),background var(--t-fast);
}
body.side-collapsed .sidebar{width:72px;flex:0 0 72px}
body.side-collapsed .brand{padding:18px 0 14px;justify-content:center;gap:4px}
body.side-collapsed .brand-logo{width:32px;height:32px;flex:0 0 32px;font-size:15px;cursor:pointer}
body.side-collapsed .brand-logo:hover{transform:scale(1.05);box-shadow:0 8px 20px rgba(124,92,255,.55),var(--glow-brand);filter:brightness(1.06)}
body.side-collapsed .brand-logo:active{transform:scale(.94)}
body.side-collapsed .brand-collapse{display:none}
body.side-collapsed .brand-text,
body.side-collapsed .nav-item span,
body.side-collapsed .nav-badge,
body.side-collapsed .side-user-name,
body.side-collapsed .side-credit-bar,
body.side-collapsed .side-credit-label{
  display:none;
}
body.side-collapsed .nav{padding:6px 10px}
body.side-collapsed .nav-item{justify-content:center;padding:10px 0;gap:0}
body.side-collapsed .nav-item .ico{transform:scale(1.08)}
body.side-collapsed .side-user{margin:8px 10px 10px;padding:12px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;transform:none}
body.side-collapsed .side-user-top{width:100%;justify-content:center;align-self:center;gap:0}
body.side-collapsed .side-user-info{display:none}
body.side-collapsed .side-credit-row,
body.side-collapsed .side-credit-actions{display:contents}
body.side-collapsed .side-credit{order:1;display:grid;width:50px;max-width:50px;margin:0 auto;padding:0;place-items:center;align-self:center;overflow:hidden;font-size:17px;font-weight:650;line-height:1.1;text-align:center;text-overflow:ellipsis;white-space:nowrap}
body.side-collapsed .side-user-top{order:2}
body.side-collapsed #msgCenterBtn{order:3;margin:0 auto;align-self:center}
body.side-collapsed #settingsBtn{display:none}
body.side-collapsed .avatar{width:30px;height:30px;flex-basis:30px;font-size:11px}
body.side-collapsed .side-icon-btn{width:28px;height:28px;min-width:28px;max-width:28px;min-height:28px;max-height:28px}
body.side-collapsed .side-icon-btn .ico{width:15px;height:15px}
body.side-expanding .brand-text,
body.side-expanding .brand-collapse,
body.side-expanding .nav-item span,
body.side-expanding .nav-badge,
body.side-expanding .side-user-name,
body.side-expanding .side-credit-bar,
body.side-expanding .side-credit-label{display:none}
body.side-expanding .brand{padding:18px 0 14px;justify-content:center;gap:4px}
body.side-expanding .nav{padding:6px 10px}
body.side-expanding .nav-item{justify-content:center;padding:10px 0;gap:0}
body.side-expanding .side-user{margin:8px 10px 10px;padding:12px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;transform:none}
body.side-expanding .side-user-top{width:100%;justify-content:center;align-self:center;gap:0}
body.side-expanding .side-user-info{display:none}
body.side-expanding .side-credit-row,
body.side-expanding .side-credit-actions{display:contents}
body.side-expanding .side-credit{order:1;display:grid;width:50px;max-width:50px;margin:0 auto;padding:0;place-items:center;align-self:center;overflow:hidden;font-size:17px;font-weight:650;line-height:1.1;text-align:center;text-overflow:ellipsis;white-space:nowrap}
body.side-expanding .side-user-top{order:2}
body.side-expanding #msgCenterBtn{order:3;margin:0 auto;align-self:center}
body.side-expanding #settingsBtn{display:none}
body.side-expanding .avatar{width:30px;height:30px;flex-basis:30px;font-size:11px}
body.side-expanding .side-icon-btn{width:28px;height:28px;min-width:28px;max-width:28px;min-height:28px;max-height:28px}
body.side-expanding .side-icon-btn .ico{width:15px;height:15px}

.nav{flex:1;padding:6px 12px;overflow-y:auto}
.nav-item{
  display:flex;align-items:center;gap:11px;
  padding:10px 13px;border-radius:var(--r-mid);margin-bottom:3px;
  color:var(--text-2);font-size:13.5px;position:relative;
  transition:background var(--t-mid), color var(--t-mid), transform var(--t-mid);
}
.nav-item .ico{transition:transform var(--t-mid)}
.nav-item:hover{background:var(--panel-hover);color:var(--text)}
.nav-item:hover .ico{transform:scale(1.08)}
/* sealseek 实测：选中态是一块柔和纯色底 + 主题色文字，没有左侧高亮条 */
.nav-item.active{
  background:var(--accent-soft);
  color:var(--nav-active);font-weight:500;
}
.nav-badge{
  margin-left:auto;font-size:10px;font-style:normal;
  color:#a78bfa;background:var(--accent-soft);
  padding:2px 8px;border-radius:99px;letter-spacing:.2px;
}

.side-user{
  margin:12px;padding:14px 14px 13px;border-radius:var(--r-card);
  background:var(--panel);border:1px solid var(--line-soft);
  box-shadow:var(--shadow-card);
  transition:border-color var(--t-mid), box-shadow var(--t-mid), transform var(--t-mid);
}
.side-user:hover{border-color:var(--line-hi);transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.side-user-top{display:flex;align-items:center;gap:10px}
.avatar{
  width:34px;height:34px;border-radius:50%;flex:0 0 34px;
  background:linear-gradient(135deg,#5b5b8a,#2f2f4a);
  display:grid;place-items:center;font-size:12.5px;color:#d8d8f0;
  transition:box-shadow var(--t-mid);
}
.side-user:hover .avatar{box-shadow:0 0 18px rgba(124,92,255,.45)}
.side-user-name{font-size:12.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.side-user-name em{
  font-style:normal;font-size:10px;color:#fbbf24;
  background:rgba(251,191,36,.12);padding:2px 7px;border-radius:99px;
}
.side-credit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 12px}.side-credit{font-size:38px;font-weight:650;letter-spacing:.5px;line-height:1}.side-credit-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:3px}.side-icon-btn{box-sizing:border-box;width:29px;height:29px;min-width:29px;max-width:29px;min-height:29px;max-height:29px;padding:0;flex:0 0 29px;aspect-ratio:1;border-radius:50%}.side-icon-btn .ico{display:block;width:16px;height:16px}.side-icon-btn .dot{top:5px;right:5px;width:5px;height:5px}
.side-credit-bar{height:5px;border-radius:99px;background:#242432;overflow:hidden}
.side-credit-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .6s var(--ease)}
.side-credit-label{display:grid;gap:5px;margin-top:10px}.side-credit-label strong{font-size:13px;font-weight:600;color:var(--text-2)}.side-credit-label span{font-size:10.5px;color:var(--text-3);line-height:1.45}

/* ================= 主区域 ================= */
.main{
  flex:1;display:flex;flex-direction:column;min-width:0;
  background:var(--panel-main);
  border:0;border-radius:var(--r-shell);
  overflow:hidden;box-shadow:var(--shadow-card);
}
.topbar{
  height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:space-between;
  padding:0 22px;border-bottom:1px solid transparent;background:transparent;
  transition:border-color var(--t-slow), background var(--t-slow);
}
.topbar[hidden]{display:none}
.main.scrolled .topbar{border-bottom-color:var(--line-soft);background:rgba(10,10,15,.55);backdrop-filter:blur(12px)}
.crumb{font-size:13px;color:var(--text)}
.crumb-mute{color:var(--text-3)}
.crumb-sep{margin:0 7px;color:var(--text-3)}
.topbar-right{display:flex;align-items:center;gap:10px}
.top-search{
  display:flex;align-items:center;gap:7px;height:36px;padding:0 14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-pill);width:260px;color:var(--text-3);
  transition:border-color var(--t-mid), box-shadow var(--t-mid), background var(--t-mid);
}
.top-search:hover{border-color:rgba(255,255,255,.18)}
.top-search:focus-within{border-color:#4a3a8f;box-shadow:0 0 0 4px rgba(124,92,255,.12)}
.top-search input{flex:1;font-size:13px;color:var(--text)}
.top-search input::placeholder{color:var(--text-3)}
.icon-btn{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  color:var(--text-2);border:1px solid transparent;position:relative;
  transition:background var(--t-mid), color var(--t-mid), border-color var(--t-mid), transform var(--t-mid);
}
.icon-btn:hover{background:var(--panel);color:#fff;border-color:var(--line);transform:scale(1.05)}
.icon-btn.sm{width:28px;height:28px}
.icon-btn .dot{position:absolute;top:9px;right:10px;width:6px;height:6px;border-radius:50%;background:#f87171;border:2px solid var(--bg-side)}
.icon-btn .dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;background:rgba(248,113,113,.5);animation:pulse 2s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:.9;transform:scale(1)}50%{opacity:.25;transform:scale(1.7)}}
.top-avatar{
  width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#6d5bd0,#3a3a5c);
  display:grid;place-items:center;font-size:12.5px;color:#e6e6ff;cursor:pointer;
  transition:transform var(--t-mid), box-shadow var(--t-mid);
}
.top-avatar:hover{transform:scale(1.06);box-shadow:var(--glow-brand)}

.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:0;display:flex;flex-direction:column;scrollbar-gutter:stable both-edges}
.content:has(#page-agent.active),.content:has(#page-meeting.active),.content:has(.xhq-browser-page.active),.content:has(.external-browser-page.active){overflow:hidden;scrollbar-gutter:auto}
.wrap{width:100%;max-width:none;padding:26px 30px 48px}
.page{display:none}
.page.active{display:flex;flex-direction:column}
#page-agent.active,#page-meeting.active,.xhq-browser-page.active,.external-browser-page.active{flex:1;min-height:0}
.meeting-browser-page{overflow:hidden;background:var(--bg)}
.meeting-browser-shell{position:relative;display:block;flex:1;min-width:0;min-height:0;overflow:hidden;background:#0b0b0d}
.meeting-browser-frame{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;border:0;background:#0b0b0d;scrollbar-width:none;transform-origin:0 0}
.meeting-browser-frame::-webkit-scrollbar{display:none;width:0;height:0}
.meeting-browser-loading{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--bg);color:var(--text-2);font-size:13px}
.meeting-browser-loading[hidden]{display:none}
.meeting-browser-loading span{width:18px;height:18px;border:2px solid var(--line-hi);border-top-color:var(--accent);border-radius:50%;animation:meeting-browser-spin .8s linear infinite}
@keyframes meeting-browser-spin{to{transform:rotate(360deg)}}
.meeting-browser-external{position:absolute;z-index:3;top:14px;right:14px;padding:8px 12px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(16,16,19,.78);box-shadow:0 8px 24px rgba(0,0,0,.22);backdrop-filter:blur(12px);color:#d8d8df;font-size:11px;opacity:.3;transition:opacity .16s,border-color .16s}
.meeting-browser-shell:hover .meeting-browser-external,.meeting-browser-external:focus-visible{opacity:1;border-color:rgba(139,92,246,.55)}
.xhq-browser-page{overflow:hidden;background:var(--bg)}
.xhq-browser-shell{position:relative;display:flex;flex:1;min-width:0;min-height:0;overflow:hidden;background:#111}
.xhq-browser-toolbar{position:absolute;z-index:4;top:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;max-width:calc(100% - 28px);padding:8px 10px 8px 14px;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(18,18,22,.88);box-shadow:0 8px 28px rgba(0,0,0,.3);backdrop-filter:blur(14px);color:#f5f5f7}
.xhq-browser-toolbar>div:first-child{display:grid;gap:2px;min-width:0}.xhq-browser-toolbar b{font-size:12px;white-space:nowrap}.xhq-browser-toolbar small{font-size:10px;color:#aaaab5;white-space:nowrap}
.xhq-browser-actions{display:flex;gap:3px;padding:3px;border-radius:9px;background:rgba(255,255,255,.07)}.xhq-browser-actions button{padding:6px 10px;border-radius:7px;color:#c7c7ce;font-size:11px;white-space:nowrap}.xhq-browser-actions button.active{background:#ef4444;color:#fff}
.xhq-browser-frame{position:absolute;top:calc(var(--xhq-safe-top,24px) - var(--xhq-crop-top,0px));right:0;bottom:auto;left:0;width:100%;height:calc(100% + var(--xhq-crop-top,0px) - var(--xhq-safe-top,24px));border:0;background:#fff;clip-path:inset(var(--xhq-crop-top,0px) 0 0 0)}.xhq-browser-page[data-xhq-page="canvas"]{--xhq-crop-top:88px;--xhq-safe-top:32px}.xhq-browser-page[data-xhq-page="toolbox"]{--xhq-crop-top:220px;--xhq-safe-top:24px}
.xhq-browser-page[data-xhq-page="toolbox"] .xhq-browser-shell::after{content:"";position:absolute;z-index:1;top:0;right:0;left:0;height:32px;background:#111214;pointer-events:none}
.xhq-login-notice{position:absolute;z-index:3;inset:0;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 50% 18%,rgba(239,68,68,.17),transparent 38%),#0d0d0f}.xhq-login-notice[hidden]{display:none}
.xhq-login-notice section{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(680px,calc(100% - 32px));min-height:390px;padding:38px 44px;overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:26px;background:rgba(25,25,28,.97);box-shadow:0 30px 72px rgba(0,0,0,.5),0 0 46px rgba(124,92,255,.09);text-align:center}.xhq-login-notice section::before{content:"";position:absolute;top:-125px;left:50%;width:380px;height:230px;transform:translateX(-50%);border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,transparent);filter:blur(66px);pointer-events:none}.xhq-brand-mark{position:relative;display:grid;place-items:center;width:56px;height:56px;margin-bottom:18px;border-radius:17px;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 12px 30px rgba(124,92,255,.36);color:#fff;font-size:23px;font-weight:750}.xhq-login-notice h2{position:relative;margin:0;color:#fff;font-size:28px;font-weight:700;letter-spacing:-.015em;line-height:1.15}.xhq-login-notice p{position:relative;display:grid;gap:4px;margin:15px 0 15px;color:#9b9ba6;font-size:14px;line-height:1.4}.xhq-department-list{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 0 22px}.xhq-department-list span{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 13px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.045);color:#aaaab5;font-size:12px;line-height:1;white-space:nowrap}.xhq-login-notice .btn-primary{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:154px;min-height:44px;padding:10px 24px;border-radius:999px;font-size:14px;font-weight:650;line-height:1;text-align:center;box-shadow:0 12px 28px rgba(124,92,255,.32)}
.xhq-browser-loading{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--bg);color:var(--text-2);font-size:13px}.xhq-browser-loading[hidden]{display:none}.xhq-browser-loading span{width:18px;height:18px;border:2px solid var(--line-hi);border-top-color:#ef4444;border-radius:50%;animation:meeting-browser-spin .8s linear infinite}
@media (max-width:700px){.xhq-browser-toolbar{left:12px;right:12px;transform:none;justify-content:space-between}.xhq-browser-toolbar>div:first-child small{display:none}.xhq-login-notice{padding:16px}.xhq-login-notice section{width:100%;min-height:360px;padding:30px 20px;border-radius:20px}.xhq-brand-mark{width:50px;height:50px;margin-bottom:17px;border-radius:15px;font-size:21px}.xhq-login-notice h2{font-size:25px}.xhq-login-notice p{gap:3px;margin:14px 0;font-size:13px;line-height:1.35}.xhq-department-list{gap:6px;margin-bottom:20px}.xhq-department-list span{min-height:28px;padding:6px 11px;font-size:11px}.xhq-login-notice .btn-primary{min-width:144px;min-height:42px;padding:9px 21px;font-size:13px}}
.external-browser-page,.external-browser-shell{overflow:hidden;background:var(--bg)}.external-browser-shell{position:relative;display:flex;flex:1;min-width:0;min-height:0}.external-browser-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
.management-wrap{width:100%;max-width:none}
/* 管理面板分类栏与 Workbench 自有智能体 二级标签统一：横向滚动、底边高亮，不再做一组浮动胶囊。 */
.management-tabs{display:flex;align-items:flex-end;gap:5px;min-height:54px;margin:0 0 18px;padding:10px 8px 0;border-bottom:1px solid var(--line);background:transparent;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap}
.management-tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;flex:0 0 auto;padding:10px 16px;border:0;border-radius:9px 9px 0 0;background:transparent;color:var(--text-3);font-size:13px;white-space:nowrap;cursor:pointer}
.management-tabs button:hover{color:var(--text);background:var(--panel-hover)}
.management-tabs button.active{color:var(--text);background:var(--accent-soft);box-shadow:inset 0 -2px var(--accent)}
.management-pane{min-height:280px;padding:20px 12px;border:0;border-radius:0;background:transparent}
.management-pane[hidden]{display:none!important}
.management-pane-head{margin:0 0 18px}.management-pane-head h2{margin:0;font-size:17px}.management-pane-head p{margin:6px 0 0;color:var(--text-3);font-size:12px}
.management-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px;align-items:stretch}
.management-card-grid>.set-group.set-inline,.management-shortcut{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:86px;margin:0;padding:18px 20px;border:1px solid var(--line-soft);border-radius:14px;background:var(--panel-2)}
.management-card-grid>.set-group.set-inline[hidden]{display:none!important}.management-shortcut>div{display:grid;min-width:0;gap:5px}.management-shortcut b{font-size:14px;font-weight:600}.management-shortcut small{color:var(--text-3);font-size:12px}.management-shortcut>button{flex:0 0 auto;white-space:nowrap}.management-card-grid .vault-manage{flex:0 0 auto;width:auto;margin:0;padding:9px 15px;font-size:12.5px}
@media(max-width:700px){.management-tabs{margin-right:-16px;margin-left:-16px;padding-right:16px;padding-left:16px}.management-tabs button{padding:9px 12px}.management-pane{padding:16px 0}.management-card-grid>.set-group.set-inline,.management-shortcut{align-items:flex-start;flex-direction:column}.management-card-grid .vault-manage,.management-shortcut button{align-self:stretch}}

/* ================= 页头 ================= */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.page-head h1{font-size:22px;font-weight:600;letter-spacing:.3px}
.page-head p{font-size:12.5px;color:var(--text-3);margin-top:6px}
.page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.seg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px}
.seg button{padding:7px 15px;border-radius:var(--r-pill);font-size:12.5px;color:var(--text-2);transition:background var(--t-mid), color var(--t-mid), box-shadow var(--t-mid), transform var(--t-mid)}
.seg button:hover{color:#fff}
.seg button.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 4px 12px rgba(124,92,255,.30)}
.btn-primary{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 18px;border-radius:var(--r-pill);font-size:13px;font-weight:500;color:var(--accent-contrast,#fff);
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  box-shadow:0 8px 20px rgba(var(--accent-rgb),.30);
  transition:transform var(--t-mid), box-shadow var(--t-mid), filter var(--t-mid);
}
.btn-primary:hover{
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 12px 28px rgba(var(--accent-rgb),.48), 0 0 25px rgba(255,255,255,.15);
  filter:brightness(1.06);
}
.btn-primary:active{transform:translateY(0) scale(.99)}
.btn-primary.lg{padding:10px 24px}
.btn-ghost{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;border-radius:var(--r-pill);font-size:13px;color:var(--text-2);
  background:var(--panel);border:1px solid var(--line);
  transition:color var(--t-mid), border-color var(--t-mid), background var(--t-mid), transform var(--t-mid);
}
.btn-ghost:hover{color:#fff;border-color:var(--line-hi);background:var(--panel-2);transform:translateY(-2px)}
.btn-danger{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 18px;border-radius:var(--r-pill);font-size:13px;font-weight:500;color:#fff;
  background:linear-gradient(135deg,#ef4444,#b91c1c);
  box-shadow:0 8px 20px rgba(239,68,68,.30);
  transition:transform var(--t-mid), box-shadow var(--t-mid), filter var(--t-mid);
}
.btn-danger:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 28px rgba(239,68,68,.48);filter:brightness(1.06)}
.btn-danger:active{transform:translateY(0) scale(.99)}
.btn-danger[disabled]{opacity:.55;pointer-events:none}

/* ---- 任务行「更多操作」按钮：表格 / 卡片 / 列表三种视图共用同一个外观 ---- */
.task-more-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;padding:0;
  border:1px solid transparent;border-radius:8px;
  background:transparent;color:var(--text-3);
  font-size:15px;line-height:1;cursor:pointer;
  transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);
}
.task-more-btn:hover{background:var(--panel-3);color:var(--text);border-color:var(--line)}
.task-more-btn[aria-expanded="true"]{background:var(--accent-soft);color:var(--nav-active);border-color:var(--line-hi)}
/* 表格里那列尽量窄，不跟内容抢宽度 */
.task-table td.task-actions-cell,.task-table th.task-actions-head{width:44px;text-align:right;padding-right:12px}
.task-bulk-bar{display:flex;align-items:center;gap:8px;min-height:48px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel-2)}.task-bulk-bar[hidden]{display:none}.task-bulk-bar>b{margin-right:auto;font-size:12px}.task-bulk-bar select{height:34px;max-width:180px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font:inherit;font-size:11px}.task-bulk-bar .btn-primary,.task-bulk-bar .btn-ghost{height:34px;padding:0 13px}.task-bulk-datetime{width:260px}.task-bulk-datetime[hidden]{display:none}.task-bulk-datetime .workbench-date-text{min-width:120px}.task-table th.task-select-head,.task-table td.task-select-cell{width:60px;padding-left:12px;padding-right:6px;text-align:left}.task-select-wrap{display:inline-flex;align-items:center;gap:7px}.task-select-wrap input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;width:15px;height:15px;min-width:15px;margin:0;border:1px solid color-mix(in srgb,var(--text-3) 55%,var(--line));border-radius:4px;background:color-mix(in srgb,var(--panel) 84%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.task-select-wrap input[type=checkbox]:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 13%,transparent)}.task-select-wrap input[type=checkbox]:checked{border-color:transparent;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 3px 9px color-mix(in srgb,var(--accent) 28%,transparent)}.task-select-wrap input[type=checkbox]:checked::after{content:"";position:absolute;left:4px;top:2px;width:4px;height:7px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.task-select-wrap input[type=checkbox]:indeterminate{border-color:transparent;background:linear-gradient(135deg,var(--primary),var(--accent))}.task-select-wrap input[type=checkbox]:indeterminate::after{content:"";position:absolute;left:3px;right:3px;top:6px;height:1.5px;border-radius:2px;background:#fff}.task-select-wrap input[type=checkbox]:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}.task-select-wrap input[type=checkbox]:disabled{cursor:not-allowed;opacity:.34;box-shadow:none}.task-tree-toggle{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid var(--line-soft);border-radius:6px;color:var(--accent);background:var(--panel-2);font-size:11px}.task-tree-toggle:hover{border-color:var(--accent)}.task-row.is-selected td{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.task-row.is-hidden-by-tree{display:none}@media(max-width:900px){.task-bulk-bar{flex-wrap:wrap}.task-bulk-bar>b{width:100%}.task-bulk-datetime{width:100%}}
.task-bulk-bar .cselect{width:158px}.task-bulk-bar .cselect[hidden]{display:none!important}.task-bulk-bar .cselect-trigger{height:34px;border-radius:9px;background:var(--panel);font-size:11.5px}.task-bulk-bar .cselect-trigger:hover,.task-bulk-bar .cselect.open .cselect-trigger{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.task-bulk-bar .task-bulk-datetime{width:190px}.task-bulk-bar .task-bulk-datetime .workbench-date-text{height:34px;min-width:0;padding:0 30px 0 10px;border-radius:9px;font-size:11.5px;background-position:calc(100% - 17px) 13px,calc(100% - 12px) 13px}
.task-table td.task-actions-cell{white-space:nowrap}
.task-cell-open{display:inline-flex;align-items:center;max-width:100%;padding:2px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.task-cell-open:hover{color:var(--accent)}.task-cell-open:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:3px;border-radius:3px}.task-table-code .task-cell-open{font-weight:600}
.task-hierarchy-item{padding:5px 8px 5px calc(8px + var(--task-hierarchy-depth,0)*18px);cursor:default}.task-hierarchy-item.is-current{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--card-bg))}.task-hierarchy-toggle{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;padding:0;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));color:var(--accent);font-size:15px;font-weight:700;line-height:1;cursor:pointer}.task-hierarchy-toggle:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--panel))}.task-hierarchy-toggle.is-empty{visibility:hidden}.task-hierarchy-open{display:flex;align-items:center;min-width:0;flex:1;padding:2px 0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.task-hierarchy-open:hover .task-hierarchy-main b{color:var(--accent)}.task-hierarchy-open:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:2px;border-radius:4px}
.task-hierarchy-summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:8px;background:color-mix(in srgb,var(--accent) 4%,var(--panel));color:var(--text-3);font-size:11px}.task-hierarchy-summary b{color:var(--text);font-size:11.5px}.task-hierarchy-summary .has-alert,.task-hierarchy-summary .has-alert b{color:var(--danger)}.task-hierarchy-siblings{width:100%;padding:7px 10px;border:1px dashed color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:8px;background:transparent;color:var(--text-3);font:inherit;font-size:11px;text-align:left;cursor:pointer}.task-hierarchy-siblings:hover{border-color:var(--accent);color:var(--accent)}.task-hierarchy-main i{color:var(--text-2);font-size:11px;font-style:normal;font-weight:500}.task-hierarchy-item.is-compact-child .task-hierarchy-main>span{gap:10px}.task-hierarchy-item.is-compact-child .task-hierarchy-main b{min-width:68px}.task-hierarchy-item.is-compact-child{padding-top:5px;padding-bottom:5px}
/* 卡片：按钮浮在右上角 */
.task-card{position:relative}
.task-card>.task-more-btn{position:absolute;top:8px;right:8px;z-index:2}
.task-card-top{padding-right:30px}
/* 列表行：跟在元信息后面，hover 才显形，避免整屏都是省略号 */
.task-line>.task-more-btn{margin-left:auto;opacity:0;transition:opacity var(--t-fast)}
.task-line:hover>.task-more-btn,.task-line:focus-within>.task-more-btn{opacity:1}

.task-action-menu{min-width:196px}
.task-action-menu button[aria-disabled="true"]{opacity:.42;cursor:not-allowed}
.task-action-menu button[aria-disabled="true"]:hover{background:transparent;color:var(--text-2)}
.task-action-menu button[hidden]{display:none!important}

/* ---- 删除任务确认 ---- */
.task-delete-panel{max-width:460px}
.task-delete-summary{
  display:flex;flex-direction:column;gap:6px;
  padding:14px 16px;border-radius:var(--r-card);
  background:var(--panel-2);border:1px solid var(--line);
}
.task-delete-summary b{font-size:14px;color:var(--text);font-weight:500;line-height:1.5}
.task-delete-summary span{font-size:12px;color:var(--text-3)}
.task-delete-note{
  margin:14px 0 0;font-size:12.5px;line-height:1.7;color:var(--text-3);
}
.task-delete-note em{font-style:normal;color:var(--nav-active)}

/* ================= KPI ================= */
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.kpi-card{
  background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-card);
  padding:18px 18px 16px;position:relative;overflow:hidden;
  transition:transform var(--t-mid), border-color var(--t-mid), box-shadow var(--t-mid), background var(--t-mid);
  box-shadow:var(--shadow-card);
}
/* hover：上浮 + 轻微放大 + 描边提亮 + 白色柔光（对齐 sealseek）*/
.kpi-card:hover{
  transform:translateY(-4px) scale(1.012);
  border-color:var(--line-hi);
  box-shadow:var(--shadow-hover);
}
.kpi-card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(420px 160px at 50% -20%,rgba(255,255,255,.10),transparent 70%);
  opacity:0;transition:opacity var(--t-mid);
}
.kpi-card:hover::after{opacity:1}
/* 可点击的 KPI 卡片（状态快捷筛选）：手型光标，选中后描边点亮 */
.kpi-card[data-kpi-status]{cursor:pointer;user-select:none}
.kpi-card[data-kpi-status]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.kpi-card[data-kpi-status].is-active{
  border-color:var(--accent);
  background:linear-gradient(180deg,var(--accent-soft),transparent 62%),var(--panel);
  box-shadow:0 0 0 1px var(--accent-soft),var(--shadow-hover);
}
.kpi-card[data-kpi-status].is-active::after{opacity:1}
.kpi-card[data-kpi-status].is-active .kpi-label{color:var(--text);font-weight:600}
.kpi-card[data-kpi-status].is-active .kpi-val{color:#fff}
.kpi-card[data-kpi-status="done"].is-active{border-color:#22c55e;background:linear-gradient(180deg,rgba(34,197,94,.14),transparent 62%),var(--panel)}
.kpi-label{font-size:12.5px;color:var(--text-2);display:flex;align-items:center;gap:6px}
.kpi-label em{
  font-style:normal;font-size:10px;color:var(--text-3);
  background:#1e1e2b;padding:2px 8px;border-radius:99px;
}
.kpi-label em.warn{color:#fca5a5;background:rgba(248,113,113,.14)}
.kpi-val{font-size:28px;font-weight:600;margin:11px 0 9px;letter-spacing:.5px;line-height:1}
.kpi-foot{font-size:11.5px;color:var(--text-3)}
.kpi-foot b{font-weight:600}
.kpi-foot.up b{color:var(--green)}
.kpi-foot.down b{color:var(--red)}
.kpi-bar{height:5px;border-radius:99px;background:#232332;overflow:hidden;margin-top:10px}
.kpi-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.kpi-bar.green i{background:linear-gradient(90deg,#22c55e,#4ade80)}
.kpi-bar.red i{background:linear-gradient(90deg,#ef4444,#f87171)}
.kpi-bar.purple i{background:linear-gradient(90deg,#7c5cff,#a78bfa)}
.spark{width:100%;height:34px;margin-top:8px;display:block}
.spark polyline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.85}

/* ================= 区块 ================= */
.sec{margin-top:32px}
.sec-head h2{font-size:16px;font-weight:600}
.sec-head p{font-size:12.5px;color:var(--text-3);margin-top:6px}
.sec-head.row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}

.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}
.module-card{
  display:flex;gap:13px;align-items:center;position:relative;
  background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-card);
  padding:16px 16px;cursor:pointer;
  transition:transform var(--t-mid), border-color var(--t-mid), box-shadow var(--t-mid), background var(--t-mid);
  box-shadow:var(--shadow-card);
}
/* hover：上浮放大 + 描边提亮 + 柔光 */
.module-card:hover{
  transform:translateY(-4px) scale(1.015);
  border-color:var(--line-hi);
  background:var(--panel-2);
  box-shadow:var(--shadow-hover);
}
.module-icon{
  width:44px;height:44px;flex:0 0 44px;border-radius:var(--r-mid);
  display:grid;place-items:center;font-size:15px;font-weight:600;
  transition:transform var(--t-mid);
}
.module-card:hover .module-icon{transform:scale(1.08) rotate(-2deg)}
.module-body{min-width:0;flex:1}
.module-body h3{font-size:13.5px;font-weight:500;margin-bottom:5px}
.module-body p{font-size:11.5px;color:var(--text-3);line-height:1.45}
/* 分组 hover：箭头滑出（对齐 sealseek group-hover）*/
.module-arrow{
  position:absolute;right:14px;bottom:14px;color:var(--text-3);
  opacity:0;width:0;overflow:hidden;white-space:nowrap;
  transition:opacity var(--t-mid), transform var(--t-mid), width var(--t-mid);
  transform:translateX(-6px);
}
.module-card:hover .module-arrow{opacity:1;width:16px;transform:translateX(0)}
.star{position:absolute;top:14px;right:14px;color:var(--text-3);font-size:14px;transition:color var(--t-mid), transform var(--t-mid)}
.star:hover,.star.on{color:#fbbf24}
.star.on{transform:scale(1.15)}

.c-orange{background:rgba(249,115,22,.16);color:#fb923c}
.c-blue{background:rgba(59,130,246,.16);color:#60a5fa}
.c-purple{background:rgba(124,92,255,.18);color:#a78bfa}
.c-pink{background:rgba(236,72,153,.16);color:#f472b6}
.c-green{background:rgba(34,197,94,.16);color:#4ade80}
.c-red{background:rgba(239,68,68,.16);color:#f87171}
.c-cyan{background:rgba(6,182,212,.16);color:#22d3ee}
.c-amber{background:rgba(245,158,11,.16);color:#fbbf24}
.c-indigo{background:rgba(99,102,241,.16);color:#818cf8}
.c-teal{background:rgba(20,184,166,.16);color:#2dd4bf}
.c-violet{background:rgba(168,85,247,.16);color:#c084fc}
.c-slate{background:rgba(148,163,184,.14);color:#94a3b8}

/* ================= Tabs / 表格 ================= */
.tabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px}
.tabs button{padding:7px 15px;border-radius:var(--r-pill);font-size:12.5px;color:var(--text-2);transition:background var(--t-mid), color var(--t-mid), box-shadow var(--t-mid)}
.tabs button:hover{color:#fff}
.tabs button.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 4px 12px rgba(124,92,255,.30)}

.table-card{
  margin-top:18px;background:var(--panel);border:1px solid var(--line-soft);
  border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card);
  transition:border-color var(--t-mid), box-shadow var(--t-mid);
}
.table-card:hover{border-color:var(--line-hi);box-shadow:var(--shadow-hover)}
.tbl{width:100%;border-collapse:collapse}
.tbl th{
  font-size:12px;font-weight:500;color:var(--text-3);text-align:left;
  padding:14px 18px;background:#10101a;border-bottom:1px solid var(--line);
}
.tbl td{padding:15px 18px;font-size:13px;color:var(--text-2);border-bottom:1px solid var(--line-soft);vertical-align:middle;transition:background var(--t-fast)}
.tbl tbody tr{transition:background var(--t-fast)}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr:hover{background:var(--panel-2)}
.t-strong{color:var(--text);font-weight:500}
.pri-urgent{color:#ef4444;font-weight:600}   /* 紧急：比「高」更重一档 */
.pri-high{color:#f87171}
.pri-mid{color:#fbbf24}
.pri-low{color:#94a3b8}
.pri-none{color:#6b7280}   /* 无优先级：比「低」再淡一档 */
.pill{padding:3px 10px;border-radius:99px;font-size:11.5px;white-space:nowrap;display:inline-block}
.pill-doing{background:rgba(124,92,255,.15);color:#a78bfa}
.pill-done{background:rgba(34,197,94,.14);color:#4ade80}
.pill-todo{background:rgba(148,163,184,.14);color:#94a3b8}
.pill-late{background:rgba(239,68,68,.14);color:#f87171}
.pill-blocked{background:rgba(245,158,11,.16);color:#fbbf24}
/* 任务日历里的事件块：blocked 之前没有对应配色，会退回默认紫色，看不出卡住了 */
.calendar-event.event-blocked{background:rgba(245,158,11,.12);border-color:#f59e0b}
.bar{display:inline-block;width:calc(100% - 44px);height:6px;border-radius:99px;background:#232332;vertical-align:middle;overflow:hidden}
.bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .7s var(--ease)}
.bar.green i{background:linear-gradient(90deg,#22c55e,#4ade80)}
.bar.red i{background:linear-gradient(90deg,#ef4444,#f87171)}
.pct{display:inline-block;width:36px;text-align:right;font-size:12px;color:var(--text-3);vertical-align:middle}

/* ================= AI 创作（对话） ================= */
.chat-wrap{display:flex;flex:1;min-height:0}
.chat-side{
  width:262px;flex:0 0 262px;background:var(--panel-2);border-right:1px solid var(--line-soft);
  display:flex;flex-direction:column;padding:16px 12px;
}
.chat-side-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:0 4px}
.chat-side-head h3{font-size:14px;font-weight:600}
.btn-new-chat{
  display:flex;align-items:center;justify-content:center;gap:7px;
  width:100%;height:40px;border-radius:var(--r-pill);font-size:13px;font-weight:500;color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  box-shadow:0 8px 20px rgba(124,92,255,.30);
  transition:transform var(--t-mid), box-shadow var(--t-mid), filter var(--t-mid);
}
.btn-new-chat:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 28px rgba(124,92,255,.48), var(--glow-white-soft);filter:brightness(1.06)}
.chat-search{
  display:flex;align-items:center;gap:7px;height:36px;padding:0 14px;margin-top:12px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--text-3);
  transition:border-color var(--t-mid), box-shadow var(--t-mid);
}
.chat-search:hover{border-color:rgba(255,255,255,.18)}
.chat-search:focus-within{border-color:#4a3a8f;box-shadow:0 0 0 4px rgba(124,92,255,.12)}
.chat-search input{flex:1;font-size:12.5px;color:var(--text)}
.chat-search input::placeholder{color:var(--text-3)}
.chat-group{
  display:flex;align-items:center;gap:9px;padding:10px 12px;margin-top:8px;
  font-size:12.5px;color:var(--text-2);border-radius:var(--r-mid);cursor:pointer;
  transition:background var(--t-mid), color var(--t-mid);
}
.chat-group:hover{background:var(--panel);color:#fff}
.chat-list-label{font-size:11px;color:var(--text-3);padding:14px 12px 8px}
.chat-list{flex:1;overflow-y:auto;margin:0 -2px}
.chat-item{
  display:block;padding:10px 13px;font-size:12.5px;color:var(--text-2);
  border-radius:var(--r-mid);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:background var(--t-mid), color var(--t-mid), transform var(--t-mid);
}
.chat-item:hover{background:var(--panel);color:#fff;transform:translateX(2px)}
.chat-item.active{background:var(--panel-2);color:var(--text)}

.chat-main{
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;
  padding:0 40px 40px;overflow-y:auto;
}
.chat-hero{margin-top:auto;text-align:center;padding-top:80px}
.chat-hero h2{font-size:29px;font-weight:600;letter-spacing:.5px}
.chat-hero .grad{
  background:linear-gradient(135deg,#a78bfa,#c026d3 60%,#f472b6);
  background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:gradShift 6s var(--ease) infinite;
}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.chat-hero p{font-size:13px;color:var(--text-3);margin-top:11px}

.composer{
  width:100%;max-width:820px;margin-top:32px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-shell);padding:16px 18px 14px;
  transition:border-color var(--t-mid), box-shadow var(--t-mid);
  box-shadow:var(--shadow-card);
}
.composer:hover{border-color:rgba(255,255,255,.16)}
.composer:focus-within{border-color:#4a3a8f;box-shadow:0 0 0 5px rgba(124,92,255,.12), 0 8px 28px rgba(124,92,255,.10)}
.composer textarea{
  width:100%;resize:none;font-size:14px;line-height:1.6;color:var(--text);
  max-height:150px;background:transparent;
}
.composer textarea::placeholder{color:var(--text-3)}
.composer-bar{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.composer-tools{display:flex;align-items:center;gap:4px}
.tool-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 12px;border-radius:var(--r-pill);font-size:12.5px;color:var(--text-2);
  border:1px solid transparent;
  transition:background var(--t-mid), color var(--t-mid), border-color var(--t-mid), transform var(--t-mid);
}
.tool-btn:hover{background:var(--panel-2);color:#fff;border-color:var(--line);transform:translateY(-1px)}
.tool-sep{width:1px;height:16px;background:var(--line);margin:0 4px}
.send-btn{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:#2a2a3d;color:var(--text-3);
  transition:background var(--t-mid), color var(--t-mid), transform var(--t-mid), box-shadow var(--t-mid);
}
.send-btn.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 6px 16px rgba(124,92,255,.35)}
.send-btn:hover{transform:scale(1.08);box-shadow:0 0 20px rgba(124,92,255,.45)}
.send-btn:active{transform:scale(.96)}

.quick-prompts{
  width:100%;max-width:820px;margin-top:20px;
  display:flex;flex-wrap:wrap;gap:10px;justify-content:center;
}
.quick-prompts button{
  padding:9px 16px;border-radius:var(--r-pill);font-size:12.5px;color:var(--text-2);
  background:var(--panel);border:1px solid var(--line);
  transition:color var(--t-mid), border-color var(--t-mid), background var(--t-mid), transform var(--t-mid), box-shadow var(--t-mid);
}
.quick-prompts button:hover{
  color:#c4b5fd;border-color:#4a3a8f;background:rgba(124,92,255,.08);
  transform:translateY(-2px);box-shadow:0 8px 20px rgba(124,92,255,.20);
}

/* 对话消息 */
.msgs{width:100%;max-width:820px;margin-top:auto;padding-top:60px;display:flex;flex-direction:column;gap:18px}
.msg{display:flex;gap:12px;animation:fadeInUp .4s var(--ease) both}
.msg-av{
  width:34px;height:34px;flex:0 0 34px;border-radius:var(--r-mid);display:grid;place-items:center;
  font-size:12px;color:#fff;
}
.msg.user .msg-av{background:linear-gradient(135deg,#6d5bd0,#3a3a5c)}
.msg.ai .msg-av{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 6px 14px rgba(124,92,255,.35)}
.msg-body{
  background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-card);
  padding:13px 16px;font-size:13.5px;line-height:1.7;color:var(--text);max-width:100%;
  transition:border-color var(--t-mid);
}
.msg-body:hover{border-color:var(--line-hi)}
.msg.user .msg-body{background:rgba(124,92,255,.10);border-color:rgba(124,92,255,.22)}
.msg-body p+p{margin-top:8px}
.msg-body .mini{color:var(--text-3);font-size:12px}

/* ================= 开发中 ================= */
.soon{
  flex:1;min-height:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;gap:16px;padding:40px;
}
.soon-ico{
  width:104px;height:104px;border-radius:20px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(124,92,255,.22),rgba(192,38,211,.12));
  border:1px solid rgba(124,92,255,.28);color:#a78bfa;margin-bottom:8px;
  box-shadow:0 16px 40px rgba(124,92,255,.20);
  animation:floaty 4s var(--ease) infinite;
}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.soon-ico .ico{width:42px;height:42px;stroke-width:1.4}
.soon h2{font-size:22px;font-weight:600}
.soon p{font-size:13.5px;color:var(--text-2)}
.soon-tip{
  font-size:12px;color:var(--text-3);
  background:var(--panel);border:1px solid var(--line);padding:9px 18px;border-radius:var(--r-pill);margin:4px 0 12px;
  transition:border-color var(--t-mid), color var(--t-mid);
}
.soon-tip:hover{border-color:var(--line-hi);color:var(--text-2)}
.soon .btn-primary{padding:10px 24px}

/* ================= 智学中心 ================= */
.learn-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.learn-top h1{font-size:22px;font-weight:600}
.learn-badge{
  display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-2);
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 8px 8px 18px;
  box-shadow:var(--shadow-card);
}
.learn-badge b{color:#c4b5fd;font-weight:600}
.learn-badge span{
  background:var(--panel-hover);border:1px solid var(--line);border-radius:var(--r-pill);
  padding:5px 14px;font-size:12px;color:var(--text);cursor:pointer;
  transition:border-color var(--t-mid), background var(--t-mid), transform var(--t-mid);
}
.learn-badge span:hover{border-color:var(--line-hi);transform:translateY(-1px)}

.learn-banner{
  position:relative;overflow:hidden;border-radius:var(--r-shell);
  background:radial-gradient(1200px 400px at 85% 45%,rgba(37,99,235,.55),transparent 60%),
             radial-gradient(900px 400px at 15% 120%,rgba(192,38,211,.35),transparent 65%),
             linear-gradient(120deg,#0c0b1c 0%,#160f2e 45%,#0a0e26 100%);
  border:1px solid rgba(124,92,255,.20);
  box-sizing:border-box;height:340px;
  padding:40px 46px 48px;
  box-shadow:var(--shadow-card);
  transition:border-color var(--t-mid), box-shadow var(--t-mid);
}
.learn-banner:hover{border-color:rgba(255,255,255,.20);box-shadow:0 20px 48px rgba(0,0,0,.5), 0 0 40px rgba(124,92,255,.18)}
.banner-glow{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none}
.g1{width:320px;height:320px;right:-40px;top:-60px;background:rgba(59,130,246,.28)}
.g2{width:260px;height:260px;left:20%;bottom:-140px;background:rgba(192,38,211,.20)}
.banner-inner{position:relative;z-index:2;max-width:640px}
.banner-brand{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.banner-brand .chip{
  font-size:11.5px;color:#c7d2fe;border:1px solid rgba(199,210,254,.28);
  padding:4px 12px;border-radius:99px;background:rgba(255,255,255,.04);
}
.banner-brand .logo-mark{font-size:13px;color:#e0e7ff;font-weight:600}
.learn-banner h2{font-size:38px;font-weight:700;letter-spacing:.6px;line-height:1.15;color:#fff}
.banner-sub{
  display:inline-block;margin-top:14px;font-size:12.5px;color:#fff;
  background:linear-gradient(90deg,rgba(109,40,217,.85),rgba(192,38,211,.75));
  padding:5px 14px;border-radius:99px;
}
.banner-points{display:flex;gap:22px;margin-top:18px;font-size:12.5px;color:#c7d2fe}
.banner-btns{display:flex;gap:12px;margin-top:26px}
.banner-btns .btn-ghost{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#e9e9ff}
.banner-btns .btn-ghost:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.30)}
.banner-art{
  position:absolute;right:80px;top:50%;transform:translateY(-50%);
  font-size:150px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#60a5fa,#818cf8 45%,#c026d3);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  opacity:.85;z-index:1;letter-spacing:-4px;
  text-shadow:0 0 80px rgba(96,165,250,.35);
  transition:transform var(--t-slow);
}
.learn-banner:hover .banner-art{transform:translateY(-50%) scale(1.04) rotate(-1.5deg)}
.learn-banner.has-poster::after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(8,7,22,.94) 0%,rgba(15,12,38,.8) 48%,rgba(8,10,28,.22) 78%),var(--learning-banner-image);background-position:center;background-size:100% 100%;background-repeat:no-repeat;z-index:0}
.learn-banner.has-poster .banner-inner,.learn-banner.has-poster .banner-dots{z-index:2}
.banner-dots{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:7px;z-index:3}
.banner-dots button{width:16px;height:4px;padding:0;border:0;border-radius:99px;background:rgba(255,255,255,.22);display:block;transition:width var(--t-mid), background var(--t-mid)}
.banner-dots button.on{background:#fff;width:28px}
.learning-featured-settings{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.learning-featured-settings label{display:grid;gap:7px}.learning-featured-settings label>span{color:var(--text-3);font-size:12px}
#learningFeaturedFixedFields{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}#learningFeaturedFixedFields[hidden]{display:none!important}#learningFeaturedFixedFields .vault-wide{grid-column:1/-1}
@media(max-width:900px){.learning-featured-settings{grid-template-columns:1fr}#learningFeaturedFixedFields{grid-template-columns:1fr}.learn-banner{height:300px;padding:30px 28px 44px}.learn-banner h2{font-size:30px}}

.learn-sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:36px;flex-wrap:wrap}
.learn-title h2{font-size:17px;font-weight:600;display:inline-block;padding-bottom:8px;position:relative}
.learn-title h2::after{content:"";position:absolute;left:0;bottom:0;width:42px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width var(--t-mid)}
.learn-title:hover h2::after{width:100%}
.learn-title p{display:inline-block;font-size:12.5px;color:var(--text-3);margin-left:12px}
.learn-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.chip-search{
  display:flex;align-items:center;gap:7px;height:38px;padding:0 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--text-3);width:240px;
  transition:border-color var(--t-mid), box-shadow var(--t-mid);
}
.chip-search:hover{border-color:rgba(255,255,255,.18)}
.chip-search:focus-within{border-color:#4a3a8f;box-shadow:0 0 0 4px rgba(124,92,255,.12)}
.chip-search input{flex:1;font-size:12.5px;color:var(--text)}
.chip-search input::placeholder{color:var(--text-3)}
.status-tabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px}
.status-tabs button{padding:6px 16px;border-radius:var(--r-pill);font-size:12.5px;color:var(--text-2);transition:background var(--t-mid), color var(--t-mid), box-shadow var(--t-mid)}
.status-tabs button:hover{color:#fff}
.status-tabs button.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 4px 12px rgba(124,92,255,.30)}
.status-tabs .cnt{
  font-style:normal;font-size:10px;background:rgba(124,92,255,.22);color:#c4b5fd;
  padding:1px 6px;border-radius:99px;margin-left:4px;
}

.cate-tabs{display:flex;gap:8px;margin-top:22px;flex-wrap:wrap}
.cate-tabs button{
  padding:8px 18px;border-radius:var(--r-pill);font-size:12.5px;color:var(--text-2);
  background:var(--panel);border:1px solid var(--line);
  transition:color var(--t-mid), border-color var(--t-mid), background var(--t-mid), transform var(--t-mid);
}
.cate-tabs button:hover{color:#fff;border-color:var(--line-hi);transform:translateY(-2px)}
.cate-tabs button.active{
  background:linear-gradient(135deg,rgba(124,92,255,.22),rgba(192,38,211,.18));
  border-color:rgba(124,92,255,.42);color:#fff;
}

.course-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:22px}
.course{
  background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-card);
  overflow:hidden;box-shadow:var(--shadow-card);
  transition:transform var(--t-mid), border-color var(--t-mid), box-shadow var(--t-mid);
}
/* hover：上浮放大 + 描边提亮（对齐 sealseek）*/
.course:hover{
  transform:translateY(-6px) scale(1.015);
  border-color:var(--line-hi);
  box-shadow:var(--shadow-hover);
}
.cover{position:relative;height:136px;padding:14px;display:flex;align-items:flex-end;overflow:hidden}
.cover::after{
  content:"";position:absolute;top:0;bottom:0;width:60%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);
  transform:translateX(-120%);transition:transform .8s var(--ease);
}
.course:hover .cover::after{transform:translateX(220%)}
.cover-t{font-size:15px;font-weight:600;color:#fff;line-height:1.35;text-shadow:0 2px 12px rgba(0,0,0,.55);position:relative;z-index:2}
.cover .tag{
  position:absolute;top:11px;left:12px;font-size:10.5px;color:#e5e7ff;
  background:rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.16);
  padding:3px 9px;border-radius:99px;backdrop-filter:blur(4px);z-index:2;
}
.cv1{background:linear-gradient(135deg,#1e1b4b,#4c1d95 55%,#be185d)}
.cv2{background:linear-gradient(135deg,#082f49,#0e7490 55%,#4c1d95)}
.cv3{background:linear-gradient(135deg,#111827,#3730a3 60%,#0ea5e9)}
.cv4{background:linear-gradient(135deg,#3b0764,#7c3aed 55%,#ec4899)}
.cv5{background:linear-gradient(135deg,#1f2937,#4338ca 55%,#c026d3)}
.cv6{background:linear-gradient(135deg,#0c0a2b,#1d4ed8 55%,#7c3aed)}
.cv7{background:linear-gradient(135deg,#0b1220,#155e75 55%,#4f46e5)}
.cv8{background:linear-gradient(135deg,#2a0a3a,#6d28d9 55%,#f43f5e)}
.course h3{font-size:14px;font-weight:500;padding:14px 14px 6px;line-height:1.45}
.course-author{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-3);padding:0 14px}
.dot-i{width:6px;height:6px;border-radius:50%;background:var(--accent);display:block;flex:0 0 6px}
.course-meta{font-size:11.5px;color:var(--text-3);padding:8px 14px 0}
.course-progress{display:flex;align-items:center;gap:10px;padding:12px 14px 16px}
.course-progress .label{font-size:11.5px;color:var(--text-3);white-space:nowrap}
.course-progress .label.done{color:var(--green)}
.course-progress .bar{flex:1;width:auto}

.learn-more{
  display:block;margin:28px auto 0;padding:10px 26px;border-radius:var(--r-pill);
  font-size:12.5px;color:var(--text-2);background:var(--panel);border:1px solid var(--line);
  transition:color var(--t-mid), border-color var(--t-mid), background var(--t-mid), transform var(--t-mid);
}
.learn-more:hover{color:#fff;border-color:var(--line-hi);background:var(--panel-2);transform:translateY(-2px)}
.learning-admin-bar{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.learning-cover{background:linear-gradient(135deg,#111827,#3730a3 60%,#0ea5e9);background-position:center;background-size:cover}
.learning-exam-badge{position:absolute;right:12px;top:12px;z-index:4;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:linear-gradient(135deg,rgba(124,58,237,.94),rgba(217,70,239,.94));color:#fff;font:700 10.5px/1.2 inherit;cursor:pointer;box-shadow:0 8px 24px rgba(126,34,206,.3)}.learning-exam-badge b{font-size:12px}
.learning-change{position:absolute;right:11px;top:11px;z-index:3;padding:3px 8px;border-radius:999px;font-size:10px;font-style:normal;font-weight:700;color:#fff}
.learning-change.new{background:#16a34a}.learning-change.updated{background:#ea580c}
.official-course .course-progress{align-items:flex-start;flex-direction:column}.learning-card-actions{display:flex;gap:7px;width:100%}.learning-card-actions button,.learning-card-actions a{display:inline-flex;align-items:center;justify-content:center;flex:1;padding:7px 8px;font-size:11px;text-decoration:none}
.learning-external-note{color:var(--text-3);font-size:10.5px;line-height:1.5}.learning-exam-panel{width:min(760px,95vw);max-height:92vh}.learning-exam-question{display:grid;gap:8px;margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:11px}.learning-exam-question legend{padding:0 6px;font-weight:600}.learning-exam-question label{display:flex;gap:9px;padding:8px;border-radius:8px;background:var(--panel-2)}.learning-exam-question input{accent-color:var(--accent)}
.learning-abandon-panel{width:min(520px,calc(100vw - 28px));height:auto}.learning-abandon-body{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px 16px;align-items:start}.learning-abandon-icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(248,113,113,.28);border-radius:16px;background:linear-gradient(135deg,rgba(245,158,11,.2),rgba(239,68,68,.2));color:#fb7185;font-size:24px;font-weight:800;box-shadow:0 12px 32px rgba(239,68,68,.12)}.learning-abandon-body h3{margin:3px 0 7px;color:var(--text);font-size:17px}.learning-abandon-body p{color:var(--text-3);font-size:12.5px;line-height:1.75}.learning-abandon-body .vault-error,.learning-abandon-body .vault-actions{grid-column:1/-1}.learning-abandon-body .vault-actions{margin-top:4px}
.learning-admin-panel{width:min(1120px,96vw);max-height:92vh}.learning-admin-tabs{display:flex;gap:6px;margin-bottom:16px}.learning-admin-tabs button{padding:9px 16px;border:1px solid var(--line);border-radius:9px;color:var(--text-2)}.learning-admin-tabs button.active{color:#fff;background:var(--accent);border-color:var(--accent)}
.learning-manual-editor{margin-top:16px;border:1px solid var(--line);border-radius:12px;padding:12px 16px}.learning-manual-editor>summary{cursor:pointer;font-weight:700}.learning-manual-editor[open]>summary{margin-bottom:16px}.learning-manual-list{display:grid;gap:8px}.learning-manual-list .management-shortcut{margin:0;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.learning-manual-list .management-shortcut div{min-width:0}.learning-manual-list .management-shortcut small{display:block}.learning-manual-editor .vault-form{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.learning-manual-editor .vault-wide{grid-column:1/-1}@media(max-width:700px){.learning-manual-editor .vault-form{grid-template-columns:1fr}.learning-manual-list .management-shortcut{align-items:flex-start;flex-direction:column}}
.learning-admin-head-actions,.learning-manual-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.learning-manual-actions{justify-content:flex-end;flex-shrink:0}.learning-manual-actions button{white-space:nowrap}.learning-manual-editor .vault-actions{justify-content:flex-end}.learn-banner #learningFeaturedWatch{margin-top:20px}.learn-banner #learningFeaturedTitle{max-width:760px;overflow:hidden;text-overflow:ellipsis}.learn-banner #learningFeaturedDescription{max-width:760px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:700px){.learning-admin-head-actions .btn-primary{padding:8px 10px}.learning-manual-actions{justify-content:flex-start}}
.learning-category-manager{margin-bottom:14px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.learning-category-manager>summary{cursor:pointer;font-weight:700}.learning-category-toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:13px}.learning-category-toolbar label{display:grid;gap:5px;min-width:190px;color:var(--text-2);font-size:11px}.learning-category-toolbar input,.learning-category-toolbar select{min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel)}.learning-category-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:10px}.learning-category-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.learning-category-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.learning-category-row>input{min-width:0;flex:1;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel-2)}.learning-category-row>div{display:flex;gap:5px;flex:0 0 auto}.learning-category-row button{padding:6px 9px;font-size:11px}.learning-subcategory-tabs{margin-top:-10px;margin-bottom:16px}.learning-subcategory-tabs[hidden]{display:none!important}.learning-recognize-actions{display:flex;align-items:center;gap:10px;margin-top:8px}.learning-recognize-actions small{color:var(--text-3)}
.learning-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.learning-source-list article{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2)}.learning-source-list header,.learning-source-list footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.learning-source-list h3{margin:0 0 3px;font-size:16px}.learning-source-list p{margin:0;color:var(--text-3);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.learning-source-list header em{padding:4px 8px;border-radius:999px;background:var(--panel);font-size:10px;font-style:normal}.learning-source-list .tone-healthy{color:var(--green)}.learning-source-list .tone-failed,.learning-source-list .tone-degraded{color:#fb923c}.learning-source-list .tone-auth_required{color:#facc15}.learning-source-list dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:10px;border-radius:9px;background:var(--panel)}.learning-source-list dl div{display:grid;gap:3px}.learning-source-list dt{font-size:10px;color:var(--text-3)}.learning-source-list dd{margin:0;font-size:12px}.learning-source-list footer{justify-content:flex-start;flex-wrap:wrap}.learning-source-list footer label{margin-left:auto;font-size:12px}.learning-source-error{padding:8px;border-radius:8px;background:rgba(239,68,68,.08);color:#f87171;font-size:11px}
.learning-log-table{overflow:auto}.learning-log-table table{width:100%;border-collapse:collapse;font-size:12px}.learning-log-table th,.learning-log-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.learning-log-table td:last-child{white-space:normal;min-width:180px}.learning-log-table small{display:block;margin-top:3px;color:#f87171}
@media(max-width:760px){.learning-source-list{grid-template-columns:1fr}.learning-card-actions{flex-direction:column}}
.learning-source-list footer select{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel)}
.learning-source-credentials{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.learning-source-credentials label{display:grid;gap:5px;font-size:11px;color:var(--text-3)}.learning-source-credentials input{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text)}.learning-source-credentials div,.learning-source-credentials small{grid-column:1/-1}.learning-source-credentials small{color:var(--text-3);line-height:1.5}.learning-source-credentials a.btn-ghost{display:inline-flex;text-decoration:none}
.learning-source-feedback{padding:10px 12px;border:1px solid rgba(245,158,11,.35);border-radius:9px;background:rgba(245,158,11,.08);color:var(--text);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.learning-source-list article{align-content:start}.learning-source-list article details{min-width:0}.learning-source-list article details>summary{cursor:pointer;color:var(--text-2);font-size:12px;list-style-position:inside}.learning-source-list article details[open]{display:grid;gap:12px}.learning-source-list article details>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:760px){.learning-source-credentials{grid-template-columns:1fr}}

/* ================= 悬浮按钮 ================= */
.help-fab{
  position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;
  background:var(--panel);border:1px solid var(--line);color:var(--text-2);
  font-size:16px;font-weight:600;display:grid;place-items:center;
  box-shadow:0 10px 28px rgba(0,0,0,.50);z-index:50;
  transition:color var(--t-mid), border-color var(--t-mid), transform var(--t-mid), box-shadow var(--t-mid);
}
.help-fab:hover{color:#c4b5fd;border-color:#4a3a8f;transform:translateY(-3px) scale(1.06);box-shadow:0 14px 32px rgba(0,0,0,.55), 0 0 25px rgba(124,92,255,.35)}

/* ================= 响应式 ================= */
@media (max-width:1440px){
  .module-grid{grid-template-columns:repeat(3,1fr)}
  .course-grid{grid-template-columns:repeat(3,1fr)}
  .banner-art{right:30px;font-size:118px}
}
@media (max-width:1200px){
  .kpi-grid{grid-template-columns:repeat(3,1fr)}
  .module-grid{grid-template-columns:repeat(2,1fr)}
  .course-grid{grid-template-columns:repeat(2,1fr)}
  .top-search{width:180px}
}
@media (max-width:900px){
  .sidebar{display:none}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .module-grid{grid-template-columns:1fr}
  .course-grid{grid-template-columns:1fr}
  .chat-side{display:none}
  .wrap{padding:18px}
  .app{padding:8px;gap:8px}
  .settings-drawer{top:8px;left:8px;bottom:8px}
}

/* ==========================================================
   浅色主题 · body.theme-light
   ========================================================== */
body.theme-light{
  /* sealseek AI 对话 / 数据洞察页实测：
     外壳 #e9e9f2 / 面板 #ffffff / 选中态底 #f3f1fe / hover 底 #f6f4fc */
  --shell:#e9e9f2;
  --panel-main:#ffffff;
  --bg:#ffffff;
  --bg-side:#ffffff;
  --panel:#ffffff;
  --panel-2:#fcfafd;
  --panel-3:#f3f1fe;
  --panel-hover:#f6f4fc;
  --cell-hover:rgba(15,23,42,.045);  /* 表格里可编辑格子的悬停提亮（中性，不走紫）*/
  --line:#e8e8ef;
  --line-soft:#eef0f4;
  --line-hi:rgba(15,23,42,.16);
  /* 冷灰文字体系（slate 家族）——比原来的紫黑更清晰、更接近参考站 */
  --text:#121723;
  --text-2:#424b58;
  /* 小字专用：参考站的 #8e8e8e 只用于大号副标题，
     11–12px 的说明文字直接用它对比度只有 3.28，会「看不清」，
     这里改用 #6b7280（白底 4.75:1），大号次要文字另用 --text-4 */
  --text-3:#6b7280;
  --text-4:#8e8e8e;
  --accent:#7133ea;
  --accent-2:#a21caf;
  --accent-soft:rgba(113,51,234,.10);
  --nav-active:#7133ea;
  --glow-white:0 0 25px rgba(113,51,234,.20);
  --glow-white-soft:0 0 25px rgba(113,51,234,.10);
  --shadow-card:0 4px 16px rgba(15,23,42,.06), 0 1px 2px rgba(15,23,42,.04);
  --shadow-hover:0 14px 32px rgba(15,23,42,.14), 0 0 20px rgba(113,51,234,.08);
  --shadow-pop:0 12px 28px rgba(113,51,234,.20);
}
body.theme-light .topbar{background:transparent;border-bottom-color:transparent}
body.theme-light .main.scrolled .topbar{background:rgba(255,255,255,.75);border-bottom-color:#ececf4}
body.theme-light .brand-logo{box-shadow:0 6px 16px rgba(113,51,234,.30)}
body.theme-light .nav-item:hover{background:var(--panel-2);color:var(--text)}
body.theme-light .icon-btn:hover{background:var(--panel-2);border-color:var(--line);color:var(--text)}
body.theme-light .tbl th{background:#f7f7fc}
body.theme-light .tbl tbody tr:hover{background:var(--panel-2)}
body.theme-light .kpi-label em{background:#f0f0f7;color:#5b6472}
body.theme-light .kpi-bar{background:#ececf4}
body.theme-light .bar{background:#ececf4}
body.theme-light .side-credit-bar{background:#ececf4}
body.theme-light .avatar{background:linear-gradient(135deg,#ddd8f5,#b9b0e8);color:#4a3a8f}
body.theme-light .top-avatar{background:linear-gradient(135deg,#c9befa,#9d8bf0);color:#3a2a70}
body.theme-light .msg.user .msg-av{background:linear-gradient(135deg,#c9befa,#9d8bf0);color:#3a2a70}
body.theme-light .learn-banner{border-color:rgba(113,51,234,.20);background:radial-gradient(1200px 400px at 85% 45%,rgba(37,99,235,.45),transparent 60%),radial-gradient(900px 400px at 15% 120%,rgba(192,38,211,.30),transparent 65%),linear-gradient(120deg,#1a1545 0%,#3b1d6e 45%,#1c1450 100%)}
body.theme-light .msg.user .msg-body{background:rgba(113,51,234,.06);border-color:rgba(113,51,234,.22)}
body.theme-light .icon-btn .dot{border-color:var(--bg-side)}
body.theme-light .help-fab{background:var(--panel);box-shadow:0 8px 22px rgba(80,80,120,.18)}
body.theme-light .send-btn{background:#ececf4;color:#9a9ab0}
body.theme-light .soon-ico{background:linear-gradient(135deg,rgba(113,51,234,.16),rgba(192,38,211,.10));border-color:rgba(113,51,234,.24)}
body.theme-light .drawer-mask{background:rgba(20,20,40,.35)}
body.theme-light .settings-drawer{box-shadow:20px 0 40px rgba(80,80,120,.18)}
body.theme-light .ios-switch{background:#d4d4de}
body.theme-light .theme-switch{background:#ececf4;box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}
body.theme-light .theme-switch .pill{box-shadow:0 6px 16px rgba(113,51,234,.30)}
body.theme-light .drawer-foot{background:#ffffff}

/* ---- 浅色下的可读性覆盖：把深色底上的浅色文字换成深色 ---- */
body.theme-light .nav-badge{color:#7133ea;background:rgba(113,51,234,.12)}
body.theme-light .side-user-name em{color:#b45309;background:rgba(180,83,9,.12)}
body.theme-light .account-info .role em{color:#b45309;background:rgba(180,83,9,.12)}
body.theme-light .kpi-label em.warn{color:#dc2626;background:rgba(220,38,38,.10)}
body.theme-light .pri-urgent{color:#b91c1c;font-weight:600}
body.theme-light .pri-high{color:#dc2626}
body.theme-light .pri-mid{color:#b45309}
body.theme-light .pri-low{color:#64748b}
body.theme-light .pri-none{color:#9ca3af}
body.theme-light .pill-doing{background:rgba(113,51,234,.12);color:#7133ea}
body.theme-light .pill-done{background:rgba(22,163,74,.12);color:#15803d}
body.theme-light .pill-todo{background:rgba(100,116,139,.12);color:#475569}
body.theme-light .pill-late{background:rgba(220,38,38,.10);color:#dc2626}
body.theme-light .pill-blocked{background:rgba(217,119,6,.12);color:#b45309}
/* 亮色主题下选中卡片的数字不能用白色，会糊在浅底上 */
body.theme-light .kpi-card[data-kpi-status].is-active .kpi-val{color:var(--text)}
body.theme-light .kpi-card[data-kpi-status="blocked"].is-active{border-color:#d97706;background:linear-gradient(180deg,rgba(245,158,11,.16),transparent 62%),var(--panel)}
body.theme-light .kpi-foot.up b{color:#15803d}
body.theme-light .kpi-foot.down b{color:#dc2626}
body.theme-light .course-progress .label.done{color:#15803d}
body.theme-light .learn-badge b{color:#7c3aed}
body.theme-light .soon-ico{color:#7133ea}
body.theme-light .status-tabs .cnt{background:rgba(113,51,234,.12);color:#7133ea}
/* 彩色图标块：浅色底下把 400 号亮色压到 600/700 号深色，保证白底可读 */
body.theme-light .c-green{color:#15803d}
body.theme-light .c-red{color:#dc2626}
body.theme-light .c-cyan{color:#0e7490}
body.theme-light .c-amber{color:#92400e}
body.theme-light .c-indigo{color:#4338ca}
body.theme-light .c-teal{color:#0f766e}
body.theme-light .c-violet{color:#7e22ce}
body.theme-light .c-orange{color:#c2410c}
body.theme-light .c-blue{color:#1d4ed8}
body.theme-light .c-purple{color:#6d28d9}
body.theme-light .c-pink{color:#be185d}
body.theme-light .c-slate{color:#475569}
body.theme-light .star:hover,body.theme-light .star.on{color:#d97706}
body.theme-light .dot-i{background:#7c3aed}

/* hover 时的「变白」统一改成「变深」 */
body.theme-light .nav-item:hover{color:var(--text)}
body.theme-light .seg button:hover{color:var(--text)}
body.theme-light .tabs button:hover{color:var(--text)}
body.theme-light .status-tabs button:hover{color:var(--text)}
body.theme-light .cate-tabs button:hover{color:var(--text)}

/* 智学中心：稳定分行并保持管理入口和平台配置可读 */
@media(min-width:1101px){.management-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:701px) and (max-width:1100px){.management-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.learning-subcategory-tabs{clear:both;margin-top:12px;margin-bottom:18px;padding-top:2px}
.learning-admin-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.learning-admin-tabs button{flex:0 0 auto;white-space:nowrap}
.learning-admin-pane[hidden]{display:none!important}
.learning-official-manager{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.learning-official-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.learning-official-head h3{margin:0;font-size:15px}
.learning-official-list{display:grid;gap:7px;max-height:360px;overflow:auto}.learning-official-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.learning-official-row b,.learning-official-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learning-official-row small{margin-top:3px;color:var(--text-3)}
.learning-source-row{grid-template-columns:minmax(0,1fr) auto!important}.learning-source-row .learning-manual-actions{max-width:310px}.learning-source-row .learning-manual-actions button{min-width:82px}.learning-source-row input[type=url]{width:100%;min-width:0}
.learning-source-url-editor{padding:11px 12px;border:1px solid rgba(139,92,246,.42);border-radius:10px;background:rgba(124,58,237,.06)}.learning-source-url-editor span{display:flex;align-items:center;gap:7px;color:var(--text);font-weight:600}.learning-source-url-editor span em{padding:2px 6px;border-radius:999px;background:rgba(139,92,246,.18);color:#c4b5fd;font-size:9px;font-style:normal}.learning-source-url-editor input{margin-top:1px;background:var(--panel)!important}.learning-source-url-editor small{color:var(--text-3)!important;font-size:10.5px!important}
.learning-admin-panel>.vault-body{min-height:650px}.learning-category-manager:has(#learningSourceList){width:100%}.learning-category-manager:has(#learningSourceList) .learning-category-list{grid-template-columns:minmax(0,1fr)}.learning-source-row{width:100%;align-items:center}.learning-source-row>div:first-child{min-width:0}.learning-source-row>div:first-child label{display:grid;gap:6px;margin-top:12px}.learning-source-row .learning-manual-actions{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));width:min(100%,300px);max-width:none}.learning-source-row .source-toggle{grid-column:1/-1}.learning-source-row .learning-manual-actions select{min-height:38px}
.learning-course-editor-panel,.learning-course-config-panel{width:min(900px,96vw);max-height:92vh}.learning-course-editor-panel .learning-manual-editor{margin:0;border:0;padding:0}.learning-official-course-button{min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.learning-official-course-button:hover b{color:var(--accent-soft)}

/* 课程管理各 Tab 使用同一视口和统一字号，避免切换时跳高或文字忽大忽小 */
.learning-admin-panel{height:min(900px,92vh);display:flex;flex-direction:column;overflow:hidden}
.learning-admin-panel>.vault-head{flex:0 0 auto}
.learning-admin-panel>.vault-body{flex:1 1 auto;height:auto;min-height:0;max-height:none;overflow-y:auto;scrollbar-gutter:stable;padding-bottom:24px;font-size:13px}
.learning-admin-panel .learning-admin-tabs{position:sticky;top:0;z-index:5;margin:-1px 0 16px;padding:1px 0 10px;background:var(--panel)}
.learning-admin-panel .learning-admin-tabs button{min-height:40px;padding:9px 15px;font-size:13px;line-height:20px}
.learning-admin-panel .learning-category-manager,.learning-admin-panel .learning-official-manager,.learning-admin-panel .learning-manual-list,.learning-admin-panel .module-empty{font-size:13px}
.learning-admin-panel .learning-category-manager>summary,.learning-admin-panel .learning-official-head h3,.learning-admin-panel .learning-manual-list b,.learning-admin-panel .learning-official-row b{font-size:14px;line-height:1.5;font-weight:650}
.learning-official-toggles{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.learning-official-toggles label{white-space:nowrap}.learning-official-course-button{cursor:default}
.learning-admin-panel label,.learning-admin-panel .source-toggle,.learning-admin-panel .learning-official-row label{font-size:12px;line-height:1.5}
.learning-admin-panel input,.learning-admin-panel select,.learning-admin-panel textarea,.learning-admin-panel button{font-size:13px;line-height:1.4}
.learning-admin-panel small,.learning-admin-panel .vault-hint,.learning-admin-panel .learning-official-row small,.learning-admin-panel .management-shortcut small{font-size:12px;line-height:1.55}
.learning-admin-panel .module-empty{min-height:112px;display:grid;place-items:center;padding:24px;line-height:1.7}
.learning-official-course-button{color:var(--text)}.learning-official-course-button:focus,.learning-official-course-button:focus-visible{color:var(--text);outline:2px solid var(--accent);outline-offset:3px}
@media(max-height:760px){.learning-admin-panel{height:94vh}}
@media(max-width:760px){.learning-official-row{grid-template-columns:1fr}.learning-source-row{grid-template-columns:1fr!important}.learning-source-row .learning-manual-actions{max-width:none;justify-content:flex-start}}
body.theme-light .chat-item:hover{color:var(--text)}
body.theme-light .chat-group:hover{color:var(--text)}
body.theme-light .tool-btn:hover{color:var(--text)}
body.theme-light .learn-more:hover{color:var(--text)}
body.theme-light .btn-ghost:hover{color:var(--text)}
body.theme-light .drawer-head .back-btn:hover{color:var(--text)}
body.theme-light .drawer-close:hover{color:var(--text)}
body.theme-light .quick-prompts button:hover{color:#7133ea;border-color:rgba(113,51,234,.40);background:rgba(113,51,234,.06)}
body.theme-light .set-item:hover .arrow{color:#7c3aed}
body.theme-light .help-fab:hover{color:#7133ea;border-color:rgba(113,51,234,.40)}
body.theme-light .top-search:hover{border-color:rgba(20,20,50,.22)}
body.theme-light .chat-search:hover{border-color:rgba(20,20,50,.22)}
body.theme-light .chip-search:hover{border-color:rgba(20,20,50,.22)}
body.theme-light .composer:hover{border-color:rgba(20,20,50,.20)}
body.theme-light .btn-logout:hover{color:#dc2626;border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.06)}

/* ==========================================================
   设置抽屉 + 主题切换
   ========================================================== */
.drawer-mask{
  position:fixed;inset:0;background:rgba(5,5,10,.55);backdrop-filter:blur(2px);
  opacity:0;pointer-events:none;transition:opacity var(--t-mid);z-index:90;
}
.drawer-mask.on{opacity:1;pointer-events:auto}

/* ===== 设置面板：中央 modal（覆盖旧侧边滑入样式） ===== */
.settings-drawer{
  /* 容器改由 .vault-modal 提供 fixed/grid 居中 */
  position:static !important;
  inset:auto !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important;
  width:auto !important;max-width:none !important;
  background:transparent !important;border:0 !important;border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;transition:none !important;
  z-index:auto !important;
  display:block !important;flex-direction:initial !important;overflow:visible !important;
  padding:0 !important;
}
.settings-drawer.on{transform:none !important}
.settings-modal .settings-panel{
  width:min(1080px,100%);max-height:min(88vh,880px);
  display:flex;flex-direction:column;overflow:hidden;
}
/* 面板加宽后标题区跟着放宽，和下面 body 的 28px 内缩对齐 */
.settings-modal .vault-head{padding:24px 28px}
/* 宽版网格：主题通栏；偏好 / 隐私各占半行；管理员三入口并排一行 */
.settings-modal .settings-body{
  padding:22px 28px 24px;
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  gap:17px 18px;align-content:start;
}
/* 主题外观：标题在左、切换条在右，压成一行，避免切换条被拉满整行 */
.settings-modal .settings-body>.theme-block{
  grid-column:1/-1;margin-bottom:0;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:17px 20px;
}
.settings-modal .theme-block-head{margin-bottom:0;flex:1 1 auto;min-width:0}
.settings-modal .theme-block .theme-switch{flex:0 0 320px;width:320px}
.settings-modal .theme-accent-control{display:grid;grid-template-columns:1fr;gap:8px;flex:1 0 100%;min-width:0;padding-top:2px}
.settings-modal .theme-accent-heading{display:flex;align-items:baseline;gap:9px;min-width:0}
.settings-modal .theme-accent-heading span{font-size:12px;font-weight:600}
.settings-modal .theme-accent-heading small{font-size:10.5px;color:var(--text-3);line-height:1.35}
.settings-modal .theme-accent-options{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.settings-modal .theme-color-choice{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--text-2);font-size:10.5px;cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.settings-modal .theme-color-choice i{display:block;width:23px;height:23px;flex:0 0 23px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 1px 4px rgba(0,0,0,.24)}
.settings-modal .theme-color-choice:hover{transform:scale(1.08)}
.settings-modal .theme-color-choice:hover,.settings-modal .theme-color-choice.active{border-color:var(--accent);background:var(--accent-soft)}
.settings-modal .theme-color-choice.active{box-shadow:0 0 0 1px var(--accent)}
.settings-modal .theme-color-choice.theme-custom-choice{width:auto;min-width:90px;margin-left:4px;padding:0 10px;border-color:var(--line);border-radius:999px;background:var(--bg)}
.settings-modal .theme-color-choice.theme-custom-choice.active{border-color:var(--accent);background:var(--accent-soft)}
.settings-modal .theme-color-choice.theme-custom-choice i{background:var(--swatch)}
.settings-modal #themeAccentColor{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}
.settings-modal .theme-accent-options output{min-width:62px;margin-left:2px;color:var(--text-2);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}
.settings-modal .theme-accent-options .theme-accent-reset{padding:6px 8px;font-size:10px;white-space:nowrap}
.settings-modal .settings-body>.set-group{grid-column:span 3;margin-top:0;min-width:0}
/* 管理员入口：标题与按钮同行，三个并排占满一行 */
.settings-modal .settings-body>.set-group.set-inline{
  grid-column:span 2;
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding:10px 13px;border:1px solid var(--line-soft);border-radius:var(--r-card);
  background:var(--panel-2);
}
.settings-modal .settings-body>.set-group.set-inline[hidden]{display:none!important}
.settings-modal .settings-body>.set-group.set-inline .set-group-title{margin-bottom:0;padding:0}
.settings-modal .settings-body>.set-group.set-inline .vault-manage{width:auto;margin-top:0;padding:8px 14px;font-size:12.5px}
/* 员工进来时只有「我的业务账号」一个 inline 区，通栏铺满一行，别在网格里留半屏空 */
.settings-modal .settings-body:not(.settings-admin-view)>.set-group.set-inline{grid-column:1/-1}
/* 底部操作栏：不参与收缩，永远贴在面板最后一格 */
.settings-modal .settings-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex:0 0 auto;
  padding:17px 28px;border-top:1px solid var(--line);
  background:var(--panel-2);
}
.settings-modal .settings-foot-hint{font-size:11.5px;color:var(--muted)}
@media (max-width:840px){
  .settings-modal .settings-body{grid-template-columns:1fr}
  .settings-modal .settings-body>.theme-block,
  .settings-modal .settings-body>.set-group,
  .settings-modal .settings-body>.set-group.set-inline{grid-column:1/-1}
  .settings-modal .settings-body>.theme-block{flex-direction:column;align-items:stretch;gap:12px}
  .settings-modal .settings-body>.theme-block .theme-switch{flex:1 1 auto;width:auto}
  .settings-modal .theme-accent-control{width:100%;min-width:0}
  .settings-modal .settings-foot{flex-direction:column;align-items:flex-start;gap:6px}
  .settings-modal .settings-body>.set-group.set-inline{flex-direction:column;align-items:flex-start;gap:8px}
}

.drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px 14px;border-bottom:1px solid var(--line-soft);
}
.drawer-head h3{font-size:16px;font-weight:600;letter-spacing:.3px}
.drawer-head .back-btn{
  font-size:12.5px;color:var(--text-2);
  padding:6px 12px;border-radius:var(--r-pill);background:var(--panel-2);border:1px solid var(--line-soft);
  display:inline-flex;align-items:center;gap:5px;
  transition:color var(--t-mid), border-color var(--t-mid), transform var(--t-mid);
}
.drawer-head .back-btn:hover{color:#fff;border-color:var(--line-hi);transform:translateX(-2px)}
.drawer-close{
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  color:var(--text-2);background:var(--panel-2);border:1px solid var(--line-soft);
  transition:color var(--t-mid), background var(--t-mid), transform var(--t-mid);
}
.drawer-close:hover{color:#fff;background:var(--panel-3);transform:rotate(90deg)}

.drawer-body{flex:1;overflow-y:auto;padding:18px 22px 26px}

/* 主题外观区块（最顶部） */
.theme-block{
  background:var(--panel-2);border:1px solid var(--line-soft);
  border-radius:var(--r-card);padding:18px;margin-bottom:18px;
  box-shadow:var(--shadow-card);
}
.theme-block-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.theme-block-head .tico{
  width:34px;height:34px;border-radius:var(--r-mid);display:grid;place-items:center;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;
  box-shadow:0 6px 14px rgba(var(--accent-rgb),.30);
}
.theme-block-head h4{font-size:14px;font-weight:600}
.theme-block-head p{font-size:11.5px;color:var(--text-3);margin-top:2px}

.theme-switch{
  display:flex;align-items:center;
  background:var(--bg);border:1px solid var(--line-soft);
  border-radius:var(--r-pill);padding:4px;gap:4px;position:relative;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.04);
}
.theme-switch button{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:42px;border-radius:var(--r-pill);font-size:13px;font-weight:500;
  color:var(--text-2);transition:color var(--t-mid);position:relative;z-index:1;
}
.theme-switch button .eico{
  display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;
  background:var(--panel-2);color:var(--text-3);transition:background var(--t-mid), color var(--t-mid);
}
.theme-switch button.on{color:var(--accent-contrast,#fff)}
.theme-switch button.on .eico{background:color-mix(in srgb,var(--accent-contrast,#fff) 20%,transparent);color:var(--accent-contrast,#fff)}
.theme-switch .pill{
  position:absolute;top:4px;bottom:4px;width:calc(50% - 4px);border-radius:var(--r-pill);
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  box-shadow:0 6px 16px rgba(var(--accent-rgb),.30);
  transition:left .32s var(--ease-out);
  z-index:0;
}
.theme-switch[data-mode="light"] .pill{left:4px}
.theme-switch[data-mode="dark"] .pill{left:50%}

/* 账户卡片 */
.account-card{
  display:flex;align-items:center;gap:14px;
  padding:16px;border-radius:var(--r-card);background:var(--panel-2);
  border:1px solid var(--line-soft);margin-bottom:18px;
  box-shadow:var(--shadow-card);
  transition:border-color var(--t-mid), transform var(--t-mid), box-shadow var(--t-mid);
}
.account-card:hover{border-color:var(--line-hi);transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.account-avatar{
  width:54px;height:54px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:grid;place-items:center;font-size:20px;color:#fff;font-weight:600;
  box-shadow:0 8px 20px rgba(124,92,255,.32);flex:0 0 54px;
}
.account-info{flex:1;min-width:0}
.account-info .nm{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}
.account-info .role{font-size:11.5px;color:var(--text-3);margin-top:4px;display:flex;align-items:center;gap:6px}
.account-info .role em{
  font-style:normal;font-size:10px;color:#fbbf24;
  background:rgba(251,191,36,.14);padding:2px 8px;border-radius:99px;
}

/* 设置分组 */
.set-group{margin-top:18px}
.set-group-title{
  font-size:11px;color:var(--text-3);letter-spacing:.6px;
  padding:0 6px;margin-bottom:10px;text-transform:uppercase;
}
.set-list{
  background:var(--panel-2);border:1px solid var(--line-soft);
  border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card);
}
.set-item{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;border-bottom:1px solid var(--line-soft);
  font-size:13.5px;color:var(--text);cursor:pointer;
  transition:background var(--t-mid), padding-left var(--t-mid);
}
.set-item:last-child{border-bottom:none}
.set-item:hover{background:var(--panel-3);padding-left:20px}
.set-item .sico{
  width:34px;height:34px;border-radius:var(--r-mid);display:grid;place-items:center;
  background:var(--panel);border:1px solid var(--line-soft);color:var(--text-2);flex:0 0 34px;
  transition:transform var(--t-mid);
}
.set-item:hover .sico{transform:scale(1.08)}
.set-item .sico.purple{background:rgba(124,92,255,.14);color:#a78bfa;border-color:rgba(124,92,255,.20)}
.set-item .sico.blue{background:rgba(59,130,246,.14);color:#60a5fa;border-color:rgba(59,130,246,.20)}
.set-item .sico.green{background:rgba(34,197,94,.14);color:#4ade80;border-color:rgba(34,197,94,.20)}
.set-item .sico.amber{background:rgba(245,158,11,.14);color:#fbbf24;border-color:rgba(245,158,11,.20)}
.set-item .sico.pink{background:rgba(236,72,153,.14);color:#f472b6;border-color:rgba(236,72,153,.20)}
.set-item .sico.cyan{background:rgba(6,182,212,.14);color:#22d3ee;border-color:rgba(6,182,212,.20)}
.set-item-body{flex:1;min-width:0}
.set-item-body .t{font-size:13.5px}
.set-item-body .d{font-size:11.5px;color:var(--text-3);margin-top:2px}
.set-item .arrow{color:var(--text-3);font-size:18px;transition:transform var(--t-mid), color var(--t-mid)}
.set-item:hover .arrow{color:#c4b5fd;transform:translateX(3px)}

/* iOS 风格开关 */
.ios-switch{
  position:relative;width:42px;height:24px;border-radius:99px;
  background:#3a3a4d;cursor:pointer;flex:0 0 42px;
  transition:background var(--t-mid);
}
.ios-switch.on{background:linear-gradient(135deg,var(--accent),var(--accent-2))}
.ios-switch::after{
  content:"";position:absolute;top:2px;left:2px;
  width:20px;height:20px;border-radius:50%;background:#fff;
  box-shadow:0 2px 4px rgba(0,0,0,.2);
  transition:left var(--t-mid) , transform var(--t-mid);
}
.ios-switch.on::after{left:20px}
.notification-preferences-panel{width:min(720px,calc(100vw - 32px))}
.notification-preferences-body{display:grid;gap:14px}
.notification-policy-note,.notification-agent-tip{padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--accent-soft);color:var(--text-2);font-size:11.5px;line-height:1.65}
.notification-preference-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.notification-preference-grid>label{display:grid;gap:7px;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);font-size:12px}
.notification-preference-grid select{height:38px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text)}
.notification-preference-grid .notification-check{display:flex;align-items:center;gap:9px}
.notification-preference-categories{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:14px;border:1px solid var(--line);border-radius:12px}
.notification-preference-categories legend{padding:0 6px;color:var(--text-2);font-size:11px}
.notification-preference-categories label{display:flex;align-items:center;gap:7px;padding:10px;border-radius:9px;background:var(--panel-2);font-size:11px}
.notification-preference-categories label.is-disabled{opacity:.42}
@media(max-width:700px){.notification-preference-grid{grid-template-columns:1fr}.notification-preference-categories{grid-template-columns:repeat(2,1fr)}}

.drawer-foot{
  padding:16px 22px;border-top:1px solid var(--line-soft);
  display:flex;gap:10px;background:var(--bg-side);
}
.btn-logout{
  flex:1;height:42px;border-radius:var(--r-pill);font-size:13px;
  background:var(--panel-2);border:1px solid var(--line);
  color:var(--text-2);
  transition:color var(--t-mid), border-color var(--t-mid), background var(--t-mid);
}
.btn-logout:hover{color:var(--red);border-color:rgba(248,113,113,.40);background:rgba(248,113,113,.08)}

/* ================= 轻提示 Toast ================= */
.toast{
  position:fixed!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;
  transform:translate(-50%,-50%) translateY(10px) scale(.96);
  max-width:min(520px,calc(100vw - 40px));text-align:center;
  background:#1c1c2a;border:1px solid #32324a;color:#e8e8f5;font-size:13px;
  padding:10px 20px;border-radius:var(--r-card);box-shadow:0 10px 30px rgba(0,0,0,.5);
  z-index:20000;opacity:0;pointer-events:none;
  transition:opacity var(--t-mid), transform var(--t-mid);
}
.toast.on{opacity:1;transform:translate(-50%,-50%) translateY(0) scale(1)}

/* 统一任务工作区 */
#taskWorkspaceToolbar[hidden],#taskKpis[hidden],#taskWorkspace[hidden],.task-hub-panel[hidden],.task-board[hidden],.task-swimlanes[hidden],.agent-chat-messages[hidden],.agent-chat-composer[hidden],.agent-chat-empty[hidden]{display:none!important}
#taskCompass{display:none}.task-hub-nav{display:flex;gap:4px;margin-bottom:14px;padding:4px;width:max-content;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.task-hub-nav button{padding:9px 16px;border-radius:9px;color:var(--text-2);font-size:13px}.task-hub-nav button.active{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:var(--glow-brand)}.task-hub-nav em{min-width:18px;margin-left:5px;padding:1px 5px;border-radius:9px;color:#fff;background:rgba(239,68,68,.75);font-size:10px;font-style:normal}.task-workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.task-scope-tabs,.task-view-switch{display:flex;gap:3px}.task-scope-tabs button,.task-view-switch button{padding:8px 13px;border-radius:9px;color:var(--text-2);font-size:12px}.task-scope-tabs button.active,.task-view-switch button.active{color:var(--text);background:var(--accent-soft)}.task-filter-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.task-filter-controls select,.agent-chat-create select{height:34px;padding:0 28px 0 10px;color:var(--text);border:1px solid var(--line);border-radius:9px;background:var(--panel-2)}.task-board{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}.task-board-column{min-height:350px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.task-board-column header{display:flex;justify-content:space-between;margin-bottom:10px}.task-board-column header span{color:var(--text-3);font-size:12px}.task-view-card{display:block;width:100%;margin-bottom:8px;padding:11px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--panel-2);text-align:left;cursor:pointer}.task-view-card b,.task-view-card small{display:block}.task-view-card small{margin-top:7px;color:var(--text-3)}.task-swimlanes{display:grid;gap:12px}.task-swimlane{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}.task-swimlane>header{padding:11px 14px;border-bottom:1px solid var(--line);font-weight:600}.task-swimlane-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:1px;background:var(--line)}.task-swimlane-cell{min-height:120px;padding:10px;background:var(--panel)}.task-swimlane-cell>span{display:block;margin-bottom:8px;color:var(--text-3);font-size:11px}.task-hub-panel{min-height:520px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.task-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.task-panel-head h2{font-size:18px}.task-panel-head p{margin-top:4px;color:var(--text-3);font-size:12px}.task-inbox-list{display:grid;gap:9px}.task-inbox-item{display:flex;align-items:flex-start;gap:12px;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.task-inbox-item i{width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--accent)}.task-inbox-item b,.task-inbox-item small{display:block}.task-inbox-item small{margin-top:5px;color:var(--text-3)}.agent-chat-hub{display:grid;grid-template-columns:320px 1fr;padding:0;overflow:hidden}.agent-chat-sessions{padding:18px;border-right:1px solid var(--line)}.agent-chat-create{display:flex;gap:7px;margin-bottom:12px}.agent-chat-create select{min-width:0;flex:1}.agent-session-list{display:grid;gap:7px}.agent-session{padding:11px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--panel-2);text-align:left}.agent-session.active{border-color:var(--accent);background:var(--accent-soft)}.agent-chat-room{display:flex;min-height:520px;flex-direction:column}.agent-chat-empty{display:grid;flex:1;place-items:center;color:var(--text-3)}.agent-chat-messages{flex:1;overflow:auto;padding:22px}.agent-chat-message{max-width:78%;margin-bottom:12px;padding:11px 13px;border-radius:12px;background:var(--panel-2)}.agent-chat-message.user{margin-left:auto;background:var(--accent-soft)}.agent-chat-composer{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line)}.agent-chat-composer textarea{min-height:48px;flex:1;padding:11px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--panel-2);resize:none}@media(max-width:900px){.task-workspace-toolbar{align-items:stretch;flex-direction:column}.task-filter-controls{justify-content:flex-start}.agent-chat-hub{grid-template-columns:1fr}.agent-chat-sessions{border-right:0;border-bottom:1px solid var(--line)}}
body.theme-light .toast{background:#fff;border-color:#e4e4ee;color:#1a1a2c;box-shadow:0 10px 30px rgba(80,80,120,.22)}

/* ================= 统一通知中心（左侧设置旁原小铃铛） ================= */
.msg-badge{
  position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;
  border-radius:99px;background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;font-size:10px;font-style:normal;font-weight:600;line-height:16px;text-align:center;
  box-shadow:0 0 0 2px var(--bg-side);
}
.msg-badge[hidden]{display:none}

.msg-center{
  /* 容器改由 .vault-modal 提供 fixed/grid 居中 */
  position:static !important;
  inset:auto !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important;
  width:auto !important;max-width:none !important;
  background:transparent !important;border:0 !important;border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;transition:none !important;
  z-index:auto !important;
  display:block !important;flex-direction:initial !important;overflow:visible !important;
  padding:0 !important;
}
.msg-center.on{transform:none !important}
.msg-modal .msg-panel{
  width:min(1040px,100%);height:min(88vh,760px);
  /* 高度给死值而不是 max-height：带 Tab 的弹窗切分类时内容多少不同，
     用 max-height 会跟着内容缩，弹窗一跳一跳很突兀；固定高度后列表区自己滚，
     内容少时下方留白。 */
  /* 与基类 .vault-panel 的 max-height 保持一致，避免被二次截断 */
  display:flex;flex-direction:column;overflow:hidden;
}
.msg-modal.msg-full-page .msg-panel{width:min(1120px,100%);height:min(92vh,840px)}
.msg-modal .msg-body{
  padding:0;overflow:hidden;
  display:flex;flex-direction:column;flex:1;min-height:0;
}
/* 工具条：未读数 / 分类 / 操作 合并为一行，省掉一整行高度 */
.msg-toolbar{
  display:flex;align-items:center;gap:14px;flex:0 0 auto;
  padding:12px 22px;border-bottom:1px solid var(--line-soft);
}
/* 消息列表：一列一条，长正文一行读到底；容器加高后靠垂直滚动看更多。
   flex:1 + min-height:0 —— 高度吃掉弹窗剩余空间，Tab 切换不影响弹窗总高 */
.msg-modal .msg-list{
  padding:14px 22px 18px;
  display:flex;flex-direction:column;gap:9px;
  flex:1 1 auto;min-height:0;overflow-y:auto;
}
.msg-modal .msg-foot{flex:0 0 auto;padding:10px 22px;border-top:1px solid var(--line-soft);font-size:11px;color:var(--text-4)}
@media (max-width:760px){
  .msg-toolbar{flex-wrap:wrap;gap:10px}
}

.msg-overview-num{display:flex;align-items:baseline;gap:6px;flex:0 0 auto}
.msg-overview-num b{font-size:22px;font-weight:600;line-height:1}
.msg-overview-num span{font-size:12px;color:var(--text-3);white-space:nowrap}
.msg-overview-actions{display:flex;gap:6px;flex:0 0 auto}

.msg-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:0;border-bottom:0;flex:1 1 auto;min-width:0}
.msg-tabs button{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12.5px;color:var(--text-2);padding:6px 11px;border-radius:var(--r-pill);
  background:var(--panel-2);border:1px solid var(--line-soft);
  transition:color var(--t-mid), background var(--t-mid), border-color var(--t-mid);
}
.msg-tabs button:hover{color:var(--text);border-color:var(--line-hi)}
.msg-tabs button.active{color:var(--text);background:var(--accent-soft);border-color:rgba(124,92,255,.42)}
.msg-tabs button em{font-style:normal;font-size:11px;color:var(--text-3)}
.msg-tabs button.active em{color:var(--nav-active)}

.msg-list{flex:1;overflow-y:auto;padding:14px 18px 20px;display:flex;flex-direction:column;gap:8px}
.msg-item{
  display:flex;gap:8px;padding:9px 12px;border-radius:var(--r-card);
  background:var(--panel-2);border:1px solid var(--line-soft);cursor:pointer;
  transition:background var(--t-mid), border-color var(--t-mid), transform var(--t-mid);
}
.msg-item:hover{background:var(--panel-hover);border-color:var(--line-hi);transform:translateY(-1px)}
.msg-item.read .msg-title b{color:var(--text-2);font-weight:500}
.msg-body{flex:1;min-width:0}
.msg-title{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.msg-title b{font-size:13px;font-weight:600}
.msg-body p{margin:3px 0 0;font-size:12.5px;color:var(--text-2);line-height:1.45;word-break:break-word}
.msg-body small{display:block;margin-top:4px;font-size:11px;color:var(--text-4)}

.msg-tag{
  box-sizing:border-box;height:20px;padding:0 7px;margin-top:1px;
  display:inline-flex;align-items:center;
  font-style:normal;font-size:10.5px;line-height:1;
  border-radius:99px;border:1px solid transparent;white-space:nowrap;
}
.msg-tag.task{color:var(--nav-active);background:var(--accent-soft);border-color:rgba(124,92,255,.40)}
.msg-tag.agent{color:#c084fc;background:rgba(192,132,252,.14);border-color:rgba(192,132,252,.36)}
.msg-tag.system{color:#38bdf8;background:rgba(56,189,248,.14);border-color:rgba(56,189,248,.32)}
body.theme-light .msg-tag.agent{color:#7e22ce}
body.theme-light .msg-tag.system{color:#0369a1}
.msg-read-state{width:20px;height:20px;display:inline-grid;place-items:center;flex:0 0 20px;border-radius:50%;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(124,92,255,.38)}
.msg-read-state svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.msg-read-state.is-unread svg{fill:currentColor;stroke:none}
.msg-read-state.is-read{color:var(--text-4);background:transparent;border-color:var(--line)}

.msg-foot{padding:11px 22px;border-top:1px solid var(--line-soft);font-size:11px;color:var(--text-4);display:flex;align-items:center;justify-content:space-between;gap:12px}
.msg-actions{display:flex;gap:8px;margin-top:10px}.msg-actions .btn-primary{padding:7px 12px;font-size:12px}
.msg-tag.business{color:#b45309;background:#fffbeb}.msg-tag.ai{color:#6d28d9;background:#f5f3ff}.msg-tag.learning{color:#047857;background:#ecfdf5}

@media (max-width:640px){
  .msg-modal .msg-panel{width:calc(100vw - 16px);height:calc(100vh - 16px)}.msg-modal.msg-full-page .msg-panel{width:calc(100vw - 16px);height:calc(100vh - 16px)}
  .msg-toolbar,.msg-foot{padding-left:16px;padding-right:16px}
  .msg-list{padding:12px 12px 16px}
}

/* ==========================================================
   AI 智能体 · 版式参考原「AI 创作」页
   左侧会话列表 + 右侧内容区；右侧容器内输入框垂直居中的规则
   统一收敛到本文件末尾（避免与下方 v2 样式块重复、冲突）
   ========================================================== */

/* ==========================================================
   AI 智能体 v2（接入 Multica）
   - 顶 head bar（智能体头像 / 名称 / 副标题 / 刷新）
   - 中 body（默认 hero+slogan + 建议提问，进入会话后切换为消息列表）
   - 底 composer（输入框）
   - 左会话列表增加 agent 头像 / 置顶 / 未读 / 更多按钮 / 右键菜单
   ========================================================== */

/* 容器：改用纵向 flex，原来的 justify-content:center 已废弃 */
.agent-room{
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  padding:0;
  overflow:hidden;
  gap:0;
}

/* ===== 顶 head bar ===== */
.agent-chat-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 28px;
  border-bottom:1px solid var(--line-soft);
  background:var(--panel);
}
.agent-chat-head[hidden]{display:none!important}
.agent-chat-head-avatar{
  width:38px;height:38px;border-radius:50%;
  background:var(--panel-2);border:1px solid var(--line);
  display:grid;place-items:center;overflow:hidden;flex:0 0 auto;
}
.agent-chat-head-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.agent-chat-head-body b{
  display:block;font-size:14.5px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.agent-chat-head-body small{
  display:block;font-size:11.5px;color:var(--text-3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.agent-chat-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}

/* ===== 中 body（hero / prompts / 消息列表 共用容器） ===== */
.agent-chat-body{
  flex:1 1 auto;
  min-height:0;
  display:flex;flex-direction:column;
  overflow-y:auto;
  padding:0;
}

/* 启动状态：slogan + 建议提问 */
.agent-chat-empty{
  display:flex;flex-direction:column;align-items:center;
  margin:auto;width:100%;max-width:820px;
  padding:48px 32px 28px;
  text-align:center;
}
.agent-chat-empty[hidden]{display:none!important}
.agent-chat-empty .chat-hero{
  margin-top:0;padding-top:24px;
}
.agent-chat-empty .chat-hero .grad{
  background:linear-gradient(120deg,var(--accent),#22d3ee 60%,#a78bfa);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* 建议提问 */
.agent-prompt-head{
  width:100%;text-align:left;
  font-size:12px;color:var(--text-3);
  letter-spacing:.4px;margin:18px 0 10px;
}
.agent-prompt-head b{color:var(--text);font-weight:600;margin:0 2px}
.agent-prompt-head span{display:block;font-size:11px;color:var(--text-4);margin-top:2px}
.quick-prompts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;width:100%;
}
.quick-prompts:empty{display:none}
.quick-prompts button{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 14px;
  border:1px solid var(--line-soft);border-radius:13px;
  background:var(--panel-2);
  color:var(--text-2);font-size:12.5px;line-height:1.55;
  cursor:pointer;text-align:left;
  transition:background var(--t-mid), border-color var(--t-mid), transform var(--t-mid), color var(--t-mid);
}
.quick-prompts button:hover{
  background:var(--panel-hover);
  border-color:var(--line-hi);
  color:var(--text);
  transform:translateY(-1px);
}
.quick-prompts button::before{
  content:'';
  flex:0 0 auto;width:6px;height:6px;border-radius:50%;
  margin-top:7px;
  background:linear-gradient(135deg,var(--accent),#22d3ee);
  box-shadow:0 0 0 4px rgba(124,92,255,.10);
}

/* ===== 消息列表 ===== */
.agent-chat-messages{
  flex:1 1 auto;min-height:0;width:100%;max-width:820px;margin:0 auto;
  padding:24px 28px 12px;overflow-y:auto;
}
.agent-chat-messages[hidden]{display:none!important}
.agent-chat-message{
  display:flex;flex-direction:column;gap:6px;
  max-width:78%;margin-bottom:14px;
  padding:12px 15px;
  font-size:13.5px;line-height:1.7;
  color:var(--text);
  background:var(--panel);
  border:1px solid var(--line-soft);
  border-radius:14px;
  word-break:break-word;
}
.agent-chat-message.user{
  margin-left:auto;
  background:linear-gradient(135deg,rgba(124,92,255,.18),rgba(34,211,238,.10));
  border-color:rgba(124,92,255,.30);
}
.agent-chat-message.agent{
  margin-right:auto;
}
.agent-chat-who{
  font-size:11.5px;font-weight:600;color:var(--text-3);
  letter-spacing:.2px;
}
.agent-chat-message.user .agent-chat-who{color:rgba(124,92,255,.85)}
.agent-chat-text{font-size:13.5px;line-height:1.75;white-space:pre-wrap}
.agent-chat-text b{font-weight:600;color:var(--text)}
.agent-chat-text .chat-gap{display:block;height:.7em}

/* 智能体推荐 follow-up chips */
.agent-chat-actions{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;
}
.agent-action-chip{
  font-size:11.5px;line-height:1;
  padding:7px 11px;border-radius:99px;
  background:var(--panel-2);border:1px solid var(--line-soft);
  color:var(--text-2);cursor:pointer;
  transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}
.agent-action-chip:hover{
  background:var(--panel-hover);border-color:var(--line-hi);color:var(--text);
}
.agent-followup-list{margin-top:2px;padding-left:18px}
.agent-followup-list li{margin:3px 0}
.agent-followup-link{
  padding:0;color:#8b7cff;background:none;border:0;
  font:inherit;line-height:inherit;text-align:left;text-decoration:underline;
  text-decoration-color:rgba(139,124,255,.45);text-underline-offset:3px;cursor:pointer;
}
.agent-followup-link:hover{color:#a99cff;text-decoration-color:currentColor}
.agent-followup-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}

/* 加载中 placeholder */
.agent-chat-message.agent.pending{
  opacity:.7;
}
.agent-chat-message.agent.pending .agent-chat-text::after{
  content:'';
  display:inline-block;width:6px;height:6px;
  margin-left:6px;border-radius:50%;
  background:var(--text-3);
  animation:typingDot 1.2s infinite ease-in-out;
}
@keyframes typingDot{
  0%,100%{transform:translateY(0);opacity:.35}
  50%{transform:translateY(-3px);opacity:1}
}

/* 消息元信息（时间） */
.agent-chat-meta{
  font-size:10.5px;color:var(--text-4);margin-top:2px;
}
.agent-chat-message.user .agent-chat-meta{text-align:right}

/* ===== 底 composer ===== */
/* 宽度 / 内外边距都归文件末尾的「AI 智能体 v5」那条内容列管，
   这里只锁死「不吃伸缩、不参与整组居中时的压缩」这一件事。
   （原先这里还写着 width:100% + padding:10px 40px 22px —— 通栏加 40px 框内留白
     就是用户说的「散架」的源头之一，已删掉，避免以后有人照着它改回来。） */
.agent-composer{flex:0 0 auto}

/* ===== 左侧：会话列表 ===== */
/* .chat-side 已在原「AI 创作」块定义，这里补强会话列表所需的子元素样式 */
.chat-side{padding:14px 12px 10px}
.chat-list-label{margin:8px 2px 4px;padding:0}
.agent-session-list{
  display:flex;flex-direction:column;gap:6px;
  flex:1 1 auto;min-height:0;overflow-y:auto;
  margin:0 -2px;padding-bottom:6px;
}
.agent-session{
  position:relative;
  display:grid;
  grid-template-columns:36px 1fr auto;
  gap:10px;align-items:flex-start;
  padding:10px 10px 10px 10px;
  border:1px solid var(--line-soft);
  border-radius:12px;
  background:var(--panel);
  cursor:pointer;text-align:left;color:inherit;
  transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);
}
.agent-session:hover{
  background:var(--panel-hover);
  border-color:var(--line-hi);
}
.agent-session.active{
  border-color:rgba(124,92,255,.55);
  background:linear-gradient(135deg,rgba(124,92,255,.10),var(--panel) 80%);
}
.agent-session-avatar{
  width:36px;height:36px;border-radius:50%;
  background:var(--panel-2);border:1px solid var(--line-soft);
  display:grid;place-items:center;overflow:hidden;flex:0 0 auto;
}
.agent-session-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.agent-session-body b{
  display:flex;align-items:center;gap:6px;
  font-size:13px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.agent-session-body small{
  display:flex;align-items:center;gap:6px;
  font-size:11.5px;color:var(--text-3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.agent-session-body em{
  display:block;
  font-style:normal;font-size:11.5px;color:var(--text-3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.agent-session-tag{
  font-style:normal;
  font-size:10px;padding:1px 6px;border-radius:99px;
  border:1px solid transparent;line-height:1.5;
  white-space:nowrap;flex:0 0 auto;
}
.pin-tag{
  color:#f59e0b;background:rgba(245,158,11,.12);
  border-color:rgba(245,158,11,.32);
  font-size:8px;padding:0 4px;line-height:1.45;font-weight:500;
}
.agent-session-body b .pin-tag{font-size:.75em!important;padding:0 4px!important;line-height:1.35!important;font-weight:500;letter-spacing:0}
.pa-skill-builder{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.pa-skill-builder>span{color:var(--text);font-size:12px;font-weight:600}.pa-skill-builder>small{color:var(--text-3);font-size:11px;line-height:1.5}.pa-skill-builder .pa-checks{padding-top:3px}.pa-skill-builder .pa-checks label{display:flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel);color:var(--text-2);cursor:pointer}.pa-skill-builder .pa-checks input{width:auto;margin:0}
.pa-skill-upload{display:flex;align-items:center}.pa-skill-files{display:grid;gap:6px}.pa-skill-files article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:9px;background:var(--panel)}.pa-skill-files article span{min-width:0}.pa-skill-files b,.pa-skill-files small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pa-skill-files b{color:var(--text);font-size:12px}.pa-skill-files small{margin-top:3px;color:var(--text-3);font-size:10.5px}.pa-skill-files article button{flex:0 0 28px;width:28px;height:28px;border-radius:7px;color:var(--text-3);background:var(--panel-2)}.pa-skill-files article button:hover{color:#f87171;background:rgba(239,68,68,.1)}
.pa-option-card{position:relative;display:flex!important;align-items:center!important;justify-content:space-between;gap:14px;min-height:64px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);cursor:pointer}.pa-option-card[hidden]{display:none!important}.pa-option-card span{display:grid;gap:4px}.pa-option-card b{color:var(--text);font-size:12px}.pa-option-card small{color:var(--text-3);font-size:10.5px;line-height:1.45}.pa-option-card>input{position:absolute;opacity:0;pointer-events:none}.pa-option-card>i{position:relative;width:38px;height:22px;flex:0 0 38px;border-radius:999px;background:#41414d;transition:.2s}.pa-option-card>i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s}.pa-option-card>input:checked+i{background:linear-gradient(135deg,var(--accent),var(--accent-2))}.pa-option-card>input:checked+i:after{transform:translateX(16px)}.pa-publish-state{cursor:default}.pa-publish-state em{padding:4px 8px;border-radius:999px;color:var(--text-3);background:var(--panel);font-size:10px;font-style:normal}.pa-publish-state[data-status="published"] em{color:#34d399;background:rgba(52,211,153,.12)}.pa-publish-state[data-status="testing"] em{color:#fbbf24;background:rgba(251,191,36,.12)}.pa-publish-state[data-status="disabled"] em{color:#f87171;background:rgba(248,113,113,.12)}
.unread-tag{
  color:#fff;background:linear-gradient(135deg,var(--accent),#ef4444);
  border-color:transparent;
  font-weight:600;
}
.agent-session-more{
  flex:0 0 auto;width:26px;height:26px;border-radius:8px;
  display:grid;place-items:center;background:transparent;border:0;color:var(--text-3);
  cursor:pointer;visibility:hidden;transition:background var(--t-fast),color var(--t-fast);
}
.agent-session:hover .agent-session-more,
.agent-session.active .agent-session-more,
.agent-session-more:focus-visible{visibility:visible}
.agent-session-more:hover{background:var(--panel-2);color:var(--text)}
.agent-session-more .ico{width:16px;height:16px}

/* 头像 */
.agent-avatar{
  width:100%;height:100%;border-radius:50%;
  display:grid;place-items:center;
  font-size:13px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,var(--accent),#22d3ee);
  overflow:hidden;
}
.agent-avatar-sm{width:36px;height:36px;font-size:12px}
.agent-avatar-md{width:42px;height:42px;font-size:13.5px}
.agent-avatar-lg{width:48px;height:48px;font-size:15px}
.agent-avatar-fallback{
  width:100%;height:100%;
  display:grid;place-items:center;
  background:linear-gradient(135deg,var(--accent),#22d3ee);
  color:#fff;font-weight:600;
}
.agent-avatar img,
.agent-session-avatar img,
.agent-chat-head-avatar img{
  width:100%;height:100%;object-fit:cover;display:block;
}

/* 不同智能体用不同底色 */
.agent-avatar.color-1{background:linear-gradient(135deg,#7c5cff,#22d3ee)}
.agent-avatar.color-2{background:linear-gradient(135deg,#f97316,#f43f5e)}
.agent-avatar.color-3{background:linear-gradient(135deg,#22d3ee,#34d399)}
.agent-avatar.color-4{background:linear-gradient(135deg,#a78bfa,#ec4899)}
.agent-avatar.color-5{background:linear-gradient(135deg,#0ea5e9,#6366f1)}
.agent-avatar.color-6{background:linear-gradient(135deg,#10b981,#84cc16)}

/* ===== 会话操作菜单（popover） ===== */
.session-menu{
  position:fixed;z-index:10000;
  min-width:170px;max-width:240px;
  padding:6px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:13px;
  box-shadow:0 14px 40px rgba(0,0,0,.32),0 2px 6px rgba(0,0,0,.18);
  display:flex;flex-direction:column;gap:2px;
  animation:sessionMenuIn .12s var(--ease-out, ease-out);
}
@keyframes sessionMenuIn{
  from{opacity:0;transform:translateY(-4px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.session-menu[hidden]{display:none!important}
.session-menu-head{
  font-size:11px;color:var(--text-3);
  padding:4px 10px 6px;
  border-bottom:1px solid var(--line-soft);
  margin-bottom:4px;
  letter-spacing:.4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.session-menu button{
  display:flex;align-items:center;gap:9px;
  width:100%;padding:9px 11px;border:0;background:transparent;
  border-radius:9px;color:var(--text-2);font-size:13px;
  cursor:pointer;text-align:left;position:relative;
  transition:background var(--t-fast),color var(--t-fast);
}
.session-menu button:hover{background:var(--panel-hover);color:var(--text)}
.session-menu button .ico{width:15px;height:15px;flex:0 0 auto;color:var(--text-3)}
.session-menu button:hover .ico{color:var(--accent)}
.session-menu button.danger{color:#ef4444}
.session-menu button.danger:hover{background:rgba(239,68,68,.10);color:#ef4444}
.session-menu button.danger .ico{color:#ef4444}
.session-menu button:disabled,.session-menu button.danger:disabled{cursor:not-allowed;background:transparent;color:var(--text-3);opacity:.42}
.session-menu button:disabled .ico,.session-menu button.danger:disabled .ico{color:var(--text-3)}
.session-menu-arrow{
  margin-left:auto;font-style:normal;color:var(--text-3);font-weight:500;
}
.session-menu-sub{
  position:absolute;left:100%;top:-6px;
  margin-left:6px;
  min-width:170px;max-height:280px;overflow-y:auto;
  padding:6px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:13px;
  box-shadow:0 14px 40px rgba(0,0,0,.32);
  display:flex;flex-direction:column;gap:2px;
}
.session-menu-sub[hidden]{display:none!important}
.session-menu-sub button{
  font-size:12.5px;color:var(--text-2);
  white-space:nowrap;
}
.session-menu-sub button.active{
  color:var(--accent);background:var(--accent-soft);
}

/* ===== 亮色主题适配 ===== */
body.theme-light .agent-session{background:#fff;border-color:#ececf2}
body.theme-light .agent-session:hover{background:#fafafe;border-color:#d4d4e0}
body.theme-light .agent-session.active{
  border-color:rgba(124,92,255,.45);
  background:linear-gradient(135deg,rgba(124,92,255,.08),#fff 80%);
}
body.theme-light .agent-chat-message{background:#fff;border-color:#ececf2}
body.theme-light .agent-chat-head{background:#fff;border-color:#ececf2}
body.theme-light .chat-hero h2{color:#1a1a2c}
body.theme-light .chat-hero p{color:#5a5a72}
body.theme-light .chat-search{background:#fff;border-color:#e4e4ec}
body.theme-light .chat-search input{color:#1a1a2c}
body.theme-light .quick-prompts .agent-prompt-card{background:#fff;border-color:#ececf2}
body.theme-light .quick-prompts .agent-prompt-card:hover{background:#fafafe;border-color:#d4d4e0}
body.theme-light .agent-action-chip{background:#fff;border-color:#ececf2}
body.theme-light .agent-action-chip:hover{background:#fafafe;border-color:#cfcfdb}
body.theme-light .session-menu{
  background:#fff;border-color:#e4e4ec;
  box-shadow:0 14px 40px rgba(80,80,120,.18);
}
body.theme-light .session-menu button:hover{background:#fafafe}
body.theme-light .session-menu-sub{background:#fff;border-color:#e4e4ec}

/* ===== 小屏适配 ===== */
@media (max-width:900px){
  .agent-chat-head{padding:14px 18px}
  .agent-chat-empty{padding:32px 18px 18px}
  .quick-prompts{grid-template-columns:1fr}
  .agent-chat-messages{padding:18px 14px 8px}
  .agent-composer{padding:8px 14px 16px}
}
@media (max-width:560px){
  .agent-chat-message{max-width:92%}
}

/* ==========================================================
   AI 智能体 · 右侧容器内输入对话框垂直居中（未进入会话时）
   参考原「AI 创作」页：hero + 建议提问靠上，输入框落在容器垂直中线；
   进入会话后恢复「消息区滚动 + 输入栏贴底」的常规对话版式。
   ========================================================== */
.agent-chat-create{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.composer-hint{font-size:11.5px;color:var(--text-3)}
.agent-composer[hidden]{display:none!important}

/* 启动状态走常规流式布局：body 撑满，hero + 建议提问靠 .agent-chat-empty 的 margin:auto 垂直居中 */

/* ==========================================================
   AI 智能体 v3（2026-09-15 17:55）
   - 侧栏：智能体下拉带头像 + 会话按智能体过滤 + 新对话按钮
   - 启动页：智能体介绍落在 slogan 位（头像 + 名称 + 职责）
   ========================================================== */

/* 侧栏标题行的「新对话」按钮 */
.agent-new-btn{
  display:inline-flex;align-items:center;gap:5px;
  height:28px;padding:0 10px;border-radius:8px;
  border:1px solid var(--line);background:var(--panel-2);
  color:var(--text-2);font-size:12px;line-height:1;cursor:pointer;
  transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);
}
.agent-new-btn:hover{background:var(--panel-hover);color:var(--text);border-color:var(--line-hi)}
.agent-new-btn .ico{width:13px;height:13px;flex:0 0 auto}
.agent-chat-create{margin-bottom:8px}

/* 启动页 slogan 位：选中智能体后换成它的头像 + 名称 + 职责 */
.agent-hero-avatar{
  display:block;width:72px;height:72px;border-radius:50%;
  margin:0 auto 18px;overflow:hidden;
  background:var(--panel-2);border:1px solid var(--line-soft);
  box-shadow:0 12px 34px rgba(0,0,0,.30);
}
.agent-hero-avatar[hidden]{display:none!important}
.agent-chat-empty .chat-hero{width:100%}
.agent-chat-empty .chat-hero p{
  display:-webkit-box;width:min(960px,100%);max-width:none;
  margin-left:auto;margin-right:auto;overflow:hidden;overflow-wrap:anywhere;
  line-height:1.75;-webkit-box-orient:vertical;-webkit-line-clamp:2;
}

/* ==========================================================
   统一表单下拉：替换原生 select 在 macOS 上的「金属灰」系统弹层
   ========================================================== */
.cselect{position:relative;display:inline-block;max-width:100%;min-width:0;vertical-align:middle}
.cselect-block{display:block;width:100%}
.cselect > select{
  position:absolute;inset:0;width:100%;height:100%;
  margin:0;padding:0;border:0;opacity:0;pointer-events:none;
  appearance:none;-webkit-appearance:none;
}
/* 替身必须「任何情况下」全隐，所以这里用 !important 把它钉死。
   踩过的坑：详情弹窗锁字段用的 .task-detail-form .is-locked{opacity:.55} 优先级是 (0,2,0)，
   比上面那条 .cselect > select (0,1,1) 高 —— 于是「负责人 / 所属项目」被锁时，
   这个本该隐形的原生 select 跟着亮到 55%，它自己画的选中项文字就和自定义标签叠成了双层字
   （普通员工账号下必现：负责人那格「成员 · donglei」出现两份、互相错位）。
   替身不存在「应该露出来」的场景，所以这条不变量值得用 !important 兜底。 */
.cselect > select{opacity:0!important}
.cselect-trigger{
  display:flex;align-items:center;gap:8px;width:100%;
  height:38px;padding:0 11px;
  border:1px solid var(--line);border-radius:10px;
  background:var(--panel-2);color:var(--text);
  font-size:13px;line-height:1;text-align:left;cursor:pointer;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.cselect-trigger:hover{border-color:var(--line-hi);background:var(--panel-hover)}
.cselect.open .cselect-trigger{border-color:rgba(124,92,255,.55);background:var(--panel-hover)}
/* 触发器是 <button>：macOS 上鼠标点按钮不取焦，所以平时看不到焦点环；
   但键盘 Tab 过来时浏览器会画一圈系统蓝，跟主题不搭。
   这里显式接管——鼠标操作不画，键盘聚焦给一圈品牌色（保住可达性）。 */
.cselect-trigger:focus{outline:none}
.cselect-trigger:focus-visible{outline:2px solid rgba(124,92,255,.5);outline-offset:1px}
/* 只读下拉保持正常显示和可点击：捕获阶段会给出权限说明，底层 select 仍为 disabled，
   因此不会展开或产生“界面改了但保存失败”的假操作。 */
.cselect-trigger[aria-disabled="true"]{pointer-events:auto;cursor:help;opacity:1}
.cselect-slot{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0}
.cselect-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cselect-label.is-placeholder{color:var(--text-3)}
.cselect-caret{
  width:15px;height:15px;flex:0 0 auto;color:var(--text-3);
  transition:transform var(--t-fast);
}
.cselect.open .cselect-caret{transform:rotate(180deg)}
.cselect-face{
  flex:0 0 auto;width:22px;height:22px;border-radius:50%;overflow:hidden;
  display:grid;place-items:center;
  background:var(--panel);border:1px solid var(--line-soft);
}
.cselect-face[hidden]{display:none!important}
.cselect-face img{width:100%;height:100%;object-fit:cover;display:block}

.cselect-panel{
  position:fixed;z-index:320;
  display:flex;flex-direction:column;
  padding:6px;
  /* 面板总高上限：由 search(固定) + list(可滚动) 分摊，避免长列表把面板撑出视口 */
  max-height:min(400px,68vh);
  overflow:hidden;
  border:1px solid var(--line);border-radius:13px;
  background:var(--panel);
  box-shadow:0 20px 55px rgba(0,0,0,.50),0 2px 8px rgba(0,0,0,.28);
  animation:modalIn .16s var(--ease-out,ease-out);
}
.cselect-panel[hidden]{display:none!important}
.cselect-search{flex:0 0 auto;padding:2px 2px 7px;border-bottom:1px solid var(--line-soft);margin-bottom:5px}
.cselect-search input{
  width:100%;height:32px;padding:0 10px;
  border:1px solid var(--line);border-radius:8px;
  background:var(--panel-2);color:var(--text);font-size:12.5px;outline:none;
}
.cselect-search input:focus{border-color:rgba(124,92,255,.5)}
.cselect-list{
  flex:1 1 auto;min-height:0;
  max-height:min(320px,54vh);
  overflow-y:auto;
  /* 多人负责人名单必须明确可滚动。macOS 默认使用悬浮滚动条，未开始滚动时
     完全不可见，长名单看起来像被截断，用户也不知道下方还有成员。 */
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:rgba(124,92,255,.72) rgba(255,255,255,.06);
  /* 滚到列表两端时不把滚动传给页面，否则会连带触发外面容器的滚动 */
  overscroll-behavior:contain;
  display:flex;flex-direction:column;gap:2px;
}
.cselect-list::-webkit-scrollbar{display:block;width:9px;height:9px}
.cselect-list::-webkit-scrollbar-track{background:rgba(255,255,255,.045);border-radius:999px}
.cselect-list::-webkit-scrollbar-thumb{min-height:34px;border:2px solid transparent;border-radius:999px;background:rgba(124,92,255,.76);background-clip:padding-box}
.cselect-list::-webkit-scrollbar-thumb:hover{background:rgba(139,108,255,.96);background-clip:padding-box}
.cselect-option{
  display:flex;align-items:center;gap:9px;width:100%;
  padding:8px 10px;border:0;border-radius:9px;
  background:transparent;color:var(--text-2);font-size:13px;text-align:left;cursor:pointer;
  transition:background var(--t-fast),color var(--t-fast);
}
.cselect-option:hover{background:var(--panel-hover);color:var(--text)}
.cselect-option.is-active{background:var(--accent-soft);color:var(--text)}
.cselect-option-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.cselect-option-main{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cselect-option-text small{
  color:var(--text-3);font-size:11px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cselect-empty{padding:14px 10px;color:var(--text-3);font-size:12.5px;text-align:center}

/* 各容器里下拉的尺寸对齐 */
.task-filter-controls .cselect-trigger{height:34px;border-radius:9px;font-size:12.5px;padding:0 10px}
.vault-form .cselect{display:block;width:100%}
.vault-form .cselect-trigger{height:40px;border-radius:9px}
/* 接口令牌那一项：字段名右边的状态角标 + 输入框下面的说明文字 */
.vault-form label>span em{font-style:normal;font-weight:400;font-size:11.5px;color:var(--text-3);margin-left:6px}
.vault-form .vault-hint{display:block;margin-top:2px;color:var(--text-3);font-size:11.5px;line-height:1.55;font-weight:400}
.cloudreve-config-panel{width:min(760px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px));overflow:auto}.cloudreve-config-form{align-items:start}.cloudreve-config-form>label>span,.cloudreve-callback-label{color:var(--text-2);font-size:12px}.cloudreve-config-form input{box-sizing:border-box}.cloudreve-config-form code{display:block;overflow-wrap:anywhere;margin-top:7px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--accent);font-size:11px}.cloudreve-scope-note{display:grid;gap:5px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.cloudreve-scope-note b{font-size:12px}.cloudreve-scope-note span{color:var(--accent);font-size:12px}.cloudreve-scope-note small{color:var(--text-3);font-size:11px}.cloudreve-status{margin-bottom:14px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text-2);font-size:12px}.cloudreve-status.available{border-color:rgba(34,197,94,.35);color:#4ade80}@media(max-width:700px){.cloudreve-config-panel{max-height:calc(100vh - 16px)}.cloudreve-config-form{grid-template-columns:1fr}.cloudreve-config-form .vault-wide{grid-column:auto}.cloudreve-config-form .vault-actions{flex-wrap:wrap}}
.vault-form #vaultToken{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.agent-chat-create .cselect-trigger{height:38px}
.agent-chat-create .cselect-face{width:24px;height:24px}

/* 亮色主题微调 */
body.theme-light .cselect-trigger{background:#fff;border-color:#e4e4ec}
body.theme-light .cselect-trigger:hover{background:#f6f4fc;border-color:#d8d8e4}
body.theme-light .cselect-panel{background:#fff;border-color:#e4e4ec;box-shadow:0 20px 55px rgba(80,80,120,.18),0 2px 8px rgba(80,80,120,.10)}
body.theme-light .cselect-option:hover{background:#f4f4f8}
body.theme-light .cselect-face{border-color:#eeeef4}

/* ==========================================================
   AI 智能体 · 启动态版式（hero + 建议提问 + 输入框）
   做法：三者同处常规文档流，「内容区 + 24px 间距 + 输入框」整组在右栏垂直居中。
   内容区用 flex:0 1 auto 自适应高度（够高时按内容居中，过矮时内部滚动），
   输入框用 flex:0 0 auto 锁定高度——因此任意窗口高度下二者都不会互相遮挡。
   进入会话后（hero 隐藏）本组规则失效，自动恢复「消息区滚动 + 输入栏贴底」。
   ========================================================== */
.agent-room:has(#agentChatEmpty:not([hidden])){
  justify-content:center;
  gap:24px;
}
.agent-room:has(#agentChatEmpty:not([hidden])) .agent-chat-body{
  flex:0 1 auto;
  overscroll-behavior:contain;
}
.agent-room:has(#agentChatEmpty:not([hidden])) > .composer.agent-composer{
  flex:0 0 auto;
}
.agent-room:has(#agentChatEmpty:not([hidden])) .agent-chat-empty[hidden]{display:none!important}
/* 留白由「整组居中」提供，这里只保留左右内边距 */
.agent-room:has(#agentChatEmpty:not([hidden])) .agent-chat-empty{padding:8px 40px}

/* ============================================
   任务详情：左「任务详情」右「协作记录」两栏
   左栏说明区按窗口自适应，字段与按钮保持可见；右栏自己滚
   ============================================ */
.task-detail-panel{
  width:min(1180px,100%);
  /* 用确定高度维持左右栏对齐，栏内内容各自滚动。 */
  height:min(94vh,920px);max-height:min(94vh,920px);
}
.task-detail-panel .vault-body{
  padding:18px 24px 20px;
  /* 两栏：左正文自适应，右协作记录定宽；整块不再整体滚，交给各栏内部滚 */
  display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);
  gap:0;overflow:hidden;
  /* 面板是 flex 列：不给 flex:1 的话 body 只有内容高，左边「说明吃剩余高度」就没有剩余可分 */
  flex:1 1 auto;min-height:0;
}

/* ---- 左栏：表单 ---- */
.task-detail-body>.task-detail-form{
  margin-top:0;min-height:0;overflow-y:auto;padding-right:22px;border-right:0!important;
  scrollbar-width:none!important;scrollbar-color:transparent transparent!important;-ms-overflow-style:none;
  width:100%;
  /* 控件区三列：状态 | 优先级 | 负责人；说明区限制高度，不能挤压后续字段和操作按钮。 */
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:auto auto auto auto auto auto auto auto;
  align-content:start;
}
.task-detail-body>.task-detail-form:focus,
.task-detail-body>.task-detail-form:focus-visible{outline:0;box-shadow:none}
.task-detail-body>.task-detail-form::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}
.task-detail-body>.task-detail-form::-webkit-scrollbar-thumb,.task-detail-body>.task-detail-form::-webkit-scrollbar-track{display:none!important;background:transparent!important}
.task-detail-body>.task-detail-form>label.task-detail-desc{min-height:0;grid-template-rows:auto minmax(0,auto);overflow:hidden}
.task-detail-desc-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-detail-desc-head button{padding:0;border:0;background:none;color:var(--accent);font-size:12px;cursor:pointer}.task-detail-desc-head button:hover{text-decoration:underline}
.task-detail-panel #taskDetailDescription{box-sizing:border-box;height:clamp(220px,34vh,360px);min-height:220px;max-height:360px;padding-right:16px;line-height:1.62;overflow-y:auto;resize:none;scrollbar-width:thin;scrollbar-color:var(--accent-soft) transparent}
.task-detail-panel #taskDetailDescription::-webkit-scrollbar{width:8px}.task-detail-panel #taskDetailDescription::-webkit-scrollbar-track{background:transparent}.task-detail-panel #taskDetailDescription::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--accent-soft);background-clip:padding-box}
.task-description-linked{height:clamp(180px,32vh,340px);min-height:180px;max-height:340px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);font-size:13px;line-height:1.62;white-space:pre-wrap;overflow-wrap:anywhere;overflow-y:auto;cursor:text;user-select:text;-webkit-user-select:text}
.task-description-linked:focus{outline:1px solid var(--accent);outline-offset:1px}
.task-description-paste>small{display:block;margin-top:5px;color:var(--text-3);font-size:11px;line-height:1.45}
.task-description-paste.is-pasting textarea{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.task-reference-link{display:inline;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.task-reference-link:hover{color:var(--accent-2)}

/* 任务附件与验收截图是两类材料：前者跟随任务长期保存，后者仍留在协作记录。 */
.task-file-panel{padding:12px 14px;border:1px solid var(--line-soft);border-radius:11px;background:var(--panel-2)}
.task-file-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.task-file-head>div{display:flex;align-items:baseline;gap:10px;min-width:0}
.task-file-head b{font-size:13px;color:var(--text)}
.task-file-head small{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-file-head .btn-ghost{flex:0 0 auto;min-height:32px;padding:0 13px}
.task-file-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px;min-height:24px}
.task-file-empty{font-size:12px;color:var(--text-3);line-height:24px}
.task-file-item{display:flex;align-items:center;gap:8px;max-width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.task-file-item.is-image{min-width:min(330px,100%)}
.task-file-thumb{flex:0 0 54px;width:54px;height:42px;padding:0!important;overflow:hidden;border:1px solid var(--line)!important;border-radius:7px;background:var(--panel-2)!important;cursor:zoom-in}
.task-file-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.task-file-copy{display:grid;gap:2px;min-width:0}
.task-file-item .task-file-name{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text)}
.task-file-item button.task-file-name{padding:0;border:0;background:none;text-align:left;cursor:pointer}.task-file-item button.task-file-name:hover{color:var(--accent);text-decoration:underline}
.task-file-item small{color:var(--text-3);font-size:11px;white-space:nowrap}
.task-file-item button,.task-file-item a{color:var(--accent);font-size:11.5px;white-space:nowrap}
.task-file-remove{color:var(--text-3)!important;font-size:16px!important;line-height:1}
.task-file-delete{color:var(--danger)!important}
.task-file-panel.is-disabled .task-file-head button{opacity:.45;pointer-events:none}
.task-detail-panel .task-file-panel{position:relative;z-index:1;margin:10px 0 0;isolation:isolate}
.task-description-viewer{z-index:1500;padding:20px}.task-description-viewer>.vault-panel{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1200px,96vw);height:min(900px,94vh);max-height:94vh;margin:auto}.task-description-viewer header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line)}.task-description-viewer header h2{margin:0 0 4px;font-size:20px}.task-description-viewer header p{margin:0;color:var(--text-3);font-size:12px}.task-description-viewer pre{min-height:0;margin:0;padding:24px 28px;overflow:auto;color:var(--text);font:14px/1.8 inherit;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text}

/* ---- 归属信息条（负责人 / 创建人 / 创建时间，只读） ---- */
.task-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;padding:10px 13px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel-2)}
.task-detail-meta>span{display:inline-flex;align-items:baseline;gap:7px;min-width:0}
.task-detail-meta .tdm-k{color:var(--text-3);font-size:12px;font-style:normal;white-space:nowrap}
.task-detail-meta b{color:var(--text);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-detail-head-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.task-detail-head-meta{max-width:min(46vw,560px);padding:0;border:0;background:transparent;justify-content:flex-end}.task-detail-head-meta>span{gap:5px}.task-detail-head-meta .tdm-k{font-size:11px}.task-detail-head-meta b{font-size:12px}.task-hierarchy-launch{flex:0 0 auto;white-space:nowrap}
/* 多人任务弹窗预先占好固定高度，展开/折叠只改变内部列表，避免整个弹窗上下跳动。 */
.task-hierarchy-modal-panel{width:min(920px,94vw);height:min(82vh,760px);max-height:min(82vh,760px)}
.vault-modal:not([hidden])>.task-hierarchy-modal-panel{animation:none}
.task-hierarchy-modal-panel>.vault-body{display:flex;flex:1 1 auto;min-height:0;overflow:hidden;padding:18px}
.task-hierarchy-modal-panel .task-hierarchy-panel{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}
.task-hierarchy-modal-panel .task-hierarchy-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;align-content:start;grid-auto-rows:max-content;gap:8px;padding-right:4px}
.task-hierarchy-panel{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:11px;background:var(--panel-2)}.task-hierarchy-panel[hidden]{display:none}.task-hierarchy-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.task-hierarchy-head b{font-size:13px}.task-hierarchy-head small{color:var(--text-3);font-size:11px}.task-hierarchy-list{display:grid;gap:5px}.task-hierarchy-item{display:flex;align-items:center;gap:8px;width:100%;min-width:0;padding:7px 9px 7px calc(9px + var(--task-hierarchy-depth,0)*18px);border:1px solid var(--line-soft);border-radius:8px;background:var(--card-bg);color:var(--text);text-align:left;cursor:pointer}.task-hierarchy-item:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--card-bg))}.task-hierarchy-branch{flex:0 0 auto;color:var(--accent);font-size:15px}.task-hierarchy-main{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;width:100%}.task-hierarchy-main>span{display:flex;align-items:center;gap:8px;min-width:0}.task-hierarchy-main em,.task-tree-type{flex:0 0 auto;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 13%,var(--panel-2));color:var(--accent);font-size:10px;font-style:normal}.task-hierarchy-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.task-hierarchy-main small{flex:0 0 auto;color:var(--text-3);font-size:10.5px;white-space:nowrap}.task-tree-title{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding-left:calc(var(--task-tree-depth,0)*16px)}.task-tree-branch{flex:0 0 auto;width:12px;color:var(--accent)}.task-tree-title>span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.task-tree-type-review{background:color-mix(in srgb,#e4a842 16%,var(--panel-2));color:#e8b95b}.task-tree-parent-ref{margin-left:7px;color:var(--text-3);font-size:10px;font-weight:500}.task-table td.t-strong{white-space:nowrap}
.task-workflow-next{display:grid;gap:12px;padding:15px;border:1px solid color-mix(in srgb,var(--primary) 55%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--primary) 7%,var(--card-bg))}.task-workflow-next[hidden]{display:none}.task-workflow-next-head small{display:block;margin-top:4px;color:var(--text-3)}.task-workflow-next fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;padding:11px;border:1px solid var(--line);border-radius:11px}.task-workflow-next legend{padding:0 7px;color:var(--text-2);font-size:12px}.task-workflow-next fieldset label{display:flex;flex-direction:row;align-items:flex-start;gap:9px;padding:10px;border-radius:9px;background:var(--panel-2);cursor:pointer}.task-workflow-next input{width:17px;min-height:17px;accent-color:var(--primary)}.task-workflow-next label span{display:grid;gap:3px}.task-workflow-next label small{color:var(--text-3);font-size:11px}.task-workflow-next>.btn-primary{justify-self:end}@media(max-width:760px){.task-workflow-next fieldset{grid-template-columns:1fr}}

/* ---- 右栏：协作记录（任务动态 + 评论，时间倒序） ---- */
.task-detail-body>.task-comments{
  margin-top:0;padding:0 0 0 22px;border-top:0;border-left:0;
  position:relative;z-index:2;background:var(--panel);
  display:flex;flex-direction:column;min-height:0;
  /* 底部留白只留 4px：输入框方框的底边要比「发表评论」按钮更低（见下方 comment-form），
     多出来的这段高度就是"框比按钮大"的视觉证据，由右栏底部的内边距让位给它。
     按钮下沿与左栏「保存修改」齐平的算式：
       保存修改下沿 = 容器底 - 18(左栏 padding) - 1(左栏 border) = 容器底 - 19
       发表评论下沿 = 容器底 - 4(本条 padding) - 1(方框 border) - 14(按钮内缩) = 容器底 - 19 ✓ */
  padding-bottom:4px;
}
.task-detail-panel .task-comments h3{margin:0 0 12px;font-size:14px;flex:0 0 auto;display:flex;align-items:center;gap:7px}
.task-detail-panel .task-comments-count{color:var(--text-3);font-size:11.5px;font-style:normal;font-weight:400}
.task-detail-panel .comment-list{
  grid-template-columns:1fr;gap:9px;align-content:start;
  flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;
}
.task-detail-panel .comment-empty{grid-column:1/-1}
/* ---- 协作记录输入区：整块一个大方框，框内右下角放「发表评论」 ----
   改动前是「无边框输入框 + 框外下方一颗按钮」两截（占 92 + 9 + 36 ≈ 137px）；
   现在把边框 / 底色 / 圆角整体上移到 form 上，textarea 退化成框内无边框的文字层，
   按钮改为绝对定位钉在框内右下角——三件套合起来是"一个框"，框高约 182px。
   form 用 display:block（父级窄屏媒体查询里的 .comment-form{display:grid} 只 1 个类，
   特异性低于本条 2 个类，盖不掉），框高完全由 textarea 决定，按钮不参与撑高。 */
.task-detail-panel .comment-form{
  margin-top:12px;flex:0 0 auto;position:relative;display:block;padding:0;
  border:1px solid var(--line-hi);border-radius:11px;
  /* 底色必须比弹窗面板亮一档，否则只有一圈线、看着还是"空的地方" */
  background:var(--panel-2);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.22);
  transition:border-color var(--t-mid), box-shadow var(--t-mid);
}
/* 聚焦光圈从"只亮输入框"改成"整框亮"：点 textarea 或点按钮，整个框一起亮 */
.task-detail-panel .comment-form:focus-within{
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}

.task-detail-panel .comment-form textarea{
  display:block;width:100%;
  /* 92px -> 180px，输入区整体放大；底部 64px 是给按钮留的避让区
     （按钮 36 + 下内缩 14 + 与文字 14 的间距），文字区下沿永远在按钮上方 14px 处，
     多行输入 / 滚动到底都不会钻到按钮底下 */
  min-height:180px;padding:14px 16px 64px;
  border:0;border-radius:11px;background:transparent;box-shadow:none;
  resize:none;   /* 框内右下角已被按钮占用，去掉会与按钮重叠的拖拽手柄 */
  outline:none;
}
.task-detail-panel .comment-form textarea::placeholder{color:var(--text-3)}
/* 光圈已交给整框的 :focus-within，这里显式清掉旧的"输入框自身光圈"，避免双层 */
.task-detail-panel .comment-form textarea:focus{
  border-color:transparent;box-shadow:none;outline:none;
}
/* 低矮窗口：输入框收一档，保证弹窗（含协作记录标题 + 输入框）不撑破面板高度 */
@media (max-height:680px){
  .task-detail-panel .comment-form textarea{min-height:126px;padding:12px 14px 58px}
}

/* ---- 「保存修改」/「发表评论」锁定成同一尺寸、且下沿齐平 ----
   两个标签碰巧都是 4 个字，靠内容撑出来的宽度刚好一样；
   但这是巧合——随便改个文案（比如「提交」）就会一大一小。
   这里显式钉死同一个 100×36，内边距交给居中，换文案也不会走形。
   两个按钮都在各自栏的最底部，靠右；右栏「方框外底距容器底 4px + 方框 1px 下边框 +
   按钮 14px 下内缩 = 19px」，与左栏「18px padding + 1px 下边框 = 19px」抵消，
   所以两按钮下沿严格重合（实测 dyTop = dyBottom = 0）。 */
.task-detail-panel .vault-actions .btn-primary,
.task-detail-panel .comment-form .btn-primary{
  flex:0 0 auto;
  width:100px;height:36px;padding:0;gap:0;
  justify-content:center;line-height:1;
  font-size:13px;font-weight:500;
}
.task-detail-panel .vault-actions .btn-primary{align-self:flex-end}
.task-detail-body>.task-detail-form>.task-detail-actions{grid-column:1/-1;width:100%;justify-content:flex-start;align-items:center}
.task-detail-actions .task-action-spacer{flex:1 1 auto}
.task-detail-actions #taskDetailDelete,
.task-detail-actions #taskDetailSubtask{height:36px;padding:0 18px}
/* 「发表评论」：绝对定位钉进输入框内部右下角，内外缩进各 14px。
   尺寸（100×36）、文案、圆角（--r-pill）全部不动，只换定位方式；
   form 是 display:block，原来的 align-self:flex-end 已失效，故本条不含它。
   底内缩 14 是"两个按钮同一水平线"的关键参数：
     按钮下沿 = 方框内底 - 14；方框外底距容器底 4px + 边框 1px，
     合计 4+1+14=19px，正好等于左栏 18px padding + 1px border 的 19px。 */
.task-detail-panel .comment-form .btn-primary{position:absolute;right:14px;bottom:14px}
.task-evidence-row{display:flex;align-items:center;gap:10px;position:absolute;left:14px;right:130px;bottom:14px;min-width:0}.task-evidence-row .btn-ghost{padding:7px 11px;font-size:12px;white-space:nowrap}.task-evidence-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:12px}
.task-comment-suggest{position:absolute;left:14px;right:14px;bottom:62px;z-index:5;max-height:210px;overflow-y:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 14px 36px rgba(0,0,0,.42)}.task-comment-suggest[hidden]{display:none}.task-comment-suggest button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.task-comment-suggest button:hover,.task-comment-suggest button.is-active{background:var(--accent-soft);color:var(--accent)}.task-comment-suggest button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-comment-suggest button small{flex:0 0 auto;color:var(--text-3);font-size:11px}.task-comment-suggest-empty{padding:10px;color:var(--text-3);font-size:12px}
.task-smart-field{position:relative}.task-field-suggest{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:9;max-height:210px;overflow-y:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 14px 36px rgba(0,0,0,.42)}.task-field-suggest[hidden]{display:none}.task-field-suggest button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.task-field-suggest button:hover,.task-field-suggest button.is-active{background:var(--accent-soft);color:var(--accent)}.task-field-suggest button small{color:var(--text-3);font-size:11px}.task-detail-desc .task-field-suggest{top:auto;bottom:8px;left:8px;right:8px}
.task-evidence-badge{display:inline-block;margin-top:8px;padding:3px 8px;border-radius:999px;background:rgba(124,77,255,.16);color:#bda8ff;font-size:11px;font-style:normal}.task-evidence-images{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.task-evidence-images a{display:block;width:86px;height:64px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel-2)}.task-evidence-images img{width:100%;height:100%;object-fit:cover}
.task-screenshot-preview{position:absolute;left:14px;right:14px;bottom:58px;display:flex;gap:8px;flex-wrap:wrap;padding:8px;border-radius:12px;background:rgba(12,12,16,.88);border:1px solid var(--line);z-index:2}.task-screenshot-preview[hidden]{display:none}.task-screenshot-thumb{position:relative;width:78px;height:58px;border:1px solid var(--line);border-radius:9px;overflow:visible;background:var(--panel-2);padding:0}.task-screenshot-thumb>img{width:100%;height:100%;display:block;object-fit:cover;border-radius:8px}.task-screenshot-remove{position:absolute;right:-7px;top:-7px;width:20px;height:20px;border:0;border-radius:50%;background:#34343d;color:#fff;line-height:18px;font-size:15px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.image-lightbox{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:56px;background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}.image-lightbox[hidden]{display:none}.image-lightbox img{max-width:min(92vw,1600px);max-height:88vh;object-fit:contain;border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.65)}.image-lightbox>button{position:fixed;right:28px;top:24px;width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:#22242a;color:#fff;font-size:25px;cursor:pointer}
.task-clarity-panel{width:min(620px,100%)}.task-clarity-panel .vault-body{display:grid;gap:16px}.task-clarity-panel .vault-body>p,.task-clarity-panel ul{margin:0;color:var(--text-2);line-height:1.7}.task-clarity-panel ul{padding-left:22px}.task-clarity-preview{padding:16px;border:1px solid rgba(139,92,246,.45);border-radius:14px;background:rgba(124,77,255,.08)}.task-clarity-preview h3{margin:10px 0 6px}.task-clarity-preview p{margin:0;white-space:pre-wrap;line-height:1.65;color:var(--text-2)}

/* 动态条目：左头像 + 右内容；评论是卡片，纯变更记录不铺底，一眼能区分 */
.task-detail-panel .comment-item{display:flex;gap:10px;align-items:flex-start;padding:11px 13px}
.task-detail-panel .comment-item .tl-body{display:block;flex:1 1 auto;min-width:0}
.task-detail-panel .tl-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.task-detail-panel .tl-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-detail-panel .tl-head time{flex:0 0 auto;color:var(--text-3);font-size:12px}
.task-detail-panel .tl-avatar{
  flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--accent-soft);color:var(--accent);font-size:11.5px;font-weight:600;
}
.task-detail-panel .tl-avatar.is-agent{background:rgba(251,191,36,.16);color:var(--amber)}
.task-detail-panel .tl-activity{background:transparent;border-color:transparent}
.task-detail-panel .tl-activity .tl-sentence{color:var(--text-2)}
/* 显式 1fr 轨道：没有它隐式 auto 轨道按内容 max-content 定型不拉伸，
   内容短的卡片会明显窄一截——所有变更卡宽度必须恒等于容器宽 */
.task-detail-panel .tl-changes{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:9px}
.task-detail-panel .tl-change{display:block;padding:9px 10px;border:1px solid var(--line-soft);border-radius:9px;background:var(--panel-2)}
.task-detail-panel .tl-change-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.task-detail-panel .tl-change-head>b{font-size:12px;color:var(--text);font-weight:600}
/* 更新前/更新后改上下两行，每行「标签 + 值」；比并排版更宽松、更好读 */
.task-detail-panel .tl-diff{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
.task-detail-panel .tl-diff-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:stretch}
.task-detail-panel .tl-diff span{display:flex;align-items:center;color:var(--text-3);font-size:10.5px;white-space:nowrap}
.task-detail-panel .tl-diff p{margin:0;padding:9px 10px;border-radius:6px;background:rgba(0,0,0,.12);color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere}
.task-detail-panel .tl-diff-row:last-child p{background:rgba(124,92,255,.09);color:var(--text)}
/* 内容过多自动截断成省略号；完整内容挂在 data-tip 上，悬停由 JS 浮框出全文 */
.task-detail-panel .tl-change.is-collapsed .tl-diff p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:54px}
.task-detail-panel .tl-change.is-collapsed .tl-diff p[data-tip]{cursor:help}
/* 悬停浮框：挂在 body 上跟随鼠标（.comment-list 有 overflow，贴元素定位会被裁掉） */
.tl-tip{
  position:fixed;z-index:1200;max-width:380px;max-height:320px;overflow-y:auto;
  padding:10px 12px;border:1px solid var(--line-hi);border-radius:9px;
  background:var(--panel-3);color:var(--text);
  font-size:12px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;
  box-shadow:0 12px 32px rgba(0,0,0,.4);pointer-events:none;
}
body.theme-light .tl-tip{box-shadow:0 12px 32px rgba(30,30,60,.18)}

/* ---- 字号统一 ----
   之前表单控件用的是浏览器默认 13.33px，协作记录正文却 12.5px、作者名 14px，
   同一个弹窗里一大一小很跳。这里把「正文类」统一到 13px，层级只靠字重和颜色区分。
   ⚠️ 这段必须放在上面各条 .comment-item / .comment-form 规则之后：
   同权重下靠源码顺序取胜，放前面会被后面的 12.5px 盖掉。 */
.task-detail-panel .vault-form input,
.task-detail-panel .vault-form select,
.task-detail-panel .vault-form textarea,
.task-detail-panel .comment-form textarea,
.task-detail-panel .comment-item b,
.task-detail-panel .comment-item p{font-size:13px}
.task-detail-panel .comment-item b{font-weight:600}
.task-detail-panel .comment-item p{line-height:1.62}
.task-detail-panel .comment-item time{font-size:12px}

/* 中等高度桌面：压缩详情各区间距，让完整操作区稳定留在一屏内。 */
@media (min-width:1025px) and (max-height:980px){
  .task-detail-panel{height:min(96vh,880px);max-height:min(96vh,880px)}
  .task-detail-panel .vault-head{padding:14px 20px}
  .task-detail-panel .vault-head h2{margin-bottom:3px}
  .task-detail-panel .vault-body{padding:12px 18px 14px}
  .task-detail-body>.task-detail-form{gap:9px;padding:13px 17px 12px;padding-right:18px;grid-template-rows:auto auto auto auto auto auto auto auto}
  .task-detail-body>.task-detail-form label{gap:5px}
  .task-detail-panel #taskDetailDescription,.task-description-linked{height:clamp(200px,30vh,300px);min-height:200px;max-height:300px;line-height:1.5}
  .task-detail-panel .vault-form input,.task-detail-panel .vault-form select{padding:8px 10px}
  .task-detail-panel .workbench-datetime .workbench-date-text{height:40px;background-position:calc(100% - 19px) 16px,calc(100% - 14px) 16px}
  .task-detail-panel .task-file-panel{margin-top:7px;padding:8px 11px}
  .task-detail-panel .task-file-list{margin-top:5px;min-height:20px}
  .task-detail-panel .task-file-empty{line-height:20px}
  .task-detail-panel .task-detail-meta{gap:4px 18px;padding:7px 10px}
  .task-detail-body>.task-comments{padding-left:18px}
  .task-detail-panel .task-comments h3{margin-bottom:8px}
  .task-detail-panel .comment-list{gap:6px}
  .task-detail-panel .comment-item{padding:8px 10px}
  .task-detail-panel .comment-item p{margin-top:5px;line-height:1.5}
  .task-detail-panel .comment-form{margin-top:8px}
  .task-detail-panel .comment-form textarea{min-height:150px;padding:12px 14px 58px}
}

/* 放不下两栏时（窄屏 / 小窗口）退回单栏：正文在上，协作记录在下并限高 */
@media (max-width:1024px){
  /* 单栏时不再撑满高度，回到内容高度 + 整块滚动 */
  .task-detail-panel{height:auto;max-height:min(92vh,880px)}
  .task-detail-panel .vault-body{display:flex;flex-direction:column;overflow-y:auto;gap:16px}
  /* flex:0 0 auto 必须显式写上：vault-body 是 flex 列，这两个子项默认 flex-shrink:1，
     高度不够时会被压得比自身内容还矮，格子里的内容就溢出到隔壁栏（实测 1024x760 下左栏
     「保存修改」整颗压进协作记录区）。写死后高度回到内容高度，超出的部分交给 body 自己滚。 */
  .task-detail-body>.task-detail-form{flex:0 0 auto;padding-right:0;overflow:visible;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto minmax(180px,auto) auto auto auto auto auto}
  .task-detail-body>.task-comments{flex:0 0 auto;padding:16px 0 0;border-left:0;border-top:1px solid var(--line)}
  .task-detail-panel #taskDetailDescription,.task-description-linked{height:auto;min-height:220px;max-height:360px}
  .task-detail-panel .comment-list{flex:0 0 auto;max-height:240px}
}

@media(max-width:760px){.task-detail-panel .vault-head{align-items:flex-start}.task-detail-head-tools{gap:6px}.task-detail-head-meta{display:none}.task-hierarchy-launch{max-width:180px;overflow:hidden;text-overflow:ellipsis}.task-hierarchy-modal-panel{width:96vw;height:86vh;max-height:86vh}.task-detail-panel #taskDetailDescription,.task-description-linked{min-height:220px;max-height:320px}}

@media (max-width:900px){
  .task-detail-panel{width:min(860px,100%);max-height:min(820px,92vh)}
  .task-detail-panel .comment-list{grid-template-columns:1fr;max-height:200px}
}

/* ============================================
   任务板块：看板 / 列表 / 表格 / 泳道（对齐 Multica）
   ============================================ */
.tb-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:9px;color:var(--text-2);background:var(--panel-2);font-size:12.5px;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}
.tb-btn:hover{color:var(--text);border-color:var(--accent)}
.tb-btn[aria-expanded="true"]{color:var(--text);border-color:var(--accent);background:var(--accent-soft)}
.tb-btn .ico{width:15px;height:15px;flex:0 0 auto}
.tb-btn .ico[hidden]{display:none!important}
.tb-menu{position:fixed;z-index:130;min-width:176px;max-height:min(460px,80vh);overflow:auto;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:0 14px 40px rgba(0,0,0,.32),0 2px 6px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:2px;animation:sessionMenuIn .12s var(--ease-out,ease-out)}
.tb-menu[hidden]{display:none!important}
.tb-menu-head{padding:4px 10px 6px;margin-bottom:2px;border-bottom:1px solid var(--line-soft);color:var(--text-3);font-size:11px;letter-spacing:.4px}
.tb-menu-group{padding:9px 10px 4px;color:var(--text-3);font-size:11px;letter-spacing:.4px}
.tb-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:9px;color:var(--text-2);background:transparent;font-size:13px;text-align:left;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.tb-menu button:hover{color:var(--text);background:var(--panel-hover)}
.tb-menu button .ico{width:15px;height:15px;flex:0 0 auto;color:var(--text-3)}
.tb-menu button:hover .ico{color:var(--accent)}
.tb-menu button>span{flex:1 1 auto;min-width:0}
.tb-check{margin-left:auto;color:var(--accent);font-style:normal;font-size:13px;opacity:0;transition:opacity var(--t-fast)}
.tb-menu button.is-on{color:var(--text)}
.tb-menu button.is-on .tb-check{opacity:1}
.task-filter-controls .has-active-filter{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:var(--accent-soft)}
.task-filter-menu{width:min(300px,calc(100vw - 16px));padding:10px;overflow:visible}
.task-filter-menu>label{display:grid;gap:6px;padding:6px 4px;color:var(--text-3);font-size:11px}
.task-filter-menu>label[hidden]{display:none}
.task-filter-menu>label>.cselect{width:100%}
.task-filter-menu .cselect-trigger{width:100%;height:36px;justify-content:space-between;border-radius:9px}
.task-actions-btn{min-width:auto}
@media(max-width:1180px){.task-actions-btn>span{display:none}.task-actions-btn{padding-inline:10px}}

/* 状态色：待规划 / 待办 / 进行中 / 审核中 / 已阻塞 / 已完成 */
.st-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--text-3)}
.st-dot.st-backlog{background:#8b8fa3}
.st-dot.st-todo{background:#7c8aa5}
.st-dot.st-doing{background:var(--accent)}
.st-dot.st-review{background:#f59e0b}
.st-dot.st-blocked{background:#ef4444}
.st-dot.st-done{background:#22c55e}
.st-pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11.5px;white-space:nowrap}
.st-pill.st-backlog{color:#9aa0b4;background:rgba(139,143,163,.16)}
.st-pill.st-todo{color:#8fa0c0;background:rgba(124,138,165,.16)}
.st-pill.st-doing{color:var(--accent);background:var(--accent-soft)}
.st-pill.st-review{color:#f59e0b;background:rgba(245,158,11,.16)}
.st-pill.st-blocked{color:#ef4444;background:rgba(239,68,68,.16)}
.st-pill.st-done{color:#22c55e;background:rgba(34,197,94,.16)}

/* 通用字段小块 */
.tc-tag,.tc-person,.tc-project,.tc-label,.tc-due,.tc-time,.tc-pri{display:inline-flex;align-items:center;padding:2px 7px;border-radius:7px;font-size:11px;line-height:1.6;white-space:nowrap}
.tc-tag{color:var(--text-3);border:1px solid var(--line-soft)}
.tc-person{color:var(--text-2);background:var(--accent-soft)}
.tc-project{color:var(--text-3);border:1px solid var(--line)}
.tc-label{color:var(--accent);background:var(--accent-soft)}
.tc-due{color:var(--text-3)}
.tc-due.is-overdue{color:#ef4444;background:rgba(239,68,68,.14)}
.tc-time{color:var(--text-4,var(--text-3))}
.tc-pri.pri-urgent{color:#dc2626;background:rgba(220,38,38,.20)}
.tc-pri.pri-high{color:#ef4444;background:rgba(239,68,68,.14)}
.tc-pri.pri-mid{color:#f59e0b;background:rgba(245,158,11,.14)}
.tc-pri.pri-low{color:#7c8aa5;background:rgba(124,138,165,.14)}
.tc-pri.pri-none{color:#6b7280;background:rgba(107,114,128,.14)}
.tc-prog{display:inline-flex;align-items:center;width:52px;height:4px;border-radius:4px;background:var(--line);overflow:hidden;flex:none}
.tc-prog>i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.tc-pct{color:var(--text-3);font-size:11px;font-variant-numeric:tabular-nums}

/* 看板 */
.task-board{display:grid;grid-template-columns:repeat(6,minmax(212px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}
.task-board-column{display:flex;flex-direction:column;min-height:360px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.task-board-column>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:12.5px}
.task-board-column>header b{display:flex;align-items:center;gap:7px;font-weight:600}
.task-board-column>header span{color:var(--text-3);font-size:12px}
.task-board-stack{display:flex;flex-direction:column;gap:8px;min-height:44px}
.task-column-empty{padding:14px 0;color:var(--text-3);font-size:11.5px;text-align:center;border:1px dashed var(--line);border-radius:10px}
.task-board-column.is-drop-target,.task-list-group.is-drop-target{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.task-swimlane-cell.is-drop-target{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}

/* 卡片 */
.task-card{display:flex;flex-direction:column;gap:7px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);cursor:pointer;transition:border-color var(--t-fast)}
.task-card:hover{border-color:var(--accent)}
.task-card.is-dragging,.task-line.is-dragging{opacity:.45}
.task-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.task-card-code{color:var(--text-3);font-size:11px;letter-spacing:.3px}
.task-pri-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--text-3)}
.task-pri-dot.tone-urgent{background:#dc2626}
.task-pri-dot.tone-high{background:#ef4444}
.task-pri-dot.tone-mid{background:#f59e0b}
.task-pri-dot.tone-low{background:#64748b}
.task-card-title{font-size:12.8px;font-weight:600;line-height:1.5;word-break:break-word}
.task-card-bar{height:4px;border-radius:999px;background:var(--line);overflow:hidden}
.task-card-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.task-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px}

/* 列表 */
.task-list{display:flex;flex-direction:column;gap:14px}
.task-list-group{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.task-list-group>header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line-soft);background:var(--panel-2);font-size:12.5px;cursor:pointer;user-select:none;transition:background var(--t-fast)}
.task-list-group>header:hover,.task-list-group>header:focus-visible{background:var(--panel-hover);outline:none}.task-list-group.is-group-collapsed>header{border-bottom:0}.task-list-group-items[hidden]{display:none}
.task-list-group>header b{font-weight:600}
.task-list-group>header em{color:var(--text-3);font-size:11.5px;font-style:normal}
.task-table-group{cursor:pointer;user-select:none}.task-table-group td{padding:10px 14px!important;background:var(--panel-2)!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text);transition:background var(--t-fast)}.task-table-group:hover td,.task-table-group:focus-visible td{background:var(--panel-hover)!important}.task-table-group:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.task-table-group td b{font-size:12.5px;font-weight:650}.task-table-group td em{margin-left:8px;color:var(--text-3);font-size:11.5px;font-style:normal}.task-group-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;margin-right:4px;color:var(--accent);font-size:10px}.task-row.is-hidden-by-group{display:none}
.task-line{display:grid;grid-template-columns:auto 64px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background var(--t-fast)}
.task-line:last-child{border-bottom:0}
.task-line:hover{background:var(--panel-hover)}
.task-line-pri{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--text-3)}
.task-line-pri.pri-urgent{background:#dc2626}
.task-line-pri.pri-high{background:#ef4444}
.task-line-pri.pri-mid{background:#f59e0b}
.task-line-pri.pri-low{background:#64748b}
.task-line-code{color:var(--text-3);font-size:11.5px;white-space:nowrap}
.task-line-title{font-size:12.8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-line-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}

/* 表格 */
/* 列宽固定（table-layout:fixed + 每列指定宽度）：行内容变化时列不再左右抖动。
   任务名称给适中宽度，剩余空间由浏览器按各列比例分摊。 */
.task-table{width:100%;table-layout:fixed}
.task-table th.task-col-title{width:220px}
.task-table th.task-col-identifier{width:92px}
.task-table th.task-col-assignee{width:96px}
.task-table th.task-col-priority{width:84px}
.task-table th.task-col-due{width:118px}
.task-table th.task-col-project{width:132px}
.task-table th.task-col-labels{width:132px}
.task-table th.task-col-status{width:96px}
.task-table th.task-col-progress{width:150px}
.task-table th.task-col-updated{width:118px}
.task-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-table thead th{cursor:pointer;user-select:none;white-space:nowrap}
/* 列头排序箭头：只在排序列出现；升序 ▲、降序旋转 180° 变 ▼，
   旋转走 transition，点击时箭头来回翻，方向切换一眼可见 */
.task-sort-btn{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}
.task-table th .sort-arrow{display:inline-block;width:12px;font-size:10px;line-height:1;opacity:.62;transform:none;transition:opacity var(--t-fast),color var(--t-fast)}
.task-table th .sort-arrow::before{content:'↕'}
.task-table th.is-sorted{color:var(--text-2)}
.task-table th.is-sorted .sort-arrow{opacity:1;color:var(--accent)}
.task-table th.is-sorted.is-asc .sort-arrow::before{content:'↑'}
.task-table th.is-sorted.is-desc .sort-arrow::before{content:'↓'}
.task-table th:hover .sort-arrow{opacity:1}
.task-table-code{color:var(--text-3);font-size:11.5px;white-space:nowrap}
.task-table-time{color:var(--text-3);font-size:11.5px;white-space:nowrap}
.task-due-late{color:#ef4444}

/* ---- 列表页就地编辑（点文字直接改） ----
   可改的单元格用手型 + 悬停淡底 + 右上角小铅笔提示「这里能点」；
   不可改的单元格不挂 .tc-edit，点了只会上/下选中行，不会误以为能改。 */
.task-table td.tc-edit{cursor:pointer;position:relative}
/* 悬停提示也走中性色。
   原来铺的是 --accent-soft（紫 .18），一大块紫底跟着鼠标在表格里游走，
   和用户点名说难看的那个紫框是同一种观感——只是它出现得更早。
   改成中性提亮：够看出「这格能点」，又不抢眼。 */
.task-table td.tc-edit:hover{background:var(--cell-hover)}
.task-table td.tc-edit::after{
  content:'✎';position:absolute;top:3px;right:5px;font-size:9px;line-height:1;
  color:var(--text-2);opacity:0;transition:opacity var(--t-fast);
}
.task-table td.tc-edit:hover::after{opacity:.9}
/* 就地编辑：不往整格画框。
   原来是 box-shadow:inset 0 0 0 1px var(--accent) —— 一圈铺满整个单元格的紫色描边，
   在表格里又大又跳。编辑态改由控件自己表达：一格略亮的小控件 + 箭头 + 直接展开的下拉。
   所以单元格保持原底色（不要跟着改成 panel-2，否则控件的填充就看不出来了），
   同时把 hover 那层紫底压掉——鼠标刚点完还停在格子上，不然会看到一片紫。
   行高也必须稳住：控件换进换出不能让整张表跳一下。 */
.task-table td.tc-edit.is-editing,
.task-table td.is-editing{background:transparent;box-shadow:none;cursor:default}
.task-table td.is-editing::after{opacity:0}
/* 就地编辑里的控件用「紧凑版」：默认 .cselect-trigger 是 38px，
   塞进表格会把整行撑高一大截。填充取 panel-3——比单元格的 panel 亮一档，
   一眼看出「这里是个能选的控件」。 */
.task-table td.is-editing .cselect{display:block;width:100%}
.task-table td.is-editing .cselect-trigger{
  height:26px;padding:0 8px;border-radius:7px;gap:6px;
  border-color:var(--line);background:var(--panel-3);
  font-size:12px;
  /* 这里的焦点是 JS 在点击后程序化给的（为了 Esc 能收摊），会命中 :focus-visible，
     不关掉就会挂一圈焦点环——而用户要的正是「别再画框」。
     好在桌面端不会只靠键盘走到这个临时控件上，展开的下拉本身就是最清楚的提示。 */
  outline:none;
}
.task-table td.is-editing .cselect-trigger:hover{border-color:var(--line-hi);background:var(--panel-hover)}
/* 展开态也不改成紫色描边（全局约定是 .cselect.open 换紫边）。
   这一格原本的紫色正是用户点名说不好看的东西；而且就地编辑是「点开即展开」，
   紫边会一直挂着。面板展开本身就是最清楚的提示，这里保持中性色。 */
.task-table td.is-editing .cselect.open .cselect-trigger{border-color:var(--line-hi);background:var(--panel-hover)}
.task-table td.is-editing .tc-inline-datetime{display:block;width:100%}
.task-table td.is-editing .tc-inline-datetime .workbench-date-text{height:28px;min-width:138px;padding:0 28px 0 9px;border-color:var(--line-hi);border-radius:7px;background-color:var(--panel-3);background-position:calc(100% - 16px) 10px,calc(100% - 11px) 10px;font-size:11.5px}
.task-table td.is-editing .cselect-caret{width:13px;height:13px}
/* 日期输入框没有自定义下拉，样式同样压到 26px，保持行高不变 */
.tc-inline-control{
  width:100%;min-width:74px;height:26px;padding:0 8px;
  color:var(--text);font-size:12px;font-family:inherit;
  border:1px solid var(--line);border-radius:7px;
  background:var(--panel-3);outline:none;cursor:pointer;
}
/* 日期输入框同理：聚焦只把描边提亮一档，不上紫色 */
.tc-inline-control:focus{border-color:var(--line-hi)}
.tc-inline-saving{color:var(--text-3);font-size:12px}

/* ---- 详情弹窗里被权限锁住的字段 ----
   保持正常对比度；点击时由 JS 解释权限和下一步，而不是靠置灰暗示。 */
.task-detail-form .is-locked{opacity:1}
.task-detail-form label.is-locked>span{color:var(--text-2)}
.task-detail-form input.is-locked,.task-detail-form textarea.is-locked{
  color:var(--text);-webkit-text-fill-color:var(--text);cursor:help;
}
.task-detail-form textarea.is-locked{cursor:text;user-select:text;-webkit-user-select:text}
.task-detail-form select:disabled,.task-detail-form input:disabled,.task-detail-form textarea:disabled{
  color:var(--text);-webkit-text-fill-color:var(--text);opacity:1;
}
/* 项目下拉里超出可见范围的选项：在原生下拉里就淡掉 */
.task-detail-form select option:disabled{color:var(--text-3)}

/* 泳道 */
.task-swimlane-grid{grid-template-columns:repeat(6,minmax(190px,1fr));align-items:start}
.task-swimlane-cell>span{position:sticky;top:-10px;z-index:1;padding:2px 0 6px;background:var(--panel)}
/* 每格限高内滚，否则一条泳道就能长到上千像素，一次只能看到一条 */
.task-swimlane-cell{max-height:320px;overflow:auto}
.task-swimlane>header{display:flex;align-items:center;justify-content:space-between;font-size:12.5px}
.task-swimlane>header b{font-weight:600}
.task-swimlane>header span{color:var(--text-3);font-size:11.5px}
.task-swimlane-caption{margin:0 0 10px;color:var(--text-3);font-size:11.5px}
.task-drag-hint{margin:12px 2px 0;color:var(--text-3);font-size:11.5px}
/* 非管理员的任务列表是「指派给我 + 我创建的」，这条说明讲清筛选口径 / 没绑定时怎么修 */
.task-identity-notice{margin:12px 2px 0;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text-2);font-size:11.5px;line-height:1.65}
.task-identity-notice.is-warn{color:var(--amber);border-color:rgba(251,191,36,.34);background:rgba(251,191,36,.10)}

/* 视图容器互斥：靠最上面那条全局 [hidden]{display:none!important} 兜底。
   这里只留一条断言用的说明——切视图后应当只有一个容器处于布局中。 */

@media (max-width:900px){
  .task-line{grid-template-columns:auto minmax(0,1fr) auto}
  .task-line-code{display:none}
  .task-board{grid-template-columns:repeat(6,minmax(190px,1fr))}
}

body.theme-light .tb-menu{background:#fff;border-color:#e4e4ec;box-shadow:0 14px 40px rgba(80,80,120,.18)}
body.theme-light .tb-menu button:hover{background:#fafafe}
body.theme-light .tb-btn{background:#fff;border-color:#e4e4ec}
body.theme-light .tb-btn[aria-expanded="true"]{background:var(--accent-soft)}

/* ==========================================================
   AI 智能体 v5（2026-09-16 晚）· 一条内容列，四块内容全部对齐
   ----------------------------------------------------------
   问题（v4 留下的）：v4 把四块都改成「铺满右侧容器」，但没有统一它们
   各自的宽度来源，于是每块各算各的。1675×1023（右侧容器 1393）实测左边缘：
     · 输入框     0   右边缘 1393 —— 通栏到容器两边，框内却又留 40px，
                                    等于一个空荡荡的大框包着缩进去的一行字
     · 建议提问  40   右边缘 1353
     · 建议卡片  82   右边缘 1293 —— 基类留下的 max-width:820px 一直没被重置
     · 标题      居中
   三处左边缘互不相同，卡片还比它上面那行标题缩进 42px，「散架」就是这么来的。
   卡片 820px 宽时 auto-fit 只能排 3 列，第 4 张孤零零换行占 1/3 宽，也是一处。
   ----------------------------------------------------------
   做法：定义一条共用内容列 --agent-col，hero / 建议提问 / 卡片 / 消息列表 /
   输入框全部按它对齐，左右边缘必然一致，不会再各算各的。
     · --agent-pad 页面留白（列没触顶时，列边缘到容器边缘的距离）
     · --agent-max 列宽上限，避免超宽屏上一条提示词拉成一条长线
     · --agent-edge 同一列在容器里的左边缘（未触顶时 = --agent-pad）。
       顶栏这种「通栏一条、但内部有文字」的地方用它做内边距，文字才能和下方同位。
   输入框的内边距回到基类口径（18px）：那是「框内留白」，不是「页面留白」；
   页面留白归内容列管，所以框的左右边缘 = 内容列左右边缘。
   ========================================================== */
.agent-room{
  --agent-pad:48px;
  --agent-max:1200px;
  --agent-col:min(var(--agent-max), 100% - var(--agent-pad) * 2);
  --agent-edge:max(var(--agent-pad), calc((100% - var(--agent-max)) / 2));
}
.agent-chat-empty,
.agent-chat-messages,
.agent-composer{
  width:var(--agent-col);max-width:none;
  margin:0 auto;
}
/* .agent-chat-empty 在 .agent-chat-body 里，而 body 是 overflow-y:auto —— 窗口一矮
   （实测 1512×520 就会）它就长出滚动条，把 body 的可用宽度吃掉 15px，
   于是上面那条列整体左移 7.5px，和同在 .agent-room 下、不吃滚动条的输入框错开。
   这里把 body 这条「兜底滚动条」隐掉：它是启动页在极矮窗口下的备胎滚轮，
   滚动照旧（滚轮/触控板可用），只是不占宽度 —— 内容列的左右边缘才能稳住。
   会话态不受影响：那时是 .agent-chat-messages 自己滚，它带可见滚动条。 */
.agent-chat-body{scrollbar-width:none}
.agent-chat-body::-webkit-scrollbar{width:0;height:0}
.agent-chat-empty{padding:48px 0 28px}
.agent-chat-messages{box-sizing:border-box;padding:24px 0 var(--agent-composer-clearance,12px);scroll-padding-bottom:var(--agent-composer-clearance,12px)}
.agent-composer{padding:16px 18px 14px}
.agent-chat-head{padding:16px var(--agent-edge)}
.agent-room:has(#agentChatEmpty:not([hidden])) .agent-chat-empty{padding:8px 0}
/* 卡片区必须跟着内容列走。基类那条 max-width:820px 是上面「标题与卡片错位」的
   唯一来源，这里显式清掉；列宽到位后 auto-fit 自然排成 4 列一行，孤行也没有了。 */
.quick-prompts{max-width:none;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
/* 列变窄了，单条气泡不让它无限拉宽，按列宽比例 + 上限双约束，保证可读性 */
.agent-chat-message{max-width:min(78%,880px)}

@media (max-width:900px){
  .agent-room{--agent-pad:16px}
  .agent-chat-empty{padding:32px 0 18px}
  .agent-chat-messages{padding:18px 0 var(--agent-composer-clearance,8px)}
  .agent-composer{padding:12px 14px 14px}
  .agent-chat-head{padding:14px var(--agent-edge)}
  .agent-room:has(#agentChatEmpty:not([hidden])) .agent-chat-empty{padding:8px 0}
  .agent-chat-message{max-width:92%}
  .quick-prompts{grid-template-columns:1fr}
}

/* ==========================================================
   企业微信考勤状态（侧边栏用户区的小药丸）
   为什么放这儿而不是顶栏：默认落地页是 BI 看板，而 BI 页会把整条顶栏 display:none
   （见 .main:has(#page-bi.active) .topbar），徽章放顶栏等于默认看不见。
   背景：企业微信没有开放「成员工作状态」接口，这里的「上班中 / 已下班 / 休息中」
   是用「打卡」应用的原始打卡记录自己判定的，判定口径见 server.mjs 里的注释。
   ========================================================== */
.wecom-status{
  display:inline-flex;align-items:center;gap:5px;
  padding:2px 7px 2px 6px;border:1px solid var(--line);border-radius:var(--r-pill);
  background:var(--panel-2);color:var(--text-2);
  /* line-height 收成 1.3：药丸是 inline-flex，高度 = 行高 + 上下 padding + 上下边框。
     13 + 4 + 2 = 19px，正好等于旁边那个角色小标签（10px 字 + 2px 内边距 + 1.5 行高）的 19px。
     千万别改回 1.5（会变 21px），那会让侧边栏用户区无谓地再高 2px。 */
  font-family:inherit;font-size:10px;line-height:1.3;white-space:nowrap;cursor:pointer;
  transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast);
}
/* 名字那行实测只有 128px 可用，「王强 + 企业管理员」已占掉 95px，56px 的药丸排不进去，
   于是自动换到第二行（flex-wrap 本来就是允许的）。代价是 .side-user 高 10px
   （19 行高 + 6 行距 = 25，比头像的 34px 多出 10px）。
   这个代价可以接受：侧边栏下半段是 flex:1 + overflow-y:auto 的导航，多 10px 只是导航
   少滚一点，不会撑破侧边栏，也不会盖住下面的纸豆余额。
   正常三档文案都是 3 个汉字，互相切换不会跳版；「打卡服务异常」是 6 个字，
   但那是异常态，宽度变化本身就是要发出的提示。 */
.wecom-status:hover{border-color:var(--line-hi);background:var(--panel-hover);color:var(--text)}
.wecom-dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);flex:none}
.wecom-status.tone-on .wecom-dot{background:#22c55e}
/* 已下班原本没写样式，靠 .wecom-dot 的默认灰落成「实心灰点」，和「未关联」的空心灰圈
   只差一个填充，扫一眼分不出来。给它一个明确的灰蓝。 */
.wecom-status.tone-off .wecom-dot{background:#7f8ea3}
.wecom-status.tone-rest .wecom-dot{background:#f0a020}
.wecom-status.tone-unknown .wecom-dot{background:transparent;border:1.5px solid var(--line-hi)}
.wecom-status.tone-unknown{color:var(--text-3)}
/* 数据拿不到（IP 不在可信白名单 / 没权限 / Secret 失效）。只让点变红、文案不变红：
   这是给管理员的信号，不该在每个人的侧边栏上冲人喊。 */
.wecom-status.tone-error .wecom-dot{background:#e24b4a}
/* 刷新时让圆点呼吸一下；药丸太窄，塞不进一个转圈图标 */
.wecom-status.spin .wecom-dot{animation:wecom-pulse .7s var(--ease)}
@keyframes wecom-pulse{0%,100%{opacity:1}50%{opacity:.2}}
body.theme-light .wecom-status.tone-on .wecom-dot{background:#16a34a}
body.theme-light .wecom-status.tone-off .wecom-dot{background:#5b6b7f}
body.theme-light .wecom-status.tone-rest .wecom-dot{background:#d97706}
body.theme-light .wecom-status.tone-error .wecom-dot{background:#dc2626}

/* 打卡配置弹窗里的自检结果 */
.wecom-probe{margin-top:10px;font-size:12px;line-height:1.6;color:var(--text-3)}
.wecom-probe.ok{color:#22c55e}
.wecom-probe.bad{color:#f87171}
/* warn = 配置没问题、只是还没填成员。用琥珀色区别于「通过」和「失败」，
   否则会被当成失败去改本来就对的东西 */
.wecom-probe.warn{color:#d9a441}
/* 修复指引比「原因」长得多，单独占一行，且不跟着变红（读者要照着它去操作） */
.wecom-probe-fix{display:block;margin-top:4px;color:var(--text-2)}
body.theme-light .wecom-probe.ok{color:#15803d}
body.theme-light .wecom-probe.bad{color:#b91c1c}
body.theme-light .wecom-probe.warn{color:#9a6b00}

/* 账号表单里「企业微信账号」那一行下面的提示区：
   通讯录人数 / 自动匹配结果 / 读不到时的原因与重试按钮。
   提示可能同时含说明 + 按钮，所以按钮要能落在文字流里。 */
.wecom-hint-note{display:block;margin-top:3px;color:var(--text-2)}
.wecom-hint-note.ok{color:#22c55e}
/* 「同名多人 / 没这个人」属于要人接手的情况，用琥珀色 —— 不是报错，但别让它自动挑一个 */
.wecom-hint-note.warn{color:#d9a441}
.wecom-hint-fix{display:block;margin-top:3px;color:var(--text-2)}
.wecom-hint-btn{
  display:inline-block;margin-top:5px;padding:3px 9px;
  border:1px solid var(--line);border-radius:7px;background:var(--panel);
  color:var(--text-2);font-size:11.5px;line-height:1.4;cursor:pointer;
  transition:border-color var(--t-fast),color var(--t-fast);
}
.wecom-hint-btn:hover{border-color:var(--line-hi);color:var(--text)}
.wecom-hint-btn[disabled]{opacity:.55;cursor:default}
body.theme-light .wecom-hint-note.ok{color:#15803d}
body.theme-light .wecom-hint-note.warn{color:#9a6b00}

/* ==========================================================
   任务列表页 · 就地编辑不再改变列宽（2026-09-16）
   问题：点单元格换成控件后，控件的固有宽度会参与表格列宽计算，
   点一下整张表就横向抖一下。用户要求：点之前多宽，点之后还是多宽。
   做法：编辑态不替换单元格内容 —— 原内容留在原地并把整格 visibility:hidden
   占住原来的宽高；控件放进绝对定位浮层（不参与表格布局），
   所以点开控件时任何一列都不会重排。
   另：静止态就给四列留足最小宽度，控件放得下，不会「点开才发现挤」。
   ========================================================== */
.task-table td.is-editing{visibility:hidden}
.task-table td.is-editing .tc-inline-layer{
  visibility:visible;
  position:absolute;left:0;right:0;top:0;bottom:0;
  display:flex;align-items:center;
  padding:0 18px;                 /* 与 .tbl td 的左右内边距一致，控件与原文左对齐 */
}
.task-table td.is-editing .tc-inline-layer>*{flex:1 1 auto;min-width:0}
.task-table td.is-editing .tc-inline-layer .cselect{display:block;width:100%}
.task-table td.is-editing .tc-inline-layer .tc-inline-control{width:100%;min-width:0}
/* 静止态给「优先级 / 状态」两列留一点最小宽度：
   这两列原文太短（「中」「进行中」），不留白控件里的箭头会把文字挤到省略号。
   负责人 / 截止时间两列的原文本来就比控件宽，不需要额外规定，
   免得列被撑宽后在窄屏上顶着 .table-card 的 overflow:hidden 被裁掉。 */
.task-table td.tc-edit[data-edit-col="priority"]{min-width:78px}
.task-table td.tc-edit[data-edit-col="status"]{min-width:100px}

/* ==========================================================
   成长积分（侧边栏 / 积分中心 / 智学中心学习计时）
   ----------------------------------------------------------
   .side-credit 从 div 改成 button 后要自己补回排版：
   全局 button 只重置了字体和光标，padding / text-align 得在这里收回来，
   否则数字会偏到按钮中间、点击区域也跟着缩。
   ========================================================== */
.side-credit{
  padding:0;margin:0;text-align:left;line-height:1;
  transition:opacity var(--t-fast), transform var(--t-fast);
}
.side-credit:hover{opacity:.82}
.side-credit:active{transform:scale(.97)}
.side-credit.is-unlimited{font-size:38px;font-weight:700;color:#c4b5fd;text-shadow:0 0 18px rgba(139,92,246,.72)}
.side-credit.is-bump{animation:pointsBump .5s var(--ease)}
@keyframes pointsBump{0%{transform:scale(1)}35%{transform:scale(1.18);color:#c4b5fd}100%{transform:scale(1)}}

.learn-top-actions{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:16px}
.learn-top-actions .btn-primary,.learn-top-actions .btn-ghost{height:32px;padding:0 14px;font-size:12.5px}

/* ---- 积分中心 ---- */
.points-panel{width:min(760px,100%);height:min(760px,92vh)}
.points-body{padding-top:16px;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.points-hero{
  display:flex;gap:18px;align-items:stretch;flex-wrap:wrap;
  padding:18px;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(135deg, rgba(124,92,255,.14), rgba(192,38,211,.07));
}
.points-hero-main{flex:1 1 260px;min-width:0}
.points-hero-label{font-size:11.5px;color:var(--text-3)}
.points-hero-value{display:flex;align-items:baseline;gap:10px;margin:4px 0 12px}
.points-hero-value b{font-size:34px;font-weight:600;letter-spacing:.5px;line-height:1}
.points-hero-value em{
  font-style:normal;font-size:12px;color:#c4b5fd;
  border:1px solid rgba(196,181,253,.35);border-radius:var(--r-pill);padding:3px 10px;
}
.points-hero-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.10);overflow:hidden}
.points-hero-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .6s var(--ease)}
.points-hero-hint{margin-top:8px;font-size:11.5px;color:var(--text-3)}
.points-hero-stats{flex:0 0 auto;display:grid;grid-template-columns:repeat(2,minmax(84px,1fr));gap:10px 18px;align-content:center}
.points-hero-stats div{text-align:right}
.points-hero-stats b{display:block;font-size:18px;font-weight:600;line-height:1.2}
.points-hero-stats span{font-size:11px;color:var(--text-3)}

.points-tabs{display:flex;gap:6px;margin:16px 0 12px;border-bottom:1px solid var(--line-soft);padding-bottom:10px;flex-wrap:wrap}
.points-tabs button{
  padding:6px 14px;font-size:12.5px;color:var(--text-2);
  border:1px solid transparent;border-radius:var(--r-pill);
  transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);
}
.points-tabs button:hover{color:var(--text);background:var(--panel-2)}
.points-tabs button.active{color:#fff;background:var(--accent-soft);border-color:rgba(124,92,255,.45)}

.points-pane{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}
.points-rule-group{margin-bottom:16px}
.points-rule-group h4{
  font-size:12px;color:var(--text-3);font-weight:600;margin:0 0 8px;
  padding-left:9px;border-left:2px solid var(--accent);
}
.points-rule{
  display:flex;align-items:center;gap:12px;padding:11px 13px;margin-bottom:8px;
  border:1px solid var(--line);border-radius:11px;background:var(--panel-2);
}
.points-rule-main{flex:1 1 auto;min-width:0}
.points-rule-name{font-size:13.5px;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.points-rule-name em{
  font-style:normal;font-size:10.5px;color:var(--text-3);
  border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 8px;
}
.points-rule-desc{font-size:11.5px;color:var(--text-3);margin-top:4px;line-height:1.55}
.points-rule-delta{flex:0 0 auto;font-size:16px;font-weight:600;letter-spacing:.3px}
.points-rule-delta.plus{color:#4ade80}
.points-rule-delta.minus{color:#f87171}
.points-rule-delta.off{color:var(--text-4);font-size:12px;font-weight:500}

.points-ledger{display:flex;flex-direction:column;gap:6px}
.points-ledger-row{
  display:flex;align-items:center;gap:12px;padding:10px 12px;
  border:1px solid var(--line-soft);border-radius:10px;background:var(--panel-2);
}
.points-ledger-main{flex:1 1 auto;min-width:0}
.points-ledger-title{font-size:13px;color:var(--text)}
.points-ledger-note{font-size:11px;color:var(--text-3);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.points-ledger-time{font-size:11px;color:var(--text-4);flex:0 0 auto}
.points-ledger-delta{flex:0 0 auto;font-size:14px;font-weight:600}
.points-ledger-delta.plus{color:#4ade80}
.points-ledger-delta.minus{color:#f87171}
.points-empty{padding:28px 0;text-align:center;font-size:12.5px;color:var(--text-3)}

.points-rank{display:flex;flex-direction:column;gap:6px}
.points-rank-row{
  display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:12px;
  padding:10px 13px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel-2);
}
.points-rank-row.me{border-color:rgba(124,92,255,.5);background:var(--accent-soft)}
.points-rank-no{font-size:13px;color:var(--text-3);text-align:center}
.points-rank-row.me .points-rank-no{color:#c4b5fd;font-weight:600}
.points-rank-name{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.points-rank-name em{font-style:normal;font-size:11px;color:var(--text-3);margin-left:8px}
.points-rank-lv{font-size:11px;color:var(--text-3);white-space:nowrap}
.points-rank-val{font-size:14px;font-weight:600;text-align:right;min-width:56px}

.points-admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:16px}
.points-adjust,.points-sweep{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.points-adjust h4,.points-sweep h4,.points-review h4{margin:0 0 10px;font-size:13px;color:var(--text);font-weight:600}
.points-review h4 em{font-style:normal;font-size:11px;color:var(--text-3);margin-left:6px}
.points-sweep p{font-size:11.5px;color:var(--text-3);line-height:1.6;margin:0 0 10px}
.points-sweep-result{margin-top:10px;font-size:11.5px;color:var(--text-3);line-height:1.6}
.points-review{margin-bottom:16px}
.points-review-list{display:flex;flex-direction:column;gap:8px}
.points-review-item{
  display:flex;align-items:center;gap:12px;padding:11px 13px;
  border:1px solid var(--line-soft);border-radius:10px;background:var(--panel-2);
}
.points-review-main{flex:1 1 auto;min-width:0}
.points-review-title{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.points-review-sub{font-size:11px;color:var(--text-3);margin-top:3px}
.points-review-sub a{color:var(--text-2);text-decoration:none}
.points-review-sub a:hover{color:var(--text);text-decoration:underline}
.points-review-actions{flex:0 0 auto;display:flex;gap:6px}
.points-tag{
  font-size:10.5px;padding:2px 9px;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--text-3);white-space:nowrap;
}
.points-tag.pending{color:#fbbf24;border-color:rgba(251,191,36,.35)}
.points-tag.approved{color:#4ade80;border-color:rgba(74,222,128,.35)}
.points-tag.rejected{color:#f87171;border-color:rgba(248,113,113,.35)}
.points-admin-list{display:flex;flex-direction:column;gap:6px}
.points-admin-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:12px;
  padding:10px 13px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel-2);
}
.points-admin-row b{font-size:14px;font-weight:600;text-align:right}
.points-admin-row span{font-size:11px;color:var(--text-3)}

/* ---- 智学中心 · 学习计时 ---- */
.learn-player-panel{width:min(620px,100%)}
.learn-stage{
  position:relative;height:200px;border-radius:12px;overflow:hidden;
  border:1px solid var(--line);
  background:linear-gradient(135deg, rgba(124,92,255,.22), rgba(192,38,211,.12));
  display:grid;place-items:center;
}
.learn-stage-art{font-size:44px;color:rgba(255,255,255,.75);letter-spacing:2px}
.learn-stage.playing .learn-stage-art{opacity:.35}
.learn-stage-meta{position:absolute;left:16px;bottom:14px}
.learn-timer{font-size:26px;font-weight:600;letter-spacing:1px;line-height:1}
.learn-timer-note{font-size:11px;color:var(--text-3);margin-top:5px}
.learn-unit-bar{height:5px;margin-top:12px;border-radius:99px;background:rgba(255,255,255,.10);overflow:hidden}
.learn-unit-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .5s var(--ease)}
.learn-unit-hint{margin-top:7px;font-size:11.5px;color:var(--text-3)}
.learn-player-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.learn-player-stat{font-size:12px;color:var(--text-2)}
.learn-player-stat b{color:var(--text);font-size:14px}
.learn-player-tip{font-size:12px;color:#4ade80;margin-left:auto}
.learn-player-hint{margin-top:12px;font-size:11.5px;color:var(--text-4);line-height:1.6}

body.theme-light .points-hero{background:linear-gradient(135deg, rgba(124,92,255,.12), rgba(192,38,211,.05))}
body.theme-light .points-hero-bar,
body.theme-light .learn-unit-bar{background:#e6e6f0}
body.theme-light .points-hero-value em{color:#7c3aed;border-color:rgba(124,58,237,.3)}
body.theme-light .points-rank-row.me{background:rgba(124,92,255,.10)}
body.theme-light .learn-stage{background:linear-gradient(135deg, rgba(124,92,255,.16), rgba(192,38,211,.08))}
body.theme-light .learn-stage-art{color:rgba(30,30,50,.6)}

@media (max-width:720px){
  .points-admin-grid{grid-template-columns:minmax(0,1fr)}
  .points-hero-stats{grid-template-columns:repeat(4,minmax(64px,1fr))}
  .learn-top-actions{width:100%;margin:10px 0 0}
}
.public-agent-cards{display:grid;width:100%;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:16px 0 24px}.public-agent-cards[hidden]{display:none!important}.public-agent-cards button{display:grid;gap:7px;padding:15px;border:1px solid var(--line);border-radius:13px;color:var(--text);background:var(--panel);text-align:left}.public-agent-cards small{color:var(--text-3);line-height:1.5}.public-agent-cards em{color:var(--accent);font-size:11px;font-style:normal}.public-agent-panel{width:min(1120px,94vw);height:min(820px,92vh)}.public-agent-admin{display:grid;grid-template-columns:250px 1fr;gap:16px;overflow:hidden}.public-agent-admin aside{overflow:auto;border-right:1px solid var(--line);padding-right:12px}#publicAgentAdminList{display:grid;gap:6px;margin-top:10px}#publicAgentAdminList button{display:grid;gap:3px;padding:9px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--panel-2);text-align:left}#publicAgentAdminList small{color:var(--text-3)}.public-agent-form{overflow:auto}.public-agent-form h3{margin-bottom:12px}.pa-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pa-grid label{display:grid;gap:5px;color:var(--text-3);font-size:11px}.pa-grid .wide{grid-column:1/-1}.pa-grid input,.pa-grid select,.pa-grid textarea,.agent-mini-form input{padding:9px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel-2)}.pa-grid textarea{min-height:72px}.pa-grid .check{display:flex;align-items:center}.pa-checks{display:flex;gap:8px 14px;flex-wrap:wrap}.agent-mini-form{display:grid;gap:7px;margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.agent-mini-form h3{font-size:13px}@media(max-width:800px){.public-agent-admin{grid-template-columns:1fr;overflow:auto}.public-agent-admin aside{border-right:0}.pa-grid{grid-template-columns:1fr}.pa-grid .wide{grid-column:auto}}

/* ==========================================================
   积分管理后台（设置 - 积分管理后台）
   ----------------------------------------------------------
   两套管理界面不能并存（改一处漏一处会变成「后台改了分值、积分中心还写着旧的」），
   所以积分中心里的管理 tab 只剩投稿审核 + 一个入口按钮，
   调分 / 全员列表 / 规则配置 / 逾期扫描全部收进这个后台。
   ========================================================== */
.points-admin-panel{width:min(920px,100%);height:min(760px,92vh)}
.points-admin-modal .points-body{padding-top:16px}

.points-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.points-admin-stats div{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.points-admin-stats b{display:block;font-size:20px;font-weight:600;line-height:1.25}
.points-admin-stats span{font-size:11px;color:var(--text-3)}

/* 调整表单：两列网格，分值快捷按钮和错误提示通栏 */
.points-adjust{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.points-adjust h4{grid-column:1/-1}
.points-adjust label{display:grid;gap:6px;font-size:12px;color:var(--muted)}
.points-adjust input,.points-adjust select{
  width:100%;padding:9px 11px;color:var(--text);border:1px solid var(--line);
  border-radius:9px;background:var(--panel);outline:none;font-size:13px;
}
.points-adjust input:focus,.points-adjust select:focus{border-color:var(--accent)}
.pa-quick{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.pa-quick button{
  padding:5px 12px;font-size:12px;color:var(--text-2);
  border:1px solid var(--line);border-radius:var(--r-pill);background:var(--panel);cursor:pointer;
  transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);
}
.pa-quick button:hover{color:var(--text);border-color:rgba(124,92,255,.5)}
.pa-quick button.on{color:#fff;background:var(--accent);border-color:var(--accent)}

.points-review h4{display:flex;align-items:center;gap:8px}
.pa-search{
  margin-left:auto;width:190px;height:28px;padding:0 11px;font-size:12px;color:var(--text);
  border:1px solid var(--line);border-radius:var(--r-pill);background:var(--panel);outline:none;
}
.pa-search:focus{border-color:var(--accent)}
.pa-filter{margin-bottom:12px}
.pa-filter label{display:grid;gap:6px;font-size:12px;color:var(--muted);max-width:280px}
.pa-filter select{padding:9px 11px;color:var(--text);border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.pa-note{margin:0 0 12px;font-size:11.5px;color:var(--text-3);line-height:1.6}
.pa-save-status{margin-right:auto;font-size:12px;color:var(--text-3)}.pa-save-status.pending{color:#fbbf24}.pa-save-status.success{color:#4ade80}.pa-save-status.error{color:#f87171}

/* 成员行：姓名 / 角色 / 等级 / 余额 / 操作 */
.pa-member-row{
  display:grid;grid-template-columns:minmax(0,1fr) 76px 96px 74px auto;
  align-items:center;gap:12px;padding:10px 13px;
  border:1px solid var(--line-soft);border-radius:10px;background:var(--panel-2);
}
.pa-member-name{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-member-name em{font-style:normal;font-size:11px;color:var(--text-4);margin-left:7px}
.pa-member-role{font-size:11px;color:var(--text-3)}
.pa-member-lv{font-size:11.5px;color:var(--text-2);white-space:nowrap}
.pa-member-val{font-size:14px;font-weight:600;text-align:right}
.pa-member-ops{display:flex;gap:6px;justify-content:flex-end}
.pa-member-ops button{
  padding:4px 10px;font-size:11.5px;color:var(--text-2);
  border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;white-space:nowrap;
}
.pa-member-ops button:hover{color:var(--text);border-color:rgba(124,92,255,.5)}
.pa-member-ops button.danger:hover{color:#f87171;border-color:rgba(248,113,113,.5)}

/* 规则配置行 */
.pa-rule{
  display:grid;grid-template-columns:minmax(0,1fr) 104px 104px 92px;
  align-items:center;gap:12px;padding:11px 13px;margin-bottom:8px;
  border:1px solid var(--line-soft);border-radius:11px;background:var(--panel-2);
}
.pa-rule-main{min-width:0}
.pa-rule-name{font-size:13px;color:var(--text)}
.pa-rule-desc{font-size:11px;color:var(--text-3);margin-top:3px;line-height:1.5}
.pa-rule-field{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-3)}
.pa-rule-field input{
  width:64px;padding:6px 8px;color:var(--text);font-size:12.5px;text-align:center;
  border:1px solid var(--line);border-radius:8px;background:var(--panel);outline:none;
}
.pa-rule-field input:focus{border-color:var(--accent)}
.pa-rule-field input:disabled{opacity:.45;cursor:not-allowed}
.pa-rule-toggle{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-3);cursor:pointer}
.pa-level-list{display:grid;gap:8px}.pa-level-row{display:grid;grid-template-columns:48px minmax(160px,1fr) minmax(140px,.65fr) auto;align-items:end;gap:12px;padding:12px 13px;border:1px solid var(--line-soft);border-radius:11px;background:var(--panel-2)}.pa-level-row>b{align-self:center;font-size:16px;color:#c4b5fd}.pa-level-row label{display:grid;gap:5px;font-size:11px;color:var(--text-3)}.pa-level-row input{width:100%;padding:8px 10px;color:var(--text);border:1px solid var(--line);border-radius:8px;background:var(--panel);outline:none}.pa-level-row input:focus{border-color:var(--accent)}.pa-level-row input:disabled,.pa-level-row input:read-only{opacity:.65}.pa-level-ops{display:flex;gap:5px}.pa-level-ops button{height:34px;padding:0 10px;color:var(--text-2);border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer}.pa-level-ops button.danger:hover{color:#f87171;border-color:rgba(248,113,113,.5)}
.pa-role-tag{font-size:10.5px;padding:1px 8px;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--text-3)}
.pa-role-tag.admin{color:#fbbf24;border-color:rgba(251,191,36,.35)}
.pa-role-tag.super{color:#c4b5fd;border-color:rgba(196,181,253,.4)}

.points-admin-entry h4{margin:0 0 8px;font-size:13px}
.points-admin-entry>p{font-size:12px;color:var(--text-3);line-height:1.6;margin:0 0 14px}

@media (max-width:760px){
  .points-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .points-adjust{grid-template-columns:1fr}
  .pa-member-row{grid-template-columns:minmax(0,1fr) 74px;row-gap:8px}
  .pa-member-ops{grid-column:1/-1;justify-content:flex-start}
  .pa-rule{grid-template-columns:minmax(0,1fr) auto}
}

/* ---- 登录/注册：企微验证码与通讯录带出 ---- */
.auth-lookup{border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 14px;margin:2px 0 6px;background:rgba(255,255,255,.02);display:grid;gap:10px}
.auth-lookup-row{display:flex;align-items:baseline;gap:8px;font-size:12px}
.auth-lookup-row span{color:#7f7f8f;flex:none}
.auth-lookup-row b{font-weight:600;word-break:break-all;color:#d7d7e2}
.auth-lookup-row b.ok{color:#4ade80}
.auth-lookup-row b.warn{color:#fbbf24}
.auth-lookup-row b.bad{color:#f87171}
.auth-candidates{display:grid;gap:6px}
.auth-candidate{text-align:left;border:1px solid rgba(255,255,255,.12);background:transparent;color:#c9c9d6;border-radius:8px;padding:7px 10px;font-size:12px;cursor:pointer;font-family:inherit}
.auth-candidate:hover{border-color:#7c5cff;color:#d2abfe}
.vault-section-title{font-size:13px;font-weight:600;color:#d7d7e2;padding-top:12px;border-top:1px dashed rgba(255,255,255,.12)}

/* ---------- 应用直通车（企业微信统一身份 SSO）----------
   卡片是「按钮」而不是链接：整块都能点，避免只命中文字；
   vault 模式额外挂一个「查看凭据」的小按钮，它的点击要吞掉冒泡，不能顺手把跳转也触发了。 */
.auth-sso-row{display:grid;gap:10px;justify-items:center;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}
.auth-card:not(.is-register)>.auth-sso-row{position:absolute;left:38px;right:38px;bottom:18px;margin-top:0}
.auth-third-title{color:#777785;font-size:11px}
.auth-third-actions{display:flex;justify-content:center;gap:14px}
.auth-provider{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:#0b0b0f;color:#e8e8ee;cursor:pointer;transition:.2s}
.auth-provider:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.3);box-shadow:0 8px 22px rgba(0,0,0,.3)}
.auth-provider svg{width:25px;height:25px}
.auth-provider.wecom{color:#07c160}.auth-provider.email{color:#a78bfa}
.auth-wecom-qr{display:grid;justify-items:center;gap:10px;text-align:center;padding-top:2px}
.auth-wecom-qr strong{font-size:15px;color:#f4f4f7}
.auth-wecom-qr>span{font-size:12px;color:#888895}
.auth-qr-placeholder{width:142px;height:142px;padding:10px;border-radius:12px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.32)}
.auth-qr-placeholder svg{display:block;width:100%;height:100%;fill:#111827;shape-rendering:crispEdges}
.sso-notice{margin:0 0 14px;padding:10px 14px;border:1px solid rgba(124,92,255,.28);background:rgba(124,92,255,.08);color:var(--text-2);border-radius:10px;font-size:12.5px;line-height:1.7}
.sso-notice.is-bad{border-color:rgba(239,68,68,.32);background:rgba(239,68,68,.08);color:#fca5a5}
.sso-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.sso-empty{margin:0;padding:26px 18px;border:1px dashed var(--line);border-radius:12px;color:var(--text-3);font-size:13px;text-align:center;background:rgba(255,255,255,.02)}
.sso-card{display:grid;gap:10px;align-content:start;text-align:left;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);cursor:pointer;font-family:inherit;transition:border-color .18s,background .18s,transform .18s}
.sso-card:hover{border-color:var(--accent);background:var(--panel-hover);transform:translateY(-2px)}
.sso-card.is-busy{opacity:.6;pointer-events:none}
.sso-card.is-off{opacity:.5}
.sso-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.sso-card-top b{font-size:14.5px}
.sso-card-top em{padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--text-3);font-size:11px;font-style:normal;white-space:nowrap}
.sso-card-account{color:var(--text-2);font-size:12px;word-break:break-all}
.sso-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}
.sso-mini{padding:3px 9px;border:1px solid var(--line-hi);border-radius:7px;color:var(--text-2);font-size:11.5px}
.sso-mini:hover{color:var(--text);border-color:var(--accent)}
.sso-open{color:var(--nav-active);font-size:12px}
.sso-admin{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.sso-block-head{margin-bottom:14px}
.sso-block-head h2{margin:0 0 4px;font-size:15px}
.sso-block-head p{margin:0;color:var(--text-3);font-size:12.5px;line-height:1.7;max-width:760px}
.sso-block-head b{color:var(--text-2)}
.sso-bind-form,.sso-system{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:14px}
.sso-bind-form label,.sso-system label{display:grid;gap:6px;min-width:0}
.sso-bind-form label>span,.sso-system label>span{color:var(--text-2);font-size:12px}
.sso-wide,.sso-system .sso-wide{grid-column:1/-1}
.sso-bind-form input,.sso-bind-form select,.sso-system input,.sso-system select{width:100%;padding:9px 11px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:9px;outline:none;font-family:inherit;font-size:13px}
.sso-bind-form input:focus,.sso-system input:focus,.sso-bind-form select:focus,.sso-system select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,255,.14)}
.sso-form-actions{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sso-error{flex:1;color:#f87171;font-size:12px}
.sso-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}
.sso-table{width:100%;border-collapse:collapse;font-size:12.5px}
.sso-table th,.sso-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line-soft);white-space:nowrap}
.sso-table th{color:var(--text-3);font-weight:500;background:rgba(255,255,255,.02)}
.sso-table td small{display:block;color:var(--text-4);font-size:11px;margin-top:2px}
.sso-table tr:hover td{background:var(--cell-hover)}
.sso-ops{display:flex;gap:6px}
.sso-ops .mini-btn.danger{color:#f87171;border-color:rgba(239,68,68,.32)}
.sso-ops .mini-btn.danger:hover{background:rgba(239,68,68,.14)}
.sso-chip{display:inline-block;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--text-2);font-size:11px}
.sso-chip.is-off{color:var(--text-4)}
.sso-state{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px}
.sso-state.enabled{color:var(--green);background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.3)}
.sso-state.disabled{color:#f87171;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3)}
.sso-systems{display:grid;gap:14px}
.sso-system-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px}
.sso-system-head b{font-size:14px}
.sso-switch{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:12px}
.sso-switch input{width:15px;height:15px;accent-color:var(--accent)}
/* 「企微后台配置清单」：把要填的三行原样摆出来，值可复制，避免手拼 URL 拼错 */
.sso-keys{display:grid;gap:8px;margin:0 0 26px}
.sso-key{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02)}
.sso-key .k{flex:0 0 178px;color:var(--text-2);font-size:12.5px}
.sso-key .v{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--text);overflow-wrap:anywhere}
.sso-key .v.is-missing{color:var(--text-3);font-family:inherit}
.sso-key .btn-ghost{flex:0 0 auto;padding:5px 12px;font-size:12px}
@media (max-width:720px){
  .sso-key{flex-wrap:wrap}
  .sso-key .k{flex-basis:100%}
}

/* 任务归档区 */
.archive-task-list{display:grid;gap:10px}
.archive-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(12px)}.archive-toolbar label{display:flex;align-items:center;gap:7px;font-weight:600}.archive-toolbar label input,.archive-select{accent-color:var(--accent)}.archive-toolbar>span{margin-right:auto;color:var(--text-3);font-size:12px}.archive-toolbar button{white-space:nowrap}
.archive-filters{display:flex;align-items:end;gap:10px;margin-bottom:10px}.archive-filters label{display:grid;gap:5px;min-width:170px;color:var(--text-3);font-size:11px}.archive-filters select,.archive-filters input{height:38px;padding:0 11px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--panel-2);color-scheme:dark}.archive-filters button{height:38px}
.archive-group{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.archive-task{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.archive-group>.archive-task{border:0;border-radius:0;background:transparent}.archive-select{flex:0 0 auto;width:17px;height:17px}
.archive-task-main{cursor:pointer;border-radius:7px;transition:background var(--t-fast)}
.archive-task-main:hover,.archive-task-main:focus-visible{background:var(--panel-hover);outline:1px solid rgba(124,92,255,.55);outline-offset:5px}
.archive-task>div:not(.archive-task-actions){display:grid;gap:6px;min-width:0;flex:1}
.archive-task b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.archive-task small,.archive-warning{color:var(--muted)}
.archive-task-actions{display:flex;gap:8px;flex:0 0 auto}
.archive-task-actions button{white-space:nowrap}
.archive-toggle{justify-self:start;margin-top:3px;padding:0;border:0;background:none;color:var(--accent);font-size:11.5px;cursor:pointer}.archive-children{display:grid;border-top:1px solid var(--line-soft);background:rgba(255,255,255,.012)}.archive-child{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:10px 16px 10px calc(16px + var(--archive-depth) * 18px);border-bottom:1px solid var(--line-soft)}.archive-child:last-child{border-bottom:0}.archive-child>span{color:var(--accent)}.archive-child>div{display:grid;gap:3px;min-width:0}.archive-child b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.archive-child small{color:var(--text-3);font-size:11px}
.archive-warning{margin:14px 2px 0;font-size:12px}
@media(max-width:680px){.archive-filters,.archive-toolbar{align-items:stretch;flex-wrap:wrap}.archive-filters label{flex:1 1 145px}.archive-toolbar>span{flex-basis:100%}.archive-task{align-items:flex-start;flex-direction:column}.archive-task-actions{width:100%}.archive-task-actions button{flex:1}}
.task-archived-mark{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--line);border-radius:999px;color:var(--text-3);font-size:10px;font-style:normal;font-weight:500;vertical-align:1px}

/* 角色与权限：独立于账号编辑，后续功能只需向权限目录追加项目 */
.role-permission-panel{width:min(980px,96vw);max-height:92vh}
.role-permission-note{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:13px 15px;border:1px solid rgba(124,92,255,.28);border-radius:11px;background:var(--accent-soft)}
.role-permission-note span{color:var(--text-2);font-size:12.5px}
.role-permission-grid{display:grid;gap:14px}
.role-permission-role{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2)}
.role-permission-role>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
.role-permission-role h3{margin:0 0 4px;font-size:16px}.role-permission-role p{margin:0;color:var(--text-3);font-size:12px}.role-permission-role header em{padding:4px 9px;border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:11px;font-style:normal;white-space:nowrap}
.role-permission-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.role-permission-item{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid var(--line-soft);border-radius:9px;background:var(--panel)}
.role-permission-item input{margin-top:3px;accent-color:var(--accent)}.role-permission-item span{display:grid;gap:3px}.role-permission-item b{font-size:13px}.role-permission-item small{color:var(--text-3);font-size:11px;line-height:1.45}.role-permission-role.is-locked{opacity:.78}
@media(max-width:700px){.role-permission-items{grid-template-columns:1fr}.role-permission-note{align-items:flex-start;flex-direction:column}}

/* 权限页采用“功能板块 → 角色”两级标签，避免后续新增板块时把页面无限拉长 */
.role-permission-panel .vault-body{overflow-y:auto}
.permission-module-tabs{display:flex;gap:8px;margin-bottom:14px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);overflow-x:auto}
.permission-module-tabs button{display:flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border:0;border-radius:9px;color:var(--text-2);background:transparent;white-space:nowrap;cursor:pointer}
.permission-module-tabs button.active{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:var(--glow-brand)}
.permission-module-tabs button:disabled{opacity:.45;cursor:not-allowed}.permission-module-tabs em{font-size:10px;font-style:normal}
.permission-role-tabs{display:flex;gap:5px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.permission-role-tabs button{display:flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid transparent;border-radius:9px;color:var(--text-2);background:transparent;cursor:pointer}
.permission-role-tabs button.active{color:var(--text);border-color:rgba(124,92,255,.42);background:var(--accent-soft)}
.permission-role-tabs em{padding:1px 5px;border-radius:999px;color:var(--accent);background:rgba(124,92,255,.14);font-size:9px;font-style:normal}
.role-permission-grid .role-permission-note{margin-bottom:12px}
.role-permission-role.is-locked{opacity:1}.role-permission-role.is-locked .role-permission-item{opacity:.68}
@media(max-width:700px){.permission-role-tabs{overflow-x:auto}.permission-role-tabs button{white-space:nowrap}}

/* 全站弹窗宽度统一为「任务详情」的 1180px 基准。
   容器仍会受 .vault-modal 的内边距限制，小屏时自动收缩，不会溢出视口。 */
.vault-modal > .vault-panel{
  width:min(1180px,100%);
  max-width:none;
}
.agent-admin-tabs{display:flex;align-items:flex-end;gap:5px;min-height:54px;padding:10px 20px 0;border-bottom:1px solid var(--line);background:var(--panel);overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap}.agent-admin-tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;white-space:nowrap;flex:0 0 auto}
.agent-admin-tabs button{padding:10px 16px;border-radius:9px 9px 0 0;color:var(--text-3);font-size:13px}.agent-admin-tabs button.active{color:var(--text);background:var(--accent-soft);box-shadow:inset 0 -2px var(--accent)}
.public-agent-admin.single-pane{display:block}.agent-admin-pane{grid-column:1/-1;overflow:auto;height:100%}.agent-pane-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.agent-pane-head p{margin-top:4px;color:var(--text-3);font-size:12px}
.model-service-card,.personal-agent-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;margin-bottom:8px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}
.model-service-card b,.model-service-card small,.model-service-card em,.personal-agent-row b,.personal-agent-row small{display:block}.model-service-card small,.personal-agent-row small{margin-top:4px;color:var(--text-3)}.model-service-card em{margin-top:5px;color:var(--green);font-size:11px;font-style:normal}.model-service-card span,.personal-agent-row span{display:flex;gap:6px;flex-wrap:wrap}.personal-agent-row p{margin-top:6px;color:var(--text-2);font-size:12px}
/* 用户自建智能体列表：左侧文字只能占自己的列，不能再把右侧操作按钮挤成竖排。 */
.personal-agent-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center}
.personal-agent-row>div{min-width:0}
.personal-agent-row>div>p{
  display:-webkit-box;max-width:100%;overflow:hidden;overflow-wrap:anywhere;
  line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2;
}
.personal-agent-row>span{flex:0 0 auto;flex-wrap:nowrap;align-items:center}
.personal-agent-row>span>.btn-ghost{min-width:64px;flex:0 0 auto;white-space:nowrap}
@media(max-width:640px){
  .personal-agent-row{grid-template-columns:minmax(0,1fr);align-items:start}
  .personal-agent-row>span{margin-top:10px;justify-content:flex-end}
}
.pa-skill-choice{display:flex!important;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--line-soft);border-radius:9px;background:var(--panel);cursor:pointer}.pa-skill-choice:hover{border-color:rgba(139,92,246,.55)}.pa-skill-choice>input{width:16px!important;height:16px;margin:0!important;flex:0 0 auto}.pa-skill-choice>span{min-width:0}.pa-skill-choice b,.pa-skill-choice small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pa-skill-choice b{color:var(--text);font-size:12px}.pa-skill-choice small{margin-top:3px;color:var(--text-3);font-size:10.5px}
.skill-library-list{display:grid;gap:8px}.skill-library-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.skill-library-main{display:flex;align-items:center;justify-content:space-between;gap:16px}.skill-library-card b,.skill-library-card small,.skill-library-card em{display:block}.skill-library-card small{margin-top:4px;color:var(--text-3);font-size:11px}.skill-library-card em{margin-top:5px;color:var(--green);font-size:11px;font-style:normal}.skill-library-main>span{display:flex;gap:6px;flex-wrap:wrap}.skill-library-card .danger{color:#f87171}.skill-agent-picker{border-top:1px solid var(--line-soft);padding-top:10px}.skill-agent-picker summary{display:flex;align-items:center;gap:7px;color:var(--text-2);font-size:12px;cursor:pointer;list-style:none}.skill-agent-picker summary::-webkit-details-marker{display:none}.skill-agent-picker summary:before{content:'›';font-size:18px;line-height:1;transition:transform .16s}.skill-agent-picker[open] summary:before{transform:rotate(90deg)}.skill-agent-picker summary i{min-width:20px;padding:2px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-style:normal;text-align:center}.skill-agent-picker>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px;margin-top:10px}.skill-agent-picker label{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:9px;background:var(--panel);cursor:pointer}.skill-agent-picker label:has(input:checked){border-color:rgba(139,92,246,.55);background:var(--accent-soft)}.skill-agent-picker input{width:16px;height:16px;flex:0 0 auto}.skill-agent-picker label span{min-width:0}.skill-agent-picker label b,.skill-agent-picker label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-agent-picker>p{margin-top:9px;color:var(--text-3);font-size:10.5px}.skill-agent-picker input:disabled{cursor:wait;opacity:.6}@media(max-width:700px){.skill-library-main{align-items:flex-start;flex-direction:column}.skill-agent-picker>div{grid-template-columns:1fr}}
.core-entry-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.core-entry-placement-options{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.vault-form .core-entry-enabled{display:inline-flex;align-items:center;gap:7px;color:var(--text-2);font-size:12px;cursor:pointer;white-space:nowrap}.vault-form .core-entry-enabled input{width:16px;height:16px;margin:0;padding:0;flex:0 0 auto}.core-entry-form-footer .vault-actions{margin-left:auto}@media(max-width:700px){.core-entry-form-footer{align-items:flex-start;flex-direction:column}.core-entry-placement-options{align-items:flex-start;flex-direction:column;gap:9px}.core-entry-form-footer .vault-actions{width:100%;margin-left:0}.core-entry-form-footer .vault-actions button{flex:1}}
.skill-create-panel{max-height:min(760px,calc(100vh - 32px))}.skill-create-body{display:grid;gap:12px;overflow:hidden}.skill-file-import{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px dashed var(--line);border-radius:11px;background:var(--panel-2)}.skill-file-import h3{font-size:14px}.skill-file-import p{margin-top:5px;color:var(--text-3);font-size:11px}.skill-create-divider{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:11px}.skill-create-divider:before,.skill-create-divider:after{content:"";height:1px;flex:1;background:var(--line)}.skill-create-body>label{display:grid;gap:6px;color:var(--text-2);font-size:12px}.skill-create-body input,.skill-create-body textarea{width:100%;box-sizing:border-box}.skill-content-field{min-height:0}.skill-content-field textarea{height:clamp(220px,38vh,360px);min-height:180px;max-height:360px;overflow-y:auto;resize:none;line-height:1.65}.skill-create-hint{color:var(--text-3);font-size:11px}.skill-create-body .vault-actions{margin-top:0}@media(max-width:700px){.skill-file-import{align-items:flex-start;flex-direction:column}.skill-content-field textarea{height:32vh}}
.model-probe-result{margin:14px 0;padding:12px;border-radius:10px;background:var(--panel-2);color:var(--text-2)}.model-probe-result:empty{display:none}.model-probe-result div{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.model-probe-result i{padding:3px 7px;border:1px solid var(--line);border-radius:7px;font-size:11px;font-style:normal}.model-service-form{max-width:720px;margin-top:18px}.model-service-form input{width:100%}

/* 智能体管理：所有横向尺寸可收缩，弹窗只允许纵向滚动。 */
.task-admin-panel{width:min(1180px,94vw);height:min(850px,92vh)}.task-admin-body{display:flex;flex-direction:column;gap:20px;overflow-y:auto}.task-admin-pane{min-height:0}.task-admin-project-form,.task-admin-settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px;margin-bottom:18px;border:1px solid var(--line);border-radius:18px;background:var(--panel-2)}.task-admin-project-form h3{grid-column:1/-1;margin:0}.task-admin-project-form label,.task-admin-settings-form label{display:flex;flex-direction:column;gap:8px}.task-admin-project-form input,.task-admin-project-form select,.task-admin-project-form textarea,.task-admin-settings-form input,.task-admin-settings-form select,.task-admin-project-card input,.task-admin-project-card select,.task-admin-project-card textarea{width:100%;min-height:46px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--input-bg);color:var(--text)}.task-admin-project-list{display:grid;gap:14px}.task-admin-project-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel-2)}.task-admin-project-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.task-admin-project-head input{font-weight:700;font-size:16px}.task-admin-project-head em{white-space:nowrap;padding:5px 9px;border-radius:99px;background:rgba(74,222,128,.12);color:#6ee7a0;font-style:normal;font-size:12px}.task-admin-project-head em.paused{background:rgba(148,163,184,.12);color:var(--text-3)}.task-admin-project-card textarea{resize:vertical;min-height:72px}.task-admin-project-meta{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin-top:10px}.task-admin-toggle-list{display:grid;gap:12px}.task-admin-toggle-list>label{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 19px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}.task-admin-toggle-list span{display:flex;flex-direction:column;gap:5px}.task-admin-toggle-list small{color:var(--text-3)}.task-admin-toggle-list input{width:20px;height:20px;accent-color:var(--primary)}@media(max-width:760px){.task-admin-project-form,.task-admin-settings-form,.task-admin-project-meta{grid-template-columns:1fr}}
.task-admin-section-head{margin:0 0 14px}.task-admin-section-head h3{margin:0 0 5px;font-size:18px}.task-admin-section-head p{margin:0;color:var(--text-3);font-size:13px}.task-admin-body>.task-admin-pane{padding-top:22px;border-top:1px solid var(--line);scroll-margin-top:12px}.task-admin-body>#taPaneProjects{padding-top:0;border-top:0}.task-admin-body>#taPaneWorkflows{padding-top:20px}.task-admin-body .task-workflow-toolbar h3{margin:0}.task-admin-body .task-workflow-toolbar p{margin:5px 0 0;color:var(--text-3);font-size:13px}
.task-admin-body{display:block;overflow-y:auto}.task-admin-body>.task-admin-pane{padding-top:0;border-top:0}.task-admin-body>#taPaneWorkflows{padding-top:22px;margin-top:24px;border-top:1px solid var(--line)}
.project-create-mode{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:13px;background:var(--input-bg)}.project-create-mode button{flex:1;min-height:40px;border-radius:9px;color:var(--text-3)}.project-create-mode button.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 7px 18px var(--accent-soft)}.task-admin-project-form label small{color:var(--text-3);line-height:1.5}.workflow-project-options,.workflow-project-create-preview{padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--card-bg)}.workflow-project-options{display:grid;gap:18px}.workflow-project-options h4,.workflow-project-create-preview h4{margin:0 0 5px}.workflow-project-options p,.workflow-project-create-preview p{margin:0 0 11px;color:var(--text-3);font-size:12px}.workflow-project-branches{display:flex;gap:10px;flex-wrap:wrap}.workflow-project-branches label{min-width:210px;flex:1;flex-direction:row;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);cursor:pointer}.workflow-project-branches input{width:18px;min-height:18px;accent-color:var(--primary)}.workflow-project-branches span{display:flex;flex-direction:column;gap:3px}.workflow-project-branches small{color:var(--text-3)}.workflow-project-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workflow-project-roles select[multiple]{min-height:78px}.workflow-project-note{color:var(--text-3)}.workflow-project-preview-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.workflow-project-preview-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.workflow-project-preview-list article{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.workflow-project-preview-list span,.workflow-project-preview-list small{color:var(--text-3);font-size:12px}@media(max-width:760px){.workflow-project-roles,.workflow-project-preview-list{grid-template-columns:1fr}.workflow-project-preview-head{align-items:flex-start;flex-direction:column}}
.task-workflow-toolbar,.task-workflow-editor-head,.task-workflow-stage-head,.task-workflow-save{display:flex;align-items:center;justify-content:space-between;gap:16px}.task-workflow-toolbar{margin-bottom:16px}.task-workflow-toolbar h3,.task-workflow-editor-head h3,.task-workflow-stage-head h4{margin:0}.task-workflow-toolbar p,.task-workflow-editor-head p{margin:5px 0 0;color:var(--text-3)}.task-workflow-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:16px;align-items:start}.task-workflow-list{display:grid;gap:10px}.task-workflow-card{padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--panel-2)}.task-workflow-card.active{border-color:var(--primary);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 35%,transparent)}.task-workflow-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.task-workflow-card h4{margin:0 0 5px;font-size:15px}.task-workflow-card p{margin:8px 0;color:var(--text-3);font-size:13px}.task-workflow-card-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--text-3);font-size:12px}.task-workflow-status{padding:4px 8px;border-radius:99px;font-size:12px;white-space:nowrap;background:rgba(148,163,184,.12);color:var(--text-3)}.task-workflow-status.published{background:rgba(74,222,128,.12);color:#6ee7a0}.task-workflow-status.draft{background:rgba(168,85,247,.16);color:#c4a4ff}.task-workflow-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.task-workflow-actions button{min-height:34px;padding:6px 10px}.task-workflow-editor,.task-workflow-preview{min-width:0;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--panel-2)}.task-workflow-basics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:16px}.task-workflow-basics label,.task-stage-fields label,.task-template-task label{display:flex;flex-direction:column;gap:7px}.task-workflow-editor input,.task-workflow-editor select,.task-workflow-editor textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--input-bg);color:var(--text)}.task-workflow-editor textarea{resize:vertical;min-height:72px}.task-workflow-stage-head{margin:22px 0 12px}.task-workflow-stage-head small{display:block;margin-top:4px;color:var(--text-3)}.task-workflow-stages{display:grid;gap:12px}.task-template-stage{padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--card-bg)}.task-template-stage-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-template-stage-head h5{margin:0}.task-stage-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-top:12px}.task-template-tasks{display:grid;gap:10px;margin-top:12px}.task-template-task{position:relative;display:grid;grid-template-columns:1.6fr .8fr 1fr 1fr;gap:10px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2)}.task-template-task .task-field-wide{grid-column:span 2}.task-template-task .task-field-full{grid-column:1/-1}.task-template-task-options{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.task-template-task-options label{flex-direction:row;align-items:center}.task-template-task-options input[type=checkbox]{width:18px;min-height:18px}.task-template-task-remove{position:absolute;right:10px;top:9px}.task-template-add-task{margin-top:11px}.task-workflow-save{margin-top:16px}.task-workflow-save-status{color:#6ee7a0;font-size:13px}.task-workflow-preview h3{margin-top:0}.task-workflow-preview-stage{margin-top:14px;padding:13px;border:1px solid var(--line);border-radius:13px}.task-workflow-preview-stage h4{margin:0 0 9px}.task-workflow-preview-task{padding:9px 0;border-top:1px solid var(--line);font-size:13px}.task-workflow-preview-task:first-of-type{border-top:0}.task-workflow-preview-task small{display:block;margin-top:4px;color:var(--text-3)}@media(max-width:900px){.task-workflow-layout{grid-template-columns:1fr}.task-template-task{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.task-workflow-toolbar,.task-workflow-editor-head,.task-workflow-stage-head{align-items:flex-start;flex-direction:column}.task-workflow-basics,.task-stage-fields,.task-template-task{grid-template-columns:1fr}.task-template-task .task-field-wide,.task-template-task .task-field-full{grid-column:1}.task-workflow-actions{gap:5px}}
.public-agent-panel,.public-agent-admin,.public-agent-form,.agent-admin-pane{min-width:0;overflow-x:hidden}
.workbench-agent-admin-pane{padding:18px 20px 24px}.workbench-agent-form,.workbench-agent-migration{display:grid;gap:12px;padding:16px;margin:0 0 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-agent-form label,.workbench-agent-migration label{display:grid;gap:6px;color:var(--text-3);font-size:12px}.workbench-agent-form input,.workbench-agent-migration select{min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel-2)}.workbench-agent-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workbench-agent-actions span{color:var(--text-3);font-size:12px}.workbench-agent-actions span[data-state="ok"]{color:var(--success,#27c477)}.workbench-agent-migration h4{margin:0}.workbench-agent-migration p,.workbench-agent-notice p{margin:0;color:var(--text-3);font-size:12px;line-height:1.65}.workbench-agent-status{padding:10px 12px;border-radius:8px;background:var(--panel-2);color:var(--text-2);font-size:12px;overflow-wrap:anywhere}.workbench-agent-notice{display:grid;gap:6px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--warning,#e8a23a) 35%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--warning,#e8a23a) 7%,var(--panel))}.workbench-agent-notice b{font-size:13px}
.workbench-agent-catalog{display:grid;gap:12px;padding:16px;margin:0 0 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-agent-catalog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.workbench-agent-catalog-head h4{margin:0 0 5px}.workbench-agent-catalog-head p{margin:0;color:var(--text-3);font-size:12px;line-height:1.6}.workbench-agent-catalog-list{display:grid;gap:8px}.workbench-agent-agent-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,180px) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.workbench-agent-agent-card>div{min-width:0}.workbench-agent-agent-card b,.workbench-agent-agent-card small,.workbench-agent-agent-card em{display:block}.workbench-agent-agent-card small{margin-top:4px;color:var(--text-3);font-size:11px;overflow-wrap:anywhere}.workbench-agent-agent-card em{margin-top:4px;color:var(--success,#27c477);font-size:10px;font-style:normal}.workbench-agent-agent-card label{display:grid;gap:4px;color:var(--text-3);font-size:10px}.workbench-agent-agent-card select{min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel)}@media(max-width:700px){.workbench-agent-catalog-head{flex-direction:column}.workbench-agent-agent-card{grid-template-columns:minmax(0,1fr) auto}.workbench-agent-agent-card label{grid-column:1/-1;grid-row:2}.workbench-agent-agent-card>button{grid-column:2;grid-row:1}}
/* Workbench 自有智能体 公共目录中的 SOP 与通用技能管理面板。 */
.workbench-agent-resources{display:grid;gap:14px;padding:18px 20px 24px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin:16px 0}.workbench-agent-resources[hidden]{display:none}.workbench-agent-resource-picker{display:flex;align-items:center;gap:8px}.workbench-agent-resource-picker select{max-width:280px;min-width:180px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--panel-2)}.workbench-agent-resource-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.workbench-agent-resource-columns>section{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.workbench-agent-resource-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.workbench-agent-resource-section-head h5{margin:0;font-size:14px}.workbench-agent-resource-section-head small{display:block;color:var(--text-3);font-size:11px;margin-top:4px}.workbench-agent-resource-list{display:grid;gap:8px;max-height:360px;overflow:auto}.workbench-agent-resource-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.workbench-agent-resource-card.draft{border-color:color-mix(in srgb,var(--warning,#e8a23a) 35%,var(--line))}.workbench-agent-resource-card b,.workbench-agent-resource-card small{display:block;overflow-wrap:anywhere}.workbench-agent-resource-card small{margin-top:4px;color:var(--text-3);font-size:11px}.workbench-agent-skill-actions{display:flex;gap:6px}.workbench-agent-resource-card details{grid-column:1/-1;color:var(--text-3);font-size:11px}.workbench-agent-resource-card details summary{cursor:pointer}.workbench-agent-resource-card pre{max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:10px;border-radius:8px;background:var(--panel-2)}.workbench-agent-editor{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.workbench-agent-editor[hidden]{display:none}.workbench-agent-editor textarea{width:100%;resize:vertical;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.workbench-agent-editor>#workbenchAgentSopJson{height:280px;max-height:45vh}.workbench-agent-rewrite-label{display:grid;gap:6px;color:var(--text-3);font-size:12px}.workbench-agent-skill-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workbench-agent-skill-form label{display:grid;gap:6px;color:var(--text-3);font-size:12px}.workbench-agent-skill-form label.wide{grid-column:1/-1}.workbench-agent-skill-form input,.workbench-agent-skill-form textarea{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.workbench-agent-skill-form textarea{min-height:200px;resize:vertical}.workbench-agent-skill-form label.wide button{justify-self:start}@media(max-width:800px){.workbench-agent-resource-columns{grid-template-columns:1fr}.workbench-agent-resource-picker{width:100%}.workbench-agent-resource-picker select{flex:1;min-width:0}.workbench-agent-skill-form{grid-template-columns:1fr}.workbench-agent-skill-form label.wide{grid-column:auto}}
.workbench-agent-workspace{display:grid;gap:14px;padding:18px 20px 24px;margin:16px 0;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workbench-agent-workspace[hidden]{display:none}.workbench-agent-workspace-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workbench-agent-workspace-content>section{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.workbench-agent-workspace-content h5{margin:0 0 10px}.workbench-agent-workspace-content h5 small{color:var(--text-3)}.workbench-agent-workspace-card{margin:7px 0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.workbench-agent-workspace-card summary{cursor:pointer;font-weight:600}.workbench-agent-workspace-card pre{max-height:300px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:var(--text-2)}.workbench-agent-boundary{grid-column:1/-1;padding:11px;border:1px solid color-mix(in srgb,var(--warning,#e8a23a) 35%,var(--line));border-radius:9px;color:var(--text-2)}.workbench-agent-team-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workbench-agent-team-list{display:grid;gap:7px;max-height:360px;overflow:auto}.workbench-agent-team-list label{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;background:var(--panel)}.workbench-agent-team-list span,.workbench-agent-team-list small{display:block}.workbench-agent-team-list small{color:var(--text-3)}.workbench-agent-team-options{display:flex;flex-wrap:wrap;gap:9px;margin:10px 0}.workbench-agent-team-options label{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:8px}.workbench-agent-console-link{display:inline-flex;align-items:center;text-decoration:none}.agent-pane-head>.workbench-agent-console-link{margin-left:8px}@media(max-width:800px){.workbench-agent-workspace-content,.workbench-agent-team-grid{grid-template-columns:1fr}}
/* 简介等长内容保持整行；技能选择区域内部按两列排列。 */
@media(min-width:801px){.public-agent-form .pa-skill-files{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.public-agent-form .pa-skill-files{grid-template-columns:1fr}}
.agent-composer-tools{display:flex;align-items:center;gap:8px}.agent-attach-btn{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:9px;color:var(--text-2);background:var(--panel-2);font-size:20px;line-height:1}.agent-attach-btn:hover{border-color:var(--accent);color:var(--accent)}#agentChatModel{max-width:220px;height:32px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:9px;color:var(--text-2);background:var(--panel-2)}.agent-attachment-preview{display:flex;gap:7px;flex-wrap:wrap;padding:8px 2px}.agent-attachment-chip{display:flex;align-items:center;gap:7px;max-width:220px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2)}.agent-attachment-chip img{width:28px;height:28px;border-radius:6px;object-fit:cover}.agent-attachment-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);font-size:11px}.agent-attachment-chip button{color:var(--text-3);font-size:15px}.agent-message-attachments{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.agent-message-attachments img{max-width:180px;max-height:140px;border-radius:9px;object-fit:cover}.agent-message-file{padding:6px 8px;border:1px solid var(--line-soft);border-radius:8px;color:var(--text-3);font-size:11px}
.public-agent-admin>* ,.pa-grid>*{min-width:0}
.public-agent-form fieldset{max-width:100%;min-width:0;overflow:hidden}
.pa-grid input,.pa-grid select,.pa-grid textarea{box-sizing:border-box;width:100%;max-width:100%}
.pa-grid select[multiple]{min-height:108px;padding:6px;overflow-x:hidden}
.pa-grid select[multiple] option{padding:7px 8px;border-radius:6px}
.pa-avatar-upload{display:flex;align-items:center;gap:10px;min-height:44px}
.pa-avatar-upload img,.pa-avatar-upload>span{width:40px;height:40px;flex:0 0 40px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,var(--accent),#22bde8);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:700}
.pa-avatar-upload img[hidden],.pa-avatar-upload>span[hidden]{display:none!important}
#publicAgentAdminList{overflow:visible}
.pa-list-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:5px}
#publicAgentAdminList .pa-list-row>[data-pa]{grid-template-columns:34px minmax(0,1fr);align-items:center;width:100%;min-width:0}
.pa-list-row [data-pa] b,.pa-list-row [data-pa] small{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-list-avatar{grid-row:1/3;width:32px;height:32px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.pa-list-avatar img{width:100%;height:100%;object-fit:cover}.pa-list-avatar i{font-style:normal}
#publicAgentAdminList .pa-more{display:grid;place-items:center;width:32px;height:32px;padding:0;text-align:center;font-size:20px}
.pa-row-menu{position:absolute;z-index:20;right:0;top:38px;min-width:110px;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 14px 35px rgba(0,0,0,.38)}
.pa-row-menu[hidden]{display:none!important}#publicAgentAdminList .pa-row-menu button{width:100%;border:0;background:transparent}.pa-row-menu button:hover{background:var(--panel-hover)!important}

/* 左侧智能体列表使用紧凑横向行，更多按钮属于同一条目。 */
#publicAgentAdminList .pa-list-row{display:flex;align-items:center;gap:4px;width:100%;min-height:58px;padding:5px 6px 5px 7px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}
#publicAgentAdminList .pa-list-row:hover{border-color:var(--line-hi);background:var(--panel-hover)}
#publicAgentAdminList .pa-list-row>[data-pa]{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;row-gap:1px;align-items:center;flex:1 1 auto;width:auto;min-width:0;padding:3px;border:0;border-radius:8px;background:transparent}
#publicAgentAdminList .pa-list-row>[data-pa]:hover{background:transparent}
#publicAgentAdminList .pa-list-avatar{grid-column:1;grid-row:1/3}
#publicAgentAdminList .pa-list-row [data-pa] b{grid-column:2;grid-row:1;font-size:13px}
#publicAgentAdminList .pa-list-row [data-pa] small{grid-column:2;grid-row:2;font-size:10.5px}
#publicAgentAdminList .pa-list-row>.pa-more{position:static;display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;text-align:center;line-height:1}
#publicAgentAdminList .pa-list-row>.pa-more:hover{background:var(--accent-soft)}

/* 聊天页智能体选择器：即使增强脚本尚未执行，也不显示系统金属灰下拉。 */
.agent-chat-create>select{width:100%;height:40px;padding:0 38px 0 13px;border:1px solid var(--line);border-radius:11px;appearance:none;-webkit-appearance:none;background:linear-gradient(45deg,transparent 50%,var(--text-3) 50%) calc(100% - 17px) 17px/5px 5px no-repeat,linear-gradient(135deg,var(--text-3) 50%,transparent 50%) calc(100% - 12px) 17px/5px 5px no-repeat,var(--panel-2);color:var(--text)}
.agent-chat-create .cselect-trigger{height:42px;border-radius:12px;background:var(--panel-2)}

/* 卡片呈现智能体身份、简介和 Slogan，不再使用“开始对话”动作字样。 */
.public-agent-cards button{align-content:start;min-width:0}.public-agent-card-head{display:flex;align-items:center;gap:10px;min-width:0}.public-agent-card-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-agent-card-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.public-agent-card-avatar img{width:100%;height:100%;object-fit:cover}.public-agent-card-avatar i{font-style:normal}.public-agent-cards em{color:var(--text-2);font-size:12px;line-height:1.5;padding-top:7px;border-top:1px solid var(--line-soft)}
.pa-test-panel{width:min(620px,100%)!important;height:auto;max-height:min(680px,90vh)}
.pa-test-body{display:grid;gap:14px;overflow-y:auto}.pa-test-body label{display:grid;gap:7px;color:var(--text-3);font-size:12px}.pa-test-body textarea{box-sizing:border-box;width:100%;min-height:130px;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text);font:inherit}.pa-test-body .model-probe-result{white-space:pre-wrap;line-height:1.65}
.pa-status-confirm-panel{width:min(520px,100%)!important;height:auto}.pa-status-confirm-body{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px 16px;align-items:start}.pa-status-confirm-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));font-size:24px;font-weight:700}.pa-status-confirm-body h3{margin:3px 0 7px;font-size:17px}.pa-status-confirm-body p{color:var(--text-3);font-size:12.5px;line-height:1.7}.pa-status-confirm-body .vault-error,.pa-status-confirm-body .vault-actions{grid-column:1/-1}.pa-status-confirm-panel[data-action="disable"] .pa-status-confirm-icon{background:linear-gradient(135deg,#f59e0b,#ef4444)}.pa-status-confirm-panel[data-action="disable"] #paStatusConfirmSubmit{background:linear-gradient(135deg,#f59e0b,#ef4444)}
.session-delete-panel{width:min(500px,100%)!important;height:auto}.session-delete-body{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px 16px;align-items:start}.session-delete-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#f87171;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.22)}.session-delete-icon .ico{width:22px;height:22px}.session-delete-body h3{margin:2px 0 7px;color:var(--text);font-size:16px}.session-delete-body p{color:var(--text-3);font-size:12.5px;line-height:1.65}.session-delete-body .vault-error,.session-delete-body .vault-actions{grid-column:1/-1}.session-delete-body .vault-actions{margin-top:4px}
.agent-session.is-renaming{grid-template-columns:36px minmax(0,1fr);cursor:default;border-color:rgba(124,92,255,.55);background:var(--panel-hover)}.agent-session.is-renaming .agent-session-more{display:none}.session-inline-rename{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;width:100%;min-width:0}.session-inline-rename input{box-sizing:border-box;width:100%;min-width:0;height:31px;padding:0 9px;border:1px solid var(--accent);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;outline:none;box-shadow:0 0 0 2px rgba(124,92,255,.13)}.session-inline-rename>span{display:flex;gap:4px}.session-inline-rename button{height:31px;padding:0 8px;border:0;border-radius:7px;font-size:11px}.session-inline-save{color:#fff;background:var(--accent)}.session-inline-cancel{color:var(--text-3);background:var(--panel-2)!important;border:1px solid var(--line)!important}.session-inline-error{grid-column:1/-1;color:#f87171!important;white-space:normal!important}
.skill-create-panel.agent-skill-mode .skill-file-import,.skill-create-panel.agent-skill-mode .skill-create-divider{display:none}
.agent-monitor-panel{height:min(820px,calc(100vh - 32px))}.agent-monitor-body{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;min-height:0;overflow:hidden}.agent-monitor-filters{display:grid;grid-template-columns:180px 180px minmax(220px,1fr) auto;gap:8px}.agent-monitor-filters select,.agent-monitor-filters input{width:100%;box-sizing:border-box}.agent-monitor-layout{display:grid;grid-template-columns:minmax(300px,38%) minmax(0,1fr);gap:12px;min-height:0}.agent-monitor-list,.agent-monitor-detail{min-height:0;overflow-y:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.agent-monitor-list{padding:8px}.agent-monitor-row{display:grid;width:100%;gap:5px;padding:12px;text-align:left;border:1px solid transparent;border-radius:10px;color:var(--text);background:transparent}.agent-monitor-row:hover,.agent-monitor-row.active{border-color:rgba(124,92,255,.46);background:var(--accent-soft)}.agent-monitor-row>span{display:flex;align-items:center;gap:7px}.agent-monitor-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-monitor-row em{padding:2px 6px;border-radius:999px;color:#fbbf24;background:rgba(251,191,36,.12);font-size:9px;font-style:normal}.agent-monitor-row small,.agent-monitor-row i{color:var(--text-3);font-size:10.5px;font-style:normal}.agent-monitor-row p{display:-webkit-box;overflow:hidden;color:var(--text-2);font-size:11.5px;line-height:1.5;-webkit-line-clamp:2;-webkit-box-orient:vertical}.agent-monitor-detail{padding:15px}.agent-monitor-detail>header{display:flex;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.agent-monitor-detail header p,.agent-monitor-detail header small{margin-top:5px;color:var(--text-3);font-size:11px}.agent-monitor-messages{display:grid;gap:10px;padding-top:14px}.agent-monitor-messages article{max-width:86%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.agent-monitor-messages article.user{justify-self:end;background:var(--accent-soft)}.agent-monitor-messages b{font-size:11px}.agent-monitor-messages p{margin-top:5px;white-space:pre-wrap;word-break:break-word;color:var(--text-2);font-size:12px;line-height:1.65}.agent-monitor-messages time{display:block;margin-top:6px;color:var(--text-3);font-size:9.5px}@media(max-width:800px){.agent-monitor-filters{grid-template-columns:1fr 1fr}.agent-monitor-layout{grid-template-columns:1fr}.agent-monitor-list{max-height:34vh}}
.agent-monitor-filters{grid-template-columns:minmax(180px,1fr) repeat(2,minmax(145px,.65fr)) minmax(120px,.55fr) auto auto;align-items:end}.agent-monitor-filters select{width:100%;box-sizing:border-box}.agent-monitor-filters label{display:grid;gap:5px;color:var(--text-3);font-size:10.5px}.agent-monitor-filters input,.agent-monitor-filters select,.agent-monitor-filters button{height:40px}.agent-monitorFilterSummary{min-height:18px;margin-top:-4px;color:var(--text-3);font-size:11px}@media(max-width:1080px){.agent-monitor-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.agent-monitor-filters{grid-template-columns:1fr 1fr}.agent-monitor-filters>#agentMonitorUser{grid-column:1/-1}}

/* 会话日期沿用工作台表单外观，避免系统原生 date 控件在深色弹窗里出现透明底和拆散的年月日。 */
.agent-monitor-filters input[type="date"]{min-width:0;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--input-bg,var(--panel-2));color:var(--text);font:inherit;line-height:40px;outline:0;color-scheme:dark}
.agent-monitor-filters input[type="date"]:hover{border-color:var(--line-hi)}
.agent-monitor-filters input[type="date"]:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(124,92,255,.14)}
.agent-monitor-filters input[type="date"]::-webkit-date-and-time-value{min-height:1.2em;text-align:left}
.agent-monitor-filters input[type="date"]::-webkit-datetime-edit{padding:0;color:var(--text)}
.agent-monitor-filters input[type="date"]::-webkit-datetime-edit-fields-wrapper{padding:0}
.agent-monitor-filters input[type="date"]::-webkit-datetime-edit-year-field,.agent-monitor-filters input[type="date"]::-webkit-datetime-edit-month-field,.agent-monitor-filters input[type="date"]::-webkit-datetime-edit-day-field{color:var(--text)}
.agent-monitor-filters input[type="date"]::-webkit-calendar-picker-indicator{margin:0 0 0 8px;padding:5px;border-radius:7px;cursor:pointer;opacity:.72}
.agent-monitor-filters input[type="date"]::-webkit-calendar-picker-indicator:hover{background:var(--accent-soft);opacity:1}

/* 任务默认值：三个考勤开关同行紧凑展示，说明在左、开关在右。 */
#taskAdminDefaultsForm{grid-template-columns:repeat(6,minmax(0,1fr))}
#taskAdminDefaultsForm>label{grid-column:span 3}
#taskAdminDefaultsForm>label:has(#taShowAttendanceTaskOptions),#taskAdminDefaultsForm>label:has(#taDefaultDeferDue),#taskAdminDefaultsForm>label:has(#taDefaultRecurrenceSkip){grid-column:span 2;min-height:76px;flex-direction:row;align-items:center;padding:13px 15px}
#taskAdminDefaultsForm>.vault-error,#taskAdminDefaultsForm>.vault-actions{grid-column:1/-1}
@media(max-width:980px){#taskAdminDefaultsForm>label:has(#taShowAttendanceTaskOptions),#taskAdminDefaultsForm>label:has(#taDefaultDeferDue),#taskAdminDefaultsForm>label:has(#taDefaultRecurrenceSkip){grid-column:span 3}}
@media(max-width:700px){#taskAdminDefaultsForm{grid-template-columns:1fr}#taskAdminDefaultsForm>label,#taskAdminDefaultsForm>label:has(#taShowAttendanceTaskOptions),#taskAdminDefaultsForm>label:has(#taDefaultDeferDue),#taskAdminDefaultsForm>label:has(#taDefaultRecurrenceSkip){grid-column:1}}
.agent-monitor-detail-actions{display:grid;justify-items:end;gap:8px}.agent-monitor-detail-actions .danger,#agentMonitorClearAll.danger{border-color:rgba(239,68,68,.38);color:#f87171}.agent-monitor-detail-actions .danger:hover,#agentMonitorClearAll.danger:hover{background:rgba(239,68,68,.12)}
.agent-monitor-pane:not([hidden]){display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;overflow:hidden}.agent-monitor-pane .agent-monitor-body{height:100%}

/* Workbench 自有智能体 管理各标签共享同一可用高度：标签内容自己滚动，避免底部操作被弹窗裁切。 */
.public-agent-admin.single-pane{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  min-height:0;
  overflow:hidden;
}
.public-agent-admin.single-pane>.workbench-agent-admin-pane,
.public-agent-admin.single-pane>.workbench-agent-resources,
.public-agent-admin.single-pane>.workbench-agent-workspace,
.public-agent-admin.single-pane>.agent-admin-pane{
  width:100%;
  height:100%;
  min-height:0;
  margin:0;
  overflow-x:hidden;
  overflow-y:auto;
  box-sizing:border-box;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.workbench-agent-editor .workbench-agent-actions{
  position:sticky;
  z-index:4;
  bottom:-14px;
  margin:0 -14px -14px;
  padding:12px 14px 14px;
  border-top:1px solid var(--line);
  background:color-mix(in srgb,var(--panel-2) 96%,transparent);
  box-shadow:0 -12px 24px rgba(0,0,0,.18);
}
@media(max-height:760px){
  .public-agent-panel{height:calc(100vh - 16px)}
  .public-agent-panel>.vault-head{padding:14px 20px}
  .agent-admin-tabs{min-height:48px;padding-top:6px}
  .agent-admin-tabs button{min-height:40px;padding:8px 13px}
  .public-agent-panel>.public-agent-admin{padding:14px 18px}
}

/* 智能体管理两栏填满弹窗可用高度；操作菜单按视口定位，不受左栏滚动容器裁切。 */
.public-agent-panel>.public-agent-admin{flex:1 1 auto;min-height:0;align-items:stretch}
.public-agent-admin>.agent-public-list{height:100%;min-height:0;box-sizing:border-box}
#publicAgentAdminList .pa-list-row.active{border-color:rgba(124,92,255,.62);background:var(--accent-soft)}
.pa-row-menu{position:fixed;z-index:5000;right:auto}

/* 所有弹窗只允许纵向滚动；内容必须在面板内收缩。 */
.vault-modal>.vault-panel,.vault-modal .vault-body{overflow-x:hidden!important}
.vault-modal .vault-body>*{max-width:100%;min-width:0;box-sizing:border-box}

/* 积分规则的字段数量不固定，用可换行 flex 避免隐式网格列撑出横向滚动条。 */
.pa-rule{display:flex;flex-wrap:wrap;align-items:center}
.pa-rule-main{flex:1 1 420px}
.pa-rule-field,.pa-rule-toggle{flex:0 1 auto;min-width:0}

/* 积分管理后台只允许纵向滚动；页签、卡片、规则和操作区均在面板内换行。 */
#pointsAdminModal .points-admin-panel,#pointsAdminModal .points-body,#pointsAdminModal .points-pane{min-width:0;max-width:100%;overflow-x:hidden!important}
#pointsAdminModal .points-pane{overflow-y:auto}
#pointsAdminModal .points-tabs{width:100%;max-width:100%;flex-wrap:wrap!important;overflow:visible!important}
#pointsAdminModal .points-tabs button{flex:0 1 auto;min-width:0;white-space:normal}
#pointsAdminModal .points-pane>*,#pointsAdminModal .points-admin-list,#pointsAdminModal .pa-level-list{min-width:0;max-width:100%;box-sizing:border-box}
#pointsAdminModal .pa-member-row,#pointsAdminModal .pa-level-row,#pointsAdminModal .points-ledger-row,#pointsAdminModal .points-review-item{min-width:0;max-width:100%;box-sizing:border-box}
#pointsAdminModal .pa-member-ops,#pointsAdminModal .points-review-actions{min-width:0;flex-wrap:wrap}
#pointsAdminModal .pa-rule-main,#pointsAdminModal .pa-rule-desc,#pointsAdminModal .points-ledger-note,#pointsAdminModal .points-review-sub{overflow-wrap:anywhere}
@media(max-width:900px){#pointsAdminModal .pa-level-row{grid-template-columns:48px minmax(0,1fr)}#pointsAdminModal .pa-level-row label,#pointsAdminModal .pa-level-ops{min-width:0}#pointsAdminModal .pa-level-ops{grid-column:1/-1}}

/* 放在所有功能弹窗样式之后，确保新增弹窗也继续遵守 1180px 统一宽度。 */
.vault-modal > .vault-panel{width:min(1180px,100%)!important;max-width:none!important}

/* 账号与安全 */
.avatar.has-image{background-position:center;background-size:cover;background-repeat:no-repeat;color:transparent}
.set-item[data-set="security"]{cursor:pointer}.set-item[data-set="security"]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.security-panel{height:min(820px,calc(100vh - 32px))}.security-body{display:grid;gap:14px;align-content:start;overflow-y:auto}
.security-profile-card{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px;padding:20px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,var(--panel-2),var(--panel))}
.security-avatar-wrap{display:grid;justify-items:center;align-content:center;gap:11px;border-right:1px solid var(--line-soft)}
.security-avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,var(--accent),#22bde8);color:#fff;display:grid;place-items:center;font-size:34px;font-weight:700;box-shadow:0 10px 28px rgba(92,66,220,.28)}
.security-identity{align-self:center}.security-identity h3{font-size:22px}.security-identity>p{margin-top:5px;color:var(--accent)}.security-identity dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.security-identity dl div{padding:10px 12px;border-radius:10px;background:var(--panel-2)}.security-identity dt{color:var(--text-3);font-size:10px}.security-identity dd{margin-top:4px;color:var(--text-2);font-size:12px}
.security-section{padding:18px 20px;border:1px solid var(--line);border-radius:15px;background:var(--panel-2)}.security-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.security-section h3{font-size:15px}.security-section header p{margin-top:5px;color:var(--text-3);font-size:11.5px}.security-badge,.security-status{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:rgba(34,197,94,.12);color:#4ade80;font-size:10.5px}.security-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.security-form label{display:grid;gap:6px;color:var(--text-2);font-size:11px}.security-form input{box-sizing:border-box;width:100%}.security-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.security-form .vault-error,.security-form .vault-actions{grid-column:1/-1}.security-device{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:12px;border-radius:11px;background:var(--panel)}.security-device b,.security-device small{display:block}.security-device small{margin-top:4px;color:var(--text-3);font-size:10.5px}
.security-binding-list{display:grid;gap:9px;margin-top:14px}.security-binding-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:12px;min-width:0;padding:12px;border-radius:11px;background:var(--panel)}.security-binding-brand{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#22bde8);color:#fff;font-size:18px;font-weight:700}.security-binding-main{min-width:0}.security-binding-main b,.security-binding-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.security-binding-main small{margin-top:4px;color:var(--text-3);font-size:10.5px}.security-binding-state{padding:4px 8px;border-radius:999px;color:var(--text-3);background:var(--panel-2);font-size:10px;white-space:nowrap}.security-binding-state.bound{color:#4ade80;background:rgba(34,197,94,.12)}.security-binding-actions{display:flex;gap:7px;white-space:nowrap}.security-bindings>.vault-error{margin-top:8px}
@media(max-width:700px){.security-profile-card{grid-template-columns:1fr}.security-avatar-wrap{padding-bottom:16px;border-right:0;border-bottom:1px solid var(--line-soft)}.security-identity dl,.security-form{grid-template-columns:1fr}.security-device{align-items:flex-start;flex-direction:column}.security-binding-row{grid-template-columns:42px minmax(0,1fr) auto}.security-binding-state{grid-column:3}.security-binding-actions{grid-column:1/-1;justify-content:flex-end}}

/* 用户个人智能体创建与模板继承 */
.agent-head-actions{display:flex;align-items:center}.agent-action-combo{position:relative;display:flex;align-items:stretch}.agent-head-actions .agent-new-btn{white-space:nowrap}.agent-action-primary{border-radius:9px 0 0 9px!important;border-right:0!important}.agent-action-toggle{width:30px;padding:0 8px!important;border-radius:0 9px 9px 0!important}.agent-action-toggle .ico{width:12px!important}.agent-action-toggle[aria-expanded="true"]{color:var(--text);background:var(--panel-hover);border-color:var(--line-hi)}.agent-action-menu{position:absolute;z-index:160;top:calc(100% + 7px);right:0;width:156px;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 16px 36px rgba(0,0,0,.38)}.agent-action-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border:0;border-radius:7px;color:var(--text-2);font-size:11px;text-align:left;background:transparent;cursor:pointer}.agent-action-menu button:hover{color:var(--text);background:var(--panel-hover)}.agent-action-menu button[hidden]{display:none}.agent-action-menu .ico{width:13px;height:13px}
.personal-agent-create-panel{height:min(820px,calc(100vh - 32px))}.personal-agent-create-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;min-height:0;overflow:hidden}.personal-agent-create-body>.vault-form{overflow-y:auto;align-content:start;padding-right:5px}.personal-agent-create-body textarea{box-sizing:border-box;width:100%;min-height:88px;resize:vertical}.personal-agent-create-body label>small{display:none}.personal-agent-inherit{padding:13px;border:1px solid rgba(124,92,255,.35);border-radius:11px;background:var(--accent-soft)}.personal-agent-inherit b{font-size:12.5px}.personal-agent-inherit p{margin-top:5px;color:var(--text-2);font-size:11.5px;line-height:1.6}.my-personal-agents{min-height:0;overflow-y:auto;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.my-personal-agents h3{margin-bottom:10px;font-size:14px}.my-personal-agent{display:grid;gap:6px;padding:11px;margin-bottom:7px;border:1px solid var(--line-soft);border-radius:9px;background:var(--panel)}.my-personal-agent b,.my-personal-agent small{display:block}.my-personal-agent small{margin-top:4px}.my-personal-agent p{color:#fbbf24;font-size:10.5px}.public-agent-cards button:has(.personal-agent-badge){border-color:rgba(34,189,232,.35)}.personal-agent-badge{margin-left:auto;padding:2px 6px;border-radius:999px;color:#22bde8;background:rgba(34,189,232,.12);font-size:9px;font-style:normal}@media(max-width:800px){.personal-agent-create-body{grid-template-columns:1fr;overflow-y:auto}.personal-agent-create-body>.vault-form,.my-personal-agents{overflow:visible}.agent-head-actions{gap:3px}.agent-head-actions .agent-new-btn{padding:7px;font-size:10px}}

/* 继承自公共智能体的内容仅作为灰色占位预览，用户输入后自动恢复正常文字颜色。 */
.my-personal-agent{position:relative}.my-personal-agent.has-menu{padding-right:42px}.my-personal-agent-more{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:8px;color:var(--text-3);background:var(--panel-2)}.my-personal-agent-menu{position:absolute;z-index:20;top:38px;right:8px;display:grid;width:132px;padding:5px;border:1px solid var(--line);border-radius:9px;background:var(--panel);box-shadow:0 12px 28px rgba(0,0,0,.35)}.my-personal-agent-menu button{padding:8px 9px;border-radius:6px;color:var(--text-2);font-size:11px;text-align:left}.my-personal-agent-menu button:hover{background:var(--panel-hover);color:var(--text)}.my-personal-agent-menu .danger{color:#fb7185}
.personal-agent-create-body input::placeholder,.personal-agent-create-body textarea::placeholder{color:rgba(148,153,170,.58);opacity:1}.personal-agent-create-body .showing-inherited{caret-color:var(--accent)}
.personal-agent-admin-edit-panel{width:min(780px,calc(100vw - 32px));max-height:min(820px,calc(100vh - 32px))}.personal-agent-admin-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;overflow-y:auto}.personal-agent-admin-edit-form textarea{box-sizing:border-box;width:100%;min-height:92px}.personal-agent-admin-meta{padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text-2);font-size:12px}.personal-agent-status{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:10px}.personal-agent-status.approved{color:#4ade80;background:rgba(34,197,94,.12)}.personal-agent-status.pending{color:#fbbf24;background:rgba(251,191,36,.12)}.personal-agent-status.rejected,.personal-agent-status.disabled{color:#fb7185;background:rgba(244,63,94,.12)}@media(max-width:700px){.personal-agent-admin-edit-form{grid-template-columns:1fr}.personal-agent-admin-edit-form .vault-wide{grid-column:auto}}
.agent-composer-tools{min-width:0}.agent-composer-left{flex:0 1 auto}.agent-composer-right{flex:0 0 auto;margin-left:auto}#agentChatSkill{max-width:190px;height:32px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:9px;color:var(--text-2);background:var(--panel-2)}.agent-composer .composer-hint{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){#agentChatModel,#agentChatSkill{max-width:125px}.agent-composer .composer-hint{display:none}}
.agent-skill-list{display:flex;align-items:center;gap:6px;min-width:0}.agent-skill-list[hidden]{display:none!important}.agent-skill-chip,.agent-skill-more>button,.agent-skill-more-menu button{height:32px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text-2);font-size:11px;white-space:nowrap}.agent-skill-chip:hover,.agent-skill-more>button:hover,.agent-skill-more-menu button:hover{border-color:rgba(139,92,246,.65);color:var(--text)}.agent-skill-chip.active,.agent-skill-more-menu button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.agent-skill-more{position:relative}.agent-skill-more-menu{position:absolute;left:0;bottom:40px;z-index:30;display:grid;gap:5px;min-width:170px;max-height:220px;overflow-y:auto;padding:7px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 18px 42px rgba(0,0,0,.38)}.agent-skill-more-menu[hidden]{display:none!important}.agent-skill-more-menu button{text-align:left;width:100%}@media(max-width:900px){.agent-skill-list>.agent-skill-chip:nth-of-type(n+2){display:none}}
.agent-model-picker{position:relative}.agent-model-picker[hidden]{display:none!important}.agent-model-trigger{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:150px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text-2);font-size:11px}.agent-model-trigger i,.agent-model-menu i{color:var(--text-3);font-size:10px;font-style:normal}.agent-model-menu{position:absolute;right:0;bottom:40px;z-index:35;display:grid;gap:3px;width:min(360px,75vw);max-height:330px;overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 20px 50px rgba(0,0,0,.44)}.agent-model-menu[hidden]{display:none!important}.agent-model-menu button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:9px 10px;border-radius:8px;color:var(--text-2);text-align:left}.agent-model-menu button:hover,.agent-model-menu .recommended{background:var(--accent-soft);color:var(--text)}.model-rate-config{grid-column:1/-1;border-top:1px solid var(--line-soft);padding-top:10px}.model-rate-list{display:grid;gap:6px;margin-top:9px}.model-rate-list[hidden]{display:none!important}.model-rate-list label{display:grid;grid-template-columns:minmax(0,1fr) 86px 16px;align-items:center;gap:7px}.model-rate-list label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);font-size:11px}.model-rate-list input{width:86px;height:30px;padding:0 7px}.model-rate-list i{color:var(--text-3);font-size:11px;font-style:normal}.model-rate-list .btn-primary{justify-self:end;margin-top:5px}
.agent-model-menu button span em{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;background:rgba(139,92,246,.22);color:#bca8ff;font-size:9px;font-style:normal}.model-rate-list label{grid-template-columns:minmax(0,1fr) 86px 16px 92px}.model-rate-list .model-public-toggle{display:flex;align-items:center;gap:5px;overflow:visible;color:var(--text-2)}.model-rate-list .model-public-toggle input{width:15px;height:15px;padding:0}

/* 已停用项目才显示永久删除入口；危险操作与恢复、保存按钮拉开距离。 */
.task-admin-project-card .vault-actions .danger{margin-right:auto;color:#f87171;border-color:rgba(248,113,113,.34)}
.task-admin-project-card .vault-actions .danger:hover{background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.62)}

/* 文件中心：沿用工作台壳层，中间目录树 + 右侧文件区；窄屏目录树可收起。 */
.file-center-wrap{max-width:none}.file-center-head{display:flex;align-items:flex-end;justify-content:space-between}.file-tree-toggle{display:none}.file-center-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;min-width:0}.file-folder-tree,.file-browser{border:1px solid var(--line);border-radius:15px;background:var(--panel)}.file-folder-tree{display:grid;align-content:start;gap:5px;padding:12px}.file-folder-tree button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 12px;border-radius:9px;color:var(--text-2);text-align:left}.file-folder-tree button:hover,.file-folder-tree button.active{color:var(--text);background:var(--accent-soft)}.file-folder-tree em{min-width:22px;padding:2px 6px;border-radius:999px;background:var(--panel-2);color:var(--text-3);font-size:10px;font-style:normal;text-align:center}.file-browser{min-width:0;padding:18px}.file-browser-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.file-browser-head p{margin:0 0 5px;color:var(--text-3);font-size:11px}.file-browser-head h2{font-size:20px}.file-view-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.file-view-switch button{padding:7px 11px;border-radius:7px;color:var(--text-3);font-size:11px}.file-view-switch button.active{color:#fff;background:var(--accent)}.file-service-state{margin:14px 0;padding:10px 12px;border-radius:9px;color:var(--text-2);background:var(--panel-2);font-size:11.5px}.file-service-state.available{color:#6ee7a0;background:rgba(34,197,94,.09)}.file-service-state.unavailable{color:#fbbf24;background:rgba(251,191,36,.08)}.file-table-wrap{min-width:0;overflow-x:hidden}.file-table{width:100%;border-collapse:collapse;table-layout:fixed}.file-table th,.file-table td{padding:12px 10px;border-bottom:1px solid var(--line-soft);color:var(--text-2);font-size:11.5px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-table th:first-child{width:23%}.file-table th:nth-child(4){width:15%}.file-table th:last-child{width:68px}.file-table td b{color:var(--text);font-weight:600}.file-source{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#bca8ff;text-align:left}.file-download{display:inline-flex;padding:6px 10px;text-decoration:none}.file-empty{padding:44px 16px;color:var(--text-3);text-align:center}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:11px}.file-card{display:grid;gap:7px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.file-card-icon{display:grid;width:48px;height:44px;place-items:center;border-radius:10px;color:#c4b5fd;background:var(--accent-soft);font-size:10px;font-weight:700}.file-card b,.file-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card small{color:var(--text-3);font-size:10.5px}.file-card button,.file-card a{color:#bca8ff;font-size:11px;text-align:left;text-decoration:none}.file-card a{color:var(--text-2)}
.file-center-task-layout{grid-template-columns:minmax(0,1fr)}.file-center-task-layout>[hidden],#fileFolderTree[hidden],#fileTreeToggle[hidden]{display:none!important}
.cloudreve-onboarding-panel{max-width:620px}.cloudreve-profile-preview{display:grid;gap:6px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.cloudreve-profile-preview small{color:var(--muted)}.cloudreve-onboarding-note{color:#61d99b!important}
.jst-admin-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.jst-admin-overview article,.jst-feature-config{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.jst-admin-overview small{display:block;color:var(--muted)}.jst-admin-overview b{font-size:20px}.jst-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.jst-feature-group{display:grid;gap:8px}.jst-feature-group label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.jst-feature-group input{width:auto}@media(max-width:760px){.jst-admin-overview,.jst-feature-grid{grid-template-columns:1fr}}
.jst-capability-note{margin:-8px 0 0;color:var(--muted);font-size:12px}.jst-capability-list>.jst-capability-row{grid-template-columns:minmax(160px,1fr) auto;align-items:center}.jst-capability-row>small{grid-column:1/-1}.jst-capability-state{justify-self:end;padding:4px 9px;border:1px solid var(--line);border-radius:999px;font-size:12px}.jst-capability-available{color:#16a34a;border-color:rgba(34,197,94,.35)}.jst-capability-permission_required,.jst-capability-error{color:#dc2626;border-color:rgba(239,68,68,.35)}.jst-capability-unsupported{color:#d97706;border-color:rgba(245,158,11,.35)}.jst-capability-not_checked{color:var(--muted)}
.jst-support-diagnostic{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.jst-support-diagnostic>div{grid-column:1/-1}.jst-support-diagnostic small{display:block;margin-top:4px;color:var(--text-3)}.jst-support-diagnostic textarea{min-height:250px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;resize:vertical}@media(max-width:760px){.jst-support-diagnostic{grid-template-columns:1fr}.jst-support-diagnostic>div{grid-column:auto}}
.file-nav-primary,.file-nav-secondary,.file-team-filters{display:grid;gap:5px}.file-nav-secondary,.file-team-filters{margin-top:9px;padding-top:10px;border-top:1px solid var(--line-soft)}.file-nav-secondary>span,.file-team-filters>span{padding:0 10px 3px;color:var(--text-3);font-size:10px;letter-spacing:.08em}.file-team-filters[hidden]{display:none!important}.file-team-filters button{padding-left:22px}.file-context-note{margin:14px 0 0;padding:11px 13px;border:1px solid rgba(139,92,246,.3);border-radius:9px;background:var(--accent-soft);color:var(--text-2);font-size:12px;line-height:1.65}.file-context-note+.file-service-state{margin-top:8px}
@media(max-width:780px){.file-center-head{align-items:flex-start}.file-tree-toggle{display:inline-flex}.file-center-layout{grid-template-columns:1fr}.file-folder-tree{display:none}.file-folder-tree.open{display:grid}.file-browser{padding:13px}.file-table th:nth-child(2),.file-table td:nth-child(2),.file-table th:nth-child(3),.file-table td:nth-child(3),.file-table th:nth-child(5),.file-table td:nth-child(5),.file-table th:nth-child(7),.file-table td:nth-child(7){display:none}.file-table th:first-child{width:42%}.file-table th:nth-child(4){width:28%}.file-browser-head{align-items:flex-start}.file-view-switch{flex:0 0 auto}}

/* Cloudreve 管理弹窗采用工作台原生双 Tab 与行内共享目录表单。 */
.cloudreve-shared-editor[hidden],.cloudreve-delete-confirm[hidden]{display:none!important}
.cloudreve-config-pane{padding-bottom:22px;border-bottom:1px solid var(--line)}.cloudreve-shared-pane{padding-top:22px}.cloudreve-shared-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 14px}.cloudreve-shared-head h3{margin:0 0 5px;font-size:16px}.cloudreve-shared-head p{margin:0;color:var(--text-3);font-size:12px}.cloudreve-shared-list{display:grid;gap:9px}.cloudreve-shared-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.cloudreve-shared-card>div:first-child{display:grid;gap:6px;min-width:0}.cloudreve-shared-card code{overflow-wrap:anywhere;color:var(--accent);font-size:11px}.cloudreve-shared-card small{color:var(--text-3)}.cloudreve-shared-card>div:last-child{display:flex;gap:7px;flex:0 0 auto}.cloudreve-shared-editor{display:grid;gap:13px;margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.cloudreve-shared-editor>label{display:grid;gap:6px;color:var(--text-2);font-size:12px}.cloudreve-shared-editor input:not([type=checkbox]){width:100%;box-sizing:border-box}.cloudreve-shared-editor fieldset{display:flex;flex-wrap:wrap;gap:12px;border:1px solid var(--line);border-radius:9px;padding:12px}.cloudreve-shared-editor fieldset label,.cloudreve-shared-editor .cloudreve-enabled{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:12px}.cloudreve-delete-confirm{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px;border:1px solid rgba(248,113,113,.3);border-radius:10px;background:rgba(248,113,113,.06);font-size:12px}.cloudreve-delete-confirm span{margin-right:auto;color:var(--text-2)}
@media(max-width:600px){.cloudreve-shared-head,.cloudreve-shared-card{align-items:flex-start;flex-direction:column}.cloudreve-delete-confirm{align-items:flex-start;flex-wrap:wrap}}

/* 文件中心预览与个人空间上传交互。 */
.file-card-preview{position:relative;display:grid;width:100%;height:110px;place-items:center;overflow:hidden;border-radius:8px;background:var(--panel)}.file-card-preview .file-card-icon{position:absolute;inset:0;width:auto;height:auto;border-radius:0}.file-card-preview .file-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:8px}.file-breadcrumb-link{padding:0;color:var(--text-3);font:inherit}.file-breadcrumb-link:hover{color:var(--accent)}
.file-hover-preview{position:fixed;z-index:9999;display:grid;gap:8px;width:min(440px,calc(100vw - 32px));max-height:min(355px,calc(100vh - 32px));padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 18px 48px rgba(0,0,0,.45);pointer-events:none}.file-hover-preview[hidden]{display:none}.file-hover-preview img{display:block;width:100%;max-height:300px;object-fit:contain;border-radius:8px}.file-hover-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12px}
@media(max-width:780px){.file-browser-head{flex-wrap:wrap}.file-browser-head>div:first-child{flex:1 1 auto}}
.file-personal-actions{display:none;gap:7px;align-items:center}.file-name-button{max-width:100%;overflow:hidden;text-overflow:ellipsis;color:var(--text);text-align:left}.file-thumb{width:100%;height:110px;object-fit:cover;border-radius:8px;background:var(--panel)}.file-card .file-thumb{display:block}.file-drop-active{outline:2px dashed var(--accent);outline-offset:-8px}.file-preview-panel{width:min(1080px,94vw);max-height:92vh;overflow:hidden}.file-preview-panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}.file-preview-panel header h2{margin:0;font-size:16px}.file-preview-panel header button{font-size:24px}.file-preview-content{display:grid;place-items:center;min-height:220px;max-height:78vh;overflow:auto;padding:14px}.file-preview-content img,.file-preview-content video{display:block;max-width:100%;max-height:74vh}.file-preview-content iframe{width:min(100%,960px);height:72vh;border:0;background:#fff}
.file-folder-inline-form{display:flex;align-items:center;gap:6px}.file-folder-inline-form[hidden]{display:none!important}.file-folder-inline-form input{width:180px;max-width:35vw;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text);font-size:11px}.file-folder-inline-form button{height:34px;padding:0 10px;font-size:11px}
.file-card-folder{padding:0;overflow:hidden}.file-card-folder .file-folder-open{display:grid;align-content:start;justify-items:start;gap:10px;width:100%;height:100%;min-height:188px;padding:18px;border-radius:12px;color:var(--text);text-align:left;cursor:pointer}.file-card-folder .file-folder-open:hover{background:var(--accent-soft)}.file-card-folder .file-folder-open:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.file-card-folder .file-card-icon{width:76px;height:72px;font-size:40px;line-height:1}.file-card-folder .file-folder-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c4b5fd;font-size:14px;font-weight:600}.file-card-folder small{font-size:11px}

/* 文件中心阅读字号与稳定的视图切换位置。 */
#page-files .file-folder-tree button{font-size:14px}#page-files .file-folder-tree em{font-size:12px}#page-files .file-browser-head>div:first-child{flex:1 1 auto;min-width:0}#page-files .file-browser-head p{font-size:14px;line-height:1.5}#page-files .file-browser-head h2{font-size:23px}#page-files .file-view-switch{order:2;flex:0 0 auto;margin-left:auto}#page-files .file-view-switch button{font-size:14px}#page-files .file-personal-actions{order:1}#page-files .file-personal-actions button,#page-files .file-folder-inline-form input{font-size:13px}#page-files .file-service-state{font-size:14px}#page-files .file-table th,#page-files .file-table td{font-size:13.5px}#page-files .file-card button,#page-files .file-card a{font-size:14px}#page-files .file-card small{font-size:12px}#page-files .file-card-folder .file-folder-name{font-size:16px}#page-files .file-empty{font-size:14px}#page-files .file-breadcrumb-link{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}#page-files .file-breadcrumb-link:hover,#page-files .file-breadcrumb-link:focus-visible{text-decoration-color:currentColor}
@media(max-width:780px){#page-files .file-browser-head{align-items:flex-start}#page-files .file-browser-head>div:first-child{flex:1 1 100%}#page-files .file-view-switch{margin-left:auto}}

/* Cloudreve 原生个人文件操作仅在工作台授权范围内开放。 */
#page-files .file-table th:last-child{width:132px}#page-files .file-table td:last-child{overflow:visible}#page-files .file-manage-button{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;color:var(--accent);font-size:12px;white-space:nowrap}#page-files .file-manage-button:hover{background:var(--accent-soft)}#page-files .file-card-actions{display:flex;align-items:center;gap:8px}#page-files .file-card-actions .file-manage-button{margin-left:auto}#page-files .file-card-folder{display:flex;flex-direction:column}#page-files .file-card-folder .file-folder-open{height:auto;flex:1}#page-files .file-card-folder>.file-manage-button{align-self:flex-start;margin:0 18px 14px}#page-files .file-tag{display:inline-flex;max-width:100%;margin-left:6px;padding:2px 6px;overflow:hidden;text-overflow:ellipsis;border-radius:999px;background:var(--accent-soft);color:#c4b5fd;font-size:11px;white-space:nowrap}
.file-operation-modal[hidden]{display:none!important}.file-operation-panel{width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto}.file-operation-panel header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.file-operation-panel header h2{font-size:18px}.file-operation-panel header button{font-size:24px}.file-operation-form{display:grid;gap:14px;padding:18px}.file-operation-form>p:first-child{margin:0;overflow-wrap:anywhere;color:var(--text);font-weight:600}.file-operation-form label{display:grid;gap:6px;color:var(--text-2);font-size:13px}.file-operation-form label[hidden]{display:none!important}.file-operation-form label:has([type=checkbox]){display:flex;align-items:center}.file-operation-form input:not([type=checkbox]),.file-operation-form select{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text)}.file-operation-form input[type=color]{height:42px}.file-operation-form .file-operation-hint{margin:0;color:var(--text-3);font-size:12px;line-height:1.5}.file-operation-form .vault-actions{display:flex;justify-content:flex-end;gap:8px}

/* 操作说明与版本公告 */
.help-new-badge{background:#ef4444!important;color:#fff!important}.help-wrap{width:100%;max-width:none}.help-head{margin-bottom:16px}.help-release{position:relative;margin-bottom:18px;padding:18px 20px;border:1px solid rgba(139,92,246,.42);border-radius:15px;background:linear-gradient(135deg,rgba(124,92,255,.16),rgba(34,189,232,.08));overflow:hidden}.help-release:after{content:"NEW";position:absolute;right:18px;top:14px;color:rgba(196,181,253,.18);font-size:34px;font-weight:800}.help-release h2{font-size:17px}.help-release h2 span{display:inline-block;margin-right:8px;padding:3px 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;vertical-align:2px}.help-release p{max-width:1100px;margin-top:8px;color:var(--text-2);font-size:12px;line-height:1.7}.help-release ul{display:flex;flex-wrap:wrap;gap:7px 18px;margin:11px 0 0;padding:0;list-style:none}.help-release li{color:var(--text-2);font-size:11px}.help-release li:before{content:"✓";margin-right:5px;color:#4ade80}.help-release small{display:block;margin-top:10px;color:var(--text-3)}.help-search{display:flex;align-items:center;gap:9px;margin-bottom:16px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.help-search .ico{width:17px;color:var(--text-3)}.help-search input{flex:1;height:46px;border:0;background:transparent}.help-search span{color:var(--text-3);font-size:11px}.help-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.help-categories{position:sticky;top:0;display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.help-categories button{display:flex;justify-content:space-between;padding:11px 13px;border-radius:8px;color:var(--text-2);font-size:12px;text-align:left}.help-categories button:hover,.help-categories button.active{color:var(--text);background:var(--accent-soft)}.help-categories em{font-style:normal;color:var(--text-3)}.help-articles{display:grid;gap:10px;min-width:0}.help-article{border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden}.help-article button{display:flex;align-items:center;width:100%;padding:16px 18px;text-align:left}.help-article button>div{flex:1}.help-article h2{font-size:15px}.help-article h2 em{display:inline-block;margin-right:7px;padding:2px 7px;border-radius:999px;background:var(--panel-2);color:var(--accent);font-size:9px;font-style:normal}.help-article header p{margin-top:6px;color:var(--text-3);font-size:11.5px}.help-article .help-chevron{color:var(--text-3);transition:transform .18s}.help-article.open .help-chevron{transform:rotate(180deg)}.help-article-body{padding:0 18px 18px;border-top:1px solid var(--line-soft);color:var(--text-2);font-size:12px;line-height:1.9;white-space:pre-wrap}.help-article-body[hidden]{display:none}.help-article-body p{max-width:1180px;padding-top:14px}.help-empty{padding:50px;text-align:center;color:var(--text-3);border:1px dashed var(--line);border-radius:13px}.help-updated{padding:18px 0;color:var(--text-3);font-size:10.5px;text-align:right}.help-admin-panel{height:min(860px,calc(100vh - 32px))}.help-admin-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;min-height:0;overflow:hidden}.help-admin-doc,.help-release-form{min-height:0;padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2)}.help-admin-doc{display:flex;flex-direction:column}.help-admin-toolbar{display:flex;align-items:center;justify-content:space-between}.help-admin-toolbar h3,.help-release-form h3{font-size:14px}.help-admin-doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.help-admin-editor{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px;min-height:0;flex:1}.help-admin-editor select{height:100%;min-height:360px;padding:6px}.help-admin-editor form,.help-release-form{display:grid;align-content:start;gap:10px;overflow-y:auto}.help-admin-editor label,.help-release-form label{display:grid;gap:5px;color:var(--text-2);font-size:11px}.help-admin-editor input,.help-admin-editor textarea,.help-release-form input,.help-release-form textarea,.help-admin-doc-meta input{box-sizing:border-box;width:100%}.help-admin-editor textarea{min-height:180px;resize:vertical}.help-release-form textarea{min-height:90px;resize:vertical}.help-release-warning{padding:10px;border-radius:9px;background:rgba(251,191,36,.1);color:#fbbf24;font-size:10.5px;line-height:1.6}
@media(max-width:800px){.help-layout{grid-template-columns:1fr}.help-categories{position:static;display:flex;overflow-x:auto}.help-categories button{white-space:nowrap}.help-admin-body{grid-template-columns:1fr;overflow-y:auto}.help-admin-editor{grid-template-columns:1fr}.help-admin-editor select{height:140px;min-height:0}.help-admin-panel{height:calc(100vh - 20px)}}
.model-rate-list label{grid-template-columns:minmax(0,1fr) 86px 16px 92px 68px}.model-rate-list .model-recommend-toggle{display:flex;align-items:center;gap:5px;overflow:visible;color:var(--text-2)}.model-rate-list .model-recommend-toggle input{width:15px;height:15px;padding:0}
.model-service-card:has(.model-rate-config){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.model-service-card>.model-rate-config{grid-column:1/-1;width:100%;padding-top:8px}.model-rate-config>[data-model-rates]{height:30px;padding:0 11px;font-size:11px}.model-rate-list{width:min(100%,900px);max-height:360px;overflow:auto;gap:3px;margin:8px 0 0 auto;padding:7px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel)}.model-rate-list label{display:grid;grid-template-columns:minmax(180px,1fr) 62px 12px 78px 58px;min-height:34px;gap:6px;padding:3px 7px;border-radius:7px;background:transparent}.model-rate-list label:hover{background:rgba(255,255,255,.025)}.model-rate-list>label>span:first-child{font-size:10.5px}.model-rate-list input[data-rate-model]{width:62px;height:27px;padding:0 6px;font-size:11px}.model-rate-list .model-public-toggle,.model-rate-list .model-recommend-toggle{gap:4px;font-size:10px}.model-rate-list .model-public-toggle input,.model-rate-list .model-recommend-toggle input{appearance:none;-webkit-appearance:none;position:relative;width:26px;height:15px;min-width:26px;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);cursor:pointer}.model-rate-list .model-public-toggle input:checked,.model-rate-list .model-recommend-toggle input:checked{border-color:var(--accent);background:var(--accent)}.model-rate-list .model-public-toggle input:after,.model-rate-list .model-recommend-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:9px;height:9px;border-radius:50%;background:#fff;transition:transform .15s}.model-rate-list .model-public-toggle input:checked:after,.model-rate-list .model-recommend-toggle input:checked:after{transform:translateX(11px)}.model-rate-list .btn-primary{height:30px;padding:0 13px;font-size:11px}@media(max-width:760px){.model-rate-list label{grid-template-columns:minmax(120px,1fr) 56px 10px 70px 54px}.model-rate-list input[data-rate-model]{width:56px}}
.model-rate-config>[data-model-config]{height:30px;padding:0 11px;font-size:11px}.model-rate-list.model-name-list label{grid-template-columns:minmax(180px,1fr) 90px 68px}.model-name-list>label>span:first-child{font-size:12px}@media(max-width:760px){.model-rate-list.model-name-list label{grid-template-columns:minmax(120px,1fr) 82px 62px}}

/* Workbench 自有智能体 资源独立成管理标签；一次只显示 SOP 或技能，避免双列挤压。 */
.workbench-agent-resource-columns{grid-template-columns:minmax(0,1fr)}
.workbench-agent-resource-tab-pane[hidden]{display:none!important}

/* Workbench 自有智能体 知识库是真实 API 工作区，不再仅展示原始 JSON。 */
.workbench-agent-kb-create{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.5fr) auto;gap:8px}.workbench-agent-kb-create input{min-width:0;height:40px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text)}.workbench-agent-real-api-note{margin:10px 0;padding:10px 12px;border-radius:9px;background:rgba(34,197,94,.08);color:#86efac;font-size:11px}.workbench-agent-kb-list{display:grid;gap:10px}.workbench-agent-kb-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.workbench-agent-kb-card>div:first-child{display:grid;gap:5px}.workbench-agent-kb-card small,.workbench-agent-kb-card em{color:var(--text-3);font-size:11px;font-style:normal}.workbench-agent-kb-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.workbench-agent-file-button{display:inline-flex;align-items:center;cursor:pointer}.workbench-agent-kb-documents{grid-column:1/-1;display:grid;gap:6px;padding-top:10px;border-top:1px solid var(--line-soft)}.workbench-agent-kb-documents[hidden]{display:none!important}.workbench-agent-kb-document{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:9px 10px;border-radius:8px;background:var(--panel)}.workbench-agent-kb-document span{display:grid;gap:3px;min-width:0}.workbench-agent-kb-document b,.workbench-agent-kb-document small{overflow-wrap:anywhere}@media(max-width:760px){.workbench-agent-kb-create{grid-template-columns:1fr}.workbench-agent-kb-card{grid-template-columns:1fr}.workbench-agent-kb-actions{justify-content:flex-start}.workbench-agent-kb-document{grid-template-columns:minmax(0,1fr) auto}}

/* Workbench 自有智能体 知识库视图使用完整宽度；正文与操作区分行展示，避免窄列重叠。 */
.workbench-agent-workspace-content:has(.workbench-agent-kb-create){display:block;min-width:0}
.workbench-agent-workspace-content:has(.workbench-agent-kb-create) .workbench-agent-kb-list{grid-template-columns:minmax(0,1fr);min-width:0;margin-top:12px}
.workbench-agent-kb-card{grid-template-columns:minmax(0,1fr);min-width:0}
.workbench-agent-kb-card>div:first-child{min-width:0;overflow-wrap:anywhere}
.workbench-agent-kb-actions{grid-column:1/-1;justify-content:flex-start;min-width:0}
.workbench-agent-kb-documents{min-width:0}
.workbench-agent-wecom-sources{grid-column:1/-1;display:grid;gap:8px;padding:12px;border:1px solid var(--line-soft);border-radius:10px;background:rgba(59,130,246,.04)}.workbench-agent-wecom-sources h5{font-size:12px}.workbench-agent-wecom-source-form{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(260px,1.5fr) 110px auto;gap:7px}.workbench-agent-wecom-source-form input,.workbench-agent-wecom-source-form select{min-width:0;height:36px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.workbench-agent-wecom-source{grid-template-columns:minmax(0,1fr) auto auto auto}.workbench-agent-source-error{color:#fca5a5!important}@media(max-width:900px){.workbench-agent-wecom-source-form{grid-template-columns:1fr 1fr}.workbench-agent-wecom-source{grid-template-columns:minmax(0,1fr) auto}}@media(max-width:620px){.workbench-agent-wecom-source-form{grid-template-columns:1fr}}

.wecom-aibot-form{box-sizing:border-box;width:100%;max-width:none}#wecomAiBotAdd{display:none!important}.wecom-aibot-form .pa-option-card{display:flex;align-items:center;justify-content:space-between}.wecom-aibot-status{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.wecom-aibot-status b{font-size:13px}.wecom-aibot-status small{color:var(--text-3);font-size:11px;overflow-wrap:anywhere}
.wecom-notification-push-section{display:grid;gap:13px;min-width:0;margin-top:8px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.wecom-notification-push-section>.agent-pane-head{margin:0}.wecom-notification-push-section>small{color:var(--text-3);line-height:1.6}.wecom-notification-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:stretch;min-width:0}.wecom-aibot-form .wecom-notification-options>label{box-sizing:border-box;min-width:0;min-height:66px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text-2);font-size:12px;line-height:1.45}.wecom-aibot-form .wecom-notification-options .wecom-select-option{display:flex;flex-direction:column;justify-content:center;gap:6px}.wecom-aibot-form .wecom-notification-options .wecom-select-option>span{color:var(--text-3);font-size:11px}.wecom-aibot-form .wecom-notification-options .wecom-select-option select{width:100%;min-height:32px;margin:0;padding:5px 28px 5px 8px;border:0;border-radius:7px;background:var(--panel-3);color:var(--text-1);font:inherit}.wecom-aibot-form .wecom-notification-options .wecom-check-option{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px}.wecom-aibot-form .wecom-notification-options .wecom-check-option>span{min-width:0}.wecom-aibot-form .wecom-notification-push-section input[type="checkbox"]{width:16px;min-width:16px;height:16px;min-height:16px;margin:0;padding:0;border:0;border-radius:4px;flex:0 0 16px;accent-color:var(--accent)}.wecom-notification-categories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:transparent}.wecom-notification-categories legend{padding:0 6px;color:var(--text-3);font-size:11px}.wecom-aibot-form .wecom-notification-categories label{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:7px;min-width:0;padding:9px 10px;border-radius:8px;background:var(--panel-2);color:var(--text-2);font-size:12px;white-space:nowrap}@media(max-width:900px){.wecom-notification-options{grid-template-columns:repeat(2,minmax(0,1fr))}.wecom-notification-categories{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.wecom-notification-options,.wecom-notification-categories{grid-template-columns:1fr}.wecom-notification-push-section>.agent-pane-head{align-items:flex-start;gap:10px;flex-direction:column}}
.wecom-sheet-task-section{display:grid;gap:12px;margin:0;padding:0;border:0}.wecom-sheet-task-section>.agent-pane-head{margin:0}.wecom-sheet-task-section>small{color:var(--text-3);line-height:1.6}.wecom-sheet-enterprise{display:grid;gap:6px;max-width:420px;color:var(--text-2);font-size:12px}.wecom-sheet-enterprise select{width:100%}.wecom-sheet-source{display:grid;gap:12px;margin:10px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.wecom-sheet-source>header{display:flex;align-items:center;justify-content:space-between}.wecom-sheet-source>header label{display:flex;align-items:center;gap:7px}.wecom-sheet-source>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wecom-sheet-source label{display:grid;gap:6px;color:var(--text-2);font-size:12px}.wecom-sheet-source input,.wecom-sheet-source select{width:100%}@media(max-width:760px){.wecom-sheet-source>div{grid-template-columns:1fr}}
.wecom-sheet-log-section{display:grid;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.wecom-sheet-log-section>.agent-pane-head{margin:0}.wecom-sheet-log-state{display:flex;gap:8px;flex-wrap:wrap}.wecom-sheet-log-state span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);color:var(--text-3);font-size:12px}.wecom-sheet-log-state span[data-state="error"]{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}.wecom-sheet-log-list{display:grid;gap:8px}.wecom-sheet-log-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.wecom-sheet-log-list article>div{display:grid;min-width:0;gap:4px}.wecom-sheet-log-list em{width:max-content;padding:2px 7px;border-radius:999px;background:rgba(59,130,246,.12);color:#60a5fa;font-size:11px;font-style:normal}.wecom-sheet-log-list article[data-log-type="error"] em{background:rgba(239,68,68,.12);color:#f87171}.wecom-sheet-log-list b,.wecom-sheet-log-list small,.wecom-sheet-log-list p{overflow-wrap:anywhere}.wecom-sheet-log-list small,.wecom-sheet-log-list p{margin:0;color:var(--text-3);font-size:12px;line-height:1.5}@media(max-width:760px){.wecom-sheet-log-list article{align-items:flex-start;flex-direction:column}}

.wecom-sheet-source label.wide,.wecom-sheet-source label:has([data-sheet-administrator]){grid-column:1/-1}.wecom-sheet-source select[multiple]{min-height:112px;padding:6px}.wecom-sheet-source [data-sheet-webhook][readonly]{color:var(--text-2);background:var(--panel)}

/* 管理后台页签统一采用 Workbench 自有智能体 的横向底边高亮样式。 */
.learning-admin-tabs,.permission-module-tabs,.permission-role-tabs,.cloudreve-admin-tabs,#taskAdminTabs.points-tabs{
  display:flex;align-items:flex-end;gap:5px;min-height:54px;margin:0 0 16px;padding:10px 8px 0;
  border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;
  overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap
}
.learning-admin-tabs button,.permission-module-tabs button,.permission-role-tabs button,.cloudreve-admin-tabs button,#taskAdminTabs.points-tabs button{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;flex:0 0 auto;
  padding:10px 16px;border:0;border-radius:9px 9px 0 0;background:transparent;color:var(--text-3);
  font-size:13px;white-space:nowrap;cursor:pointer
}
.learning-admin-tabs button:hover,.permission-module-tabs button:hover,.permission-role-tabs button:hover,.cloudreve-admin-tabs button:hover,#taskAdminTabs.points-tabs button:hover{color:var(--text);background:var(--panel-hover)}
.learning-admin-tabs button.active,.permission-module-tabs button.active,.permission-role-tabs button.active,.cloudreve-admin-tabs button.active,#taskAdminTabs.points-tabs button.active{color:var(--text);border:0;background:var(--accent-soft);box-shadow:inset 0 -2px var(--accent)}
.permission-module-tabs button:disabled{opacity:.45;cursor:not-allowed}
.learning-admin-panel .learning-admin-tabs{position:sticky;top:0;z-index:5;margin:-1px 0 16px;padding:10px 8px 0;background:var(--panel)}
@media(max-width:700px){.learning-admin-tabs,.permission-module-tabs,.permission-role-tabs,.cloudreve-admin-tabs,#taskAdminTabs.points-tabs{min-height:48px;padding:6px 4px 0}.learning-admin-tabs button,.permission-module-tabs button,.permission-role-tabs button,.cloudreve-admin-tabs button,#taskAdminTabs.points-tabs button{min-height:40px;padding:8px 13px}}

.management-menu-group{margin-top:20px}
.management-menu-group>h3{margin:0 0 10px;padding-left:10px;border-left:3px solid var(--accent);font-size:14px}
.management-menu-group .management-card-grid{margin-top:0}
.management-shortcut[hidden]{display:none!important}.admin-context-tabs{display:flex;gap:6px;overflow-x:auto;padding:8px 18px;border-bottom:1px solid var(--line-soft);scrollbar-width:thin;flex:0 0 auto}.admin-context-tabs button{flex:0 0 auto;border:0;border-radius:8px;background:transparent;color:var(--text-3);padding:9px 13px;font:inherit;cursor:pointer;white-space:nowrap}.admin-context-tabs button:hover{background:var(--panel-2);color:var(--text-1)}.admin-context-tabs button.active{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text-1);box-shadow:inset 0 -2px 0 var(--accent)}
.wecom-config-tabs{display:flex;gap:6px;overflow-x:auto;margin:-4px 0 2px;padding:0 0 10px;border-bottom:1px solid var(--line);scrollbar-width:none}.wecom-config-tabs::-webkit-scrollbar{display:none}.wecom-config-tabs button{flex:0 0 auto;padding:9px 14px;border:0;border-radius:8px;color:var(--text-3);background:transparent;font-size:12px;white-space:nowrap}.wecom-config-tabs button:hover{color:var(--text);background:var(--panel-hover)}.wecom-config-tabs button.active{color:var(--text);background:var(--accent-soft);box-shadow:inset 0 -2px var(--accent)}.wecom-config-pane[hidden]{display:none!important}

/* Workbench 自有智能体 公共员工模式只保留一个完整的新对话按钮。 */
.agent-head-actions{display:flex;align-items:center;max-width:100%}
.agent-action-combo{display:flex;max-width:100%}
.agent-action-primary{min-width:108px;height:38px;padding:0 18px!important;border:1px solid var(--line)!important;border-radius:999px!important}
.agent-action-primary:disabled{opacity:.55;cursor:not-allowed}
#publicAgentModal:has(#agentAdminTabs:not(:has([data-agent-admin-tab="public"]))) #publicAgentForm,
#publicAgentModal:has(#agentAdminTabs:not(:has([data-agent-admin-tab="public"]))) .agent-public-list{display:none!important}
#publicAgentModal.workbench-agent-only #publicAgentForm,
#publicAgentModal.workbench-agent-only .agent-public-list{display:none!important}

/* AI 智能体前台：会话栏 + Workbench 自有智能体 员工目录 + 跟随底部的真实输入器。 */
.agent-chat-body{scrollbar-gutter:stable}
#page-agent{overflow:hidden}.chat-wrap{height:100%;min-height:0}.agent-room{position:relative;min-width:0;overflow:hidden}.agent-chat-body{min-height:0;overflow-y:auto;padding-bottom:150px}.agent-chat-empty{min-height:100%;padding:32px clamp(24px,5vw,72px) 60px}.chat-hero{padding:28px 0 18px;text-align:center}.chat-hero h2{font-size:clamp(23px,2.2vw,34px)}.chat-hero p{max-width:680px;margin:9px auto 0;color:var(--text-3);line-height:1.7}.quick-prompts{justify-content:center}.agent-market{max-width:1120px;margin:44px auto 0}.agent-market-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.agent-market-head h3{font-size:17px}.agent-market-head p{margin-top:4px;color:var(--text-3);font-size:11px}.agent-market-head label{display:flex;align-items:center;gap:8px;width:min(280px,38vw);height:38px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.agent-market-head label .ico{width:15px;color:var(--text-3)}.agent-market-head input{min-width:0;width:100%;border:0;background:transparent;color:var(--text)}.agent-market-filters{display:flex;gap:7px;margin-bottom:16px;overflow-x:auto}.agent-market-filters button{flex:0 0 auto;padding:7px 13px;border:1px solid var(--line);border-radius:999px;color:var(--text-3);font-size:11px}.agent-market-filters button.active{border-color:rgba(139,92,246,.55);background:var(--accent-soft);color:var(--text)}.agent-market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:12px}.agent-market-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;min-height:126px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--panel);color:var(--text);text-align:left;transition:.16s}.agent-market-card:hover{transform:translateY(-2px);border-color:rgba(139,92,246,.55);box-shadow:0 14px 30px rgba(0,0,0,.12)}.agent-market-avatar .agent-avatar{width:42px;height:42px}.agent-market-card b,.agent-market-card small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.agent-market-card b{font-size:13px;-webkit-line-clamp:1}.agent-market-card small{min-height:38px;margin-top:6px;color:var(--text-3);font-size:10.5px;line-height:1.75;-webkit-line-clamp:2}.agent-market-card em{display:inline-flex;margin-top:9px;padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:9px;font-style:normal}.agent-composer{position:absolute!important;z-index:8;left:clamp(20px,4vw,62px)!important;right:clamp(20px,4vw,62px)!important;bottom:18px!important;width:auto!important;margin:0!important;padding:16px 18px 13px!important;border:1px solid rgba(139,92,246,.5)!important;border-radius:20px!important;background:color-mix(in srgb,var(--panel) 94%,transparent)!important;box-shadow:0 16px 50px rgba(0,0,0,.26);backdrop-filter:blur(18px)}.agent-composer textarea{min-height:70px;max-height:180px}.agent-composer .composer-bar{align-items:center;gap:10px}.agent-composer-left{min-width:0;flex:1;overflow:visible}.agent-tool-entry,.agent-skill-chip,.agent-skill-more>button{height:32px;padding:0 11px;border:1px solid var(--line);border-radius:9px;color:var(--text-2);font-size:10.5px;white-space:nowrap}.agent-tool-entry:hover,.agent-tool-entry.active,.agent-skill-chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.agent-attach-btn{width:34px!important;height:34px!important;border-radius:10px!important}.agent-composer .send-btn{flex:0 0 auto}.agent-skill-list{display:flex;gap:6px;min-width:0}.agent-skill-more{position:relative}.agent-skill-more-menu{position:absolute;z-index:20;left:0;bottom:40px;display:grid;gap:5px;width:220px;max-height:240px;padding:8px;overflow:auto;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 14px 35px rgba(0,0,0,.3)}.agent-skill-more-menu[hidden]{display:none!important}.agent-skill-more-menu button{padding:8px 9px;border-radius:7px;color:var(--text-2);text-align:left}.agent-skill-more-menu button:hover,.agent-skill-more-menu button.active{background:var(--accent-soft);color:var(--text)}
@media(max-width:760px){.agent-chat-empty{padding:20px 14px 48px}.agent-market-head{align-items:stretch;flex-direction:column}.agent-market-head label{width:100%}.agent-market-grid{grid-template-columns:1fr}.agent-composer{left:10px!important;right:10px!important;bottom:10px!important}.agent-tool-entry{padding:0 8px}.composer-hint{display:none}.chat-side{width:min(42vw,280px)}}

/* 首屏输入器在正中间；浏览更多员工时在滚动区底部吸附。 */
.agent-chat-body{padding-bottom:0}.agent-chat-empty{display:flex;flex-direction:column;min-height:100%;padding-bottom:72px}.agent-market{width:100%;margin-top:32px;transition:padding-bottom .18s ease}.agent-market-head{align-items:flex-start}.agent-market-grid{grid-template-columns:repeat(auto-fill,250px);grid-auto-rows:126px;justify-content:start;min-height:126px}.agent-market-card{width:250px;height:126px;box-sizing:border-box}.agent-composer:not(.is-home){position:absolute!important;left:clamp(20px,4vw,62px)!important;right:clamp(20px,4vw,62px)!important;bottom:18px!important;width:auto!important;margin:0!important}.agent-composer.is-home{position:relative!important;z-index:12;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;width:min(920px,100%)!important;margin:28px auto 0!important;flex:0 0 auto}.agent-composer.is-home.is-docked{position:absolute!important;left:clamp(20px,4vw,62px)!important;right:clamp(20px,4vw,62px)!important;bottom:18px!important;width:auto!important;margin:0!important}.agent-composer-placeholder{flex:0 0 auto;width:min(920px,100%);margin:28px auto 0}.agent-composer-placeholder[hidden]{display:none!important}.agent-composer.is-home+ .agent-market{margin-top:32px}.agent-composer-menu{position:relative;display:inline-flex;min-width:0}.agent-tool-entry{display:inline-flex;align-items:center;gap:7px;max-width:180px}.agent-tool-entry>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-tool-entry>i{color:var(--text-3);font-size:10px;font-style:normal;transform:rotate(180deg)}.agent-tool-entry:disabled{cursor:not-allowed;opacity:.5}.agent-tool-menu{position:absolute;z-index:30;left:0;bottom:40px;display:grid;gap:4px;width:270px;max-height:300px;padding:8px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 18px 45px rgba(0,0,0,.38)}.agent-tool-menu[hidden]{display:none!important}.agent-tool-menu>button{display:grid;gap:4px;padding:10px;border-radius:8px;color:var(--text-2);text-align:left}.agent-tool-menu>button:hover,.agent-tool-menu>button.active{background:var(--accent-soft);color:var(--text)}.agent-tool-menu>button span{font-size:11.5px;font-weight:650}.agent-tool-menu>button small{overflow:hidden;color:var(--text-3);font-size:9.5px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.agent-tool-empty{padding:18px;color:var(--text-3);font-size:11px;text-align:center}.agent-skill-list{display:inline-flex}.agent-skill-more,.agent-skill-more-menu{display:none!important}
@media(max-width:760px){.agent-market-grid{grid-template-columns:repeat(auto-fill,minmax(210px,250px))}.agent-market-card{width:100%}.agent-composer.is-home{width:100%!important}.agent-composer.is-home.is-docked,.agent-composer:not(.is-home){left:10px!important;right:10px!important;bottom:10px!important}.agent-tool-menu{width:min(250px,75vw)}}

/* AI 智能体启动页：建议文字保持轻量，输入器作为主要操作区。 */
#page-agent .agent-chat-body{scrollbar-width:thin;scrollbar-color:var(--line-hi) transparent;scrollbar-gutter:stable}
#page-agent .agent-chat-body::-webkit-scrollbar{width:8px;height:8px}
#page-agent .agent-chat-body::-webkit-scrollbar-track{background:transparent}
#page-agent .agent-chat-body::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--line-hi);background-clip:padding-box}
#page-agent .agent-chat-empty .quick-prompts{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;width:min(1100px,calc(100% - 48px));margin:0 auto;gap:10px 30px}
#page-agent .agent-chat-empty .quick-prompts button{flex:0 0 auto;width:auto;min-height:28px;padding:3px 0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:var(--text-3);font-size:12.5px;line-height:1.6;transform:none!important}
#page-agent .agent-chat-empty .quick-prompts button:hover{border:0!important;background:transparent!important;box-shadow:none!important;color:var(--text);transform:none!important}
#page-agent .agent-chat-empty .quick-prompts button::before{width:5px;height:5px;margin-top:7px;box-shadow:0 0 0 3px rgba(124,92,255,.08)}
#page-agent .agent-prompt-head{width:min(1100px,calc(100% - 48px));margin:16px auto 8px}
#page-agent .agent-composer.is-home{width:min(1100px,calc(100% - 48px))!important;padding:18px 20px 15px!important}
#page-agent .agent-composer.is-home textarea{min-height:96px;max-height:220px}
.agent-shop-suggest{position:absolute;z-index:36;left:18px;right:18px;bottom:64px;display:grid;gap:4px;max-height:300px;padding:8px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 18px 46px rgba(0,0,0,.38)}.agent-shop-suggest[hidden]{display:none!important}.agent-shop-suggest button{display:grid;gap:3px;width:100%;padding:9px 10px;border-radius:8px;color:var(--text-2);text-align:left}.agent-shop-suggest button:hover,.agent-shop-suggest button.is-active{background:var(--accent-soft);color:var(--text)}.agent-shop-suggest b{font-size:12px}.agent-shop-suggest small,.agent-shop-suggest-empty{color:var(--text-3);font-size:10px}.agent-shop-suggest-empty{padding:12px;text-align:center}
#page-agent .agent-composer-placeholder{width:min(1100px,calc(100% - 48px))}
#page-agent .agent-composer.is-home+ .agent-market{margin-top:54px}
@media(max-width:760px){#page-agent .agent-chat-empty .quick-prompts,#page-agent .agent-prompt-head,#page-agent .agent-composer.is-home,#page-agent .agent-composer-placeholder{width:100%!important}#page-agent .agent-chat-empty .quick-prompts{gap:7px 18px}#page-agent .agent-composer.is-home textarea{min-height:84px}#page-agent .agent-composer.is-home+ .agent-market{margin-top:40px}}

/* 公共数字员工目录：增加纵向浏览空间，并用纯文字大卡片承载工作简介。 */
#page-agent .agent-chat-empty{padding-top:34px;padding-bottom:220px}
#page-agent .chat-hero{padding-top:42px;padding-bottom:28px}
#page-agent .agent-prompt-head{margin-top:26px}
#page-agent .agent-composer.is-home{margin-top:36px!important}
#page-agent .agent-composer.is-home+ .agent-market{margin-top:78px;padding-bottom:180px}
#page-agent .agent-market{width:calc(100% - 48px);max-width:1500px}
#page-agent .agent-market-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:160px;gap:18px}
#page-agent .agent-market-card{display:block;width:100%;height:160px;padding:22px 20px;text-align:left}
#page-agent .agent-market-card>span{display:flex;height:100%;flex-direction:column;align-items:flex-start}
#page-agent .agent-market-card b{font-size:15px}
#page-agent .agent-market-card small{min-height:58px;margin-top:10px;font-size:11.5px;line-height:1.7;-webkit-line-clamp:3}
#page-agent .agent-market-card em{margin-top:auto}
@media(max-width:1100px){#page-agent .agent-market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#page-agent .agent-chat-empty{padding-top:18px;padding-bottom:150px}#page-agent .chat-hero{padding-top:28px}#page-agent .agent-composer.is-home+ .agent-market{margin-top:54px;padding-bottom:130px}#page-agent .agent-market{width:100%}#page-agent .agent-market-grid{grid-template-columns:1fr;grid-auto-rows:150px}#page-agent .agent-market-card{width:100%;height:150px}}

/* 输入器仅纵向停靠，首屏与底部固定状态保持完全相同的左右边界。 */
#page-agent .agent-composer.is-home.is-docked{left:50%!important;right:auto!important;width:min(1100px,calc(100% - 48px))!important;margin:0!important;transform:translateX(-50%)}
@media(max-width:760px){#page-agent .agent-composer.is-home.is-docked{width:calc(100% - 20px)!important}}

/* 原输入器自然滚出后才出现迷你输入器；点击或到达列表底部再展开。 */
#page-agent .agent-composer.is-home.is-docked{animation:agentComposerRise .22s ease-out;transition:width .22s ease,padding .22s ease,border-radius .22s ease,box-shadow .22s ease}
#page-agent .agent-composer.is-home.is-docked.is-mini{width:min(760px,calc(100% - 48px))!important;min-height:64px;padding:10px 64px 10px 14px!important;border-radius:16px!important;cursor:text}
#page-agent .agent-composer.is-home.is-docked.is-mini textarea{width:100%;min-height:42px;max-height:42px;padding:9px 6px;overflow:hidden;line-height:24px;white-space:nowrap}
#page-agent .agent-composer.is-home.is-docked.is-mini .agent-attachment-preview,#page-agent .agent-composer.is-home.is-docked.is-mini .agent-composer-left,#page-agent .agent-composer.is-home.is-docked.is-mini .composer-hint,#page-agent .agent-composer.is-home.is-docked.is-mini .agent-model-picker{display:none!important}
#page-agent .agent-composer.is-home.is-docked.is-mini .composer-bar{position:absolute;right:14px;top:50%;margin:0;transform:translateY(-50%)}
#page-agent .agent-composer.is-home.is-docked.is-mini .agent-composer-right{display:flex}
#page-agent .agent-composer.is-home.is-docked.is-expanded{width:min(1100px,calc(100% - 48px))!important;padding:18px 20px 15px!important}
#page-agent .agent-composer.is-home.is-docked.is-expanded textarea{min-height:96px;max-height:220px}
@keyframes agentComposerRise{from{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:760px){#page-agent .agent-composer.is-home.is-docked.is-mini,#page-agent .agent-composer.is-home.is-docked.is-expanded{width:calc(100% - 20px)!important}#page-agent .agent-composer.is-home.is-docked.is-mini{min-height:58px;padding:8px 58px 8px 10px!important}#page-agent .agent-composer.is-home.is-docked.is-mini textarea{min-height:40px;max-height:40px}}

/* 会话态采用真实上下布局：消息列表滚动，输入框占据底部空间，永不覆盖最后一条回复。 */
#page-agent .agent-room>.agent-composer:not(.is-home){position:relative!important;z-index:8;inset:auto!important;transform:none!important;width:var(--agent-col)!important;max-width:none!important;margin:0 auto 16px!important;flex:0 0 auto}
#page-agent .agent-room:has(>.agent-composer:not(.is-home))>.agent-chat-body{min-height:0;overflow:hidden;padding-bottom:0!important}
#page-agent .agent-room:has(>.agent-composer:not(.is-home)) .agent-chat-messages{min-height:0;overflow-y:auto;padding-bottom:28px!important;scroll-padding-bottom:28px}
@media(max-width:760px){#page-agent .agent-room>.agent-composer:not(.is-home){width:calc(100% - 20px)!important;margin-bottom:10px!important}}

/* 今日工作台：轻量摘要，事实仍来自既有任务与经营接口。 */
.today-workbench{display:grid;gap:16px}.today-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.today-kpis article,.today-card,.today-priority{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.today-kpis article{display:grid;gap:8px}.today-kpis small,.today-section-head p{color:var(--text-3);font-size:12px}.today-kpis b{font-size:24px}.today-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.today-section-head h2{margin:0 0 4px;font-size:16px}.today-section-head p{margin:0}.today-priority-list{display:grid;gap:8px;margin-top:14px}.today-priority-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:11px}.today-priority-item>div{min-width:0}.today-priority-item small{color:var(--text-3);font-size:11px}.today-priority-item b{display:block;margin-top:3px}.today-priority-item p{margin:4px 0 0;color:var(--text-3);font-size:12px;overflow-wrap:anywhere}.today-priority-item button{padding:8px 12px;border:1px solid var(--line);border-radius:9px;color:var(--text-2)}.today-priority-tag{padding:5px 8px;border-radius:7px;background:rgba(148,163,184,.12);text-align:center;font-size:11px}.today-priority-tag.p0{color:#fb7185;background:rgba(244,63,94,.12)}.today-priority-tag.p1{color:#fbbf24;background:rgba(245,158,11,.12)}.today-priority-tag.p2{color:#60a5fa;background:rgba(59,130,246,.12)}.today-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.today-summary{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px}.today-summary>div{display:grid;gap:4px}.today-summary b{font-size:22px}.today-summary span,.today-summary p,.today-brief{color:var(--text-3);font-size:13px;line-height:1.7}.today-summary p{width:100%;margin:0}.today-brief{margin-top:16px}.today-shortcuts{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:900px){.today-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.today-columns{grid-template-columns:1fr}}@media(max-width:560px){.today-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.today-priority-item{grid-template-columns:42px minmax(0,1fr)}.today-priority-item button{grid-column:2;justify-self:start}.today-section-head{align-items:flex-start;flex-direction:column}}
.today-priority-more{display:block;margin:14px auto 0;padding:8px 18px;border:1px solid var(--line);border-radius:999px;color:var(--text-2);background:var(--panel-2);font-size:12px}.today-priority-more[hidden]{display:none}.today-priority-more:hover{color:var(--text-1);border-color:var(--accent)}
.today-mini-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.today-mini-calendar-head h2{margin:0;font-size:15px}.today-mini-calendar-head small{display:block;margin-top:3px;color:var(--text-3);font-size:10px}.today-mini-calendar{margin-top:12px}.today-mini-calendar-weekdays,.today-mini-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.today-mini-calendar-weekdays span{padding:3px 0;color:var(--text-3);font-size:9px;text-align:center}.today-mini-calendar-day{position:relative;display:grid;min-width:0;height:31px;padding:0;place-items:center;border:0;border-radius:8px;color:var(--text-2);font-size:11px}.today-mini-calendar-day:hover{background:var(--panel-2);color:var(--text)}.today-mini-calendar-day.outside{opacity:.3}.today-mini-calendar-day.is-today{background:var(--accent);color:#fff;font-weight:750}.today-mini-calendar-day.has-events:after{position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--accent);content:""}.today-mini-calendar-day.is-today:after{background:#fff}.today-mini-calendar-summary{display:flex;gap:12px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}.today-mini-calendar-summary span{color:var(--text-3);font-size:10px}.today-mini-calendar-summary b{margin-right:3px;color:var(--text);font-size:11px}

/* 今日工作台晨报：把行动、日程与新增信息分层，避免同一内容重复出现。 */
.today-morning-head{align-items:center}.today-morning-head .today-head-actions{display:flex;gap:8px}.today-brief-bar{display:grid;grid-template-columns:minmax(280px,1.45fr) minmax(0,3fr);gap:10px}.today-brief-lead{display:flex;min-height:96px;flex-direction:column;justify-content:center;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:15px;background:linear-gradient(135deg,var(--panel),var(--accent-soft))}.today-brief-lead small{color:var(--accent);font-size:11px;font-weight:750;letter-spacing:.08em}.today-brief-lead b{margin:5px 0 2px;font-size:16px}.today-brief-lead span{color:var(--text-3);font-size:11px}.today-brief-bar .today-kpis{gap:10px}.today-brief-bar .today-kpis article{min-width:0;justify-content:center;padding:13px 14px}.today-brief-bar .today-kpis b{font-size:22px}.today-morning-layout{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(310px,.62fr);gap:14px}.today-morning-main,.today-morning-side{display:grid;align-content:start;gap:14px}.today-morning-side .today-card{padding:15px}.today-text-link{padding:4px;border:0;color:var(--accent);font-size:12px;font-weight:650}.today-update-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.today-update-grid>div{min-width:0}.today-update-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.today-update-title>b{font-size:13px}.today-update-list{display:grid;gap:8px}.today-update-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:94px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.today-update-item>div{min-width:0}.today-update-item .today-update-kind{display:inline-flex;margin-bottom:5px;padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:9px;font-weight:750}.today-update-item.system .today-update-kind{background:rgba(52,211,153,.1);color:#34d399}.today-update-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.today-update-item p{display:-webkit-box;margin:4px 0 0;overflow:hidden;color:var(--text-3);font-size:10px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.today-update-item button{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--text-2);white-space:nowrap}.today-schedule .ops-calendar-event{border-left:2px solid var(--accent);border-radius:4px 9px 9px 4px}.today-morning-side .week-summary{grid-template-columns:repeat(4,1fr)}.today-morning-side .week-summary>div{padding:10px 7px;text-align:center}.today-morning-side .week-summary b{font-size:18px}.today-morning-side .today-brief{margin-top:10px;padding:12px;border:1px dashed var(--line);border-radius:10px;background:var(--panel-2);font-size:11px}.today-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.today-shortcut{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text);text-align:left}.today-shortcut:hover{border-color:var(--line-hi);background:var(--panel-2)}.today-shortcut b,.today-shortcut small{display:block}.today-shortcut b{font-size:12px}.today-shortcut small{margin-top:2px;color:var(--text-3);font-size:10px}@media(max-width:1180px){.today-brief-bar{grid-template-columns:1fr}.today-morning-layout{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)}}@media(max-width:900px){.today-morning-layout{grid-template-columns:1fr}.today-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.today-morning-head{align-items:flex-start}.today-morning-head .today-head-actions{width:100%}.today-morning-head .today-head-actions button{flex:1}.today-brief-bar .today-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.today-brief-bar .today-kpis article:last-child{grid-column:1/-1}.today-update-grid{grid-template-columns:1fr}.today-morning-side .week-summary{grid-template-columns:repeat(2,1fr)}.today-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 运营日历：沿用工作台低饱和设计，事件通过标签与状态区分。 */
.calendar-page{display:grid;gap:16px}.calendar-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.calendar-controls .calendar-nav{display:flex;align-items:center;gap:7px}.calendar-controls .calendar-nav button{padding:7px 11px;border:1px solid var(--line);border-radius:8px;color:var(--text-2)}.calendar-controls .calendar-nav strong{min-width:130px;margin-left:5px}.calendar-filters{display:flex;gap:8px;margin-left:auto}.calendar-filters select,.calendar-filters input{min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text)}.calendar-surface{min-height:560px;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.ops-calendar-weekdays,.ops-calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.ops-calendar-weekdays span{padding:10px;border-bottom:1px solid var(--line);color:var(--text-3);font-size:11px;text-align:center}.ops-calendar-day{min-height:124px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.ops-calendar-day:nth-child(7n){border-right:0}.ops-calendar-day.outside{opacity:.38}.ops-calendar-day.is-today{background:var(--accent-soft)}.ops-calendar-date{margin-bottom:6px;color:var(--text-3);font-size:11px}.ops-calendar-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;width:100%;margin:3px 0;padding:5px 6px;border:1px solid transparent;border-radius:7px;background:rgba(148,163,184,.09);color:var(--text-2);text-align:left}.ops-calendar-event:hover{border-color:var(--line-hi)}.ops-calendar-event span,.ops-calendar-event em{color:var(--text-3);font-size:9px;font-style:normal}.ops-calendar-event b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.ops-calendar-event.type-operation{background:rgba(124,92,255,.11)}.ops-calendar-event.type-learning{background:rgba(16,185,129,.1)}.ops-calendar-event.status-done{opacity:.55;text-decoration:line-through}.ops-calendar-list{display:grid;gap:0}.ops-calendar-list-day{min-height:130px;padding:18px;border-bottom:1px solid var(--line)}.ops-calendar-list-day h3{margin:0 0 12px;font-size:14px}.ops-calendar-list-day .ops-calendar-event{padding:9px 11px}.today-schedule{display:grid;gap:6px;margin-top:14px}.today-schedule .ops-calendar-event{padding:9px}.week-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.week-summary>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px}.week-summary b{font-size:21px}.week-summary span{color:var(--text-3);font-size:11px}.calendar-setting,.calendar-task-option{display:flex!important;align-items:center!important;gap:8px!important}.calendar-setting input,.calendar-task-option input{width:auto!important}.calendar-create-panel{width:min(720px,calc(100vw - 32px))}@media(max-width:760px){.calendar-filters{width:100%;margin-left:0}.calendar-filters>*{min-width:0;flex:1}.ops-calendar-day{min-height:92px;padding:5px}.ops-calendar-event{grid-template-columns:1fr}.ops-calendar-event span,.ops-calendar-event em{display:none}.calendar-surface{min-height:440px}.calendar-today-columns{grid-template-columns:1fr}}

/* 运营日历左右布局：左侧控制，右侧年月与主日历。 */
.task-calendar-panel>.calendar-page{grid-template-rows:auto minmax(0,1fr)}.task-calendar-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:12px;min-height:0;height:100%}.task-calendar-panel .calendar-controls{display:flex;min-width:0;flex-direction:column;align-items:stretch;align-content:stretch;gap:12px;padding:12px}.task-calendar-panel .calendar-controls .seg{display:grid;width:100%;height:34px;grid-template-columns:repeat(3,1fr)}.task-calendar-panel .calendar-controls .seg button{width:100%;min-width:0}.task-calendar-panel .calendar-controls .calendar-nav{display:grid;width:100%;grid-template-columns:34px minmax(0,1fr) 34px;gap:6px}.task-calendar-panel .calendar-controls .calendar-nav button,.task-calendar-panel .calendar-controls .calendar-nav button:first-child,.task-calendar-panel .calendar-controls .calendar-nav button:last-child{width:100%;min-width:0}.task-calendar-panel .calendar-controls #calendarToday{width:100%;min-width:0}.task-calendar-panel .calendar-controls .calendar-filters{display:grid;width:100%;grid-template-columns:1fr;gap:8px;margin:0}.task-calendar-panel .calendar-controls .calendar-filters select,.task-calendar-panel .calendar-controls .calendar-filters input{width:100%}.task-calendar-main{display:grid;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0}.task-calendar-period{display:flex;align-items:center;padding:0 4px}.task-calendar-period strong{font-size:24px;line-height:1;font-weight:750}.task-calendar-panel .calendar-surface{height:100%;min-height:0}.task-calendar-panel .ops-calendar-month{height:calc(100% - 34px);grid-template-rows:repeat(6,minmax(0,1fr))}.task-calendar-panel .ops-calendar-day{min-height:0}@media(max-width:900px){.task-calendar-layout{grid-template-columns:1fr}.task-calendar-panel .calendar-controls{display:grid;grid-template-columns:auto auto minmax(260px,1fr);gap:8px}.task-calendar-panel .calendar-controls .seg{width:150px}.task-calendar-panel .calendar-controls .calendar-nav{width:140px}.task-calendar-panel .calendar-controls .calendar-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.task-calendar-main{min-height:620px}}@media(max-width:760px){.task-calendar-layout{height:auto}.task-calendar-panel .calendar-controls{grid-template-columns:1fr}.task-calendar-panel .calendar-controls .seg,.task-calendar-panel .calendar-controls .calendar-nav{width:100%}.task-calendar-panel .calendar-controls .calendar-filters{grid-template-columns:1fr 1fr}.task-calendar-panel .calendar-controls .calendar-filters input{grid-column:1/-1}.task-calendar-main{min-height:580px}.task-calendar-period strong{font-size:20px}}

.task-calendar-panel>.calendar-page{box-sizing:border-box;overflow:hidden}.task-calendar-layout{height:auto}.task-calendar-panel .calendar-controls{min-height:0}

/* 聚水潭正式 API POC 与经营中心：只展示本地真实同步结果。 */
.jst-query-panel{display:grid;gap:14px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.jst-query-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.jst-query-head h2{margin:0 0 5px;font-size:18px}.jst-query-head p{margin:0;color:var(--text-3);font-size:13px}.jst-product-search input{width:min(360px,40vw);padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text)}.jst-product-table-wrap{overflow:auto}.jst-product-table{width:100%;border-collapse:collapse;min-width:650px}.jst-product-table th,.jst-product-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left}.jst-product-table th{color:var(--text-3);font-size:12px;font-weight:600}.jst-product-table td{font-size:13px}.jst-product-table td:first-child{font-weight:600}.jst-product-table td small{display:block;margin-top:3px;color:var(--text-3);font-weight:400}.jst-product-table .jst-empty{text-align:center;color:var(--text-3);padding:30px}.jst-query-foot{color:var(--text-3);font-size:12px}.jst-history-backfill{padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.jst-history-backfill h3{margin:0 0 5px;font-size:14px}.jst-history-backfill p,.jst-history-backfill small{color:var(--text-3);font-size:12px}.jst-history-backfill>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.jst-history-backfill input{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.jst-history-backfill small{display:block;margin-top:9px}.jst-source-state.error{border-color:rgba(248,113,113,.4);color:#f87171}.jst-shops-details{padding-top:10px;border-top:1px solid var(--line)}.jst-shops-details summary{cursor:pointer;color:var(--text-2);font-size:13px}.jst-shop-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:7px;margin-top:12px}.jst-shop-list>div{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:12px}.jst-shop-list small{display:block;color:var(--text-3);margin-top:3px}@media(max-width:700px){.jst-query-head{align-items:stretch;flex-direction:column}.jst-product-search input{width:100%}.business-center .page-head{align-items:flex-start;flex-direction:column}}
.business-center{display:grid;gap:16px}.business-tabs{display:flex;gap:8px;overflow-x:auto}.business-tabs button{padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--text-3)}.business-tabs button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.jst-source-state{padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);color:var(--text-2)}.jst-source-state.ok{border-color:rgba(34,197,94,.4);color:#86efac}.jst-metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.jst-metric-grid article{display:grid;gap:8px;padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.jst-metric-grid small{color:var(--text-3)}.jst-metric-grid b{font-size:22px}.jst-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.jst-dashboard-grid>section{min-height:180px;padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.jst-dashboard-grid h2{margin-bottom:12px;font-size:14px}.jst-portal-card{max-width:900px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--text-2);line-height:1.8}.jst-portal-card h2{margin:0 0 12px;color:var(--text);font-size:18px}.jst-portal-card p{margin:8px 0}.jst-admin-panel{width:min(1080px,calc(100vw - 32px));max-height:calc(100vh - 40px)}.jst-admin-body{display:grid;gap:16px;overflow-y:auto}.jst-capability-list,.jst-sync-list{display:grid;gap:7px}.jst-capability-list>div,.jst-sync-list>div{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,1fr) auto;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.jst-capability-list small,.jst-sync-list small{color:var(--text-3)}@media(max-width:900px){.jst-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jst-dashboard-grid{grid-template-columns:1fr}.jst-capability-list>div,.jst-sync-list>div{grid-template-columns:1fr}}

/* 任务后台中的 Staff 预审设置沿用工作台主题，不使用浏览器默认控件外观。 */
.task-admin-toggle-list>.task-admin-agent-setting{align-items:flex-end}.task-admin-agent-setting select{width:min(420px,48vw);min-height:44px;padding:9px 38px 9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--input-bg);color:var(--text)}.task-admin-agent-status,.task-admin-save-status{padding:0 6px;color:var(--text-3);font-size:13px}.task-admin-agent-status.ok,.task-admin-save-status.ok{color:#6ee7a0}.task-admin-agent-status.error{color:var(--danger)}.task-admin-toggle-list input:disabled{opacity:.45;cursor:not-allowed}@media(max-width:760px){.task-admin-toggle-list>.task-admin-agent-setting{align-items:stretch}.task-admin-agent-setting select{width:100%}}
.task-reminder-settings{display:grid;gap:16px}.task-reminder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.task-reminder-card{min-height:118px;margin:0;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:var(--panel-2)}.task-reminder-card>span{display:flex;flex-direction:column;gap:7px;min-width:0}.task-reminder-card b{font-size:15px;color:var(--text)}.task-reminder-card small{color:var(--text-3);line-height:1.55}.task-reminder-card.task-reminder-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,230px);align-items:center;gap:20px}.task-reminder-card select,.task-reminder-card input[type=time]{width:100%;min-height:46px;padding:10px 38px 10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--input-bg);color:var(--text)}.task-reminder-card select:disabled,.task-reminder-card input[type=time]:disabled{opacity:.45;cursor:not-allowed}.task-reminder-wide{grid-column:1/-1}.task-reminder-settings>.vault-error,.task-reminder-settings>.task-admin-save-status{min-height:18px}.task-reminder-settings>.vault-actions{padding-top:2px}@media(max-width:760px){.task-reminder-grid{grid-template-columns:1fr}.task-reminder-wide{grid-column:auto}.task-reminder-card.task-reminder-field{grid-template-columns:1fr}.task-reminder-card{min-height:auto}}
.workbench-agent-capability-gateway{grid-column:1/-1;min-width:0;overflow:hidden}.workbench-agent-capability-gateway .workbench-agent-form{min-width:0}.workbench-agent-capability-matrix{display:grid;gap:10px;min-width:0;margin-top:8px}.workbench-agent-capability-row{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,2fr) minmax(76px,auto) minmax(76px,auto);align-items:center;gap:12px;min-width:0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}.workbench-agent-capability-row b,.workbench-agent-capability-row span{min-width:0;overflow-wrap:anywhere}.workbench-agent-capability-row span{color:var(--muted);font-size:13px}.workbench-agent-capability-row label{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}.workbench-agent-capability-row input{width:auto;flex:none}@media(max-width:980px){.workbench-agent-capability-row{grid-template-columns:minmax(110px,1fr) minmax(0,2fr)}.workbench-agent-capability-row label{grid-row:2}.workbench-agent-capability-row label:first-of-type{grid-column:1}.workbench-agent-capability-row label:last-of-type{grid-column:2}}@media(max-width:620px){.workbench-agent-capability-row{grid-template-columns:1fr 1fr}.workbench-agent-capability-row b,.workbench-agent-capability-row span{grid-column:1/-1}}
.workbench-agent-gateway-switch{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between;gap:18px;min-height:64px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);cursor:pointer}.workbench-agent-gateway-switch>span{display:grid;gap:4px;min-width:0}.workbench-agent-gateway-switch b{color:var(--text);font-size:14px}.workbench-agent-gateway-switch small{color:var(--muted);font-size:12px;line-height:1.45}.workbench-agent-gateway-switch input{position:absolute;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.workbench-agent-gateway-switch i{position:relative;flex:0 0 48px;width:48px;height:26px;border:1px solid var(--line-hi);border-radius:999px;background:var(--panel-2);transition:.18s}.workbench-agent-gateway-switch i:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.35);transition:transform .18s}.workbench-agent-gateway-switch input:checked+i{border-color:var(--accent);background:var(--accent)}.workbench-agent-gateway-switch input:checked+i:after{transform:translateX(22px)}.workbench-agent-gateway-switch:focus-within{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}
.learning-exam-question>textarea{width:100%;min-height:100px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);resize:vertical}.learning-question-editor{display:grid;gap:12px}.learning-question-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.learning-question-editor-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.learning-question-editor-head small{display:block;color:var(--text-3)}#learningQuestionEditorList{display:grid;gap:12px}.learning-question-card{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.learning-question-card-head{grid-column:1/-1;display:flex;align-items:center;gap:10px}.learning-question-card-head b{margin-right:auto}.learning-question-card label{display:grid;gap:6px;color:var(--text-2);font-size:11px}.learning-question-card label:has([data-question-text]),.learning-question-card label:has([data-question-options]),.learning-question-card label:has([data-question-evidence]){grid-column:1/-1}.learning-question-card input,.learning-question-card select,.learning-question-card textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}@media(max-width:760px){.learning-question-card{grid-template-columns:1fr}.learning-question-card label{grid-column:1!important}}

/* 运营日历月视图固定为标准 7 列 × 6 行，并在当前窗口完整显示整月。 */
.calendar-surface.is-month{height:calc(100vh - 310px);min-height:360px;max-height:650px}.calendar-surface.is-month .ops-calendar-weekdays{height:32px}.calendar-surface.is-month .ops-calendar-weekdays span{display:grid;place-items:center;padding:0}.calendar-surface.is-month .ops-calendar-month{height:calc(100% - 32px);grid-template-rows:repeat(6,minmax(0,1fr));border-left:1px solid var(--line)}.calendar-surface.is-month .ops-calendar-day{min-width:0;min-height:0;padding:4px 6px;overflow:hidden;cursor:pointer}.calendar-surface.is-month .ops-calendar-day:hover{background:rgba(124,92,255,.045)}.calendar-surface.is-month .ops-calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-surface.is-month .ops-calendar-day.outside{background:rgba(148,163,184,.025);opacity:.45}.calendar-surface.is-month .ops-calendar-date{display:flex;justify-content:flex-end;height:20px;margin-bottom:1px}.calendar-surface.is-month .ops-calendar-date span{display:grid;width:20px;height:20px;place-items:center;border-radius:50%}.calendar-surface.is-month .ops-calendar-day.is-today{background:transparent}.calendar-surface.is-month .ops-calendar-day.is-today .ops-calendar-date span{background:var(--accent);color:#fff;font-weight:700}.calendar-surface.is-month .ops-calendar-event{margin:1px 0;padding:2px 4px}.ops-calendar-more{display:block;padding:0 4px;color:var(--text-3);font-size:9px}@media(max-width:760px){.calendar-surface.is-month{height:calc(100vh - 330px);min-height:340px}.calendar-surface.is-month .ops-calendar-day{padding:2px 3px}.calendar-surface.is-month .ops-calendar-event{padding:1px 3px}}

/* 运营日历工具栏：隔离旧任务日历样式，统一图标、控件尺寸与基线。 */
.calendar-page{gap:14px}.calendar-page>.page-head{align-items:center;margin-bottom:4px}.calendar-controls{display:grid;grid-template-columns:auto auto minmax(360px,1fr);align-items:center;gap:18px;padding:12px 14px}.calendar-controls .seg{height:42px;padding:4px}.calendar-controls .seg button{display:grid;min-width:52px;height:32px;padding:0 14px;place-items:center}.calendar-controls .calendar-nav{display:flex;align-items:center;justify-self:start;gap:8px}.calendar-controls .calendar-nav button,.calendar-controls .calendar-nav button:first-child,.calendar-controls .calendar-nav button:last-child{display:grid;box-sizing:border-box;width:42px;min-width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:11px;place-items:center;background:var(--panel-2);color:var(--text-2);font-size:13px;line-height:1}.calendar-controls .calendar-nav button:hover{border-color:var(--line-hi);background:var(--accent-soft);color:var(--text)}.calendar-controls .calendar-nav button svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.calendar-controls #calendarToday{width:64px;min-width:64px;font-size:13px;font-weight:600}.calendar-controls #calendarPeriod{min-width:116px;margin:0 0 0 4px;color:var(--text);font-size:15px;font-weight:650;line-height:42px;white-space:nowrap}.calendar-controls .calendar-filters{display:grid;grid-template-columns:minmax(120px,150px) minmax(120px,150px) minmax(180px,1fr);align-items:center;gap:8px;width:100%;margin:0}.calendar-controls .calendar-filters select,.calendar-controls .calendar-filters input{box-sizing:border-box;width:100%;height:42px;min-height:42px;padding:0 12px;border-radius:11px}.calendar-surface{border-radius:14px}.ops-calendar-weekdays span{font-weight:600;letter-spacing:.02em}@media(max-width:1220px){.calendar-controls{grid-template-columns:auto 1fr}.calendar-controls .calendar-filters{grid-column:1/-1;grid-template-columns:150px 150px minmax(180px,1fr)}}@media(max-width:760px){.calendar-page{gap:10px}.calendar-page>.page-head{align-items:flex-start}.calendar-controls{grid-template-columns:1fr;padding:10px;gap:10px}.calendar-controls .seg{justify-self:start}.calendar-controls .calendar-nav{width:100%}.calendar-controls #calendarPeriod{margin-left:auto;text-align:right}.calendar-controls .calendar-filters{grid-column:auto;grid-template-columns:1fr 1fr}.calendar-controls .calendar-filters input{grid-column:1/-1}}

/* 任务中心的运营日历采用接近系统日历的高密度工具栏，把主要空间交给月视图。 */
.task-calendar-modal{padding:10px}.task-calendar-modal>.task-calendar-panel{width:min(1680px,100%)!important;height:calc(100vh - 20px);max-height:none!important}.task-calendar-panel>.calendar-page{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0;height:100%;gap:10px;padding:18px;overflow:auto}.calendar-modal-actions{display:flex;align-items:center;gap:10px}.task-calendar-open{display:flex;align-items:center;gap:7px}.task-calendar-open .ico{width:17px;height:17px}.task-calendar-panel .page-head{min-height:38px;margin:0}.task-calendar-panel .page-head h1{font-size:24px}.task-calendar-panel .calendar-controls{grid-template-columns:auto auto minmax(300px,1fr);gap:10px;padding:7px 9px;border-radius:12px}.task-calendar-panel .calendar-controls .seg{height:34px;padding:3px}.task-calendar-panel .calendar-controls .seg button{min-width:46px;height:28px;padding:0 12px;font-size:11px}.task-calendar-panel .calendar-controls .calendar-nav{gap:5px}.task-calendar-panel .calendar-controls .calendar-nav button,.task-calendar-panel .calendar-controls .calendar-nav button:first-child,.task-calendar-panel .calendar-controls .calendar-nav button:last-child{width:34px;min-width:34px;height:34px;border-radius:9px;font-size:11px}.task-calendar-panel .calendar-controls #calendarToday{width:52px;min-width:52px;font-size:11px}.task-calendar-panel .calendar-controls #calendarPeriod{min-width:104px;margin-left:3px;font-size:14px;line-height:34px}.task-calendar-panel .calendar-controls .calendar-filters{grid-template-columns:minmax(105px,130px) minmax(105px,130px) minmax(150px,1fr);gap:6px}.task-calendar-panel .calendar-controls .calendar-filters select,.task-calendar-panel .calendar-controls .calendar-filters input{height:34px;min-height:34px;padding:0 10px;border-radius:9px;font-size:11px}.task-calendar-panel .calendar-surface{height:100%;min-height:0}.task-calendar-panel .ops-calendar-weekdays{height:34px}.task-calendar-panel .ops-calendar-weekdays span{display:grid;padding:0;place-items:center;font-size:11px}.task-calendar-panel .ops-calendar-month{height:calc(100% - 34px);grid-template-rows:repeat(6,minmax(112px,1fr))}.task-calendar-panel .ops-calendar-day{box-sizing:border-box;min-height:112px;padding:10px 12px}.task-calendar-panel .ops-calendar-date{margin-bottom:8px;font-size:13px;font-weight:600}.task-calendar-panel .ops-calendar-date span{display:inline-grid;min-width:25px;height:25px;place-items:center;border-radius:50%}.task-calendar-panel .ops-calendar-day.is-today .ops-calendar-date span{background:var(--accent);color:#fff}.task-calendar-panel .ops-calendar-event{padding:6px 8px}.task-calendar-panel .ops-calendar-event b{font-size:11px}@media(max-width:1220px){.task-calendar-panel .calendar-controls{grid-template-columns:auto 1fr}.task-calendar-panel .calendar-controls .calendar-filters{grid-column:1/-1}}@media(max-width:760px){.task-calendar-modal{padding:6px}.task-calendar-modal>.task-calendar-panel{height:calc(100vh - 12px)}.task-calendar-panel>.calendar-page{padding:12px}.calendar-modal-actions .btn-primary{display:none}.task-calendar-panel .calendar-controls{grid-template-columns:1fr}.task-calendar-panel .calendar-controls .calendar-filters{grid-column:auto}.task-calendar-panel .ops-calendar-month{grid-template-rows:repeat(6,minmax(86px,1fr))}.task-calendar-panel .ops-calendar-day{min-height:86px;padding:6px}}
.data-scope-mount{position:relative;display:flex;align-items:flex-start;margin-left:auto}.data-scope-trigger{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;min-width:190px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text-2);text-align:left}.data-scope-trigger span{color:var(--text-3);font-size:11px}.data-scope-trigger b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.data-scope-trigger i{color:var(--text-3);font-style:normal}.agent-data-scope-mount{margin:10px 12px 0}.agent-data-scope-mount .data-scope-trigger{width:100%;background:var(--panel-2)}.data-scope-popover{position:fixed;z-index:10050;top:78px;right:24px;width:min(720px,calc(100vw - 28px));max-height:calc(100vh - 100px);display:grid;grid-template-rows:auto auto auto minmax(100px,1fr) auto;gap:12px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 22px 80px rgba(0,0,0,.45);color:var(--text)}.data-scope-pop-head,.data-scope-foot{display:flex;align-items:center;justify-content:space-between;gap:14px}.data-scope-pop-head b{display:block;font-size:15px}.data-scope-pop-head small,.data-scope-foot small{display:block;margin-top:4px;color:var(--text-3);font-size:11px}.data-scope-pop-head>button{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;font-size:18px}.data-scope-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.data-scope-filters>input{grid-column:1/-1;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text)}.data-scope-filter{display:grid;gap:4px;color:var(--text-3);font-size:10px}.data-scope-filter select{width:100%;min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text);font-size:11px}.data-scope-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.data-scope-actions button{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--text-2);font-size:11px}.data-scope-actions span{margin-left:auto;color:var(--text-3);font-size:11px}.data-scope-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px;overflow:auto;padding:2px}.data-scope-list>label{display:flex;align-items:flex-start;gap:8px;padding:9px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.data-scope-list input{margin-top:3px;accent-color:var(--accent)}.data-scope-list span{min-width:0;font-size:12px;overflow-wrap:anywhere}.data-scope-list small{display:block;margin-top:3px;color:var(--text-3);font-size:10px}.data-scope-foot{border-top:1px solid var(--line);padding-top:10px}.data-scope-foot .btn-primary{padding:9px 14px}@media(max-width:750px){.data-scope-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.data-scope-list{grid-template-columns:1fr}.data-scope-popover{top:12px;right:12px;max-height:calc(100vh - 24px)}.data-scope-mount{margin:8px 0 0}.data-scope-trigger{min-width:min(240px,100%)}}

/* 今日晨报 V2：严格按确认稿形成左主右辅的信息层级。 */
#page-today .today-workbench{max-width:none;padding:26px 28px 48px;border:0;border-radius:24px;background:color-mix(in srgb,var(--bg) 72%,#08090b);gap:18px}#page-today .today-morning-head{position:relative;margin:0;padding:10px 0 12px}#page-today .today-morning-head h1{font-family:inherit;font-size:28px;font-weight:650;line-height:1.25;letter-spacing:0}#page-today .today-morning-head p{font-size:12px}#page-today .today-head-tools{position:relative}#page-today .today-head-actions button{height:42px;padding:0 16px;border-radius:11px}#page-today .today-customize-panel{position:absolute;z-index:30;top:50px;right:0;width:230px;padding:14px;border:1px solid var(--line-hi);border-radius:13px;background:var(--panel);box-shadow:0 18px 45px rgba(0,0,0,.35)}#page-today .today-customize-panel>b,#page-today .today-customize-panel small{display:block}#page-today .today-customize-panel label{display:flex;align-items:center;gap:8px;margin-top:9px;color:var(--text-2)}#page-today .today-customize-panel input{accent-color:var(--accent)}#page-today .today-customize-panel small{margin-top:10px;color:var(--text-3);font-size:10px}
#page-today .today-head-actions{align-items:flex-start;gap:10px!important}#page-today .today-refresh-box{position:relative;display:block!important;flex:0 0 auto!important;padding-bottom:16px}#page-today .today-refresh-box #todayRefresh{display:block;flex:0 0 auto!important}#page-today .today-refresh-box small{position:absolute;top:46px;right:0;display:block!important;width:max-content;margin:0!important;color:var(--text-3);font-size:9px!important;font-weight:400;line-height:1.15;text-align:right;white-space:nowrap}#page-today .today-refresh-box.is-refreshing small{color:var(--accent)}
#page-today .today-brief-bar{grid-template-columns:minmax(420px,1.25fr) minmax(0,1.85fr);align-items:stretch;gap:12px}#page-today .today-brief-lead{min-height:112px;height:100%;padding:32px 30px;border-radius:16px;justify-content:flex-start}#page-today .today-brief-lead>b{margin-top:14px;font-size:16px;line-height:1.5}#page-today .today-brief-lead>span{margin-top:6px}#page-today .today-brief-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:28px}#page-today .today-brief-details>div{display:grid;gap:4px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:12px;background:rgba(255,255,255,.025)}#page-today .today-brief-details b{font-size:22px;line-height:1.2}#page-today .today-brief-details span{color:var(--text-3);font-size:11px}#page-today .today-overview-stack{display:grid;align-content:start;gap:12px;min-width:0}#page-today .today-brief-bar:has(.today-brief-lead[hidden]) .today-overview-stack{grid-column:1/-1}#page-today .today-brief-bar .today-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}#page-today .today-brief-bar .today-kpis article{min-height:112px;align-content:center;padding:16px;border-radius:16px}#page-today .today-brief-bar .today-kpis b{font-size:25px}#page-today .today-brief-bar .today-kpis small{margin-top:8px}#page-today .today-overview-stack .today-business-card{padding:18px}
#page-today .today-morning-layout{grid-template-columns:minmax(0,2.05fr) minmax(330px,1fr);gap:14px}#page-today .today-priority,#page-today .today-card{border-radius:17px;padding:19px}#page-today .today-section-head{min-height:34px}#page-today .today-section-head h2{font-size:17px}#page-today .today-priority-item{min-height:72px;border-width:1px 0 0;border-radius:0;padding:12px 0}#page-today .today-priority-item:first-child{border-top:1px solid var(--line)}#page-today .today-priority-item button{background:var(--panel-2)}#page-today .today-update-grid{gap:12px}#page-today .today-update-item{min-height:152px;grid-template-columns:1fr;align-content:start;padding:16px}#page-today .today-update-item b{font-size:15px}#page-today .today-update-item p{font-size:12px;-webkit-line-clamp:3}#page-today .today-update-item button{justify-self:start;border:0;padding:8px 0;color:var(--accent)}
#page-today .today-morning-side .today-card{padding:18px}#page-today .today-schedule{gap:0}#page-today .today-schedule .ops-calendar-event{grid-template-columns:54px 12px minmax(0,1fr);min-height:68px;margin:0;padding:10px 0;border:0;border-radius:0;background:transparent}#page-today .today-schedule .ops-calendar-event span{grid-column:1;color:var(--text-3);font-size:12px}#page-today .today-schedule .ops-calendar-event:before{content:"";grid-column:2;width:8px;height:8px;border-radius:50%;background:var(--accent)}#page-today .today-schedule .ops-calendar-event b{grid-column:3;font-size:13px}#page-today .today-schedule .ops-calendar-event em{grid-column:3;color:var(--text-3)}#page-today .today-business-alerts{display:grid;gap:9px;margin-top:12px}#page-today .today-business-item{padding:12px 13px;border-left:3px solid var(--accent);border-radius:0 10px 10px 0;background:var(--panel-2)}#page-today .today-business-item.is-critical{border-color:#f5a524}#page-today .today-business-item b,#page-today .today-business-item small{display:block}#page-today .today-business-item small{margin-top:2px;color:var(--text-3);font-size:10px}
#page-today .today-business-card{background:linear-gradient(135deg,rgba(124,92,255,.08),transparent 48%),var(--panel)}#page-today .today-business-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}#page-today .today-business-actions .btn-ghost{min-height:38px;padding:0 16px}#page-today .today-business-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}#page-today .today-business-kpis>div{display:grid;min-width:0;min-height:112px;padding:16px;border:1px solid var(--line);border-radius:16px;align-content:center;justify-items:center;background:var(--panel-2);text-align:center}#page-today .today-business-kpis b,#page-today .today-business-kpis small{display:block}#page-today .today-business-kpis b{font-size:25px;line-height:1.15;letter-spacing:-.02em}#page-today .today-business-kpis small{margin-top:8px;color:var(--text-3);font-size:12px}#page-today .today-business-alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}#page-today .today-business-alerts .module-empty.compact{padding:10px 0;text-align:left}.today-jst-portal-panel{max-width:560px}
@media(max-width:620px){#page-today .today-business-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#page-today .today-business-alert-list{grid-template-columns:1fr}#page-today .today-business-actions{justify-content:flex-start}}
#page-today .today-shortcuts{grid-template-columns:1fr 1fr;grid-auto-flow:row;padding:18px;border:1px solid var(--line);border-radius:17px;background:var(--panel)}#page-today .today-shortcuts>.today-shortcuts-head,#page-today .today-shortcuts>h2{grid-column:1/-1}.today-shortcuts-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.today-shortcuts-head h2{margin:0;font-size:17px}.today-shortcuts-head small{display:block;margin-top:3px;color:var(--text-3);font-size:10px}.today-shortcuts-reset{padding:5px 8px;border:0;color:var(--accent);font-size:11px;white-space:nowrap}.today-shortcut{display:flex;align-items:center;gap:8px}.today-shortcut-grip{flex:0 0 auto;color:var(--text-3);font-size:12px;letter-spacing:-4px;cursor:grab}.today-shortcut>span:last-child{min-width:0}.today-shortcut.is-dragging{opacity:.45}.today-shortcut.drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}#page-today .today-shortcut{min-height:64px;background:var(--panel-2)}
.sidebar .nav-item[draggable="true"]{cursor:grab}.sidebar .nav-item.is-dragging{opacity:.42}.sidebar .nav-item.drag-over{box-shadow:inset 0 2px 0 var(--accent)}.core-entry-drag{align-self:center;color:var(--text-3);font-size:18px;font-style:normal;cursor:grab}.skill-library-card.is-dragging{opacity:.45}.skill-library-card.drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.model-route-section #agentModelRouteList .skill-library-main{display:grid;grid-template-columns:minmax(260px,1.55fr) minmax(210px,.95fr) minmax(190px,.85fr) 128px 72px;align-items:end;gap:18px}.model-route-section .model-route-summary{min-width:0;align-self:center}.model-route-section .model-route-summary small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-route-section .model-route-field{display:grid;grid-template-rows:18px 38px;gap:5px;min-width:0;color:var(--text-2);font-size:12px}.model-route-section .model-route-field>span{white-space:nowrap}.model-route-section .model-route-field select,.model-route-section .model-route-field input{width:100%;height:38px;margin:0;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text-1)}.model-route-section .model-route-multiplier input{text-align:center;font-variant-numeric:tabular-nums}.model-route-section .model-route-enabled{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:38px;margin:0;color:var(--text-2);white-space:nowrap}.model-route-section .model-route-enabled input{width:16px;height:16px;margin:0}@media(max-width:1100px){.model-route-section #agentModelRouteList .skill-library-main{grid-template-columns:minmax(220px,1.2fr) minmax(180px,1fr) minmax(170px,1fr) 112px 64px;gap:12px}}@media(max-width:820px){.model-route-section #agentModelRouteList .skill-library-main{grid-template-columns:1fr 1fr;align-items:end}.model-route-section .model-route-summary{grid-column:1/-1}.model-route-section .model-route-enabled{justify-content:flex-start}.model-route-section .model-route-multiplier{max-width:160px}}
#coreEntryList .skill-library-main{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;justify-content:normal;gap:16px}#coreEntryList .skill-library-main>div{min-width:0}#coreEntryList .skill-library-main>span{justify-content:flex-end}@media(max-width:700px){#coreEntryList .skill-library-main{grid-template-columns:22px minmax(0,1fr)}#coreEntryList .skill-library-main>span{grid-column:2;justify-content:flex-start}}
body.theme-light #page-today .today-workbench{background:radial-gradient(circle at 15% 10%,rgba(245,223,255,.48),transparent 34%),radial-gradient(circle at 88% 4%,rgba(213,244,255,.62),transparent 35%),linear-gradient(145deg,#fff 0%,#fdfbff 54%,#f7fbff 100%)}
body.theme-light #page-today .today-brief-lead{border-color:rgba(113,51,234,.15);background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(246,240,255,.88));box-shadow:0 12px 32px rgba(76,61,118,.09),0 2px 8px rgba(76,61,118,.05)}
body.theme-light #page-today .today-brief-bar .today-kpis article,body.theme-light #page-today .today-priority,body.theme-light #page-today .today-card,body.theme-light #page-today .today-shortcuts{border-color:rgba(81,73,112,.10);background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(63,55,92,.08),0 2px 7px rgba(63,55,92,.05)}
body.theme-light #page-today .today-shortcut{border-color:rgba(81,73,112,.09);background:linear-gradient(145deg,#fff,#fbf9ff);box-shadow:0 5px 14px rgba(63,55,92,.05)}
#page-today .today-brief-lead{box-sizing:border-box;height:160px;min-height:160px;padding:24px 26px;overflow:hidden}
#page-today .today-brief-lead>b{display:-webkit-box;margin-top:12px;overflow:hidden;font-size:14px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:3}
@media(min-width:1181px){#page-today .today-overview-stack,#page-today .today-brief-bar .today-kpis{height:160px}#page-today .today-overview-stack{align-content:stretch}#page-today .today-brief-bar .today-kpis article{height:100%;min-height:0;align-content:center}}
@media(max-width:1180px){#page-today .today-brief-bar{grid-template-columns:1fr}#page-today .today-brief-lead{min-height:150px}#page-today .today-morning-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr)}}@media(max-width:900px){#page-today .today-workbench{padding:18px}#page-today .today-morning-layout{grid-template-columns:1fr}}@media(max-width:620px){#page-today .today-morning-head h1{font-size:25px}#page-today .today-brief-bar .today-kpis{grid-template-columns:1fr 1fr}#page-today .today-brief-bar .today-kpis article{min-height:88px}#page-today .today-update-grid{grid-template-columns:1fr}}
#page-today #todayBrief,#page-today .today-brief-details{display:none!important}
#page-today .today-business-card>.today-section-head{min-height:34px;margin:0 0 12px;justify-content:space-between}
.today-sales-list{display:grid;gap:7px;margin-top:10px}.today-sales-list>button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);color:var(--text);text-align:left;cursor:pointer}.today-sales-list>button:hover{border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft)}.today-sales-list>button>span{display:grid;gap:3px;min-width:0}.today-sales-list>button>span:last-child{text-align:right}.today-sales-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-sales-list small,.today-sales-notice{color:var(--text-3);font-size:11px}.today-sales-notice{margin:10px 0 0;line-height:1.6}
#page-today .today-business-actions{gap:10px}
#page-today .today-business-actions .btn-ghost{min-height:34px;padding:0 14px}
/* 聚水潭按需实时库存查询与可选只读资源同步 */
.jst-live-query{display:grid;grid-template-columns:minmax(220px,360px) auto;align-items:end;gap:10px 12px;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.jst-live-query label{display:grid;gap:6px}.jst-live-query label span,.jst-live-query>small,.jst-resource-sync-state{font-size:12px;color:var(--text-3)}.jst-live-query input{min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text)}.jst-live-query>small{grid-column:1/-1}.jst-live-query #jstLiveInventoryResults{grid-column:1/-1}.jst-live-result-head{font-size:13px;font-weight:700;margin:4px 0 10px}.jst-live-query #jstLiveInventoryResults article{display:grid;grid-template-columns:minmax(140px,1fr) repeat(3,auto);gap:12px;align-items:center;padding:10px;border-top:1px solid var(--line);font-size:12px}.jst-live-query #jstLiveInventoryResults article small{color:var(--text-3)}.jst-resource-sync-state{display:block;min-height:20px;margin:7px 0}.jst-resource-sync[hidden]{display:none}@media(max-width:650px){.jst-live-query{grid-template-columns:1fr}.jst-live-query>small,.jst-live-query #jstLiveInventoryResults{grid-column:1}.jst-live-query #jstLiveInventoryResults article{grid-template-columns:1fr 1fr}}

/* 今日工作台数字卡明细弹窗 */
#page-today .today-brief-bar .today-kpis article[data-today-kpi]{cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}#page-today .today-brief-bar .today-kpis article[data-today-kpi]:hover,#page-today .today-brief-bar .today-kpis article[data-today-kpi]:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--panel));outline:0;transform:translateY(-1px)}.today-kpi-detail-panel{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(760px,calc(100vw - 32px))!important;height:min(620px,calc(100vh - 48px));min-height:420px}.today-kpi-detail-panel>.vault-body{min-height:0;overflow-y:auto}.today-kpi-detail-list{display:grid;align-content:start;gap:10px;min-height:100%}.today-kpi-detail-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.today-kpi-detail-item>div{min-width:0}.today-kpi-detail-item small,.today-kpi-detail-item b,.today-kpi-detail-item p{display:block}.today-kpi-detail-item small{margin-bottom:4px;color:var(--accent);font-size:10px;font-weight:700}.today-kpi-detail-item b{font-size:14px}.today-kpi-detail-item p{margin:5px 0 0;color:var(--text-3);font-size:11px;line-height:1.6}.today-kpi-detail-item button{padding:8px 12px;border:1px solid var(--line-hi);border-radius:9px;color:var(--accent);white-space:nowrap}@media(max-width:620px){.today-kpi-detail-panel{height:calc(100vh - 16px);min-height:0}.today-kpi-detail-item{grid-template-columns:1fr}.today-kpi-detail-item button{justify-self:start}}

/* AI 智能体侧栏：选择员工与分析范围各占一行，避免两个下拉箭头相互挤压。 */
#page-agent .agent-chat-create{flex-wrap:wrap}
#page-agent .agent-chat-create>.cselect,#page-agent .agent-chat-create>select{flex:0 0 100%;width:100%}
.agent-group-create{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:42px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);color:var(--text-2);font-size:12px}.agent-group-create:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.agent-group-create .ico{width:16px}.agent-group-list{display:grid;gap:4px;margin:-2px 0 10px}.agent-group-row{display:flex;align-items:center;min-width:0;border-radius:9px;color:var(--text-3)}.agent-group-row.active{background:var(--accent-soft);color:var(--text)}.agent-group-row>button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;flex:1;padding:8px 10px;text-align:left}.agent-group-row>button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-group-row>button em{font-size:10px;font-style:normal;color:var(--text-3)}.agent-group-actions{display:none;align-items:center;padding-right:5px}.agent-group-row:hover .agent-group-actions{display:flex}.agent-group-actions button{width:25px;height:25px;border-radius:6px;color:var(--text-3)}.agent-group-actions button:hover{background:var(--panel);color:var(--text)}
#agentGroupForm>.vault-body,#agentMoveGroupForm>.vault-body{display:grid;gap:22px}#agentGroupForm>.vault-body>label,#agentMoveGroupForm>.vault-body>label{display:grid;gap:10px}#agentGroupForm>.vault-body>label>span,#agentMoveGroupForm>.vault-body>label>span{display:block;color:var(--text-2);font-size:12px}#agentGroupName,#agentMoveGroupSelect{box-sizing:border-box;width:100%;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text);font-size:13px;outline:0}#agentGroupName:focus,#agentMoveGroupSelect:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.agent-side-section-title{margin:24px 4px 8px;color:var(--text-3);font-size:11px}.agent-chat-search{margin:8px 0 0}.agent-group-create{justify-content:flex-start;height:38px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--text-2)}.agent-group-create:hover{border:0;background:var(--panel);color:var(--text)}.agent-group-list{gap:3px;margin:0}.agent-group-row>button{padding:9px 10px}.agent-recent-title{width:100%;margin:22px 4px 8px;padding:0;color:var(--text-3);font-size:11px;text-align:left}.agent-recent-title.active{color:var(--text-2)}.agent-recent-title:hover{color:var(--text)}
#page-agent .agent-data-scope-mount{flex:0 0 100%;width:100%;margin:2px 0 0}

/* 运营日历最终布局覆盖：桌面端左侧控制、右侧大日历。 */
.task-calendar-main{position:relative;display:block!important}.task-calendar-period{height:42px}.task-calendar-panel .calendar-surface{position:absolute;inset:42px 0 auto;height:calc(100% - 42px)!important;min-height:0;align-self:auto}
.task-calendar-panel>.calendar-page{box-sizing:border-box;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.task-calendar-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:12px;min-height:0;height:auto}.task-calendar-panel .calendar-controls{display:flex;min-width:0;min-height:0;flex-direction:column;align-items:stretch;align-content:stretch;gap:12px;padding:12px}.task-calendar-panel .calendar-controls .seg{display:grid;width:100%;height:34px;grid-template-columns:repeat(3,1fr)}.task-calendar-panel .calendar-controls .seg button{width:100%;min-width:0}.task-calendar-panel .calendar-controls .calendar-nav{display:grid;width:100%;grid-template-columns:34px minmax(0,1fr) 34px;gap:6px}.task-calendar-panel .calendar-controls .calendar-nav button,.task-calendar-panel .calendar-controls .calendar-nav button:first-child,.task-calendar-panel .calendar-controls .calendar-nav button:last-child{width:100%;min-width:0}.task-calendar-panel .calendar-controls #calendarToday{width:100%;min-width:0}.task-calendar-panel .calendar-controls .calendar-filters{display:grid;width:100%;grid-template-columns:1fr;gap:8px;margin:0}.task-calendar-panel .calendar-controls .calendar-filters select,.task-calendar-panel .calendar-controls .calendar-filters input{width:100%;height:34px;min-height:34px;font-size:11px}.task-calendar-main{display:grid;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0}.task-calendar-period{display:flex;align-items:center;padding:0 4px}.task-calendar-period strong{font-size:24px;line-height:1;font-weight:750}.task-calendar-panel .calendar-surface{height:100%;min-height:0}.task-calendar-panel .ops-calendar-month{height:calc(100% - 34px);grid-template-rows:repeat(6,minmax(0,1fr))}.task-calendar-panel .ops-calendar-day{min-height:0}@media(max-width:900px){.task-calendar-panel>.calendar-page{overflow:auto}.task-calendar-layout{grid-template-columns:1fr}.task-calendar-panel .calendar-controls{display:grid;grid-template-columns:auto auto minmax(260px,1fr);gap:8px}.task-calendar-panel .calendar-controls .seg{width:150px}.task-calendar-panel .calendar-controls .calendar-nav{width:140px}.task-calendar-panel .calendar-controls .calendar-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.task-calendar-main{min-height:620px}}@media(max-width:760px){.task-calendar-panel .calendar-controls{grid-template-columns:1fr}.task-calendar-panel .calendar-controls .seg,.task-calendar-panel .calendar-controls .calendar-nav{width:100%}.task-calendar-panel .calendar-controls .calendar-filters{grid-template-columns:1fr 1fr}.task-calendar-panel .calendar-controls .calendar-filters input{grid-column:1/-1}.task-calendar-main{min-height:580px}.task-calendar-period strong{font-size:20px}}
.agent-tool-help{padding:8px 10px;border-bottom:1px solid var(--line);color:var(--text-3);font-size:10px;line-height:1.6}
.task-tree-type-recurring{background:color-mix(in srgb,#33b6a0 16%,var(--panel-2));color:#48cdb5}.task-card-title .task-tree-type,.task-line-title .task-tree-type{display:inline-block;margin-left:7px;vertical-align:1px;font-weight:500}
.task-hierarchy-main>span{flex:1 1 auto;overflow:hidden}.task-hierarchy-main>span>em{flex:0 0 auto}.task-hierarchy-main>span>b{min-width:0;flex:1 1 auto}.task-hierarchy-main>small{max-width:48%;overflow:hidden;text-overflow:ellipsis}.task-hierarchy-open{overflow:hidden}
.msg-modal .msg-item{padding:13px 16px 15px}.msg-modal .msg-actions{margin:13px 0 2px}.msg-modal .msg-actions .btn-primary{min-height:34px;padding:7px 14px}

/* 运营日历桌面布局填满弹窗可用高度，避免月历下方出现无意义留白。 */
@media(min-width:901px){.task-calendar-layout{height:100%}.task-calendar-main{height:100%}}
.feedback-card header em.ignored{color:var(--text-3);background:rgba(148,163,184,.12)}
.points-modal .points-body,.points-modal .points-pane{min-width:0;max-width:100%;overflow-x:hidden}
.points-modal .points-pane{width:100%;box-sizing:border-box;overflow-y:auto}
.points-modal .points-admin-entry,.points-modal .points-admin-entry>.vault-actions{min-width:0;max-width:100%;box-sizing:border-box}
.digest-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.018)}
.digest-option-grid label{display:flex;align-items:center;gap:9px;color:var(--text);font-size:14px}.digest-option-grid input{width:16px;height:16px;accent-color:var(--accent)}
@media(max-width:900px){.digest-option-grid{grid-template-columns:1fr 1fr}}
