/* EES 设计规范 B(艾娃改良):墨绿 + 纸白,深色顶栏,状态三色(绿/琥珀/红)。全部页面只用这里的变量。见 docs/14_界面设计规范.md */
:root{
  --ink:#183d38;        /* 深墨绿:顶栏、标题 */
  --green:#176b59;      /* 主绿:主按钮、强调 */
  --green-soft:#dcefe4; /* 浅绿底:进行中/已完成标签、工具格 */
  --paper:#f4f6f1;      /* 页面底 */
  --card:#ffffff;       /* 卡片 */
  --line:#d9e1d8;       /* 边线 */
  --line-soft:#edf1ec;
  --fg:#172f2a;         /* 正文 */
  --muted:#5f6f69;      /* 次要文字 */
  --amber:#c7811a; --amber-soft:#fde9c3; --amber-ink:#7a4b00;   /* 待接单、提醒、待处理 */
  --red:#b9341f;   --red-soft:#fadcd6;   --red-ink:#8f2c1c;     /* 异常、错误、离线 */
  --violet-soft:#e6e3f2; --violet-ink:#4b3f8a;                   /* 已提交待审 */
  --font:"PingFang SC","HarmonyOS Sans SC","Noto Sans CJK SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --num:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r:10px; --r-lg:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--paper);color:var(--fg);line-height:1.5}
button,input,select,textarea{font:inherit}
button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9bba58;outline-offset:2px}
.num,.ees{font-family:var(--num);font-variant-numeric:tabular-nums}
.muted{color:var(--muted);font-size:12px}

/* 顶栏(深色) */
.ees-top{background:var(--ink);color:#f6f7f3;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px}
.ees-top h1{font-size:17px;font-weight:650}.ees-top h1 span{color:#9fd8c3}.ees-top small{font-size:11px;opacity:.8;margin-left:6px}
.ees-top .pill{font-size:11px;padding:3px 9px;border-radius:999px;background:#2a5a52;color:#d7efe4;white-space:nowrap}
.ees-top .pill.off{background:var(--red);color:#fff}.ees-top .pill.q{background:var(--amber);color:#1b1200}
.ees-top button{background:transparent;color:#f6f7f3;border:1px solid #3f6b63;border-radius:8px;padding:5px 10px;font-size:12px;min-height:32px}

/* 状态标签:统一三色 */
.st,.badge,.step{font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap;font-weight:600;background:var(--line-soft);color:var(--muted)}
.st.pending,.badge.pending,.step.pending,.st.assigned,.badge.assigned,.step.assigned{background:var(--amber-soft);color:var(--amber-ink)}
.st.accepted,.badge.accepted,.step.accepted{background:var(--green-soft);color:#0f5a46}
.st.done,.badge.done,.step.done{background:var(--green);color:#fff}
.st.submitted,.badge.submitted,.step.submitted{background:var(--violet-soft);color:var(--violet-ink)}
.st.rework,.badge.rework,.step.rework,.st.unassignable,.badge.unassignable,.step.unassignable,.st.err,.badge.err{background:var(--red-soft);color:var(--red-ink)}
.step.skipped,.badge.skipped{text-decoration:line-through}
.step.cancelled,.badge.cancelled{opacity:.6}

/* 卡片与面板 */
.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px}
.panel h2{font-size:14px;margin-bottom:8px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:6px}

/* 表单 */
input,select,textarea{width:100%;background:#fff;color:var(--fg);border:1.5px solid var(--line);border-radius:var(--r);padding:9px 10px;font-size:14px;min-height:40px}
textarea{min-height:64px}
input[type=checkbox],input[type=radio]{width:auto;min-height:0}

/* 按钮:主(绿)、次(白描边)、危险(红)、灰 */
.btn,button.b{background:var(--green);color:#fff;border:0;border-radius:var(--r);padding:11px 14px;font-size:14px;font-weight:650;min-height:44px}
button.b.sm,.btn.sm,button.sm{min-height:32px;padding:5px 10px;font-size:12px;font-weight:600}
button.gray,.btn.gray{background:#fff;color:var(--fg);border:1.5px solid var(--line)}
button.red,.btn.red{background:var(--red);color:#fff}
button.green,.btn.green{background:var(--green);color:#fff}
button:disabled{opacity:.5;cursor:not-allowed}

/* 提示块:指引(绿边)、交接(浅绿底)、缺项(琥珀边)、错误(红边) */
.guide{background:var(--card);border-left:4px solid var(--green);padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.6}
.handoff{background:#e6efe6;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.6}
.need{background:#fff4e2;border-left:4px solid var(--amber);padding:8px 12px;border-radius:8px;font-size:12px;color:#6b4408}
.alert{background:var(--red-soft);color:var(--red-ink);border-left:4px solid var(--red);border-radius:8px;padding:8px 10px;font-size:12px;display:flex;justify-content:space-between;gap:6px;align-items:center}

table{width:100%;border-collapse:collapse;font-size:12px}
th,td{text-align:left;padding:7px 4px;border-bottom:1px solid var(--line-soft);vertical-align:top}
th{color:var(--muted);font-weight:500}
dialog{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;max-width:720px;width:95vw;max-height:90vh;overflow:auto}
dialog::backdrop{background:rgba(24,61,56,.55)}
.tag{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--line-soft);color:var(--muted);margin-left:4px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
