/* 工作台 */
body.app{background:var(--bg);min-height:100vh}
.boot{color:var(--muted);padding:40px;text-align:center}
.linkbtn{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;font-size:13px;padding:0;text-decoration:underline}
.linkbtn.danger{color:var(--bad)}
.muted{color:var(--muted);font-size:13px}
.empty{color:var(--muted);font-size:14px;padding:18px 0}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-size:14px;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.mock-bar{background:var(--watch-soft);color:var(--ink);border-radius:8px;padding:10px 14px;font-size:14px;margin-bottom:16px}

/* 登录 */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.auth-card{width:100%;max-width:400px}
.auth-card h3{font-size:19px}
.auth-logo{display:flex;gap:12px;align-items:center;margin-bottom:6px}
.auth-logo b{display:block;font-size:18px}
.auth-logo span{font-size:13px;color:var(--muted)}

/* 框架 */
.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.app-side{position:sticky;top:0;height:100vh;overflow:auto;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:14px;padding:18px 14px}
.side-logo{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink)}
.side-logo b{display:block;font-size:15px;line-height:1.3}
.side-logo span{display:block;font-size:12px;line-height:1.3;margin-top:2px;color:var(--muted)}
.side-new{width:100%}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-grp{font-size:11px;color:var(--muted);margin:10px 8px 2px;letter-spacing:.08em}
.side-nav a{padding:8px 10px;border-radius:7px;color:var(--ink-2);text-decoration:none;font-size:14px}
.side-nav a:hover{background:var(--surface-2)}
.side-nav a.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;font-size:13px;border-top:1px solid var(--line);padding-top:12px}
.side-foot a{color:var(--ink-2);text-decoration:none}
.side-foot .linkbtn{text-align:left;color:var(--ink-2);text-decoration:none}
.side-user b{display:block}
.side-user span{font-size:12px;color:var(--muted)}
.app-main{padding:26px 30px 60px;min-width:0}
@media (max-width:900px){
  .app-shell{grid-template-columns:minmax(0,1fr)}
  .app-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;border-right:0;border-bottom:1px solid var(--line)}
  .side-new{width:auto}
  .side-nav{flex-direction:row;overflow-x:auto;width:100%;gap:4px}
  .side-grp{display:none}
  .side-nav a{white-space:nowrap}
  .side-foot{margin:0;flex-direction:row;border:0;padding:0;gap:12px;width:100%;flex-wrap:wrap}
  .app-main{padding:18px 16px 50px}
}
.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.page-h h1{font-family:var(--f-display);font-weight:900;font-size:clamp(24px,3vw,32px);margin:4px 0 6px}
.page-h p{color:var(--ink-2);font-size:14px;max-width:52em}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:16px}
.card-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.card-h h3{font-size:17px}
.tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}
.tiles.sm{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
@media (max-width:900px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column}
.tile b{font-family:var(--f-mono);font-size:24px;font-weight:600;line-height:1.2}
.tile span{font-size:12px;color:var(--muted)}

/* 概览 · 方法 */
.flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:18px}
.flow > div{padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.flow > div + div{border-left:1px solid var(--line)}
.flow .mono{font-size:11px;color:var(--accent)}
.flow p{font-size:12px;color:var(--ink-2)}
@media (max-width:900px){.flow{grid-template-columns:repeat(2,minmax(0,1fr))}.flow > div + div{border-left:0}.flow > div{border-top:1px solid var(--line)}}
.layer-t{display:flex;gap:12px;align-items:baseline;margin:10px 0 10px}
.layer-t span{font-size:13px;color:var(--muted)}
.dgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
@media (max-width:1100px){.dgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.dgrid{grid-template-columns:minmax(0,1fr)}}
.dcard{border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.dcard-h{display:flex;gap:8px;align-items:baseline}
.dcard-h .mono{font-size:11px;color:var(--muted)}
.dcard-h b{font-size:17px;font-family:var(--f-display)}
.dcard p{color:var(--ink-2)}
.dcard ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:2px}
.dcard ul.dg{color:var(--ink-2)}
.dcard details summary{cursor:pointer;color:var(--accent);font-size:12px}
.dneed{color:var(--muted);font-size:11.5px;border-top:1px dashed var(--line);padding-top:6px;margin-top:auto}
.olanes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
@media (max-width:1100px){.olanes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.olane{display:flex;flex-direction:column;gap:8px}
.olane-h{font-weight:700;font-size:13px;border-bottom:2px solid var(--ink);padding-bottom:4px}
.ocard{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:2px}
.ocard > div{display:flex;justify-content:space-between;align-items:baseline}
.ocard .o-code{font-size:16px}
.ocard small{font-size:11px;color:var(--muted)}
.ocard p{font-size:12px;color:var(--ink-2)}
.rules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:900px){.rules{grid-template-columns:minmax(0,1fr)}}
.rules > div{border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:13px}
.rules p{color:var(--ink-2);margin-top:4px}

/* 表格 */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input,.toolbar select,.app-t select,.app-t input{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:7px;padding:7px 10px}
.toolbar input{flex:1;min-width:200px;max-width:360px}
table.app-t{min-width:860px}
.app-t td{font-size:13px}
.app-t td small{display:block;color:var(--muted)}
.app-t td a{color:var(--ink)}
.app-t td.big{font-size:16px}
.app-t td.acts{white-space:nowrap}
.app-t td.acts a{color:var(--accent)}
.app-t select{padding:4px 6px;font-size:13px}
.app-t input.note{width:150px;padding:4px 6px;font-size:13px}
.st{font-size:12px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}
.st-done{background:var(--ok-soft);color:var(--ok)}
.st-running,.st-finalizing{background:var(--accent-soft);color:var(--accent)}
.st-failed{background:var(--bad-soft);color:var(--bad)}
.tagx{display:inline!important;font-size:10.5px;color:var(--accent);border:1px solid var(--accent-soft);border-radius:3px;padding:0 4px}
.tabs{display:flex;gap:6px;margin-bottom:12px}
.ans{border-top:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:120px 1fr;gap:12px;font-size:13px}
.ans .q{font-weight:500;margin-bottom:4px}
.ans pre{white-space:pre-wrap;font-family:var(--f-body);margin:0;color:var(--ink-2);max-height:260px;overflow:auto;background:var(--bg);padding:8px 10px;border-radius:6px}
.ans .an{font-family:var(--f-mono);font-size:11px;color:var(--muted);margin-top:4px}
@media (max-width:640px){.ans{grid-template-columns:1fr}}

/* 新建诊断 */
.imp{font-size:13px;color:var(--ink-2);display:flex;gap:8px;align-items:center}
.imp select{font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--ink);width:auto;min-width:120px;max-width:200px}
.new-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
@media (max-width:1100px){.new-grid{grid-template-columns:minmax(0,1fr)}}
.nform fieldset{margin:0 0 14px;min-width:0}
.fs-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.fs-h h3{font-size:16px;margin:0;line-height:1.3}
.fs-h .need{line-height:18px}
.fs-h .fs-use{font-size:12.5px;color:var(--muted);margin-left:auto}
.nform fieldset > .hint{margin:-4px 0 12px}
@media (max-width:640px){.fs-h .fs-use{margin-left:0;flex-basis:100%}}
.need{font-size:11px;font-weight:600;padding:1px 7px;border-radius:4px}
.need-req{background:var(--bad-soft);color:var(--bad)}
.need-deep{background:var(--watch-soft);color:var(--watch)}
.need-opt{background:var(--surface-2);color:var(--ink-2)}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.fgrid .wide{grid-column:1/-1}
/* 设置页表单：标签一行、输入框一行，按钮与输入框底部对齐；说明文字统一放在表单下方 */
.sform{display:grid;gap:14px 16px;align-items:end}
.sform.s3{grid-template-columns:repeat(3,minmax(0,1fr)) 150px}
.sform.s4{grid-template-columns:repeat(4,minmax(0,1fr)) 150px}
.sform .field input,.sform .field select{height:44px;padding-top:0;padding-bottom:0}
.sform .sbtn .btn{height:44px;width:100%;padding-top:0;padding-bottom:0;justify-content:center}
.hint.snote{margin:10px 0 0}
.sub-h{font-size:14px;font-weight:600;margin:20px 0 10px;padding-top:16px;border-top:1px solid var(--line)}
.card .table-wrap + .hint.snote{margin-top:10px}
@media (max-width:1100px){.sform.s4{grid-template-columns:repeat(2,minmax(0,1fr))}.sform.s3{grid-template-columns:repeat(3,minmax(0,1fr))}.sform.s3 .sbtn{grid-column:1/-1}.sform.s4 .sbtn{grid-column:1/-1}.sform .sbtn .btn{width:auto;min-width:150px;justify-self:start}}
@media (max-width:640px){.sform.s3,.sform.s4{grid-template-columns:minmax(0,1fr)}}
/* 列表中的下载 PDF */
.pdf-dl{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border:0;border-radius:5px;padding:3px 8px;margin-right:6px;cursor:pointer;vertical-align:middle}
.pdf-dl:hover{filter:brightness(.96)}
.pdf-dl:disabled{opacity:.6;cursor:progress}
.pdf-host{position:fixed;left:-12000px;top:0;width:900px;pointer-events:none}
@media (max-width:640px){.fgrid{grid-template-columns:minmax(0,1fr)}}
.nsubmit{display:flex;gap:10px;flex-wrap:wrap}
.nside .sticky{position:sticky;top:16px}
.nside h3{font-size:16px}
.rdy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0}
.rdy-i{border:1px dashed var(--line-strong);border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;font-size:12px;color:var(--muted)}
.rdy-i .mono{font-size:10px}
.rdy-i b{font-size:13px}
.rdy-i.on{border:1px solid transparent;background:var(--ok-soft);color:var(--ok)}
#qprev h4{font-size:14px;margin:14px 0 6px}
ol.qs-list.one{columns:1;max-height:360px;overflow:auto;font-size:12.5px;margin:0;padding-left:20px}
ol.qs-list li span{font-size:11px;color:var(--accent);margin-right:6px}

