/* 还没到的货（控制台内页，app/awaiting.py）。颜色只用 tokens.css 已定义变量、不写裸 hex（UI 门禁）。 */
/* display:flex 的块会盖掉 hidden 属性（工厂待办 9-27 踩过），全页兜底 */
[hidden] { display: none !important; }
.aw-app { max-width: 1400px; margin: 0 auto; padding: 20px 16px 48px; }
.aw-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.aw-head h1 { margin: 0 0 6px; font-size: 22px; color: var(--ink); }
.aw-head p { margin: 0; max-width: 820px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.aw-goto { display: flex; align-items: center; gap: 12px; }
.aw-btn { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 5px 12px; font-size: 13px; cursor: pointer; white-space: nowrap; }
.aw-btn:hover { background: var(--surface-hover); }
.aw-link { color: var(--accent); font-size: 13px; text-decoration: underline; text-underline-offset: 2px; }

.aw-filters { margin: 12px 0 6px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); display: grid; gap: 8px; }
.aw-frow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.aw-flabel { flex: 0 0 40px; font-size: 13px; color: var(--muted); }
.aw-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.aw-chips button { border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); border-radius: 999px; padding: 4px 12px; font-size: 13px; cursor: pointer; }
.aw-chips button:hover { background: var(--surface-hover); }
.aw-chips button.on { background: var(--accent); border-color: var(--accent); color: var(--text-on-accent); }
.aw-chips button small { opacity: .75; margin-left: 4px; }
#aw-q { border: 1px solid var(--border-control); border-radius: 8px; padding: 6px 10px; font-size: 13px; min-width: 240px; background: var(--surface); color: var(--ink); margin-left: auto; }
.aw-msg { color: var(--muted); font-size: 14px; padding: 16px 4px; }
.aw-msg.err { color: var(--danger-fg); }

/* 一块：标题一行（几张 + 这块怎么算），下面一张表。标题左边一条色带分轻重 */
.aw-sec { margin-top: 18px; }
.aw-sec-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding: 6px 10px; border-left: 4px solid var(--border-strong); background: var(--surface-sunken); border-radius: 0 8px 8px 0; }
.aw-sec-head h2 { margin: 0; font-size: 16px; color: var(--ink); white-space: nowrap; }
.aw-sec-head h2 b { margin-left: 6px; }
.aw-sec-head p { margin: 0; font-size: 12px; color: var(--muted); line-height: 1.6; flex: 1 1 360px; }
.aw-sec.late .aw-sec-head { border-left-color: var(--danger-fg); background: var(--danger-bg); }
.aw-sec.late h2 b { color: var(--danger-fg); }
.aw-sec.soon .aw-sec-head { border-left-color: var(--warning-fg); background: var(--warning-bg); }
.aw-sec.soon h2 b { color: var(--warning-fg); }
.aw-sec.shipped .aw-sec-head { border-left-color: var(--info-fg); background: var(--info-bg); }
.aw-sec.shipped h2 b { color: var(--info-fg); }
.aw-sec details > summary { cursor: pointer; list-style: none; }
.aw-sec details > summary::-webkit-details-marker { display: none; }
.aw-sec details > summary h2::after { content: "  ▸ 点开"; font-size: 12px; font-weight: 400; color: var(--muted); }
.aw-sec details[open] > summary h2::after { content: "  ▾ 收起"; }
.aw-empty { margin: 6px 12px; font-size: 13px; color: var(--muted); }

