/* 知视工作台 · 2026-10 整体改版层。最后加载：统一字号/间距/字重，浅色侧栏，首页与任务页重排。
   仅桌面端（≥960px）。字号阶梯 12/14/16/20/28；间距阶梯 4/8/12/16/24/32。 */
:root{
  --fs-12:12px;--fs-14:14px;--fs-16:16px;--fs-20:20px;--fs-28:28px;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;
  --content-w:760px;--sidebar-width:236px;--control-h:36px;
  --brand-ink:#171717;
}
body{min-width:960px;font-size:var(--fs-14);line-height:1.6}

/* ---------- 字重：恢复层级（旧样式把所有标题压成 400） ---------- */
h1,h2,h3,h4{font-weight:600!important}
strong,b,.eyebrow{font-weight:600!important}
button,.primary,summary{font-weight:500!important}
.sidebar .brand,.brand-label{font-weight:600!important}
.task-item.active strong,.task-info strong{font-weight:500!important}
small,.muted,.fine{font-weight:400!important}

/* ---------- 按钮与控件统一 ---------- */
.primary,button.primary{background:var(--brand);color:var(--brand-ink);border:1px solid transparent;border-radius:var(--radius-md)}
.primary:hover:not(:disabled){filter:brightness(.96)}
button.quiet,.quiet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink)}
button.quiet:hover:not(:disabled){background:var(--surface-3)}
select,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),textarea{border-radius:var(--radius-md)}
.badge{font-size:var(--fs-12);padding:2px 10px;border-radius:999px;font-weight:500}

/* ---------- 侧栏：浅色底，黄色只做强调 ---------- */
html:not([data-theme=dark]) .workspace>.sidebar{background:var(--surface-2);border-right:1px solid var(--line);color:var(--ink)}
.workspace>.sidebar{width:var(--sidebar-width);padding:var(--sp-4) var(--sp-3) var(--sp-3);gap:0}
.sidebar .brand{margin:0 var(--sp-1) var(--sp-4)}
.sidebar .brand-mark{width:52px;height:38px;flex-basis:52px;border-radius:var(--radius-md);overflow:hidden;background:var(--brand)}
.sidebar .brand-label{font-size:var(--fs-20);line-height:1.2}
.sidebar .brand-label small{font-size:var(--fs-12);color:var(--text-quiet)}
.sidebar .new-task{height:40px;width:100%;margin:0 0 var(--sp-3);display:flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--brand);color:var(--brand-ink);border:0;border-radius:var(--radius-md);font-size:var(--fs-14);box-shadow:var(--shadow-1)}
.sidebar .new-task:hover{filter:brightness(.96)}
.sidebar .new-task kbd{margin-left:auto;font-size:var(--fs-12);opacity:.6;background:transparent;border:0}
.sidebar .search{display:flex;align-items:center;gap:var(--sp-2);height:var(--control-h);margin:0 0 var(--sp-3);padding:0 var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--text-quiet)}
.sidebar .search:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(247,201,22,.3)}
.sidebar .search input{flex:1;min-width:0;height:100%;border:0;background:transparent;padding:0;outline:0;font-size:var(--fs-14);color:var(--ink)}
.sidebar .search input::placeholder{color:var(--text-quiet)}
.sidebar .sidebar-home{display:flex;align-items:center;width:100%;height:var(--control-h);padding:0 var(--sp-3);margin:0 0 var(--sp-2);text-align:left;background:transparent;border:0;border-radius:var(--radius-md);font-size:var(--fs-14);color:var(--ink)}
.sidebar .sidebar-home:hover{background:var(--surface-3)}
.sidebar .sidebar-home.selected{background:var(--soft);font-weight:600!important}
.sidebar .tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:0 0 var(--sp-4);padding:3px;background:var(--surface-3);border-radius:var(--radius-md);border:0}
.sidebar .tabs button{height:28px;padding:0 var(--sp-1);font-size:var(--fs-12);background:transparent;border:0;border-radius:var(--radius-sm);color:var(--text-quiet);white-space:nowrap;text-align:center;justify-content:center}
.sidebar .tabs button.selected{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);font-weight:600!important}
.sidebar .tab-count{margin-left:2px;color:var(--text-quiet)}
.sidebar .sidebar-section{display:flex;justify-content:space-between;align-items:center;padding:0 var(--sp-3);margin:0 0 var(--sp-2);font-size:var(--fs-12);color:var(--text-quiet);letter-spacing:.02em}
.sidebar .task-item{border-radius:var(--radius-md)}
.sidebar .task-item:hover{background:var(--surface-3)}
.sidebar .task-item.active{background:var(--soft);box-shadow:inset 3px 0 0 var(--brand)}
.sidebar .task-info small{font-size:var(--fs-12);color:var(--text-quiet)}
.sidebar-bottom{border-top:1px solid var(--line);padding-top:var(--sp-3);margin-top:var(--sp-3)}
.sidebar .connection,.sidebar .profile{border-radius:var(--radius-md)}

