/* 欧瑞京 电机 Agent · UI 系统 v0.2（2026-09-14 定稿）。苹果的皮：浅壳、白面板、系统字体、一个蓝；专业软件的骨：密表、列对齐、追溯常驻、一屏一单。 */
body{font-size:var(--t-sm);line-height:var(--lh-sm)}
/* ---- 外壳 ---- */
.app{grid-template-columns:232px minmax(0,1fr)}
.app.no-side{grid-template-columns:minmax(0,1fr)}
.topbar{background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--sep);color:var(--text-soft)}
.topbar .brand{color:var(--text);font-weight:600;letter-spacing:0;text-transform:none;font-family:inherit}
.topbar .brand i{display:none}
.topbar nav a{color:var(--text-soft);border-radius:6px;padding:5px 10px}
.topbar nav a:hover{background:var(--n3)}
.topbar nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:500}
.topbar .right{color:var(--text-weak);font-size:var(--t-xs)}
.topbar .right b{color:var(--text);font-weight:500}
.topbar .dot{background:var(--n8)}
.topbar .dot.ok{background:var(--state-live)}
.topbar .text-button{color:var(--accent)}
.topbar select{background:var(--card);color:var(--text);border:1px solid var(--sep);border-radius:6px}
.side{background:var(--g1);border-right:1px solid var(--sep);color:var(--text-soft);padding:var(--s4) var(--s3)}
.side .new{margin:0 var(--s2) var(--s4);padding:8px 12px;background:var(--accent);color:#fff;border-radius:var(--r);font-weight:600}
.side .new:hover{background:var(--accent-hover)}
.side details.fold>summary,.side-archived summary{color:var(--text-weak);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;padding:8px 8px 4px}
.side .item{border-left:0;border-radius:7px;padding:7px 36px 7px 8px;margin:0 var(--s2);font-size:12.5px;line-height:1.35;color:var(--text-soft)}
.side .item:hover{background:rgba(0,0,0,.04)}
.side .item[aria-current=page]{background:var(--card);color:var(--text);box-shadow:0 0 0 1px var(--sep2)}
.side .item small{color:var(--text-weak)}
.side .item .st{color:var(--text-weak);font-weight:500;top:7px;right:8px}
.side .item .st.hot{color:var(--state-attention)}
.side-search input,.side .new-folder,.side-batch,.side-batch select,.side-batch button,.side .menu,.side .menu select,.side .menu button{background:var(--card);color:var(--text);border-color:var(--sep)}
.side-search{margin:0 var(--s2) var(--s3)}
.side-search input{border:0;background:rgba(0,0,0,.05);border-radius:7px;padding:6px 10px}
.side-tools{margin:0 var(--s2) var(--s3)}
.side .menu{box-shadow:var(--shadow);border-radius:var(--r)}
.side-archived{border-top:1px solid var(--sep)}
.side-batch{background:var(--g1);border-top:1px solid var(--sep)}
.side .item-row .more{color:var(--text-weak)}
.side .empty-side{color:var(--text-weak)}
/* 非对话页的分区导航 */

.main{background:var(--n1)}
.main>.workspace{max-width:1288px;padding:20px 24px 28px}
footer{border-top:0;color:var(--text-weak);font-size:var(--t-xs);padding:12px 24px 16px}
/* ---- 面板：全站一种容器 ---- */
.sheet,.entry .sheet,.panel{background:var(--card);border:1px solid var(--sep2);border-radius:var(--r-panel);box-shadow:none}
.section-head{padding:10px 16px;border-bottom:1px solid var(--sep2);align-items:center}
.section-head h2{font-size:var(--t-sm);font-weight:600;margin:0}
.section-head p{font-size:var(--t-xs);color:var(--text-weak);margin:2px 0 0}
.section-body{padding:12px 16px}
.page-head{margin-bottom:14px;align-items:flex-start}
.page-head h1{font-size:var(--t-xl);line-height:var(--lh-xl);font-weight:600;letter-spacing:-.01em;text-transform:none;font-family:inherit}
.page-head p{font-size:var(--t-xs);color:var(--text-weak)}
.page-head .count{font-family:var(--mono);font-size:var(--t-sm);color:var(--text-weak);font-weight:400;margin-left:6px}
h1,.entry h1{font-family:inherit;text-transform:none;letter-spacing:-.01em}
/* ---- 按钮 ---- */
.button,.btn{border-radius:var(--r);border-color:var(--sep);font-size:var(--t-sm);font-weight:500;min-height:32px;padding:6px 14px;background:var(--card);color:var(--text)}
.button:hover,.btn:hover{background:var(--n2);border-color:var(--n8)}
.button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.button.primary:hover,.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.button.sm,.btn.sm{min-height:26px;padding:3px 10px;font-size:var(--t-xs);border-radius:6px}
.button.ghost,.btn.ghost{border-color:transparent;background:transparent;color:var(--text-soft)}
.button.ghost:hover,.btn.ghost:hover{border-color:var(--sep);background:var(--card)}
.btn.dl::before{content:'⤓';font-weight:700;color:var(--accent)}
a,.lnk,.text-button{color:var(--accent-text);text-decoration:none}
a:hover,.lnk:hover{text-decoration:underline;text-decoration-color:var(--accent)}
a.btn:hover,a.button:hover{text-decoration:none}
.ws a:not(.btn):not(.button):not(.outs a),.lnk{color:var(--accent);text-decoration:none}
input,textarea,select{border:1px solid var(--sep);border-radius:var(--r);font:inherit;background:var(--card)}
/* ---- 表格：全站一种 ---- */
table{font-size:12.5px}
th{font-weight:500;color:var(--text-weak);font-size:var(--t-xs);padding:6px 12px;border-bottom:1px solid var(--sep);letter-spacing:0;text-transform:none}
td{padding:8px 12px;border-bottom:1px solid var(--sep2);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
td.num,th.num,td.n,th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
td.code{font-family:var(--mono);white-space:nowrap}
.ledger td:first-child,.pk-table td:first-child{width:auto}
.tag,.chip{background:none;border:0;padding:0;font-size:var(--t-xs);font-weight:500;color:var(--text-soft);border-radius:0}
.chip::before,.tag::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:var(--n8);vertical-align:1px}
.chip.ok::before{background:var(--state-ok)}
.chip.ask::before,.tag.risk::before{background:var(--state-attention)}
.chip.stop::before{background:var(--state-stop)}
.chip.run::before{background:var(--state-run)}
.chip.ask,.tag.risk{color:var(--state-attention)}
.chip.stop{color:var(--state-stop)}
.chip.run{color:var(--state-run)}
.ident{font-size:var(--t-xs);color:var(--text-weak);border:1px solid var(--sep);border-radius:4px;padding:0 4px;margin-left:6px;vertical-align:1px;font-weight:400}
/* ---- 页级标签与筛选 ---- */
.filter-tabs.seg{border-bottom:1px solid var(--sep);gap:22px;margin:0 0 14px}
.filter-tabs.seg .filter{font-size:var(--t-md);padding:8px 0 10px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-weak)}
.filter-tabs.seg .filter.active{color:var(--text);font-weight:500;border-bottom-color:var(--accent)}
.sheet.pk .ledger-tools,#standards .ledger-tools{padding:10px 16px;border-bottom:1px solid var(--sep2)}
.sheet.pk .ledger-tools .filter-tabs,#standards .ledger-tools .filter-tabs,.ledger-tools .filter-tabs{min-height:0;gap:0;padding:0;border:1px solid var(--sep);border-radius:7px;overflow:hidden;display:inline-flex}
.sheet.pk .filter,#standards .filter,.ledger-tools .filter{font-size:var(--t-xs);padding:4px 12px;border:0;border-radius:0;min-height:0;color:var(--text-soft);background:var(--card)}
.sheet.pk .filter.active,#standards .filter.active,.ledger-tools .filter.active{background:var(--text);color:#fff;font-weight:500}
.filter .n,.filter span{margin-left:5px;font-family:var(--mono);font-size:var(--t-xs)}
/* ---- 工单（会话页） ---- */
.wo{max-width:1240px;margin:0 auto;padding:0;display:grid;gap:14px}
.wo-head{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start}
.wo-head h1{font-size:var(--t-xl);line-height:var(--lh-xl);font-weight:600;margin:0;letter-spacing:-.01em}
.trace{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:6px;font-size:var(--t-xs);color:var(--text-weak)}
.trace>span{white-space:nowrap}
.trace b{color:var(--text-soft);font-weight:500}
.trace .num{font-family:var(--mono)}
.wo-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.wo-acts .inl{display:inline}
.wo-acts .btn small{color:var(--text-weak);font-family:var(--mono);font-size:var(--t-xs);font-weight:400}
.wo-status{display:grid;grid-template-columns:1.2fr repeat(4,1fr);background:var(--card);border-radius:var(--r-panel);border:1px solid var(--sep2);overflow:hidden}
.wo-status>div{padding:12px 16px;border-right:1px solid var(--sep2);min-width:0}
.wo-status>div:last-child{border-right:0}
.wo-status .l{font-size:var(--t-xs);color:var(--text-weak);text-transform:uppercase;letter-spacing:.04em}
.wo-status .v{font-size:20px;line-height:26px;font-weight:600;margin-top:2px;font-family:var(--mono);font-variant-numeric:tabular-nums}
.wo-status .v small{font-size:var(--t-xs);color:var(--text-weak);font-weight:400;margin-left:4px;font-family:inherit}
.wo-status .v.stop{color:var(--state-stop)}
.wo-status .v.attn{color:var(--state-attention)}
.wo-status .now{font-size:15px;font-weight:600;margin-top:2px}
.wo-status .now small{font-weight:400;color:var(--text-weak);margin-left:6px;font-size:var(--t-xs)}
.steps{display:flex;margin-top:6px}
.steps span{flex:1;font-size:var(--t-xs);color:var(--text-weak);padding-top:6px;border-top:3px solid var(--sep);margin-right:3px}
.steps span:last-child{margin-right:0}
.steps span.done{border-top-color:var(--n9);color:var(--text-soft)}
.steps span.on{border-top-color:var(--accent);color:var(--text);font-weight:600}
.wo-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.wo-col{display:grid;gap:14px}
.ph{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--sep2)}
.ph h2{font-size:var(--t-sm);font-weight:600;margin:0}
.ph .c{font-size:var(--t-xs);color:var(--text-weak)}
.ph .r{margin-left:auto;display:flex;gap:8px;align-items:center}
.ph input{padding:4px 8px;border:1px solid var(--sep);border-radius:6px;font-size:var(--t-xs);width:200px;min-height:0}
.wo .src{padding:10px 16px;font-size:var(--t-src);line-height:var(--lh-src)}
.wo .src>div{margin:0}
.wo .src .loc{font-family:var(--mono);font-size:var(--t-xs);color:var(--text-weak);margin-right:8px}
.wo mark{background:transparent;color:inherit;border-bottom:2px solid var(--sep);padding:0 1px;cursor:pointer}
.wo mark.ok{border-color:var(--n9)}
.wo mark.ask{border-color:var(--state-attention)}
.wo mark.stop{border-color:var(--state-stop);background:var(--state-stop-bg)}
.wo mark.sel{background:var(--accent-soft)}
.wo mark sup{font-family:var(--mono);font-size:11px;color:var(--text-weak);margin-left:1px}
.wo mark:hover{background:var(--n2)}
.wo .hint{font-size:var(--t-xs);color:var(--text-weak);padding:0 16px 10px;margin:0}
.wo .hint .sw{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 3px 0 10px;vertical-align:middle}
.wo .hint .sw:first-child{margin-left:0}
.wo .sw.ok{background:var(--n9)}
.wo .sw.ask{background:var(--state-attention)}
.wo .sw.stop{background:var(--state-stop)}
.wo .tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.wo .tbl.todo col.c1{width:34px}
.wo .tbl.todo col.c2{width:88px}
.wo .tbl.todo col.c3{width:auto}
.wo .tbl.todo col.c4{width:22%}
.wo .tbl.todo col.c5{width:13%}
.wo .tbl.todo col.c6{width:100px}
.wo .tbl .chip{white-space:nowrap}
.wo .tbl .btn,.wo .tbl .btn.primary{min-width:0}
.wo .tbl th{padding:6px 10px}
.wo .tbl td{padding:7px 10px;line-height:1.45}
.wo .tbl td.quote{color:var(--text-soft);overflow-wrap:break-word}
.wo .tbl td.what{overflow-wrap:break-word}
.wo .tbl td.what .basis{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wo .tbl tr.sub td{padding:0 10px 10px 44px;border-top:0}
.wo .tbl tr.sub .inl{display:flex;max-width:520px}
.wo .tbl tr.sub .inl input,.wo .tbl tr.sub .inl select{flex:1;width:auto;min-width:0}
.wo .tbl td.act{white-space:nowrap;text-align:right}
.wo .tbl td.act .basis{white-space:normal;display:inline-block;text-align:right}
.wo .tbl td.ref{font-family:var(--mono);font-size:var(--t-xs);color:var(--text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wo .tbl tr[data-sel]{cursor:pointer}
.wo .tbl tr[data-sel]:hover td{background:var(--n2)}
.wo .tbl tr.sel td{background:var(--accent-soft)}
.wo .tbl tr.chg td{background:var(--state-attention-bg)}
.wo .tbl .inl{display:inline-flex;gap:4px;align-items:center}
.wo .tbl .inl input,.wo .tbl .inl select{min-height:0;padding:3px 6px;font-size:var(--t-xs);width:160px}
.wo .tools{display:flex;gap:8px;align-items:center}
.wo .tools input{flex:1;min-height:0;padding:4px 8px;font-size:var(--t-xs);width:auto}
.wo .none{font-size:var(--t-sm);color:var(--text-weak);padding:12px 16px;margin:0}
.wo .warn{font-size:var(--t-xs);color:var(--text-alarm);margin:0;padding:8px 16px 0}
.wo .foot{padding:8px 16px;font-size:var(--t-xs);color:var(--text-weak);border-top:1px solid var(--sep2);display:flex;gap:16px}

.wo .turns{padding:0 16px}
.wo .turns .t{padding:8px 0;border-bottom:1px solid var(--sep2);font-size:var(--t-xs);line-height:1.5}
.wo .turns .t:last-child{border-bottom:0}
.wo .turns .who{color:var(--text-weak);display:flex;gap:6px;align-items:center}
.wo .turns .who .copy{margin-left:auto;background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font-size:var(--t-xs)}
.wo .turns .who .copy::before{content:'复制'}
.wo .turns p{margin:3px 0 0}
.wo details>summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;font-size:var(--t-xs);font-weight:500;color:var(--text-soft);padding:8px 16px;border-top:1px solid var(--sep2)}
.wo details>summary::-webkit-details-marker{display:none}
.wo details>summary::before{content:'▸';width:12px;color:var(--text-weak);font-size:var(--t-xs)}
.wo details[open]>summary::before{content:'▾'}
.wo details>summary::after{content:'展开';margin-left:auto;font-weight:400;color:var(--text-weak)}
.wo details[open]>summary::after{content:'收起'}
.wo .trace-list{margin:0;padding:6px 16px 10px 32px}
.wo .trace-list li{font-family:var(--mono);font-size:var(--t-xs);margin:2px 0}
.wo .trace-list li.no{color:var(--text-alarm)}
.wo-note{margin:0;font-size:var(--t-xs);color:var(--text-soft);padding:8px 16px;border-top:1px solid var(--sep2)}
.wo-note .lnk{margin-left:8px}
.wo-foot form{display:flex;gap:8px;align-items:center}
.wo-foot textarea{flex:1;min-height:36px;height:36px;padding:7px 11px;font-size:var(--t-sm);resize:none}
.wo .working{padding:12px 16px}
.wo .working progress.progress{display:block;width:100%;height:5px;margin:6px 0;appearance:none;-webkit-appearance:none;border:0;background:var(--sep2);border-radius:2px;overflow:hidden}
.wo .working progress.progress::-webkit-progress-bar{background:var(--sep2);border-radius:2px}
.wo .working progress.progress::-webkit-progress-value{background:var(--accent);border-radius:2px}
.wo .working progress.progress::-moz-progress-bar{background:var(--accent)}
.wo .basis{font-size:var(--t-xs);color:var(--text-weak)}
/* ---- 入口页 ---- */
.entry{max-width:720px;margin:36px auto 0;padding:0}
.entry.wide{max-width:960px}
.entry .ph.plain{padding:0 0 10px;border:0}
.catalog{margin-top:14px}
.catalog>details>summary{padding:10px 16px}
.catalog h3{font-size:var(--t-sm);font-weight:600;margin:0}
.entry h1{font-size:var(--t-xl);font-weight:600}
.entry>p{color:var(--text-weak);font-size:var(--t-sm);margin-bottom:14px}
.entry textarea{min-height:150px;padding:12px 14px;font-size:var(--t-md);line-height:1.6;border-radius:var(--r-panel)}
.entry .sheet{padding:0}
.entry .sheet form>.field{padding:10px 16px;border-bottom:1px solid var(--sep2);margin:0}
.entry .sheet .field>span,.entry .sheet .field>label{color:var(--text-soft)}
.entry .form-actions{display:flex;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap}
.entry .form-actions .hint{flex:1;margin:0;order:-1;font-size:var(--t-xs);color:var(--text-weak)}
.entry .finder>details>summary{padding:10px 16px}
.entry .finder h3{font-size:var(--t-sm);font-weight:600;margin:0}
.std-check{margin-left:0}
/* ---- 资料与规则 / 设置 / 全部任务：面板化 ---- */
.std-card{border-radius:var(--r-panel);border-color:var(--sep2)}
.std-card em{color:var(--accent);text-decoration:none}
.pk-table .task-title{color:var(--text)}
.std-table col.c3{width:20%}
.settings-row{padding:10px 16px;border-bottom:1px solid var(--sep2)}
.settings-row h3{font-size:var(--t-sm);font-weight:500;margin:0}
.settings-row p{font-size:var(--t-xs);color:var(--text-weak);margin:2px 0 0}
.fine.lines{padding:10px 16px;font-size:var(--t-xs)}
.fine.lines .weak{color:var(--text-weak)}
.ledger-tools{padding:10px 16px;border-bottom:1px solid var(--sep2);display:flex;gap:12px;align-items:center}
.ledger-tools .search{margin-left:auto}
.ledger-tools .search input{width:220px;min-height:0;padding:4px 8px;font-size:var(--t-xs)}
.ledger-batch{display:flex;gap:12px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--sep2);font-size:var(--t-xs);color:var(--text-soft)}
.quiet-note{font-size:var(--t-xs);color:var(--text-weak);margin-top:10px}
.backline{margin-bottom:10px}
.backline a{color:var(--accent-text)}
.task-tabs{border-bottom:1px solid var(--sep);gap:22px}
.task-tabs a{padding:8px 0 10px;color:var(--text-weak);font-size:var(--t-md);border-bottom:2px solid transparent;margin-bottom:-1px}
.task-tabs a[aria-current=page]{color:var(--text);font-weight:500;border-bottom-color:var(--accent)}
.notice{background:var(--n2);border-left:3px solid var(--state-attention);color:var(--text-soft);border-radius:0 var(--r) var(--r) 0;font-size:var(--t-xs)}
.baseline-notice{background:var(--card);border:1px solid var(--sep2);border-left:3px solid var(--accent);border-radius:var(--r-panel)}
@media (max-width:1600px){.wo-cols{grid-template-columns:1fr}
}
@media (max-width:1100px){.app{grid-template-columns:200px minmax(0,1fr)}
}
@media (max-width:820px){.app{grid-template-columns:minmax(0,1fr)}
.side{display:none}
}
@media (max-width:1100px){.wo-status{grid-template-columns:1fr 1fr}
}
.wo-note.plain{border-top:0;padding:0 4px}
.wo .bomwrap{padding:10px 16px 0}
.wo .tbl.bom{table-layout:fixed}
.wo .tbl.bom col:nth-child(1){width:92px}
.wo .tbl.bom td.num:first-child{white-space:normal;overflow-wrap:anywhere}
.wo .tbl.bom col:nth-child(3){width:150px}
.wo .tbl.bom col:nth-child(4),.wo .tbl.bom col:nth-child(5){width:64px}
.wo .tbl.bom td{overflow-wrap:break-word}
.button.danger,.btn.danger{color:var(--state-stop);border-color:var(--sep)}
.button.danger:hover,.btn.danger:hover{background:var(--state-stop-bg);border-color:var(--state-stop)}

tr[data-open]{cursor:pointer}
tr[data-open]:hover td{background:var(--n2)}
.side .item .st,.k,.k.na,.trace small,.wo .tbl th{font-size:var(--t-xs)}
.side-filters{display:flex;gap:4px;padding:0 var(--s2) 6px;flex-wrap:wrap}
.side-filters .filter{font-size:var(--t-xs);padding:2px 8px;min-height:0;border:1px solid var(--sep);border-radius:6px;background:var(--card);color:var(--text-soft)}
.side-filters .filter.active{background:var(--text);color:#fff;border-color:var(--text)}
.wo .tbl.bom tr.grp td{background:var(--n2);font-weight:500;font-size:var(--t-xs);color:var(--text-soft);cursor:pointer}
.wo .tbl.bom tr.grp:hover td{color:var(--text)}
.tbl.cand th.hit{color:var(--accent)}
.tbl.cand th.hit i{font-style:normal;margin-left:4px;font-size:11px;vertical-align:2px}
.tbl.cand td.hit{background:var(--accent-soft)}
.tbl.cand td small{color:var(--text-weak)}
#modal .tbl.cand{width:100%;margin-top:8px}
.wo .tbl td.act .more{margin-left:6px;font-size:var(--t-xs)}
.wo .panel.review .summary{margin:0;padding:10px 16px;font-size:var(--t-sm);line-height:1.7;border-bottom:1px solid var(--sep2)}
.wo .panel.review .summary .lnk{color:var(--accent);text-decoration:none}
.wo .tbl.diff col.c1{width:64px}
.wo .tbl.diff col.c4{width:26%}
.wo .tbl.diff td small{color:var(--text-weak);font-family:var(--mono);font-size:var(--t-xs)}
.wo .btn[aria-disabled=true]{opacity:.55;cursor:default}
.topbar nav .n{display:inline-block;min-width:16px;padding:0 5px;margin-left:5px;border-radius:8px;background:var(--state-attention);color:#fff;font-size:11px;line-height:16px;text-align:center;font-family:var(--mono)}
.entry.compose{width:100%;max-width:720px;margin:14vh auto 48px;padding:0 24px;box-sizing:border-box}
.entry.compose h1{margin-bottom:14px}
.composer{background:var(--card);border:1px solid var(--line-edge);border-radius:16px;box-shadow:var(--shadow);padding:6px 8px 8px 16px;display:grid;gap:6px}
.composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,122,255,.12),var(--shadow)}
.entry .composer textarea{border:0;outline:0;box-shadow:none;background:transparent;padding:10px 8px 4px 0;min-height:104px;resize:none;font-size:var(--t-md);line-height:1.6;border-radius:0}
.entry .composer textarea:focus{border:0;outline:0;box-shadow:none}
.composer-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.composer-bar .sp{flex:1}
.composer-bar .std-check{margin:0;font-size:var(--t-xs);color:var(--text-soft)}
.composer .notice{margin:0}
.composer.drop{border-color:var(--accent);background:var(--n2)}
.composer-bar .attach{display:inline-flex;align-items:center;gap:4px;font-size:var(--t-xs);color:var(--text-soft);cursor:pointer;margin:0}
.composer-bar .attach:hover{color:var(--accent)}
.composer-bar .attach .clip{font-size:var(--t-md)}
.batch-preview td small,.batch-table td small{display:block;color:var(--text-weak);font-size:var(--t-xs)}
.batch-preview tr.off td,.batch-table tr.off td{color:var(--text-weak)}
.batch-preview .c1{width:120px}
.batch-preview .c3{width:150px}
.batch-preview .c4{width:56px}
.batch-table .c1{width:118px}
.batch-table .c3{width:130px}
.batch-table .cn{width:56px}
.batch-table .c8{width:80px}
.batch-table .c9{width:60px}
.tbl td.stop{color:var(--state-stop);font-weight:600}
.chip.run{background:var(--n3)}
.wo.batch .panel details>summary{cursor:pointer;font-size:var(--t-sm);font-weight:600;padding:2px 0 8px}
.wo .tbl.bom.erp td.spec{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wo .tbl.bom td.code s{color:var(--text-weak);margin-right:4px}
.wo .panel.compare .summary{margin:0 0 6px}
.wo .tbl.cmp .c1{width:64px}
.wo .tbl.cmp .cn{width:56px}
.wo .tbl.cmp .c6{width:120px}
.wo .tbl.cmp td small{display:block;color:var(--text-weak);font-size:var(--t-xs)}
.entry .ov-list.batches{margin-top:10px}
.entry .ov-list.batches .ov-row{grid-template-columns:minmax(0,1fr) 120px 48px 84px}
.entry .overview{margin-top:40px}
.entry .ov-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.entry .ov-head h2{font-size:var(--t-sm);font-weight:600;margin:0}
.entry .ov-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}
.entry .tile{background:var(--card);border:1px solid var(--line-edge);border-radius:var(--r-panel);padding:10px 12px;text-align:left;display:grid;gap:2px;cursor:pointer;font:inherit;color:var(--text)}
.entry .tile b{font-size:var(--t-xl);font-weight:600;line-height:1.1}
.entry .tile span{font-size:var(--t-xs);color:var(--text-soft)}
.entry .tile.zero b{color:var(--text-weak)}
.entry .tile:hover{border-color:var(--line-edge-hover)}
.entry .tile.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.entry .ov-list{background:var(--card);border:1px solid var(--line-edge);border-radius:var(--r-panel);overflow:hidden}
.entry .ov-row{display:grid;grid-template-columns:minmax(0,1fr) 88px 64px 84px;gap:10px;align-items:center;padding:8px 14px;border-top:1px solid var(--line-row);font-size:var(--t-sm);color:var(--text);text-decoration:none}
.entry .ov-row:first-child{border-top:0}
.entry .ov-row.head{font-size:var(--t-xs);color:var(--text-weak);padding:6px 14px}
.entry a.ov-row:hover{background:var(--n2)}
.entry .ov-row .t{display:grid;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.entry .ov-row .t small{color:var(--text-weak);font-size:var(--t-xs);overflow:hidden;text-overflow:ellipsis}
.entry .ov-list .none{padding:12px 14px;margin:0}
@media (max-width:640px){.entry .ov-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.entry .ov-row{grid-template-columns:minmax(0,1fr) 72px}
.entry .ov-row>span:nth-child(3),.entry .ov-row>span:nth-child(4){display:none}
}
.topbar nav .n[hidden]{display:none}
/* 规则库（本地版）：工单页级联行逐行确认、新版产成品编码；资料与规则 → 代号与模板 */
.wo .tbl.bom tr.del td{color:var(--text-weak)}
.wo .tbl.bom .line-tag{display:block;margin:2px 0 0;font-weight:500;white-space:normal}

.pcode{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 10px;padding:8px 10px;background:var(--n2)}
.pcode input{width:14em;max-width:100%}
.pcode .fine{flex:1 1 100%}
.pcode-note{margin:0 0 10px}
.rules-bar{display:flex;flex-wrap:wrap;gap:6px 24px;margin:0 0 6px}
.rules-part{margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--sep)}
.rules-part.open h2{color:var(--text)}
.rules-part.done h2{color:var(--text-soft)}
.rules-h{margin:14px 0 6px;font-size:var(--t-sm)}
.rules-h .n{color:var(--text-weak);font-weight:400}
.rules-matrix td,.rules-ops td{vertical-align:top}
.rules-matrix td small,.rules-ops td small{display:block;color:var(--text-weak)}
.rules-matrix td.rc small{display:inline}
.rules-matrix td.rc small.cv{display:block}
.rules-matrix .rc .k{margin:0 4px 0 6px}
.rules small.cv{color:var(--state-stop)}
.rules-ops tr.sus td{background:var(--n2)}
.rules-tpl{margin:8px 0;padding:8px 10px;border:1px solid var(--sep);background:var(--card)}
.rules-tpl summary{cursor:pointer;overflow-wrap:anywhere}
.rules-tpl .act{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0}
.rules-old{margin:18px 0 0}
.rules-import{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}
.rules-import input[type=file]{max-width:220px}

/* 询价澄清台 */
.iq-new form{display:grid;gap:8px}
.iq-drop{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.iq-new textarea{width:100%;box-sizing:border-box}
.iq-new .actions{display:flex;justify-content:flex-end}
.iq-list td small,.iq-items td small{display:block;color:var(--text-weak)}
.iq-baseline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0}
.iq-baseline select{max-width:100%}

.iq-sides{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.iq-side{border:1px solid var(--sep);padding:8px 10px;background:var(--card);min-width:0}
.iq-side>b{display:block;font-size:var(--t-sm)}
.iq-quotes{list-style:none;margin:4px 0;padding:0}
.iq-quotes li{margin:2px 0;overflow-wrap:anywhere}
.iq-quotes small{display:block;color:var(--text-weak)}
.iq-drafts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;margin:6px 0;padding:8px 10px;background:var(--n2)}
.iq-drafts p{margin:2px 0;overflow-wrap:anywhere}
.iq-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0}
.iq-act{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1 1 320px}
.iq-act input{min-width:0;flex:1 1 160px}
.iq-items td q,.iq-quotes q{quotes:"「" "」"}
.iq-items td{overflow-wrap:anywhere}
.wo .tbl.bom td.code{white-space:normal;overflow-wrap:anywhere}
/* UX 定稿 I1（2026-09-15）：表内按钮文字一行；批次表操作列给足宽度 */
.wo .tbl .btn{white-space:nowrap}
.wo .tbl.batch-table col.c9{width:76px}
/* UX 定稿 K2（2026-09-15）：交接卡、待办勾选与行内详情、变异 BOM 对照与 ERP 全表、下方折叠 */
.wo .panel.handoff .hd{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0;padding:12px 16px}
.wo .panel.handoff dt{color:var(--text-soft);font-size:var(--t-sm);line-height:1.6}
.wo .panel.handoff dd{margin:0;line-height:1.6;min-width:0;overflow-wrap:anywhere}
.wo .panel.handoff ol{margin:0;padding-left:1.4em}
.wo .panel.handoff li{margin:0 0 4px}
.wo .panel.handoff .why{display:block;color:var(--text-soft);font-size:var(--t-xs);line-height:1.5}
.wo .panel.handoff .acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 16px 14px}
.wo .panel.handoff .ev{margin:0;padding:0 16px 12px;color:var(--text-soft);font-size:var(--t-xs)}
.wo .tbl.todo col.c0,.wo .tbl.bom.cmpv col.c0{width:30px}
.wo .tbl.todo col.c1{width:52px}
.wo .tbl.todo col.c6{width:96px}
.wo .tbl td.pick,.wo .tbl th.pick{padding-left:10px;padding-right:0}
.wo .tbl td.pick input,.wo .tbl th.pick input{margin:0;min-height:0;width:auto}
.wo .tbl.todo .tri{display:inline-block;width:12px;color:var(--text-weak)}
.wo .tbl.todo tr.open>td{background:var(--accent-soft)}
.wo .tbl.todo tr.detail>td{background:var(--n2);padding-top:10px;padding-bottom:12px}
.wo .detail-body p{margin:0 0 6px;line-height:1.6;overflow-wrap:anywhere}
.wo .detail-body p>b{display:inline-block;min-width:3.5em;margin-right:8px;color:var(--text-soft);font-weight:500}
.wo .detail-body .act{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:8px}
.wo .tbl-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 14px;padding:10px 16px;border-top:1px solid var(--sep2)}
.wo .tbl.bom.cmpv col.c1{width:60px}
.wo .tbl.bom.cmpv col.c2{width:68px}
.wo .tbl.bom.cmpv col.c3,.wo .tbl.bom.cmpv col.c4{width:auto}
.wo .tbl.bom.cmpv col.c5{width:108px}
.wo .tbl.bom.cmpv .code{display:block;font-family:var(--mono);font-size:var(--t-xs);white-space:nowrap}
.wo .tbl.bom.cmpv .nm{display:block;overflow-wrap:anywhere}
.wo .tbl.bom.cmpv td.was{color:var(--text-soft)}
.wo .tbl.bom.cmpv td.was .code{text-decoration:line-through}
.wo .tbl.bom.cmpv td.ref .k,.wo .tbl.bom.cmpv td.ref .basis{display:block;margin-top:2px;white-space:normal}
.wo .tbl.bom tr.gfoot td{text-align:right}
.wo .tbl.bom tr.gfoot .fine{margin-right:8px}
.wo .tbl.bom.focus tr.chg:not(.hl) td{opacity:.5}
.wo .tbl.bom tr.hl td{background:var(--accent-soft)}
.wo .tbl.bom.erp col:nth-child(1){width:72px}
.wo .tbl.bom.erp col:nth-child(2){width:156px}
.wo .tbl.bom.erp col:nth-child(3){width:auto}
.wo .tbl.bom.erp col:nth-child(4){width:180px}
.wo .tbl.bom.erp col:nth-child(5){width:72px}
.wo .tbl.bom.erp col:nth-child(6){width:64px}
.wo .tbl.bom.erp col:nth-child(7){width:140px}
.wo .tbl.bom.erp td.code{white-space:nowrap;overflow-wrap:normal}
.wo.bom-full .wo-cols{grid-template-columns:minmax(0,1fr)}
.wo .panel.folds details.fold+details.fold{border-top:1px solid var(--sep2)}
.wo .panel.folds details.fold>summary{padding:10px 16px}
.wo .panel.folds details.fold>summary .c{margin-left:10px;color:var(--text-soft);font-size:var(--t-xs);font-weight:400}
.wo .panel.folds .fold-body{padding:0 16px 12px}
/* K2 补：ERP 全表编码列放得下整码；窄屏另给一组列宽 */
.wo .tbl.bom.erp col:nth-child(2){width:200px}
.wo .tbl.bom.erp col:nth-child(4){width:160px}
.wo .tbl.bom.erp col:nth-child(7){width:170px}
.wo .tbl.bom.erp td.code{font-size:var(--t-xs)}
@media (max-width:1200px){.wo .tbl.bom.erp col:nth-child(2){width:180px}
.wo .tbl.bom.erp col:nth-child(4){width:120px}
.wo .tbl.bom.erp col:nth-child(5){width:60px}
.wo .tbl.bom.erp col:nth-child(6){width:56px}
.wo .tbl.bom.erp col:nth-child(7){width:150px}
}
/* UX 定稿 K3（2026-09-15）：顶栏五项与通知下拉、左栏只放列表、侧栏条目两行与色点、首页一个回形针 */
.topbar{position:relative}
.topbar nav .n{border:0;cursor:pointer}
.notify-pop{position:absolute;top:44px;left:180px;z-index:var(--z-pop);width:360px;max-width:calc(100vw - 32px);max-height:70vh;overflow:auto;background:var(--card);border:1px solid var(--sep);border-radius:10px;box-shadow:var(--shadow);padding:6px}
.notify-pop .np-head{display:flex;align-items:center;gap:8px;padding:6px 8px 8px;border-bottom:1px solid var(--sep2)}
.notify-pop .np-head .fine{flex:1}
.notify-pop .np-item{display:block;width:100%;text-align:left;background:none;border:0;border-radius:7px;padding:8px;cursor:pointer;color:var(--text)}
.notify-pop .np-item:hover{background:var(--n2)}
.notify-pop .np-item .t{display:block;font-size:var(--t-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .model-state{display:inline-flex;align-items:center;gap:6px;color:var(--text-soft)}

.side .item .t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--text)}
.side .item .meta{display:block;margin-top:2px;color:var(--text-weak);font-size:var(--t-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .item .meta .run{font-weight:500;color:var(--text-soft)}
.composer-links{margin:10px 2px 0;color:var(--text-weak)}
.composer-links a{color:var(--text-soft);text-decoration:underline;text-underline-offset:2px}
.composer-links .text-button{padding:0;min-height:0}
.recv{margin:0 0 8px}
/* UX 定稿 K4（2026-09-15）：规则库勾选后一次批准、agent 认为也相关单列、已批准收起 */
.rules input[type=checkbox]{margin:0 6px 0 0;min-height:0;width:auto;vertical-align:-2px}
.rules .pick-row,.rules .pick-one{display:block;margin:0 0 4px;font-size:var(--t-xs);font-weight:400;color:var(--text-soft);white-space:nowrap}
.rules-ops th.pick,.rules-ops td.pick{width:30px;padding-right:0}
.rules-ops tr.grp td{background:var(--n2);font-size:var(--t-xs);color:var(--text-soft)}
.rules .k+.k{margin-left:4px}
.rules-tpl .tpl-bar{margin:6px 0 0;font-size:var(--t-xs);color:var(--text-soft)}
.rules-tpl .tpl-cell{margin:6px 0;overflow-wrap:anywhere}
.rules-foot{position:sticky;bottom:0;z-index:var(--z-raise);display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 14px;margin:14px 0 0;padding:10px 12px;background:var(--card);border:1px solid var(--sep2);border-radius:var(--r-panel)}
details.rules-part>summary{cursor:pointer}
details.rules-part>summary h2{display:inline;margin:0 10px 0 0;font-size:15px;color:var(--text-soft)}
.model-hint{color:var(--text-weak);font-size:var(--t-xs)}
/* UX 定稿 K4 F1（2026-09-15）：询价详情用工单页部件——交接卡、按类别分组的一张表、行内展开、勾选标为已发客户 */
.wo .tbl.iq-todo col.c0{width:30px}
.wo .tbl.iq-todo col.c1{width:28%}
.wo .tbl.iq-todo col.c2{width:96px}
.wo .tbl.iq-todo col.c3{width:auto}
.wo .tbl.iq-todo col.c4{width:132px}
.wo .tbl.iq-todo td{overflow-wrap:anywhere}
.wo .tbl.iq-todo tr.grp td{background:var(--n2);font-weight:500;font-size:var(--t-xs);color:var(--text-soft)}
.wo .tbl.iq-todo tr.open>td{background:var(--accent-soft)}
.wo .tbl.iq-todo tr.detail>td{background:var(--n2);padding-top:10px;padding-bottom:12px}
.wo .tbl.iq-todo .tri{display:inline-block;width:14px;color:var(--text-weak)}
.wo .tbl.iq-todo q,.wo .tbl.iq-items q{quotes:"「" "」"}
.wo .tbl.iq-items col.c1{width:18%}
.wo .tbl.iq-items col.c2{width:16%}
.wo .tbl.iq-items col.c3{width:auto}
.wo .tbl.iq-items col.c4{width:22%}
.wo .tbl.iq-items col.c5{width:72px}
.wo .tbl.iq-items td{overflow-wrap:anywhere}
.wo .tbl.iq-items td small{display:block;color:var(--text-weak)}
.wo .iq-log{margin:0;padding-left:1.4em}
.wo .iq-log li{margin:0 0 4px;overflow-wrap:anywhere}
.wo .panel.handoff .iq-baseline{margin:6px 0 0}
.wo .panel.handoff .iq-baseline select{width:auto;flex:0 1 420px;min-width:0;max-width:100%}
/* UX 定稿 K5（2026-09-15）：台账合并三类、操作人与资料包筛选 */
.ledger-tools{flex-wrap:wrap}
.ledger-tools .ledger-sel select{min-height:0;padding:3px 8px;font-size:var(--t-xs);max-width:200px}
.ledger td .st{white-space:nowrap}

.ledger .run{font-weight:400;font-size:var(--t-xs);color:var(--text-weak)}
.ledger-batch{flex-wrap:wrap}
.ledger-batch label{white-space:nowrap}
.wo .tbl.bom.cmpv col.c1{width:70px}
/* 审查修复 F1（2026-09-16）：工单 / 批次页页边距；看得见的键盘焦点；过程记录按同事版（正在工作… Ns / 已工作 N 秒 ›） */
#main>.wo{padding:20px 24px 32px;box-sizing:border-box}
.button:focus-visible,.btn:focus-visible,.filter:focus-visible,.lnk:focus-visible,.text-button:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}
.wo .working{padding:12px 16px}
.wo .working .work-line{display:flex;align-items:center;gap:8px;color:var(--text-soft)}
.wo .working .work-line b{font-weight:500;color:var(--text)}
.wo .working .secs{margin-left:auto;font-size:var(--t-xs);color:var(--text-weak)}
.wo .working .spin{flex:none;width:12px;height:12px;border:2px solid var(--sep);border-top-color:var(--text-soft);border-radius:50%;animation:omec-spin .9s linear infinite}
.wo .working .work-step{margin:6px 0 0 5px;padding-left:12px;border-left:1px solid var(--sep);font-style:italic;font-size:var(--t-sm);color:var(--text-soft)}
.wo .working .spark{margin-right:6px;font-style:normal}
@keyframes omec-spin{to{transform:rotate(360deg)}
}
@media (prefers-reduced-motion:reduce){.wo .working .spin{animation:none}
}
.wo details.proc{margin:0 0 10px}
.wo details.proc>summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;color:var(--text-soft);font-size:var(--t-sm);padding:2px 0}
.wo details.proc>summary::-webkit-details-marker{display:none}
.wo details.proc>summary::after{content:none}
.wo details.proc .chev{margin-left:auto;transition:transform .15s}
.wo details.proc[open] .chev{transform:rotate(90deg)}
.wo details.proc .proc-ic{flex:none;width:10px;height:10px;border:1.5px solid var(--text-weak);border-radius:2px}
.wo details.proc .proc-body{margin:8px 0 0 5px;padding-left:12px;border-left:1px solid var(--sep)}
.wo details.proc .proc-steps{margin:0;padding-left:1.2em}
.wo details.proc .proc-steps li{margin:0 0 4px;overflow-wrap:anywhere}
.wo details.proc .proc-steps small{color:var(--text-weak);margin-left:6px}
.bom-read tr.chg td{background:var(--n2)}
.history-fold{margin:12px 0 0}
.history-fold ol{margin:6px 0 0;padding-left:1.4em}
/* 审查修复 F2（2026-09-16）：状态一种画法（点 + 词）；通知入口在顶栏右侧，下拉跟着按钮、不被页面吸顶元素盖住 */
.stb{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:500;color:var(--text-soft);white-space:nowrap;vertical-align:middle}
.stb>i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--n8)}
.stb-needs_you,.stb-needs_answer{color:var(--state-attention)}
.stb-needs_you>i,.stb-needs_answer>i{background:var(--state-attention)}
.stb-blocked_only{color:var(--state-stop)}
.stb-blocked_only>i{background:var(--state-stop)}
.stb-awaiting_review{color:var(--text)}
.stb-awaiting_review>i{background:var(--text-soft)}
.stb-reviewed{color:var(--text-soft)}
.stb-reviewed>i{background:var(--state-ok)}
.stb-run{font-weight:400;color:var(--text-weak);margin-left:2px}
td>.stb+small{display:block;color:var(--text-weak)}
.topbar{z-index:var(--z-topbar);backdrop-filter:none}
.topbar .right .notify-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--sep);border-radius:14px;background:var(--card);color:var(--text-soft);font-size:var(--t-xs);cursor:pointer}
.topbar .right .notify-btn b{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--text);color:var(--card);font-size:11px;line-height:18px;text-align:center;box-sizing:border-box}
.topbar .right .notify-btn.has{color:var(--text)}
.notify-pop{left:auto;right:16px;top:46px}
/* 审查修复 F4（2026-09-16）：共用部件与可达性 */
.grp-pick{margin-left:8px;font-size:var(--t-xs);font-weight:400;color:var(--text-soft);cursor:pointer}
.composer-bar button.attach{background:none;border:0;padding:4px 6px;border-radius:6px;font:inherit;font-size:var(--t-xs);color:var(--text-soft);cursor:pointer;min-height:0}
.composer-bar button.attach:hover{color:var(--accent)}
.side .item-row:focus-within .more,.side .item-row .more[aria-expanded="true"]{display:block}
.side .item-row .more{min-width:24px;min-height:24px}
.side .menu button.danger,.side-batch button.danger,.text-button.danger{color:var(--state-stop)}
.button[aria-pressed="true"]{background:var(--text);border-color:var(--text);color:var(--card)}
.btn.dl::before{content:none}
.btn.dl .dl-ic{font-weight:700;color:var(--accent);margin-right:2px}
.wo .turns .who .copy::before{content:none}
.wo details>summary::after,.wo details[open]>summary::after{content:none}
.wo mark.base{border-bottom:1px dotted var(--text-weak)}
.wo tr[data-sel][tabindex]:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}
.wo .more-menu{position:relative;display:inline-block}
.wo .wo-acts .more-menu>summary{border-top:0;padding:0 10px;min-width:34px;justify-content:center;color:var(--text-soft);font-size:var(--t-sm)}
.wo .wo-acts .more-menu>summary::before,.wo .wo-acts .more-menu>summary::after{content:none}
.wo .more-menu .menu-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:var(--z-menu);display:grid;min-width:120px;background:var(--card);border:1px solid var(--sep);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.08);padding:4px}
.wo .more-menu .menu-pop button{background:none;border:0;text-align:left;padding:6px 10px;border-radius:6px;font:inherit;font-size:var(--t-sm);color:var(--text);cursor:pointer}
.wo .more-menu .menu-pop button:hover:not(:disabled){background:var(--n2)}
.wo .more-menu .menu-pop button:disabled{color:var(--text-weak);cursor:default}
.filter-tabs .filter:focus-visible{outline-offset:-2px}
.warn-inline{color:var(--text-alarm)}
.iq-drop input[type=file]::file-selector-button{font:inherit;padding:6px 12px;border:1px solid var(--sep);border-radius:8px;background:var(--card);color:var(--text);cursor:pointer;margin-right:10px}
/* 审查修复 F5（2026-09-16）：全局 hidden；层级刻度从低到高——抬起 2 · 吸顶 10 · 菜单 20 · 顶栏 30 · 下拉 40 · 跳转链接 60 · 提示条 100（弹窗在浏览器顶层） */
:root{--z-raise:2;--z-sticky:10;--z-menu:20;--z-topbar:30;--z-pop:40;--z-skip:60;--z-toast:100}
[hidden]{display:none!important}
/* 审查修复 F5（2026-09-16）：覆盖泄漏与部件统一——禁用按钮不再悬停变色；弹窗、提示条、登录页换新令牌；旧台账规则清掉；表头、勾选框、编码折行各一条规则；弱灰字和琥珀状态字提对比度 */
:root{--text-weak:#636366;--gmute:#636366;--state-attention-text:#8A5A12;--ink3:#636366;--accent-text:#0066CC}
.button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.4}
.button:disabled,.btn:disabled,.button[aria-disabled=true],.btn[aria-disabled=true]{cursor:default;transform:none}
.button:disabled:hover,.btn:disabled:hover,.button[aria-disabled=true]:hover,.btn[aria-disabled=true]:hover{background:var(--card);border-color:var(--sep)}
.button.primary:disabled,.btn.primary:disabled,.button.primary:disabled:hover,.btn.primary:disabled:hover{background:var(--n3);border-color:var(--sep);color:var(--text-weak)}
.button:disabled:active,.btn:disabled:active,.btn[aria-disabled=true]:active{transform:none}
.btn.primary{min-width:0}
.wo .handoff .btn.primary,.wo .tbl-foot .btn.primary{min-width:170px}
.wo .trace{padding-left:0}
dialog{border:1px solid var(--sep);border-radius:var(--r-panel);box-shadow:var(--shadow);color:var(--text)}
dialog::backdrop{background:rgba(0,0,0,.28)}
#notification{background:var(--n12);color:var(--text-on-accent);border-radius:var(--r);box-shadow:var(--shadow)}
#notification.error{background:var(--state-stop)}
.auth-layout{background:var(--card)}
.auth-context{background:var(--n1);border-right-color:var(--sep)}
.auth-context h1{color:var(--text)}
.auth-context>div>p,.auth-context li{color:var(--text-soft)}
.auth-context li{border-bottom-color:var(--sep2)}
.auth-context li span{color:var(--text-weak)}
.empty{background:transparent}
.empty p{color:var(--text-soft)}
.tag.risk{background:none;border:0}
.task-title{display:block;font-weight:500;color:var(--text)}
.ledger td{padding:9px 14px}
.ledger th{padding:7px 14px}
.ledger-batch{border:0;border-bottom:1px solid var(--sep2);border-radius:0;background:none;margin:0}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;padding:0}
input[type=file]{width:auto;padding:0;border:0;background:none;min-height:0}
input::placeholder,textarea::placeholder{color:var(--text-weak)}
::selection{background:var(--accent-soft);color:inherit}
th{background:none;color:var(--text-weak);letter-spacing:0}
tr[data-sel]:hover>td,tr[data-open]:hover>td,tr[data-iq-row]:hover>td{background:var(--n2)}
.wo .tbl th{white-space:normal}
td.code{white-space:nowrap;overflow-wrap:normal;word-break:normal}
.wo .tbl.bom td.code{white-space:nowrap;overflow-wrap:normal;overflow:hidden;text-overflow:ellipsis}
.tbl:not(.wo *){width:100%;border-collapse:collapse}
.tbl:not(.wo *) th{padding:6px 10px;text-align:left;font-weight:500;font-size:var(--t-xs);border-bottom:1px solid var(--sep2)}
.tbl:not(.wo *) td{padding:7px 10px;line-height:1.45;border-bottom:1px solid var(--sep2)}
.none{font-size:var(--t-sm);color:var(--text-weak);padding:12px 16px;margin:0}
.muted{color:var(--text-weak)}
.notice{border-left-color:var(--n8)}
.wo .tbl tr.chg:not(.sel):not(.hl) td{background:var(--n3)}
.lnk,.text-button{color:var(--text);text-decoration:underline;text-decoration-color:var(--n8);text-underline-offset:2px}
.lnk:hover,.text-button:hover{text-decoration-color:currentColor}
.topbar .text-button,.composer-links .text-button{text-decoration:none}
.stb-needs_you,.stb-needs_answer,.chip.ask,.k.ask,.tag.risk,.wo-status .v.attn{color:var(--state-attention-text)}
@media (max-width:1100px){.wo-status{grid-template-columns:1fr 1fr;gap:1px;background:var(--sep2)}.wo-status>div{border-right:0;background:var(--card)}.wo-status>div:first-child{grid-column:1/-1}}
/* 验收前修复（2026-09-16）：窄屏案卷标题不吸顶；表格行、原文句子、首页列表的焦点框不被裁掉；候选与换基准控件；比对表编码不折断；侧栏多选删除按钮边框走令牌 */
@media (max-width:1050px){.issue-heading{position:static;box-shadow:none}}
.wo tr[data-sel][tabindex]:focus-visible>td{box-shadow:inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent)}
.wo tr[data-sel][tabindex]:focus-visible>td:first-child{box-shadow:inset 2px 0 0 var(--accent),inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent)}
.wo tr[data-sel][tabindex]:focus-visible>td:last-child{box-shadow:inset -2px 0 0 var(--accent),inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent)}
.wo mark[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.entry a.ov-row:focus-visible{outline-offset:-2px}
.notice .candidates{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.notice .candidates li{display:flex;align-items:center;gap:6px}
.wo-note .rebase-pick{width:auto;min-height:0;margin-left:8px;padding:2px 6px;font-size:var(--t-xs)}
.wo .tbl.cmp span.code{white-space:nowrap}
.side-batch button.danger{border-color:var(--state-stop)}
/* 选中的筛选按钮是深底白字，计数跟着按钮文字色（原来沿用弱灰，行业标准选中组计数对比度 2.27） */
.filter.active .n,.filter.active span{color:inherit}