/* 报告页 */
.run-big{max-width:880px}
/* 深度体检进度雷达（与首页快检同款）：报告里的雷达图也叫 .radar，这里限定尺寸，避免被 report.css 撑满 */
.runp .radar{width:230px;height:230px;max-width:none;margin:0}
@media (max-width:560px){.runp .radar{width:220px;height:220px;margin:0 auto}}
.rep-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
details.more{position:relative}
details.more summary{list-style:none}
details.more summary::-webkit-details-marker{display:none}
details.more .menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.12);display:flex;flex-direction:column;min-width:210px;z-index:5;padding:6px}
details.more .menu a{padding:8px 10px;border-radius:6px;color:var(--ink);text-decoration:none;font-size:13px}
details.more .menu a:hover{background:var(--surface-2)}
.share-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--accent-soft);border-radius:8px;padding:8px 12px;margin-bottom:12px;font-size:13px}
.share-bar input{flex:1;min-width:220px;font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink)}
.cmo-panel summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.cmo-panel[open] summary{margin-bottom:10px}
.cmo-adm-btns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.cmo-link{display:flex;flex-direction:column;gap:6px;font-size:13px}
.cmo-link input,.cmo-link textarea{font:inherit;font-size:13px;border:1px solid var(--line-strong);border-radius:6px;padding:7px 9px;background:var(--bg);color:var(--ink);width:100%}

/* 分享页 */
.share-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5;flex-wrap:wrap}
.share-top .logo{display:flex;gap:8px;align-items:center;color:var(--ink);text-decoration:none;font-weight:700}
.share-main{max-width:1180px;margin:0 auto;padding:20px 16px 60px}
.nform .checks label{white-space:nowrap}

.soc-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.retry-panel{border-color:var(--watch);background:var(--watch-soft)}
.retry-panel summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.retry-panel[open] summary{margin-bottom:10px}
.retry-panel .hint{margin:0 0 8px}
.retry-list{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px}
.retry-list label{display:grid;grid-template-columns:auto auto auto 1fr;gap:10px;align-items:baseline;font-size:14px;cursor:pointer}
.retry-list .mono{font-size:12px;color:var(--muted)}
.retry-list small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
@media (max-width:640px){.retry-list label{grid-template-columns:auto auto 1fr}.retry-list small{grid-column:2 / -1;white-space:normal}}
.soc-row input[type=file]{font-size:13px}
#socialPanel summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
#socialPanel[open] summary{margin-bottom:6px}

/* v0.6 新建诊断：社交数据、问题库编辑、检测设置间距 */
.nform .setfields{display:flex;flex-direction:column;gap:20px}
.nform fieldset > .hint.est{margin:20px 0 0;padding-top:12px;border-top:1px dashed var(--line)}
.soc-new{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.soc-new .hint{margin:0}
.qb-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.qb-lim{font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.qb-lim input{width:56px;font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg);color:var(--ink)}
.qb-note{color:var(--watch)!important}
.qb-cnt{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px;font-size:12.5px;color:var(--ink-2)}
.qb-cnt span{background:var(--surface-2);border-radius:6px;padding:3px 8px}
.qb-cnt b{color:var(--accent)}
.qb-ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:560px;overflow-y:auto;padding-right:4px}
.qb-ol li{display:grid;grid-template-columns:28px 92px minmax(0,1fr) 30px;gap:8px;align-items:center}
.qb-n{font-size:12px;color:var(--muted);text-align:right}
.qb-t,.qb-q,.qb-add select,.qb-add input{font:inherit;font-size:13.5px;height:36px;padding:0 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg);color:var(--ink);min-width:0}
.qb-q:focus,.qb-t:focus,.qb-add input:focus,.qb-add select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.qb-del{height:30px;width:30px;border:0;border-radius:6px;background:none;color:var(--muted);font-size:18px;cursor:pointer}
.qb-del:hover{background:var(--bad-soft);color:var(--bad)}
.qb-add{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:8px;margin-top:12px;align-items:center}
@media (max-width:640px){.qb-ol li{grid-template-columns:22px 80px minmax(0,1fr) 28px}.qb-add{grid-template-columns:1fr}}
/* 列表类表格：文字上下居中 */
table.lab.app-t td,table.lab.app-t th{vertical-align:middle}
/* 快检详情：嵌入客户视图 */
.qc-d-acts{display:flex;gap:16px;align-items:center;font-size:13px}
.qc-frame{display:block;width:100%;height:600px;border:1px solid var(--line);border-radius:8px;background:var(--surface);margin-top:8px}
.qc-raw{margin-top:14px}
.qc-raw summary{cursor:pointer;color:var(--accent);font-size:13.5px;padding:6px 0}
table.lab.hist-t th,table.lab.hist-t td{white-space:nowrap}
.via{display:block;color:var(--muted);margin-top:2px}

/* 分享页手机端：顶栏不再固定在屏幕上方，把屏幕留给报告内容 */
@media (max-width:640px){
  .share-top{position:static;padding:10px 16px;gap:10px}
  .share-top .cta-btns{display:flex;gap:6px;width:100%}
  .share-top .cta-btns .btn{flex:1;padding-left:6px;padding-right:6px;white-space:nowrap}
  .share-main{padding:14px 12px 48px}
}