/* ---------- 顶栏 ---------- */
.topbar{padding:0 var(--sp-5)}
.breadcrumb{font-size:var(--fs-16);font-weight:600}
.palette-trigger{border-radius:var(--radius-md)}

/* ---------- 首页：开始 → 继续 → 处理 → 专用工作区 ---------- */
.welcome{padding:var(--sp-5) var(--sp-6) var(--sp-6);max-width:1080px;margin:0 auto;width:100%}
.welcome-heading{margin:0 0 var(--sp-4)}
.welcome-heading .eyebrow{display:none}
.welcome-heading h1{font-size:var(--fs-28);line-height:1.3;margin:0 0 var(--sp-1)}
.welcome-heading p{margin:0;font-size:var(--fs-14);color:var(--text-quiet)}
.hero-start{display:flex;align-items:center;gap:var(--sp-4);min-height:76px;padding:var(--sp-4) var(--sp-5);margin:0 0 var(--sp-5);background:var(--soft);border:1px solid var(--line);border-radius:var(--radius-lg)}
.hero-start .orbit-mark{display:grid!important;width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;background:var(--brand);color:var(--brand-ink);border-radius:50%;font-size:var(--fs-20)}
.hero-start>div:nth-child(2){display:block;flex:1;min-width:0}
.hero-start h2{margin:0;font-size:var(--fs-16)}
.hero-start p{margin:2px 0 0;color:var(--text-quiet);font-size:var(--fs-14)}
.hero-start .primary{flex:0 0 auto;height:40px;min-width:0;margin:0 0 0 auto;padding:0 var(--sp-5);font-size:var(--fs-14)}
.home-overview{display:flex;flex-direction:column;gap:var(--sp-3);margin:0 0 var(--sp-5)}
.home-overview:empty{display:none}
.home-overview .channel-strip{order:2;font-size:var(--fs-12)}
.overview-grid{order:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:var(--sp-4)}
.overview-card{border-radius:var(--radius-lg);padding:var(--sp-4)}
.overview-head h3{font-size:var(--fs-14)}
.overview-row small{font-size:var(--fs-12)}
.section-heading{display:flex;align-items:baseline;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-3)}
.section-heading h2{font-size:var(--fs-16);margin:0}
.section-heading span{font-size:var(--fs-12);color:var(--text-quiet)}
.recent-work{margin:0 0 var(--sp-5)}
.recent-work .section-heading{margin-top:0}
.recent-row{min-height:48px;border-radius:var(--radius-md)}
.kind-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}
.kind-card{min-height:96px;padding:var(--sp-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);text-align:left}
.kind-card:hover{border-color:var(--ink);box-shadow:var(--shadow-1)}
.kind-card h3,.kind-card strong{font-size:var(--fs-16)}
.kind-card p,.kind-card small{font-size:var(--fs-12);color:var(--text-quiet);line-height:1.5}
.workspace-note{margin-top:var(--sp-5);font-size:var(--fs-12);color:var(--text-quiet)}

