/* 欧瑞京 · 电机 Agent — 工作台外壳与对照式对话视图。加载在 styles.css 之后：令牌覆盖旧变量，其余页面随之换色。 */
:root{
  --g0:#1C2124;--g1:#262C31;--g2:#333A40;--gtext:#C9CFD4;--gmute:#7E878E;
  --paper:#F3F1EC;--card:#FFFFFF;--soft:#F8F7F4;--line:#DAD6CE;--line2:#EAE7E1;
  --ink:#1C1F22;--ink2:#5E656B;--ink3:#8B9298;
  --cu:#B5622A;--cu-h:#964F20;--cu-soft:#F6E7DC;
  --ok:#2F7A4D;--ask:#C08A1E;--stop:#B23A2C;--run:#2F6DA3;
  --ok-bg:#EEF5F0;--ask-bg:#FBF4E5;--stop-bg:#F8ECEA;
  --mono:"SF Mono",Menlo,Consolas,"Courier New",monospace;
  /* 旧变量映射，让台账、资料、设置页跟着换色 */
  --muted:var(--ink2);--blue:#2B4C63;--white:var(--card);--risk:#7A4E10;
  color:var(--ink);background:var(--paper);font-family:-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
}
body{background:var(--paper);color:var(--ink);font-size:14px}
code,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
[data-internal]{display:none!important}body.internal [data-internal]{display:revert!important}
body.demo [data-internal]{display:none!important}