/* 企业资料文件：读取后自动填写的项目标绿，提醒核对 */
.doc-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:4px}
.doc-row input[type=file]{flex:1;min-width:220px;font-size:13px}
.doc-msg{margin:10px 0 0;padding:8px 12px;border-radius:8px;background:var(--surface-2);line-height:1.7}
.doc-notes{margin-top:12px}
.doc-notes textarea{font-size:13px;line-height:1.7}
.field.doc-filled input,.field.doc-filled textarea{border-color:var(--accent);background:var(--accent-soft)}
.field.doc-filled > label::after{content:"来自文件";margin-left:6px;font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:1px 6px}
/* 所属行业（报价用）：系统推荐时标绿，提醒确认 */
.ind-field select{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink)}
.ind-field .ind-hint{display:block;margin-top:4px;font-size:12px}
.field.ind-auto select{border-color:var(--accent);background:var(--accent-soft)}
.field.ind-auto > label::after{content:"系统推荐";margin-left:6px;font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:1px 6px}
/* —— 报价页 */
.q-params{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 20px}
.q-param{display:flex;flex-direction:column;gap:4px;min-width:0}
.q-param .lbl{font-size:12px;color:var(--muted)}
.q-param b{font-size:15px}
.q-param select,.q-param input{font:inherit;padding:7px 9px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);width:100%;max-width:280px}
.q-param .hint{font-size:12px;margin:0}
/* 报价 · 12 个优化项目：纳入 | 优化项目 | 服务项目与报告依据 | 数量与内容（任务清单 + 计价）| 金额 */
.q-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.q-row,.q-head{display:grid;grid-template-columns:36px 118px minmax(0,1.5fr) minmax(0,1.5fr) 112px;gap:0 16px;padding:14px 14px;border-top:1px solid var(--line);align-items:start}
.q-head{border-top:0;background:var(--surface-2);font-size:12px;color:var(--muted);padding-block:9px}
.q-head span:last-child,.q-amt{text-align:right}
.q-row.off>*:not(.q-chk){opacity:.45}
.q-chk input{width:16px;height:16px;margin:3px 0 0;accent-color:var(--accent);cursor:pointer}
.q-code{font-family:var(--f-mono);font-weight:600;font-size:15px;letter-spacing:.02em}
.q-on{font-size:12.5px;color:var(--ink-2)}
.q-pri{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;color:var(--muted)}
.q-sv b{display:block;font-size:14px}
.q-sv p{margin:2px 0 8px;font-size:12.5px;color:var(--ink-2)}
.q-evi{display:grid;gap:3px;font-size:12px;color:var(--ink-2)}
.q-evi div{display:flex;flex-wrap:wrap;gap:0 6px}
.q-evi .n{color:var(--bad);font-family:var(--f-mono);font-weight:600;font-variant-numeric:tabular-nums}
.q-evi .t{color:var(--muted)}
.q-sv .q-reason{display:block;margin-top:8px;width:100%;font:inherit;font-size:12.5px;padding:5px 8px;box-sizing:border-box;border:1px solid var(--watch);border-radius:6px;background:var(--watch-soft);color:var(--ink)}
.q-tasks{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.q-tasks li{display:grid;gap:1px;font-size:13px;padding-left:14px;position:relative}
.q-tasks li::before{content:"";position:absolute;left:2px;top:.65em;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.q-tasks .tk{font-weight:500}
.q-tasks .q{font-family:var(--f-mono);font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;margin-left:6px}
.q-tasks .d{font-size:12px;color:var(--muted)}
.q-tasks.seo{counter-reset:w}
.q-tasks.seo li{padding-left:26px}
.q-tasks.seo li::before{content:counter(w);counter-increment:w;width:18px;height:18px;left:0;top:.1em;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-family:var(--f-mono);font-size:11px;font-weight:600;display:grid;place-items:center}
.q-seo-h{font-size:12px;color:var(--accent);font-weight:700;letter-spacing:.04em;margin-bottom:4px}
/* 计价：同一行里的几条计价，名称按最长的那条对齐，数字框上下对齐 */
.q-price{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:6px 8px;margin-top:10px;padding-top:9px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink-2)}
.q-price .pl-h{font-size:12px;color:var(--muted);grid-column:1/-1}
.q-price .pl-l{color:var(--ink);font-weight:500;white-space:nowrap}
.q-price .ctls{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.q-price input,.q-price select{font:inherit;font-size:12.5px;height:28px;box-sizing:border-box;padding:0 6px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);font-variant-numeric:tabular-nums}
.q-price select{padding:0 2px}
.q-price input{width:50px;font-family:var(--f-mono);font-weight:600;color:var(--accent)}
.q-price input.w{width:70px;color:var(--ink);font-weight:400}
.q-price input.a{width:84px;color:var(--ink);font-weight:400}
.q-price .u{white-space:nowrap}
@media (min-width:901px){.q-price .ctls{flex-wrap:nowrap}}
.q-amt b{display:block;font-family:var(--f-mono);font-size:14.5px;font-variant-numeric:tabular-nums}
.q-amt b+b{margin-top:4px}
.q-amt small{display:block;font-size:12px;color:var(--muted)}
.q-amt .q-low{font-weight:700;font-size:13px;margin:0}
.q-old{margin:0;font-size:13px;color:var(--watch);background:var(--watch-soft);border-radius:8px;padding:8px 12px}
/* 三档方案卡（v140）：各卡同一行对齐（名称、说明、项目标签、目标、金额） */
.q-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.q-plan{position:relative;display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:9px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 15px 13px;cursor:pointer;min-width:0}
.q-plan:hover{border-color:var(--line-strong)}
.q-plan:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.q-plan[aria-selected="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent-soft) 30%,var(--surface))}
.q-plan.cus{border-style:dashed}
.q-plan.cus[aria-selected="true"]{border-style:solid}
.q-rec{position:absolute;top:12px;right:12px;font-size:11px;font-weight:700;color:var(--accent-ink,#fff);background:var(--accent);border-radius:5px;padding:1px 7px}
.q-pn{font-family:var(--f-display);font-size:22px;font-weight:600;line-height:1.25}
.q-idea{margin:0;font-size:12.5px;color:var(--ink-2)}
.q-rule{font-size:11.5px;color:var(--muted)}
.q-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;align-self:start}
.q-chips span{font-family:var(--f-mono);font-size:10.5px;font-weight:600;text-align:center;padding:1px 0;border-radius:4px;border:1px solid var(--line);color:var(--muted);opacity:.55}
.q-chips span.in{opacity:1;border-color:transparent;color:var(--accent);background:var(--accent-soft)}
.q-chips span.in.p1{color:var(--bad);background:var(--bad-soft)}.q-chips span.in.p2{color:var(--watch);background:var(--watch-soft)}.q-chips span.in.p3{color:var(--ok);background:var(--ok-soft)}
.q-goals{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:12px;color:var(--ink-2);align-self:start}
.q-goals li{display:flex;flex-wrap:wrap;gap:0 5px}
.q-goals .n{font-family:var(--f-mono);color:var(--bad);font-weight:600}
.q-goals .t{font-family:var(--f-mono);color:var(--ok);font-weight:600}
.q-pt{padding-top:9px;border-top:1px dashed var(--line)}
.q-pt .lbl{font-size:12px;color:var(--muted)}
.q-pt b{display:block;font-family:var(--f-mono);font-size:22px;font-weight:600;line-height:1.25;font-variant-numeric:tabular-nums}
.q-pt small{display:block;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.q-idx{display:grid;place-items:center;width:22px;height:22px;margin-top:1px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--f-mono);font-size:11.5px;font-weight:600}
.q-excl{padding:11px 14px;border-top:1px solid var(--line);background:var(--surface-2);font-size:12.5px;color:var(--muted)}
.q-excl code{font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--ink-2)}
/* 行内效果目标：指标 | 现状 | 目标 三列左对齐；指标可下拉选报告已有的，也可手填 */
.q-kps{display:grid;grid-template-columns:minmax(0,1fr) 74px 96px 16px;gap:4px 6px;align-items:center;font-size:12px;margin-top:4px}
.q-kp-h{display:contents}
.q-kp-h span{font-size:11.5px;color:var(--muted)}
.q-kp-h span:first-child{color:var(--accent);font-weight:700}
.q-kps input,.q-kps select{font:inherit;font-size:12px;height:26px;min-width:0;width:100%;box-sizing:border-box;padding:0 6px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink);text-align:left}
.q-kps select{padding:0 4px}
.q-kps input.kw{font-family:var(--f-mono);color:var(--bad);font-weight:600}
.q-kps input.kt{font-family:var(--f-mono);color:var(--ok);font-weight:600}
.q-kps input:focus-visible,.q-kps select:focus-visible,.q-kps button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.q-kn{display:grid;grid-template-columns:minmax(0,1fr) 22px;gap:2px;min-width:0}
.q-kl{font:inherit;font-size:11px;height:26px;padding:0;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface-2);color:var(--ink-2);cursor:pointer}
.q-kx{font:inherit;width:18px;height:22px;padding:0;border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px;line-height:1}
.q-kx:hover{color:var(--bad)}
.q-kp-f{grid-column:1/-1;display:flex;gap:14px}
.q-kp-f .linkbtn{font-size:12px}
@media (max-width:900px){.q-plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.q-plans{grid-template-columns:1fr}}
@media (max-width:900px){
  .q-head{display:none}
  .q-row{grid-template-columns:28px minmax(0,1fr);gap:10px 12px}
  .q-row .q-sv,.q-row .q-qc,.q-row .q-amt{grid-column:2}
  .q-amt{text-align:left}
}
/* 效果目标编辑 */
.q-tge{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr));gap:14px}
.q-tgs{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--surface)}
.q-tgh{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13.5px}
.q-tgh .muted{font-size:12px}
.q-tgh .linkbtn{margin-left:auto;font-size:12px}
.q-tgr{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) 40px;gap:6px;align-items:center;margin-bottom:6px}
.q-tgr-h span{font-size:12px;color:var(--muted)}
.q-tgr input{font:inherit;font-size:12.5px;height:30px;box-sizing:border-box;padding:0 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);width:100%}
.q-tgr .linkbtn{font-size:12px}
.q-tg-none{font-size:12.5px;margin:0 0 6px}
.q-tgs>.linkbtn{font-size:12.5px;margin-top:2px}
.q-pk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.q-pkc{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--surface)}
.q-pkc.rec{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.q-pkh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.q-pkh span{font-size:12px;color:var(--muted)}
.q-total{font-family:var(--f-mono);font-size:24px;font-weight:600;margin:8px 0 2px}
.q-sub{font-size:12px;color:var(--muted)}
.q-pkc ul{margin:10px 0 0;padding-left:18px;font-size:13px;line-height:1.7}
.q-add{color:var(--watch);font-size:11px}
.q-low{color:var(--bad);font-size:12px;margin:8px 0 0}
.q-log{margin:0;padding-left:18px;font-size:13px;line-height:1.8}
.q-doc-wrap{background:var(--surface-2);border-radius:10px;padding:16px;overflow-x:auto}
/* 对客报价单：固定浅色纸面，屏幕预览与 PDF 一致 */
.q-doc{max-width:726px;margin:0 auto;background:#fff;color:#1d2a2e;padding:34px 20px;border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.08);font-size:13px;line-height:1.7}
.q-doc .q-brand{font-size:12px;letter-spacing:.08em;color:#0f6b66}
.q-doc h2{font-family:var(--f-display);font-size:24px;margin:4px 0 16px;color:#10252a}
.q-doc h3{font-size:15px;margin:24px 0 10px;color:#10252a;border-left:3px solid #0f6b66;padding-left:8px;line-height:1.3}
.q-doc h3 small{font-size:12px;font-weight:400;color:#6b7a7e;margin-left:6px}
.q-doc table{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:fixed}
.q-doc th,.q-doc td{border:1px solid #d7e0e1;padding:8px 10px;text-align:left;vertical-align:middle}
.q-doc thead th{background:#0f4c52;color:#fff;font-weight:600;border-color:#0f4c52}
.q-doc th small{display:block;font-weight:400;opacity:.85;font-size:11px}
.q-doc td small{display:block;color:#5b6b6f;font-size:11.5px;margin-top:2px;line-height:1.5}
.q-doc .c{text-align:center}
.q-doc td.c{color:#0f6b66;font-weight:700;white-space:nowrap}
.q-doc .q-no{color:#b9c4c6;font-weight:400}
.q-doc .q-meta{background:#f3f7f7}
.q-doc .q-meta th,.q-doc .q-meta td{border:0;padding:6px 12px;background:none}
.q-doc .q-meta col.q-mk{width:84px}
.q-doc .q-meta th{color:#5b6b6f;font-weight:400;white-space:nowrap;padding-right:0}
.q-doc .q-meta td{font-weight:600;color:#10252a}
.q-doc .q-meta tr:first-child th,.q-doc .q-meta tr:first-child td{padding-top:12px}
.q-doc .q-meta tr:last-child th,.q-doc .q-meta tr:last-child td{padding-bottom:12px}
.q-doc .q-cmp col.q-cc{width:17%}
.q-doc tr.q-sum td{background:#eef6f5;font-size:13px;font-weight:600;color:#10252a}
.q-doc tr.q-sum td b{font-size:14px;color:#10252a;font-family:var(--f-mono)}
.q-doc tr.q-sum2 td{color:#5b6b6f;font-weight:400}
.q-doc tr.q-sum2 td.c{color:#3b4b4f;font-family:var(--f-mono)}
.q-doc .q-tgt col.q-tg1{width:21%}.q-doc .q-tgt col.q-tg3{width:18%}
.q-doc .q-tgt td.c{font-weight:400;color:#3b4b4f;white-space:normal}
.q-doc .q-tgt td.c b{color:#0f6b66}
.q-doc .q-tgt tr.q-tg-more td:first-child{border-top-style:hidden}
.q-doc .q-tgt tr.q-tg-first td{border-top:1px solid #b9c7c9}
.q-doc .q-notes{padding-left:18px;margin:0;color:#3b4b4f}
.q-doc .q-notes li{margin:2px 0}
.q-doc footer{margin-top:24px;padding-top:10px;border-top:1px solid #d7e0e1;font-size:11.5px;color:#7a888b}
/* 报价汇总：左 合作周期，中 计算过程，右 合同金额 */
.q-total-box{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr) minmax(0,260px);gap:18px 28px;align-items:start;border:1px solid var(--accent);border-radius:10px;padding:16px 18px;background:var(--surface)}
.q-total-box select{font:inherit;padding:7px 9px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);width:100%;max-width:200px}
.q-tb-m{margin:0;display:grid;gap:8px;font-size:13px}
.q-tb-m div{display:flex;gap:10px;justify-content:space-between;border-bottom:1px dashed var(--line);padding-bottom:6px}
.q-tb-m dt{color:var(--muted)}.q-tb-m dd{margin:0;font-family:var(--f-mono);text-align:right}
.q-tb-r{text-align:right}.q-tb-r .lbl{font-size:12px;color:var(--muted)}
.q-tb-r .q-total{margin:4px 0 2px;font-size:28px}
.q-doc td.r{text-align:right;font-family:var(--f-mono)}
.q-doc .q-dsum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;border:1px solid #b9c7c9;border-radius:4px}
.q-doc .q-dsum div{padding:10px 14px;border-left:1px solid #d7e0e1}
.q-doc .q-dsum div:first-child{border-left:0}
.q-doc .q-dsum span{display:block;font-size:11.5px;color:#6b7a7e}
.q-doc .q-dsum b{font-size:15px}
.q-doc .q-dsum .big b{font-family:var(--f-mono);font-size:19px;color:#0f6b66}
.q-doc .q-dc{display:block;font-family:var(--f-mono);font-size:12.5px}
.q-doc .q-dp{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;padding:0 6px;border-radius:4px}
.q-doc .q-dp-p1{color:#b83a2b;background:#f7ddd8}.q-doc .q-dp-p2{color:#9a6300;background:#f6e9cf}.q-doc .q-dp-p3{color:#2e7a4e;background:#ddefe3}
.q-doc .q-dsv b{display:block;font-size:13px;margin-bottom:2px}
.q-doc .q-dsv ul{margin:0;padding-left:15px;color:#3b4b4f;font-size:12px;line-height:1.65}
.q-doc .q-dsv li::marker{color:#0f6b66}
.q-doc .q-dq{font-family:var(--f-mono);font-weight:600;color:#10252a}
.q-doc .q-cmp col.q-c1{width:21%}.q-doc .q-cmp col.q-c3{width:13%}
.q-doc td.q-bl{vertical-align:middle}

.q-doc td.q-bl{font-weight:400;color:#3b4b4f}
@media (max-width:820px){.q-total-box{grid-template-columns:1fr}.q-tb-r{text-align:left}}
@media (max-width:820px){.q-params{grid-template-columns:1fr 1fr}.q-pk{grid-template-columns:1fr}}
@media (max-width:640px){.q-params{grid-template-columns:1fr}.q-doc{padding:22px 18px}.q-doc dl{grid-template-columns:1fr}}
/* 设置 → 报价标准 */
.std-card summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.std-card[open] summary{margin-bottom:10px}
.std-t td{vertical-align:top}
.std-i{font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);margin:2px 0}
.std-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;margin:6px 0}
.std-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px}
.std-2 textarea{width:100%;font:inherit;font-size:12.5px;padding:8px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink)}
.std-acts{display:flex;gap:10px;align-items:center;margin-top:14px}
@media (max-width:640px){.std-2{grid-template-columns:1fr}}
.acts .q-new{margin-left:4px;font-size:11px;color:var(--muted)}
/* 诊断列表：下载按钮合并为一个，点开选 PDF / HTML */
.dl-wrap{display:inline-block;position:relative}
.dl-caret{font-style:normal;font-size:10px;margin-left:1px;opacity:.8}
.dl-menu{position:fixed;z-index:60;display:flex;flex-direction:column;min-width:180px;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:4px}
.dl-menu[hidden]{display:none}
.dl-menu button{font:inherit;font-size:13px;text-align:left;padding:7px 10px;border:0;border-radius:6px;background:none;color:var(--ink);cursor:pointer}
.dl-menu button:hover{background:var(--surface-2)}

/* 对客报价单（v140）：服务、效果目标、金额一张表，不换行；太宽时只让服务内容换行 */
.q-doc table.q-dt{table-layout:auto;font-size:12px}
.q-doc .q-dt th,.q-doc .q-dt td{white-space:nowrap;padding:7px 6px;vertical-align:top}
.q-doc .q-dt.wrap td.q-dsv,.q-doc .q-dt.wrap td.q-dsv li{white-space:normal}
.q-doc .q-dt thead th{vertical-align:middle}
.q-doc .q-dt .q-dsv ul{font-size:11.5px}
.q-doc .q-dt small{font-size:11px}
.q-doc .q-kg{display:grid;grid-template-columns:max-content max-content max-content;gap:3px 8px;font-size:11.5px;color:#3b4b4f;text-align:left}
.q-doc .q-kg .now{font-family:var(--f-mono);color:#6b7a7e}
.q-doc .q-kg .now::after{content:" →";color:#b9c7c9}
.q-doc .q-kg b{font-family:var(--f-mono);color:#0f6b66}
.q-doc td.q-damt b{display:block;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.q-doc td.q-damt small{font-family:var(--f-mono);font-size:10.5px}
.q-doc .q-dt tr.q-sum2 td,.q-doc .q-dt tr.q-sum td{vertical-align:middle}
.q-doc .q-dt th.r{text-align:right}

/* 报价版本（v141）：每次保存一版，可查看、下载 */
.q-pdf-host{position:fixed;left:-30000px;top:0;width:726px;pointer-events:none}
.q-viewing{margin:0 0 10px;font-size:13px;color:var(--watch);background:var(--watch-soft);border-radius:8px;padding:8px 12px}
.q-viewing .linkbtn{margin-left:8px;font-size:13px}
.q-vers td,.q-vers th{white-space:nowrap}
.q-vers .r{text-align:right}
.q-vers tr.on td{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}
.q-vers .acts{display:flex;gap:14px;justify-content:flex-end}
.q-vers .flag{margin-left:4px}
.q-vers{width:100%;border-collapse:collapse;font-size:13px}
.q-vers th{text-align:left;font-size:12px;color:var(--muted);font-weight:500;padding:6px 10px;border-bottom:1px solid var(--line)}
.q-vers td{padding:8px 10px;border-bottom:1px solid var(--line)}
.q-vers th.r{text-align:right}
@media (max-width:640px){#qVers{overflow-x:auto}}

/* 计价（v142）：顾问可添加 / 删除计价，和效果目标一样 */
.q-price input.n{width:100%;min-width:84px;max-width:120px;font-family:var(--f-body);font-weight:500;color:var(--ink)}
.q-price input.uu{width:44px;font-family:var(--f-body);font-weight:400;color:var(--ink)}
.q-price .q-kx{margin-left:2px}
.q-price-f{grid-column:1/-1;display:flex;gap:14px}
.q-price-f .linkbtn{font-size:12px}

/* 报价单排版（v143）：字号用 em，随表格整体缩放；目标用正文字体，中文不拉开；放不下时的兜底换行 */
.q-doc table.q-dt{font-size:12px}
.q-doc .q-dt .q-dsv b{font-size:1.04em}
.q-doc .q-dt .q-dsv ul{font-size:.96em}
.q-doc .q-dt small{font-size:.9em}
.q-doc .q-dt .q-kg{font-size:.96em}
.q-doc .q-dt td.q-damt small{font-size:.86em}
.q-doc .q-kg .now,.q-doc .q-kg b{font-family:var(--f-body);font-variant-numeric:tabular-nums}
.q-doc .q-dt.wrap td.q-dsv{min-width:150px}
.q-doc .q-dt.wrap td.q-dtg{white-space:normal}
.q-doc .q-dt.wrap .q-kg{grid-template-columns:max-content max-content minmax(0,1fr)}

/* 清单编辑（原型） */
.q-qc-h{display:flex;align-items:baseline;justify-content:flex-end;gap:10px;margin-bottom:4px}
.q-qc-h .q-seo-h{margin:0}
.q-qc-l{font-size:12px;color:var(--muted)}
.q-qc-h .linkbtn{font-size:12px}
.q-te{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1.9fr) 26px;gap:5px 6px;align-items:center;font-size:12.5px}
.q-te-h{display:contents}
.q-te-h span{font-size:11.5px;color:var(--muted)}
.q-te input{font:inherit;font-size:12.5px;height:28px;min-width:0;width:100%;box-sizing:border-box;padding:0 7px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink)}
.q-te input.qq{font-family:var(--f-mono);font-weight:600;color:var(--accent)}
.q-te input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.q-te-fix{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q-te-fix.q{font-family:var(--f-mono);font-weight:600;color:var(--accent)}
.q-te-note{font-size:11px;color:var(--muted);text-align:center}
.q-te-f{grid-column:1/-1;display:flex;gap:14px}
.q-te-f .linkbtn{font-size:12px}

/* —— 新建诊断（简化版，v153）：三步流程、核对资料卡片、来源标签 —— */
.nsteps{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px;padding:0;list-style:none}
.nsteps li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);padding:5px 12px 5px 5px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.nsteps li i{font-style:normal;font-family:var(--f-mono);font-size:12px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2)}
.nsteps li.on{color:var(--ink);border-color:var(--accent)}
.nsteps li.on i{background:var(--accent);color:var(--accent-ink)}
.nsteps li.done i{background:var(--accent-soft);color:var(--accent)}
.in3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
@media (max-width:900px){.in3{grid-template-columns:minmax(0,1fr)}}
.upl{border:1px dashed var(--line-strong);border-radius:var(--r);padding:12px 16px;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;background:var(--paper);margin-top:16px}
.upl .btn{cursor:pointer}
.upl .hint{margin:0;flex:1 1 280px}
.upl-files{display:flex;flex-wrap:wrap;gap:6px}
.chipf{font-size:12.5px;background:var(--surface-2);border-radius:6px;padding:3px 8px;color:var(--ink-2)}
.go-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:18px}
.go-row .hint{margin:0}
#autoF .form-err{margin:12px 0 0}
.run{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.run li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;font-size:14.5px}
.run li .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;font-size:12px;color:var(--accent-ink);margin-top:1px}
.run li.doing .dot{border-color:var(--accent);border-top-color:transparent;animation:spin .9s linear infinite}
.run li.ok .dot{background:var(--accent);border-color:var(--accent)}
.run li.warn .dot{background:var(--watch);border-color:var(--watch)}
.run li small{display:block;color:var(--muted);font-size:12.5px;line-height:1.55}
.run li.wait{color:var(--muted)}
@media (prefers-reduced-motion:reduce){.run li.doing .dot{animation:none;border-top-color:var(--accent)}}
.okbox,.warnbox{border-radius:8px;padding:10px 14px;font-size:13.5px;margin-bottom:14px}
.okbox{background:var(--accent-soft);color:var(--accent)}
.warnbox{background:var(--watch-soft);color:var(--watch)}
.field.moved{display:none}
.ck-grp{font-size:13px;font-weight:600;color:var(--ink-2);margin:0 0 4px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ck-grp span{font-weight:400;color:var(--muted);font-size:12.5px}
.ck-grp2{margin-top:14px}
.vrow{display:grid;grid-template-columns:180px minmax(0,1fr);gap:8px 16px;padding:12px 0;border-top:1px solid var(--line)}
.ck-grp + .vrow{border-top:0}
.ck-l b{display:block;font-size:14.5px}
.ck-l small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:2px}
.ck-v{display:grid;gap:8px;min-width:0}
.ck-in{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.ck-in input,.ck-in textarea{flex:1 1 240px;min-width:0;font:inherit;font-size:14.5px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:7px;padding:8px 10px}
.ck-in textarea{resize:vertical;line-height:1.6}
.ck-in input:focus,.ck-in textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.ck-sub{flex-basis:100%;font-size:12.5px;color:var(--ink-2);margin-bottom:-4px}
.ck-why{font-size:12.5px;color:var(--muted)}
.keyfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.keyfacts .ck-in{flex-wrap:wrap}
.keyfacts .ck-in input{flex-basis:120px}
@media (max-width:760px){.vrow{grid-template-columns:minmax(0,1fr)}.keyfacts{grid-template-columns:minmax(0,1fr)}}
.biz{display:flex;gap:8px;flex-wrap:wrap}
.biz label{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line-strong);border-radius:8px;padding:8px 12px;cursor:pointer;background:var(--bg);flex:1 1 220px}
.biz label.on{border-color:var(--accent);background:var(--accent-soft)}
.biz input{accent-color:var(--accent);margin-top:4px}
.biz b{display:block;font-size:14px}
.biz small{display:block;font-size:12px;color:var(--muted);line-height:1.45}
.src-wrap{display:inline-flex;gap:6px;align-items:center;flex:none}
.src{flex:none;display:inline-flex;align-items:center;font-size:11.5px;line-height:1;padding:4px 7px;border-radius:5px;white-space:nowrap;font-weight:500}
.src-site{background:var(--accent-soft);color:var(--accent)}
.src-doc{background:color-mix(in srgb,var(--s-comp) 16%,transparent);color:var(--s-comp)}
.src-web{background:var(--watch-soft);color:var(--watch)}
.src-me{background:var(--ok-soft);color:var(--ok)}
.src-sys,.src-none{background:var(--surface-2);color:var(--ink-2)}
.src-none{color:var(--muted)}
.cfm{font:inherit;font-size:12px;border:1px solid var(--watch);color:var(--watch);background:transparent;border-radius:5px;padding:2px 8px;cursor:pointer;white-space:nowrap}
.cfm:hover{background:var(--watch-soft)}
.field > .src-wrap{align-self:flex-start;margin-top:-2px}
details.more-all{margin-bottom:16px}
details.more-all > summary{cursor:pointer;font-weight:600;font-size:14.5px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 20px}
details.more-all > summary span{font-weight:400;color:var(--muted);font-size:12.5px;margin-left:8px}
details.more-all[open] > summary{margin-bottom:12px}
.srclist{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}
.srclist li{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--ink-2);line-height:1.5}
.nside .sideblk{margin-top:14px;padding-top:4px;border-top:1px solid var(--line)}
#indSlot .field > label{display:none}
/* v154：完整表单 ↔ 简化页面切换按钮；「更多资料」里标题行固定高度，左右两列对齐 */
.ph-acts{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.flab{display:flex;align-items:center;gap:8px;min-height:26px;flex-wrap:wrap}
.flab > label{flex:1 1 auto;min-width:0}
.flab .src-wrap{flex:none}
.more-all .fgrid{align-items:start}
.field.doc-filled .flab > label::after{content:"来自文件";margin-left:6px;font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:1px 6px}
/* v155：「改用完整表单 / 改用简化填写」放在左侧表单上方，右边与下方卡片的外框对齐 */
.mode-bar{display:flex;justify-content:flex-end;margin:0 0 10px}
.nform > .mode-bar{margin-bottom:10px}

/* —— v156：深度体检进度页「十二度扫描」（原型 设计样片-十二度扫描进度/，10-7 Ray 确认） —— */
.scan{
  --sc-line:color-mix(in srgb,var(--accent) 7%,transparent); --sc-line2:color-mix(in srgb,var(--accent) 22%,transparent);
  --sc-text:var(--ink); --sc-muted:var(--muted); --sc-a:var(--s-brand); --sc-b:#4C7BB5; --sc-warn:var(--watch); --sc-off:var(--line-strong);
  background:radial-gradient(90% 80% at 30% 45%, color-mix(in srgb,var(--accent) 5%,var(--surface)) 0%, var(--surface) 70%);
  color:var(--sc-text); border:1px solid var(--line); border-radius:var(--r); padding:22px 26px 26px; position:relative; overflow:hidden; margin-bottom:16px;
}
.scan::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--sc-line) 1px,transparent 1px),linear-gradient(90deg,var(--sc-line) 1px,transparent 1px);background-size:32px 32px;opacity:1;pointer-events:none;mask-image:radial-gradient(80% 80% at 35% 45%,#000 30%,transparent 85%)}
.scan > *{position:relative}
.sc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.sc-eye{font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;color:var(--sc-a)}
.sc-top h2{margin:4px 0 2px;font-size:22px;color:var(--ink);font-family:var(--f-body);font-weight:600}
.sc-sub{font-family:var(--f-mono);font-size:12.5px;color:var(--sc-muted)}
.sc-live{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sc-a);background:var(--accent-soft);border:1px solid var(--sc-line2);border-radius:999px;padding:5px 12px}
.sc-live i{width:8px;height:8px;border-radius:50%;background:var(--sc-a);box-shadow:0 0 0 3px color-mix(in srgb,var(--sc-a) 25%,transparent);animation:blink 1.2s ease-in-out infinite}
.sc-live.done{color:var(--ink-2);background:var(--surface-2)} .sc-live.done i{animation:none;background:var(--ink-2);box-shadow:none}
@keyframes blink{50%{opacity:.25}}

.sc-body{display:grid;grid-template-columns:minmax(0,700px) minmax(0,1fr);gap:26px;align-items:center;margin-top:10px}
@media (max-width:1100px){.sc-body{grid-template-columns:minmax(0,1fr)}}
.radar-xl{width:100%;max-width:700px;margin:0 auto;aspect-ratio:1/1;position:relative}
.radar-xl svg{width:100%;height:100%;display:block;overflow:visible}
.rx-grid circle{fill:none;stroke:var(--sc-line2);stroke-width:1}
.rx-grid circle.dash{stroke-dasharray:2 6}
.rx-spoke{stroke:var(--sc-line2);stroke-width:1}
.rx-spoke.layer{stroke:var(--ink-2);stroke-opacity:.45;stroke-width:1.5}
.rx-wedge{transition:d .5s ease}
.rx-wedge.a{fill:url(#gA)} .rx-wedge.b{fill:url(#gB)}
.rx-wedge.full{filter:url(#glow)}
.rx-cap{fill:none;stroke-width:2.5;stroke-linecap:round}
.rx-cap.a{stroke:var(--sc-a)} .rx-cap.b{stroke:var(--sc-b)}
.rx-lbl{font-family:var(--f-body);font-size:17px;font-weight:600;fill:var(--sc-text);text-anchor:middle}
.rx-lbl.off{fill:var(--sc-off)}
.rx-code{font-family:var(--f-mono);font-size:11.5px;fill:var(--sc-muted);text-anchor:middle;letter-spacing:.05em}
.rx-code.full{fill:var(--accent);font-weight:600}
.rx-layer{font-family:var(--f-mono);font-size:11px;letter-spacing:.3em;text-anchor:middle}
.rx-ring-track{fill:none;stroke:var(--surface-2);stroke-width:5}
.rx-ring{fill:none;stroke:var(--sc-a);stroke-width:5;stroke-linecap:round}
.rx-center{fill:var(--surface);stroke:var(--sc-line2);stroke-width:1.5}
.rx-pct{font-family:var(--f-mono);font-size:44px;font-weight:600;fill:var(--ink);text-anchor:middle}
.rx-time{font-family:var(--f-mono);font-size:12px;fill:var(--sc-muted);text-anchor:middle}
.rx-sweep{transform-origin:350px 350px;transform-box:view-box;animation:sweep 4.2s linear infinite}
.rx-sweep.stop{animation:none;opacity:0;transition:opacity .6s}
@keyframes sweep{to{transform:rotate(360deg)}}
.rx-blip circle.core{fill:var(--sc-a)} .rx-blip.miss circle.core{fill:var(--line-strong)}
.rx-blip.b circle.core{fill:var(--sc-b)}
.rx-blip circle.ping{fill:none;stroke:var(--sc-a);stroke-width:1.2;animation:ping 1.6s ease-out forwards;transform-box:fill-box;transform-origin:center}
.rx-blip.b circle.ping{stroke:var(--sc-b)}
@keyframes ping{from{transform:scale(1);opacity:.9}to{transform:scale(5);opacity:0}}
@media (prefers-reduced-motion:reduce){.rx-sweep{animation:none;opacity:.5}.rx-blip circle.ping{display:none}.sc-live i{animation:none}}

.sc-side{display:grid;gap:18px;min-width:0}
.sc-total{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.sc-total b{font-family:var(--f-mono);font-size:56px;line-height:1;color:var(--ink);font-weight:600}
.sc-total div{font-size:13px;color:var(--sc-muted);line-height:1.6}
.sc-total div span{color:var(--sc-text)}
.sc-bar{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}
.sc-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--sc-a));border-radius:3px;transition:width .4s}
.dimgrp{display:grid;gap:6px}
.dimgrp h4{margin:0 0 2px;font-size:12px;font-family:var(--f-mono);letter-spacing:.12em;font-weight:500;display:flex;gap:8px;align-items:center}
.dimgrp.a h4{color:var(--sc-a)} .dimgrp.b h4{color:var(--sc-b)}
.dimgrp h4 small{color:var(--sc-muted);letter-spacing:0;font-family:var(--f-body)}
.dmx{display:grid;gap:14px}
.dmx-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--sc-line2)}
.dmx-h b{font-size:15px;color:var(--ink);font-weight:600}
.dmx-h span{font-family:var(--f-mono);font-size:13px;color:var(--ink-2)}
.dmx-h span em{font-style:normal;font-size:22px;font-weight:600;color:var(--sc-a)}
.drow{display:grid;grid-template-columns:28px 50px minmax(0,1fr) 64px;gap:8px;align-items:center;font-size:13.5px}
.cells{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px}
.cells i{height:16px;border-radius:3px;background:var(--surface-2);transition:background .35s}
.dimgrp.a .cells i.on{background:var(--sc-a)} .dimgrp.b .cells i.on{background:var(--sc-b)}
.dimgrp.a .cells i.cur{background:color-mix(in srgb,var(--sc-a) 32%,var(--surface-2));animation:breathe 1.1s ease-in-out infinite}
.dimgrp.b .cells i.cur{background:color-mix(in srgb,var(--sc-b) 32%,var(--surface-2));animation:breathe 1.1s ease-in-out infinite}
.cells i.pop{animation:pop .55s ease-out}
.dimgrp.a .drow.full .cells i{box-shadow:0 0 7px color-mix(in srgb,var(--sc-a) 45%,transparent)}
.dimgrp.b .drow.full .cells i{box-shadow:0 0 7px color-mix(in srgb,var(--sc-b) 45%,transparent)}
.drow.full .c{color:var(--sc-a);font-weight:600} .dimgrp.b .drow.full .c{color:var(--sc-b)}
.drow.off .cells i{background:transparent;border:1px dashed var(--line-strong)}
@keyframes breathe{50%{opacity:.45}}
@keyframes pop{0%{transform:scaleY(1.6);filter:brightness(1.35)}100%{transform:scaleY(1);filter:none}}
@media (prefers-reduced-motion:reduce){.cells i.cur,.cells i.pop{animation:none}}
.drow .c{font-family:var(--f-mono);font-size:11.5px;color:var(--sc-muted)}
.drow .n{color:var(--sc-text)}
.drow .bar{height:5px;border-radius:3px;background:var(--surface-2);overflow:hidden}
.drow .bar i{display:block;height:100%;border-radius:3px;transition:width .4s}
.dimgrp.a .bar i{background:var(--sc-a)} .dimgrp.b .bar i{background:var(--sc-b)}
.drow .s{font-family:var(--f-mono);font-size:11.5px;color:var(--sc-muted);text-align:right;white-space:nowrap}
.drow .s.ok{color:var(--sc-a)} .drow .s.warn{color:var(--sc-warn)}
.drow.off .n,.drow.off .c{color:var(--muted);opacity:.6}
.sc-steps{list-style:none;margin:0;padding:12px 0 0;display:grid;gap:7px;border-top:1px solid var(--sc-line2)}
.sc-steps li{display:flex;gap:10px;align-items:baseline;font-size:13px;color:var(--sc-muted)}
.sc-steps li i{font-style:normal;font-family:var(--f-mono);width:16px;color:var(--sc-off)}
.sc-steps li.done{color:var(--sc-text)} .sc-steps li.done i{color:var(--sc-a)}
.sc-steps li.run{color:var(--ink)} .sc-steps li.run i{color:var(--sc-a);animation:blink 1s infinite}
.sc-steps li.skip{text-decoration:line-through;opacity:.6}
.sc-steps small{color:var(--sc-muted);margin-left:6px}
@media (max-width:640px){.scan{padding:16px 14px 18px}.sc-total b{font-size:44px}.drow{grid-template-columns:24px 46px minmax(0,1fr) 60px;gap:6px;font-size:13px}.cells{gap:2px}.cells i{height:14px}.rx-lbl{font-size:20px}.rx-code{font-size:14px}}

.plat-mini h4{margin:0 0 8px;font-size:12px;font-family:var(--f-mono);letter-spacing:.12em;font-weight:500;color:var(--muted)}
.plat-mini h4 small{letter-spacing:0;font-family:var(--f-body)}
.pchips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 6px}
@media (max-width:640px){.pchips{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pchip{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.pchip svg{width:54px;height:54px;display:block}
.pchip .tr{fill:none;stroke:var(--surface-2);stroke-width:5}
.pchip .fg{fill:none;stroke:var(--ink-2);stroke-opacity:.55;stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .4s}
.pchip.full .fg{stroke:var(--sc-a);stroke-opacity:1}
.pchip text{font-family:var(--f-mono);font-size:12px;fill:var(--ink-2);text-anchor:middle}
.pchip b{font-weight:500;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pchip small{font-family:var(--f-mono);font-size:10.5px;color:var(--muted)}
.pchip small em{font-style:normal;color:var(--bad)}
.scan + .card .run-h{margin-top:0}
.sc-total + .sc-bar{margin-top:12px}

/* —— v157：新建诊断「资料表」（原型 设计样片-资料表简化版/，10-7 Ray 确认）：重点核对 + 其余资料按分组折叠 —— */
.key-card .fs-h{margin-bottom:6px}
.kgrid{display:grid;gap:0}
.krow{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 16px;padding:11px 0;border-top:1px solid var(--line);align-items:start}
.krow:first-child{border-top:0}
.krow > b{font-size:14px;padding-top:7px}
.krow > b small{display:block;font-weight:400;font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}
.krow em,.kmini em{color:var(--bad);font-style:normal}
.kin{display:flex;gap:8px;align-items:center;min-width:0}
.kin input,.kin textarea,.kin select{flex:1 1 auto;width:100%;min-width:0;font:inherit;font-size:14.5px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:7px;padding:8px 10px}
.kin textarea{resize:vertical;line-height:1.6}
.kin input:focus,.kin textarea:focus,.kin select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.kin.doc-filled input,.kin.doc-filled textarea{border-color:var(--accent);background:var(--accent-soft)}
.kstack{display:grid;gap:8px;min-width:0}
.kpair{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;min-width:0}
.flab2{display:flex;align-items:center;gap:6px;min-height:24px;margin-bottom:3px;flex-wrap:wrap}
.flab2 label,.flab2 .klab{flex:1 1 auto;font-size:12.5px;font-weight:400;color:var(--ink-2)}
.kmini .flab2 .klab{font-size:13px;font-weight:600;color:var(--ink)}
.kmini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;padding:12px 0 2px;border-top:1px dashed var(--line-strong);margin-top:4px}
.kmini small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}
.seg2{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;max-width:100%}
.seg2 button{font:inherit;font-size:13.5px;border:0;background:var(--bg);color:var(--ink-2);padding:7px 12px;cursor:pointer}
.seg2 button + button{border-left:1px solid var(--line-strong)}
.seg2 button.on{background:var(--accent);color:var(--accent-ink)}
#indSlot .field{margin:0}
#indSlot .field select{width:100%}
.key-card .src{font-size:11px;padding:3px 6px}
.key-card .cfm{font-size:11px;padding:2px 6px}
details.fgrp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px}
details.fgrp > summary{list-style:none;cursor:pointer;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:13px 20px}
details.fgrp > summary::-webkit-details-marker{display:none}
details.fgrp > summary::before{content:"";width:7px;height:7px;border-right:1.6px solid var(--ink-2);border-bottom:1.6px solid var(--ink-2);transform:rotate(-45deg);transition:transform .2s;margin-right:2px}
details.fgrp[open] > summary::before{transform:rotate(45deg)}
details.fgrp > summary h3{margin:0;font-size:15px}
details.fgrp .g-cnt{font-family:var(--f-mono);font-size:12px;color:var(--ink-2);background:var(--surface-2);border-radius:5px;padding:2px 7px}
details.fgrp .g-use{margin-left:auto;font-size:12.5px;color:var(--muted)}
details.fgrp > .gbody{padding:4px 20px 18px;border-top:1px solid var(--line)}
details.fgrp > .gbody > .hint:first-child{margin-top:12px}
details.fgrp .fgrid{margin-top:12px;align-items:start}
details.fgrp .doc-row,details.fgrp .soc-new{margin-top:10px}
@media (max-width:760px){.krow{grid-template-columns:minmax(0,1fr)}.krow > b{padding-top:0}.kpair,.kmini{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){details.fgrp .g-use{margin-left:0;flex-basis:100%}details.fgrp > summary{padding:12px 14px}details.fgrp > .gbody{padding:4px 14px 16px}}

/* v157：进度页雷达放大（约 700px）；扇区里不再画落点，改为显示每个度的 4 项核心指标，进度经过时逐项点亮（原型 设计样片-十二度扫描雷达放大/，10-8 Ray 确认） */
.rx-ind{font-family:var(--f-body);font-size:10.5px;letter-spacing:.02em;fill:var(--sc-muted);opacity:.55;transition:opacity .4s,fill .4s}
.rx-ind.on{opacity:1;font-weight:600}
.rx-ind.a.on{fill:#00695E} .rx-ind.b.on{fill:#2F5C93}
.rx-ind.off{opacity:.3}
.rx-ind-dot{opacity:.35;transition:opacity .4s}
.rx-ind-dot.on{opacity:1}
.rx-ind-dot.a{fill:var(--sc-a)} .rx-ind-dot.b{fill:var(--sc-b)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rx-ind.a.on{fill:#5FD3C2}:root:not([data-theme="light"]) .rx-ind.b.on{fill:#9DBDE8}}
:root[data-theme="dark"] .rx-ind.a.on{fill:#5FD3C2} :root[data-theme="dark"] .rx-ind.b.on{fill:#9DBDE8}

/* v158：客户登录账号（报告页一行）与客户中心 */
.cli-bar{background:var(--surface-2)}
.cli-bar #cliInfo{flex:1 1 auto;min-width:0}
.cli-bar small{color:var(--muted)}
body.client-mode .ok-t{color:var(--ok)} body.client-mode .bad-t{color:var(--bad)}

/* ===== v159 执行工单（后台） ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wo-stats{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--ink-2);margin:-4px 0 14px}
.wo-stats b{font-family:var(--f-mono);color:var(--ink);font-weight:600}
.wo-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.wo-chips button{font:inherit;font-size:12.5px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:3px 10px;cursor:pointer}
.wo-chips button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.wo-chips button span{font-family:var(--f-mono);margin-left:4px;opacity:.8}
.wo-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start;margin-bottom:16px}
.wo-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:start}
.wo-col{background:var(--surface-2);border-radius:var(--r);padding:10px;display:grid;gap:8px;min-width:0}
.wo-col h4{margin:0 2px 2px;font-size:13px;display:flex;justify-content:space-between;color:var(--ink-2)}
.wo-col h4 span{font-family:var(--f-mono)}
.wo-col .empty{padding:6px 2px;font-size:12.5px}
.wo-tk{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 11px;display:grid;gap:6px;min-width:0}
.wo-tk:hover{border-color:var(--line-strong)}
.wo-tk:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wo-tk.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.wo-tk .tt{font-size:13.5px;font-weight:600;line-height:1.45;color:var(--ink)}
.wo-tk .row{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.wo-tk .oc,.wo-dh .oc{font-family:var(--f-mono);font-size:11.5px;font-weight:600;color:var(--accent)}
.wo-tk .due.late{color:var(--bad)}
.wo-tk .prog{height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden}
.wo-tk .prog i{display:block;height:100%;background:var(--accent)}
.wo-detail{position:sticky;top:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:14px;min-width:0}
.wo-dh{display:grid;gap:6px}
.wo-dh input{font:inherit;font-size:16px;font-weight:600;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);width:100%;box-sizing:border-box}
.wo-kv{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px 10px;font-size:13px;margin:0;align-items:center}
.wo-kv dt{color:var(--muted)} .wo-kv dd{margin:0;min-width:0}
.wo-kv input,.wo-kv select,.wo-kv textarea,.wo-form input,.wo-form select,.wo-add input{font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);width:100%;box-sizing:border-box;min-width:0}
.wo-kv textarea{resize:vertical;line-height:1.5}
.wo-qty{display:flex;align-items:center;gap:6px}
.wo-qty input[type=number]{width:84px;flex:none}
.wo-qty input:not([type=number]){width:56px;flex:none}
.wo-btns{display:flex;gap:12px;align-items:center}
.wo-add{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px;font-size:13px}
.wo-add > .muted{font-size:12px;margin-top:-6px}
.wo-r2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.wo-add .field label,.wo-form .field label{font-size:12px;color:var(--muted)}
.wo-lh{font-size:13px}
.wo-log{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px;font-size:12.5px;max-height:220px;overflow:auto}
.wo-log li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px}
.wo-log li .mono{color:var(--muted)}
.wo-fg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.wo-fg .wo-wide{grid-column:span 2}
.wo-form .form-err{margin:0 0 8px}
.wo-rsel{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wo-rsel select{width:auto}
table.lab.app-t.wo-gt td{vertical-align:top}
.wo-gt td:nth-child(-n+3){padding-top:16px}
.wo-gt td:first-child input{margin-top:3px}
.wo-gt td input:not([type=checkbox]),.wo-gt td select{height:38px;box-sizing:border-box;padding-top:0;padding-bottom:0}
.wo-gt td input[data-gt]{min-width:220px}
.wo-gt input[type=date]{min-width:130px}
.wo-gt select{min-width:96px}
.wo-inds{display:block;margin-top:4px;font-size:11.5px}
@media (max-width:1200px){.wo-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1000px){.wo-grid{grid-template-columns:minmax(0,1fr)}.wo-detail{position:static}}
@media (max-width:640px){.wo-board{grid-template-columns:minmax(0,1fr)}.wo-fg{grid-template-columns:minmax(0,1fr)}.wo-fg .wo-wide{grid-column:auto}}

/* ===== v161 权限：分配客户、线索分配；排版小修 ===== */
.toolbar select{align-self:stretch;min-height:38px}
.app-t td.nowrap{white-space:nowrap}
.ba-box{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-top:12px;background:var(--surface-2);display:grid;gap:10px}
.ba-box .hint{margin:0}
.ba-list{display:flex;flex-wrap:wrap;gap:8px}
.ba-list label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}
.ba-list label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.ba-list label.own{opacity:.75;cursor:default}
.ba-list small{font-size:11px;color:var(--muted)}
.ba-acts{display:flex;align-items:center;gap:12px}
.app-t select.as{min-width:96px}