/* ---------- 任务页：头部、统一内容宽度 ---------- */
.reading-conversation .task-header,.video-task .task-header,.task-header{padding:0 var(--sp-5)}
#task-title{font-size:var(--fs-20);line-height:1.3}
.task-overline{gap:var(--sp-2)}
#task-kind{font-size:var(--fs-12);color:var(--text-quiet);background:var(--surface-3);padding:2px 10px;border-radius:999px}
.task-actions{gap:var(--sp-2)}
.task-actions .quiet,.task-actions>button{height:32px;padding:0 var(--sp-3);font-size:var(--fs-14)}
.image-compare-count{background:var(--brand);color:var(--brand-ink);border:1px solid transparent}
.image-compare-count:disabled{background:transparent;color:var(--text-quiet);border:1px solid var(--line);opacity:1}

/* 对话、状态卡片、输入框同宽同左边线（图片/视频工作区是画廊，保持整幅） */
#task-view:is([data-kind=general],[data-kind=document],[data-kind=storyboard]) .conversation{padding:var(--sp-5) max(var(--sp-5),calc((100% - var(--content-w))/2));font-size:var(--fs-16);flex:0 1 auto;min-height:0}
#task-view:is([data-kind=general],[data-kind=document],[data-kind=storyboard]) :is(.composer,.run-feedback,.creative-workflow,.general-example){width:min(var(--content-w),calc(100% - 2*var(--sp-5)));max-width:var(--content-w);margin-left:auto;margin-right:auto;box-sizing:border-box}
#task-view:is([data-kind=general],[data-kind=document],[data-kind=storyboard]) .composer{margin-top:auto;margin-bottom:var(--sp-5)}
#task-view:is([data-kind=general],[data-kind=document],[data-kind=storyboard]) .run-feedback{margin-top:var(--sp-3);margin-bottom:var(--sp-3)}
.composer{border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}
.composer-options{flex-wrap:wrap;gap:var(--sp-2);min-width:0}
.composer-toolbar{gap:var(--sp-3);align-items:center}
.composer-toolbar>button{flex:0 0 auto;white-space:nowrap}
#stop-run,#send{white-space:nowrap;flex:0 0 auto;writing-mode:horizontal-tb}
.composer-note{font-size:var(--fs-12);color:var(--text-quiet)}
.message-content{line-height:1.75}

/* ---------- 右侧文件面板：去重、收紧 ---------- */
.files-panel{width:320px;flex:0 0 320px;padding:var(--sp-4)}
.files-panel .file-description,.files-panel .files-footer{display:none}
.files-panel .section-heading{margin:0 0 var(--sp-3)}
.delivery-tabs{padding:0 0 var(--sp-3)}
.delivery-tab-help{font-size:var(--fs-12);color:var(--text-quiet);margin:0 0 var(--sp-3)}
.file-empty{margin:var(--sp-5) 0;padding:var(--sp-5) var(--sp-3);text-align:center;color:var(--text-quiet);font-size:var(--fs-14);border:1px dashed var(--line);border-radius:var(--radius-md);background:transparent}

/* ---------- 窄桌面（<1180）：侧栏收紧，输入栏不变形 ---------- */
@media(max-width:1179px){
  :root{--sidebar-width:208px;--content-w:680px}
  .welcome{padding:var(--sp-5)}
  .kind-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .files-panel{width:288px;flex-basis:288px}
}

/* 首页细节 */
.overview-grid{align-items:start}
.recent-list,#recent-list{display:flex;flex-direction:column}
#recent-list .recent-row{padding:0 var(--sp-3);font-size:var(--fs-14);border-bottom:1px solid var(--line)}
#recent-list .task-action-row{min-height:48px}