/* ---- 外壳 ---- */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);grid-template-rows:48px minmax(0,1fr);height:100vh;overflow:hidden}
.app.no-side{grid-template-columns:minmax(0,1fr)}
.topbar{grid-column:1/-1;background:var(--g0);color:var(--gtext);display:flex;align-items:center;padding:0 20px;gap:26px;font-size:13px}
.topbar .brand{color:#fff;font-weight:650;font-size:14px;letter-spacing:.02em;text-decoration:none;display:flex;align-items:center}.topbar .brand:hover{text-decoration:none}.topbar .brand i{display:inline-block;width:10px;height:10px;background:var(--cu);margin-right:10px}
.topbar nav{display:flex;gap:2px}.topbar nav a{padding:5px 10px;border-radius:3px;color:var(--gtext);text-decoration:none}.topbar nav a:hover{background:var(--g1);text-decoration:none}.topbar nav a[aria-current=page]{background:var(--g2);color:#fff}
.topbar .right{margin-left:auto;display:flex;gap:18px;align-items:center;color:var(--gmute)}.topbar .right b{color:var(--gtext);font-weight:500}
.topbar .dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle;background:var(--gmute)}.topbar .dot.ok{background:#4FB37A}
.topbar .text-button{color:var(--gtext)}.topbar select{width:auto;min-height:0;padding:3px 6px;background:var(--g1);color:var(--gtext);border:1px solid var(--g2);font-size:12px}
.topbar .local-test-identity{display:flex;gap:6px;align-items:center;font-size:12px}
.side{background:var(--g1);color:var(--gtext);display:flex;flex-direction:column;border-right:1px solid #11161A;overflow:auto;min-height:0}
.side .new{margin:14px 14px 10px;padding:9px 12px;background:var(--cu);color:#fff;border-radius:3px;font-weight:600;text-align:center;text-decoration:none;display:block}.side .new:hover{background:var(--cu-h);text-decoration:none}
.side .sec{padding:12px 16px 4px;font-size:11px;letter-spacing:.12em;color:var(--gmute)}
.side .item{display:block;padding:9px 16px;border-left:3px solid transparent;font-size:13px;line-height:1.4;color:var(--gtext);text-decoration:none}.side .item:hover{background:var(--g2);text-decoration:none}.side .item[aria-current=page]{background:var(--g2);border-left-color:var(--cu);color:#fff}
.side .item small{display:block;color:var(--gmute);font-size:12px;margin-top:2px}.side .item .st{float:right;font-size:11px;color:var(--gmute)}.side .item .st.hot{color:#E0A96A}
.side .empty-side{padding:16px;color:var(--gmute);font-size:12px}
.main{min-height:0;overflow:auto;display:flex;flex-direction:column}
.main>.workspace{max-width:1376px;width:100%;margin:0 auto;padding:24px 32px 40px;min-height:0}
footer{max-width:none;margin:auto 0 0;padding:12px 32px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--ink3);display:flex;justify-content:space-between;gap:20px;background:var(--paper)}
.settings-mode{margin-bottom:20px}

/* ---- 通用组件（覆盖旧样式） ---- */
.button{border-radius:3px;font-size:13px;font-weight:550;border-color:var(--line);color:var(--ink);background:var(--card);min-height:34px;padding:6px 12px}.button:hover{background:var(--soft);border-color:#C7C1B7}
.button.primary{background:var(--cu);border-color:var(--cu);color:#fff}.button.primary:hover{background:var(--cu-h);border-color:var(--cu-h)}
.button.sm{min-height:0;padding:3px 9px;font-size:12px}.button.full{width:100%;justify-content:center;padding:10px}.button.ghost{border-color:transparent;color:var(--ink2);background:transparent}
.text-button{color:var(--blue)}
.tag{background:var(--soft);color:var(--ink2);border:1px solid var(--line);border-radius:2px;font-weight:550}.tag.risk{background:var(--ask-bg);color:var(--risk);border-color:#EAD3A6}
.k{font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.k.ok{color:var(--ok)}.k.ask{color:var(--ask)}.k.stop{color:var(--stop)}.k.run{color:var(--run)}.k.na{color:var(--ink3)}
.state-pill{display:inline-block;padding:1px 8px;border-radius:2px;font-size:12px;border:1px solid var(--line);background:var(--card);color:var(--ink2)}.state-needs_you{background:#FBF1DC;border-color:#EBD3A0;color:#7A5410}.state-blocked_only{background:var(--stop-bg);border-color:#E3C2BC;color:#7A2C22}.state-executed,.state-ready{background:var(--ok-bg);border-color:#C4DBCB;color:#245232}.state-awaiting_review{background:#E5EDF5;border-color:#C3D3E3;color:#1F4A6E}
.bar{height:5px;background:var(--line2);border-radius:2px;overflow:hidden}.bar>div{height:100%;background:var(--cu);transition:width .4s}
.progress{height:5px;background:var(--line2);border-radius:2px;overflow:hidden;margin:8px 0 4px}.progress>div{height:100%;background:var(--cu);transition:width .4s}

/* ---- 对话：入口 ---- */
.entry{max-width:760px;margin:40px auto;padding:0 24px}
.entry .eyebrow{font-size:12px;color:var(--ink3);letter-spacing:.06em;margin-bottom:6px}.entry h1{font-size:23px;font-weight:650;letter-spacing:-.3px;line-height:1.3;margin-bottom:8px}.entry>p{color:var(--ink2);margin-bottom:18px;max-width:66ch}
.entry .sheet{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:18px 20px}.entry textarea{min-height:120px;font-size:14px}
.entry .hint{font-size:12px;color:var(--ink3);margin-top:8px}

/* ---- 对话：对照视图 ---- */
.cv{display:flex;flex-direction:column;min-height:100%}
.cv-head{padding:16px 28px 0;background:var(--paper)}
.cv-head .row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.cv-head .eyebrow{font-size:12px;color:var(--ink3);letter-spacing:.06em}.cv-head h1{font-size:21px;font-weight:650;letter-spacing:-.3px;line-height:1.3;margin:2px 0 0}
.cv-head .chips{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;font-size:12px;color:var(--ink2);align-items:center}.chip{font-size:12px;padding:2px 8px;border:1px solid var(--line);border-radius:3px;background:var(--card);color:var(--ink2)}
.stages{display:grid;grid-template-columns:repeat(5,1fr);margin:14px 0 0;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--card)}
.st{padding:8px 14px;border-right:1px solid var(--line);position:relative}.st:last-child{border-right:0}.st .n{font-family:var(--mono);font-size:11px;color:var(--ink3)}.st b{display:block;font-size:13px;font-weight:600}.st small{display:block;font-size:11px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st.done{background:var(--ok-bg)}.st.done .n{color:var(--ok)}.st.on{background:var(--g0);color:#fff;border-color:var(--g0)}.st.on .n{color:#E0A96A}.st.on small{color:var(--gtext)}.st.run{background:#E5EDF5}.st.run .n{color:var(--run)}
.cv-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);flex:1;min-height:0;border-top:1px solid var(--line);margin-top:14px}
.cv-left{border-right:1px solid var(--line);padding:18px 28px 28px;background:var(--soft);overflow:auto}.cv-right{padding:18px 28px 28px;background:var(--card);overflow:auto}
.cv h3{font-size:11px;letter-spacing:.12em;color:var(--ink3);font-weight:600;margin:0 0 10px}.cv h3 .r{float:right;font-weight:500;letter-spacing:0;font-family:var(--mono)}
.src{font-size:15px;line-height:2.1;overflow-wrap:anywhere}.src .loc{font-family:var(--mono);font-size:11px;color:var(--ink3);margin-right:8px;user-select:none}
.src mark{background:none;padding:2px 0;border-bottom:2px solid;cursor:pointer;color:inherit}.src mark.ok{border-color:var(--ok);background:var(--ok-bg)}.src mark.ask{border-color:var(--ask);background:var(--ask-bg)}.src mark.stop{border-color:var(--stop);background:var(--stop-bg)}.src mark.base{border-bottom:1px dotted var(--ink3);background:none}.src mark.done{opacity:.55}
.src mark.sel{outline:2px solid var(--ink);outline-offset:2px}.src mark sup{font-family:var(--mono);font-size:10px;color:var(--ink3);margin-left:2px}
.legend{margin-top:14px;font-size:11.5px;color:var(--ink2);line-height:1.8}.legend i{display:inline-block;width:9px;height:9px;margin:0 4px 0 10px;vertical-align:-1px}
.turns{margin-top:22px}.turns .t{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:8px 0;border-top:1px solid var(--line2);font-size:13px}.turns .t .who{font-family:var(--mono);font-size:11px;color:var(--ink3);line-height:1.5}.turns .t .who b{display:block;font-family:inherit;color:var(--ink2);font-weight:600}.turns .t p{color:var(--ink);white-space:pre-wrap}.turns .t.agent p{color:var(--ink2)}
.focus{border:1px solid var(--ink);padding:12px 14px;margin-bottom:16px;background:var(--card)}.focus .k{display:block;margin-bottom:4px}.focus b.title{font-size:15px;display:block}.focus p{color:var(--ink2);font-size:12.5px;margin-top:4px;line-height:1.6}.focus .act{margin-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.focus input,.focus select{width:auto;min-width:240px;font-size:13px;padding:6px 8px;min-height:0}.focus .basis{font-size:12px;color:var(--ink3);margin-top:6px}
.focus ul.places{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--ink2)}.focus ul.places li{margin:3px 0}
.rows{font-size:13px}.row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;padding:7px 0;border-bottom:1px solid var(--line2);align-items:center;cursor:pointer}.row:hover{background:var(--soft)}.row.sel{background:var(--soft)}.row code{color:var(--ink3);font-size:11px}.row .ttl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .ttl .k{margin-right:6px}.row.done .ttl{color:var(--ink3)}
.diff{margin-top:18px;font-size:12.5px}.diff div{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid var(--line2)}.diff s{color:var(--ink3)}.diff code{color:var(--ink3);font-size:11px}
.think{margin-top:18px;font-size:12.5px}.think summary{color:var(--ink2);cursor:pointer}.trace{list-style:none;padding:8px 0 0;margin:0}.trace li{padding:2px 0;color:var(--ink2);font-family:var(--mono);font-size:11.5px;overflow-wrap:anywhere}.trace li.no{color:var(--stop)}.trace li.no small{display:block;color:var(--stop);font-family:inherit}
.think ol{margin:8px 0 0;padding-left:18px;color:var(--ink2);font-size:12px}
.working{border:1px dashed var(--line);border-radius:3px;padding:12px 14px;background:var(--card);margin-bottom:16px;font-size:13px}.working .ph{font-weight:600}.working .fine{margin:4px 0 0}.working ol{margin:8px 0 0;padding-left:18px;color:var(--ink2);font-size:12px;font-family:var(--mono)}
.cv-bar{position:sticky;bottom:0;border-top:1px solid var(--line);padding:10px 28px;display:flex;gap:10px;align-items:center;background:var(--card);z-index:2}.cv-bar form{display:contents}.cv-bar textarea{flex:1;font-size:13px;min-height:38px;max-height:120px;resize:vertical;padding:8px 10px}.cv-bar .hint{font-size:11px;color:var(--ink3);white-space:nowrap}
.warning-text{color:var(--stop)}
@media (max-width:1100px){.cv-body{grid-template-columns:1fr}.cv-left{border-right:0;border-bottom:1px solid var(--line)}.app{grid-template-columns:200px minmax(0,1fr)}}
@media (max-width:820px){.app{grid-template-columns:minmax(0,1fr)}.side{display:none}.stages{grid-template-columns:repeat(5,minmax(0,1fr))}.st small{display:none}}
.sw{display:inline-block;width:9px;height:9px;margin:0 4px 0 10px;vertical-align:-1px}.sw.ok{background:var(--ok)}.sw.ask{background:var(--ask)}.sw.stop{background:var(--stop)}
.diff .label{margin-top:6px}
.cv-bar textarea{height:40px;min-height:40px}

.entry.wide{max-width:1180px}.entry-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:18px;align-items:start}
.finder h3{font-size:11px;letter-spacing:.12em;color:var(--ink3);font-weight:600;margin:0 0 10px}.finder h3 .r{float:right;font-family:var(--mono);letter-spacing:0;font-weight:500}
.finder-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}.finder-form input{grid-column:1/-1}.finder-form select{min-height:34px;padding:5px 8px;font-size:13px}
.finder-table{font-size:12.5px}.finder-table th{padding:6px 8px;font-size:11px}.finder-table td{padding:6px 8px;border-bottom:1px solid var(--line2)}.finder-table tr.sel td{background:var(--cu-soft)}.finder-table code{font-size:12px}
@media (max-width:900px){.entry-grid{grid-template-columns:1fr}}
.finder-table code{white-space:nowrap}.finder-table td{vertical-align:top}