/* 表：定宽、一格一行、放不下「…」、悬停看全文；表头 sticky（祖先不能有 overflow）。圆角由四角单元格画 */
.aw-table { width: 100%; min-width: 760px; margin-top: 6px; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 13px; color: var(--ink-2); background: var(--surface); }
.aw-table th { position: sticky; top: 0; z-index: 2; background: var(--surface-sunken); color: var(--muted); font-weight: 600; font-size: 12px; text-align: left;
  padding: 6px 8px; border-bottom: 1px solid var(--border); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aw-table td { padding: 0 8px; height: 38px; border-bottom: 1px solid var(--border-subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.aw-table tbody tr:hover td { background: var(--surface-hover); }
/* 工厂一行：名字 + 群 + 跟单 + 复制按钮，下面是这家的几张单 */
.aw-table tr.fac td { height: 40px; background: var(--surface-sunken); border-top: 2px solid var(--border); font-weight: 600; color: var(--ink); font-size: 14px; }
.aw-table tr.fac:first-child td { border-top: 0; }
.aw-table tr.fac:hover td { background: var(--surface-sunken); }
/* 订单行挂在工厂下面：第一格往里缩，左边一条竖线（用户 9-29 截图：「一个工厂多单的情况，下面就往后缩，就知道他可能是多单」） */
.aw-table tr.child td:first-child { padding-left: 30px;
  background-image: linear-gradient(var(--border-strong), var(--border-strong)); background-repeat: no-repeat; background-size: 2px 100%; background-position: 16px 0; }
.aw-table tr.child td.ck { padding-left: 24px; }
.aw-fac .nm { margin-left: 0; }
.aw-count { flex: 0 0 auto; font-size: 12px; font-weight: 500; color: var(--muted); }
.aw-count.multi { color: var(--accent-soft-fg); background: var(--accent-soft-bg); border: 1px solid var(--accent-soft-border); border-radius: 999px; padding: 0 8px; }
.aw-fac { display: flex; align-items: center; gap: 10px; min-width: 0; }
.aw-fac .nm { overflow: hidden; text-overflow: ellipsis; }
.aw-fac small { font-weight: 400; color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; }
.aw-fac .aw-btn { margin-left: auto; padding: 2px 10px; font-size: 12px; font-weight: 400; }
.aw-fac .aw-btn.ok { color: var(--success-fg); border-color: var(--success-border); }
.aw-table td.pi { font-family: var(--font-mono); color: var(--ink); }
.aw-tag { display: inline-block; margin-left: 6px; border-radius: 4px; padding: 0 5px; font-size: 11px; font-family: var(--font-sans); color: var(--neutral-fg); background: var(--neutral-bg); border: 1px solid var(--neutral-border); }
.aw-img { width: 30px; height: 30px; object-fit: contain; border-radius: 4px; background: var(--surface-sunken); vertical-align: middle; }
.aw-model { color: var(--muted); font-size: 12px; margin-left: 6px; }
.aw-more { color: var(--muted); font-size: 12px; }
.aw-late { font-weight: 600; }
.aw-late.bad { color: var(--danger-fg); }
.aw-late.near { color: var(--warning-fg); }
.aw-late.calm { color: var(--muted); font-weight: 400; }
.aw-note { color: var(--ink-2); }
.aw-claim { color: var(--info-fg); }
.aw-claim.unsure { color: var(--muted); }
/* 快递轨迹（app/express_track.py） */
.aw-exp { display: inline-block; padding: 0 6px; border-radius: 9px; font-size: 12px; line-height: 18px; border: 1px solid var(--neutral-border); color: var(--text-muted); background: var(--neutral-bg); }
.aw-exp.good { color: var(--success-fg); background: var(--success-bg); border-color: var(--success-border); }
.aw-exp.info { color: var(--info-fg); background: var(--info-bg); border-color: var(--info-border); }
.aw-exp.warn { color: var(--warning-fg); background: var(--warning-bg); border-color: var(--warning-border); font-weight: 600; }
.aw-exp.bad { color: var(--danger-fg); background: var(--danger-bg); border-color: var(--danger-border); }
.aw-sec.claimed .aw-sec-head { border-left-color: var(--success-fg); background: var(--success-bg); }
.aw-sec.claimed h2 b { color: var(--success-fg); }
.aw-table td .aw-link { font-size: 12px; }
.dot { color: var(--muted); }

.aw-src { margin: 22px 2px 0; font-size: 12px; color: var(--muted); line-height: 1.7; }
.aw-src summary { cursor: pointer; }
.aw-src p { margin: 4px 0; }

@media (max-width: 760px) {
  #aw-q { min-width: 0; width: 100%; margin-left: 0; }
}

/* 第二轮：勾选发工厂催、为什么还没到、排序 */
.aw-readonly { margin: 6px 2px; font-size: 13px; color: var(--muted); }
.aw-table td.ck, .aw-table th:first-child { text-align: center; }
.aw-table td.ck { padding: 0; }
.aw-table tbody tr.on td { background: var(--info-bg); }
.aw-fac input[type=checkbox] { margin: 0; flex: 0 0 auto; }
.aw-table td.fac-cell { color: var(--ink); }
.aw-due { display: inline-block; border-radius: 4px; padding: 0 5px; font-size: 11px; font-weight: 600; color: var(--danger-fg); background: var(--danger-bg); border: 1px solid var(--danger-border); }
.aw-topic { color: var(--warning-fg); }
.aw-chase { color: var(--muted); }
.aw-chase.none { color: var(--warning-fg); }
.aw-sec-head .aw-btn { margin-left: auto; padding: 2px 10px; font-size: 12px; }
.aw-btn.primary { background: var(--accent); border-color: var(--accent); color: var(--text-on-accent); }
.aw-btn.primary:hover { background: var(--accent-hover); }
.aw-bar { position: sticky; bottom: 12px; z-index: 5; margin: 16px auto 0; max-width: 560px; display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; background: var(--surface); border: 1px solid var(--border-strong); border-radius: 12px; box-shadow: var(--shadow-2); font-size: 14px; color: var(--ink); }
.aw-bar #aw-clear { margin-left: auto; }
.aw-bar .primary { padding: 7px 16px; font-size: 14px; }
.aw-modal { position: fixed; inset: 0; z-index: 30; background: var(--overlay); display: flex; align-items: center; justify-content: center; padding: 16px; }
.aw-dialog { background: var(--surface); border-radius: 12px; width: min(640px, 100%); max-height: calc(100vh - 32px); overflow: auto; padding: 16px 18px; }
.aw-dialog h2 { margin: 0 0 6px; font-size: 18px; color: var(--ink); }
.aw-note-p { font-size: 13px; color: var(--muted); line-height: 1.6; margin: 0; }
.aw-sendlist { margin-top: 10px; border: 1px solid var(--border); border-radius: 8px; }
.aw-sendlist details { border-top: 1px solid var(--border-subtle); padding: 8px 10px; }
.aw-sendlist details:first-child { border-top: 0; }
.aw-sendlist summary { cursor: pointer; font-size: 13px; color: var(--ink); }
.aw-sendlist pre { white-space: pre-wrap; font-family: inherit; font-size: 13px; line-height: 1.6; background: var(--surface-sunken); border-radius: 6px; padding: 8px 10px; margin: 6px 0 0; color: var(--ink-2); }
.aw-skip { margin-top: 10px; font-size: 13px; color: var(--ink-2); background: var(--neutral-bg); border-radius: 8px; padding: 8px 10px; line-height: 1.7; }
.aw-skip-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 3px 0; }
.aw-skip-row .aw-btn { flex: 0 0 auto; padding: 3px 10px; font-size: 12px; }
.aw-dialog-acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.aw-warn { color: var(--warning-fg); background: var(--warning-bg); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.aw-bar-hint { flex-basis: 100%; text-align: right; font-size: 12px; color: var(--muted); margin-top: -4px; }
.aw-bar { flex-wrap: wrap; }
.aw-stage { display: inline-block; margin: 0 0 6px; font-size: 12px; font-weight: 600; color: var(--info-fg); background: var(--info-bg); border: 1px solid var(--info-border); border-radius: 999px; padding: 1px 10px; }
.aw-send1 { border-top: 1px solid var(--border-subtle); padding: 10px 12px; }
.aw-send1:first-child { border-top: 0; }
.aw-send1-head { font-size: 14px; color: var(--ink); }
.aw-send1-picks { margin-top: 2px; font-size: 12px; color: var(--info-fg); }
.aw-send1 pre { white-space: pre-wrap; word-break: break-all; font-family: inherit; font-size: 13px; line-height: 1.6; background: var(--surface-sunken); border-radius: 6px; padding: 8px 10px; margin: 6px 0 0; color: var(--ink-2); }
.aw-send1 pre a { color: var(--accent); }
.aw-after { margin-top: 10px; }
.aw-table td.im { padding: 0 4px; text-overflow: clip; }

/* 右侧详情（点一张单）。顶栏 sticky；z-index 高过表头和底栏 */
.aw-table tbody tr[data-id] { cursor: pointer; }
.aw-table tbody tr.cur td { background: var(--info-bg); }
.aw-table tbody tr.cur td:first-child { box-shadow: inset 3px 0 0 var(--info-fg); }
.aw-panel { position: fixed; top: 0; right: 0; bottom: 0; width: min(440px, 100vw); z-index: 20; background: var(--surface);
  border-left: 1px solid var(--border-strong); box-shadow: var(--shadow-3); overflow-y: auto; }
.aw-panel-top { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px;
  padding: 12px 14px; background: var(--surface); border-bottom: 1px solid var(--border); }
.aw-panel-top b { font-family: var(--font-mono); font-size: 16px; color: var(--ink); }
.aw-panel-sub { margin-top: 2px; font-size: 13px; color: var(--muted); }
.aw-x { border: 0; background: none; font-size: 22px; line-height: 1; color: var(--muted); cursor: pointer; padding: 0 4px; }
.aw-x:hover { color: var(--ink); }
.aw-panel-body { padding: 12px 14px 24px; font-size: 13px; color: var(--ink-2); line-height: 1.6; }
.aw-panel-body h3 { margin: 16px 0 6px; font-size: 13px; color: var(--muted); font-weight: 600; }
.aw-hl { border-radius: 10px; padding: 10px 12px; background: var(--surface-sunken); border-left: 4px solid var(--border-strong); }
.aw-hl .big { font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.5; }
.aw-hl .sub { margin-top: 2px; font-size: 12px; color: var(--muted); }
.aw-hl.bad { background: var(--danger-bg); border-left-color: var(--danger-fg); }
.aw-hl.info { background: var(--info-bg); border-left-color: var(--info-fg); }
.aw-hl.ok { background: var(--success-bg); border-left-color: var(--success-fg); }
.aw-kv { margin-top: 8px; }
.aw-kv span { display: inline-block; min-width: 64px; margin-right: 6px; color: var(--muted); }
.aw-kv span:not(:first-child) { margin-left: 12px; min-width: 0; }
.aw-item { border: 1px solid var(--border-subtle); border-radius: 8px; padding: 8px 10px; margin-top: 6px; }
.aw-item-head { font-size: 12px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.aw-item-title { margin-top: 2px; color: var(--ink); font-weight: 600; }
.aw-quote { margin-top: 2px; color: var(--ink); }
.aw-item-foot { margin-top: 2px; font-size: 12px; color: var(--muted); }
.aw-wx { margin-left: auto; font-size: 12px; color: var(--accent); white-space: nowrap; }
.aw-more-d summary { cursor: pointer; font-size: 12px; color: var(--muted); margin-top: 2px; }
.aw-more-d p { margin: 4px 0 0; }
.aw-none { color: var(--muted); margin: 4px 0; }
.aw-line { margin: 4px 0; }
.aw-prods { display: grid; gap: 6px; }
.aw-prod { display: flex; align-items: center; gap: 8px; }
.aw-prod .aw-img { flex: 0 0 auto; width: 40px; height: 40px; }
.aw-panel-acts { position: sticky; bottom: 0; display: flex; gap: 8px; margin: 18px -14px -24px; padding: 10px 14px; background: var(--surface); border-top: 1px solid var(--border); }
.aw-panel-acts .aw-btn { text-decoration: none; }
/* 面板开着：宽屏时左边内容让出面板的宽度（底栏、右边几列不被挡）；窄屏就盖在上面 */
@media (min-width: 1750px) { body.panel-open { padding-right: 440px; } }   /* 合并后列多了：够宽才让位，不然盖在上面 */
.aw-hl .sub { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.aw-hl .aw-wx { font-size: 13px; font-weight: 600; }
/* 一家只有一张单：一行写完，工厂名加粗；和上一家之间一条稍粗的线 */
.aw-table tr.solo td { border-top: 2px solid var(--border); }
.aw-table tr.solo td.fac-cell { font-weight: 600; }
.aw-table tr.solo td.ck { padding-left: 0; }
/* 详情：出货到货以外的都弱化（用户 9-29 截图） */
.aw-item.lite { border-color: var(--border-subtle); background: var(--surface); }
.aw-item.lite .aw-item-title { font-weight: 500; }
.aw-weak { margin-top: 18px; padding-top: 10px; border-top: 1px dashed var(--border); font-size: 12px; color: var(--muted); }
.aw-weak .aw-kv { margin-top: 4px; }
.aw-weak .aw-kv span { min-width: 72px; }
.aw-weak .aw-prod .aw-img { width: 28px; height: 28px; }
.aw-weak .aw-model { font-size: 11px; }
.aw-other summary { cursor: pointer; margin-bottom: 6px; }
.aw-other .aw-item { font-size: 12px; }
.aw-pay { font-style: normal; }

/* 2026-09-30 合并「没发货的单」：三大块、跳转按钮、交货日期格、急单 / 大单小块、今天做、跟过了按钮 */
.aw-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 2px; }
.aw-jumpb { border: 1px solid var(--border); background: var(--surface); color: var(--ink-2); border-radius: 999px; padding: 5px 14px; font-size: 13px; cursor: pointer; }
.aw-jumpb:hover { background: var(--surface-hover); }
.aw-jumpb b { font-size: 16px; margin: 0 2px; color: var(--ink); }
.aw-jumpb.unsent b { color: var(--danger-fg); }
.aw-jumpb.sent b { color: var(--info-fg); }
.aw-jumpb.direct b { color: var(--warning-fg); }
.aw-blk { margin-top: 26px; scroll-margin-top: 8px; }
.aw-blk-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; padding: 8px 0 4px; border-bottom: 2px solid var(--border-strong); }
.aw-blk-head h2 { margin: 0; font-size: 19px; color: var(--ink); }
.aw-blk-head h2 b { margin-left: 8px; font-size: 15px; }
.aw-blk-head p { margin: 0; font-size: 12px; color: var(--muted); flex: 1 1 360px; }
.aw-blk.unsent .aw-blk-head { border-bottom-color: var(--danger-fg); }
.aw-blk.unsent .aw-blk-head h2 b { color: var(--danger-fg); }
.aw-blk.sent .aw-blk-head { border-bottom-color: var(--info-fg); }
.aw-blk.sent .aw-blk-head h2 b { color: var(--info-fg); }
.aw-blk.direct .aw-blk-head { border-bottom-color: var(--warning-fg); }
.aw-blk.direct .aw-blk-head h2 b { color: var(--warning-fg); }
.aw-sec.noeta .aw-sec-head { border-left-color: var(--warning-fg); }
.aw-hot { font-style: normal; font-size: 12px; font-weight: 600; color: var(--danger-fg); margin-left: 8px; }
.aw-eta { font-weight: 600; color: var(--ink); }
.aw-eta.none { font-weight: 400; color: var(--warning-fg); }
.aw-got { color: var(--success-fg); font-weight: 600; }
.aw-why { color: var(--ink); }
.aw-todo { color: var(--ink-2); }
.aw-table td.num, .aw-table th.num { text-align: right; }
.aw-pill { display: inline-block; margin-right: 5px; border-radius: 4px; padding: 0 5px; font-size: 11px; font-weight: 700; line-height: 17px; font-family: var(--font-sans); color: var(--text-on-accent); vertical-align: 1px; }
.aw-pill.rush { background: var(--danger-fg); }
.aw-pill.big { background: var(--ink); }
.aw-table tbody tr.lv-now td:first-child { box-shadow: inset 4px 0 0 var(--danger-fg); }
.aw-table tbody tr.lv-rush td:first-child { box-shadow: inset 4px 0 0 var(--danger-fg); }
.aw-table tbody tr.lv-big td:first-child { box-shadow: inset 4px 0 0 var(--ink); }
.aw-table tbody tr.done td { color: var(--muted); }
.aw-todo-list { margin: 0; padding-left: 18px; }
.aw-todo-list li { margin: 2px 0; }
.aw-marks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.aw-marks .aw-btn.on { color: var(--success-fg); border-color: var(--success-border); background: var(--success-bg); }
.aw-mark-log { margin: 4px 0 0; font-size: 12px; color: var(--muted); }
.aw-jumpb.old b { color: var(--muted); }
.aw-blk.old .aw-blk-head { border-bottom-color: var(--border-strong); }
.aw-blk.old .aw-blk-head h2 { color: var(--ink-2); font-size: 16px; }

/* 10-01 改版（老板：「信息太多……按状态把重要的重点显示，其他弱化、只留要点」） */
/* 「现在」一格：状态小块 + 一句大字 + 一句小字 */
.aw-bd { display: inline-block; margin-right: 6px; border-radius: 4px; padding: 0 6px; font-size: 12px; font-weight: 700; line-height: 20px; vertical-align: 1px;
  border: 1px solid var(--neutral-border); color: var(--neutral-fg); background: var(--neutral-bg); }
.aw-bd.arrived { border-color: var(--success-fg); background: var(--success-fg); color: var(--text-on-accent); }
.aw-bd.chase { border-color: var(--danger-solid); background: var(--danger-solid); color: var(--text-on-accent); }
.aw-bd.late { border-color: var(--danger-border); background: var(--danger-bg); color: var(--danger-fg); }
.aw-bd.transit { border-color: var(--info-border); background: var(--info-bg); color: var(--info-fg); }
.aw-bd.warn { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning-fg); }
.aw-now-main { font-weight: 600; color: var(--ink); }
.aw-now-sub { margin-left: 6px; font-size: 12px; color: var(--muted); }
.aw-now-sub.warn { color: var(--warning-fg); font-weight: 600; }
.aw-now-sub.bad { color: var(--danger-fg); font-weight: 600; }
/* 「要点」一格：淡、小 */
.aw-key { font-size: 12px; color: var(--muted); }
.aw-next { color: var(--ink-2); }
.aw-table td.num { color: var(--muted); }
.aw-table td.num b { color: var(--ink); }
/* 不用马上管的（交期还早、老单）整行淡 */
.aw-table tr.quiet td, .aw-table tr.quiet td.pi, .aw-table tr.quiet .aw-now-main { color: var(--muted); font-weight: 400; }
/* 新块：到了，还没登记收货 */
.aw-blk.arrived .aw-blk-head { border-bottom-color: var(--success-fg); }
.aw-blk.arrived .aw-blk-head h2 b { color: var(--success-fg); }
.aw-jumpb.arrived b { color: var(--success-fg); }
.aw-sec.landed .aw-sec-head { border-left-color: var(--success-fg); background: var(--success-bg); }
.aw-sec.landed h2 b { color: var(--success-fg); }
.aw-track { margin: 0 0 8px; padding: 8px 10px; font-size: 12px; line-height: 1.6; color: var(--ink-2); background: var(--surface-sunken); border-radius: 8px; }
.aw-track > b { display: block; color: var(--ink); }
.aw-track > div, .aw-track details div { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aw-track summary { cursor: pointer; color: var(--muted); }
.aw-track small { color: var(--muted); }

/* 答应客户哪天发（10-01，app/ship_promise.py）：右侧详情里填 */
.aw-promise-edit { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
.aw-promise-edit input[type="date"] { font: inherit; padding: 3px 6px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: var(--text-primary); }
.aw-promise-edit input[type="text"] { font: inherit; flex: 1 1 160px; min-width: 0; padding: 3px 8px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: var(--text-primary); }
.aw-promise-v { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.aw-promise-v b { color: var(--text-primary); }

/* 2026-10-04 老板：可视化——顶上一排数字卡（点了跳到那一块）、每行「走到哪」五个小点、交期 / 答应客户的到期牌、大块标题带图标。
   零件和颜色全站一套（shared/viz.css）；这里只管在这页怎么摆 */
#aw-kpis .sqv-kpis { margin: 12px 0 4px; }
#aw-kpis .sqv-kpi { flex-basis: 140px; }
/* 多了 92px 的「走到哪」：最小宽度跟着加（不然窄窗口里「产品」「要点」两列被挤成 0） */
.aw-table { min-width: 852px; }
.aw-table td.stp { padding: 0 6px; text-overflow: clip; }
.aw-table td.now .sqv-pill { margin-right: 6px; }
.aw-table td.now .aw-now-main + .sqv-pill { margin: 0 0 0 6px; }
.aw-blk-head .sqv-h { margin: 0; font-size: 19px; line-height: 1.4; }
.aw-blk-head .sqv-h em { margin-left: 2px; font-size: 15px; font-weight: 600; color: var(--ink); }
.aw-blk.arrived .aw-blk-head .sqv-h em, .aw-blk.arrived .sqv-h .sqv-ico { color: var(--success-fg); }
.aw-blk.arrived .sqv-h .sqv-ico { background: var(--success-bg); }
.aw-blk.unsent .aw-blk-head .sqv-h em { color: var(--danger-fg); }
.aw-blk.sent .aw-blk-head .sqv-h em { color: var(--info-fg); }
.aw-blk.direct .aw-blk-head .sqv-h em { color: var(--warning-fg); }
.aw-blk.old .aw-blk-head .sqv-h { font-size: 16px; color: var(--ink-2); }
.aw-blk.old .aw-blk-head .sqv-h em { color: var(--muted); }
.aw-blk.old .sqv-h .sqv-ico { background: var(--neutral-bg); color: var(--neutral-fg); }
/* 小块的说明最多两行，全文悬停看 */
.aw-sec-head p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aw-empty { display: flex; align-items: center; gap: 6px; }
.aw-empty .sqv-ico { color: var(--success-fg); }
.aw-sec.direct .sqv-empty { border: 1px dashed var(--border); border-radius: 10px; margin-top: 8px; }
/* 右侧详情：走到哪一步（带字的大号） */
.aw-stages { margin: 10px 0 2px; padding: 10px 4px 8px; border: 1px solid var(--border-subtle); border-radius: 10px; }
.aw-panel-body h3 .sqv-pill { margin-left: 6px; font-weight: var(--fw-medium); }
/* .aw-kv span 那条（标签宽 64px）别套到到期牌上 */
.aw-kv .sqv-pill { display: inline-flex; min-width: 0; margin: 0 0 0 4px; }
@media (max-width: 760px) {
  .aw-blk-head .sqv-h { font-size: 17px; }
}