/* 头部标签：类型为中性灰，状态按语义着色 */
.task-overline #task-kind{font-size:var(--fs-12);color:var(--text-quiet);background:var(--surface-3);border:1px solid var(--line);padding:2px 10px;border-radius:999px}
.task-overline .badge{background:var(--surface-3);color:var(--ink);border:1px solid transparent}
.task-overline .badge.running,.task-overline .badge.queued,.task-overline .badge.waiting{background:var(--tint-info);color:#1d4f91}
.task-overline .badge.completed{background:var(--tint-ok);color:var(--ok)}
.task-overline .badge.failed,.task-overline .badge.interrupted{background:var(--tint-bad);color:var(--bad)}
html[data-theme=dark] .task-overline .badge.running,html[data-theme=dark] .task-overline .badge.queued,html[data-theme=dark] .task-overline .badge.waiting{color:#9ec5ff}

/* 图片/视频工作区：状态卡与输入框同边距 */
#task-view:not([data-kind=general]):not([data-kind=document]):not([data-kind=storyboard]) .run-feedback{box-sizing:border-box;width:calc(100% - 68px)!important;max-width:none!important;margin-left:34px!important;margin-right:34px!important}

/* 审计修正 */
:root{--ok:#25663f}
html[data-theme=dark]{--ok:#6fcf97}
html[data-theme=dark] .image-compare-count:disabled{background:transparent!important;color:var(--text-quiet)!important;border:1px solid var(--line)!important}
.delivery-history,.files-panel .delivery-history-link,#files-list>button:not(.selected){min-height:28px}
#files-list>button{min-height:28px}

/* 设置页：跟随侧栏宽度，分组留白 */
#settings-dialog{width:calc(100vw - var(--sidebar-width));margin:0 0 0 var(--sidebar-width)}
#settings-content section,#settings-content .settings-page>*{margin-bottom:var(--sp-5)}
#settings-content h3,#settings-content h2{margin:var(--sp-5) 0 var(--sp-2)}
#settings-content .settings-page>:first-child h2,#settings-content .settings-page>:first-child h3{margin-top:0}

/* 联网搜索开关 */
.web-toggle{height:32px;padding:0 var(--sp-3);font-size:var(--fs-14);border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text-quiet)}
.web-toggle.off,.web-toggle[hidden]{display:none}
.web-toggle.on{background:var(--soft);border-color:#dfc555;color:var(--ink);font-weight:600}
.web-toggle:disabled{opacity:.5}

/* 两级模型菜单：引擎 + 具体型号，下拉不再挤压重叠 */
.composer-options select{box-sizing:border-box;height:32px;min-width:0;width:auto;max-width:210px;padding:0 28px 0 var(--sp-3);text-overflow:ellipsis;white-space:nowrap;background-position:right 10px center}
#run-engine{font-weight:600;max-width:120px}
#run-engine:disabled{opacity:.85;cursor:not-allowed}
#run-effort{max-width:100px}

/* 任务目录：批量选择 */
.batch-toggle[aria-pressed=true]{background:var(--soft);border-color:#dfc555}
.batch-bar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md)}
.batch-bar[hidden]{display:none}
.batch-bar button{height:30px;padding:0 var(--sp-3);font-size:var(--fs-14)}
.task-action-row.selecting .batch-check{flex:0 0 auto;width:18px;height:18px;margin:0 var(--sp-3) 0 var(--sp-2);accent-color:#f7c916}

/* 首页：管理员健康提示、新手起步 */
.home-overview .health-banner{order:0;padding:var(--sp-3) var(--sp-4);border:1px solid #e7b9b3;border-radius:var(--radius-md);background:var(--tint-bad)}
.health-banner strong{display:block;margin-bottom:var(--sp-1)}
.health-banner p{margin:2px 0;font-size:var(--fs-14)}
.health-banner p{padding-left:var(--sp-3);border-left:3px solid var(--line);color:var(--ink)}
.health-banner .health-warn{border-left-color:var(--warn)}
.health-banner .health-bad{border-left-color:var(--bad)}
.home-overview .home-starter{order:0;padding:var(--sp-4);border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.home-starter h3{margin:0 0 var(--sp-3);font-size:var(--fs-14)}
.starter-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.starter-card{height:36px;padding:0 var(--sp-4);border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:var(--fs-14)}
.starter-card:hover{border-color:var(--ink)}
.home-starter .fine{margin:var(--sp-3) 0 0;color:var(--text-quiet)}
.usage-row{margin:var(--sp-1) 0}

/* 本轮成果文件：对话里直接下载 */
.run-files{max-width:760px;margin:-6px auto 25px;display:flex;flex-direction:column;gap:8px}
.run-files-label{font-size:12px;color:var(--text-quiet)}
.run-file{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.run-file .file-title{flex:1;min-width:0}
.run-file .file-title strong{font-size:14px}
.run-file-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.run-file-actions button{font-size:12px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}
.run-file-download{font-size:12px;padding:6px 14px;border-radius:7px;text-decoration:none}

/* 侧栏底部账号区：名字看得清，退出/切换账号一眼可见 */
.sidebar .profile{display:flex;align-items:center;gap:10px;padding:10px 12px}
.sidebar .profile .avatar{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--text);font-size:14px;font-weight:600}
.sidebar .profile .profile-text{flex:1;min-width:0}
.sidebar .profile strong{display:block;font-size:16px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar .profile small{display:block;font-size:12px;color:var(--text-quiet)}
.sidebar .profile .chevron{font-size:16px}
.logout-button{display:block;width:100%;margin-top:6px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:13px;text-align:center}
.logout-button:hover{border-color:var(--bad);color:var(--bad)}
.run-files-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.run-files-sample{font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text-quiet)}
.run-files-sample:hover:not(:disabled){color:var(--text);border-color:var(--text-quiet)}

/* 知豆了：确认卡下方的「开始」「修改」，以及执行步骤里的安排说明 */
.steward-confirm{max-width:820px;margin:-12px auto 25px;display:flex;gap:8px}
.steward-confirm button{font-size:12px;padding:6px 14px}
.run-meta .steward-plan{border-left-color:var(--green);font-family:inherit}

/* 知豆了（Dot）：首页入口的动态小豆子，也是它回复时的头像。浮动、眨眼、光晕呼吸；系统要求减少动态时保持静止 */
.hero-start .zhidou-mark{display:block;width:68px;height:68px;flex:0 0 68px;margin:-6px 0;padding:6px;border-radius:50%;background:var(--surface);box-shadow:0 2px 10px #b4880026}
.zhidou{display:block;width:100%;height:100%;overflow:visible}
.zhidou .zd-glow{opacity:.2;transform-box:fill-box;transform-origin:center;animation:zd-glow 3.4s ease-in-out infinite}
.zhidou .zd-body{transform-box:fill-box;transform-origin:50% 100%;animation:zd-float 3.4s ease-in-out infinite}
.zhidou .zd-eyes{transform-box:fill-box;transform-origin:center;animation:zd-blink 5.2s infinite}
.zhidou .zd-sprout{transform-box:fill-box;transform-origin:50% 100%;animation:zd-sway 3.4s ease-in-out infinite}
.zhidou-hero:hover .zd-body{animation:zd-hop .9s ease-in-out infinite}
@keyframes zd-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes zd-hop{0%,100%{transform:translateY(0) scale(1)}40%{transform:translateY(-5px) scale(1.03,.97)}}
@keyframes zd-blink{0%,90%,100%{transform:scaleY(1)}93%{transform:scaleY(.1)}}
@keyframes zd-sway{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes zd-glow{0%,100%{opacity:.14;transform:scale(.9)}50%{opacity:.32;transform:scale(1.05)}}
.zhidou-tip{display:block;margin:6px 0 0;padding:0;border:0;background:none;color:var(--text-quiet);font-size:var(--fs-12);text-align:left;cursor:pointer;transition:opacity .25s,color .2s}
.zhidou-tip:hover{color:var(--text)}
.zhidou-tip.fade{opacity:0}
.message-heading .zhidou-avatar{background:none;width:24px;height:24px}
.zhidou-avatar .zd-glow{display:none}
.zhidou-avatar .zd-body,.zhidou-avatar .zd-sprout{animation:none}
@media (prefers-reduced-motion:reduce){.zhidou *{animation:none!important}.zhidou-tip{transition:none}}
/* 知豆了：切换到生图专属版面的卡片（要醒目） */
.zhidou-switch{max-width:820px;margin:6px auto 26px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;background:var(--soft);border:1px solid var(--brand);border-radius:12px;box-shadow:0 4px 18px #b4880022}
.zhidou-switch-mark{width:44px;height:44px;flex:0 0 44px;padding:3px;border-radius:50%;background:var(--surface)}
.zhidou-switch-text{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:3px}
.zhidou-switch-text strong{font-size:var(--fs-16);color:var(--text)}
.zhidou-switch-text span{font-size:var(--fs-12);color:var(--text-quiet);line-height:1.6}
.zhidou-switch-actions{display:flex;gap:8px;flex:0 0 auto}
.zhidou-switch-actions button{font-size:13px;padding:8px 16px}
.zhidou-switch .zd-glow{display:none}
