/* ---------- 0 · 令牌 ---------- */
:root {
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
          "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", "Microsoft YaHei", sans-serif;
  --mono: "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --sans: var(--font);
  --red-text: #a90011;
  --blue-text: #0a6cff;

  /* 苹果系统色（浅色） */
  --blue:   #0071e3;  --blue-rgb:   0,113,227;
  --green:  #34c759;  --green-rgb:  52,199,89;
  --red:    #ff3b30;  --red-rgb:    255,59,48;
  --amber:  #ff9500;  --amber-rgb:  255,149,0;
  --indigo: #5856d6;  --indigo-rgb: 88,86,214;
  --violet: #bf5af2;  --violet-rgb: 191,90,242;
  --teal-rgb: 48,176,199;
  --tint:   #1b61c9;  --tint-rgb:   27,97,201;   /* 岗位色由 JS 覆写 */
  --tint-text: #164d9e;
  --amber-text: #743b00;
  --green-text: #12652b;

  --bg:    #f5f5f7;
  --card:  rgba(255, 255, 255, .94);
  --card-solid: #ffffff;
  --glass: rgba(255, 255, 255, .72);
  --ink:   #181d26;
  --ink-2: #3f4248;
  --ink-3: #57575c;
  --ink-4: #5b5e65;
  --muted: var(--ink-3);
  --crimson: var(--red-text);
  --sample: #00856f;
  --hair:   rgba(0, 0, 0, .075);
  --hair-2: rgba(24, 29, 38, .145);
  --fill:   rgba(24, 29, 38, .045);
  --fill-2: rgba(24, 29, 38, .075);
  --wire:   rgba(0, 0, 0, .15);
  --seg-thumb: #ffffff;
  --seg: #e3e3e8;
  --row-hover: #fbfbfd;
  --pass-bg: #1c1c1e;   /* 身份证票券恒定深色（Wallet 风） */

  --r-s: 10px; --r-m: 14px; --r-l: 18px; --r-xl: 24px;
  --sh-1: 0 1px 2px rgba(12, 18, 28, .04), 0 16px 44px rgba(15, 48, 106, .055);
  --sh-2: 0 1px 3px rgba(12, 18, 28, .05), 0 24px 64px rgba(15, 48, 106, .075);
  --sh-3: 0 4px 14px rgba(0,0,0,.12), 0 32px 80px rgba(0,0,0,.28);
  --sh-float: 0 18px 70px rgba(12, 18, 28, .16);
  --shadow-1: var(--sh-1);
  --pop:  cubic-bezier(.3, 1.35, .5, 1);
  --ease: cubic-bezier(.2, .8, .2, 1);
  --apple-blue: #0071e3; --apple-blue-rgb: 0,113,227;
  --apple-red: #ff3b30; --apple-orange: #ff9f0a; --apple-green: #34c759; --apple-purple: #5856d6;
  --airtable-blue: #1b61c9; --system-action: #1b61c9; --system-action-rgb: 27,97,201;
  --enterprise-surface: #f8fafc; --enterprise-border: #e0e2e6; --enterprise-navy: #181d26;
  --surface: #ffffff; --text-primary: var(--ink); --text-secondary: #57575c;
  --tap-min: 44px;
  --z-topbar: 240; --z-drawer: 300; --z-sheet: 340; --z-search: 380; --z-confirm: 420; --z-toast: 500;
  --orange: #ff9500; --purple: #bf5af2; --mint: #30b0a0; --cyan: #32ade6; --teal: #30b0c7;
  --fs-caption: 12px; --fs-meta: 13px; --fs-body: 15px; --fs-body-lg: 16px;
  --fs-title-sm: 18px; --fs-title: 22px; --fs-title-lg: 28px; --fs-display: clamp(34px, 3.6vw, 58px);
  --type-display: 40px; --type-title: 28px; --type-section: 20px; --type-body: 15px; --type-meta: 12px;
  --line-tight: 1.16; --line-body: 1.55;
  --elev-flat: none; --elev-card: var(--sh-1); --elev-raised: var(--sh-2); --elev-modal: var(--sh-float);
}

/* ---------- V91 · 单一语义全链：路线只负责定位，待办只负责执行 ---------- */
.v91-flow-section {
  padding: 26px 28px !important;
  background: #fff !important;
}

.flow-v91-wrap {
  display: grid;
  gap: 24px;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.flow-v91 {
  min-width: 0;
  padding: 0;
}

.flow-v91-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 14px 18px;
  border-bottom: 1px solid var(--hair-2);
}

.flow-v91-title {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.flow-v91-title > .mini-icon {
  position: static;
  inset: auto;
  width: 32px;
  height: 32px;
  margin: 0;
  transform: none;
  border-radius: 8px;
  overflow: hidden;
}

.flow-v91-title > .mini-icon .ic {
  width: 16px;
  height: 16px;
}

.flow-v91-title > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.flow-v91-title b {
  color: var(--ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
}

.flow-v91-title small {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  white-space: normal;
}

.flow-v91-score {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex: 0 0 auto;
}

.flow-v91-score b {
  color: var(--system-action);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.flow-v91-score b i {
  padding: 0 2px;
  color: var(--ink-4);
  font-size: 17px;
  font-style: normal;
  font-weight: 500;
}

.flow-v91-score small {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}

.flow-v91-rail-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  padding: 20px 8px 8px;
  scrollbar-width: thin;
  scrollbar-color: var(--hair) transparent;
  scroll-snap-type: x proximity;
  background:
    linear-gradient(90deg, var(--card, #fff) 36%, rgba(255, 255, 255, 0)) left / 26px 100% no-repeat local,
    linear-gradient(270deg, var(--card, #fff) 36%, rgba(255, 255, 255, 0)) right / 26px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(20, 20, 30, .16), transparent) left / 12px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(20, 20, 30, .16), transparent) right / 12px 100% no-repeat scroll;
}

.flow-v91-rail {
  --flow-stage-min: 188px;
  position: relative;
  display: grid;
  list-style: none;
  grid-template-columns: repeat(var(--flow-count), minmax(var(--flow-stage-min), 1fr));
  min-width: calc(var(--flow-count) * var(--flow-stage-min) + 16px);
  margin: 0;
  padding: 0 16px 0 0;
}

.flow-v91-item {
  position: relative;
  isolation: isolate;
  display: block;
  min-width: 0;
  padding: 0 6px;
}

.flow-v91-item::after {
  position: absolute;
  z-index: 0;
  top: 33px;
  left: 40px;
  right: -40px;
  height: 2px;
  border-radius: 2px;
  background: var(--hair);
  content: "";
  pointer-events: none;
}

.flow-v91-item:last-child::after {
  display: none;
}

.flow-v91-stage {
  position: relative;
  z-index: 1;
  width: 100%;
  display: grid;
  grid-template-rows: 44px minmax(0, 1fr);
  grid-template-columns: none;
  justify-items: start;
  row-gap: 7px;
  align-content: start;
  min-width: 0;
  min-height: 126px;
  margin: 0;
  padding: 10px 12px 12px;
  border: 1px solid var(--hair-2);
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 1px 2px rgba(12,18,28,.035);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  scroll-snap-align: start;
}

.flow-v91-stage.is-selected {
  border-color: #8fc3f7;
  border-radius: 14px;
  background: #edf5ff;
  box-shadow: 0 8px 22px rgba(10,132,255,.10), inset 0 0 0 1px rgba(10,132,255,.08);
}

.flow-v91-stage.is-selected:not(.is-current) .flow-v91-node {
  border-color: #5aa3ed;
  box-shadow: 0 0 0 5px #eaf4ff;
}

.flow-v91-stage:hover .flow-v91-copy b,
.flow-v91-stage:focus-visible .flow-v91-copy b {
  color: var(--system-action);
}

.flow-v91-stage:focus-visible {
  outline: 3px solid rgba(10, 132, 255, .22);
  outline-offset: 4px;
}

.flow-v91-node {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 2px solid #d7dbe1;
  border-radius: 50%;
  background: #fff;
  color: #8a9099;
  box-shadow: 0 0 0 5px #fff;
  font-size: 14px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.flow-v91-node .ic {
  width: 18px;
  height: 18px;
}

.flow-v91-stage.is-done .flow-v91-node {
  border-color: #2bbf67;
  background: #2bbf67;
  color: #fff;
}

.flow-v91-stage.is-current .flow-v91-node {
  border-color: #0878e5;
  background: #0878e5;
  color: #fff;
  box-shadow: 0 0 0 5px #e5f1ff;
}

.flow-v91-stage.is-parallel .flow-v91-node {
  border-color: #38a89d;
  color: #16877d;
  box-shadow: 0 0 0 5px #eaf8f5;
}

.flow-v91-stage.is-ready .flow-v91-node {
  border-color: #36a56a;
  color: #207d4d;
  box-shadow: 0 0 0 5px #edf8f1;
}

.flow-v91-copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding-top: 2px;
}

.flow-v91-copy b {
  overflow: visible;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.28;
  text-overflow: clip;
  white-space: normal;
  min-height: 38px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.flow-v91-copy small {
  overflow: visible;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  text-overflow: clip;
  white-space: normal;
}

.flow-v91-stage.is-current .flow-v91-copy b {
  color: #075eb7;
}

.flow-v91-stage.is-current .flow-v91-copy small {
  color: #0878e5;
  font-weight: 600;
}

.flow-v91-stage.is-parallel .flow-v91-copy small {
  color: #16877d;
}

.flow-v91-stage.is-ready .flow-v91-copy small {
  color: #207d4d;
  font-weight: 600;
}

.flow-v91-stage.is-future .flow-v91-copy b,
.flow-v91-stage.is-future .flow-v91-copy small {
  color: #9a9fa7;
}

.flow-v91-nav {
  display: grid;
  grid-template-columns: auto minmax(150px, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: min(100%, 560px);
  margin: 14px auto 0;
  padding: 0;
}

.flow-v91-pos {
  color: var(--ink-2, #6b6b70);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.flow-v91-rail-scroll:focus-visible {
  outline: 3px solid rgba(10, 132, 255, .28);
  outline-offset: 2px;
}

.flow-v93-stage-detail {
  scroll-margin-top: 22px;
  margin-top: 0;
  border-radius: 8px;
  box-shadow: 0 14px 36px rgba(15,23,42,.07), inset 0 1px 0 rgba(255,255,255,.96);
}

.flow-v93-stage-detail .dag-focus-kicker > .btn,
.flow-v93-stage-detail .flow-v93-stage-badge {
  margin-left: auto;
  flex: 0 0 auto;
}

.flow-v93-stage-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 11px;
  border-radius: 999px;
  color: #075eb7;
  background: #e9f3ff;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  white-space: nowrap;
}

.flow-v93-stage-badge .ic {
  width: 14px;
  height: 14px;
}

.flow-v93-stage-detail .dag-focus-list {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.flow-v93-stage-detail .dag-step {
  min-height: 64px;
  border-radius: 8px;
}

.flow-v93-stage-detail .ds-main b,
.flow-v93-stage-detail .ds-main small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.flow-v93-stage-detail .ds-main small {
  margin-top: 3px;
  line-height: 1.4;
}

.flow-v93-stage-detail .ds-state {
  white-space: nowrap;
}

.flow-v91-work {
  padding-top: 22px;
  border-top: 1px solid var(--hair-2);
}

.flow-v91-work-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 12px;
}

.flow-v91-work-head > div {
  display: grid;
  gap: 3px;
}

.flow-v91-work-head b {
  color: var(--ink);
  font-size: 20px;
  font-weight: 700;
}

.flow-v91-work-head small,
.flow-v91-work-meta span {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 500;
}

.flow-v91-work-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
}

.flow-v91-work-meta span + span {
  padding-left: 14px;
  border-left: 1px solid var(--hair);
  color: var(--ink-2);
  font-weight: 600;
}

.flow-v91-work-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
}

.flow-v91-work-grid.has-parallel {
  grid-template-columns: minmax(420px, 1.25fr) minmax(300px, .75fr);
}

.flow-v91-primary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-height: 96px;
  padding: 18px 20px;
  border: 1px solid #bedcff;
  border-left: 5px solid #0878e5;
  border-radius: 8px;
  background: #f2f7ff;
}

.flow-v91-primary.is-overdue {
  border-color: #f1d39a;
  border-left-color: #d88400;
  background: #fff9ed;
}

.flow-v91-primary.is-blocked {
  border-color: #ffc1c1;
  border-left-color: #dc2626;
  background: #fff5f5;
}

.flow-v91-priority {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: #0878e5;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.flow-v91-primary.is-overdue .flow-v91-priority {
  background: #d88400;
}

.flow-v91-primary.is-blocked .flow-v91-priority {
  background: #dc2626;
}

.flow-v91-primary-copy {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.flow-v91-primary-copy strong {
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
}

.flow-v91-primary-copy p {
  margin: 0;
  color: var(--ink-2);
  font-size: 14px;
  font-weight: 500;
}

.flow-v91-primary > .btn {
  min-height: 44px;
  padding-inline: 18px;
  white-space: nowrap;
}

.flow-v91-parallel {
  min-width: 0;
  padding: 2px 0 0 18px;
  border-left: 1px solid var(--hair);
}

.flow-v91-parallel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 2px 8px;
}

.flow-v91-parallel > header b {
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

.flow-v91-parallel > header span {
  color: #16877d;
  font-size: 12px;
  font-weight: 700;
}

.flow-v91-parallel-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-height: 42px;
  padding: 8px 2px;
  border: 0;
  border-top: 1px solid var(--hair-2);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.flow-v91-parallel-row > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.flow-v91-parallel-row b,
.flow-v91-parallel-row small,
.flow-v91-parallel-row em {
  overflow: hidden;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.flow-v91-parallel-row b {
  font-size: 14px;
  font-weight: 600;
}

.flow-v91-parallel-row small {
  color: var(--ink-3);
  font-size: 12px;
}

.flow-v91-parallel-row em {
  flex: 0 0 auto;
  color: #16877d;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}

.flow-v91-parallel-row.is-overdue em {
  color: #b86a00;
}

.flow-v91-parallel-row.is-blocked em {
  color: #c52222;
}

.flow-v91-waiting {
  margin-top: 14px;
  border-top: 1px solid var(--hair-2);
}

.flow-v91-waiting > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 48px;
  padding: 0 2px;
  color: var(--ink-2);
  cursor: pointer;
  list-style: none;
}

.flow-v91-waiting > summary::-webkit-details-marker {
  display: none;
}

.flow-v91-waiting > summary span {
  font-size: 14px;
  font-weight: 700;
}

.flow-v91-waiting > summary small {
  color: var(--ink-3);
  font-size: 12px;
}

.flow-v91-waiting > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
  padding-bottom: 8px;
}

.flow-v91-wait-row,
.flow-v91-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 44px;
  padding: 8px 2px;
  border: 0;
  border-top: 1px solid var(--hair-2);
  border-radius: 0;
  background: transparent;
  color: var(--ink-2);
  text-align: left;
  cursor: pointer;
}

.flow-v91-wait-row span {
  font-size: 14px;
  font-weight: 600;
}

.flow-v91-wait-row small {
  color: var(--ink-3);
  font-size: 12px;
}

.flow-v91-more {
  color: var(--system-action);
  font-size: 13px;
  font-weight: 600;
}

.flow-v91-empty {
  margin: 0;
  padding: 12px 2px;
  color: var(--ink-3);
  font-size: 13px;
}

.flow-v91-wrap > .dag-all-stages {
  margin-top: -6px;
}

@media (max-width: 980px) {
  .v91-flow-section {
    padding: 20px !important;
  }

  .flow-v91-work-grid.has-parallel {
    grid-template-columns: minmax(0, 1fr);
  }

  .flow-v91-parallel {
    padding: 0;
    border-left: 0;
  }
}

@media (max-width: 680px) {
  .v91-flow-section {
    padding: 16px !important;
  }

  .flow-v91-head {
    align-items: flex-start;
    gap: 14px;
  }

  .flow-v91-title b {
    font-size: 20px;
  }

  .flow-v91-title small {
    max-width: 220px;
  }

  .flow-v91-score {
    display: grid;
    gap: 2px;
    justify-items: end;
  }

  .flow-v91-score b {
    font-size: 22px;
  }

  .flow-v91-rail {
    --flow-stage-min: 166px;
  }

  .flow-v91-stage {
    grid-template-rows: 38px minmax(0, 1fr);
    grid-template-columns: none;
    min-height: 116px;
    padding: 9px 10px 11px;
  }

  .flow-v91-node {
    width: 38px;
    height: 38px;
  }

  .flow-v91-item::after {
    top: 28px;
    left: 35px;
    right: -35px;
  }

  .flow-v91-primary {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px;
  }

  .flow-v91-priority {
    justify-self: start;
  }

  .flow-v91-primary-copy strong {
    font-size: 22px;
  }

  .flow-v91-primary > .btn {
    width: 100%;
  }

  .flow-v91-work-head {
    align-items: flex-start;
  }

  .flow-v91-work-meta {
    display: grid;
    gap: 2px;
    justify-items: end;
  }

  .flow-v91-work-meta span {
    white-space: nowrap;
  }

  .flow-v91-work-meta span + span {
    padding-left: 0;
    border-left: 0;
  }

  .flow-v91-waiting > summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
    padding-block: 10px;
  }

  .flow-v91-waiting > div {
    grid-template-columns: 1fr;
  }

  .flow-v93-stage-detail .dag-focus-kicker {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .flow-v93-stage-detail .dag-focus-kicker > .btn,
  .flow-v93-stage-detail .flow-v93-stage-badge {
    width: 100%;
    margin-left: 0;
  }

  .flow-v93-stage-detail .dag-focus-list {
    grid-template-columns: 1fr;
  }
}

/* ---------- 1 · 基座 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  transition: background .4s var(--ease), color .3s var(--ease);
  overflow-x: visible;
}

h1, h2, h3, h4, h5, p { margin: 0; }
h1 { font-size: 24px; font-weight: 700; }
h2 { font-size: 19px; font-weight: 700; }
h3 { font-size: 15px; font-weight: 600; letter-spacing: 0; }
h4 { font-size: 13px; font-weight: 600; }
h5 { font-size: 12px; font-weight: 600; color: var(--ink-3); margin-top: 10px; }
small { font-size: 12px; color: var(--ink-2); }
.muted { color: var(--muted); }
button { min-width: var(--tap-min, 44px); min-height: var(--tap-min, 44px); box-sizing: border-box; font: inherit; color: inherit; border: 0; background: none; padding: 0; margin: 0; cursor: pointer; text-align: inherit; -webkit-tap-highlight-color: transparent; }
input, textarea { min-height: var(--tap-min, 44px); box-sizing: border-box; font: inherit; color: inherit; }
.num { font-family: var(--mono); font-variant-numeric: tabular-nums; letter-spacing: .01em; }
svg { display: inline-block; vertical-align: -2px; flex: none; }

::selection { background: rgba(var(--tint-rgb), .25); }
:focus:not(:focus-visible) { outline: none; }
:focus-visible { outline: 2px solid var(--tint-text, rgba(var(--tint-rgb), .8)); outline-offset: 2px; border-radius: 8px; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(120,120,128,.32); border-radius: 99px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

.app-shell { display: none; }
body.is-app .app-shell { display: block; min-height: 100vh; }
body.is-app .login-screen { display: none; }
.hide-m { display: initial; }

/* ---------- 2 · 图标 · 徽记 · 头像 · 环 ---------- */
.ic { width: 16px; height: 16px; }
.mini-icon { display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 7px; flex: none;
  color: #fff; background: var(--tint); }
.mini-icon .ic { width: 14px; height: 14px; }
.category-icon { width: 38px; height: 38px; border-radius: 9px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff; background: var(--tint); }
.category-icon .ic { width: 19px; height: 19px; }
.emblem { width: 36px; height: 36px; border-radius: 9px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff; background: var(--tint); }
.emblem .ic { width: 17px; height: 17px; }
.emblem.lg { width: 48px; height: 48px; border-radius: 12px; }
.emblem.lg .ic { width: 23px; height: 23px; }

.avatar { width: 28px; height: 28px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 600; color: #fff; background: var(--tint);
  box-shadow: 0 0 0 2px var(--card); }
.avatar.small { width: 22px; height: 22px; font-size: 11px; }
.people-stack { display: inline-flex; }
.people-stack .avatar + .avatar { margin-left: -7px; }

.ring { position: relative; width: var(--size, 72px); height: var(--size, 72px); border-radius: 50%; flex: none;
  background: conic-gradient(var(--ring, var(--tint)) calc(var(--pct) * 1%), rgba(var(--ring-rgb, var(--tint-rgb)), .16) 0);
  display: flex; align-items: center; justify-content: center; }
.ring::before { content: ""; position: absolute; top: 6px; right: 6px; bottom: 6px; left: 6px;
  border-radius: 50%; background: var(--card); }
.ring > span { position: relative; text-align: center; line-height: 1.05; }
.ring small { font-size: calc(var(--size, 72px) * .14); color: var(--ink-3); }

/* ---------- 3 · 胶囊 ---------- */
.chip { display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: 99px;
  font-size: 12px; font-weight: 500; line-height: 1.5; white-space: nowrap;
  color: var(--ink-2); background: var(--fill); }
.chip .ic { width: 12px; height: 12px; }
.chip.tint  { color: var(--tint-text, var(--tint)); background: rgba(var(--tint-rgb), .12); font-weight: 600; }
.chip.green { color: var(--green-text); background: rgba(var(--green-rgb), .13); font-weight: 600; }
.chip.amber { color: var(--amber-text); background: rgba(var(--amber-rgb), .15); font-weight: 600; }
.chip.red   { color: var(--red-text);   background: rgba(var(--red-rgb), .12); font-weight: 600; }
.chip.outline { background: transparent; box-shadow: inset 0 0 0 1px var(--hair); }
.chip.code { font-family: var(--mono); font-weight: 500; font-size: 12px; letter-spacing: 0;
  color: var(--ink); background: var(--fill); }
.chip.pick { cursor: pointer; padding: 6px 13px; font-size: 13px; font-weight: 600;
  transition: background .15s, color .15s, transform .15s var(--pop); }
.chip.pick:active { transform: scale(.96); }

.badge { min-width: 17px; height: 17px; padding: 0 5px; border-radius: 99px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; color: #fff; background: var(--red); }
.dot { width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--ink-3); }
.dot.green { background: var(--green); }
.dot.red { background: var(--red); animation: blink 1.5s infinite; }
@keyframes blink { 50% { opacity: .4; } }

/* ---------- 4 · 按钮（iOS 扁平体系） ---------- */
@media (pointer: coarse) {
  .btn, .btn.small, .btn.quiet, .gs-in, .doc-pill .btn, [data-action] { min-height: 45px; min-width: 44px; }
  .btn.small, .btn.quiet.small { padding-top: 10px; padding-bottom: 10px; }
}
.sim-watermark { background: color-mix(in srgb, var(--amber) 18%, transparent); border-color: var(--amber); color: var(--amber); font-weight: 600; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 8px 16px; border-radius: 10px;
  font-size: 14px; font-weight: 600; line-height: 1.25; white-space: nowrap;
  color: var(--tint); background: var(--fill);
  transition: filter .15s var(--ease), transform .12s var(--pop), background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease), box-shadow .18s var(--ease), opacity .15s var(--ease);
  -webkit-user-select: none; user-select: none; }
.btn:hover { filter: brightness(.965); }
.btn:active { transform: scale(.965); }
.btn[disabled], .btn:disabled { opacity: .45; pointer-events: none; }
.btn .ic { width: 15px; height: 15px; }
.btn.primary { color: #fff; background: var(--tint-text, var(--tint)); }
.btn.danger  { color: #fff; background: #b4232a; }
.btn.soft    { color: var(--tint-text, var(--tint)); background: rgba(var(--tint-rgb), .12); }
.btn.quiet   { color: var(--ink); background: transparent; box-shadow: inset 0 0 0 1px var(--hair); }
.btn.quiet:hover { background: var(--fill); filter: none; }
.btn.small { padding: 5px 11px; font-size: 13px; border-radius: 8px; }
.btn.small .ic { width: 13px; height: 13px; }
.btn.large { padding: 11px 22px; font-size: 15px; border-radius: 12px; }

/* ---------- 5 · 登录 ---------- */
.login-screen { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 44px 20px; }
.login-panel { width: 1080px; max-width: 100%; animation: rise .5s var(--ease) both; }
.login-title { text-align: center; margin-bottom: 30px; }
.login-title h1 { font-size: 32px; letter-spacing: 0; margin-top: 16px; }
.login-title p { color: var(--ink-2); font-size: 15px; margin-top: 6px; }
.brand-mark { width: 74px; height: 74px; margin: 0 auto; border-radius: 18px;
  display: flex; align-items: center; justify-content: center; color: #fff;
  background: linear-gradient(160deg, #0a84ff, #5e5ce6);
  box-shadow: 0 10px 28px rgba(10, 92, 255, .3); }
.brand-mark .ic { width: 36px; height: 36px; }
.login-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 14px; }

.identity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(226px, 1fr)); gap: 13px; }
.identity-card { min-width: 0; min-height: 236px; padding: 22px; border-radius: 28px; text-align: left;
  border: 1px solid rgba(0,0,0,.07);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.72));
  box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 20px 50px rgba(0,0,0,.08);
  display: grid; gap: 8px; align-content: start;
  transition: transform .22s var(--pop), box-shadow .22s var(--ease); }
.identity-card:hover { transform: translateY(-3px); box-shadow: 0 2px 5px rgba(0,0,0,.06), 0 32px 72px rgba(0,0,0,.12); }
.identity-card:active { transform: scale(.985); }
.identity-card h3 { font-size: 22px; line-height: 1.15; }
.identity-card p { font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.id-head { display: flex; align-items: center; justify-content: space-between; }
.id-head .avatar { width: 40px; height: 40px; font-size: 15px; }
.id-photo { width: 68px; height: 78px; border-radius: 22px; display: grid; place-items: center; align-content: center; gap: 4px; color: #fff; background:
  radial-gradient(circle at 50% 18%, rgba(255,255,255,.45), transparent 28%),
  linear-gradient(145deg, rgba(var(--tint-rgb), .94), rgba(var(--tint-rgb), .56));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 14px 32px rgba(var(--tint-rgb), .24);
  overflow: hidden; background-size: cover; background-position: center; }
.id-photo b { font: 900 30px/1 var(--sans); letter-spacing: 0; text-shadow: 0 1px 12px rgba(0,0,0,.16); }
.id-photo small { font: 800 11px/1 var(--sans); letter-spacing: 0; opacity: .92; }
.id-photo.has-photo b, .id-photo.has-photo small { display: none; }
.id-emblem { width: 28px; height: 28px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  color: var(--tint); background: rgba(var(--tint-rgb), .12); }
.id-emblem .ic { width: 14px; height: 14px; }
.role-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.load-line { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--ink-3); }
.id-eff { font-size: 12px; color: var(--ink-2); }
.identity-card.is-hot .load-fill { background: var(--red); }
.load-track { flex: 1; height: 5px; border-radius: 99px; overflow: hidden; background: var(--fill-2); min-width: 54px; }
.load-fill { display: block; height: 100%; width: var(--load, 0%); border-radius: 99px;
  background: var(--tint); transition: width .6s var(--ease); }

.login-note { margin-top: 28px; display: flex; align-items: center; justify-content: center; gap: 12px;
  color: var(--ink-3); font-size: 13px; flex-wrap: wrap; }
.ding-pill { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 99px;
  font-weight: 600; color: #fff; font-size: 13px; background: var(--blue); }

/* ---------- 6 · 顶栏（毛玻璃） ---------- */
.topbar { position: -webkit-sticky; position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; gap: 16px;
  padding: 9px clamp(14px, 3.5vw, 28px);
  background: var(--glass);
  -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px);
  box-shadow: 0 1px 0 var(--hair-2); }
.station-chip { display: flex; align-items: center; gap: 10px; min-width: 0; }
.station-chip b { font-size: 14px; display: block; line-height: 1.2; letter-spacing: 0; }
.station-chip small { color: var(--ink-3); font-size: 12px; display: block; }
.today-signal { flex: 1; text-align: center; font-size: 13px; color: var(--ink-2); min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-signal b { color: var(--ink); font-size: 14px; font-weight: 600; }
.today-signal .hot { color: var(--red-text); font-weight: 600; }
.top-actions { display: flex; align-items: center; gap: 7px; }
.user-chip { display: inline-flex; align-items: center; gap: 7px; padding: 3px 10px 3px 3px;
  border-radius: 99px; font-size: 13px; font-weight: 600; background: var(--fill); }

/* ---------- 7 · 版面 ---------- */
.workspace { max-width: 1240px; margin: 0 auto; padding: 20px clamp(14px, 3.5vw, 28px) 110px;
  animation: rise .45s var(--ease) both; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } }

.station-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px;
  margin: 8px 0 2px; flex-wrap: wrap; }
.station-title { display: flex; align-items: center; gap: 13px; }
.station-title p { color: var(--ink-2); font-size: 13px; margin-top: 2px; }
.head-actions { display: flex; gap: 8px; }

/* 分段控件（iOS Segmented Control） */
.role-tabs { display: inline-flex; gap: 2px; margin: 14px 0 2px; padding: 2px;
  border-radius: 9px; background: var(--fill-2); max-width: 100%; overflow-x: auto; }
.role-tabs button { display: inline-flex; align-items: center; gap: 6px; flex: none;
  padding: 6px 14px; border-radius: 7px; font-size: 13px; font-weight: 600; color: var(--ink-2);
  transition: color .18s, background .18s, box-shadow .18s; }
.role-tabs button.is-active { color: var(--ink); background: var(--seg-thumb);
  box-shadow: 0 1px 2.5px rgba(0,0,0,.14), 0 3px 8px rgba(0,0,0,.06); }
.role-tabs button .badge { min-width: 16px; height: 16px; font-size: 11px; }
.role-tabs .ic { width: 13px; height: 13px; }

.zone { margin-top: 26px; }
.zone-label { display: flex; align-items: center; gap: 8px; margin: 0 2px 10px;
  font-size: 12px; font-weight: 600; color: var(--ink-3); }
.zdot { width: 6px; height: 6px; border-radius: 50%; background: var(--tint); }
.zone-label .count { padding: 0 8px; border-radius: 99px; font-size: 12px; font-weight: 600;
  color: var(--tint-text, var(--tint)); background: rgba(var(--tint-rgb), .12); }
.command-grid { display: grid; grid-template-columns: minmax(320px, 5fr) minmax(360px, 7fr); gap: 20px; align-items: start; }

.fold-pill { color: var(--ink-2); display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px 6px 10px;
  font: 600 13px/1 var(--sans); background: var(--card); border: 1px solid var(--hair); border-radius: 99px;
  align-self: flex-start; width: fit-content; max-width: 100%; cursor: pointer;
  transition: color .15s, border-color .15s, background .15s; }
.fold-pill:hover { color: var(--tint-text, var(--ink)); border-color: rgba(var(--tint-rgb), .4); background: var(--card); }
.fold-pill.is-open { background: var(--fill); border-color: transparent; }
.fold-ic { display: inline-flex; transition: transform .25s var(--pop); }
.fold-pill.is-open .fold-ic { transform: rotate(180deg); }
.fold-body { display: none; margin-top: 11px; }
.card-grid > .fold-pill { grid-column: 1 / -1; justify-self: start; }
.card-grid > .fold-body { grid-column: 1 / -1; }
.fold-body.is-open { display: block; animation: rise .3s var(--ease) both; }

.empty-state { display: flex; align-items: center; gap: 13px; padding: 22px 20px;
  border-radius: var(--r-l); color: var(--ink-3); background: var(--fill); }
.empty-state .ic { width: 21px; height: 21px; color: var(--tint); }
.empty-state b { display: block; color: var(--ink-2); font-size: 14px; font-weight: 600; }
.empty-state span { font-size: 12px; }

/* ---------- 8 · SKU 卡 · 进度轨 ---------- */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 13px; }
.line-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }

.sku-card { position: relative; padding: 15px 16px 13px; border-radius: var(--r-l); overflow: hidden;
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1);
  display: grid; gap: 11px;
  transition: transform .2s var(--pop), box-shadow .22s var(--ease); }
.sku-card:hover { box-shadow: inset 0 0 0 1px var(--hair), var(--sh-2); }
.sku-card::before { content: ""; position: absolute; top: 14px; bottom: 14px; left: 0; width: 3px;
  border-radius: 0 3px 3px 0; background: var(--tint); opacity: .9; }
.sku-card.is-red::before { background: var(--red); }
.sku-card-head { display: flex; gap: 11px; align-items: flex-start; }
.sku-card-main { min-width: 0; display: grid; gap: 6px; flex: 1; }
.sku-card-main h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sku-codes, .sku-path { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.sku-current { display: flex; align-items: center; justify-content: space-between; gap: 9px;
  padding-top: 10px; box-shadow: 0 -1px 0 var(--hair-2); }
.cur-nodes { display: flex; flex-wrap: wrap; gap: 5px; min-width: 0; }
.cur-acts { display: flex; gap: 6px; flex: none; }


/* ---------- 9 · DAG 作战图 ---------- */
.dag-wrap { display: grid; gap: 10px; }
.dag-wrap.compact .dag-meta { display: none; }
.dag-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.dag-scroll { overflow-x: auto; padding: 10px 2px 14px; }
.dag-canvas { position: relative; }
.dag-wires { position: absolute; top: 0; left: 0; }
.wire { fill: none; stroke: rgba(142,142,147,.24); stroke-width: 2.2; }
.wire.done { stroke: rgba(var(--green-rgb), .84); stroke-width: 3.6; }
.wire.live { stroke: rgba(var(--apple-blue-rgb), .92); stroke-width: 4.2; filter: drop-shadow(0 0 5px rgba(var(--apple-blue-rgb), .22)); }
.wire.ready { stroke: rgba(var(--green-rgb), .42); stroke-width: 2.8; stroke-dasharray: 7 5; }
.wire.wait { stroke: rgba(142,142,147,.18); stroke-width: 2; }

.dag-node { position: absolute; display: flex; align-items: center; gap: 8px;
  padding: 0 14px; border-radius: 17px; text-align: left;
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair), var(--sh-1);
  transition: transform .16s var(--pop), box-shadow .2s var(--ease); }
.dag-node:hover { transform: translateY(-1px); z-index: 3; box-shadow: inset 0 0 0 1px var(--hair), var(--sh-2); }
.dn-ic { display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 12px; flex: none;
  color: var(--tint); background: rgba(var(--tint-rgb), .13); }
.dn-ic .ic { width: 18px; height: 18px; }
.dn-main { min-width: 0; line-height: 1.15; }
.dn-main b { display: block; font-size: 14px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; letter-spacing: 0; }
.dn-main small { display: block; margin-top: 3px; font-size: 11px; font-weight: 600; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dn-state { position: absolute; right: 10px; top: 8px; height: 20px; padding: 0 7px; border-radius: 99px; display: inline-flex; align-items: center; font-size: 11px; font-weight: 800; color: var(--ink-3); background: rgba(118,118,128,.10); }
.dag-node.active { z-index: 2; background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(var(--tint-rgb), .055)); box-shadow: inset 0 0 0 2px var(--tint), 0 0 0 7px rgba(var(--tint-rgb), .13), 0 18px 42px rgba(var(--tint-rgb), .18); }
.dag-node.active .dn-state { color: #fff; background: var(--tint); }
.dag-node.done .dn-ic { color: var(--green-text); background: rgba(var(--green-rgb), .16); }
.dag-node.done .dn-state { color: var(--green-text); background: rgba(var(--green-rgb), .13); }
.dag-node.blocked { box-shadow: inset 0 0 0 1.5px var(--red), 0 0 0 4px rgba(var(--red-rgb), .12), var(--sh-1); }
.dag-node.blocked .dn-ic { color: #fff; background: var(--red); }
.dag-node.blocked .dn-state { color: #fff; background: var(--red); }
.dn-badge { position: absolute; top: -6px; right: -6px; width: 17px; height: 17px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; background: var(--amber); box-shadow: 0 0 0 2px var(--card); }
.dn-badge .ic { width: 9.5px; height: 9.5px; }

/* ---------- 10 · 老板 · 指挥雷达 ---------- */
.bh-meta { display: grid; gap: 8px; min-width: 0; flex: 1;  grid-template-columns: minmax(0, 1fr); }
.bh-meta h2 { font-size: 19px; }
.bh-meta h2 b { font-size: 24px; }
.bh-meta p { color: var(--ink-2); font-size: 13px; }
.bh-meta .why { color: var(--ink-3); font-size: 13px; }

.decision-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 13px; }
.decision-card { position: relative; border-left: 3px solid var(--accent, rgba(var(--tint-rgb), .8)); overflow: hidden; padding: 15px 16px 13px; border-radius: var(--r-l);
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1);
  display: grid; gap: 8px; align-content: start;
  transition: box-shadow .2s var(--ease); animation: rise .4s var(--ease) both; }
.decision-card:hover { box-shadow: inset 0 0 0 1px var(--hair), var(--sh-2); }
.decision-card h3 { font-size: 15px; }
.decision-card p { font-size: 13px; color: var(--ink-2); }
.card-actions { display: flex; gap: 8px; margin-top: 3px; flex-wrap: wrap; }

.alert-list { display: grid; gap: 8px; }
.alert-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; padding: 12px 14px;
  width:100%; appearance:none; border:0; color:inherit; font:inherit; text-align:left; cursor:pointer;
  border-radius: var(--r-m); background: var(--card);
  box-shadow: inset 3px 0 0 var(--red), inset 0 0 0 1px var(--hair-2), var(--sh-1); }
.ar-main { flex: 1; min-width: 0; }
.ar-main b { display: block; font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ar-main small { color: var(--ink-3); }
.ar-meta { flex: none; }
.ar-acts { display: flex; gap: 6px; flex: none; flex-wrap: wrap; }

.load-panel, .heat-grid { display: grid; gap: 9px; }
.load-row { display: grid; grid-template-columns: minmax(96px, auto) auto 1fr auto auto;
  align-items: center; gap: 11px; padding: 11px 14px; border-radius: var(--r-m);
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); }
.lr-name { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 13px; }
.heat-card { padding: 14px 15px; border-radius: var(--r-l); background: var(--card);
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); display: grid; gap: 11px; }
.heat-head { display: flex; align-items: center; gap: 11px; }
.heat-head > div { flex: 1; min-width: 0; }
.heat-head p { font-size: 12px; color: var(--ink-3); }
.brand-lane { display: flex; flex-wrap: wrap; gap: 6px; }
.brand-cell { display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px;
  border-radius: 9px; font-size: 13px; font-weight: 500; background: var(--fill);
  transition: background .15s; }
.brand-cell:hover { background: var(--fill-2); }
.brand-cell.bad { box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .45); }
.brand-cell .num { color: var(--ink-3); font-size: 12px; }

/* ---------- 11 · 队列 / 等待 / 完成 ---------- */
.queue-list { display: grid; gap: 8px; }
.queue-row { display: flex; align-items: center; gap: 12px; padding: 11px 14px;
  border-radius: var(--r-m); background: var(--card);
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1);
  transition: box-shadow .18s var(--ease), transform .15s var(--pop); }
.queue-row:hover { box-shadow: inset 0 0 0 1px var(--hair), var(--sh-2); }
.queue-row:active { transform: scale(.99); }
.queue-row.is-red { box-shadow: inset 3px 0 0 var(--red), inset 0 0 0 1px var(--hair-2), var(--sh-1); }
.qr-main { flex: 1; min-width: 0; }
.qr-main b { display: block; font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qr-main small { color: var(--ink-3); font-family: var(--mono); font-size: 12px; }

.wait-row, .done-row { display: flex; align-items: center; gap: 11px; padding: 10px 13px;
  border-radius: var(--r-m); background: var(--fill); margin-bottom: 7px; }
.wait-row > div, .done-row > div { flex: 1; min-width: 0; }
.wait-row b, .done-row b { display: block; font-size: 13px; font-weight: 600; }
.wait-row small, .done-row small { color: var(--ink-3); }
.done-row > .ic { color: var(--green); width: 16px; height: 16px; }

/* ---------- 12 · 聚焦卡 ---------- */
.focus-card { border-radius: var(--r-xl); overflow: hidden;
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-2);
  animation: rise .4s var(--ease) both; }
.focus-card.is-red { box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .35), var(--sh-2); }
.focus-head { padding: 18px clamp(16px, 2.6vw, 24px) 14px; display: grid; gap: 9px;
  box-shadow: 0 1px 0 var(--hair-2); }
.fh-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.focus-head h2 { font-size: 20px; }
.focus-body { padding: 16px clamp(16px, 2.6vw, 24px); display: grid; gap: 15px; }
.focus-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(250px, 5fr); gap: 20px; align-items: start; }
.fg-side { display: grid; gap: 12px; }
.fg-main { display: grid; gap: 13px; min-width: 0; }
.focus-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 13px clamp(16px, 2.6vw, 24px);
  box-shadow: 0 -1px 0 var(--hair-2); background: var(--fill); flex-wrap: wrap; }
.next-hint { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-2); font-size: 13px; min-width: 0; }
.next-hint .ic { color: var(--tint); flex: none; }
.foot-acts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.rework-banner { display: flex; align-items: center; gap: 11px;
  margin: 12px clamp(16px, 2.6vw, 24px) -3px; padding: 11px 14px; border-radius: var(--r-m);
  color: var(--amber-text); background: rgba(var(--amber-rgb), .13); }
.rework-banner .ic { width: 16px; height: 16px; flex: none; animation: spin 3.5s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.rework-banner b { display: block; font-size: 13px; }
.rework-banner small { color: var(--ink-2); }

.list-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.list-head h4 { display: inline-flex; align-items: center; gap: 7px; }
.list-head h4 .ic { color: var(--tint); }

.check-list { display: grid; gap: 6px; }
.check-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px;
  border-radius: 11px; font-size: 13px; line-height: 1.45; background: var(--fill);
  transition: background .16s; }
.check-item:hover { background: var(--fill-2); }
.check-item .ck { width: 20px; height: 20px; border-radius: 50%; flex: none; margin-top: 0;
  display: flex; align-items: center; justify-content: center; color: transparent;
  box-shadow: inset 0 0 0 1.5px rgba(120,120,128,.45); transition: all .18s var(--pop); }
.check-item .ck .ic { width: 11px; height: 11px; }
.check-item.is-on { background: rgba(var(--tint-rgb), .08); }
.check-item.is-on .ck { color: #fff; background: var(--tint); box-shadow: none; transform: scale(1.05); }
.check-item.is-on span:last-child { color: var(--ink-3); text-decoration: line-through; }

.drop-zone { display: flex; align-items: center; gap: 12px; padding: 14px 16px;
  border-radius: var(--r-m); cursor: pointer; color: var(--ink-2);
  border: 1.5px dashed rgba(var(--tint-rgb), .4); background: rgba(var(--tint-rgb), .04);
  transition: background .18s, border-color .18s; }
.drop-zone:hover, .drop-zone.is-over { background: rgba(var(--tint-rgb), .09); border-color: var(--tint); }
.drop-zone.image-only { position: relative; border-style: dashed; background: linear-gradient(180deg, rgba(10,132,255,.075), rgba(255,255,255,.86)); }
.drop-zone.image-only::after { content: "仅图片"; position: absolute; top: 8px; right: 10px; padding: 2px 7px; border-radius: 999px;
  font-size: 11px; font-weight: 700; color: #0257c2; background: rgba(10,132,255,.12); box-shadow: inset 0 0 0 1px rgba(10,132,255,.18); }
.drop-zone .ic { width: 18px; height: 18px; color: var(--tint); flex: none; }
.drop-zone b { display: block; font-size: 13px; font-weight: 600; color: var(--ink); }
.drop-zone span { display: block; font-size: 12px; color: var(--ink-3); }
.file-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

.pre-row { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.pre-tip { color: var(--ink-3); align-self: center; }
.pre-result { flex: 1; min-width: 220px; display: flex; gap: 10px; padding: 11px 13px;
  border-radius: var(--r-m); animation: rise .3s var(--ease) both; }
.pre-result .ic { width: 15px; height: 15px; flex: none; margin-top: 2px; }
.pre-result small { display: block; font-size: 12px; color: var(--ink-2); }
.pre-result b { font-size: 13px; }
.pre-result.ok { color: var(--green-text); background: rgba(var(--green-rgb), .1); }
.pre-result.warn { color: var(--amber-text); background: rgba(var(--amber-rgb), .12); }
.hint-line { font-size: 13px; color: var(--ink-2); line-height: 1.6; }
.hint-line b { font-family: var(--mono); font-size: 12px; }

/* ---------- 13 · 采购 · 供应商比价 ---------- */
.supplier-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(256px, 1fr)); gap: 11px; }
.supplier-card { padding: 14px 15px; border-radius: var(--r-l);
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1);
  display: grid; gap: 9px; align-content: start;
  transition: box-shadow .2s var(--ease), transform .15s var(--pop); }
.supplier-card:hover { box-shadow: inset 0 0 0 1px var(--hair), var(--sh-2); }
.supplier-card:active { transform: scale(.99); }
.supplier-card.is-on { box-shadow: inset 0 0 0 2px var(--tint), 0 0 0 4px rgba(var(--tint-rgb), .1), var(--sh-1); }
.sc-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sc-head b { font-size: 15px; margin-right: 2px; }
.sc-price { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.sc-price b { font-size: 19px; letter-spacing: 0; font-weight: 700; }
.sc-price small { color: var(--ink-3); }
.spark { color: var(--tint); opacity: .9; }
.sc-meta, .sc-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.sc-line small { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-3); font-size: 12px; }
.sc-line .ic { width: 12px; height: 12px; }
.supplier-card .btn { justify-self: start; margin-top: 2px; }

/* ---------- 14 · 品控 · AQL / 扫码 / 回流 ---------- */
.aql-card { display: grid; gap: 10px; padding: 15px 16px; border-radius: var(--r-l);
  background: rgba(var(--teal-rgb), .07); box-shadow: inset 0 0 0 1px rgba(var(--teal-rgb), .2); }
.qc-count { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 13px; border-radius: var(--r-m); background: var(--card);
  box-shadow: inset 0 0 0 1px var(--hair-2); transition: box-shadow .2s; }
.qc-count.over { box-shadow: inset 0 0 0 1.5px rgba(var(--red-rgb), .55); }
.qcc-main b { display: block; font-size: 13px; font-weight: 600; }
.qcc-main small { color: var(--ink-3); font-family: var(--mono); font-size: 12px; }
.qcc-ctrl { display: flex; align-items: center; gap: 10px; }
.qcc-ctrl b { font-size: 19px; min-width: 26px; text-align: center; }
.qcc-ctrl .btn { width: 29px; height: 29px; padding: 0; border-radius: 8px; font-size: 16px; }
.qc-inspected { width: 96px; text-align: right; }

.verdict { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 10px;
  font-weight: 700; font-size: 14px; justify-self: start; transition: all .2s var(--ease); }
.verdict .ic { width: 15px; height: 15px; }
.verdict.accept { color: var(--green-text); background: rgba(var(--green-rgb), .12); }
.verdict.reject { color: var(--red-text); background: rgba(var(--red-rgb), .11); animation: shake .35s var(--ease); }
@keyframes shake { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }

.scan-stage { position: relative; overflow: hidden; display: grid; gap: 9px;
  padding: 15px 16px; border-radius: var(--r-l); background: var(--fill); }
.scan-stage .btn { justify-self: start; }
.scan-stage.is-scanned::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--green); animation: scanline 1s var(--ease) both; pointer-events: none; }
@keyframes scanline { from { transform: translateY(0); opacity: .9; } to { transform: translateY(230px); opacity: 0; } }
.scan-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 10px; border-radius: 9px; background: var(--card);
  box-shadow: inset 0 0 0 1px var(--hair-2); animation: rise .3s var(--ease) both; }
.scan-row .ic { width: 13px; height: 13px; color: var(--ink-3); }

.fail-pick { display: grid; gap: 8px; padding: 14px 15px; border-radius: var(--r-l);
  background: rgba(var(--red-rgb), .06); box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .22);
  animation: rise .3s var(--ease) both; }
.fail-opt { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: var(--r-m);
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2); text-align: left;
  transition: box-shadow .18s, transform .13s var(--pop); }
.fail-opt:hover { box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .4), var(--sh-1); }
.fail-opt:active { transform: scale(.985); }
.fail-opt b { display: block; font-size: 13px; font-weight: 600; }
.fail-opt small { display: block; color: var(--ink-3); }
.fail-opt > div { flex: 1; min-width: 0; }
.fail-opt .ic:last-child { color: var(--red-text); }


/* ---------- 15 · 条码 · 标签 ---------- */
.barcode { display: inline-grid; justify-items: center; gap: 3px;
  /* GS1 静区：左 ≥11 模、右 ≥7 模；模宽 2px 时 14px 仅 7 模，打印件扫码边际。统一 22px。 */
  padding: 10px 22px 8px; border-radius: 9px; color: #111; background: #fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.1); }
.barcode svg { display: block; }
.barcode-num { font-size: 12px; letter-spacing: .2em; color: #111; }
.barcode-bad { display: inline-flex; align-items: center; gap: 8px; padding: 10px 13px;
  border-radius: 9px; font-size: 12px; color: var(--amber-text);
  background: rgba(var(--amber-rgb), .12); }
.print-label { display: grid; gap: 7px; justify-items: start;
  padding: 15px 17px; border-radius: 12px; color: #111; background: #fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.12), 0 4px 14px rgba(0,0,0,.1); }
.pl-top { display: flex; align-items: baseline; gap: 8px; }
.pl-top b { font-size: 13px; letter-spacing: .05em; }
.pl-top span { font-size: 12px; color: #6e6e73; }
.pl-name { font-size: 15px; font-weight: 700; letter-spacing: 0; }
.pl-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; font-size: 12px; color: #55555c; font-family: var(--mono); }
.label-strip { display: flex; }

/* ---------- 16 · 工艺 · 费用 · 运营 · 直播 ---------- */
.craft-sheet { display: flex; flex-wrap: wrap; gap: 6px; }
.cost-card { display: flex; align-items: center; gap: 12px; padding: 12px 15px; border-radius: var(--r-m);
  background: rgba(var(--amber-rgb), .12); }
.cost-card.ok { background: rgba(var(--green-rgb), .1); }
.cost-card > .ic { width: 18px; height: 18px; color: var(--amber); flex: none; }
.cost-card.ok > .ic { color: var(--green); }
.cost-card > div { flex: 1; min-width: 0; }
.cost-card b { display: block; font-size: 14px; }
.cost-card small { color: var(--ink-2); }
.listing-panel { display: grid; gap: 12px; padding: 15px; border-radius: var(--r-l); background: #fff; box-shadow: inset 0 0 0 1px var(--hair), var(--sh-1); }
.listing-panel.compact { margin: 12px 0; background: linear-gradient(180deg,#fff,#f8fbff); }
.listing-panel > .hint-line { justify-content: flex-start; color: var(--ink-3); font-size: 12px; }
.lst-group { display: grid; grid-template-columns: 88px repeat(2, minmax(0, 1fr)); gap: 8px; align-items: stretch; }
.lst-group > b { color: var(--ink-2); font-size: 13px; align-self: center; }
.lst-group span { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 42px; padding: 9px 10px; border-radius: 12px; background: #f7f8fb; box-shadow: inset 0 0 0 1px rgba(0,0,0,.055); }
.lst-group span .ic { width: 15px; height: 15px; }
.lst-group span.ok { color: var(--green); background: rgba(var(--green-rgb), .08); }
.lst-group span.bad { color: var(--amber); background: rgba(var(--amber-rgb), .09); }
.lst-group em { color: var(--ink); font-style: normal; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lst-group small { color: var(--ink-4); font-size: 11px; }
.prod-track { display: grid; gap: 6px; }
.pt-head { display: flex; justify-content: space-between; color: var(--ink-3); }
.banned-line { display: flex; align-items: flex-start; gap: 9px; padding: 10px 13px; border-radius: var(--r-m);
  font-size: 13px; line-height: 1.55; transition: background .2s; }
.banned-line .ic { width: 15px; height: 15px; flex: none; margin-top: 2px; }
.banned-line.ok { color: var(--green-text); background: rgba(var(--green-rgb), .09); }
.banned-line.ok .ic { color: var(--green); }
.banned-line.bad { color: var(--red-text); background: rgba(var(--red-rgb), .08); }
.banned-line.bad .ic { color: var(--red-text); }
.live-text { width: 100%; resize: vertical; min-height: 76px;
  padding: 12px 14px; border-radius: var(--r-m); border: 0;
  background: var(--fill); box-shadow: inset 0 0 0 1px var(--hair-2); line-height: 1.7; }
.live-text:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--tint); background: var(--card); }

/* ---------- 17 · 表格 ---------- */
.table-wrap { overflow-x: auto; border-radius: var(--r-m);
  box-shadow: inset 0 0 0 1px var(--hair-2); background: var(--card); }
.sku-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 520px; }
.sku-table th { text-align: left; padding: 9px 12px; font-size: 12px; font-weight: 600;
  color: var(--ink-3); background: var(--fill);
  box-shadow: inset 0 -1px 0 var(--hair-2); white-space: nowrap; }
.sku-table td { padding: 8px 12px; box-shadow: inset 0 -1px 0 var(--hair-2); vertical-align: middle; }
.sku-table tr:last-child td { box-shadow: none; }
.sku-table tbody tr { transition: background .15s; }
.sku-table tbody tr:hover { background: var(--fill); }
.sku-table.edit input { width: 100%; min-width: 72px; padding: 7px 10px; border: 0; border-radius: 8px;
  background: var(--fill); box-shadow: inset 0 0 0 1px var(--hair-2); }
.sku-table.edit input:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--tint); background: var(--card); }
.sku-table.edit input.num { max-width: 90px; }

/* ---------- 18 · 抽屉 · 身份证票券 · 向导 ---------- */
.drawer-layer { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 90; pointer-events: none; }
.drawer-layer.is-open { pointer-events: auto; }
.drawer-mask { position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(0, 0, 0, .34); opacity: 0; transition: opacity .28s var(--ease); }
.drawer-layer.is-open .drawer-mask { opacity: 1; }
.drawer { position: absolute; top: 0; right: 0; bottom: 0;
  width: 880px; max-width: 96vw; display: flex; flex-direction: column;
  background: var(--bg); box-shadow: var(--sh-3);
  transform: translateX(102%); transition: transform .4s var(--pop); }
.drawer-layer.is-open .drawer { transform: translateX(0); }
.drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px clamp(16px, 2.6vw, 26px);
  background: var(--glass);
  -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px);
  box-shadow: 0 1px 0 var(--hair-2); position: relative; z-index: 2; }
.drawer-head b { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; }
.drawer-body { flex: 1; overflow-y: auto; padding: 18px clamp(16px, 2.6vw, 26px) 26px; overscroll-behavior: contain; }
.drawer-sec { margin-top: 22px; display: grid; gap: 11px; }
.drawer-sec > h4 { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-2); }
.drawer-sec > h4 .ic { color: var(--tint); }
.drawer-foot { display: flex; justify-content: flex-end; gap: 9px;
  padding: 12px clamp(16px, 2.6vw, 26px);
  background: var(--glass);
  -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px);
  box-shadow: 0 -1px 0 var(--hair-2); }

/* 身份证 = Wallet 票券（恒定深色） */
.identity-band { position: relative; overflow: hidden; border-radius: var(--r-l);
  padding: 18px 19px; color: #f5f5f7; display: grid; gap: 14px;
  background: var(--pass-bg);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.09), 0 10px 30px rgba(0,0,0,.25); }
.identity-band::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: rgb(var(--vi-rgb, 120,120,128)); opacity: .95; }
.ib-top { display: flex; align-items: flex-start; gap: 13px; }
.ib-top .category-icon { background: rgba(255,255,255,.14); }
.ib-name { flex: 1; min-width: 0; display: grid; gap: 7px; }
.ib-name h2 { color: #fff; font-size: 19px; }
.identity-band .chip { color: rgba(255,255,255,.85); background: rgba(255,255,255,.11); }
.identity-band .chip.outline { box-shadow: inset 0 0 0 1px rgba(255,255,255,.24); background: transparent; }
.identity-band .chip.red   { color: #ffb3ac; background: rgba(255,69,58,.22); }
.identity-band .chip.green { color: #7ce69a; background: rgba(48,209,88,.2); }
.identity-band .chip.amber { color: #ffc46b; background: rgba(255,159,10,.2); }
.identity-band .chip.tint  { color: #9ecbff; background: rgba(10,132,255,.22); }
.identity-band .chip.code  { color: #ececf2; background: rgba(255,255,255,.1); }
.vi-stack { display: inline-flex; gap: 5px; align-items: center; flex: none; }
.vi-dot { width: 14px; height: 14px; border-radius: 50%; box-shadow: 0 0 0 2px rgba(255,255,255,.16); }
.ib-code { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.ib-code small { display: block; font-size: 11px; letter-spacing: .08em; color: rgba(255,255,255,.5); }
.ib-code b { font-size: 14px; color: #fff; }
.ib-barcode { display: flex; }
.reason-list { display: grid; gap: 6px; }
.reason-list small, .cmp { display: inline-flex; align-items: flex-start; gap: 7px;
  font-size: 12px; color: var(--ink-2); line-height: 1.55; }
.reason-list .ic, .cmp .ic { width: 13px; height: 13px; color: var(--tint); flex: none; margin-top: 2px; }

.timeline { position: relative; display: grid; gap: 12px; padding-left: 18px; }
.timeline::before { content: ""; position: absolute; left: 5px; top: 6px; bottom: 6px; width: 2px;
  border-radius: 2px; background: var(--fill-2); }
.tl-row { position: relative; display: flex; gap: 11px; }
.tl-dot { position: absolute; left: -18px; top: 4px; width: 12px; height: 12px; border-radius: 50%;
  background: var(--card); box-shadow: inset 0 0 0 3px var(--tint); }
.tl-row b { display: block; font-size: 13px; font-weight: 600; }
.tl-row small { color: var(--ink-3); }

.brief-card { display: grid; gap: 9px; padding: 15px 16px; border-radius: var(--r-l);
  background: rgba(var(--tint-rgb), .06); box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .16); }
.brief-card h4 { display: inline-flex; align-items: center; gap: 7px; }
.brief-card h4 .ic { color: var(--tint); }
.brief-card p { font-size: 13px; line-height: 1.65; }
.vi-row { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--ink-3); }
.sp-row { display: flex; flex-wrap: wrap; gap: 5px; }

.drawer.wizard { width: 960px; max-width: 97vw; }
.wiz-steps { display: flex; gap: 5px; padding: 13px clamp(16px, 2.6vw, 26px) 0; flex-wrap: wrap; }
.wiz-dot { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px 5px 6px;
  border-radius: 99px; font-size: 12px; font-weight: 600; color: var(--ink-3); background: var(--fill); }
.wiz-dot i { width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-style: normal; background: var(--fill-2); }
.wiz-dot .ic { width: 12px; height: 12px; }
.wiz-dot.is-on { color: #fff; background: var(--tint); }
.wiz-dot.is-on i { background: rgba(255,255,255,.25); color: #fff; }
.wiz-dot.is-done { color: var(--green-text); background: rgba(var(--green-rgb), .12); }
.wiz-dot.is-done i { display: none; }
.wiz-q { font-size: 15px; font-weight: 700; margin: 8px 0 16px; letter-spacing: 0; }
.pick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 10px; }
.pick-grid.src { grid-template-columns: repeat(auto-fill, minmax(224px, 1fr)); margin-top: 16px; }
.pick-card { display: grid; gap: 7px; align-content: start;
  padding: 14px 15px; border-radius: var(--r-l); text-align: left;
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1);
  transition: box-shadow .18s var(--ease), transform .14s var(--pop); }
.pick-card:hover { box-shadow: inset 0 0 0 1px var(--hair), var(--sh-2); }
.pick-card:active { transform: scale(.98); }
.pick-card.is-on { box-shadow: inset 0 0 0 2px var(--tint), 0 0 0 4px rgba(var(--tint-rgb), .1), var(--sh-1); }
.pick-card b { font-size: 15px; }
.pick-card small { color: var(--ink-3); }
.pick-card .sub-line { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ink-2);
  padding-top: 7px; box-shadow: 0 -1px 0 var(--hair-2); }
.pick-card .chip { justify-self: start; }
.pick-card.wide { grid-column: span 2; }
.chip-pick { display: flex; flex-wrap: wrap; gap: 7px; }
.wiz-name { width: 100%; padding: 12px 15px; border: 0; border-radius: var(--r-m);
  font-size: 15px; font-weight: 600; margin-bottom: 13px;
  background: var(--fill); box-shadow: inset 0 0 0 1px var(--hair-2); }
.wiz-name:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--tint); background: var(--card); }
.wiz-row { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin: 13px 0; }
.assign-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 9px; }
.assign-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--r-m);
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2); }
.assign-row > div { flex: 1; min-width: 0; }
.assign-row b { display: block; font-size: 13px; font-weight: 600; }
.assign-row small { color: var(--ink-3); }

/* ---------- 19 · 发射台 · Toast ---------- */
.launch-pad { display: grid; gap: 14px; padding: 22px clamp(18px, 3vw, 26px); border-radius: var(--r-xl);
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); }
.lp-main { display: flex; align-items: center; gap: 15px; }
.lp-main p { color: var(--ink-2); font-size: 13px; margin-top: 3px; }
.lp-stats { display: flex; flex-wrap: wrap; gap: 7px; }
.launch-pad > .btn { justify-self: start; }

.system-alert { display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
  padding: 12px 14px; border-radius: var(--r-l); background: var(--card);
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); }
.system-alert > .ic { width: 18px; height: 18px; flex: none; color: var(--red); }
.system-alert b { display: block; font-size: 13px; }
.system-alert small { display: block; margin-top: 2px; color: var(--ink-2); line-height: 1.45; }
.system-alert > div { flex: 1; min-width: 0; }
.system-alert.bad { background: rgba(var(--red-rgb), .06); box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .18), var(--sh-1); }

.toast-stack { position: fixed; right: 16px; bottom: 76px; z-index: 200;
  display: grid; gap: 8px; width: 360px; max-width: calc(100vw - 32px); }
.toast { display: grid; grid-template-columns: 18px minmax(0, 1fr) 44px; gap: 11px; align-items: flex-start; padding: 12px 10px 12px 14px;
  border-radius: 13px; color: var(--ink);
  background: var(--glass);
  -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px);
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-2);
  animation: toastIn .4s var(--pop) both; }
.toast .ic { width: 16px; height: 16px; color: var(--tint); flex: none; margin-top: 2px; }
.toast b { display: block; font-size: 13px; font-weight: 600; }
.toast small { color: var(--ink-2); font-size: 12px; }
.toast-close {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: var(--ink-3);
  background: transparent;
  cursor: pointer;
}
.toast-close:hover,
.toast-close:focus-visible { color: var(--ink); background: rgba(0, 0, 0, .06); }
.toast-close .ic { width: 13px; height: 13px; margin: 0; color: currentColor; }
.toast.out { animation: toastOut .28s var(--ease) both; }
@keyframes toastIn { from { opacity: 0; transform: translateY(12px) scale(.97); } }
@keyframes toastOut { to { opacity: 0; transform: translateY(8px) scale(.97); } }

.confirm-layer { position: fixed; inset: 0; z-index: 180; display: none; }
.confirm-layer.is-open { display: block; }
.confirm-backdrop { position: absolute; inset: 0; display: grid; place-items: center;
  padding: 22px; background: rgba(0,0,0,.28);
  -webkit-backdrop-filter: saturate(1.5) blur(14px); backdrop-filter: saturate(1.5) blur(14px); }
.confirm-card { width: min(440px, 100%); display: grid; grid-template-columns: 42px 1fr; gap: 12px;
  padding: 18px; border-radius: 20px; background: var(--glass);
  -webkit-backdrop-filter: saturate(1.8) blur(26px); backdrop-filter: saturate(1.8) blur(26px);
  box-shadow: inset 0 0 0 1px var(--hair-2), 0 28px 80px rgba(0,0,0,.22);
  animation: confirmIn .28s var(--pop) both; }
.confirm-ic { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px;
  color: var(--red); background: rgba(var(--red-rgb), .1); }
.confirm-ic .ic { width: 19px; height: 19px; }
.confirm-copy small { display: block; color: var(--red-text); font-size: 12px; font-weight: 700; }
.confirm-copy h3 { margin-top: 3px; font-size: 18px; letter-spacing: 0; }
.confirm-copy p { margin-top: 7px; color: var(--ink-2); line-height: 1.55; font-size: 13px; }
.confirm-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 9px; margin-top: 2px; }
@keyframes confirmIn { from { opacity: 0; transform: translateY(8px) scale(.98); } }

/* ---------- 20 · 响应式 · 偏好 ---------- */
@media (max-width: 1080px) {
  .command-grid, .focus-grid { grid-template-columns: 1fr; }
  .station[data-role="design"] .fg-side { order: -1; }
}
@media (max-width: 720px) {
  .pick-card.wide { grid-column: auto; }
  .runway { display: flex; overflow-x: auto; padding-bottom: 14px; }
  .rw-col { min-width: 76px; flex: 0 0 auto; }
  .command-grid { grid-template-columns: 1fr; }
  .hide-m { display: none; }
  .topbar { gap: 10px; }
  .today-signal { text-align: right; }
  .workspace { padding-bottom: 130px; }
  .station-head { align-items: flex-start; flex-direction: column; }
  .card-grid, .decision-grid, .line-grid { grid-template-columns: 1fr; }
  .focus-head h2 { font-size: 19px; }
  .focus-foot { flex-direction: column; align-items: stretch; }
  .foot-acts { justify-content: stretch; }
  .foot-acts .btn.large { flex: 1; }
  .drawer, .drawer.wizard { width: 100vw; max-width: 100vw; }
  .load-row { grid-template-columns: 1fr auto; }
  .load-row .load-track { grid-column: 1 / -1; }
}
/* V132 · 七轮工单 P2-01：prefers-reduced-motion 全站唯一块（原 1649 / 15144 两处合一，取并集）。 */
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation: none !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition: none !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  :is(button, a, [tabindex]):hover { transform: none !important; }
}

/* 布局定序：聚焦卡主工作区恒在左（宽列），侧栏恒在右 */
.focus-grid > .fg-main { order: 1; }
.focus-grid > .fg-side { order: 2; }
@media (max-width: 1080px) { .station[data-role="design"] .focus-grid > .fg-side { order: -1; } }
.ring b { font-size: max(13px, calc(var(--size, 72px) * .27)); }
.ring small { font-size: max(9px, calc(var(--size, 72px) * .14)); }

/* ==================== 识别度整改 · 进度轨道（替代小方块链条） ==================== */
.rail2 { display: grid; gap: 7px; padding: 2px 0 0; }
.rail2-bar { display: flex; gap: 3px; height: 6px; }
.rail2-bar .seg { flex: 1; min-width: 6px; border-radius: 4px; background: var(--seg); cursor: pointer; transition: transform .15s var(--ease); }
.rail2-bar .seg:hover { transform: scaleY(1.6); }
.rail2-bar .seg.done { background: var(--green); }
.rail2-bar .seg.active { background: linear-gradient(90deg, var(--tint) 0 72%, rgba(255,255,255,.62) 72% 100%); box-shadow: 0 0 0 1px rgba(var(--tint-rgb), .28); animation: segPulse 1.6s var(--ease) infinite; }
.rail2-bar .seg.blocked { background: repeating-linear-gradient(135deg, var(--red) 0 5px, #b00020 5px 9px); box-shadow: 0 0 0 1px rgba(var(--red-rgb), .32); }
@keyframes segPulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
.rail2-line { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--ink-2); min-width: 0; }
.rail2-line b { color: var(--ink); font-weight: 600; }
.rl-num { font-family: var(--mono); font-size: 12px; color: var(--ink-3); background: var(--fill); border-radius: 6px; padding: 2px 6px; flex: none; }
.rl-cur { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.rl-red { color: var(--red-text); display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.rl-green { color: var(--green-text); display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.sku-pathline { font-size: 12px; color: var(--ink-3); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ==================== 作战图 · 状态语义与图例 ==================== */
.dag-legend { display: inline-flex; align-items: center; gap: 5px; margin-left: auto; font-size: 12px; color: var(--ink-3); padding: 2px 4px; }
.dag-legend .leg { width: 9px; height: 9px; border-radius: 3px; display: inline-block; margin-left: 7px; }
.dag-legend .leg.done { background: var(--green); }
.dag-legend .leg.active { background: linear-gradient(90deg, var(--tint) 0 72%, rgba(255,255,255,.62) 72% 100%); box-shadow: 0 0 0 1px rgba(var(--tint-rgb), .28); }
.dag-legend .leg.pending { background: transparent; box-shadow: inset 0 0 0 1.3px var(--ink-4); }
.dag-legend .leg.blocked { background: repeating-linear-gradient(135deg, var(--red) 0 5px, #b00020 5px 9px); box-shadow: 0 0 0 1px rgba(var(--red-rgb), .32); }
.dag-legend .leg-crit { width: 16px; height: 0; border-top: 2.4px solid rgba(var(--indigo-rgb), .8); border-radius: 2px; display: inline-block; margin-left: 7px; }
.wire.crit { stroke-width: 3.2; stroke-dasharray: none; animation: none; }
.wire.crit.done { stroke: rgba(var(--green-rgb), .9); stroke-width: 4; }
.wire.crit.live { stroke: rgba(var(--apple-blue-rgb), .96); stroke-width: 5; }
.wire.crit.ready { stroke: rgba(var(--green-rgb), .50); stroke-width: 3.2; }
.wire.crit.wait { stroke: rgba(var(--indigo-rgb), .32); stroke-width: 2.6; }
.wire.bus { stroke-linejoin: round; }
.dag-node.pending { opacity: .66; background: rgba(255,255,255,.72); box-shadow: inset 0 0 0 1.3px transparent; outline: 1.3px dashed rgba(142,142,147,.42); outline-offset: -1.3px; }
.dag-node.pending .dn-main b { color: var(--ink-2); }
.dn-crit { position: absolute; top: -7px; left: -7px; width: 17px; height: 17px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; background: var(--indigo); box-shadow: 0 0 0 2px var(--card); }
.dn-crit .ic { width: 9.5px; height: 9.5px; }

/* ==================== 工艺单 · 生成卡 ==================== */
.sheet-card { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: var(--r-m);
  background: var(--fill); box-shadow: inset 0 0 0 1px var(--hair-2); }
.sheet-card.is-on { background: rgba(var(--tint-rgb), .07); box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .25); }
.sheet-card .sc-ic { width: 34px; height: 34px; border-radius: 9px; flex: none; display: flex; align-items: center; justify-content: center;
  color: var(--tint); background: rgba(var(--tint-rgb), .13); }
.sheet-card .sc-ic .ic { width: 16px; height: 16px; }
.sheet-card .sc-main { flex: 1; min-width: 0; }
.sheet-card .sc-main b { display: block; font-size: 14px; }
.sheet-card .sc-main small { display: block; font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.sheet-card .sc-btns { display: flex; gap: 8px; flex: none; flex-wrap: wrap; justify-content: flex-end; }
.sheet-card.mini { margin-top: 10px; }

/* ==================== 工艺单 · 文档视图（可打印） ==================== */
.sheet-layer { position: fixed; inset: 0; z-index: 120; display: none; }
.sheet-layer.is-open { display: block; }
.sheet-backdrop { position: absolute; inset: 0; background: rgba(20, 20, 22, .5);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  overflow-y: auto; padding: 4vh 16px 6vh; }
.sheet-doc { max-width: 860px; margin: 0 auto; background: #fff; color: #1d1d1f;
  border-radius: 18px; overflow: hidden; box-shadow: 0 32px 90px rgba(0,0,0,.4); }
.sheet-band { height: 7px; }
.sheet-head { display: flex; justify-content: space-between; gap: 14px; padding: 20px 26px 8px; align-items: flex-start; }
.sheet-head small { font-size: 12px; letter-spacing: .12em; color: var(--ink-4); }
.sheet-head h2 { font-size: 19px; margin: 3px 0 4px; font-family: var(--mono); letter-spacing: 0; }
.sheet-head h2 .sv { font-size: 13px; color: #6e6e73; font-family: var(--sans); font-weight: 600; }
.sheet-head p { font-size: 13px; color: #6e6e73; }
.sheet-hr { text-align: right; display: grid; gap: 6px; justify-items: end; }
.sheet-hr small { color: var(--ink-4); font-size: 12px; }
.sheet-stamp { display: inline-block; padding: 4px 12px; border-radius: 8px; font-size: 13px; font-weight: 700;
  color: #1d7a3e; border: 1.6px solid #1d7a3e; transform: rotate(-3deg); }
.sheet-stamp.draft { color: #b25000; border-color: #b25000; }
.sheet-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 10px 26px 2px; }
.sheet-grid .sg { background: #f5f5f7; border-radius: 10px; padding: 9px 11px; min-width: 0; }
.sheet-grid .sg small { display: block; font-size: 11px; color: var(--ink-4); margin-bottom: 2px; }
.sheet-grid .sg b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.sheet-grid .sg .mono, .sheet-doc .mono { font-family: var(--mono); }
.sheet-code { padding: 10px 26px 0; }
.sheet-sec { padding: 14px 26px 2px; }
.sheet-sec h3 { font-size: 14px; margin-bottom: 8px; }
.sheet-sec h3 small { font-weight: 500; color: var(--ink-4); font-size: 12px; margin-left: 6px; }
.sheet-sec table { width: 100%; border-collapse: collapse; font-size: 13px; }
.sheet-sec th { text-align: left; font-size: 12px; color: var(--ink-4); font-weight: 600; padding: 6px 8px; border-bottom: 1px solid #e8e8ed; }
.sheet-sec td { padding: 7px 8px; border-bottom: 1px solid #f0f0f4; vertical-align: top; }
.sheet-sec td.num, .sheet-sec th.num { text-align: right; font-family: var(--mono); }
.sheet-sec td.std { color: #6e6e73; font-size: 12px; }
.sp-edit { font: inherit; border: none; border-bottom: 1.5px dashed #b8b8c2; background: transparent; color: inherit; padding: 1px 2px; width: 130px; }
.sp-edit:focus { outline: none; border-bottom-color: var(--blue); }
.sheet-qc { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 0 6px; }
.sheet-ul { padding-left: 18px; font-size: 13px; color: #3a3a3c; display: grid; gap: 5px; padding-bottom: 6px; }
.sheet-signs { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; padding-bottom: 6px; }
.sheet-signs .sign { display: flex; align-items: center; gap: 9px; background: #f5f5f7; border-radius: 11px; padding: 9px 11px; }
.sheet-signs .sign.ok { background: rgba(52, 199, 89, .1); }
.sheet-signs .sign b { display: block; font-size: 13px; }
.sheet-signs .sign small { color: var(--ink-4); font-size: 12px; }
.sheet-signs .sign > div { flex: 1; min-width: 0; }
.sheet-actions { display: flex; gap: 10px; align-items: center; padding: 16px 26px 20px; }
.sheet-actions .spacer { flex: 1; }
@media (max-width: 720px) { .sheet-grid { grid-template-columns: 1fr 1fr; } .sheet-head { flex-direction: column; } .sheet-hr { justify-items: start; text-align: left; } }
@media print {
  body.printing .app-shell, body.printing .topbar, body.printing #toasts, body.printing #confirm, body.printing #drawer { display: none !important; }
  body.printing .sheet-layer, body.printing .sheet-layer.is-open { display: block !important; position: static !important; }
  body > *:not(.sheet-layer) { display: none !important; }
  .sheet-layer { position: static !important; display: block !important; }
  .sheet-backdrop { position: static; padding: 0; background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .sheet-doc { box-shadow: none; border-radius: 0; max-width: none; }
  .sheet-actions, .sp-edit, .sheet-layer .btn, .sheet-layer button, .sheet-layer [role="button"] { display: none !important; }
  .sheet-layer * { color: #111 !important; background-color: transparent !important; box-shadow: none !important; text-shadow: none !important; }
}

@media (max-width: 480px) {
  /* V137 · 十一轮 P1-14 / 6.6：窄屏控件热区≥44×44。不依赖 pointer:coarse（无头/部分环境不可靠），
     以宽度断点强制；含顶栏与工作台。 */
  #workspace button, #workspace .btn, #workspace .chip.pick,
  .topbar button, .topbar .btn { min-height: 44px; min-width: 44px; }
}

/* ==================== 发射台 · 品类→品牌→链 三层 ==================== */
.brand-group { margin: 12px 0 4px; padding: 12px 12px 12px 14px; border-radius: var(--r-l);
  background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1);
  border-left: 3px solid rgba(var(--tint-rgb), .8); }
.bg-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 10px; min-width: 0; }
.bg-head b { font-size: 15px; }
.bg-head small { color: var(--ink-3); font-size: 12px; }
.bg-subs { display: inline-flex; gap: 5px; flex-wrap: wrap; margin-left: 2px; }
.bg-subs .chip { font-size: 11px; padding: 2px 8px; }
.bg-count { margin-left: auto; font-size: 12px; color: var(--ink-3); font-family: var(--mono); background: var(--fill); border-radius: 7px; padding: 3px 8px; flex: none; }
.brand-group .card-grid { gap: 10px; }

/* ==================== 品名可改 ==================== */
.ghost-ic { border: none; background: transparent; color: inherit; opacity: .55; cursor: pointer; padding: 2px 4px; border-radius: 6px; vertical-align: 2px; margin-left: 6px; transition: opacity .16s var(--ease), background .16s var(--ease), transform .16s var(--pop); }
.ghost-ic:hover { opacity: 1; background: rgba(255,255,255,.14); }
.ghost-ic .ic { width: 13px; height: 13px; }
.rename-row { display: flex; gap: 8px; align-items: center; }
.rename-input { flex: 1; font: 600 16px/1.3 var(--sans); color: #fff; background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.3); border-radius: 9px; padding: 7px 10px; min-width: 0; }
.rename-input:focus { outline: none; border-color: rgba(255,255,255,.65); }

/* ==================== 设计台 · brief 可改 + 规格 ==================== */
.hint-inline { font-weight: 500; color: var(--ink-3); font-size: 12px; margin-left: 6px; }
.brief-edit { width: 100%; font: 13px/1.65 var(--sans); color: var(--ink); background: var(--card);
  border: 1px solid var(--hair); border-radius: 10px; padding: 9px 11px; resize: vertical; margin: 4px 0 10px; }
.brief-edit:focus { outline: none; border-color: rgba(var(--tint-rgb), .6); box-shadow: 0 0 0 3px rgba(var(--tint-rgb), .12); }
.dspec { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; margin-bottom: 12px; }
.dspec label { display: grid; gap: 4px; font-size: 12px; color: var(--ink-3); background: var(--fill);
  border-radius: 10px; padding: 8px 10px; }
.dspec input { border: none; background: transparent; font: 500 13px var(--sans); color: var(--ink); }
.dspec input:focus { outline: none; }

/* ==================== 改款问题点 ==================== */
.issue-panel { display: grid; gap: 8px; padding: 12px 13px; border-radius: var(--r-m);
  background: rgba(var(--amber-rgb), .07); box-shadow: inset 0 0 0 1px rgba(var(--amber-rgb), .22); margin-bottom: 2px; }
.issue-panel.qc { background: rgba(var(--red-rgb), .05); box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .18); margin-bottom: 12px; }
.issue-row { display: flex; align-items: center; gap: 8px; background: var(--card); border-radius: 10px;
  padding: 8px 10px; box-shadow: inset 0 0 0 1px var(--hair-2); font-size: 13px; min-width: 0; }
.issue-row b { flex: none; font-size: 12px; }
.issue-row span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-2); }
.issue-row.sev-高 { box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .4); }
.issue-form { display: grid; gap: 8px; }
.issue-line { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.issue-input { flex: 1; min-width: 170px; font: 13px var(--sans); color: var(--ink); background: var(--card);
  border: 1px solid var(--hair); border-radius: 9px; padding: 8px 10px; }
.issue-input:focus { outline: none; border-color: rgba(var(--tint-rgb), .6); }
.cs-fb-form {
  padding: 10px;
  border-radius: 14px;
  background: rgba(var(--tint-rgb), .055);
  box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .14);
}
.cs-fb-form .issue-line { gap: 8px; }
.cs-fb-form .gs-in { min-width: 92px; max-width: 140px; }
.cs-fb-form .issue-input { min-width: min(100%, 280px); }
@media (max-width: 720px) {
  .cs-fb-form .issue-line { align-items: stretch; flex-direction: column; }
  .cs-fb-form .gs-in,
  .cs-fb-form .issue-input,
  .cs-fb-form .btn { width: 100%; max-width: none; }
}
.seg-mini { display: inline-flex; gap: 4px; }

/* ==================== 供应商档案维护 + 匹配 ==================== */
.sc-edit { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--ink-3);
  background: var(--fill); border-radius: 8px; padding: 3px 8px; }
.sc-edit input { width: 52px; border: none; background: transparent; font: 600 12px var(--mono); color: var(--ink); text-align: right; }
.sc-edit input:focus { outline: none; }
.sc-match { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; }

/* ==================== 驻厂飞检 / 摄影素材 ==================== */
.site-acts { display: flex; gap: 9px; margin-top: 10px; flex-wrap: wrap; }
.site-acts .btn { flex: 1; min-width: 140px; justify-content: center; }
.asset-sum { margin-bottom: 10px; }
.shot-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 8px; margin-bottom: 12px; }
.shot-item { display: flex; align-items: center; gap: 9px; background: var(--fill); border-radius: 11px; padding: 9px 10px; }
.shot-item.is-on { background: rgba(var(--green-rgb), .1); }
.shot-ck { width: 30px; height: 30px; border-radius: 9px; border: none; flex: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: var(--ink-3); background: var(--card);
  box-shadow: inset 0 0 0 1px var(--hair); }
.shot-item.is-on .shot-ck { color: #fff; background: var(--green); box-shadow: none; }
.si-main { flex: 1; min-width: 0; }
.si-main b { display: block; font-size: 13px; }
.si-main small { color: var(--ink-3); font-size: 12px; }
.sheet-sec tr.sum td { border-bottom: none; border-top: 1.6px solid #d9d9de; padding-top: 9px; }
.sheet-note { font-size: 13px; color: #6e6e73; background: #f5f5f7; border-radius: 10px; padding: 9px 12px; }

/* ==================== 老板 · 浅色指挥驾驶舱 ==================== */
.boss-hero2 { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; align-items: center;
  padding: 20px 22px; border-radius: var(--r-xl);
  background: linear-gradient(135deg, #eef3fd 0%, #ffffff 46%, #f2f0fd 100%);
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); }
.bh-ring { flex: none; }
.bh-meta h2 { font-size: 19px; letter-spacing: 0; }
.bh-meta h2 .num { font-size: 24px; color: var(--indigo); }
.bh-meta p { color: var(--ink-2); font-size: 13px; margin: 5px 0 9px; }
.bh-meta .why { color: var(--ink-3); }
.bh-sub { font-weight: 600; }
.boss-signal-strip { display: grid; grid-template-columns: repeat(4, minmax(116px, 1fr)); gap: 8px; margin-top: 10px; }
.boss-signal { appearance: none; display: flex; align-items: center; gap: 9px; min-width: 0; min-height: 62px; padding: 9px 10px;
  border: 0; border-radius: 13px; text-align: left; color: var(--ink); background: var(--card); cursor: pointer;
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); transition: transform .16s var(--pop), box-shadow .16s var(--ease), background .16s var(--ease); }
.boss-signal:not(:disabled):hover { transform: translateY(-1px); box-shadow: inset 0 0 0 1px rgba(var(--signal-rgb), .32), var(--sh-2); }
.boss-signal:disabled { cursor: default; opacity: .54; box-shadow: inset 0 0 0 1px var(--hair); }
.boss-signal-icon { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; flex: none;
  color: rgb(var(--signal-rgb)); background: rgba(var(--signal-rgb), .11); }
.boss-signal-icon .ic { width: 15px; height: 15px; }
.boss-signal-copy { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; column-gap: 6px; align-items: baseline; }
.boss-signal-copy small { color: var(--ink-2); font-size: 11px; font-weight: 700; }
.boss-signal-copy b { color: rgb(var(--signal-rgb)); font: 700 21px/1 var(--mono); }
.boss-signal-copy em { grid-column: 1 / -1; overflow: hidden; margin-top: 4px; color: var(--ink-3); font-size: 11px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.boss-signal.decision { --signal-rgb: var(--blue-rgb); }
.boss-signal.danger { --signal-rgb: var(--red-rgb); }
.boss-signal.warning { --signal-rgb: var(--amber-rgb); }
.boss-signal.load { --signal-rgb: var(--indigo-rgb); }
.bh-kpis { display: grid; grid-template-columns: repeat(2, minmax(150px, 1fr)); gap: 9px; }
.kpi { display: flex; align-items: center; gap: 10px; background: var(--card); border-radius: 13px;
  padding: 10px 12px; box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); min-width: 0; }
.kpi-ic { width: 30px; height: 30px; border-radius: 9px; flex: none; display: flex; align-items: center; justify-content: center;
  color: rgb(var(--tint-rgb)); background: rgba(var(--tint-rgb), .12); }
.kpi-ic .ic { width: 14px; height: 14px; }
.kpi-main b { display: block; font-size: 17px; font-family: var(--mono); letter-spacing: 0; }
.kpi-main small { color: var(--ink-3); font-size: 12px; }
@media (max-width: 1240px) { .boss-signal-strip { grid-template-columns: repeat(2, minmax(140px, 1fr)); } }
@media (max-width: 1080px) { .boss-hero2 { grid-template-columns: auto 1fr; } .bh-kpis { grid-column: 1 / -1; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
@media (max-width: 720px) { .boss-signal-strip { grid-template-columns: 1fr 1fr; } }

.dc-kind { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: rgb(var(--tint-rgb)); margin-bottom: 8px; }
.dc-kind .chip.code { margin-left: auto; }
.dk-ic { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center;
  color: rgb(var(--tint-rgb)); background: rgba(var(--tint-rgb), .13); flex: none; }
.dk-ic .ic { width: 13px; height: 13px; }
.dc-body { display: flex; gap: 12px; align-items: flex-start; }
.dc-text { flex: 1; min-width: 0; }
.dc-money { flex: none; text-align: right; font-family: var(--mono); font-size: 19px; font-weight: 700; color: var(--ink);
  background: var(--fill); border-radius: 11px; padding: 8px 12px; }
.dc-money small { display: block; font-family: var(--sans); font-weight: 500; font-size: 11px; color: var(--ink-3); margin-top: 2px; }

/* 上架跑道 */
.runway { display: grid; grid-template-columns: repeat(8, 1fr); gap: 7px; padding: 14px 13px 11px;
  background: var(--card); border-radius: var(--r-l); box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); }
.rw-col { display: flex; flex-direction: column; gap: 8px; padding: 8px 8px 9px; border-radius: 11px; min-height: 96px; background: var(--fill); }
.rw-head { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.rw-cnt { font: 700 11px/1 var(--mono); color: var(--ink-2); background: var(--card); border: 1px solid var(--hair); padding: 2px 7px; border-radius: 99px; }
.rw-dots { display: grid; grid-template-columns: repeat(2, 27px); gap: 6px; justify-content: center; align-content: start; flex: 1; }
.rw-dot.is-red { box-shadow: inset 0 0 0 1px rgba(0,0,0,.06), 0 0 0 1.5px var(--card), 0 0 0 3px var(--red); }
.rw-zero { grid-column: 1 / -1; text-align: center; color: var(--ink-4); font-weight: 600; padding-top: 14px; }
.rw-more { grid-column: 1 / -1; justify-self: center; }
.rw-col.today { background: rgba(var(--blue-rgb), .09); box-shadow: inset 0 0 0 1px rgba(var(--blue-rgb), .22); }
.rw-col.empty { opacity: .55; }
.rw-col small { font-size: 11px; color: var(--ink-3); font-weight: 600; }
.rw-col.today > small { color: var(--blue-text); }
.rw-dot:hover { transform: scale(1.18); }
.rw-more { font-size: 11px; color: var(--ink-3); font-family: var(--mono); }

/* 实时脉搏 */
.pulse-list { display: grid; gap: 6px; padding: 11px 12px; background: var(--card); border-radius: var(--r-l); overflow: hidden;
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); max-height: 300px; overflow-y: auto; }
.pulse-row { display: flex; align-items: center; gap: 10px; padding: 6px 7px; border-radius: 10px; transition: background .18s var(--ease), box-shadow .18s var(--ease), transform .16s var(--pop); }
.pulse-row:hover { background: var(--fill); }
.pr-main { flex: 1; min-width: 0; }
.pr-main b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr-main small { color: var(--ink-3); font-size: 12px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr-t { font-family: var(--mono); font-size: 11px; color: var(--ink-3); flex: none; }

/* ==================== 环节深度小组件 ==================== */
.cert-steps, .ms-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin: 2px 0 12px; }
.cert-steps > small { color: var(--ink-3); font-size: 12px; margin-right: 2px; }
.cs { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; color: var(--ink-3);
  background: var(--fill); border-radius: 9px; padding: 5px 10px; }
.cs .ic { width: 11px; height: 11px; }
.cs.done { color: var(--green-text); background: rgba(var(--green-rgb), .12); }
.cs.cur { color: var(--amber-text); background: rgba(var(--amber-rgb), .14); animation: segPulse 1.8s var(--ease) infinite; }
.ms-arrow { width: 14px; height: 1.6px; background: var(--ink-4); border-radius: 2px; opacity: .5; }
.ean-calc { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; color: var(--ink-3);
  background: var(--fill); border-radius: 11px; padding: 9px 11px; }
.ean-calc .issue-input { max-width: 240px; font-family: var(--mono); letter-spacing: .04em; }
.sc-hist { display: flex; align-items: center; gap: 8px; margin: 6px 0 2px; color: var(--ink-3); font-size: 12px; }
.sc-hist .spark { color: rgb(var(--tint-rgb)); }
.ch-matrix { display: grid; gap: 6px; padding: 11px 12px; background: var(--fill); border-radius: var(--r-m); margin-bottom: 12px; }
.ch-matrix > small { color: var(--ink-3); font-size: 12px; font-weight: 600; }
.ch-cell { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--ink-3);
  background: var(--card); border-radius: 8px; padding: 4px 9px; box-shadow: inset 0 0 0 1px var(--hair-2); }
.ch-cell .ic { width: 10px; height: 10px; }
.ch-cell.ok { color: var(--green-text); background: rgba(var(--green-rgb), .1); box-shadow: inset 0 0 0 1px rgba(var(--green-rgb), .2); }

/* 跑道品牌码点 · 采购单据夹 */
.rw-dot { width: 27px; height: 22px; border-radius: 8px; font: 700 11px/1 var(--mono); letter-spacing: .02em; background: var(--vi, #8e8e93); color: #fff; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); transition: transform .16s var(--pop), box-shadow .18s var(--ease), filter .18s var(--ease); }
.rw-zero { color: var(--ink-4); font-size: 12px; padding-top: 6px; }
.folio-row { justify-content: flex-start; }
.folio-row .fr-main { flex: 1; min-width: 0; }
.folio-row .fr-main b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folio-row .fr-main small { color: var(--ink-3); font-size: 12px; }

/* ==================== 智能补货雷达（融合采购补货决策台） ==================== */
.rp-head { display: grid; gap: 8px; margin-bottom: 10px; }
.rp-params { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.rp-list { display: grid; gap: 7px; }
.rp-row { display: flex; align-items: center; gap: 10px; background: var(--card); border-radius: var(--r-m);
  padding: 10px 12px; box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1); min-width: 0; flex-wrap: wrap; }
.rp-row.is-shelved { opacity: .5; }
.rp-main { flex: 1 1 240px; min-width: 0; }
.rp-main b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rp-main small { color: var(--ink-3); font-size: 12px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rp-cell { display: inline-flex; gap: 5px; align-items: center; flex: none; }
.rp-cell.num { font-family: var(--mono); font-size: 12px; color: var(--ink-2); background: var(--fill); border-radius: 8px; padding: 4px 9px; }
.rp-cover { flex: none; font: 700 12px var(--mono); border-radius: 9px; padding: 5px 10px; }
.rp-cover.ok { color: var(--green-text); background: rgba(var(--green-rgb), .12); }
.rp-cover.warn { color: var(--amber-text); background: rgba(var(--amber-rgb), .14); }
.rp-cover.bad { color: var(--red-text); background: rgba(var(--red-rgb), .12); animation: segPulse 1.8s var(--ease) infinite; }
.rp-advice { display: inline-flex; gap: 5px; flex-wrap: wrap; flex: 1 1 200px; }
@media (max-width: 900px) { .rp-row { align-items: flex-start; } }

/* ==================== 深度整改 · VI 细节层 ==================== */
/* 全局搜索（⌘K） */
.gsearch { position: relative; display: flex; align-items: center; gap: 7px; flex: 0 1 320px; min-width: 180px;
  background: var(--fill); border-radius: 11px; padding: 7px 10px; color: var(--ink-3); }
.gsearch > .ic { flex: none; }
.gsearch input { flex: 1; min-width: 0; border: none; background: transparent; font: 13px var(--sans); color: var(--ink); }
.gsearch input:focus { outline: none; }
.gsearch:focus-within { box-shadow: 0 0 0 3px rgba(var(--blue-rgb), .18); background: var(--card); }
.gs-k { font: 600 11px var(--mono); color: var(--ink-3); background: var(--card); border-radius: 6px; padding: 2px 6px;
  box-shadow: inset 0 0 0 1px var(--hair-2); flex: none; }
.gs-x { border: none; background: transparent; color: var(--ink-3); cursor: pointer; padding: 2px; }
.gs-drop { position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 180; background: var(--card);
  border-radius: 14px; box-shadow: 0 18px 50px rgba(0,0,0,.16), inset 0 0 0 1px var(--hair-2); padding: 6px; display: grid; gap: 2px; }
.gs-row { display: flex; align-items: center; gap: 9px; width: 100%; border: none; background: transparent; cursor: pointer;
  text-align: left; padding: 8px 9px; border-radius: 10px; }
.gs-row:hover { background: var(--fill); }
.gsr-main { flex: 1; min-width: 0; }
.gsr-main b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gsr-main small { color: var(--ink-3); font-size: 12px; }
.gs-none { padding: 12px 10px; font-size: 12px; color: var(--ink-3); }
.gs-more { margin: 4px 4px 2px; padding: 8px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; color: var(--ink-3); background: var(--fill); text-align: center; }
@media (max-width: 760px) { .gs-k { display: none; } .gsearch { max-width: none; } }

/* 数字等宽（对齐感） */
.num, .kpi-main b, .dc-money, .rl-num, .sheet-sec td.num, .sheet-sec th.num, .pr-t, .rp-cover, .rp-cell.num, .sc-edit input { font-variant-numeric: tabular-nums; }
.num, .chip.code, .kpi-main b, .bh-meta .num { letter-spacing: 0; }

/* 可达性与状态细节 */
.folio-row, .alert-row, .gs-row { transition: background .14s var(--ease), box-shadow .14s var(--ease); }
.folio-row:hover, .alert-row:hover { background: var(--row-hover); cursor: pointer; }

/* ==================== 链核整改 · 层次与专注 ==================== */
.zone + .zone { margin-top: 30px; }
.bh-top1 { display: flex; align-items: center; gap: 9px; margin: 8px 0 10px; padding: 9px 12px;
  background: rgba(var(--indigo-rgb), .08); border-radius: 12px; color: var(--ink); font-size: 13px; }
.bh-top1 > .ic { color: var(--indigo); flex: none; }
.bh-top1 span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bh-meta h2 .num { font-size: 30px; }
.dc-vs { font-size: 12px; color: var(--ink-3); background: var(--fill); border-radius: 9px; padding: 6px 9px; margin-top: 8px; }
.fh-top { display: flex; align-items: flex-start; gap: 10px; }
.fh-top h2 { flex: 1; min-width: 0; }
.fh-right { display: inline-flex; gap: 6px; flex: none; margin-top: 3px; }
body.wizard-open .workspace, body.wizard-open #topbar { filter: blur(7px) saturate(.85); pointer-events: none; user-select: none; transition: filter .25s var(--ease); }
.block-box { display: flex; align-items: center; gap: 11px; padding: 12px 13px; border-radius: var(--r-m);
  background: rgba(var(--red-rgb), .07); box-shadow: inset 0 0 0 1px rgba(var(--red-rgb), .22); margin-bottom: 12px; }
.block-box > .ic { color: var(--red-text); flex: none; }
.block-box b { display: block; font-size: 13px; }
.block-box small { color: var(--ink-3); font-size: 12px; }
.block-box > div { flex: 1; min-width: 0; }

#gsdrop { display: contents; }

/* —— 第三轮体检 · 新组件 —— */
.buy-brief { display: flex; align-items: center; gap: 12px; padding: 15px 17px; border-radius: var(--r-l);
  background: linear-gradient(135deg, rgba(var(--tint-rgb), .10), rgba(var(--tint-rgb), .04)); box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .16); transition: background .18s var(--ease), box-shadow .18s var(--ease), transform .16s var(--pop); }
.buy-brief > svg { width: 22px; height: 22px; color: var(--tint-text); flex: none; }
.buy-brief .bb-main { flex: 1; min-width: 0; }
.buy-brief .bb-main b { font-size: 15px; }
.buy-brief .bb-main small { display: block; color: var(--ink-2); margin-top: 2px; }
.brand-cockpit .bc-hero { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--r-l); background: rgba(var(--tint-rgb), .07); margin-bottom: 14px; flex-wrap: wrap; }
.brand-cockpit .bc-main { flex: 1; min-width: 180px; }
.brand-cockpit .bc-main b { font-size: 15px; display: block; }
.brand-cockpit .bc-main small { color: var(--ink-2); }
.brand-cockpit .bc-owner { display: flex; align-items: center; gap: 9px; padding: 8px 12px; border-radius: var(--r-m); background: var(--card); box-shadow: var(--sh-1); }
.brand-cockpit .bc-owner small { color: var(--ink-3); display: block; }
.design-pro { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 14px; }
.design-pro .dp-card { padding: 13px 15px; border-radius: var(--r-m); background: var(--fill); }
.design-pro .dp-card small { display: block; color: var(--ink-3); font-size: 12px; font-weight: 600; letter-spacing: .02em; margin-bottom: 7px; }
.design-pro .dp-card p { margin: 6px 0 0; font-size: 13px; color: var(--ink-2); line-height: 1.55; }
.design-pro .dp-card b { font-size: 19px; }
.mx-row { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px; background: var(--card); box-shadow: inset 0 0 0 1px var(--hair-2); }
.mx-row b { width: 64px; font-size: 13px; flex: none; }
.mx { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; }
.mx .ic { width: 14px; height: 14px; }
.mx.ok { color: var(--green-text); }
.mx.bad { color: var(--amber-text); }
.bh-entries { gap: 8px; margin-bottom: 10px; }
.bh-entries .chip { cursor: pointer; border: none; }
#workspace > .fold-pill { margin-top: 30px; }
#workspace > .fold-pill + .fold-body { margin-top: 14px; }
@media (max-width: 720px) {
  
  .runway { overflow-x: auto; }
}

.fh-panel { display: grid; gap: 11px; }
.fh-panel > small { display: flex; align-items: center; gap: 9px; }
.fh-row { display: grid; grid-template-columns: 74px 1fr; gap: 10px; align-items: start; }
.fh-row > small { color: var(--ink-3); font-weight: 600; padding-top: 7px; }
.fh-row .craft-sheet { margin: 0; }
.fh-tag { font: 600 11px/1 var(--mono); color: var(--ink-3); margin-left: 5px; opacity: .85; }
.fh-foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-top: 3px; border-top: 1px solid var(--hair); }
.fh-hint { color: var(--ink-3); font-size: 12px; }
@media (max-width: 720px) { .fh-row { grid-template-columns: 1fr; gap: 5px; } .fh-row > small { padding-top: 0; } }

.command-grid > .zone { min-width: 0; }
.fold-strip { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; }
.fold-strip + .fold-body { margin-top: 11px; }
.buy-brief:hover { box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .35); }
.buy-brief .bb-acts { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; }
.buy-brief .fold-ic { width: 14px; height: 14px; color: var(--tint-text); transition: transform .2s var(--ease); }
.buy-brief.is-open .fold-ic { transform: rotate(180deg); }
.queue-row:hover { background: var(--fill); }

.ck-row.is-auto { cursor: default; }
.ck-row.is-auto .ck-box { background: rgba(var(--tint-rgb), .10); box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .3); }
.ck-sys { margin-left: auto; font: 600 11px/1 var(--mono); color: var(--ink-3); background: var(--fill); padding: 3px 7px; border-radius: 99px; }
.fail-opt.is-dead { opacity: .45; cursor: not-allowed; }
.rp-meta { font: 13px/1.5 var(--mono); color: var(--ink-2); font-variant-numeric: tabular-nums; letter-spacing: 0; }

.sheet-panel .lcard { display: grid; gap: 13px; }
.lc-head { display: flex; align-items: center; gap: 11px; }
.lc-head h2 { font-size: 19px; letter-spacing: 0; }
.lc-vi { display: inline-flex; gap: 3px; } .lc-vi i { width: 8px; height: 22px; border-radius: 3px; display: inline-block; }
.lc-price b { font: 700 30px/1 var(--sans); color: var(--red); letter-spacing: 0; }
.lc-price b.tbd { color: var(--amber); font-size: 21px; }
.lc-price small { display: block; color: var(--ink-3); margin-top: 3px; }
.lc-sec h5 { font-size: 12px; color: var(--ink-3); font-weight: 700; margin-bottom: 6px; letter-spacing: 0; }
.lc-stock { display: flex; flex-wrap: wrap; gap: 7px; }
.lc-point { display: flex; gap: 8px; align-items: flex-start; padding: 7px 10px; background: var(--fill); border-radius: 9px; margin-bottom: 5px; font-size: 14px; }
.lc-point svg { width: 15px; height: 15px; color: var(--green); flex: none; margin-top: 1px; }
.lc-foot { display: flex; gap: 8px; align-items: center; padding: 9px 12px; border-radius: 10px; background: rgba(48,209,88,.09); color: #1f7a34; font-weight: 600; font-size: 13px; }
.lc-foot.bad { background: rgba(255,59,48,.08); color: var(--red); }
.lc-foot svg { width: 14px; height: 14px; }

.lc-say { font: 500 14px/1.75 var(--sans); background: var(--fill); border-radius: 10px; padding: 11px 13px; }
.lc-point.warn { background: rgba(255,159,10,.10); } .lc-point.warn svg { color: var(--amber); }
.lc-point.bad { background: rgba(255,59,48,.09); } .lc-point.bad svg { color: var(--red); }
.inv-dot { width: 9px; height: 9px; border-radius: 99px; flex: none; }
.inv-dot.ok { background: var(--green); } .inv-dot.warn { background: var(--amber); }
.inv-dot.bad { background: var(--red); } .inv-dot.info { background: var(--blue); }
.sheet-panel { overflow-x: hidden; }

.shot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.shot-slot { background: var(--fill); border-radius: 12px; padding: 11px 12px; display: grid; gap: 8px; }
.shot-slot.is-on { background: rgba(48,209,88,.08); box-shadow: inset 0 0 0 1px rgba(48,209,88,.25); }
.ss-head { display: flex; align-items: center; gap: 8px; }
.ss-head small { color: var(--ink-3); margin-left: auto; }
.lc-edit { flex: 1; font: 500 14px/1.5 var(--sans); background: transparent; border: none; border-bottom: 1px dashed transparent; }
.lc-edit:hover, .lc-edit:focus { border-bottom-color: rgba(var(--tint-rgb), .5); outline: none; }
@media (max-width: 720px) { .shot-grid { grid-template-columns: 1fr; } }

.lc-sync { margin-left: auto; font: 500 11px/1 var(--mono); color: var(--ink-3); display: inline-flex; align-items: center; gap: 6px; }
.lc-sec h5 { display: flex; align-items: center; }

.live-bigq { width: min(520px, 100%); font-size: 15px; padding: 12px 15px; border-radius: 13px; }
.deck-row { display: flex; align-items: center; gap: 12px; padding: 11px 13px; background: var(--card); border-radius: 13px; box-shadow: 0 1px 2px rgba(0,0,0,.05); margin-bottom: 8px; cursor: pointer; }
.deck-row.is-now { box-shadow: inset 0 0 0 1.5px rgba(var(--tint-rgb), .55), 0 2px 8px rgba(var(--tint-rgb), .14); }
.deck-row[draggable="true"] { cursor: grab; user-select: none; }
.deck-row[draggable="true"]:active { cursor: grabbing; }
.deck-row.is-dragging { opacity: .42; transform: scale(.992); }
.deck-row.is-drop { box-shadow: inset 0 0 0 2px rgba(var(--tint-rgb), .65), 0 10px 24px rgba(var(--tint-rgb), .16); }
.dk-n { width: 52px; text-align: center; letter-spacing: 0; flex: none; display: grid; gap: 2px; }
.dk-n b { font: 900 24px/1 var(--sans); color: var(--ink-3); letter-spacing: 0; }
.dk-n small { font: 700 11px/1 var(--sans); color: var(--ink-4); }
.deck-row.is-now .dk-n { color: var(--tint-text, var(--tint)); }
.deck-row.is-now .dk-n b { color: var(--tint-text, var(--tint)); }
.dk-grip { font: 800 11px/1 var(--sans); color: var(--ink-3); background: var(--fill); border-radius: 99px; padding: 6px 8px; flex: none; }
@media (max-width: 720px) { .live-bigq { font-size: 14px; } }

.lc-tv-stage { color: var(--ink); }
.lc-tv-rail { height: 100vh; overflow: auto; padding: 18px 14px 18px 18px; background: linear-gradient(180deg, #ffffff 0%, #f3f5f8 100%); border-right: 1px solid rgba(0,0,0,.08); display: grid; grid-template-rows: auto 1fr auto; gap: 14px; }
.lc-rail-head { display: grid; gap: 5px; padding: 14px 14px 12px; border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(20,20,30,.06); }
.lc-rail-head small { color: var(--ink-3); font: 800 12px/1 var(--mono); letter-spacing: 0; text-transform: uppercase; }
.lc-rail-head b { color: var(--ink); font: 900 26px/1.05 var(--sans); letter-spacing: 0; }
.lc-rail-head p { color: var(--ink-3); font: 700 14px/1.35 var(--sans); }
.lc-link-list { display: grid; gap: 10px; align-content: start; }
.lc-link-row { width: 100%; border: 0; text-align: left; display: grid; grid-template-columns: 58px 1fr auto; gap: 10px; align-items: center; padding: 12px; border-radius: 16px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.06); cursor: grab; user-select: none; }
.lc-link-row:active { cursor: grabbing; }
.lc-link-jump { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 10px; border-radius: 18px; background: rgba(255,255,255,.86); box-shadow: inset 0 0 0 1px rgba(0,0,0,.06), 0 10px 24px rgba(0,0,0,.06); }
.lc-link-jump label { grid-column: 1 / -1; color: var(--ink-3); font: 800 12px/1 var(--sans); letter-spacing: 0; }
.lc-link-jump input { min-width: 0; height: 42px; border: 1px solid rgba(0,0,0,.1); border-radius: 13px; padding: 0 12px; color: var(--ink); background: #fff; font: 900 18px/1 var(--sans); outline: none; }
.lc-link-jump input:focus { border-color: #0a84ff; box-shadow: 0 0 0 4px rgba(10,132,255,.14); }
.lc-link-row.is-now { background: #eef6ff; box-shadow: inset 0 0 0 2px #0a84ff, 0 10px 24px rgba(10,132,255,.16); }
.lc-link-row.is-dragging { opacity: .46; transform: scale(.99); }
.lc-link-row.is-drop { box-shadow: inset 0 0 0 2px #34c759, 0 10px 24px rgba(52,199,89,.15); }
.lc-link-row > span { height: 54px; border-radius: 15px; background: #f1f3f6; display: grid; place-items: center; align-content: center; gap: 2px; }
.lc-link-row.is-now > span { background: #0a84ff; color: #fff; }
.lc-link-row b { font: 900 34px/1 var(--sans); letter-spacing: 0; }
.lc-link-row small { font: 800 12px/1 var(--sans); }
.lc-link-row strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--ink); font: 900 18px/1.25 var(--sans); letter-spacing: 0; }
.lc-link-row em { display: block; margin-top: 5px; color: var(--ink-3); font: 700 13px/1.25 var(--sans); font-style: normal; }
.lc-link-row i { color: var(--ink-3); font: 800 12px/1 var(--sans); font-style: normal; background: var(--fill); border-radius: 99px; padding: 7px 9px; }
.lc-link-empty { border: 1px dashed rgba(0,0,0,.18); border-radius: 16px; padding: 18px; color: var(--ink-3); font: 700 13px/1.4 var(--sans); text-align: center; }
.lc-rail-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 2px 0; border-top: 1px solid rgba(0,0,0,.08); }
.lc-tv-main { scrollbar-gutter: stable; }
.lc-tv-bar { position: sticky; top: 0; z-index: 4; padding: 10px 0 12px; background: linear-gradient(180deg, #f4f5f7 75%, rgba(244,245,247,0)); margin-bottom: 8px; }
.lc-tv-bar > div:first-child { display: grid; gap: 2px; }
.lc-tv-bar > div:first-child b { font: 900 29px/1 var(--sans); letter-spacing: 0; }
.lc-tv-bar > div:first-child small { color: var(--ink-3); font: 800 13px/1 var(--sans); }
.lc-tv-main .lc-warcard { box-shadow: none; border-radius: 18px; padding: 0; }
.lc-tv-main .lc-warcard.is-tv { background: #fff; }
.lc-tv-main .lc-title-band { padding: 18px 20px; border-width: 3px; box-shadow: 0 12px 36px rgba(77,18,107,.08); }
.lc-tv-main .lc-title-copy small { font-size: 16px; }
.lc-tv-main .lc-title-copy h2 { font-size: 44px; line-height: 1.05; }
.lc-tv-main .lc-title-copy p { font-size: 18px; }
.lc-tv-main .lc-status-stack .chip { font-size: 14px; padding: 8px 11px; }
.lc-tv-main .lc-focus-strip { display: none; }
.lc-tv-main .lc-board { display: none; }
.lc-tv-main .lc-ledger { display: none; }
.lc-tv-main .lc-proof-stack .lc-proof-card:nth-child(n+4) { display: none; }
.lc-tv-main .lc-warning-strip { margin-top: -4px; }
.lc-tv-main .lc-foot { font-size: 22px; padding: 16px 20px; border-radius: 18px; }
.lc-tv-main .lc-warcard.is-ops .lc-board { display: grid; margin-top: 18px; }
.lc-tv-main .lc-warcard.is-ops .lc-ledger { display: block; }
.lc-tv-main .lc-warcard.is-ops .lc-proof-stack .lc-proof-card:nth-child(n+4) { display: grid; }
.lc-tv-main .lc-warcard.is-ops .lc-foot { margin-top: 12px; }
.lc-tv-main.is-talk .lc-tv-bar { margin-bottom: 4px; padding-bottom: 8px; }
.lc-tv-main.is-talk .lc-title-band { padding: 12px 18px; border-width: 2px; }
.lc-tv-main.is-talk .lc-title-copy small { font-size: 14px; }
.lc-tv-main.is-talk .lc-title-copy h2 { font-size: 39px; line-height: 1; }
.lc-tv-main.is-talk .lc-title-copy p { font-size: 16px; }
.lc-tv-main.is-talk .lc-tv-focus { margin-top: 10px; gap: 12px; }
.lc-tv-main.is-talk .lc-tv-focus-head { display: none; }
.lc-tv-main.is-talk .lc-tv-open { padding: 18px 22px; border-radius: 20px; }
.lc-tv-main.is-talk .lc-tv-open small { font-size: 17px; margin-bottom: 8px; }
.lc-tv-main.is-talk .lc-tv-open b { font-size: 42px; line-height: 1.08; }
.lc-tv-main.is-talk .lc-tv-deal { gap: 10px; }
.lc-tv-main.is-talk .lc-tv-deal > div { min-height: 106px; padding: 14px 16px; }
.lc-tv-main.is-talk .lc-tv-deal b { font-size: 28px; }
.lc-tv-main.is-talk .lc-tv-deal > div:first-child b { font-size: 48px; }
.lc-tv-main.is-talk .lc-tv-must { padding: 16px; gap: 9px; }
.lc-tv-main.is-talk .lc-tv-must h3 { font-size: 30px; }
.lc-tv-main.is-talk .lc-tv-line { grid-template-columns: 52px 1fr; padding: 11px 13px; gap: 12px; }
.lc-tv-main.is-talk .lc-tv-line span { font-size: 30px; }
.lc-tv-main.is-talk .lc-tv-line b { font-size: 24px; line-height: 1.22; }
.lc-tv-main.is-talk .lc-tv-risk { padding: 12px 16px; }
.lc-tv-main.is-talk .lc-tv-risk b { font-size: 27px; }
.lc-tv-focus { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 16px; margin-top: 14px; min-width: 0; }
.lc-tv-focus > * { min-width: 0; }
.lc-tv-focus-head { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 0 3px; }
.lc-tv-focus-head b { color: #111217; font: 900 28px/1.1 var(--sans); letter-spacing: 0; }
.lc-tv-focus-head span { color: var(--ink-3); font: 800 16px/1.3 var(--sans); }
.lc-tv-open { grid-column: 1 / -1; padding: 22px 26px; border-radius: 22px; background: linear-gradient(90deg, #fff2b8 0%, #fff 82%); box-shadow: inset 0 0 0 2px rgba(255,193,7,.32), 0 14px 34px rgba(20,20,30,.07); }
.lc-tv-open small, .lc-tv-risk small, .lc-tv-deal small { display: block; color: #6a5b00; font: 900 19px/1 var(--sans); letter-spacing: 0; margin-bottom: 10px; }
.lc-tv-open b { display: -webkit-box; color: #ff2d2d; font: 900 46px/1.14 var(--sans); letter-spacing: 0; white-space: normal; overflow-wrap: anywhere; word-break: break-all; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.lc-tv-deal { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.lc-tv-deal > div { min-height: 124px; padding: 18px 20px; border-radius: 20px; background: #f6f8fb; box-shadow: inset 0 0 0 1px rgba(0,0,0,.055); display: grid; align-content: center; }
.lc-tv-deal b { color: #111217; font: 900 32px/1.16 var(--sans); letter-spacing: 0; white-space: normal; overflow-wrap: anywhere; word-break: break-word; }
.lc-tv-deal > div:first-child { background: #fff0f0; box-shadow: inset 0 0 0 1px rgba(255,45,45,.16); }
.lc-tv-deal > div:first-child b { color: #ff2d2d; font-size: 56px; }
.lc-tv-must { padding: 20px; border-radius: 22px; background: #fff; box-shadow: 0 14px 34px rgba(20,20,30,.08), inset 0 0 0 1px rgba(0,0,0,.07); display: grid; gap: 13px; }
.lc-tv-must h3 { color: #111217; font: 900 36px/1.05 var(--sans); letter-spacing: 0; }
.lc-tv-line { display: grid; grid-template-columns: 62px 1fr; gap: 15px; align-items: start; padding: 16px 17px; border-radius: 18px; background: #f7fbff; box-shadow: inset 6px 0 0 #0a84ff; }
.lc-tv-line span { color: #ff2d55; font: 900 34px/1 var(--mono); letter-spacing: 0; }
.lc-tv-line b { color: #111217; font: 900 30px/1.32 var(--sans); letter-spacing: 0; white-space: normal; overflow-wrap: anywhere; word-break: break-word; }
.lc-tv-risk { grid-column: 1 / -1; display: grid; gap: 8px; padding: 18px 22px; border-radius: 20px; background: #f0fff4; box-shadow: inset 0 0 0 1px rgba(52,199,89,.22); }
.lc-tv-risk small { color: #217a37; margin-bottom: 0; }
.lc-tv-risk b { color: #1d7f36; font: 900 34px/1.23 var(--sans); letter-spacing: 0; }
.lc-tv-risk.bad { background: #fff1f1; box-shadow: inset 0 0 0 1px rgba(255,45,45,.24); }
.lc-tv-risk.bad small, .lc-tv-risk.bad b { color: #ff2d2d; }
.lc-tv-cost { grid-column: 1 / -1; display: grid; gap: 5px; padding: 17px 20px; border-radius: 20px; background: linear-gradient(90deg, #fff8df, #fff); box-shadow: inset 0 0 0 1px rgba(245,158,11,.25), 0 10px 28px rgba(180,110,0,.08); }
.lc-tv-cost small { color: #8a5b00; font: 900 17px/1 var(--sans); letter-spacing: 0; }
.lc-tv-cost b { color: #15171d; font: 900 31px/1.18 var(--sans); letter-spacing: 0; }
.lc-tv-cost span { color: #7a5b21; font: 800 16px/1.35 var(--sans); }
.lc-tv-price-cell { position: relative; }
.lc-tv-price-input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: #ff2d2d; font: 900 52px/1.05 var(--sans); letter-spacing: 0; }
.lc-tv-price-input::placeholder { color: rgba(255,45,45,.58); }
.lc-tv-price-input:focus { box-shadow: inset 0 -3px 0 rgba(255,45,45,.35); }
.lc-warcard.is-ops .lc-tv-focus { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 14px; }
.lc-warcard.is-ops .lc-tv-open { padding: 18px 22px; }
.lc-warcard.is-ops .lc-tv-open b { font-size: 40px; }
.lc-warcard.is-ops .lc-tv-deal > div { min-height: 102px; }
.lc-warcard.is-ops .lc-tv-deal b { font-size: 27px; }
.lc-warcard.is-ops .lc-tv-deal > div:first-child b, .lc-warcard.is-ops .lc-tv-price-input { font-size: 40px; }
.lc-warcard.is-ops .lc-tv-must h3 { font-size: 30px; }
.lc-warcard.is-ops .lc-tv-line { padding: 12px 14px; }
.lc-warcard.is-ops .lc-tv-line span { font-size: 28px; }
.lc-warcard.is-ops .lc-tv-line b { font-size: 23px; }
.lc-warcard.is-ops .lc-tv-risk b { font-size: 27px; }
@media (max-width: 920px) { .lc-tv-stage { grid-template-columns: 1fr !important; overflow: auto !important; } .lc-tv-rail { height: auto; max-height: 42vh; border-right: 0; border-bottom: 1px solid rgba(0,0,0,.08); } .lc-tv-main { height: auto !important; } .lc-tv-focus { grid-template-columns: 1fr; } .lc-tv-focus-head { display: grid; } .lc-tv-open b { font-size: 38px; } .lc-tv-line b { font-size: 24px; } }

.wm-layer { position: absolute; inset: 0; pointer-events: none; user-select: none; z-index: 6; overflow: hidden; }
.wm-layer::before { content: attr(data-watermark); position: fixed; inset: 16% auto auto 50%;
  transform: translateX(-50%) rotate(-22deg); font: 700 12px/1 var(--mono); color: rgba(60,60,67,.055);
  text-align: center; white-space: nowrap; letter-spacing: 0; }
#workspace { position: relative; }

/* ── 手卡真模态（防弹层）── */
.lc-panel { width: min(1240px, calc(100vw - 36px)); max-height: 88vh; overflow-y: auto; background: var(--card); border-radius: 22px; box-shadow: 0 24px 80px rgba(0,0,0,.22), 0 2px 8px rgba(0,0,0,.08); padding: 22px 24px 24px; animation: lcIn .18s cubic-bezier(.2,.8,.2,1); }
@keyframes lcIn { from { transform: translateY(10px) scale(.985); opacity: 0; } to { transform: none; opacity: 1; } }
.lc-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.lc-bar:last-child { margin: 14px 0 0; }
.lc-seg { display: inline-flex; background: var(--fill); border-radius: 11px; padding: 3px; }
.lc-seg button { border: 0; background: transparent; font: 600 13px/1 var(--sans); color: var(--ink-2); padding: 8px 14px; border-radius: 9px; cursor: pointer; }
.lc-seg button.is-active { background: var(--card); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.10); }
.lc-price b { font-size: 40px; }
.lc-cmp { font: 500 12px/1.5 var(--sans); color: var(--ink-3); display: flex; gap: 6px; align-items: center; margin-top: 8px; }
.lc-cmp svg { width: 13px; height: 13px; }
.lc-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; }
.lg-cell { background: var(--fill); border-radius: 13px; padding: 11px 12px; display: grid; gap: 3px; }
.lg-cell b { font: 700 19px/1.1 var(--sans); letter-spacing: 0; font-variant-numeric: tabular-nums; }
.lg-cell small { font-size: 11px; color: var(--ink-3); font-weight: 600; }
.lg-cell.warn b { color: var(--amber); } .lg-cell.bad b { color: var(--red); }
.lc-num { display: flex; align-items: center; gap: 13px; padding: 10px 12px; background: var(--fill); border-radius: 12px; margin-bottom: 7px; }
.lc-num span { font: 800 24px/1 var(--mono); color: var(--tint-text, var(--tint)); letter-spacing: 0; flex: none; }
.lc-num .lc-edit { font: 600 15px/1.45 var(--sans); }
.lc-note { display: flex; gap: 8px; align-items: center; font: 500 12px/1.5 var(--sans); color: var(--ink-2); background: rgba(255,159,10,.09); border-radius: 11px; padding: 9px 12px; }
.lc-note svg { width: 14px; height: 14px; color: var(--amber); flex: none; }
@media (max-width: 960px) { .lc-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px) { .lc-grid { grid-template-columns: repeat(2, 1fr); } .lc-price b { font-size: 32px; } }

.lc-ro { font: 600 15px/1.45 var(--sans); flex: 1; }

.lc-hero { display: flex; align-items: center; gap: 13px; background: var(--fill); border-radius: 14px; padding: 11px 13px; }
.lc-hero .lc-img { width: 62px; height: 62px; border-radius: 12px; display: grid; place-items: center; background: var(--card); box-shadow: inset 0 0 0 1px rgba(0,0,0,.05); flex: none; }
.lc-hero .lc-img svg { width: 22px; height: 22px; color: rgba(255,255,255,.9); }
.lc-hero.is-dim .lc-img svg { color: var(--ink-3); }
.lc-hero b { font-size: 13px; } .lc-hero small { display: block; color: var(--ink-3); margin-top: 2px; }
.lc-hero .chip { margin-left: auto; }
.scan-row.is-dim { opacity: .62; }

/* ── 体检修复：三幽灵类补齐 ── */
.gs-in { font: 500 13px/1 var(--sans); color: var(--ink); background: var(--card); border: 1px solid rgba(0,0,0,.10); border-radius: 11px; padding: 10px 13px; outline: none; transition: box-shadow .15s, border-color .15s; -webkit-appearance: none; }
.gs-in::placeholder { color: var(--ink-3); }
.gs-in:focus { border-color: rgba(var(--tint-rgb), .55); box-shadow: 0 0 0 3px rgba(var(--tint-rgb), .14); }
select.gs-in { padding-right: 28px; }
.ck-list { display: grid; gap: 7px; }
.drawer-card { background: var(--card); border-radius: 16px; padding: 15px 16px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }

.station { display: grid; gap: 14px; align-content: start; }
.station-craft { display: grid; gap: 14px; }
.dc.k-reassign { box-shadow: inset 3px 0 0 #af52de; }
.dc.k-cost { box-shadow: inset 3px 0 0 var(--amber); }
.dc.k-price { box-shadow: inset 3px 0 0 var(--green); }

.lc-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cs-quick-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 9px 0 4px; }
.cs-quick-actions .btn { min-height: 34px; }
.lf-cell { background: var(--fill); border-radius: 11px; padding: 8px 11px; display: grid; gap: 3px; }
.lf-cell label { font-size: 11px; color: var(--ink-3); font-weight: 600; }
.lf-cell b { font-size: 14px; font-weight: 600; }
.lf-cell.lf-need { box-shadow: inset 0 0 0 1px rgba(255,59,48,.4); background: rgba(255,59,48,.05); }
.lf-in { font: 600 14px/1.4 var(--sans); background: transparent; border: none; outline: none; width: 100%; color: var(--ink); }
.lf-in::placeholder { color: var(--ink-4); font-weight: 400; }
.lc-miss { margin-left: auto; font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.lc-miss svg { width: 12px; height: 12px; }
@media (max-width: 960px) { .lc-facts { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px) { .lc-facts { grid-template-columns: 1fr; } }

/* ── 直播作战卡：高密度但一眼可扫 ── */
.lc-warcard { --card-ink: #111217; --live-purple: #4d126b; --live-red: #ff2d2d; --live-orange: #f47b20; --live-green: #2f8f45; --live-blue: #0b72ce; color: var(--card-ink); background: #fff; gap: 16px; }
.lc-warcard.is-anchor { background: #fff; }
.lc-warcard.is-editor { background: #fff; }
.lc-title-band { display: grid; grid-template-columns: auto 1fr auto; gap: 15px; align-items: center; padding: 14px 16px; border: 2px solid rgba(77,18,107,.72); border-radius: 18px; background: linear-gradient(180deg, #fff 0%, #fbf8ff 100%); }
.lc-title-copy { display: grid; gap: 3px; min-width: 0; }
.lc-title-copy small { color: #6d6878; font: 700 11px/1.2 var(--mono); letter-spacing: 0; }
.lc-title-copy h2 { color: #1b1522; font: 800 30px/1.08 var(--sans); letter-spacing: 0; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.lc-title-copy p { color: #6a6170; font: 600 13px/1.25 var(--sans); overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.lc-status-stack { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.lc-focus-strip { padding: 0 2px; }
.lc-board { display: grid; grid-template-columns: minmax(min(100%, 430px), .92fr) minmax(min(100%, 520px), 1.18fr); gap: 18px; align-items: start; }
.lc-left, .lc-right { display: grid; gap: 13px; min-width: 0; }
.lc-product-panel { display: grid; grid-template-columns: 182px 1fr; gap: 14px; padding: 14px; border: 1px solid rgba(0,0,0,.08); border-radius: 18px; background: linear-gradient(180deg, #fff, #fafbfc); box-shadow: 0 10px 28px rgba(20,20,30,.06); }
.lc-photo-stage { min-height: 260px; display: grid; place-items: center; align-content: center; gap: 10px; border-radius: 15px; background: radial-gradient(circle at 50% 20%, #fff 0%, #f3f5f8 74%); box-shadow: inset 0 0 0 1px rgba(0,0,0,.07); }
.lc-photo-stage.is-empty { background: linear-gradient(160deg, #f8fafc, #eef2f7); }
.lc-photo-stage small { color: #6f7480; font: 700 11px/1.25 var(--sans); text-align: center; max-width: 140px; }
.live-thumb.is-empty{color:var(--muted);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.live-thumb.is-empty svg{width:18px;height:18px}
.lc-fact-list { display: grid; gap: 8px; align-content: start; }
.lc-info-row { display: grid; grid-template-columns: 86px 1fr auto; gap: 8px; align-items: center; min-height: 34px; padding: 7px 9px; border-radius: 11px; background: #f7f8fa; box-shadow: inset 0 0 0 1px rgba(0,0,0,.04); }
.lc-info-row span { color: #6b6f78; font: 700 12px/1.2 var(--sans); }
.lc-info-row b, .lc-line-in { color: #17191f; font: 800 15px/1.25 var(--sans); letter-spacing: 0; }
.lc-info-row.red .lc-line-in, .lc-info-row.red b { color: var(--live-red); }
.lc-info-row.blue .lc-line-in, .lc-info-row.blue b { color: var(--live-blue); }
.lc-info-row.is-suggested { background: #fffaf1; }
.lc-info-row em { color: #9a6a00; font: 800 11px/1 var(--sans); font-style: normal; padding: 4px 6px; border-radius: 99px; background: #fff1bf; }
.lc-line-in { width: 100%; border: 0; outline: 0; background: transparent; min-width: 0; }
textarea.lc-line-in { resize: vertical; min-height: 36px; max-height: 92px; overflow: auto; padding-top: 1px; }
.lc-line-text { line-height: 1.35; }
.lc-line-in:focus { box-shadow: inset 0 -2px 0 rgba(77,18,107,.42); }
.lc-stock-line { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 3px; }
.lc-section-title { width: fit-content; min-width: 160px; text-align: center; color: var(--live-purple); font: 900 21px/1 var(--sans); letter-spacing: 0; padding: 10px 20px; border: 2px solid rgba(77,18,107,.78); border-radius: 11px; background: #fff; }
.lc-script-block, .lc-qa, .lc-oneline, .lc-sell-title, .lc-main-points, .lc-proof-card, .lc-ledger { border: 1px solid rgba(0,0,0,.08); border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(20,20,30,.055); }
.lc-script-block, .lc-qa, .lc-main-points, .lc-ledger { padding: 14px; }
.lc-copy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 11px; }
.lc-copy-grid label { display: grid; gap: 6px; }
.lc-copy-grid label span { color: var(--live-red); font: 900 14px/1 var(--sans); }
.lc-copy-grid label b, .lc-area-in { color: #17191f; font: 700 15px/1.55 var(--sans); letter-spacing: 0; }
.lc-area-in { border: 0; outline: 0; resize: vertical; min-height: 86px; padding: 10px 12px; border-radius: 12px; background: #f7f8fa; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.lc-area-in:focus { box-shadow: inset 0 0 0 1.5px rgba(77,18,107,.5), 0 0 0 4px rgba(77,18,107,.08); }
.lc-qa { display: grid; gap: 9px; }
.lc-qa-row { display: grid; grid-template-columns: 150px 1fr; gap: 12px; align-items: start; padding: 10px 11px; border-radius: 12px; background: #f8f9fb; }
.lc-qa-row b { color: var(--live-red); font: 800 14px/1.35 var(--sans); letter-spacing: 0; }
.lc-qa-row span { color: #17191f; font: 700 14px/1.5 var(--sans); }
.lc-oneline { display: grid; grid-template-columns: 92px 1fr; gap: 12px; align-items: center; padding: 13px 15px; background: linear-gradient(90deg, #fff7c7 0%, #fff 70%); }
.lc-oneline span { color: var(--live-purple); font: 900 14px/1 var(--sans); }
.lc-oneline b { color: var(--live-red); font: 900 17px/1.5 var(--sans); letter-spacing: 0; }
.lc-sell-title { display: grid; grid-template-columns: 170px 1fr; gap: 15px; align-items: center; padding: 11px 14px; }
.lc-sell-title b { color: var(--live-purple); font: 900 28px/1 var(--sans); text-align: center; letter-spacing: 0; border: 2px solid rgba(77,18,107,.78); border-radius: 11px; padding: 9px 18px; }
.lc-sell-title span { color: #6b6071; font: 700 14px/1.3 var(--sans); }
.lc-main-points .lc-num { background: linear-gradient(90deg, #f5fbff, #fff); box-shadow: inset 4px 0 0 var(--live-blue); }
.lc-proof-stack { display: grid; gap: 10px; }
.lc-proof-card { padding: 12px 14px; display: grid; gap: 8px; position: relative; overflow: hidden; }
.lc-proof-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--live-purple); }
.lc-proof-card.hot::before { background: var(--live-red); }
.lc-proof-card.green::before { background: var(--live-green); }
.lc-proof-card.blue::before { background: var(--live-blue); }
.lc-proof-card.purple::before { background: var(--live-purple); }
.lc-proof-card.amber::before { background: var(--live-orange); }
.lc-proof-head { display: grid; grid-template-columns: 28px auto 1fr; gap: 9px; align-items: center; }
.lc-proof-head i { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: var(--live-purple); font: 900 14px/1 var(--mono); font-style: normal; }
.lc-proof-card.hot .lc-proof-head i { background: var(--live-red); }
.lc-proof-card.green .lc-proof-head i { background: var(--live-green); }
.lc-proof-card.blue .lc-proof-head i { background: var(--live-blue); }
.lc-proof-card.amber .lc-proof-head i { background: var(--live-orange); }
.lc-proof-head span { color: var(--live-orange); font: 900 13px/1 var(--sans); padding: 5px 8px; border-radius: 99px; background: #fff4df; }
.lc-proof-head b { color: #111217; font: 900 17px/1.25 var(--sans); letter-spacing: 0; }
.lc-proof-card p { color: #2f3036; font: 800 15px/1.45 var(--sans); margin-left: 37px; }
.lc-proof-line { display: grid; grid-template-columns: 18px 1fr; gap: 8px; align-items: start; margin-left: 37px; }
.lc-proof-line svg { width: 16px; height: 16px; color: var(--live-green); margin-top: 2px; }
.lc-proof-line span { color: #15171d; font: 700 14px/1.55 var(--sans); }
.lc-ledger { background: #fbfcfe; }
.lc-warning-strip { display: flex; align-items: center; gap: 9px; padding: 10px 13px; border-radius: 14px; background: #fff4df; color: #7a4500; font: 700 13px/1.3 var(--sans); }
.lc-warning-strip.is-calm { background: #f4f7fb; color: #59606b; }
.lc-warning-strip svg { width: 16px; height: 16px; flex: none; }
@media (max-width: 1100px) { .lc-board { grid-template-columns: 1fr; } .lc-product-panel { grid-template-columns: 170px 1fr; } }
@media (max-width: 760px) {
  .lc-title-band { grid-template-columns: 1fr; }
  .lc-title-copy h2 { white-space: normal; font-size: 24px; }
  .lc-product-panel, .lc-copy-grid, .lc-sell-title, .lc-oneline, .lc-qa-row { grid-template-columns: 1fr; }
  .lc-photo-stage { min-height: 210px; }
  .lc-section-title { width: 100%; }
}

/* ============================================================
   V97 · 采购完成闭环 + 品控事实工作面
   ============================================================ */
.purchase-complete-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 14px 16px;
  border-top: 1px solid var(--hair);
  background: rgba(246, 247, 249, .78);
}

.purchase-complete-bar.is-ready {
  background: rgba(var(--system-action-rgb), .055);
  box-shadow: inset 0 0 0 1px rgba(var(--system-action-rgb), .14);
}

.purchase-complete-bar > div {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: var(--system-action);
}

.purchase-complete-bar > div > span {
  display: grid;
  gap: 3px;
  color: var(--ink);
}

.purchase-complete-bar b {
  font-size: var(--fs-body-lg);
}

.purchase-complete-bar small {
  color: var(--ink-3);
  font-size: 12px;
}

.qc-workflow {
  display: grid;
  gap: 16px;
}

.qc-step-line {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--hair);
  border-radius: 12px;
  background: var(--hair);
}

.qc-step-line > span {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 10px 14px;
  color: var(--ink-3);
  background: rgba(246, 247, 249, .96);
  font-size: 13px;
  font-weight: 700;
}

.qc-step-line > span.is-on {
  color: #0b6d36;
  background: #f0fbf4;
}

.qc-step-line i {
  display: grid;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  color: var(--ink-3);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--hair);
  font-style: normal;
}

.qc-step-line .is-on i {
  color: #fff;
  background: var(--green);
  box-shadow: none;
}

.qc-facts {
  display: grid;
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  gap: 10px;
}

.qc-fact {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  min-height: 126px;
  padding: 14px;
  border: 1px solid var(--hair);
  border-radius: 12px;
  background: #fff;
}

.qc-fact > span {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 700;
}

.qc-fact > b,
.qc-fact > input {
  min-width: 0;
  color: var(--ink);
  font-size: 27px;
  font-weight: 700;
  letter-spacing: 0;
}

.qc-fact > input {
  width: 100%;
  height: 46px;
  padding: 0 10px;
  border-color: rgba(var(--system-action-rgb), .24);
  text-align: left;
}

.qc-fact > small {
  color: var(--ink-3);
  font-size: 11px;
  line-height: 1.45;
}

.qc-problem-panel {
  padding: 16px;
  border: 1px solid var(--hair);
  border-radius: 12px;
  background: #fff;
}

.qc-problem-panel .list-head > div {
  display: grid;
  gap: 3px;
}

.qc-problem-panel .list-head small {
  color: var(--ink-3);
  font-size: 12px;
}

.qc-issue-row {
  display: grid;
  grid-template-columns: 36px minmax(150px, .9fr) minmax(140px, .7fr) 110px minmax(260px, 1.7fr) minmax(140px, .8fr) auto;
  align-items: end;
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border-radius: 10px;
  background: #f6f7f9;
  box-shadow: inset 0 0 0 1px rgba(24, 29, 38, .07);
}

.qc-issue-no {
  display: grid;
  width: 32px;
  height: 42px;
  place-items: center;
  color: var(--system-action);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.qc-issue-row label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.qc-issue-row label > span {
  color: var(--ink-3);
  font-size: 11px;
  font-weight: 700;
}

.qc-issue-row input,
.qc-issue-row select {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 11px;
  border: 1px solid var(--hair);
  border-radius: 9px;
  color: var(--ink);
  background: #fff;
  font: inherit;
}

.qc-issue-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 42px;
}

.qc-no-problem {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  margin-top: 10px;
  padding: 14px 16px;
  color: var(--green);
  border-radius: 10px;
  background: rgba(52, 199, 89, .065);
}

.qc-no-problem > div {
  display: grid;
  gap: 3px;
  color: var(--ink);
}

.qc-no-problem small {
  color: var(--ink-3);
}

.qc-issue-balance {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 9px 11px;
  border-radius: 9px;
  color: #a15400;
  background: rgba(255, 159, 10, .09);
  font-size: 12px;
  font-weight: 700;
}

.qc-issue-balance.is-ok {
  color: #0b6d36;
  background: rgba(52, 199, 89, .08);
}

.qc-issue-balance small {
  margin-left: auto;
  color: currentColor;
  font-weight: 600;
}

.qc-conclusion {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 86px;
  padding: 14px 16px;
  border-radius: 12px;
  color: #6b7280;
  background: #f6f7f9;
  box-shadow: inset 0 0 0 1px var(--hair);
}

.qc-conclusion.accept {
  color: #0b6d36;
  background: #effaf3;
  box-shadow: inset 0 0 0 1px rgba(52, 199, 89, .24);
}

.qc-conclusion.reject {
  color: #b42318;
  background: #fff3f2;
  box-shadow: inset 0 0 0 1px rgba(255, 59, 48, .24);
}

.qc-conclusion > span {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, .88);
}

.qc-conclusion > div {
  display: grid;
  gap: 2px;
}

.qc-conclusion small {
  font-size: 11px;
  font-weight: 700;
}

.qc-conclusion b {
  color: currentColor;
  font-size: 20px;
}

.qc-conclusion p {
  margin: 0;
  color: var(--ink-3);
  font-size: 12px;
}

.qc-rule-details {
  border-top: 1px solid var(--hair);
}

.qc-rule-details > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 4px;
  cursor: pointer;
  list-style: none;
  color: var(--ink-3);
}

.qc-rule-details > summary::-webkit-details-marker {
  display: none;
}

.qc-rule-details > summary > span {
  display: grid;
  gap: 2px;
}

.qc-rule-details > summary b {
  color: var(--ink);
  font-size: 13px;
}

.qc-rule-details > summary small,
.qc-rule-details > div {
  color: var(--ink-3);
  font-size: 11px;
}

.qc-rule-details > div {
  display: grid;
  gap: 7px;
  padding: 0 34px 14px;
}

.qc-rule-details p {
  margin: 0;
  line-height: 1.55;
}

.qc-support-grid {
  align-items: start;
}

@media (max-width: 1500px) {
  .qc-facts {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
  }
  .qc-issue-row {
    grid-template-columns: 32px minmax(160px, 1fr) minmax(140px, .8fr) 110px minmax(240px, 1.4fr);
  }
  .qc-issue-row label:nth-of-type(5),
  .qc-issue-actions {
    grid-column: auto;
  }
}

/* V98 · 客服资料责任闭环：上游交付、运营发布、客服只读 */
.cs-sheet-panel .cs-data-pack {
  grid-column: 1 / -1;
}

.cs-data-pack,
.ops-cs-publish {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(0, 113, 227, .14);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(247, 250, 255, .98), rgba(255, 255, 255, .98));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.cs-pack-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.cs-pack-head > div {
  display: grid;
  gap: 2px;
}

.cs-pack-head small,
.ops-cs-publish .list-head small {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 700;
}

.cs-pack-head h3 {
  margin: 0;
  font-size: 21px;
  font-weight: 800;
  line-height: 1.2;
}

.cs-pack-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  align-items: stretch;
  gap: 12px;
}

.cs-source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 10px;
}

.cs-source {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  align-items: start;
  gap: 10px;
  min-width: 0;
  min-height: 132px;
  padding: 14px;
  border: 1px solid var(--hair);
  border-radius: 15px;
  background: rgba(255, 255, 255, .96);
}

.cs-source.is-ready {
  border-color: rgba(52, 199, 89, .24);
}

.cs-source.is-staged {
  border-color: rgba(255, 159, 10, .26);
  background: rgba(255, 251, 244, .96);
}

.cs-source.is-missing {
  background: rgba(247, 248, 250, .92);
}

.cs-source-icon {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 10px;
  color: var(--blue);
  background: rgba(0, 113, 227, .08);
}

.cs-source-icon svg {
  width: 18px;
  height: 18px;
}

.cs-source-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.cs-source-copy b {
  font-size: 15px;
  font-weight: 800;
}

.cs-source-copy small,
.cs-source-copy em {
  overflow-wrap: anywhere;
  color: var(--ink-3);
  font-size: 11px;
  font-style: normal;
  line-height: 1.45;
}

.cs-source-copy em {
  color: var(--ink-2);
  font-weight: 700;
}

.cs-source-state {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 700;
}

.cs-source-state svg {
  width: 14px;
  height: 14px;
  flex: none;
}

.cs-source.is-ready .cs-source-state { color: #1f7a34; }
.cs-source.is-staged .cs-source-state,
.cs-source.is-missing .cs-source-state { color: #9a5b00; }

.cs-source > .btn {
  grid-column: 1 / -1;
  align-self: end;
  width: 100%;
  min-height: 38px;
}

.cs-source > .btn:disabled {
  opacity: 1;
  color: var(--ink-3);
  background: rgba(0, 0, 0, .04);
  border-color: transparent;
}

.cs-feedback-action {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 14px;
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(0, 113, 227, .24);
  border-radius: 16px;
  background: linear-gradient(145deg, #eef6ff, #f7fbff);
  box-shadow: 0 12px 28px rgba(0, 92, 185, .10);
}

.cs-feedback-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: var(--blue);
}

.cs-feedback-icon svg {
  width: 20px;
  height: 20px;
}

.cs-feedback-action > div {
  display: grid;
  align-content: start;
  gap: 5px;
}

.cs-feedback-action small {
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
}

.cs-feedback-action h4 {
  margin: 0;
  font-size: 20px;
  line-height: 1.2;
}

.cs-feedback-action p {
  margin: 0;
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.55;
}

.cs-feedback-action > .btn {
  width: 100%;
  min-height: 44px;
}

.cs-pack-route {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 10px 12px;
  border-radius: 13px;
}

.cs-pack-route.is-warn { color: #8a5200; background: rgba(255, 159, 10, .09); }
.cs-pack-route.is-ok { color: #1f7a34; background: rgba(52, 199, 89, .09); }
.cs-pack-route > svg { width: 18px; height: 18px; flex: none; }
.cs-pack-route span { display: grid; gap: 2px; }
.cs-pack-route b { font-size: 13px; }
.cs-pack-route small { color: currentColor; font-size: 11px; opacity: .82; }

.ops-cs-publish {
  margin: 16px 0;
  background: rgba(247, 250, 255, .84);
}

.ops-cs-source-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.ops-cs-source {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 64px;
  padding: 10px;
  border-radius: 12px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--hair);
}

.ops-cs-source > span:first-child {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 9px;
  color: var(--blue);
  background: rgba(0, 113, 227, .08);
}

.ops-cs-source > span svg,
.ops-cs-source > svg { width: 15px; height: 15px; }
.ops-cs-source > div { display: grid; gap: 2px; min-width: 0; }
.ops-cs-source b,
.ops-cs-source small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-cs-source b { font-size: 13px; }
.ops-cs-source small { color: var(--ink-3); font-size: 11px; }
.ops-cs-source.is-ready > svg { color: var(--green); }
.ops-cs-source.is-missing > svg { color: var(--amber); }

.ops-cs-fields {
  display: grid;
  grid-template-columns: minmax(360px, 1.25fr) minmax(250px, .75fr) auto;
  align-items: stretch;
  gap: 10px;
}

.ops-cs-fields > label {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 12px;
  border-radius: 13px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--hair);
}

.ops-cs-fields > label > span { font-size: 12px; font-weight: 800; }
.ops-cs-fields > label > small { color: var(--ink-3); font-size: 11px; line-height: 1.45; }
.ops-cs-fields textarea,
.ops-cs-fields input { width: 100%; min-width: 0; }
.ops-cs-fields textarea { resize: vertical; min-height: 58px; }

.ops-cs-actions {
  display: grid;
  align-content: stretch;
  gap: 8px;
  min-width: 176px;
}

.ops-cs-actions .btn { width: 100%; min-height: 46px; }
.ops-cs-note { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 10px; border-radius: 11px; font-size: 12px; font-weight: 700; }
.ops-cs-note.is-ok { color: #1f7a34; background: rgba(52, 199, 89, .09); }
.ops-cs-note.is-warn { color: #8a5200; background: rgba(255, 159, 10, .09); }
.ops-cs-note svg { width: 15px; height: 15px; flex: none; }

@media (max-width: 1500px) {
  .ops-cs-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-cs-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-cs-actions { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .cs-pack-layout,
  .cs-source-grid,
  .ops-cs-source-grid,
  .ops-cs-fields { grid-template-columns: 1fr; }
  .ops-cs-actions { grid-column: auto; grid-template-columns: 1fr; }
}

/* V102 · 新建 SKU：必填主线先完成，自动项与可后补项按职责渐进展开。 */
.drawer.wizard { width: min(1080px, calc(100vw - 32px)); max-width: none; }
.drawer.wizard .drawer-body { padding-top: 16px; }
.wiz-focus { display: grid; gap: 18px; padding: 20px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px rgba(0,0,0,.07); }
.wiz-focus-head { min-width: 0; display: grid; grid-template-columns: 50px minmax(0,1fr) auto; gap: 14px; align-items: center; }
.wiz-focus-number { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 8px; color: #fff; background: #0877df; font: 900 16px/1 var(--mono); }
.wiz-focus-head small,
.wiz-focus-head h3,
.wiz-focus-head p { display: block; margin: 0; }
.wiz-focus-head small { color: #0877df; font-size: 12px; font-weight: 800; }
.wiz-focus-head h3 { margin-top: 3px; color: #1d1d1f; font-size: 22px; line-height: 1.2; }
.wiz-focus-head p { margin-top: 5px; color: #6e6e73; font-size: 13px; line-height: 1.45; }
.wiz-focus-head > b { align-self: start; padding: 7px 10px; border-radius: 999px; color: #19713c; background: #e8f7ed; font-size: 12px; white-space: nowrap; }
.wiz-primary-field { display: grid; gap: 8px; min-width: 0; }
.wiz-primary-field > span,
.wiz-sku-head > div > span { display: flex; align-items: center; gap: 8px; color: #1d1d1f; font-size: 15px; font-weight: 800; }
.wiz-primary-field i,
.wiz-sku-head i { color: #0877df; font: 900 12px/1 var(--mono); font-style: normal; }
.wiz-primary-field em,
.wiz-sku-head em { padding: 4px 7px; border-radius: 999px; color: #9f2d24; background: #fff0ed; font: 800 11px/1 var(--sans); font-style: normal; }
.wiz-primary-field .wiz-name { min-height: 54px; margin: 0; padding: 14px 16px; border: 1px solid rgba(0,0,0,.11); border-radius: 8px; background: #fff; font-size: 18px; }
.wiz-primary-field > small { color: #6e6e73; font-size: 12px; line-height: 1.4; }
.wiz-sku-head { min-width: 0; display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.wiz-sku-head > div { min-width: 0; display: grid; gap: 5px; }
.wiz-sku-head small { color: #6e6e73; font-size: 12px; line-height: 1.4; }
.wiz-sku-head > b { color: #3a3a3c; font-size: 13px; white-space: nowrap; }
.wiz-sku-table { border: 1px solid rgba(0,0,0,.08); border-radius: 8px; background: #fafafa; }
.wiz-sku-table .sku-table { min-width: 680px; }
.wiz-sku-table .sku-table th { padding: 10px; color: #6e6e73; background: #f5f5f7; }
.wiz-sku-table .sku-table td { padding: 8px 10px; }
.wiz-sku-table .sku-table th:first-child,
.wiz-sku-table .sku-table td:first-child { width: 46px; }
.wiz-sku-table .sku-table th:nth-last-child(2),
.wiz-sku-table .sku-table td:nth-last-child(2) { width: 110px; }
.wiz-main-actions { margin: 0; }
.wiz-auto-note { color: #6e6e73; font-size: 12px; }
.wiz-handoff-map { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 14px 0 4px; border-top: 1px solid rgba(0,0,0,.08); border-bottom: 1px solid rgba(0,0,0,.08); }
.wiz-handoff-map > div { min-width: 0; display: grid; grid-template-columns: 24px 110px minmax(0,1fr); gap: 9px; align-items: center; padding: 12px 4px; }
.wiz-handoff-map > div + div { padding-left: 16px; border-left: 1px solid rgba(0,0,0,.08); }
.wiz-handoff-map .ic { width: 18px; height: 18px; color: #0877df; }
.wiz-handoff-map span { color: #6e6e73; font-size: 12px; font-weight: 700; }
.wiz-handoff-map b { overflow: hidden; color: #3a3a3c; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.wiz-secondary { border-bottom: 1px solid rgba(0,0,0,.08); }
.wiz-secondary-trigger { width: 100%; min-width: 0; display: grid; grid-template-columns: 36px minmax(0,1fr) auto 20px; gap: 11px; align-items: center; padding: 13px 4px; border: 0; background: transparent; color: #1d1d1f; text-align: left; cursor: pointer; }
.wiz-secondary-trigger:hover { background: #f8f8fa; }
.wiz-secondary-trigger > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; color: #0877df; background: #eef5ff; }
.wiz-secondary-trigger > span .ic { width: 17px; height: 17px; }
.wiz-secondary-trigger > div { min-width: 0; display: grid; gap: 3px; }
.wiz-secondary-trigger b { font-size: 14px; }
.wiz-secondary-trigger small { overflow: hidden; color: #6e6e73; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.wiz-secondary-trigger em { color: #6e6e73; font: 700 11px/1 var(--sans); font-style: normal; white-space: nowrap; }
.wiz-secondary-trigger > .ic { width: 17px; height: 17px; color: #8e8e93; transition: transform .18s ease; }
.wiz-secondary.is-open .wiz-secondary-trigger > .ic { transform: rotate(180deg); }
.wiz-secondary-body { padding: 2px 0 16px 46px; }
.wiz-secondary-body .wizard-supplier-dock { margin: 0; padding: 0; background: transparent; box-shadow: none; }
.wiz-secondary-body .ws-head { display: none; }
@media (max-width: 760px) {
  .drawer.wizard { width: 100vw; }
  .wiz-focus { padding: 15px; }
  .wiz-focus-head { grid-template-columns: 42px minmax(0,1fr); }
  .wiz-focus-number { width: 42px; height: 42px; }
  .wiz-focus-head > b { grid-column: 2; justify-self: start; }
  .wiz-sku-head { align-items: start; flex-direction: column; }
  .wiz-handoff-map { grid-template-columns: 1fr; }
  .wiz-handoff-map > div + div { padding-left: 4px; border-left: 0; border-top: 1px solid rgba(0,0,0,.08); }
  .wiz-secondary-trigger { grid-template-columns: 36px minmax(0,1fr) 20px; }
  .wiz-secondary-trigger em { display: none; }
  .wiz-secondary-body { padding-left: 0; }
}

@media (max-width: 980px) {
  .purchase-complete-bar,
  .qc-facts,
  .qc-issue-row {
    grid-template-columns: 1fr;
  }
  .purchase-complete-bar > .btn {
    width: 100%;
  }
  .qc-step-line {
    grid-template-columns: 1fr;
  }
  .qc-step-line > span {
    min-height: 40px;
  }
  .qc-issue-no {
    display: none;
  }
  .qc-issue-actions {
    justify-content: flex-end;
  }
}

/* ---------- 99 · Apple System Visual Overhaul v82 ---------- */

html { background: var(--bg); -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; }
body {
  color: var(--ink);
  background:
    radial-gradient(circle at 50% -18%, rgba(255,255,255,.95) 0, rgba(255,255,255,.50) 24%, rgba(245,245,247,0) 50%),
    linear-gradient(180deg, #fbfbfd 0%, #f5f5f7 44%, #f2f2f4 100%);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.22), rgba(255,255,255,0));
  z-index: -1;
}
::selection { background: rgba(var(--apple-blue-rgb), .18); }

.app-shell { max-width: 1500px; padding: 0 clamp(18px, 2.4vw, 34px) 36px; }
.topbar {
  max-width: 1120px;
  margin: 14px auto 18px;
  border: 1px solid rgba(0,0,0,.07);
  background: rgba(255,255,255,.78);
  -webkit-backdrop-filter: saturate(180%) blur(28px);
  backdrop-filter: saturate(180%) blur(28px);
  box-shadow: 0 1px 1px rgba(0,0,0,.03), 0 18px 48px rgba(0,0,0,.08);
}
.top-actions { gap: 8px; }
.station-chip b,
.station-title h1,
.hero-title h1,
.drawer-head b,
.sheet-head h2 { letter-spacing: 0; font-weight: 700; }
.station-chip small,
.station-title p,
.hero-title p,
.hint,
.hint-line,
.drawer-sec > h4,
.lc-title-copy small { color: var(--ink-3); }

.btn,
button,
.seg button,
.role-tabs button,
.lc-seg button {
  letter-spacing: 0;
  -webkit-tap-highlight-color: transparent;
}
.btn {
  min-height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.72);
  color: var(--ink);
  box-shadow: 0 1px 1px rgba(0,0,0,.03);
  transition: background .18s var(--ease), box-shadow .18s var(--ease), transform .14s var(--pop), color .18s var(--ease), border-color .18s var(--ease), filter .18s var(--ease), opacity .18s var(--ease);
}
.btn:hover { transform: translateY(-1px); background: rgba(255,255,255,.92); box-shadow: 0 8px 22px rgba(0,0,0,.08); }
.btn:active { transform: translateY(0) scale(.985); box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.btn.small,
.btn.large,
.qcc-ctrl .btn {
  border-radius: 999px;
}
.btn.primary,
.btn.is-primary,
.btn-blue,
.create-primary {
  color: #fff;
  background: var(--apple-blue);
  border-color: rgba(var(--apple-blue-rgb), .35);
  box-shadow: 0 10px 24px rgba(var(--apple-blue-rgb), .20);
}
.btn.primary:hover,
.btn.is-primary:hover,
.btn-blue:hover,
.create-primary:hover { background: #0077ed; box-shadow: 0 14px 34px rgba(var(--apple-blue-rgb), .26); }

.chip,
.tag,
.pill,
.badge,
.dc-kind,
.status-pill,
.lc-status-stack .chip,
.lc-miss {
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(118,118,128,.10);
  color: var(--ink-2);
  box-shadow: none;
  letter-spacing: 0;
}
.chip.hot,
.badge.bad,
.status-pill.bad { color: #b42318; background: rgba(255,59,48,.10); border-color: rgba(255,59,48,.12); }
.chip.ok,
.badge.ok,
.status-pill.ok { color: #1b7f38; background: rgba(52,199,89,.11); border-color: rgba(52,199,89,.14); }
.chip.warn,
.badge.warn,
.status-pill.warn { color: #9a5b00; background: rgba(255,159,10,.13); border-color: rgba(255,159,10,.16); }

.workspace,
.station,
.station-craft,
.focus-grid,
.brand-dashboard,
.dash-grid,
.manager-grid { gap: 18px; }
.station-head,
.zone,
.sku-card,
.decision-card,
.focus-card,
.supplier-card,
.listing-panel,
.drawer-card,
.sheet-card,
.brand-card,
.brand-group,
.task-card,
.lcard,
.panel,
.module,
.metric-card,
.heat-card,
.radar-card,
.source-card,
.cat-card,
.fg-card,
.fg-side,
.wizard-card,
.wizard-step,
.shoot-card,
.download-card,
.live-card,
.inventory-card {
  background: var(--card);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: var(--sh-1);
  -webkit-backdrop-filter: saturate(160%) blur(22px);
  backdrop-filter: saturate(160%) blur(22px);
}
.station-head {
  align-items: center;
  padding: clamp(16px, 2vw, 24px);
  border-radius: var(--r-xl);
}
.station-title .ic-wrap,
.sc-ic,
.role-ic,
.dc-icon,
.task-ic,
.sheet-card .sc-ic,
.lc-hero .lc-img {
  background: rgba(var(--apple-blue-rgb), .10);
  color: var(--apple-blue);
  box-shadow: inset 0 0 0 1px rgba(var(--apple-blue-rgb), .08);
}
.station-title h1 { font-size: clamp(28px, 3vw, 48px); line-height: 1.02; }
.station-title p { font-size: 14px; line-height: 1.55; max-width: 680px; }

.role-tabs,
.seg,
.lc-seg {
  background: rgba(118,118,128,.11);
  border: 1px solid rgba(0,0,0,.04);
  border-radius: 999px;
  padding: 4px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}
.role-tabs button,
.seg button,
.lc-seg button {
  min-height: 30px;
  border-radius: 999px;
  color: var(--ink-2);
  font-weight: 600;
}
.role-tabs button.is-active,
.seg button.is-active,
.lc-seg button.is-active {
  color: var(--ink);
  background: rgba(255,255,255,.92);
  box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 8px 18px rgba(0,0,0,.06);
}

.identity-card .load-track { height: 7px; border-radius: 999px; background: rgba(0,0,0,.08); }
.identity-card .load-fill { border-radius: 999px; background: linear-gradient(90deg, var(--apple-blue), #5ac8fa); }
.identity-card.is-hot .load-fill { background: linear-gradient(90deg, var(--apple-red), var(--apple-orange)); }
.director-station { isolation: isolate; }
.director-hero { background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(247,250,255,.82)); }
.director-hero .chip.tint { box-shadow: inset 0 0 0 1px rgba(58,123,213,.14); }
.director-compass {
  display: grid;
  grid-template-columns: 220px minmax(0, 1.15fr) minmax(260px, .9fr);
  gap: 14px;
  align-items: stretch;
}
.dcp-ring,
.dcp-core,
.dcp-heat {
  min-width: 0;
  border-radius: 28px;
  border: 1px solid rgba(0,0,0,.07);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,255,.76));
  box-shadow: var(--sh-1);
}
.dcp-ring {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  padding: 20px;
  text-align: center;
}
.dcp-ring p {
  display: grid;
  gap: 4px;
  font-size: 15px;
  font-weight: 700;
}
.dcp-ring p span {
  max-width: 170px;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
}
.dcp-core {
  display: grid;
  gap: 14px;
  padding: 18px;
}
.dcp-title h2 {
  font-size: clamp(22px, 2vw, 32px);
  line-height: 1.05;
  letter-spacing: 0;
}
.dcp-title p {
  margin-top: 6px;
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.55;
}
.dir-quads {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}
.dir-quad {
  min-height: 102px;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 13px;
  border-radius: 22px;
  background: rgba(var(--tint-rgb), .075);
  box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .11);
}
.dir-quad .dq-ic {
  width: 30px;
  height: 30px;
  border-radius: 12px;
}
.dir-quad b {
  font-size: 28px;
  line-height: 1;
}
.dir-quad small {
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 600;
}
.dir-progress {
  display: grid;
  grid-template-columns: minmax(110px, .34fr) minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 20px;
  background: rgba(118,118,128,.08);
}
.dir-progress b {
  display: block;
  font-size: 13px;
}
.dir-progress small {
  color: var(--ink-3);
  font-size: 12px;
}
.dir-band {
  height: 16px;
  display: flex;
  gap: 3px;
  padding: 3px;
  border-radius: 999px;
  background: rgba(0,0,0,.06);
  overflow: hidden;
}
.dir-band span {
  min-width: 7px;
  border-radius: 999px;
  background: var(--band);
}
.dcp-heat {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 14px;
}
.dcp-heat-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 2px 2px 6px;
}
.dcp-heat-head b { font-size: 15px; }
.dcp-heat-head small {
  color: var(--ink-3);
  font-size: 12px;
}
.dir-heat-row {
  display: grid;
  grid-template-columns: minmax(76px, .8fr) minmax(72px, 1fr) 42px auto;
  gap: 8px;
  align-items: center;
  width: 100%;
  min-height: 42px;
  padding: 8px 9px;
  border: 0;
  border-radius: 15px;
  background: rgba(var(--tint-rgb), .07);
  color: var(--ink);
  text-align: left;
}
.dir-heat-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
}
.dir-heat-row i {
  height: 7px;
  border-radius: 999px;
  background: rgba(0,0,0,.08);
  overflow: hidden;
}
.dir-heat-row i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--tint);
}
.dir-heat-row em {
  color: var(--ink-2);
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
}
@media (max-width: 1180px) {
  .director-compass { grid-template-columns: 190px minmax(0, 1fr); }
  .dcp-heat { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .director-compass { grid-template-columns: 1fr; }
  .dir-quads { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dir-progress { grid-template-columns: 1fr; }
}
.decision-card.k-gate { border-color: rgba(58,123,213,.22); background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,250,255,.88)); }
.id-photo,
.avatar,
.person-photo {
  border-radius: 24px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.58), 0 12px 26px rgba(0,0,0,.12);
}

.sku-card,
.decision-card,
.focus-card,
.supplier-card,
.brand-card,
.brand-group,
.task-card {
  border-radius: 20px;
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.sku-card:hover,
.decision-card:hover,
.focus-card:hover,
.supplier-card:hover,
.brand-card:hover,
.task-card:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--apple-blue-rgb), .18);
  box-shadow: 0 2px 6px rgba(0,0,0,.06), 0 26px 60px rgba(0,0,0,.10);
}
.sku-card:active,
.decision-card:active,
.focus-card:active,
.supplier-card:active,
.brand-card:active,
.task-card:active { transform: scale(.992); }
.sku-card h3,
.decision-card h3,
.focus-card h3,
.supplier-card h3,
.brand-card h3 { font-weight: 700; letter-spacing: 0; }
.progress,
.rail,
.load-track,
.bar-track {
  background: rgba(0,0,0,.075);
  border-radius: 999px;
  overflow: hidden;
}
.progress > *,
.rail-fill,
.load-fill,
.bar-fill {
  border-radius: inherit;
  background: linear-gradient(90deg, var(--apple-blue), var(--apple-green));
}

input,
textarea,
select,
.gs-in,
.lf-in,
.lc-line-in,
.lc-area-in,
.lc-tv-price-input,
.sc-edit input,
.rename-input,
.search-input {
  color: var(--ink);
  caret-color: var(--apple-blue);
  border-radius: 14px;
}
input:not([type="checkbox"]):not([type="radio"]),
textarea,
select,
.gs-in,
.lc-area-in,
.sc-edit input,
.rename-input,
.search-input {
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.025);
}
input:focus,
textarea:focus,
select:focus,
.gs-in:focus,
.lc-area-in:focus,
.rename-input:focus,
.search-input:focus {
  outline: none;
  border-color: rgba(var(--apple-blue-rgb), .55);
  box-shadow: 0 0 0 4px rgba(var(--apple-blue-rgb), .13), inset 0 1px 1px rgba(0,0,0,.02);
}

.drawer-mask,
.sheet-backdrop { background: rgba(232,232,237,.60); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); }
.drawer,
.lc-panel,
.sheet-doc {
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 30px 90px rgba(0,0,0,.20);
  -webkit-backdrop-filter: saturate(170%) blur(30px);
  backdrop-filter: saturate(170%) blur(30px);
}
.drawer-head,
.drawer-foot {
  background: rgba(255,255,255,.72);
  -webkit-backdrop-filter: saturate(170%) blur(24px);
  backdrop-filter: saturate(170%) blur(24px);
}
.sheet-doc { border-radius: 28px; overflow: hidden; }
.sheet-grid .sg,
.sheet-signs .sign,
.sheet-note { background: rgba(118,118,128,.09); border: 1px solid rgba(0,0,0,.045); }

/* 电视投屏：左链接、右重点，一屏读完 */
.lc-tv-stage {
  color: var(--ink);
  background:
    radial-gradient(circle at 68% 8%, rgba(255,255,255,.96) 0, rgba(255,255,255,.40) 24%, rgba(245,245,247,0) 55%),
    linear-gradient(180deg, #fbfbfd 0%, #f5f5f7 100%);
}
.lc-tv-rail {
  background: rgba(255,255,255,.72);
  border-right: 1px solid rgba(0,0,0,.07);
  box-shadow: 12px 0 36px rgba(0,0,0,.04);
  -webkit-backdrop-filter: saturate(170%) blur(26px);
  backdrop-filter: saturate(170%) blur(26px);
}
.lc-tv-rail h2,
.lc-tv-rail h3,
.lc-tv-rail b { color: var(--ink); letter-spacing: 0; }
.lc-tv-rail small,
.lc-tv-rail p,
.lc-tv-rail span { color: var(--ink-3); }
.lc-tv-rail .search-input,
.lc-tv-rail input {
  min-height: 44px;
  background: rgba(118,118,128,.10);
  border: 1px solid rgba(0,0,0,.06);
}
.lc-tv-rail .sku-card,
.lc-tv-rail .live-row,
.lc-tv-rail .scan-row {
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(0,0,0,.065);
  border-radius: 18px;
  box-shadow: none;
}
.lc-tv-rail .sku-card.is-on,
.lc-tv-rail .live-row.is-on,
.lc-tv-rail .scan-row.is-on {
  border-color: rgba(var(--apple-blue-rgb), .45);
  box-shadow: 0 0 0 4px rgba(var(--apple-blue-rgb), .10), 0 16px 36px rgba(0,0,0,.08);
}
.lc-tv-main {
  background: transparent;
  padding: 20px clamp(20px, 2vw, 34px) 24px;
}
.lc-tv-bar {
  min-height: 56px;
  background: linear-gradient(180deg, rgba(251,251,253,.96) 0%, rgba(251,251,253,.78) 74%, rgba(251,251,253,0) 100%);
  -webkit-backdrop-filter: saturate(170%) blur(18px);
  backdrop-filter: saturate(170%) blur(18px);
}
.lc-tv-bar > div:first-child b {
  font: 700 30px/1 var(--sans);
  letter-spacing: 0;
  color: var(--ink);
}
.lc-tv-bar > div:first-child small {
  color: var(--ink-3);
  font: 600 13px/1.2 var(--sans);
}
.lc-tv-main .lc-warcard.is-tv {
  background: transparent;
  color: var(--ink);
}
.lc-tv-main .lc-title-band {
  padding: 18px 22px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 24px;
  background: rgba(255,255,255,.76);
  box-shadow: var(--sh-1);
  -webkit-backdrop-filter: saturate(170%) blur(24px);
  backdrop-filter: saturate(170%) blur(24px);
}
.lc-tv-main .lc-title-copy small {
  color: var(--ink-3);
  font: 700 14px/1.2 var(--sans);
}
.lc-tv-main .lc-title-copy h2 {
  color: var(--ink);
  font: 700 44px/1.06 var(--sans);
  letter-spacing: 0;
}
.lc-tv-main .lc-title-copy p {
  color: var(--ink-2);
  font: 600 17px/1.35 var(--sans);
}
.lc-tv-main .lc-status-stack .chip {
  padding: 8px 12px;
  font-size: 14px;
  background: rgba(118,118,128,.10);
}
.lc-tv-focus { gap: 16px; margin-top: 16px; }
.lc-tv-open {
  position: relative;
  padding: 24px 28px;
  border-radius: 26px;
  background: rgba(255,255,255,.84);
  box-shadow: var(--sh-2);
  border: 1px solid rgba(0,0,0,.08);
  overflow: hidden;
}
.lc-tv-open::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  background: linear-gradient(180deg, var(--apple-red), #ff7b72);
}
.lc-tv-open small,
.lc-tv-risk small,
.lc-tv-deal small {
  display: block;
  color: var(--ink-3);
  font: 700 16px/1 var(--sans);
  margin-bottom: 10px;
}
.lc-tv-open b {
  color: #e11d2e;
  font: 800 50px/1.12 var(--sans);
  letter-spacing: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  text-shadow: none;
}
.lc-tv-main.is-talk .lc-tv-open b { font: 800 50px/1.12 var(--sans); }
.lc-tv-main.is-talk .lc-tv-line b { font: 700 28px/1.28 var(--sans); }
.lc-tv-main.is-talk .lc-tv-risk b { font: 700 31px/1.24 var(--sans); }
.lc-tv-deal {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
}
.lc-tv-deal > div,
.lc-tv-cost,
.lc-tv-risk,
.lc-tv-must {
  border-radius: 24px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.075);
  box-shadow: var(--sh-1);
}
.lc-tv-deal > div {
  min-height: 122px;
  padding: 18px 20px;
  display: grid;
  align-content: center;
}
.lc-tv-deal b {
  color: var(--ink);
  font: 700 32px/1.16 var(--sans);
  letter-spacing: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.lc-tv-deal > div:first-child {
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,245,245,.86));
  border-color: rgba(255,59,48,.18);
}
.lc-tv-deal > div:first-child b,
.lc-tv-price-input {
  color: #e11d2e;
  font: 800 52px/1.05 var(--sans);
}
.lc-tv-price-input:focus { box-shadow: inset 0 -3px 0 rgba(225,29,46,.30); }
.lc-tv-cost {
  padding: 18px 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,249,236,.86));
  border-color: rgba(255,159,10,.18);
}
.lc-tv-cost small { color: #a15c00; font: 700 15px/1 var(--sans); }
.lc-tv-cost b { color: var(--ink); font: 700 29px/1.2 var(--sans); letter-spacing: 0; }
.lc-tv-cost span { color: var(--ink-2); font: 600 15px/1.45 var(--sans); }
.lc-tv-must {
  padding: 20px;
  display: grid;
  gap: 12px;
}
.lc-tv-must h3 {
  color: var(--ink);
  font: 700 34px/1.06 var(--sans);
  letter-spacing: 0;
}
.lc-tv-line {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 14px;
  align-items: start;
  padding: 15px 16px;
  border-radius: 18px;
  background: rgba(var(--apple-blue-rgb), .055);
  box-shadow: inset 4px 0 0 var(--apple-blue);
}
.lc-tv-line span {
  color: #cc1f3c;
  font: 700 32px/1 var(--mono);
  letter-spacing: 0;
}
.lc-tv-line b {
  color: var(--ink);
  font: 700 28px/1.28 var(--sans);
  letter-spacing: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.lc-tv-risk {
  display: grid;
  gap: 8px;
  padding: 18px 20px;
  background: rgba(240,255,246,.80);
  border-color: rgba(52,199,89,.18);
}
.lc-tv-risk small { color: #248a3d; margin-bottom: 0; }
.lc-tv-risk b { color: #187431; font: 700 31px/1.24 var(--sans); letter-spacing: 0; }
.lc-tv-risk.bad {
  background: rgba(255,244,244,.84);
  border-color: rgba(255,59,48,.20);
}
.lc-tv-risk.bad small,
.lc-tv-risk.bad b { color: #d92d20; }

/* 直播编辑卡：去 PPT 感，保留大信息量但有主次 */
.lc-warcard {
  --card-ink: var(--ink);
  --live-purple: var(--apple-purple);
  --live-red: #e11d2e;
  --live-orange: var(--apple-orange);
  --live-green: #248a3d;
  --live-blue: var(--apple-blue);
  color: var(--ink);
  background: transparent;
}
.lc-title-band {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 24px;
  background: rgba(255,255,255,.82);
  box-shadow: var(--sh-1);
  -webkit-backdrop-filter: saturate(170%) blur(22px);
  backdrop-filter: saturate(170%) blur(22px);
}
.lc-title-copy h2 { color: var(--ink); font-weight: 700; }
.lc-title-copy p { color: var(--ink-2); }
.lc-product-panel,
.lc-script-block,
.lc-qa,
.lc-oneline,
.lc-sell-title,
.lc-main-points,
.lc-proof-card,
.lc-ledger {
  border: 1px solid rgba(0,0,0,.075);
  border-radius: 22px;
  background: rgba(255,255,255,.82);
  box-shadow: var(--sh-1);
}
.lc-photo-stage {
  background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(242,244,247,.86));
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: inset 0 1px 1px rgba(255,255,255,.70);
}
.lc-info-row,
.lg-cell,
.lf-cell,
.lc-area-in,
.lc-qa-row {
  background: rgba(118,118,128,.09);
  border: 1px solid rgba(0,0,0,.045);
  box-shadow: none;
}
.lc-info-row span,
.lc-copy-grid label span,
.lc-qa-row b {
  color: var(--ink-3);
  font-weight: 700;
}
.lc-info-row.red .lc-line-in,
.lc-info-row.red b,
.lc-oneline b { color: #e11d2e; }
.lc-info-row.blue .lc-line-in,
.lc-info-row.blue b { color: var(--apple-blue); }
.lc-section-title,
.lc-sell-title b {
  color: var(--ink);
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}
.lc-proof-card::before { width: 4px; background: var(--apple-blue); }
.lc-proof-card.hot::before { background: var(--apple-red); }
.lc-proof-card.green::before { background: var(--apple-green); }
.lc-proof-card.blue::before { background: var(--apple-blue); }
.lc-proof-card.purple::before { background: var(--apple-purple); }
.lc-proof-card.amber::before { background: var(--apple-orange); }
.lc-proof-head i {
  border-radius: 999px;
  background: var(--apple-blue);
  box-shadow: 0 8px 18px rgba(var(--apple-blue-rgb), .20);
}
.lc-proof-head span {
  color: #9a5b00;
  background: rgba(255,159,10,.14);
}
.lc-proof-head b,
.lc-proof-card p,
.lc-proof-line span { color: var(--ink); }
.lc-proof-line svg { color: var(--apple-green); }
.lc-oneline {
  background: linear-gradient(90deg, rgba(255,248,218,.88), rgba(255,255,255,.86) 72%);
}
.lc-warning-strip {
  background: rgba(255,249,236,.86);
  color: #8a5b00;
  border: 1px solid rgba(255,159,10,.16);
}
.lc-warning-strip.is-calm {
  background: rgba(118,118,128,.08);
  color: var(--ink-2);
  border-color: rgba(0,0,0,.05);
}

.sheet-doc { background: var(--card-solid); }
.drawer, .lc-panel { box-shadow: var(--sh-float); }
.lc-status-stack .chip, .lc-info-row em, .lc-proof-head span { border-radius: var(--r-s); }
.avatar.small { font-size: 11px; }
.gs-k { font: 600 11px/1 var(--mono); }

/* ---------- FINAL · 顶栏防溢出 + 样品报告模板 ---------- */
.topbar {
  width: 100%;
  max-width: 1380px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(210px, 330px) minmax(0, .8fr) minmax(220px, 340px) auto;
  align-items: center;
  gap: 10px;
  overflow: hidden;
}
.station-chip { min-width: 0; max-width: 330px; overflow: hidden; }
.station-chip > div { min-width: 0; overflow: hidden; }
.station-chip b,
.station-chip small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gsearch { min-width: 0; width: 100%; max-width: none; }
.top-actions {
  min-width: 0;
  white-space: nowrap;
  justify-self: end;
  overflow: hidden;
}
.top-actions .btn.small { padding-left: 10px; padding-right: 10px; }
.user-chip {
  max-width: 136px;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
}
.user-chip .hide-m {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 1320px) {
  .topbar { grid-template-columns: minmax(210px, 320px) minmax(230px, 1fr) auto; }
  .today-signal { display: none; }
}
@media (max-width: 860px) {
  .topbar { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  .gsearch { grid-column: 1 / -1; order: 3; }
  .top-actions .hide-m { display: none; }
  .user-chip { padding-right: 3px; }
}

.report-template {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: var(--r-l);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,249,252,.96));
  box-shadow: inset 0 0 0 1px var(--hair-2), var(--sh-1);
}
.rt-head {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.rt-head > div {
  flex: 1;
  min-width: 0;
}
.rt-head b {
  display: block;
  font-size: 15px;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rt-head small {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rt-grid {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) minmax(280px, 1.5fr) minmax(180px, .8fr);
  gap: 10px;
  align-items: stretch;
}
.rt-box {
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  box-shadow: inset 0 0 0 1px var(--hair-2);
}
.rt-box h4 {
  color: var(--ink);
  font-size: 13px;
}
.rt-box span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--ink-2);
  font-size: 12px;
  line-height: 1.35;
}
.rt-box span .ic {
  color: var(--tint);
  width: 13px;
  height: 13px;
}
.rt-test {
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border-radius: 10px;
  background: rgba(var(--tint-rgb), .055);
}
.rt-test b {
  font-size: 13px;
  color: var(--ink);
}
.rt-test small {
  color: var(--ink-2);
  font-size: 12px;
}
.rt-test em {
  color: var(--green-text);
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
}
@media (max-width: 980px) {
  .rt-grid { grid-template-columns: 1fr; }
  .rt-head { align-items: flex-start; }
  .rt-head small { white-space: normal; }
}
.sample-library { --tint: var(--sample); }
.rt-library-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.rt-lib-card {
  min-height: 112px;
  padding: 14px;
  border-radius: 24px;
  border: 1px solid rgba(0,0,0,.07);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(247,250,249,.72));
  box-shadow: var(--shadow-1);
}
.rt-lib-card b {
  display: block;
  font-size: 17px;
  line-height: 1.15;
}
.rt-lib-card small {
  display: block;
  margin-top: 8px;
  color: var(--ink-3);
  font-size: 12px;
  line-height: 1.45;
}
.rt-lib-card span {
  display: block;
  margin-top: 10px;
  color: var(--ink-2);
  font-size: 12px;
  line-height: 1.45;
}
.rt-detail-list {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}
.rt-lib-detail {
  padding: 14px;
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.07);
  background: #fff;
}
.rt-lib-detail h4 {
  margin-bottom: 6px;
  font-size: 15px;
}
.rt-lib-detail p {
  color: var(--ink-2);
  font-size: 12px;
  line-height: 1.55;
}
.rt-detail-cols {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr);
  gap: 10px;
  margin-top: 10px;
}
.rt-detail-cols div {
  display: grid;
  gap: 7px;
}
.rt-detail-cols span {
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  border-radius: 14px;
  background: var(--fill);
  color: var(--ink-2);
  font-size: 12px;
}
.rt-detail-cols b { color: var(--ink); }
.rt-detail-cols em {
  color: var(--green-text);
  font-style: normal;
}
@media (max-width: 980px) {
  .rt-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rt-detail-cols { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .rt-library-grid { grid-template-columns: 1fr; }
}
.dc-money small { font-size: 11px; }

/* ---------- V28 · 可用性补强：真实上传、历史库、直播控台、采购下单 ---------- */
.station, .zone, .focus-card, .focus-body, .report-template, .sample-library { min-width: 0; max-width: 100%; }
.sample-library { overflow: hidden; }
.rt-library-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.rt-lib-card { min-width: 0; overflow: hidden; }
.file-chips.rich {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 9px;
  margin-top: 10px;
}
.file-chip {
  min-width: 0;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07);
}
.file-chip img, .file-chip i {
  grid-row: 1 / 3;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: rgba(var(--tint-rgb), .10);
  color: var(--tint-text, var(--tint));
  font-style: normal;
}
.file-chip svg { width: 16px; height: 16px; }
.file-chip b, .file-chip small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.file-chip b { font-size: 13px; }
.file-chip small { color: var(--ink-3); font-size: 11px; }
.file-chip em {
  align-self: center;
  color: var(--green);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}
.file-chip.is-error em { color: var(--red); }
.file-chip > button {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: var(--ink-3);
  background: transparent;
  cursor: pointer;
}
.file-chip > button:hover,
.file-chip > button:focus-visible {
  color: var(--red);
  background: rgba(255, 59, 48, .08);
}
.file-chip > button svg { width: 14px; height: 14px; }
.sample-report-editor {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(247,250,249,.74));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07);
  margin: 12px 0;
}
.sample-editor-head, .sample-editor-head > div {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.sample-editor-head { justify-content: space-between; }
.sample-editor-head b { display: block; font-size: 15px; }
.sample-editor-head small { display: block; color: var(--ink-3); font-size: 12px; }
.sample-verdict { display: flex; flex-wrap: wrap; gap: 7px; }
.sample-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.sample-fields label, .design-brief-line {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.sample-fields span, .design-brief-line span {
  color: var(--ink-3);
  font: 700 12px/1.2 var(--sans);
}
.sample-fields textarea, .sample-fields input, .design-brief-line textarea {
  width: 100%;
  min-width: 0;
  resize: vertical;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 13px;
  padding: 10px 12px;
  background: rgba(255,255,255,.82);
  color: var(--ink);
  font: 600 13px/1.5 var(--sans);
  outline: none;
}
.sample-fields input {
  height: 42px;
  resize: none;
}
.sample-fields textarea:focus, .sample-fields input:focus, .design-brief-line textarea:focus {
  border-color: rgba(var(--tint-rgb), .45);
  box-shadow: 0 0 0 4px rgba(var(--tint-rgb), .10);
}
.sample-table-editor {
  gap: 10px;
}
.sample-verdict.compact {
  margin-top: -2px;
}
.sample-table-wrap {
  width: 100%;
  overflow-x: auto;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.07);
  background: rgba(255,255,255,.9);
}
.sample-edit-table {
  width: 100%;
  min-width: 680px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}
.sample-edit-table th {
  text-align: left;
  padding: 10px 12px;
  color: var(--ink-3);
  font: 700 12px/1.2 var(--sans);
  background: rgba(245,246,248,.86);
}
.sample-edit-table td {
  padding: 10px 12px;
  border-top: 1px solid rgba(0,0,0,.06);
  vertical-align: top;
}
.sample-edit-table th:nth-child(1),
.sample-edit-table td:nth-child(1) {
  width: 56px;
  text-align: center;
}
.sample-edit-table th:nth-child(2),
.sample-edit-table td:nth-child(2) {
  width: 150px;
}
.sample-edit-table td b {
  color: var(--sample);
  font: 800 13px/1 var(--sans);
}
.sample-edit-table td span {
  display: block;
  padding-top: 10px;
  color: var(--ink);
  font: 700 14px/1.25 var(--sans);
  word-break: keep-all;
}
.sample-edit-table textarea {
  width: 100%;
  min-height: 46px;
  resize: vertical;
  border: 0;
  border-radius: 13px;
  padding: 10px 12px;
  background: rgba(245,246,248,.9);
  color: var(--ink);
  font: 700 14px/1.45 var(--sans);
  outline: none;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.sample-edit-table textarea:focus {
  background: #fff;
  box-shadow: 0 0 0 3px rgba(var(--tint-rgb), .14), inset 0 0 0 1px rgba(var(--tint-rgb), .35);
}
.launch-fields {
  margin: 10px 0 12px;
}
@media (max-width: 720px) {
  .sample-edit-table {
    min-width: 560px;
  }
  .sample-edit-table th:nth-child(2),
  .sample-edit-table td:nth-child(2) {
    width: 118px;
  }
}

/* V62 · SKU 身份证沉浸查看：解决窄抽屉裁切、DAG 只能看半截、节目卡无法全屏的问题 */
.drawer.sku-drawer {
  top: 18px;
  right: 18px;
  bottom: 18px;
  left: 18px;
  width: auto;
  max-width: none;
  border-radius: 30px;
  overflow: hidden;
  transform: translateY(18px) scale(.985);
  opacity: 0;
}
.drawer-layer.is-open .drawer.sku-drawer {
  transform: none;
  opacity: 1;
}
.sku-drawer-head {
  position: sticky;
  top: 0;
  min-height: 68px;
}
.sku-drawer-head > div:first-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.sku-drawer-head b {
  font-size: 18px;
  letter-spacing: 0;
}
.sku-drawer-head small {
  color: var(--ink-3);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.drawer-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  flex: none;
}
.sku-drawer .drawer-body {
  padding: 22px clamp(20px, 3.4vw, 44px) 34px;
  display: grid;
  gap: 18px;
}
.sku-drawer .drawer-foot {
  min-height: 64px;
}
.sku-drawer .identity-band {
  padding: clamp(20px, 2.2vw, 30px);
  border-radius: 28px;
  gap: 18px;
}
.sku-drawer .ib-top {
  align-items: center;
}
.sku-drawer .ib-name h2 {
  font-size: clamp(28px, 4.2vw, 52px);
  line-height: 1.05;
  letter-spacing: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.sku-drawer .ib-name .sku-path {
  row-gap: 8px;
}
.sku-drawer .ib-code {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px 20px;
}
.sku-drawer .ib-code b {
  display: block;
  min-width: 0;
  font-size: 18px;
  overflow-wrap: anywhere;
}
.sku-drawer .sku-life-note.in-band {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: start;
  gap: 8px 10px;
}
.sku-drawer .sku-life-note.in-band span {
  display: block;
  min-width: 0;
  font-size: 13px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
.sku-drawer .drawer-sec {
  margin-top: 0;
}
.sku-drawer .drawer-sec > h4 {
  min-height: 34px;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: 15px;
}
.dag-preview-card {
  padding: 16px;
  border-radius: 24px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055), 0 18px 42px rgba(0,0,0,.08);
}
.sku-drawer .dag-scroll {
  max-height: min(58vh, 680px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 14px 12px 18px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,247,250,.9));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.045);
}
.dag-wrap.full {
  min-height: 0;
}
.dag-wrap.full .dag-meta {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 6px 0 10px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.78));
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
}
.dag-wrap.full .dag-scroll {
  height: calc(100vh - 190px);
  overflow: auto;
  padding: 18px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 24px 24px, rgba(10,132,255,.055) 0 2px, transparent 3px) 0 0 / 32px 32px,
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,247,250,.95));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.dag-wrap.full .dag-node {
  border-radius: 22px;
  padding: 0 18px;
}
.dag-wrap.full .dn-ic {
  width: 46px;
  height: 46px;
  border-radius: 16px;
}
.dag-wrap.full .dn-main b {
  font-size: 16px;
}
.dag-wrap.full .dn-main small {
  font-size: 12px;
}
.dag-fullscreen {
  position: fixed;
  inset: 10px;
  z-index: 6;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  border-radius: 32px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 40px 120px rgba(0,0,0,.26);
  -webkit-backdrop-filter: blur(28px) saturate(170%);
  backdrop-filter: blur(28px) saturate(170%);
  overflow: hidden;
}
.dag-full-head,
.dag-full-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px clamp(18px, 3vw, 34px);
  background: rgba(255,255,255,.68);
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
}
.dag-full-head > div:first-child,
.dag-full-foot {
  min-width: 0;
}
.dag-full-head > div:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
}
.dag-full-head b {
  display: block;
  max-width: 58vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: clamp(18px, 2.4vw, 30px);
  letter-spacing: 0;
}
.dag-full-head small,
.dag-full-foot span {
  color: var(--ink-3);
  font-size: 13px;
}
.dag-full-body {
  min-height: 0;
  padding: 14px clamp(14px, 2.4vw, 28px) 18px;
  overflow: hidden;
}
.dag-full-foot {
  justify-content: flex-start;
  box-shadow: 0 -1px 0 rgba(0,0,0,.06);
}
.dag-full-foot .ic {
  flex: none;
  color: var(--apple-blue);
}

@media (max-width: 860px) {
  .drawer.sku-drawer,
  .dag-fullscreen {
    inset: 0;
    border-radius: 0;
  }
  .sku-drawer .drawer-body {
    padding: 16px 12px 26px;
  }
  .sku-drawer .ib-name h2 {
    font-size: 28px;
  }
  .sku-drawer .sku-life-note.in-band {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .sku-drawer .sku-life-note.in-band span {
    grid-column: 1 / -1;
  }
  .dag-full-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .dag-full-head b {
    max-width: 92vw;
  }
}
.design-clean {
  display: grid;
  gap: 13px;
  min-width: 0;
}
.design-now {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(var(--tint-rgb), .08);
  box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .16);
}
.design-now b { display: block; font-size: 16px; }
.design-now small { display: block; color: var(--ink-2); margin-top: 2px; }
.dspec.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.design-ref-fold { display: grid; gap: 12px; margin-top: 10px; }

/* 文案命名台 / 商品详情备案资料区：主输入放大，参考信息折叠 */
.copy-stage,
.reg-stage {
  display: grid;
  gap: 14px;
  min-width: 0;
}
.copy-main-card,
.copy-point-card,
.reg-primary {
  min-width: 0;
  padding: clamp(14px, 1.4vw, 22px);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,249,252,.82));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06), 0 18px 48px rgba(20,20,30,.07);
}
.copy-titlebar,
.reg-titlebar {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 14px;
}
.copy-titlebar > div,
.reg-titlebar > div {
  min-width: 0;
  flex: 1;
}
.copy-titlebar b,
.reg-titlebar b {
  display: block;
  font-size: 18px;
  line-height: 1.15;
}
.copy-titlebar small,
.reg-titlebar small {
  display: block;
  margin-top: 3px;
  color: var(--ink-3);
  font-weight: 600;
}
.copy-big-grid,
.reg-fields {
  display: grid;
  grid-template-columns: minmax(280px, 1.1fr) minmax(220px, .9fr);
  gap: 12px;
}
.copy-field,
.reg-field {
  display: grid;
  gap: 7px;
  min-width: 0;
}
.copy-field.full,
.reg-field.full { grid-column: 1 / -1; }
.copy-field span,
.reg-field span {
  color: var(--ink-3);
  font: 700 12px/1.1 var(--sans);
}
.copy-field input,
.copy-field textarea,
.reg-field input,
.reg-field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  color: var(--ink);
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
  font: 700 15px/1.45 var(--sans);
}
.copy-field input,
.reg-field input {
  height: 50px;
  padding: 0 14px;
}
.copy-field textarea,
.reg-field textarea {
  resize: vertical;
  min-height: 72px;
  padding: 13px 14px;
}
.copy-field.hero input,
.reg-field.hero input {
  height: 60px;
  font-size: clamp(22px, 1.7vw, 30px);
  font-weight: 900;
  letter-spacing: 0;
}
.copy-field input:focus,
.copy-field textarea:focus,
.reg-field input:focus,
.reg-field textarea:focus,
.reg-row input:focus,
.copy-point input:focus {
  border-color: rgba(var(--tint-rgb), .42);
  box-shadow: 0 0 0 4px rgba(var(--tint-rgb), .12), inset 0 1px 0 rgba(255,255,255,.9);
}
.copy-point {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: 18px;
  background: rgba(245,248,255,.88);
  box-shadow: inset 5px 0 0 var(--apple-blue), inset 0 0 0 1px rgba(0,0,0,.04);
}
.copy-point + .copy-point { margin-top: 8px; }
.copy-point b {
  color: var(--crimson);
  font: 900 24px/1 var(--mono);
}
.copy-point input {
  width: 100%;
  min-width: 0;
  height: 50px;
  border: 0;
  border-radius: 13px;
  padding: 0 12px;
  background: rgba(255,255,255,.82);
  color: var(--ink);
  font: 800 18px/1.25 var(--sans);
  outline: none;
}
.copy-alerts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.copy-ref-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: 12px;
}
.reg-table {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.reg-head,
.reg-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(130px, .7fr) minmax(220px, 1.1fr) auto;
  gap: 8px;
  align-items: center;
}
.reg-head {
  color: var(--ink-3);
  font: 700 12px/1 var(--sans);
  padding: 0 8px;
}
.reg-row {
  padding: 8px;
  border-radius: 16px;
  background: rgba(118,118,128,.07);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.045);
}
.reg-row input {
  width: 100%;
  min-width: 0;
  height: 42px;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 12px;
  padding: 0 10px;
  background: rgba(255,255,255,.88);
  color: var(--ink);
  font: 700 14px/1.2 var(--sans);
  outline: none;
}
@media (min-width: 1500px) {
  .station[data-role="copy"] .focus-grid,
  .station[data-role="compliance"] .focus-grid {
    grid-template-columns: minmax(0, 1.68fr) minmax(360px, .82fr);
  }
}
@media (max-width: 860px) {
  .copy-big-grid,
  .reg-fields,
  .copy-ref-grid,
  .reg-head,
  .reg-row {
    grid-template-columns: 1fr;
  }
  .reg-head { display: none; }
  .copy-field.hero input,
  .reg-field.hero input { font-size: 22px; }
  .copy-point { grid-template-columns: 44px minmax(0, 1fr); }
}
.archive-panel {
  display: grid;
  gap: 10px;
}
.archive-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07);
}
.archive-head > div {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.archive-head svg { width: 18px; height: 18px; color: var(--apple-blue); flex: none; }
.archive-head b { display: block; font-size: 15px; }
.archive-head small {
  display: block;
  color: var(--ink-3);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.archive-input { width: min(360px, 42vw); }
.archive-list { display: grid; gap: 8px; }
.archive-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
  cursor: pointer;
  transition: background .18s var(--ease), box-shadow .18s var(--ease), transform .16s var(--pop);
}
.archive-row:hover { background: rgba(255,255,255,.96); box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .20), 0 8px 22px rgba(0,0,0,.06); }
.archive-row b, .archive-row small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.archive-row small { color: var(--ink-3); font-size: 12px; }
.archive-files { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; max-width: 420px; }
.purchase-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.purchase-card {
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 14px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(250,251,253,.74));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07), 0 12px 30px rgba(20,20,30,.06);
  cursor: pointer;
  transition: transform .16s var(--pop), box-shadow .18s var(--ease), background .18s var(--ease);
}
.purchase-card:hover { transform: translateY(-1px); box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .20), 0 16px 36px rgba(20,20,30,.09); }
.pc-top, .pc-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.purchase-card > b {
  font-size: 16px;
  line-height: 1.28;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.purchase-card > small { color: var(--ink-3); line-height: 1.45; }
.po-supplier-strip {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  min-width: 0;
  padding: 2px 0 4px;
}
.po-supplier-strip .chip {
  max-width: 100%;
}
.sku-life-strip,
.sku-life-note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
}
.sku-life-strip {
  margin-top: 8px;
}
.sku-life-note {
  margin: 10px 0 2px;
  padding: 10px 12px;
  border-radius: 16px;
  color: var(--ink);
  background: rgba(52,199,89,.09);
  box-shadow: inset 0 0 0 1px rgba(52,199,89,.18);
}
.sku-life-note.in-band {
  margin: 12px 0 0;
  background: rgba(255,255,255,.14);
  color: rgba(255,255,255,.94);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}
.sku-life-note .ic {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}
.sku-life-note b {
  font-size: 13px;
  white-space: nowrap;
}
.sku-life-note span {
  min-width: 0;
  color: inherit;
  opacity: .78;
  font-size: 12px;
  line-height: 1.35;
}
.pc-actions { justify-content: space-between; }
.po-workcard {
  align-content: start;
  gap: 10px;
}
.po-workcard .pc-actions {
  justify-content: flex-start;
}
.po-edit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.po-edit-grid label {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(118,118,128,.08);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.04);
}
.po-edit-grid label.wide { grid-column: span 2; }
.po-edit-grid label.supplier-select { grid-column: span 2; }
.po-workcard .po-edit-grid label:first-child {
  grid-column: span 2;
}
.po-edit-grid span {
  color: var(--ink-3);
  font: 700 11px/1 var(--sans);
}
.po-edit-grid .gs-in {
  width: 100%;
  min-width: 0;
  padding: 8px 9px;
  border-radius: 10px;
  background: rgba(255,255,255,.88);
}
.po-edit-grid .gs-in.num {
  font-family: var(--mono);
  font-weight: 800;
}
.po-total-line {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  padding: 8px 0 2px;
}
@media (max-width: 1180px) {
  .purchase-grid { grid-template-columns: 1fr; }
  .po-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .po-edit-grid { grid-template-columns: 1fr; }
  .po-workcard .po-edit-grid label:first-child,
  .po-edit-grid label.wide { grid-column: auto; }
}
.folio-row, .scan-row, .rp-row { min-width: 0; max-width: 100%; }
.folio-row .rp-meta, .scan-row .rp-meta { min-width: 0; flex-wrap: wrap; }
.site-source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 10px 0 12px;
}
.site-source-grid > div {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 9px;
  align-items: center;
  padding: 11px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,.78);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07);
}
.site-source-grid b { font-size: 13px; }
.site-source-grid small {
  grid-column: 2;
  color: var(--ink-3);
  font-size: 12px;
  line-height: 1.4;
}
.live-console {
  --tint: var(--apple-red);
  --tint-rgb: 255, 45, 85;
}
.live-console-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}
.live-console-head b { display: block; font-size: 20px; letter-spacing: 0; }
.live-console-head small { display: block; color: var(--ink-3); margin-top: 3px; }
.live-add-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.live-hit-card {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07), 0 10px 26px rgba(20,20,30,.05);
}
.live-hit-card.is-dim { opacity: .82; }
.live-hit-tags, .deck-tags { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
.live-thumb {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 2px;
  color: #fff;
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.36), 0 8px 20px rgba(0,0,0,.10);
  flex: none;
}
.live-thumb.small { width: 46px; height: 46px; border-radius: 14px; }
.live-thumb img { width: 100%; height: 100%; object-fit: cover; }
.live-thumb b { font: 900 17px/1 var(--sans); letter-spacing: 0; }
.live-thumb small { color: rgba(255,255,255,.90); font: 700 11px/1 var(--sans); }
.live-link-card {
  display: grid;
  align-items: center;
  gap: 10px;
  border-radius: 18px;
  padding: 12px;
  grid-template-columns: 60px auto minmax(0, 1fr) auto auto auto;
}
.live-link-card .fr-main { min-width: 0; }
.live-link-card .fr-main b,
.live-link-card .fr-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.live-link-card.is-draft { background: linear-gradient(180deg, rgba(255,251,241,.94), rgba(255,255,255,.82)); }
.live-link-card .dk-grip { white-space: nowrap; }
.demo-fill {
  border: 1px solid rgba(var(--tint-rgb), .20);
  border-radius: 26px;
  padding: 18px;
  background: linear-gradient(180deg, rgba(var(--tint-rgb), .08), rgba(255,255,255,.88));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.74), 0 18px 50px rgba(0,0,0,.05);
}
.demo-fill-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.demo-fill-head svg { color: var(--tint-text); }
.demo-fill-head b { display: block; font: 900 18px/1.2 var(--sans); letter-spacing: 0; }
.demo-fill-head small { display: block; margin-top: 4px; color: var(--muted); font: 700 13px/1.45 var(--sans); }
.demo-list { display: grid; gap: 8px; }
.demo-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  cursor: pointer;
  transition: border-color .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease), transform .16s var(--pop);
}
.demo-row:hover { border-color: rgba(var(--tint-rgb), .34); background: #fff; }
.demo-row b,
.demo-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.demo-row small { display: block; margin-top: 3px; color: var(--muted); font: 700 12px/1.35 var(--sans); }
@media (max-width: 980px) {
  .sample-fields, .dspec.compact, .site-source-grid { grid-template-columns: 1fr; }
  .archive-head, .live-console-head { align-items: stretch; flex-direction: column; }
  .archive-input, .live-bigq { width: 100%; }
  .archive-row, .live-hit-card, .live-link-card { grid-template-columns: auto minmax(0, 1fr); }
  .archive-files, .live-hit-tags, .deck-tags, .live-link-card .dk-grip, .live-link-card .btn { grid-column: 1 / -1; justify-content: flex-start; }
  .demo-row { grid-template-columns: auto minmax(0, 1fr); }
  .demo-row .chip { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 920px) {
  .lc-tv-main { padding: 16px; }
  
  .lc-tv-line b { font-size: 23px; }
}

/* V30 · 直播控台图片化与投屏一屏大图 */
.live-add-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 430px), 1fr));
  align-items: stretch;
}
.live-hit-card {
  grid-template-columns: 46px minmax(0, 1fr) max-content max-content;
  min-height: 86px;
  overflow: hidden;
}
.live-hit-main,
.live-hit-card .fr-main {
  min-width: 0;
  max-width: 100%;
  display: grid;
  gap: 3px;
  writing-mode: horizontal-tb;
}
.live-hit-card .fr-main b,
.live-hit-card .fr-main small {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  writing-mode: horizontal-tb;
}
.live-hit-card .fr-main b { font: 900 16px/1.22 var(--sans); color: var(--ink); }
.live-hit-card .fr-main small { font: 700 12px/1.28 var(--sans); color: var(--muted); }
.live-hit-tags {
  flex-wrap: nowrap;
  min-width: max-content;
  justify-content: flex-end;
}
.live-hit-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: max-content;
  white-space: nowrap;
}
.live-hit-actions .btn { white-space: nowrap; }
.live-thumb {
  background: #f5f5f7;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055), 0 10px 24px rgba(15,23,42,.10);
}
.live-thumb img {
  display: block;
  background: #fff;
  filter: saturate(1.03) contrast(1.02);
}
.lc-tv-focus {
  grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
  align-items: stretch;
}
.lc-tv-focus-head { grid-row: 1; }
.lc-tv-picture {
  grid-column: 1;
  grid-row: 2 / span 3;
  min-width: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 14px;
  padding: 14px;
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,249,251,.88));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07), 0 20px 50px rgba(20,20,30,.08);
}
.lc-tv-picture-frame {
  position: relative;
  min-height: 460px;
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.lc-tv-picture-frame img {
  width: 100%;
  height: 100%;
  min-height: 460px;
  object-fit: cover;
  display: block;
}
.lc-photo-pill {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 8px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: #1d1d1f;
  font: 800 13px/1 var(--sans);
  box-shadow: 0 8px 24px rgba(0,0,0,.08), inset 0 0 0 1px rgba(0,0,0,.06);
  backdrop-filter: blur(16px);
}
.lc-tv-picture-meta {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.lc-tv-picture-meta b {
  color: #1d1d1f;
  font: 900 24px/1.05 var(--sans);
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lc-tv-picture-meta span,
.lc-tv-picture-meta small {
  color: var(--muted);
  font: 700 14px/1.25 var(--sans);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lc-tv-open,
.lc-tv-deal,
.lc-tv-must { grid-column: 2; }
.lc-tv-cost,
.lc-tv-risk { grid-column: 1 / -1; }
.lc-tv-main.is-talk .lc-tv-focus {
  grid-template-columns: minmax(360px, .76fr) minmax(0, 1.24fr);
  gap: 18px;
}
.lc-tv-main.is-talk .lc-tv-picture { grid-row: 1 / span 3; }
.lc-tv-main.is-talk .lc-tv-picture-frame,
.lc-tv-main.is-talk .lc-tv-picture-frame img { min-height: 520px; }
.lc-tv-main.is-talk .lc-tv-open,
.lc-tv-main.is-talk .lc-tv-deal,
.lc-tv-main.is-talk .lc-tv-must { grid-column: 2; }
.lc-tv-main.is-talk .lc-tv-open b {
  font-size: clamp(38px, 3.2vw, 58px);
  word-break: keep-all;
  overflow-wrap: anywhere;
}
@media (max-width: 1180px) {
  .live-add-grid { grid-template-columns: 1fr; }
  .lc-tv-focus,
  .lc-tv-main.is-talk .lc-tv-focus { grid-template-columns: 1fr; }
  .lc-tv-picture,
  .lc-tv-main.is-talk .lc-tv-picture,
  .lc-tv-open,
  .lc-tv-deal,
  .lc-tv-must { grid-column: 1; grid-row: auto; }
  .lc-tv-picture-frame,
  .lc-tv-picture-frame img,
  .lc-tv-main.is-talk .lc-tv-picture-frame,
  .lc-tv-main.is-talk .lc-tv-picture-frame img { min-height: 300px; }
}
@media (max-width: 720px) {
  .live-hit-card { grid-template-columns: 46px minmax(0, 1fr); }
  .live-hit-tags,
  .live-hit-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

/* V31 · 图片降权，卖点上屏 */
.lc-tv-focus,
.lc-tv-main.is-talk .lc-tv-focus {
  grid-template-columns: minmax(240px, .34fr) minmax(0, 1.66fr);
  gap: 14px;
  align-items: start;
}
.lc-tv-picture,
.lc-tv-main.is-talk .lc-tv-picture {
  grid-column: 1;
  grid-row: 1 / span 2;
  padding: 10px;
  gap: 8px;
  border-radius: 22px;
}
.lc-tv-picture-frame,
.lc-tv-picture-frame img,
.lc-tv-main.is-talk .lc-tv-picture-frame,
.lc-tv-main.is-talk .lc-tv-picture-frame img {
  min-height: 286px;
  max-height: 330px;
}
.lc-tv-picture-meta b { font-size: 19px; }
.lc-tv-picture-meta span,
.lc-tv-picture-meta small { font-size: 12px; }

.lc-tv-main.is-talk .lc-tv-open {
  padding: 18px 22px;
}
.lc-tv-main.is-talk .lc-tv-open b {
  font-size: clamp(34px, 2.75vw, 50px);
  line-height: 1.08;
}

.lc-tv-main.is-talk .lc-tv-deal > div {
  min-height: 88px;
  padding: 13px 16px;
  border-radius: 18px;
}
.lc-tv-main.is-talk .lc-tv-deal b {
  font-size: 26px;
  line-height: 1.12;
}
.lc-tv-main.is-talk .lc-tv-deal > div:first-child b,
.lc-tv-main.is-talk .lc-tv-price-input {
  font-size: 46px;
}
.lc-tv-must,
.lc-tv-rich,
.lc-tv-main.is-talk .lc-tv-must,
.lc-tv-main.is-talk .lc-tv-rich {
  grid-column: 1 / -1;
}
.lc-tv-main.is-talk .lc-tv-must {
  padding: 14px;
  border-radius: 20px;
  gap: 9px;
}
.lc-tv-main.is-talk .lc-tv-must h3 {
  font-size: 28px;
}
.lc-tv-main.is-talk .lc-tv-line {
  grid-template-columns: 50px minmax(0, 1fr);
  padding: 10px 12px;
}
.lc-tv-main.is-talk .lc-tv-line span { font-size: 27px; }
.lc-tv-main.is-talk .lc-tv-line b { font-size: 22px; line-height: 1.22; }
.lc-tv-rich {
  display: grid;
  gap: 10px;
  padding: 16px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,249,252,.90));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07), 0 14px 34px rgba(20,20,30,.07);
}
.lc-tv-rich h3 {
  margin: 0;
  color: #111217;
  font: 900 30px/1.05 var(--sans);
  letter-spacing: 0;
}
.lc-tv-rich-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.lc-tv-rich-card {
  min-width: 0;
  display: grid;
  gap: 7px;
  min-height: 132px;
  padding: 14px 15px;
  border-radius: 18px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.065);
}
.lc-tv-rich-card small {
  width: fit-content;
  padding: 5px 8px;
  border-radius: 999px;
  color: #0a84ff;
  background: rgba(10,132,255,.10);
  font: 900 14px/1 var(--sans);
}
.lc-tv-rich-card b {
  color: #17181d;
  font: 900 21px/1.2 var(--sans);
  letter-spacing: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.lc-tv-rich-card span {
  color: #555b66;
  font: 800 15px/1.35 var(--sans);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.lc-tv-rich-card.red small { color: #d92d20; background: rgba(217,45,32,.10); }
.lc-tv-rich-card.blue small { color: #0a66cc; background: rgba(10,132,255,.10); }
.lc-tv-rich-card.green small { color: #187431; background: rgba(52,199,89,.12); }
.lc-tv-rich-card.amber small { color: #9a5a00; background: rgba(255,159,10,.14); }


@media (max-width: 1180px) {
  
  .lc-tv-rich { grid-column: 1; grid-row: auto; }
  .lc-tv-rich-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* V32 · 电视一屏压缩版 */
.lc-tv-main.is-talk .lc-tv-focus {
  gap: 10px;
}
.lc-tv-main.is-talk .lc-tv-picture-frame,
.lc-tv-main.is-talk .lc-tv-picture-frame img,
.lc-tv-picture-frame,
.lc-tv-picture-frame img {
  min-height: 238px;
  max-height: 276px;
}
.lc-tv-main.is-talk .lc-tv-open {
  padding: 14px 18px;
}
.lc-tv-main.is-talk .lc-tv-open b {
  font-size: clamp(30px, 2.45vw, 44px);
}
.lc-tv-main.is-talk .lc-tv-open small,
.lc-tv-main.is-talk .lc-tv-risk small,
.lc-tv-main.is-talk .lc-tv-deal small {
  font-size: 16px;
  margin-bottom: 7px;
}
.lc-tv-main.is-talk .lc-tv-deal > div {
  min-height: 72px;
  padding: 10px 13px;
}
.lc-tv-main.is-talk .lc-tv-deal b {
  font-size: 23px;
}
.lc-tv-main.is-talk .lc-tv-deal > div:first-child b,
.lc-tv-main.is-talk .lc-tv-price-input {
  font-size: 38px;
}
.lc-tv-main.is-talk .lc-tv-must {
  grid-template-columns: 132px repeat(3, minmax(0, 1fr));
  align-items: stretch;
  padding: 12px;
  gap: 9px;
}
.lc-tv-main.is-talk .lc-tv-must h3 {
  align-self: center;
  font-size: 25px;
}
.lc-tv-main.is-talk .lc-tv-line {
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  padding: 10px 11px;
}
.lc-tv-main.is-talk .lc-tv-line span { font-size: 24px; }
.lc-tv-main.is-talk .lc-tv-line b {
  font-size: 19px;
  line-height: 1.18;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.lc-tv-main.is-talk .lc-tv-rich {
  padding: 12px;
  gap: 8px;
}
.lc-tv-main.is-talk .lc-tv-rich h3 { font-size: 25px; }
.lc-tv-main.is-talk .lc-tv-rich-card {
  min-height: 110px;
  padding: 11px 12px;
  gap: 5px;
}
.lc-tv-main.is-talk .lc-tv-rich-card small {
  font-size: 12px;
  padding: 4px 7px;
}
.lc-tv-main.is-talk .lc-tv-rich-card b {
  font-size: 18px;
  line-height: 1.16;
}
.lc-tv-main.is-talk .lc-tv-rich-card span {
  font-size: 13px;
  line-height: 1.28;
  -webkit-line-clamp: 2;
}
.lc-tv-main.is-talk .lc-tv-risk {
  min-height: 68px;
  padding: 10px 14px;
}
.lc-tv-main.is-talk .lc-tv-risk b {
  font-size: 23px;
}

/* V33 · 字符级断行守卫：投屏卡避免中文逐字断裂 */
.lc-tv-open b,
.lc-tv-line b,
.lc-tv-rich-card b,
.lc-tv-rich-card span,
.lc-tv-deal b,
.live-hit-card .fr-main b,
.live-hit-card .fr-main small {
  word-break: keep-all;
  overflow-wrap: break-word;
  writing-mode: horizontal-tb;
}
.lc-tv-rich-card b,
.lc-tv-rich-card span,
.lc-tv-line b {
  text-wrap: pretty;
}

/* V44 · PC 宽屏密度：不再把系统锁进窄框，大屏按信息层级自然铺开 */
body.is-app .app-shell {
  width: 100%;
  max-width: none;
  padding: 0 clamp(18px, 2vw, 44px) 40px;
}
.workspace {
  width: min(100%, 1760px);
  max-width: 1760px;
  padding-left: 0;
  padding-right: 0;
}
.topbar {
  width: min(100%, 1760px);
  max-width: 1760px;
  margin: 12px auto 18px;
  grid-template-columns: minmax(220px, 360px) minmax(280px, 1fr) minmax(240px, 440px) auto;
}
.station-head { padding: clamp(14px, 1.35vw, 20px); }
.zone { margin-top: 20px; }
.focus-card { border-radius: 24px; }
.sample-table-wrap,
.sample-table-editor,
.purchase-panel,
.rt-library-grid,
.live-deck { max-width: none; }
@media (min-width: 1440px) {
  .command-grid {
    grid-template-columns: minmax(360px, 4fr) minmax(620px, 8fr);
    gap: 22px;
  }
  .focus-grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(310px, .9fr);
    gap: 22px;
  }
  .card-grid { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); }
  .supplier-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
  .purchase-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rt-library-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sample-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .live-add-grid { grid-template-columns: repeat(3, minmax(320px, 1fr)); }
}
@media (max-width: 860px) {
  .workspace {
    width: 100%;
    max-width: none;
    padding-left: clamp(12px, 4vw, 18px);
    padding-right: clamp(12px, 4vw, 18px);
  }
}

/* V36 · 80 分聚焦升级：岗位一眼知道现在做什么，低频信息退到折叠层 */
.workspace {
  width: min(100%, 1840px);
  max-width: 1840px;
}
.topbar {
  width: min(100%, 1840px);
  max-width: 1840px;
}
.zone-label {
  margin: 0 4px 12px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
}
.zone-label .count {
  height: 22px;
  min-width: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
}
.focus-card {
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,249,251,.92)),
    var(--card);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.055),
    0 22px 54px rgba(17,24,39,.08),
    0 2px 8px rgba(17,24,39,.05);
}
.focus-head {
  padding: 20px clamp(18px, 2.2vw, 34px) 16px;
  gap: 10px;
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.54));
}
.focus-head h2 {
  font-size: clamp(22px, 1.7vw, 31px);
  line-height: 1.12;
  text-wrap: balance;
}
.focus-command {
  margin: 16px clamp(18px, 2.2vw, 34px) 2px;
  padding: clamp(15px, 1.4vw, 22px);
  border-radius: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 16px;
  align-items: center;
  background:
    radial-gradient(circle at 18% 0%, rgba(var(--tint-rgb), .16), transparent 36%),
    linear-gradient(135deg, rgba(var(--tint-rgb), .105), rgba(255,255,255,.88) 54%, rgba(var(--tint-rgb), .055));
  border: 1px solid rgba(var(--tint-rgb), .18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.78), 0 14px 32px rgba(var(--tint-rgb), .10);
}
.fc-left {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}
.fc-ic {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(180deg, rgba(var(--tint-rgb), .92), rgba(var(--tint-rgb), .72));
  box-shadow: 0 12px 26px rgba(var(--tint-rgb), .22);
  flex: none;
}
.fc-ic .ic {
  width: 21px;
  height: 21px;
}
.fc-left span {
  display: inline-flex;
  margin-bottom: 5px;
  color: var(--tint-text, var(--tint));
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
}
.fc-left strong {
  display: block;
  color: var(--ink);
  font-size: clamp(24px, 2.05vw, 40px);
  line-height: 1.04;
  letter-spacing: 0;
  text-wrap: balance;
}
.fc-left p {
  margin: 7px 0 0;
  max-width: 78ch;
  color: var(--ink-2);
  font-size: clamp(14px, .86vw, 16px);
  line-height: 1.55;
}
.fc-right {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-content: center;
  gap: 7px;
  max-width: min(42vw, 620px);
}
.fc-right .chip {
  min-height: 29px;
  padding: 0 11px;
  font-weight: 700;
}
.focus-body {
  padding: 18px clamp(18px, 2.2vw, 34px) 20px;
  gap: 18px;
}
.focus-foot {
  padding: 16px clamp(18px, 2.2vw, 34px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(246,247,249,.96)),
    var(--fill);
}
.next-hint {
  align-items: flex-start;
  gap: 10px;
  color: var(--ink-2);
}
.next-hint b {
  display: block;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.2;
}
.next-hint span {
  display: block;
  margin-top: 3px;
  max-width: 68ch;
  line-height: 1.45;
}
.ck-list {
  display: grid;
  gap: 8px;
}
.ck-row {
  display: grid;
  width: 100%;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 50px;
  padding: 11px 13px;
  border-radius: 17px;
  background: rgba(118,118,128,.075);
  border: 1px solid rgba(0,0,0,.045);
  cursor: pointer;
  color: var(--ink-2);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
  font-family: inherit;
  appearance: none;
  transition: background .16s var(--ease), border-color .16s var(--ease), transform .14s var(--pop), box-shadow .16s var(--ease);
}
.ck-row:hover {
  background: rgba(var(--tint-rgb), .075);
  border-color: rgba(var(--tint-rgb), .2);
  box-shadow: 0 8px 20px rgba(var(--tint-rgb), .075);
}
.ck-row:active { transform: scale(.995); }
.ck-box {
  width: 30px;
  height: 30px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #fff;
  box-shadow: inset 0 0 0 1.5px rgba(60,60,67,.22);
}
.ck-box .ic { width: 15px; height: 15px; }
.ck-row.is-on {
  color: var(--ink);
  background: rgba(var(--green-rgb), .105);
  border-color: rgba(var(--green-rgb), .22);
}
.ck-row.is-on .ck-box {
  background: var(--green);
  box-shadow: none;
}
.ck-row.is-auto {
  color: var(--ink-3);
  cursor: default;
}
.ck-sys {
  min-width: 44px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0;
  font: 700 11px/1 var(--sans);
  letter-spacing: 0;
  color: var(--ink-3);
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(0,0,0,.05);
}
.ck-sys.tap {
  color: var(--tint-text, var(--tint));
  background: rgba(var(--tint-rgb), .08);
  border-color: rgba(var(--tint-rgb), .15);
}
.queue-list { gap: 9px; }
.queue-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.84);
}
.qr-main b {
  font-size: 15px;
  font-weight: 700;
}
.qr-main small {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
}
.qr-action {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  max-width: 220px;
  padding: 0 11px;
  border-radius: 999px;
  color: var(--tint-text, var(--tint));
  background: rgba(var(--tint-rgb), .09);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.archive-panel,
.demo-fill {
  border-radius: 22px;
  background: rgba(255,255,255,.76);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.045), 0 12px 28px rgba(17,24,39,.055);
}
input, textarea, select {
  font-size: 15px;
  line-height: 1.45;
}
textarea {
  min-height: 46px;
}
@media (min-width: 1760px) {
  .workspace,
  .topbar {
    width: min(100%, 2040px);
    max-width: 2040px;
  }
  .focus-grid {
    grid-template-columns: minmax(0, 1.75fr) minmax(380px, .82fr);
  }
}
@media (max-width: 920px) {
  .focus-command {
    grid-template-columns: 1fr;
  }
  .fc-right {
    justify-content: flex-start;
    max-width: none;
  }
  .queue-row {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .queue-row .chip,
  .qr-action {
    grid-column: 2;
    justify-self: start;
  }
}

/* V36 · 直播控台候选商品：图片小、卖点入口清楚，长品名不再被挤成窄列 */
.live-add-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 560px), 1fr));
  gap: 12px;
}
.live-hit-card {
  grid-template-columns: 58px minmax(0, 1fr) minmax(150px, max-content);
  grid-template-areas:
    "thumb main actions"
    "thumb tags actions";
  min-height: 104px;
  align-items: center;
  gap: 8px 12px;
  padding: 13px 14px;
}
.live-hit-card > .live-thumb {
  grid-area: thumb;
  align-self: center;
}
.live-hit-card .fr-main,
.live-hit-main {
  grid-area: main;
  gap: 5px;
}
.live-hit-card .fr-main b,
.live-hit-card .fr-main small {
  white-space: normal;
  overflow: hidden;
  text-overflow: clip;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.live-hit-card .fr-main b {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 17px;
  line-height: 1.22;
}
.live-hit-card .fr-main small {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 12.5px;
  line-height: 1.34;
}
.live-hit-tags {
  grid-area: tags;
  justify-content: flex-start;
  flex-wrap: wrap;
  min-width: 0;
}
.live-hit-actions {
  grid-area: actions;
  min-width: 0;
  max-width: 210px;
  flex-wrap: wrap;
}

@media (max-width: 720px) {
  .live-hit-card {
    grid-template-columns: 52px minmax(0, 1fr);
    grid-template-areas:
      "thumb main"
      "thumb tags"
      "actions actions";
  }
  .live-hit-actions {
    justify-content: flex-start;
    max-width: none;
  }
}

/* V37 · 供应商绑定与维护台：主供应商 / 内料 / 包材分档，原位编辑，宽屏不再表格化 */
.supplier-bind-search {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
  margin: 12px 0;
}
.wizard-supplier-dock {
  display: grid;
  gap: 12px;
  margin: 14px 0 16px;
  padding: 14px;
  border-radius: 22px;
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055), 0 14px 34px rgba(17,24,39,.06);
}
.ws-head {
  display: block;
}
.ws-head > div:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.ws-head b,
.ws-head small {
  display: block;
  min-width: 0;
}
.ws-head small { color: var(--ink-3); line-height: 1.35; }
.supplier-lane-tabs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(210px, .62fr);
  gap: 10px;
}
.supplier-lane-tab {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto 18px;
  gap: 10px;
  align-items: center;
  min-width: 0;
  min-height: 78px;
  padding: 12px 13px;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: #f7f8fa;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: border-color .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease);
}
.supplier-lane-tab:hover {
  border-color: rgba(var(--system-action-rgb), .34);
  background: #f3f7fc;
}
.supplier-lane-tab:focus-visible {
  outline: 3px solid rgba(var(--system-action-rgb), .2);
  outline-offset: 2px;
}
.supplier-lane-tab.is-active {
  border-color: rgba(var(--system-action-rgb), .55);
  background: #eef5ff;
  box-shadow: 0 0 0 3px rgba(var(--system-action-rgb), .08);
}
.supplier-lane-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #e9edf2;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.supplier-lane-tab.is-active .supplier-lane-index {
  background: var(--system-action);
  color: #fff;
}
.supplier-lane-tab.is-complete:not(.is-active) .supplier-lane-index {
  background: #e9f7ee;
  color: #207d4d;
}
.supplier-lane-tab-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.supplier-lane-tab-copy b {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  font-size: 15px;
  font-weight: 700;
}
.supplier-lane-tab-copy b .ic {
  width: 16px;
  height: 16px;
  color: var(--system-action);
}
.supplier-lane-tab-copy small {
  overflow: hidden;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.supplier-lane-status {
  padding: 4px 8px;
  border-radius: 999px;
  background: #eceef1;
  color: var(--ink-3);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.supplier-lane-tab.is-active .supplier-lane-status {
  background: #dbeaff;
  color: #075eb7;
}
.supplier-lane-tab.is-complete .supplier-lane-status {
  background: #e5f6eb;
  color: #207d4d;
}
.supplier-lane-tab.is-exception {
  min-height: 66px;
  border-style: dashed;
  background: #fafbfc;
  color: var(--ink-2);
  opacity: .82;
}
.supplier-lane-tab.is-exception:not(.is-active):hover {
  opacity: 1;
}
.supplier-lane-tab.is-exception .supplier-lane-index {
  width: 32px;
  height: 32px;
  background: #f0f2f5;
}
.supplier-lane-tab.is-exception .supplier-lane-tab-copy b {
  font-size: 14px;
}
.supplier-lane-tab.is-exception .supplier-lane-tab-copy small {
  font-size: 11px;
}
.supplier-lane-tab.is-exception.is-active {
  opacity: 1;
}
.supplier-lane-tab > .ic {
  width: 16px;
  height: 16px;
  color: var(--ink-4);
}
.supplier-picker-panel {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: #fbfcfe;
}
.supplier-picker-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.supplier-picker-head > div {
  display: grid;
  gap: 3px;
}
.supplier-picker-head b {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 17px;
  font-weight: 700;
}
.supplier-picker-head b .ic {
  width: 17px;
  height: 17px;
  color: var(--system-action);
}
.supplier-picker-head small,
.supplier-picker-head > span {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 500;
}
.supplier-picker-head > span {
  flex: 0 0 auto;
  padding-top: 2px;
}
.supplier-lane-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.supplier-lane-search-row .supplier-search {
  min-height: 48px;
  border-radius: 8px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--hair);
}
.supplier-lane-results {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.supplier-lane-results .supplier-choice-card {
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px var(--hair);
}
.supplier-lane-results .probe-supplier-card.is-empty {
  min-height: 118px;
  border-radius: 8px;
}
.package-subtabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.package-subtab {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-areas: "num title" "num detail";
  column-gap: 10px;
  align-items: center;
  min-width: 0;
  min-height: 64px;
  padding: 10px 12px;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.package-subtab > span {
  grid-area: num;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #eef1f5;
  color: var(--ink-3);
  font-size: 11px;
  font-weight: 800;
}
.package-subtab b { grid-area: title; font-size: 14px; }
.package-subtab small {
  grid-area: detail;
  overflow: hidden;
  color: var(--ink-3);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.package-subtab.is-active {
  border-color: rgba(var(--system-action-rgb), .5);
  background: #eef5ff;
  box-shadow: 0 0 0 3px rgba(var(--system-action-rgb), .07);
}
.package-subtab.is-active > span { background: var(--system-action); color: #fff; }
.package-subtab.is-complete:not(.is-active) > span { background: #e9f7ee; color: #207d4d; }
.package-binding-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 8px;
}
.package-binding-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-width: 0;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: #fff;
}
.package-binding-item.is-active {
  border-color: rgba(var(--system-action-rgb), .48);
  background: #f3f8ff;
  box-shadow: 0 0 0 2px rgba(var(--system-action-rgb), .06);
}
.package-binding-main {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  grid-template-areas: "num title" "num detail";
  column-gap: 8px;
  min-width: 0;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.package-binding-main > span {
  grid-area: num;
  align-self: center;
  color: var(--system-action);
  font-size: 12px;
  font-weight: 800;
}
.package-binding-main b {
  grid-area: title;
  overflow: hidden;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.package-binding-main small {
  grid-area: detail;
  overflow: hidden;
  color: var(--ink-3);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.package-binding-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-right: 8px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ink-3);
  cursor: pointer;
}
.package-binding-remove:hover { background: rgba(255,59,48,.08); color: var(--red); }
.package-binding-remove .ic { width: 15px; height: 15px; }
.package-binding-empty {
  display: grid;
  gap: 3px;
  min-height: 66px;
  align-content: center;
  padding: 10px 12px;
  border: 1px dashed var(--hair-2);
  border-radius: 8px;
  background: #f7f8fa;
}
.package-binding-empty b { font-size: 13px; }
.package-binding-empty small { color: var(--ink-3); font-size: 12px; }
.package-spec-editor {
  display: grid;
  gap: 10px;
  padding: 12px 0 2px;
  border-top: 1px solid var(--hair);
}
.package-spec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.package-spec-head > div { display: grid; gap: 2px; min-width: 0; }
.package-spec-head b { font-size: 15px; }
.package-spec-head small { color: var(--ink-3); font-size: 12px; }
.package-option-row {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}
.package-option-row > span {
  padding-top: 8px;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 800;
}
.package-option-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
.package-option {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--hair);
  border-radius: 999px;
  background: #fff;
  color: var(--ink-2);
  font: 700 12px/1 var(--sans);
  cursor: pointer;
}
.package-option:hover { border-color: rgba(var(--system-action-rgb), .36); }
.package-option.is-on {
  border-color: rgba(var(--system-action-rgb), .36);
  background: #eaf3ff;
  color: #075eb7;
}
.package-option .ic { width: 13px; height: 13px; }
.supplier-mode-bar.compact {
  border-radius: 8px;
  background: #f2f4f7;
}
.supplier-mode-bar,
.po-package-mode {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
  padding: 8px 10px;
  border-radius: 16px;
  background: rgba(0,0,0,.035);
}
.supplier-mode-bar > span,
.po-package-mode > span {
  font-size: 12px;
  font-weight: 800;
  color: var(--ink-2);
}
.supplier-mode-bar small,
.po-package-mode small {
  min-width: 180px;
  flex: 1 1 220px;
  color: var(--ink-3);
  font-size: 12px;
}
.po-package-mode {
  margin: 10px 0 8px;
}
.po-package-mode.compact {
  margin: 0;
  background: rgba(var(--tint-rgb), .055);
}
.po-package-bindings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
.po-package-lane{display:grid;gap:8px;min-width:0;padding:10px;border:1px solid var(--hair);border-radius:8px;background:#f8f9fb}
.po-package-lane-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.po-package-lane-head b{font-size:14px}
.po-package-lane-head small{color:var(--ink-3);font-size:11px}
.po-package-tags { display: grid; gap: 6px; min-width: 0; }
.po-package-tag{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;min-width:0;padding:8px 9px;border:1px solid var(--hair);border-radius:8px;background:#fff}
.po-package-tag-copy{min-width:0;display:grid;gap:7px}.po-package-meta-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0}.po-package-meta-fields label{display:grid;gap:3px;min-width:0}.po-package-meta-fields .gs-in{width:100%;min-width:0;height:32px;padding:5px 8px;font-size:12px}
.po-package-tag b,.po-package-tag small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.po-package-tag b { font-size: 12px; }
.po-package-tag small { color: var(--ink-3); font-size: 11px; }
.po-package-tag button{grid-column:2;grid-row:1/span 2;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--ink-3);cursor:pointer}
.po-package-tag button:hover { background: rgba(255,59,48,.08); color: var(--red); }
.po-package-tag button .ic { width: 14px; height: 14px; }
@media(max-width:760px){.po-package-meta-fields{grid-template-columns:1fr}}
.qc-safety-flag{flex-wrap:wrap}.qc-safety-flag>span:first-of-type{flex:1 1 320px}.qc-safety-review-fields{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:7px;flex:1 1 100%}.qc-safety-review-fields label{display:grid;gap:3px;min-width:0}.qc-safety-review-fields .gs-in{width:100%;min-width:0}.qc-safety-actions{display:flex;flex-wrap:wrap;gap:7px;margin-left:auto}@media(max-width:680px){.qc-safety-review-fields{grid-template-columns:1fr}}
.po-package-lane label.supplier-select { display: grid; gap: 5px; }
.po-package-lane label.supplier-select > span { color: var(--ink-3); font-size: 11px; font-weight: 700; }
.supplier-choice-lanes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.supplier-choice-lane {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 11px;
  border-radius: 18px;
  background: rgba(246,247,249,.84);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.045);
}
.supplier-choice-lane h4 {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 14px;
}
.supplier-choice-lane h4 .ic {
  width: 16px;
  height: 16px;
  color: var(--tint);
}
.supplier-choice-lane > small { color: var(--ink-3); font-size: 12px; }
.supplier-choice-card {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
}
.supplier-choice-card.is-picked { box-shadow: inset 0 0 0 1px rgba(var(--tint-rgb), .26), 0 8px 18px rgba(var(--tint-rgb), .08); }
.supplier-choice-card.is-chosen { background: rgba(var(--tint-rgb), .08); box-shadow: inset 0 0 0 2px rgba(var(--tint-rgb), .38); }
.sup-compare-toggle{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:74px;height:30px;padding:0 8px;border:0;border-radius:999px;color:var(--tint);background:rgba(var(--tint-rgb),.1);font:700 11px/1 var(--sans);cursor:pointer}
.sup-compare-toggle .ic{width:13px;height:13px}
.sup-choice-main{min-width:0;display:grid;gap:2px}.sup-choice-main b,.sup-choice-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sup-choice-main small{color:var(--ink-3);font-size:12px}
.supplier-compare-strip{min-height:42px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 10px;border-radius:16px;background:rgba(0,0,0,.035)}
.supplier-compare-card{min-width:190px;display:grid;gap:4px;padding:9px 10px;border-radius:14px;background:rgba(255,255,255,.88);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.supplier-compare-card b,.supplier-compare-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.supplier-compare-card small{color:var(--ink-3);font-size:12px}
@media(max-width:1180px){.ws-head,.supplier-choice-lanes{grid-template-columns:1fr}}@media(max-width:900px){.supplier-lane-tabs{grid-template-columns:1fr}}
@media(max-width:620px){.supplier-lane-search-row,.package-subtabs,.po-package-bindings{grid-template-columns:1fr}.supplier-lane-search-row .btn{width:100%}.supplier-lane-tab{grid-template-columns:38px minmax(0,1fr) auto}.supplier-lane-tab>.ic{display:none}.package-spec-head{align-items:flex-start;flex-direction:column}.package-option-row{grid-template-columns:1fr;gap:4px}.package-option-row>span{padding-top:0}}
.supplier-bind-search label,
.probe-bind-grid label,
.supplier-maint-card label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 700;
}
.probe-bind-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.probe-supplier-card{min-height:112px;display:grid;gap:8px;padding:13px 14px;border-radius:18px;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(0,0,0,.055),0 10px 24px rgba(17,24,39,.055)}
.probe-supplier-card>div:first-child{display:grid;gap:4px}.probe-supplier-card b{font-size:16px;color:var(--ink)}.probe-supplier-card small{color:var(--ink-3);line-height:1.35}.probe-supplier-card.is-empty{color:var(--ink-3);background:rgba(118,118,128,.08);border:1px dashed rgba(60,60,67,.18)}.probe-supplier-card.is-empty .ic{width:18px;height:18px;color:var(--tint)}.probe-sup-meta{display:flex;flex-wrap:wrap;gap:6px}
.supplier-console {
  display: grid;
  gap: 14px;
}
.supplier-console-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 440px);
  gap: 12px;
  align-items: center;
}
.supplier-console-head b {
  display: block;
  font-size: 18px;
  letter-spacing: 0;
}
.supplier-console-head small {
  display: block;
  margin-top: 4px;
  color: var(--ink-3);
  line-height: 1.45;
}
.supplier-search {
  min-height: 46px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.86);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07), 0 10px 24px rgba(17,24,39,.05);
}
.supplier-search .ic {
  width: 17px;
  height: 17px;
  color: var(--ink-3);
}
.supplier-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  font: 700 15px/1.2 var(--sans);
  color: var(--ink);
}
.supplier-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.supplier-filter-row .gs-in {
  width: auto;
  min-width: 150px;
  min-height: 34px;
  padding-top: 7px;
  padding-bottom: 7px;
}
.supplier-maint-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr));
  gap: 12px;
}
.supplier-maint-card {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 15px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(250,251,253,.88));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055), 0 14px 34px rgba(17,24,39,.065);
}
.smc-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}
.smc-head b {
  display: block;
  font-size: 17px;
  color: var(--ink);
}
.smc-head small {
  display: block;
  margin-top: 4px;
  color: var(--ink-3);
  line-height: 1.35;
}
.smc-head > span {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}
.smc-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}
.smc-kpis label.wide {
  grid-column: span 2;
}
.smc-kpis .gs-in {
  min-width: 0;
  width: 100%;
  padding: 9px 10px;
}
.smc-kpis .gs-in.num {
  text-align: center;
  font-family: var(--mono);
}
.smc-lite {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 12px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(118,118,128,.08);
}
.smc-lite span {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.smc-lite small {
  grid-column: 1 / -1;
  min-width: 0;
  color: var(--ink-3);
  line-height: 1.35;
}
.smc-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 2px;
}
.smc-foot > span {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.supplier-add-row {
  display: grid;
  grid-template-columns: minmax(190px, 1.2fr) minmax(130px, .7fr) minmax(150px, .8fr) minmax(150px, .8fr) minmax(160px, .9fr) minmax(120px, .6fr) auto;
  gap: 9px;
  padding: 12px;
  border-radius: 20px;
  background: rgba(118,118,128,.08);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.05);
}
.supplier-add-row .gs-in {
  min-width: 0;
}
.reg-primary.proof {
  border-style: solid;
  background: linear-gradient(180deg, #ffffff, rgba(52,199,89,.055));
}
.final-check .copy-ref-grid {
  align-items: stretch;
}
.final-check .brief-card {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 8px;
}
.final-check .brief-card .chip {
  width: fit-content;
  max-width: 100%;
}
.final-check .hint-line {
  margin: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
@media (max-width: 980px) {
  .supplier-console-head,
  .supplier-bind-search,
  .probe-bind-grid,
  .smc-kpis,
  .supplier-add-row {
    grid-template-columns: 1fr;
  }
  .smc-kpis label.wide {
    grid-column: auto;
  }
}

/* V44 · 最终移动端裁剪层：防宽屏补丁覆盖手机可用性 */
@media (max-width: 860px) {
  body.is-app .app-shell {
    padding-left: 12px;
    padding-right: 12px;
  }
  .topbar {
    width: 100%;
    max-width: none;
    margin: 8px auto 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }
  .station-chip {
    max-width: none;
  }
  .gsearch {
    grid-column: 1 / -1;
    order: 3;
    width: 100%;
    min-width: 0;
  }
  .top-actions {
    justify-self: end;
    max-width: 44vw;
    overflow: hidden;
  }
  .today-signal {
    display: none;
  }
  .workspace {
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
  }
  .alert-row {
    gap: 8px;
  }
  .alert-row .chip,
  .alert-row .btn {
    max-width: 100%;
  }
  .live-add-grid {
    grid-template-columns: 1fr;
  }
  .live-link-card,
  .live-hit-card {
    grid-template-columns: auto minmax(0, 1fr);
  }
}

/* V63 · 全屏弹层与宽屏修复：所有窗口按真实屏幕展开，不再像小表格卡住 */
body.is-app .sheet-layer.is-open,
body.is-app .drawer-layer.is-open {
  overflow: hidden;
}
.sheet-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 80 !important;
  box-sizing: border-box;
  max-width: 100vw;
}
.sheet-backdrop:not(.lc-tv-stage) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: auto !important;
  padding: clamp(10px, 2vw, 28px) !important;
}
.sheet-doc,
.po-doc,
.lc-panel {
  width: min(1680px, calc(100vw - 32px)) !important;
  max-width: none !important;
  max-height: calc(100vh - 32px) !important;
  overflow: auto !important;
  box-sizing: border-box;
}
.lc-tv-stage {
  grid-template-columns: clamp(210px, 16vw, 320px) minmax(0, 1fr) !important;
  overflow: hidden !important;
}
.lc-tv-main {
  width: 100% !important;
  height: 100vh !important;
  max-height: none !important;
  min-width: 0;
}
.drawer {
  width: min(1480px, calc(100vw - 24px)) !important;
  max-width: none !important;
}
.sku-drawer {
  width: min(1720px, calc(100vw - 24px)) !important;
}
.drawer-body,
.wizard,
.supplier-console,
.supplier-maint-grid,
.purchase-grid,
.legacy-live-console,
.legacy-live-list,
.reg-table,
.dag-wrap,
.dag-flow-scroll {
  min-width: 0;
}
.dag-wrap.full {
  height: min(720px, calc(100vh - 230px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}
.dag-flow-scroll {
  width: 100%;
  overflow: auto;
  padding: 12px 6px 18px;
  scroll-snap-type: x proximity;
}
.dag-flow-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(300px, 380px);
  gap: 16px;
  min-width: max-content;
  align-items: stretch;
}
.dag-stage {
  scroll-snap-align: start;
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 280px;
  padding: 16px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,249,251,.9));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.065), 0 18px 44px rgba(17,24,39,.075);
}
.dag-stage.is-focus {
  box-shadow: inset 0 0 0 2px var(--tint), 0 24px 60px color-mix(in srgb, var(--tint) 20%, transparent);
}
.dag-stage.blocked {
  background: linear-gradient(180deg, rgba(255,245,245,.98), rgba(255,255,255,.9));
}
.dag-stage-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.stage-no {
  width: 38px;
  height: 38px;
  border-radius: 15px;
  display: grid;
  place-items: center;
  color: var(--tint);
  font: 900 15px/1 var(--mono);
  background: color-mix(in srgb, var(--tint) 13%, white);
}
.dag-stage-head b {
  display: block;
  font-size: 18px;
  color: var(--ink);
}
.dag-stage-head small {
  color: var(--ink-3);
}
.stage-progress {
  height: 7px;
  border-radius: 999px;
  background: rgba(118,118,128,.14);
  overflow: hidden;
}
.stage-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--apple-blue), var(--green));
}
.dag-stage-list {
  display: grid;
  gap: 9px;
}
.dag-step {
  border: 0;
  width: 100%;
  text-align: left;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  border-radius: 17px;
  background: rgba(255,255,255,.84);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
  cursor: pointer;
}
.dag-step.active {
  background: color-mix(in srgb, var(--apple-blue) 9%, white);
  box-shadow: inset 0 0 0 1.5px rgba(0,113,227,.38);
}
.dag-step.blocked {
  background: color-mix(in srgb, var(--red) 9%, white);
  box-shadow: inset 0 0 0 1.5px rgba(255,59,48,.34);
}
.dag-step.done .ds-ic {
  color: var(--green);
}
.ds-ic {
  width: 34px;
  height: 34px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  color: var(--tint);
  background: color-mix(in srgb, var(--tint) 10%, white);
}
.ds-main {
  min-width: 0;
}
.ds-main b {
  display: block;
  font-size: 15px;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ds-main small {
  display: block;
  color: var(--ink-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ds-state {
  padding: 5px 8px;
  border-radius: 999px;
  color: var(--ink-2);
  font-weight: 800;
  background: rgba(118,118,128,.12);
}
.dag-more {
  border: 0;
  border-radius: 16px;
  padding: 12px;
  color: var(--ink-2);
  background: rgba(118,118,128,.10);
  font-weight: 800;
  cursor: pointer;
}
.reg-bulk {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(0,113,227,.06), rgba(255,255,255,.86));
  box-shadow: inset 0 0 0 1px rgba(0,113,227,.14);
}
.reg-bulk label {
  display: grid;
  gap: 7px;
}
.reg-bulk span {
  color: var(--ink-2);
  font-weight: 800;
}
.reg-bulk textarea {
  resize: vertical;
  min-height: 130px;
  border: 0;
  outline: 0;
  border-radius: 16px;
  padding: 13px 14px;
  color: var(--ink);
  background: rgba(255,255,255,.92);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.075);
  font: 700 15px/1.65 var(--sans);
}
.reg-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}
.reg-bulk-actions small {
  color: var(--ink-3);
}
.legacy-live-console {
  display: grid;
  gap: 14px;
}
.legacy-live-form {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) repeat(4, minmax(130px, .75fr)) auto;
  gap: 10px;
  align-items: end;
  padding: 14px;
  border-radius: 24px;
  background: rgba(255,255,255,.86);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055), 0 14px 34px rgba(17,24,39,.055);
}
.legacy-live-form label {
  display: grid;
  gap: 6px;
  color: var(--ink-3);
  font-weight: 800;
}
.legacy-live-form .wide {
  grid-column: span 2;
}
.legacy-live-list {
  display: grid;
  gap: 10px;
}
.legacy-live-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 20px;
  background: rgba(255,255,255,.9);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
}
.legacy-live-row > span {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}
.cs-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lc-tv-focus {
  grid-template-columns: minmax(240px, .7fr) minmax(0, 1fr);
}
.lc-product-panel {
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
}
.lc-photo-stage,
.lc-product-image,
.live-thumb {
  aspect-ratio: 1 / 1;
}
@media (max-width: 1180px) {
  .legacy-live-form,
.legacy-live-row,
.lc-product-panel {
    grid-template-columns: 1fr;
  }
  .legacy-live-form .wide {
    grid-column: auto;
  }
}

/* V65 深检：宽屏、投屏与弹层最终兜底 */

html,
body {
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}
body.is-app .sheet-backdrop:not(.lc-tv-stage) {
  align-items: flex-start !important;
  justify-content: center !important;
  padding: max(14px, env(safe-area-inset-top)) clamp(12px, 2vw, 28px) max(18px, env(safe-area-inset-bottom)) !important;
}
.drawer,
.drawer.wizard {
  width: min(1760px, calc(100vw - 20px)) !important;
  max-width: calc(100vw - 20px) !important;
}
.drawer.sku-drawer,
.sku-drawer {
  width: min(1860px, calc(100vw - 16px)) !important;
  max-width: calc(100vw - 16px) !important;
}
.drawer-head,
.drawer-foot {
  min-width: 0;
}
.drawer-body {
  width: 100%;
  max-width: none;
}
.sheet-doc,
.po-doc,
.lc-panel {
  width: min(1840px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100dvh - 24px) !important;
  overflow: auto !important;
}
.sheet-doc *,
.po-doc *,
.lc-panel *,
.drawer * {
  min-width: 0;
}
.lc-tv-stage {
  grid-template-columns: clamp(248px, 15vw, 340px) minmax(0, 1fr) !important;
  overflow: auto !important;
  height: 100dvh !important;
}
.lc-tv-main {
  min-height: 100dvh !important;
  height: auto !important;
  overflow: auto !important;
}
.lc-tv-main.is-talk {
  overflow: auto !important;
}
.lc-tv-main.is-talk .lc59-card,
.lc-tv-main.is-talk .lc-warcard {
  min-height: calc(100dvh - 86px);
  height: auto !important;
  max-height: none !important;
}
.lc-tv-rail {
  min-width: 0;
  overflow: auto;
}
.lc-link-row,
.live-link-card,
.live-hit-card,
.legacy-live-row,
.scan-row,
.fr-main,
.live-hit-main {
  min-width: 0;
  word-break: normal;
  overflow-wrap: break-word;
}
.live-add-grid {
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)) !important;
  align-items: stretch;
}
.live-hit-card {
  grid-template-columns: 58px minmax(0, 1fr) auto !important;
  min-height: 118px;
  align-items: center;
}
.live-hit-card .fr-main,
.live-hit-main {
  display: grid;
  gap: 6px;
}
.live-hit-card .fr-main b,
.live-hit-card .fr-main small,
.live-link-card .fr-main b,
.live-link-card .fr-main small {
  white-space: normal !important;
  overflow: hidden;
  text-overflow: ellipsis;
}
.live-hit-card .fr-main b {
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.live-hit-card .fr-main small {
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.live-hit-actions,
.live-hit-tags,
.deck-tags,
.legacy-live-row > span {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.lc-product-panel {
  grid-template-columns: minmax(220px, 340px) minmax(0, 1fr) !important;
}
.lc-tv-picture-frame {
  aspect-ratio: 1 / 1;
}
.lc-tv-picture-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.lc59-body {
  grid-template-columns: minmax(320px, .68fr) minmax(0, 1.32fr) !important;
}
.lc59-product {
  grid-template-columns: minmax(150px, 210px) minmax(0, 1fr) !important;
}
.lc59-title h2,
.lc59-title input {
  overflow-wrap: break-word;
}
.lc59-sell-grid,
.lc-tv-rich-grid {
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)) !important;
}
.lc59-must-row,
.lc59-sell-card,
.lc-proof-card,
.lc-tv-line {
  word-break: normal;
  overflow-wrap: break-word;
}
.dag-wrap.full {
  height: clamp(620px, calc(100dvh - 176px), 920px) !important;
}
.dag-flow-scroll {
  scrollbar-gutter: stable both-edges;
}
.dag-flow-track {
  grid-auto-columns: minmax(330px, 410px) !important;
}
.dag-stage.is-focus,
.dag-step.active {
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--tint) 55%, transparent), 0 18px 46px color-mix(in srgb, var(--tint) 14%, transparent) !important;
}
.reg-bulk textarea {
  font-size: 16px;
  line-height: 1.7;
}
.reg-table {
  overflow-x: auto;
}
.reg-table input,
.reg-bulk textarea,
.legacy-live-form input,
.legacy-live-form textarea,
.legacy-live-form select {
  font-size: 16px;
}
.login-panel {
  width: min(1620px, calc(100vw - 48px));
}
.identity-grid {
  width: 100%;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 16px;
}
@media (min-width: 1500px) {
  .workspace,
  .station-wrap,
  .chief-grid,
  .director-grid,
  .supplier-console,
  .live-console {
    max-width: min(1840px, calc(100vw - 64px));
  }
}
@media (max-width: 1180px) {
  .live-add-grid,
  .live-hit-card,
  .lc59-body,
  .lc59-product,
  .lc-product-panel {
    grid-template-columns: 1fr !important;
  }
  .live-hit-actions,
  .live-hit-tags,
  .legacy-live-row > span {
    justify-content: flex-start;
  }
  .lc-tv-stage {
    grid-template-columns: 1fr !important;
  }
}

/* V65 加固：每个页面先能看清、能全屏、能直接操作 */
@media (min-width: 1440px) {
  .workspace,
  .station-wrap,
  .chief-grid,
  .director-grid,
  .supplier-console,
  .live-console,
  .supplier-maint,
  .copy-stage,
  .reg-stage {
    max-width: min(1900px, calc(100vw - 48px)) !important;
  }
  .copy-stage,
  .reg-stage,
  .purchase-grid,
  .supplier-maint-grid {
    grid-template-columns: repeat(auto-fit, minmax(460px, 1fr));
  }
}
.dag-wrap.full {
  height: auto !important;
  min-height: min(860px, calc(100dvh - 150px));
  max-height: none !important;
}
.dag-flow-scroll {
  max-height: calc(100dvh - 230px);
  overflow: auto;
  overscroll-behavior: contain;
}
.dag-flow-track {
  grid-auto-columns: minmax(360px, 440px) !important;
  gap: 20px;
  padding: 22px 26px 34px;
}
.dag-stage {
  min-width: 0;
}
.dag-stage.is-focus {
  background: linear-gradient(180deg, rgba(var(--tint-rgb), .12), rgba(255,255,255,.96));
  transform: translateY(-1px);
}
.dag-step.active .ds-state {
  color: #fff;
  background: var(--amber);
}
.dag-step.blocked .ds-state {
  color: #fff;
  background: var(--red);
}
.dag-step.active .ds-main b {
  font-size: 16px;
}
.stage-progress i {
  min-width: 10%;
}
.lc-tv-main.is-talk,
.lc-tv-main.is-talk .lc59-card,
.lc-tv-main.is-talk .lc-warcard {
  max-height: none !important;
  overflow: auto !important;
}
.lc-tv-main.is-talk .lc59-card,
.lc-tv-main.is-talk .lc-warcard {
  min-height: calc(100dvh - 86px);
}
.lc-tv-picture-frame img {
  aspect-ratio: 1 / 1;
}
.live-link-card,
.live-hit-card,
.po-workcard,
.supplier-card,
.task-card,
.history-row {
  min-width: 0;
}
.live-link-card b,
.live-hit-card b,
.po-workcard b,
.supplier-card b,
.task-card b,
.history-row b {
  overflow-wrap: anywhere;
}

/* V66 · Apple × Airtable 融合层：系统骨架用 Airtable 的清晰录入，关键场景保留 Apple 的沉浸质感 */

html,
body {
  background: var(--bg);
}

body.is-app {
  color: var(--ink);
  background:
    linear-gradient(180deg, #ffffff 0, #f5f5f7 260px, #f5f5f7 100%);
  font-size: 15px;
  line-height: 1.46;
}

body.is-app .app-shell {
  padding: 0 clamp(20px, 2.2vw, 48px) 48px;
}

.topbar {
  width: min(100%, 1900px) !important;
  max-width: 1900px !important;
  margin: 14px auto 18px !important;
  padding: 12px 14px !important;
  border: 1px solid var(--enterprise-border);
  border-radius: 24px;
  background: rgba(255, 255, 255, .88);
  box-shadow: var(--sh-1);
  -webkit-backdrop-filter: saturate(1.08) blur(22px);
  backdrop-filter: saturate(1.08) blur(22px);
}

.station-chip {
  min-width: 0;
}

.station-chip b,
.station-chip small,
.today-signal {
  letter-spacing: 0;
}

.station-chip b {
  color: var(--enterprise-navy);
  font-size: 15px;
  font-weight: 800;
}

.station-chip small,
.today-signal {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 700;
}

.today-signal .num,
.today-signal .hot {
  color: var(--apple-blue);
}

.gsearch,
.search-input,
.supplier-search,
.supplier-bind-search,
.gs-in,
.copy-field input,
.copy-field textarea,
.reg-field input,
.reg-field textarea,
.legacy-live-form input,
.legacy-live-form textarea,
.legacy-live-form select,
.po-edit-grid input,
.po-edit-grid textarea,
.po-edit-grid select,
.sample-table-editor input,
.sample-table-editor textarea {
  border: 1px solid var(--enterprise-border) !important;
  background: #ffffff !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72), 0 1px 2px rgba(12, 18, 28, .035) !important;
}

.gsearch {
  height: 48px;
  border-radius: 18px;
}

.gsearch input,
.supplier-search input,
.supplier-bind-search input,
.gs-in,
.copy-field input,
.copy-field textarea,
.reg-field input,
.reg-field textarea,
.legacy-live-form input,
.legacy-live-form textarea,
.legacy-live-form select,
.po-edit-grid input,
.po-edit-grid textarea,
.po-edit-grid select {
  font-size: 16px !important;
  color: var(--ink) !important;
}

.gsearch:focus-within,
.supplier-search:focus-within,
.supplier-bind-search:focus-within,
.copy-field:focus-within,
.reg-field:focus-within,
.legacy-live-form label:focus-within,
.po-edit-grid label:focus-within {
  border-color: rgba(0, 113, 227, .46) !important;
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .10), inset 0 1px 0 rgba(255, 255, 255, .75) !important;
}

.btn {
  min-height: 40px;
  border-radius: 999px;
  border: 1px solid var(--enterprise-border);
  background: #ffffff;
  color: var(--enterprise-navy);
  font-weight: 800;
  letter-spacing: 0;
  box-shadow: 0 1px 2px rgba(12, 18, 28, .035);
}

.btn.primary {
  border-color: transparent;
  background: linear-gradient(180deg, #0a84ff, var(--apple-blue));
  color: #ffffff;
  box-shadow: 0 10px 24px rgba(0, 113, 227, .22);
}

.btn.quiet {
  background: #ffffff;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(12, 18, 28, .075);
}

.workspace,
.station-wrap,
.chief-grid,
.director-grid,
.supplier-console,
.live-console,
.supplier-maint,
.copy-stage,
.reg-stage {
  width: min(100%, 1900px) !important;
  max-width: min(1900px, calc(100vw - 48px)) !important;
}

.station-head {
  align-items: center;
  min-height: 148px;
  padding: clamp(22px, 2vw, 34px) !important;
  border: 1px solid var(--enterprise-border);
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .88));
  box-shadow: var(--sh-2);
  overflow: hidden;
}

.station-title {
  gap: 18px;
  min-width: 0;
}

.station-title .emblem.lg {
  width: clamp(64px, 5vw, 92px);
  height: clamp(64px, 5vw, 92px);
  border-radius: 24px;
  color: var(--tint);
  background: color-mix(in srgb, var(--tint) 14%, white);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tint) 26%, transparent);
}

.station-title h1 {
  color: var(--enterprise-navy);
  font-size: clamp(36px, 4.2vw, 76px);
  font-weight: 900;
  line-height: .98;
  letter-spacing: 0;
  text-wrap: balance;
}

.station-title p {
  max-width: 980px;
  margin-top: 8px;
  color: var(--ink-3);
  font-size: clamp(15px, 1.1vw, 19px);
  font-weight: 700;
  line-height: 1.42;
  letter-spacing: 0;
}

.head-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.role-tabs {
  margin: 16px 0 2px;
  padding: 5px;
  border: 1px solid var(--enterprise-border);
  border-radius: 999px;
  background: rgba(232, 232, 237, .68);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .035);
}

.role-tabs button {
  min-height: 42px;
  padding: 0 18px;
  border-radius: 999px;
  color: var(--ink-2);
  font-size: 15px;
  font-weight: 800;
}

.role-tabs button.is-active {
  color: var(--enterprise-navy);
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(12, 18, 28, .08), inset 0 0 0 1px rgba(255, 255, 255, .7);
}

.zone {
  padding: clamp(14px, 1.2vw, 20px);
  border: 1px solid var(--enterprise-border);
  border-radius: 22px;
  background: var(--card-solid);
  box-shadow: 0 1px 2px rgba(12, 18, 28, .035);
}

.zone + .zone {
  margin-top: 18px;
}

.zone-label {
  margin: 0 0 14px;
  color: var(--enterprise-navy);
  font-size: 14px;
  font-weight: 900;
}

.zone-label .count {
  min-width: 24px;
  height: 24px;
  color: var(--airtable-blue);
  background: rgba(27, 97, 201, .10);
}

.focus-card,
.sku-card,
.task-card,
.alert-row,
.decision-card,
.queue-row,
.scan-row,
.history-row,
.supplier-card,
.purchase-card,
.drawer-card,
.sheet-card,
.report-template,
.sample-card,
.legacy-live-row,
.live-link-card,
.live-hit-card {
  border: 1px solid var(--enterprise-border) !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  box-shadow: 0 1px 2px rgba(12, 18, 28, .035) !important;
}

.focus-card:hover,
.sku-card:hover,
.task-card:hover,
.alert-row:hover,
.decision-card:hover,
.queue-row:hover,
.scan-row:hover,
.supplier-card:hover,
.purchase-card:hover,
.legacy-live-row:hover,
.live-link-card:hover,
.live-hit-card:hover {
  transform: translateY(-1px);
  border-color: rgba(27, 97, 201, .28) !important;
  box-shadow: 0 10px 24px rgba(12, 18, 28, .075) !important;
}

.focus-card.is-red,
.alert-row.is-red,
.task-card.is-red {
  border-color: rgba(217, 45, 32, .28) !important;
  background: linear-gradient(180deg, #fff, #fff7f7) !important;
}

.focus-card h3,
.supplier-card h3,
.purchase-card > b,
.task-card b,
.queue-row b,
.scan-row b,
.history-row b {
  color: var(--enterprise-navy);
  font-weight: 900;
  letter-spacing: 0;
}

.craft-sheet,
.copy-stage,
.reg-stage,
.purchase-panel,
.supplier-maint,
.rt-library-grid,
.legacy-live-console {
  min-width: 0;
  max-width: 100%;
}

.copy-stage,
.reg-stage,
.purchase-grid,
.supplier-maint-grid {
  grid-template-columns: repeat(auto-fit, minmax(520px, 1fr)) !important;
  gap: 18px;
}

.copy-field,
.reg-field,
.po-edit-grid label,
.legacy-live-form label,
.supplier-maint-card label {
  border-radius: 18px;
  background: var(--enterprise-surface);
}

.copy-field > span,
.reg-field > span,
.legacy-live-form label,
.po-edit-grid label {
  color: var(--ink-3);
  font-weight: 900;
}

.copy-field textarea,
.reg-field textarea,
.legacy-live-form textarea,
.po-edit-grid textarea {
  min-height: 112px;
  line-height: 1.62;
}

.reg-bulk {
  border: 1px solid rgba(27, 97, 201, .16);
  background: linear-gradient(180deg, rgba(27, 97, 201, .055), #ffffff);
  box-shadow: none;
}

.reg-bulk textarea {
  border: 1px solid var(--enterprise-border);
  box-shadow: none;
  font-size: 16px;
}

.supplier-console {
  padding: clamp(16px, 1.4vw, 24px);
  border: 1px solid var(--enterprise-border);
  border-radius: 26px;
  background: #ffffff;
  box-shadow: var(--sh-1);
}

.supplier-console-head {
  gap: 16px;
  align-items: center;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--enterprise-border);
}

.supplier-console-head b {
  color: var(--enterprise-navy);
  font-size: clamp(20px, 1.7vw, 28px);
  font-weight: 900;
}

.supplier-console-head small {
  color: var(--ink-3);
  font-size: 14px;
}

.supplier-search {
  min-height: 54px;
  border-radius: 18px;
}

.supplier-choice-lanes,
.supplier-maint-grid {
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)) !important;
  gap: 16px;
}

.supplier-choice-lane,
.supplier-maint-card {
  border: 1px solid var(--enterprise-border);
  border-radius: 22px;
  background: var(--enterprise-surface);
}

.supplier-choice-card,
.supplier-compare-card {
  border: 1px solid var(--enterprise-border);
  background: #ffffff;
}

.purchase-grid {
  grid-template-columns: repeat(auto-fit, minmax(430px, 1fr)) !important;
  gap: 18px;
}

.purchase-card {
  padding: clamp(18px, 1.6vw, 26px) !important;
}

.purchase-card > b {
  font-size: clamp(20px, 1.45vw, 26px);
}

.po-edit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}



.legacy-live-form {
  grid-template-columns: minmax(260px, 1.25fr) repeat(4, minmax(150px, .72fr)) auto;
  border: 1px solid var(--enterprise-border);
  background: #ffffff;
}

.legacy-live-row {
  grid-template-columns: 70px minmax(0, 1fr) auto auto auto;
  min-height: 92px;
}

.live-add-grid {
  gap: 18px;
}

.live-hit-card {
  min-height: 130px;
}

.lc-tv-stage {
  background: linear-gradient(180deg, #f8f9fb, #f2f4f7) !important;
}

.lc-tv-rail {
  border-right: 1px solid var(--enterprise-border);
  background: rgba(255, 255, 255, .82) !important;
  box-shadow: 8px 0 28px rgba(12, 18, 28, .045);
}

.lc-tv-main {
  padding: clamp(18px, 2vw, 34px) !important;
}

.lc-tv-main.is-talk .lc59-card,
.lc-tv-main.is-talk .lc-warcard {
  overflow: auto !important;
}

.lc-tv-picture-frame {
  border: 1px solid var(--enterprise-border);
  border-radius: 28px;
  background: #ffffff;
}

.lc-tv-picture-frame img {
  object-fit: cover;
}

.lc-tv-open,
.lc-tv-must,
.lc-tv-risk,
.lc-tv-rich,
.lc-tv-deal > div,
.lc-tv-cost {
  border: 1px solid var(--enterprise-border);
  box-shadow: 0 10px 30px rgba(12, 18, 28, .06) !important;
}

.lc-tv-open b,
.lc-tv-line b,
.lc-tv-rich-card b,
.lc-tv-rich-card span,
.lc-tv-deal b {
  word-break: keep-all;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

.lc-tv-main.is-talk .lc-tv-open b {
  font-size: clamp(38px, 4.2vw, 66px);
  line-height: 1.06;
}

.lc-tv-main.is-talk .lc-tv-line b {
  font-size: clamp(22px, 1.8vw, 34px);
}

.lc-tv-main.is-talk .lc-tv-picture-frame,
.lc-tv-main.is-talk .lc-tv-picture-frame img {
  min-height: clamp(360px, 52vh, 620px);
}

.drawer,
.drawer.wizard,
.drawer.sku-drawer,
.sku-drawer,
.sheet-doc,
.po-doc,
.lc-panel {
  border: 1px solid var(--enterprise-border) !important;
  border-radius: 28px;
  background: #ffffff !important;
  box-shadow: var(--sh-float) !important;
}

.drawer-head,
.drawer-foot,
.sheet-head,
.sheet-actions {
  background: rgba(248, 250, 252, .92) !important;
  border-color: var(--enterprise-border) !important;
}

.drawer-body {
  background: #ffffff;
}

.drawer.sku-drawer,
.sku-drawer {
  width: min(1900px, calc(100vw - 16px)) !important;
}

.sheet-doc,
.po-doc,
.lc-panel {
  width: min(1900px, calc(100vw - 20px)) !important;
}

.dag-wrap.full {
  min-height: min(900px, calc(100dvh - 136px)) !important;
  border: 1px solid var(--enterprise-border);
  border-radius: 28px;
  background: #ffffff;
  box-shadow: var(--sh-1);
  overflow: hidden;
}

.dag-flow-scroll {
  max-height: calc(100dvh - 210px);
  padding: 18px 14px 26px;
}

.dag-flow-track {
  grid-auto-columns: minmax(390px, 470px) !important;
  gap: 18px;
  padding: 18px 20px 28px;
}

.dag-stage {
  border: 1px solid var(--enterprise-border);
  border-radius: 24px;
  background: var(--enterprise-surface);
  box-shadow: none;
}

.dag-stage.is-focus {
  border-color: rgba(0, 113, 227, .42);
  background: linear-gradient(180deg, rgba(0, 113, 227, .07), #ffffff);
  box-shadow: 0 16px 36px rgba(0, 113, 227, .10) !important;
}

.dag-stage.blocked {
  border-color: rgba(217, 45, 32, .30);
}

.dag-step {
  border: 1px solid var(--enterprise-border);
  background: #ffffff;
  box-shadow: none;
}

.dag-step.active {
  border-color: rgba(0, 113, 227, .42);
  background: rgba(0, 113, 227, .07);
}

.dag-step.done {
  background: rgba(52, 199, 89, .07);
}

.ds-main b {
  font-size: 16px;
  font-weight: 900;
}

.ds-main small {
  font-size: 13px;
  font-weight: 700;
}

.stage-progress {
  height: 8px;
  background: rgba(24, 29, 38, .10);
}

@media (min-width: 1600px) {
  .command-grid {
    grid-template-columns: minmax(440px, .72fr) minmax(0, 1.28fr) !important;
  }
  .focus-grid {
    grid-template-columns: minmax(0, 1.38fr) minmax(360px, .88fr) !important;
  }
  .card-grid {
    grid-template-columns: repeat(auto-fill, minmax(390px, 1fr)) !important;
  }
}

@media (max-width: 1180px) {
  .topbar {
    grid-template-columns: 1fr !important;
  }
  .station-head {
    align-items: flex-start;
    min-height: 0;
  }
  .station-title h1 {
    font-size: clamp(34px, 9vw, 54px);
  }
  .copy-stage,
  .reg-stage,
  .purchase-grid,
  .supplier-maint-grid,
  .supplier-choice-lanes,
  .po-edit-grid,
  .legacy-live-form,
  .legacy-live-row {
    grid-template-columns: 1fr !important;
  }
  .po-edit-grid label.supplier-select,
  .po-edit-grid label.wide {
    grid-column: auto;
  }
}

/* V67 · 字符级终检层：宽屏弹层、客服资料台、直播窗口与录入表单防错位 */
.cs-sheet-backdrop {
  position: fixed !important;
  inset: 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  overflow: auto !important;
  padding: clamp(12px, 2vw, 28px) !important;
  z-index: 80 !important;
  background: rgba(244, 245, 247, .78) !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.18);
  backdrop-filter: blur(22px) saturate(1.18);
}

.cs-sheet-panel {
  width: min(1900px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  min-height: min(780px, calc(100dvh - 24px));
  max-height: calc(100dvh - 24px) !important;
  overflow: auto !important;
  border: 1px solid var(--enterprise-border) !important;
  border-radius: 30px !important;
  background: #fff !important;
  box-shadow: var(--sh-float) !important;
  padding: clamp(18px, 1.8vw, 30px) !important;
}

.cs-sheet-bar {
  position: sticky;
  top: 0;
  z-index: 3;
  margin: calc(clamp(18px, 1.8vw, 30px) * -1) calc(clamp(18px, 1.8vw, 30px) * -1) 18px;
  padding: 16px clamp(18px, 1.8vw, 30px);
  border-bottom: 1px solid var(--enterprise-border);
  border-radius: 30px 30px 0 0;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(18px) saturate(1.12);
  backdrop-filter: blur(18px) saturate(1.12);
}

.cs-sheet-bar b {
  font-size: 22px;
  font-weight: 900;
}

.cs-sheet-bar small {
  color: var(--ink-3);
  font-weight: 700;
}

.cs-sheet-panel .lcard {
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr);
  gap: 18px;
}

.cs-sheet-panel .lc-head,
.cs-sheet-panel .lc-price,
.cs-sheet-panel .cs-quick-actions,
.cs-sheet-panel .lc-sec,
.cs-sheet-panel .lc-foot {
  min-width: 0;
}

.cs-sheet-panel .lc-head {
  grid-column: 1 / -1;
  align-items: center;
}

.cs-sheet-panel .lc-price {
  align-content: center;
  min-height: 130px;
}

.cs-sheet-panel .lc-price b {
  font-size: clamp(40px, 4vw, 76px);
  line-height: .95;
}

.cs-sheet-panel .cs-quick-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, max-content));
  justify-content: start;
  gap: 10px;
}

.cs-sheet-panel .cs-quick-actions .btn {
  min-height: 44px;
  padding-inline: 16px;
  font-size: 15px;
  white-space: nowrap;
}

.cs-sheet-panel .lc-sec {
  border: 1px solid var(--enterprise-border);
  border-radius: 20px;
  background: var(--enterprise-surface);
  padding: 16px;
}

.cs-sheet-panel .lc-sec h5 {
  margin-bottom: 10px;
  font-size: 14px;
  color: var(--ink-2);
}

.cs-sheet-panel .lc-point {
  align-items: flex-start;
  min-height: 36px;
  font-size: 16px;
  line-height: 1.55;
}

.cs-sheet-panel .lc-stock,
.cs-sheet-panel .live-hit-tags,
.cs-sheet-panel .chip {
  min-width: 0;
  max-width: 100%;
  flex-wrap: wrap;
}

.sheet-backdrop,
.drawer-layer,
.sheet-layer,
.confirm-layer,
.lc-tv-stage,
.lc-panel,
.drawer,
.sheet-doc,
.po-doc {
  min-width: 0;
}

.sheet-backdrop:not(.lc-tv-stage) {
  overflow: auto !important;
  padding: clamp(12px, 2vw, 28px) !important;
}

.sheet-backdrop:not(.lc-tv-stage) > .sheet-doc,
.sheet-backdrop:not(.lc-tv-stage) > .po-doc,
.sheet-backdrop:not(.lc-tv-stage) > .lc-panel {
  width: min(1900px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100dvh - 24px);
  overflow: auto;
}

.drawer,
.drawer.wizard,
.drawer.sku-drawer,
.sku-drawer {
  max-height: calc(100dvh - 20px) !important;
  overflow: hidden !important;
}

.drawer-body,
.sku-drawer .drawer-body {
  overflow: auto !important;
  min-height: 0;
}

.hint-line,
.issue-line,
.scan-row,
.legacy-live-row,
.po-edit-grid,
.supplier-hit,
.supplier-choice-lanes,
.copy-stage,
.reg-stage,
.rp-meta,
.fh-row {
  min-width: 0;
}

.hint-line .gs-in,
.fh-row .gs-in,
.rp-meta .gs-in,
.po-edit-grid .gs-in,
.supplier-searchbar .gs-in {
  min-width: 0;
  max-width: 100%;
}

.scan-row b,
.fr-main b,
.supplier-hit b,
.legacy-live-row b,
.lc-bar b,
.dag-step b,
.stage-head b {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.lc-tv-main,
.lc-tv-main.is-talk,
.lc-tv-main.is-talk .lc59-card,
.lc-tv-main.is-talk .lc-warcard {
  min-width: 0 !important;
  max-width: 100% !important;
}

@media (max-width: 980px) {
  .cs-sheet-panel .lcard {
    grid-template-columns: 1fr;
  }
  .cs-sheet-panel .cs-quick-actions {
    grid-template-columns: 1fr;
  }
  .cs-sheet-panel .cs-quick-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

/* V68 · 视觉系统收口：主航线作战图、文字锐度、弹层防遮挡、阴影层级 */

body {
  font-size: var(--fs-body);
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

.btn.primary,
.create-primary,
.live-card-primary,
.lc59-btn.primary {
  background: var(--system-action) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(var(--system-action-rgb), .20) !important;
}

.btn.soft,
.chip.tint,
.wiz-dot.is-on,
.dl-no,
.stage-no {
  color: var(--system-action);
}

.identity-card,
.zone,
.focus-card,
.sku-card,
.queue-row,
.scan-row,
.supplier-card,
.supplier-hit,
.purchase-card,
.archive-row,
.design-now,
.sample-card,
.lc-sec,
.sheet-doc,
.po-doc,
.lc-panel,
.drawer,
.cs-sheet-panel,
.dag-stage,
.dag-preview-card {
  box-shadow: var(--elev-card) !important;
}

.identity-card:hover,
.sku-card:hover,
.supplier-card:hover,
.purchase-card:hover,
.live-hit-card:hover,
.focus-card,
.dag-stage.is-focus,
.cs-sheet-panel {
  box-shadow: var(--elev-raised) !important;
}

.sheet-backdrop:not(.lc-tv-stage) > .sheet-doc,
.sheet-backdrop:not(.lc-tv-stage) > .po-doc,
.sheet-backdrop:not(.lc-tv-stage) > .lc-panel,
.drawer.sku-drawer,
.dag-fullscreen,
.confirm-card {
  box-shadow: var(--elev-modal) !important;
}

.station-title h1,
.hero-title,
.boss-title h1 {
  font-size: var(--fs-display);
  line-height: .98;
  letter-spacing: 0;
}

.station-title p,
.identity-card p,
.dag-meta .chip,
.sku-pathline,
.ds-main small,
.dl-copy small,
.cs-sheet-bar small,
.lc-title-copy p {
  font-size: var(--fs-meta);
  color: var(--ink-3);
}

.focus-head h2,
.drawer-head b,
.dag-stage-head b,
.dl-copy b {
  font-size: var(--fs-title-sm);
}

.sku-card-main h3,
.scan-row b,
.supplier-hit b,
.purchase-card h3,
.lc-sec h5 {
  font-size: var(--fs-body-lg);
}

.drawer,
.sku-drawer {
  height: calc(100dvh - 20px) !important;
  max-height: calc(100dvh - 20px) !important;
}

.drawer.sku-drawer {
  top: 10px !important;
  right: 10px !important;
  bottom: 10px !important;
  left: 10px !important;
  border-radius: 28px !important;
}

.sku-drawer-head {
  min-height: 62px !important;
  flex: none;
}

.sku-drawer .drawer-body {
  display: block !important;
  padding: clamp(16px, 2.4vw, 36px) clamp(18px, 3vw, 44px) 34px !important;
  overflow: auto !important;
}

.sku-drawer .identity-band {
  overflow: visible !important;
  min-height: auto !important;
  border-radius: 30px !important;
  padding: clamp(20px, 2.5vw, 34px) !important;
  margin-bottom: 18px;
}

.sku-drawer .ib-top {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start !important;
}

.sku-drawer .ib-name,
.sku-drawer .ib-name h2,
.sku-drawer .rename-row {
  min-width: 0;
}

.sku-drawer .ib-name h2 {
  display: block !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: clamp(30px, 3.8vw, 56px) !important;
  line-height: 1.08 !important;
}

.sku-drawer .ib-code {
  margin-top: 2px;
}

.sku-drawer .ib-barcode {
  min-height: 56px;
  align-items: center;
}

.dag-fullscreen {
  inset: 10px !important;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  max-height: calc(100dvh - 20px) !important;
  border-radius: 30px !important;
  overflow: hidden !important;
}

.dag-full-head {
  flex: none;
}

.dag-full-body {
  min-height: 0;
  overflow: auto !important;
  padding-bottom: 14px;
}

.dag-wrap.full {
  height: auto !important;
  min-height: min(640px, calc(100dvh - 220px));
}

.dag-wrap {
  position: relative;
}

.dag-mainline {
  --line: rgba(27, 97, 201, .20);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 1fr);
  gap: 12px;
  max-width: 100%;
  min-width: 0;
  padding: 14px 6px 18px;
  margin: 8px 0 4px;
  overflow-x: auto;
  overflow-y: visible;
  scroll-snap-type: x proximity;
  scrollbar-gutter: stable;
}

.dag-mainline::before {
  content: "";
  position: absolute;
  left: 22px;
  right: 22px;
  top: 92px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(27, 97, 201, .68), rgba(48, 209, 88, .45), rgba(118, 118, 128, .16));
  pointer-events: none;
}

.dag-line-stage {
  position: relative;
  scroll-snap-align: start;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 76px;
  padding: 13px 14px 16px;
  border: 0;
  border-radius: 22px;
  text-align: left;
  background: rgba(255, 255, 255, .92);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .075), var(--elev-card);
  cursor: pointer;
  isolation: isolate;
}

/* V68 · 供应商主数据中心：准入、搜索、权限、附件与操作留痕 */
.supplier-console-v68 {
  max-width: 100%;
  overflow: hidden;
  background:
    radial-gradient(circle at 0% 0%, rgba(var(--system-action-rgb), .065), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,249,252,.96));
}

.supplier-console-v68 .supplier-console-head {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 560px);
}

.supplier-console-v68 .supplier-search {
  min-height: 58px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
}

.supplier-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.sf-step {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 4px 10px;
  align-items: center;
  min-height: 76px;
  padding: 13px 14px;
  border-radius: 22px;
  background: rgba(255,255,255,.88);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06), 0 14px 34px rgba(17,24,39,.055);
}

.sf-step b {
  grid-row: span 2;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: var(--sf-tone, var(--system-action));
  background: color-mix(in srgb, var(--sf-tone, var(--system-action)) 12%, white);
  font: 900 16px/1 var(--mono);
}

.sf-step span {
  min-width: 0;
  font-size: 16px;
  font-weight: 900;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sf-step small {
  min-width: 0;
  color: var(--ink-3);
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.supplier-package-row,
.supplier-console-v68 .supplier-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.supplier-console-v68 .supplier-request-row {
  grid-template-columns:
    minmax(220px, 1.1fr)
    minmax(240px, 1.25fr)
    minmax(138px, .62fr)
    minmax(138px, .62fr)
    minmax(160px, .72fr)
    minmax(180px, .86fr)
    minmax(190px, .9fr)
    minmax(160px, .72fr)
    auto;
  align-items: center;
  overflow-x: auto;
  padding: 14px;
  background: rgba(255,255,255,.78);
}

.supplier-inbox-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.supplier-console-v68 .supplier-maint-list {
  grid-template-columns: 1fr !important;
  gap: 10px;
}

.supplier-console-v68 .supplier-maint-card {
  padding: 0;
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.92);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.075), 0 14px 34px rgba(17,24,39,.052);
}

.supplier-console-v68 .supplier-maint-card.is-open {
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(var(--system-action-rgb), .22), 0 22px 54px rgba(17,24,39,.08);
}

.supplier-console-v68 .smc-head {
  cursor: pointer;
  padding: 16px 18px;
  align-items: center;
}

.supplier-console-v68 .smc-head:hover {
  background: rgba(var(--system-action-rgb), .035);
}

.supplier-console-v68 .smc-head b {
  font-size: clamp(17px, 1.1vw, 22px);
}

.supplier-console-v68 .smc-head small,
.supplier-console-v68 .smc-lite small {
  font-size: 14px;
  color: var(--ink-3);
  overflow-wrap: anywhere;
}

.supplier-console-v68 .smc-lite {
  margin: 0 16px 16px;
  grid-template-columns: minmax(0, 1fr) auto;
  background: rgba(118,118,128,.07);
}

.supplier-detail {
  display: grid;
  gap: 14px;
  padding: 0 18px 18px;
}

.supplier-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 16px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(245,248,255,.94), rgba(255,255,255,.86));
  box-shadow: inset 0 0 0 1px rgba(var(--system-action-rgb), .12);
}

.supplier-detail-head b {
  display: block;
  color: var(--ink);
  font-size: clamp(18px, 1.25vw, 24px);
}

.supplier-detail-head small {
  display: block;
  margin-top: 4px;
  color: var(--ink-3);
  line-height: 1.4;
}

.supplier-console-v68 .smc-kpis {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.supplier-console-v68 .smc-kpis label,
.supplier-sensitive-form label {
  display: grid;
  gap: 6px;
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 900;
}

.supplier-sensitive-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  padding: 14px;
  border-radius: 22px;
  background: rgba(118,118,128,.055);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
}

.supplier-missing {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.supplier-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 12px;
}

.supplier-detail-grid section {
  min-width: 0;
  padding: 14px;
  border-radius: 22px;
  background: rgba(255,255,255,.86);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}

.supplier-detail-grid h4 {
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 16px;
}

.supplier-doc-upload {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}

.supplier-doc-upload .gs-in {
  width: auto;
  min-width: 150px;
}

.supplier-contract-studio {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 0 0, rgba(255,159,10,.13), transparent 34%),
    linear-gradient(180deg, rgba(255,250,242,.94), rgba(255,255,255,.88));
  box-shadow: inset 0 0 0 1px rgba(255,159,10,.18), 0 14px 32px rgba(120,78,18,.055);
}

.contract-studio-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.contract-studio-head > div {
  display: grid;
  grid-template-columns: 30px minmax(0, auto);
  gap: 2px 9px;
  align-items: center;
}

.contract-studio-head b {
  color: var(--ink);
  font-size: 16px;
  font-weight: 900;
}

.contract-studio-head small {
  grid-column: 2;
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 800;
}

.contract-studio-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
}

.contract-studio-grid label:not(.btn) {
  display: grid;
  gap: 6px;
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 900;
}

.contract-template-note {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 800;
}

.contract-template-note b {
  flex-basis: 100%;
  color: var(--ink);
  font-size: 14px;
}

.supplier-risk-panel,
.po-risk-strip {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 6px 10px;
  align-items: center;
  padding: 12px 14px;
  border-radius: 20px;
  background: rgba(255,248,235,.9);
  box-shadow: inset 0 0 0 1px rgba(255,159,10,.2);
}

.supplier-risk-panel.ok,
.po-risk-strip.ok {
  background: rgba(232,247,238,.9);
  box-shadow: inset 0 0 0 1px rgba(52,199,89,.18);
}

.supplier-risk-panel.is-red,
.po-risk-strip.is-red {
  background: rgba(255,241,242,.92);
  box-shadow: inset 0 0 0 1px rgba(255,59,48,.2);
}

.supplier-risk-panel .ic,
.po-risk-strip .ic {
  width: 19px;
  height: 19px;
  color: var(--amber);
}

.supplier-risk-panel.is-red .ic,
.po-risk-strip.is-red .ic {
  color: var(--red);
}

.supplier-risk-panel.ok .ic,
.po-risk-strip.ok .ic {
  color: var(--green);
}

.supplier-risk-panel b,
.po-risk-strip b {
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
}

.supplier-risk-panel small,
.po-risk-strip small {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 800;
}

.supplier-risk-list {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 7px;
}

.supplier-risk-list span {
  display: grid;
  gap: 2px;
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
}

.supplier-risk-list span.red {
  box-shadow: inset 0 0 0 1px rgba(255,59,48,.22);
}

.sc-risk {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.supplier-sensitive-mask {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 4px 10px;
  align-items: center;
  padding: 12px;
  border-radius: 18px;
  background: rgba(118,118,128,.08);
}

.supplier-sensitive-mask .ic {
  grid-row: span 2;
  width: 18px;
  height: 18px;
  color: var(--system-action);
}

.supplier-sensitive-mask small {
  color: var(--ink-3);
}

.supplier-doc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
}

.supplier-doc-bucket {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 10px;
  border-radius: 16px;
  background: rgba(248,249,251,.92);
}

.supplier-doc-bucket b {
  font-size: 14px;
}

.supplier-doc-bucket small {
  color: var(--ink-3);
  font-size: 12px;
}

.doc-pill {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 7px 8px;
  border-radius: 12px;
  color: var(--ink);
  font-weight: 800;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
  overflow-wrap: anywhere;
}

.doc-pill .ic {
  width: 14px;
  height: 14px;
}

.doc-pill em,
.audit-row em {
  color: var(--ink-3);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}

.doc-pill.muted {
  color: var(--ink-3);
}

.audit-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 10px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.audit-row:last-child {
  border-bottom: 0;
}

.audit-row b {
  min-width: 0;
  color: var(--ink);
  overflow-wrap: anywhere;
}

.audit-row small {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 800;
}

.audit-row em {
  grid-column: 1 / -1;
  max-width: 100%;
  overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
  .supplier-console-v68 .supplier-console-head,
  .supplier-flow,
  .supplier-inbox-grid,
  .supplier-detail-grid,
  .contract-studio-grid {
    grid-template-columns: 1fr;
  }
  .supplier-console-v68 .supplier-request-row {
    grid-template-columns: 1fr;
  }
}

.dag-line-stage i {
  position: absolute;
  left: 14px;
  right: auto;
  bottom: 9px;
  height: 5px;
  max-width: calc(100% - 28px);
  border-radius: 999px;
  background: linear-gradient(90deg, var(--system-action), var(--green));
}

.dag-line-stage.is-focus {
  background: linear-gradient(180deg, rgba(235, 245, 255, .96), rgba(255, 255, 255, .96));
  box-shadow: inset 0 0 0 2px rgba(var(--system-action-rgb), .40), 0 20px 48px rgba(var(--system-action-rgb), .16);
}

.dag-line-stage.blocked {
  background: linear-gradient(180deg, rgba(255, 242, 241, .98), rgba(255, 255, 255, .96));
}

.dag-line-stage.is-future {
  opacity: .76;
}

.dag-line-stage.is-future i {
  background: rgba(118, 118, 128, .18);
}

.dl-no {
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  font: 900 16px/1 var(--mono);
  background: rgba(var(--system-action-rgb), .10);
}

.dag-line-stage.is-focus .dl-no {
  color: #fff;
  background: var(--system-action);
}

.dag-line-stage.done .dl-no,
.dag-line-stage.is-past.done .dl-no {
  color: var(--green-text);
  background: rgba(var(--green-rgb), .14);
}

.dl-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.dl-copy b {
  display: block;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dl-copy small {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dl-state {
  justify-self: end;
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--ink-2);
  font-weight: 900;
  background: rgba(118, 118, 128, .12);
  white-space: nowrap;
}

.dag-line-stage.is-focus .dl-state {
  color: var(--amber-text);
  background: rgba(var(--amber-rgb), .16);
}

.dag-flow-scroll {
  padding-top: 10px !important;
}

.dag-flow-track {
  grid-auto-columns: minmax(330px, 420px) !important;
}

.dag-stage {
  min-height: 320px;
  border-radius: 26px !important;
}

@media (max-width: 1100px) {
  .dag-mainline {
    grid-auto-columns: minmax(190px, 76vw);
  }
  .sku-drawer .ib-top {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .sku-drawer .vi-stack {
    grid-column: 1 / -1;
  }
}

/* V69 · 作战图主航线：清晰路线图，不再像散落卡片 */
.dag-mainline.dag-route-map {
  --route-blue: var(--system-action);
  --route-green: var(--green);
  --route-amber: var(--amber);
  --route-gray: rgba(118,118,128,.22);
  display: grid;
  gap: 14px;
  position: relative;
  max-width: 100%;
  margin: 10px 0 6px;
  padding: 16px;
  overflow: hidden;
  border-radius: 28px;
  background:
    radial-gradient(circle at 8% 0%, rgba(var(--system-action-rgb), .10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,249,252,.92));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055), 0 20px 56px rgba(17,24,39,.07);
}

.dag-mainline.dag-route-map::before {
  content: none !important;
}

.dag-route-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
}

.dag-route-head > div:first-child {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 0;
}

.dag-route-head b {
  display: block;
  color: var(--ink);
  font-size: clamp(18px, 1.2vw, 24px);
  line-height: 1.15;
  font-weight: 900;
}

.dag-route-head small {
  display: block;
  margin-top: 4px;
  color: var(--ink-3);
  font-size: 14px;
  line-height: 1.35;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.dag-route-score {
  display: grid;
  gap: 7px;
  min-width: 160px;
  justify-items: end;
}

.dag-route-score b {
  font: 900 24px/1 var(--mono);
  color: var(--route-blue);
}

.dag-route-score span {
  width: 160px;
  height: 8px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(118,118,128,.16);
}

.dag-route-score i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--route-blue), var(--route-green));
}

.dag-route-rail {
  display: grid;
  grid-template-columns: repeat(var(--route-count), minmax(250px, 1fr));
  gap: 18px;
  min-width: max(100%, calc(var(--route-count) * 268px));
  overflow-x: auto;
  overflow-y: visible;
  padding: 6px 2px 16px;
  scroll-snap-type: x proximity;
  scrollbar-gutter: stable;
}

.dag-mainline.dag-route-map .dag-line-stage {
  --stage-color: var(--route-gray);
  position: relative;
  display: grid;
  grid-template-rows: 58px minmax(118px, auto);
  gap: 8px;
  align-items: start;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  scroll-snap-align: start;
  overflow: visible;
  isolation: isolate;
}

.dag-route-map .dag-line-stage.done,
.dag-route-map .dag-line-stage.is-past {
  --stage-color: var(--route-green);
}

.dag-route-map .dag-line-stage.is-focus,
.dag-route-map .dag-line-stage.active {
  --stage-color: var(--route-blue);
}

.dag-route-map .dag-line-stage.blocked {
  --stage-color: var(--red);
}

.dag-route-map .dag-line-stage.is-future,
.dag-route-map .dag-line-stage.pending {
  --stage-color: var(--route-gray);
}

.route-connector {
  position: absolute;
  top: 27px;
  left: calc(50% + 31px);
  width: calc(100% + 18px);
  height: 6px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--stage-color) 84%, white), color-mix(in srgb, var(--stage-color) 24%, white));
  box-shadow: 0 8px 20px color-mix(in srgb, var(--stage-color) 18%, transparent);
  z-index: 0;
}

.dag-route-map .dag-line-stage.is-last .route-connector {
  display: none;
}

.route-dot {
  position: relative;
  z-index: 2;
  justify-self: center;
  width: 58px;
  height: 58px;
  border-radius: 22px;
  display: grid;
  place-items: center;
  color: var(--stage-color);
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.86));
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--stage-color) 26%, transparent),
    0 16px 34px rgba(17,24,39,.08);
}

.route-dot em {
  font: 900 18px/1 var(--mono);
  font-style: normal;
  letter-spacing: 0;
}

.dag-route-map .dag-line-stage.is-focus .route-dot {
  color: #fff;
  background: linear-gradient(180deg, #2f86ff, var(--route-blue));
  box-shadow:
    0 0 0 6px rgba(var(--system-action-rgb), .10),
    0 18px 44px rgba(var(--system-action-rgb), .28);
}

.dag-route-map .dag-line-stage.blocked .route-dot {
  color: #fff;
  background: linear-gradient(180deg, #ff6b61, var(--red));
}

.route-card {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 7px;
  min-height: 118px;
  padding: 15px;
  border-radius: 24px;
  text-align: left;
  background: rgba(255,255,255,.92);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.07), 0 16px 40px rgba(17,24,39,.065);
}

.dag-route-map .dag-line-stage.is-focus .route-card {
  background: linear-gradient(180deg, rgba(237,246,255,.97), rgba(255,255,255,.95));
  box-shadow: inset 0 0 0 2px rgba(var(--system-action-rgb), .34), 0 22px 54px rgba(var(--system-action-rgb), .15);
}

.dag-route-map .dag-line-stage.blocked .route-card {
  background: linear-gradient(180deg, rgba(255,244,243,.97), rgba(255,255,255,.95));
  box-shadow: inset 0 0 0 2px rgba(255,59,48,.22), 0 22px 54px rgba(255,59,48,.10);
}

.route-card-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.route-card-top b,
.route-card strong,
.route-card small {
  min-width: 0;
}

.route-card-top b {
  color: var(--ink);
  font-size: clamp(17px, 1.05vw, 22px);
  line-height: 1.18;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.route-card strong {
  display: block;
  color: var(--ink);
  font-size: clamp(15px, .95vw, 18px);
  line-height: 1.28;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.route-card small {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.3;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.dag-route-map .dl-state {
  justify-self: end;
  padding: 6px 10px;
  border-radius: 999px;
  color: var(--ink-2);
  font-size: 13px;
  font-weight: 900;
  background: rgba(118,118,128,.13);
  white-space: nowrap;
}

.dag-route-map .dag-line-stage.is-focus .dl-state {
  color: var(--route-blue);
  background: rgba(var(--system-action-rgb), .12);
}

.dag-route-map .dag-line-stage.done .dl-state,
.dag-route-map .dag-line-stage.is-past.done .dl-state {
  color: var(--green-text);
  background: rgba(var(--green-rgb), .12);
}

.dag-route-map .dag-line-stage.blocked .dl-state {
  color: var(--red);
  background: rgba(255,59,48,.12);
}

.route-mini {
  display: grid;
  gap: 8px;
  margin-top: 2px;
}

.route-mini span {
  color: var(--ink-3);
  font-size: 12px;
  line-height: 1.25;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dag-route-map .dag-line-stage .route-mini i {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  display: block;
  max-width: none;
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--route-blue), var(--route-green));
}

.dag-route-map .dag-line-stage.is-future .route-mini i {
  background: rgba(118,118,128,.20);
}

.dag-route-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 900;
}

.dag-route-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
}

.dag-route-legend i {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: rgba(118,118,128,.35);
}

.dag-route-legend i.ok {
  background: var(--route-green);
}

.dag-route-legend i.now {
  background: var(--route-blue);
}

@media (max-width: 1180px) {
  .dag-route-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .dag-route-score {
    width: 100%;
    justify-items: start;
  }
  .dag-route-score span {
    width: min(260px, 100%);
  }
  .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(224px, 78vw));
    min-width: calc(var(--route-count) * 240px);
  }
}

/* V69 · 供应商补档：任务式填写，不再一次性摊开所有字段 */
.supplier-smart-fill {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  padding: 14px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 0 0, rgba(var(--system-action-rgb), .12), transparent 34%),
    linear-gradient(180deg, rgba(246,250,255,.98), rgba(255,255,255,.92));
  box-shadow: inset 0 0 0 1px rgba(var(--system-action-rgb), .16), 0 16px 38px rgba(17,24,39,.055);
}

.supplier-smart-fill > div {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
}

.supplier-smart-fill b {
  color: var(--ink);
  font-size: 17px;
  font-weight: 900;
}

.supplier-smart-fill small {
  display: block;
  margin-top: 3px;
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.35;
  font-weight: 800;
}

.supplier-smart-fill textarea.gs-in {
  min-height: 92px;
  resize: vertical;
  line-height: 1.45;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
}

.supplier-focus-head {
  background:
    linear-gradient(135deg, rgba(0,113,227,.09), rgba(52,199,89,.07)),
    var(--surface);
  border-color: rgba(0,113,227,.18);
}

.supplier-focus-head b {
  font-size: 18px;
  letter-spacing: 0;
}

.supplier-focus-head small {
  color: var(--text-secondary);
  font-weight: 700;
}

.supplier-duty-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.supplier-duty-grid section {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 13px;
  border-radius: 22px;
  background: rgba(255,255,255,.92);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.065), 0 14px 30px rgba(17,24,39,.045);
}

.supplier-duty-grid section.need {
  background: linear-gradient(180deg, rgba(255,250,242,.98), rgba(255,255,255,.92));
  box-shadow: inset 0 0 0 1px rgba(255,159,10,.20), 0 14px 30px rgba(120,78,18,.045);
}

.supplier-duty-grid section.done {
  background: linear-gradient(180deg, rgba(239,251,244,.96), rgba(255,255,255,.92));
}

.supplier-duty-grid section > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.supplier-duty-grid b {
  color: var(--ink);
  font-size: 15px;
  line-height: 1.2;
  font-weight: 900;
}

.supplier-duty-grid small {
  color: var(--ink-3);
  font-size: 12px;
  line-height: 1.25;
  font-weight: 800;
}

.supplier-duty-grid section > div:last-child {
  display: grid;
  gap: 7px;
}

.supplier-duty-grid label,
.supplier-archive-block label {
  display: grid;
  gap: 5px;
  color: var(--ink-3);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 900;
}

.supplier-duty-grid .gs-in {
  min-height: 42px;
  border-radius: 15px;
  font-size: 15px;
}

.supplier-archive-block {
  border-radius: 22px;
  background: rgba(118,118,128,.06);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
  overflow: hidden;
}

.supplier-archive-block summary {
  list-style: none;
  display: grid;
  grid-template-columns: 24px auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 58px;
  padding: 12px 14px;
  cursor: pointer;
  color: var(--ink);
}

.supplier-archive-block summary::-webkit-details-marker {
  display: none;
}

.supplier-archive-block summary b {
  font-size: 15px;
  font-weight: 900;
}

.supplier-archive-block summary small {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.3;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.supplier-archive-block .supplier-sensitive-form {
  margin: 0;
  border-radius: 0;
  background: rgba(255,255,255,.70);
  box-shadow: inset 0 1px 0 rgba(0,0,0,.055);
}

.supplier-console-v68 .supplier-risk-panel {
  align-items: start;
  padding: 12px;
}

.supplier-console-v68 .supplier-risk-list {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.supplier-console-v68 .supplier-risk-list span {
  min-height: 58px;
  padding: 8px 10px;
}

.supplier-console-v68 .supplier-risk-list b {
  font-size: 13px;
}

.supplier-console-v68 .supplier-risk-list small {
  font-size: 12px;
}

@media (max-width: 1500px) {
  .supplier-duty-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .supplier-smart-fill,
  .supplier-duty-grid {
    grid-template-columns: 1fr;
  }
}

/* V71 · 便利性自动化：批量选择 / 撤销 / 快捷处理 */
.batch-dock {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  min-width: 0;
  flex: none;
}

.batch-dock.is-on {
  padding: 4px;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06), 0 8px 28px rgba(0,0,0,.07);
}

.batch-count {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  color: var(--blue);
  background: rgba(var(--blue-rgb), .10);
  font: 800 12px/1 var(--sans);
  white-space: nowrap;
}

.batch-pick {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: var(--ink-3);
  background: rgba(255,255,255,.74);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
  transition: transform .16s var(--pop), background .16s var(--ease), color .16s var(--ease), box-shadow .16s var(--ease);
}

.batch-pick:hover {
  color: var(--blue);
  transform: translateY(-1px);
}

.batch-pick.is-on {
  color: #fff;
  background: var(--blue);
  box-shadow: 0 8px 20px rgba(var(--blue-rgb), .22);
}

.batch-pick .ic {
  width: 14px;
  height: 14px;
}

.sku-card.is-picked {
  box-shadow: inset 0 0 0 2px rgba(var(--blue-rgb), .36), var(--sh-2);
}

.queue-row.is-picked {
  box-shadow: inset 0 0 0 2px rgba(var(--blue-rgb), .28), var(--sh-1);
}

.queue-row {
  grid-template-columns: auto auto minmax(0, 1fr) auto auto;
}

@media (max-width: 1180px) {
  .batch-dock .btn:not(:first-child):not(:last-child) {
    display: none;
  }
  .batch-dock.is-on .batch-count {
    max-width: 86px;
  }
}

/* V71 · 顶栏最终锁定：展开批量动作时不把个人区挤到下一行 */
.topbar {
  display: grid !important;
  grid-template-columns: minmax(220px, 360px) minmax(150px, 1fr) minmax(260px, 460px) minmax(0, max-content) auto !important;
  align-items: center !important;
  column-gap: 10px !important;
  row-gap: 8px !important;
  overflow: visible !important;
}
.topbar .station-chip,
.topbar .today-signal,
.topbar .gsearch,
.topbar .batch-dock,
.topbar .top-actions {
  min-width: 0;
}
.topbar .gsearch {
  width: 100%;
}
.topbar .batch-dock {
  justify-self: end;
  max-width: 100%;
}
.topbar .top-actions {
  justify-self: end;
  overflow: visible;
}
@media (max-width: 1560px) {
  .topbar {
    grid-template-columns: minmax(220px, 360px) minmax(260px, 1fr) minmax(0, max-content) auto !important;
  }
  .topbar .today-signal {
    display: none !important;
  }
}
@media (max-width: 1180px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }
  .topbar .gsearch,
  .topbar .batch-dock {
    grid-column: 1 / -1;
    justify-self: stretch;
  }
  .topbar .batch-dock {
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .topbar .batch-dock::-webkit-scrollbar {
    display: none;
  }
}

/* ==================== V74 · 深度收口：层级 / 可读性 / 搜索 / 流程图 ==================== */

.topbar {
  z-index: var(--z-topbar) !important;
}

body.has-search-open .topbar {
  z-index: var(--z-search) !important;
}

.drawer-layer {
  z-index: var(--z-drawer) !important;
}

.sheet-layer {
  z-index: var(--z-sheet) !important;
}

.confirm-layer {
  z-index: var(--z-confirm) !important;
}

.toast-stack {
  z-index: var(--z-toast) !important;
}

.gs-drop {
  z-index: 4 !important;
  max-height: min(520px, calc(100dvh - 92px));
  overflow: auto;
}

.btn {
  min-height: 40px;
}

.btn.small {
  min-height: var(--tap-min, 44px);
  padding: 10px 12px;
  border-radius: 10px;
}

.btn.primary.small,
.btn.danger.small {
  min-height: var(--tap-min, 44px);
  padding: 10px 15px;
  font-size: 14px;
  font-weight: 800;
}

.boss-decision .btn.primary.small,
.boss-decision .btn.danger.small,
.decision-grid .btn.primary.small,
.decision-grid .btn.danger.small {
  min-height: var(--tap-min);
  padding-inline: 18px;
}

.lc-price b {
  color: var(--red-text);
}

.lc-price b.tbd {
  color: var(--amber-text);
  font-size: 26px;
  font-weight: 800;
}

.lc-point svg,
.lc-foot svg {
  color: var(--green-text);
}

.lc-foot.bad {
  color: var(--red-text);
}

.dag-route-map .dag-route-rail {
  grid-template-columns: repeat(var(--route-count), minmax(0, 1fr)) !important;
  min-width: 100% !important;
  gap: clamp(10px, 1.2vw, 18px);
  overflow-x: auto;
  scrollbar-gutter: stable;
}

.dag-route-map .dag-line-stage {
  min-width: 0 !important;
}

.dag-route-map .route-card {
  min-width: 0;
  padding: clamp(12px, 1vw, 15px);
  border-radius: 22px;
}

.dag-route-map .route-card-top {
  gap: 6px;
}

.dag-route-map .route-card-top b {
  font-size: clamp(15px, .92vw, 20px);
}

.dag-route-map .route-card strong {
  font-size: clamp(13px, .86vw, 17px);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dag-route-map .route-card small {
  font-size: 12px;
}

.dag-route-map .dl-state {
  padding: 5px 9px;
  font-size: 12px;
}

.dag-route-map .route-dot {
  width: clamp(46px, 3.6vw, 58px);
  height: clamp(46px, 3.6vw, 58px);
  border-radius: 18px;
}

.supplier-focus-head {
  background:
    linear-gradient(135deg, rgba(0,113,227,.09), rgba(52,199,89,.07)),
    var(--surface) !important;
}

.supplier-focus-head small {
  color: var(--text-secondary) !important;
}

.supplier-duty-grid section,
.supplier-maint-card,
.purchase-card {
  min-width: 0;
}

.supplier-duty-grid b,
.supplier-duty-grid small,
.supplier-maint-card *,
.purchase-card * {
  min-width: 0;
}

@media (min-width: 1440px) {
  .dag-route-map .dag-route-rail {
    overflow-x: visible;
  }
}

@media (max-width: 760px) {
  .btn,
  .btn.small,
  .btn.primary.small,
  .btn.danger.small {
    min-height: var(--tap-min);
  }
  .dag-route-map .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(148px, 1fr)) !important;
  }
  .dag-route-map .route-connector {
    top: 23px;
  }
}

/* V74.1 · 主航线按容器自适应：宽屏一线，抽屉不挤成 65px 碎片 */
.dag-mainline.dag-route-map {
  container-type: inline-size;
  container-name: route-map;
}

@container route-map (min-width: 981px) {
  .dag-route-map .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(150px, 1fr)) !important;
    overflow-x: visible;
  }
}

@container route-map (max-width: 980px) {
  .dag-route-map .dag-route-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    min-width: 100% !important;
    overflow-x: visible;
    gap: 14px;
  }
  .dag-route-map .dag-line-stage {
    min-height: 132px;
    align-items: stretch;
  }
  .dag-route-map .route-connector {
    display: none;
  }
  .dag-route-map .route-dot {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 17px;
  }
  .dag-route-map .route-card {
    width: 100%;
    min-height: 118px;
    padding: 15px;
  }
  .dag-route-map .route-card-top b {
    font-size: 18px;
  }
  .dag-route-map .route-card strong {
    font-size: 16px;
    -webkit-line-clamp: 2;
  }
  .dag-route-map .route-card small {
    font-size: 13px;
  }
  .dag-route-map .route-mini span {
    white-space: normal;
  }
}

@container route-map (max-width: 560px) {
  .dag-route-map .dag-route-rail {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* V76 · 路线图可达性：中宽抽屉不裁边，7 段流程仍然看得清 */

.dag-mainline.dag-route-map {
  overflow-x: auto !important;
  overflow-y: visible !important;
  scrollbar-gutter: stable both-edges;
}

.dag-mainline.dag-route-map .dag-route-rail {
  grid-template-columns: repeat(var(--route-count), minmax(0, 1fr)) !important;
  width: 100% !important;
  min-width: max(100%, calc(var(--route-count) * 136px)) !important;
  box-sizing: border-box;
  overflow-x: visible !important;
  overflow-y: visible !important;
}

@container route-map (min-width: 981px) {
  .dag-mainline.dag-route-map .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(0, 1fr)) !important;
    width: 100% !important;
    min-width: max(100%, calc(var(--route-count) * 136px)) !important;
    overflow-x: visible !important;
  }
}

@container route-map (max-width: 980px) {
  .dag-mainline.dag-route-map .dag-route-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    min-width: 100% !important;
  }
}

@container route-map (max-width: 560px) {
  .dag-mainline.dag-route-map .dag-route-rail {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* V77 · 主航线识别度重构：总览、阶段、当前定位三段式，彻底禁止挤成竖排 */
.dag-mainline.dag-route-map {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto auto !important;
  align-items: stretch !important;
  gap: 14px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: clamp(16px, 1.35vw, 24px) !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  container-type: inline-size;
  container-name: route-map-v77;
}

.dag-mainline.dag-route-map > .dag-route-head,
.dag-mainline.dag-route-map > .dag-route-rail,
.dag-mainline.dag-route-map > .dag-route-legend {
  grid-column: 1 / -1 !important;
  min-width: 0 !important;
}

.dag-mainline.dag-route-map .dag-route-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 2px 2px 4px !important;
}

.dag-mainline.dag-route-map .dag-route-head > .route-title,
.dag-mainline.dag-route-map .dag-route-head > div:first-child {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0 !important;
}

.dag-mainline.dag-route-map .dag-route-head b {
  font-size: clamp(22px, 1.45vw, 30px) !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  word-break: keep-all !important;
}

.dag-mainline.dag-route-map .dag-route-head small {
  max-width: 78ch !important;
  color: #57575c !important;
  font-size: clamp(13px, .82vw, 15px) !important;
  line-height: 1.45 !important;
  white-space: normal !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}

.dag-mainline.dag-route-map .dag-route-score {
  min-width: clamp(132px, 12vw, 176px) !important;
  justify-items: end !important;
}

.dag-mainline.dag-route-map .dag-route-score b {
  font-size: clamp(24px, 1.7vw, 34px) !important;
}

.dag-mainline.dag-route-map .dag-route-score span {
  width: clamp(128px, 11vw, 170px) !important;
}

.dag-mainline.dag-route-map .dag-route-rail {
  display: grid !important;
  grid-template-columns: repeat(var(--route-count), minmax(172px, 1fr)) !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: max(100%, calc(var(--route-count) * 172px)) !important;
  padding: 8px 2px 12px !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  box-sizing: border-box !important;
  scroll-snap-type: x proximity !important;
  scrollbar-gutter: stable both-edges !important;
}

.dag-mainline.dag-route-map .dag-line-stage {
  grid-template-rows: 54px minmax(136px, auto) !important;
  gap: 8px !important;
  width: auto !important;
  min-width: 0 !important;
  overflow: visible !important;
}

.dag-mainline.dag-route-map .route-connector {
  top: 25px !important;
  left: calc(50% + 30px) !important;
  width: calc(100% + 12px) !important;
  height: 5px !important;
  opacity: .72 !important;
}

.dag-mainline.dag-route-map .route-dot {
  width: 54px !important;
  height: 54px !important;
  border-radius: 19px !important;
}

.dag-mainline.dag-route-map .route-dot em {
  font-size: 20px !important;
  line-height: 1 !important;
}

.dag-mainline.dag-route-map .route-card {
  min-height: 136px !important;
  padding: 14px !important;
  border-radius: 22px !important;
  align-content: start !important;
  gap: 9px !important;
  overflow: hidden !important;
}

.dag-mainline.dag-route-map .route-card-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: start !important;
  min-width: 0 !important;
}

.dag-mainline.dag-route-map .route-card-top b,
.dag-mainline.dag-route-map .route-card strong,
.dag-mainline.dag-route-map .route-card small {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}

.dag-mainline.dag-route-map .route-card-top b {
  min-width: 0 !important;
  font-size: 17px !important;
  line-height: 1.18 !important;
  letter-spacing: 0 !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

.dag-mainline.dag-route-map .route-card strong {
  color: var(--ink) !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

.dag-mainline.dag-route-map .route-card small {
  color: #57575c !important;
  font-size: 12.5px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

.dag-mainline.dag-route-map .route-mini {
  display: block !important;
  height: 7px !important;
  margin-top: auto !important;
  border-radius: 999px !important;
  background: rgba(118,118,128,.16) !important;
  overflow: hidden !important;
}

.dag-mainline.dag-route-map .route-mini span {
  display: none !important;
}

.dag-mainline.dag-route-map .route-mini i {
  display: block !important;
  height: 100% !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, var(--stage-color), color-mix(in srgb, var(--stage-color) 54%, #30d158)) !important;
}

@container route-map-v77 (max-width: 1180px) {
  .dag-mainline.dag-route-map .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(188px, 1fr)) !important;
    min-width: calc(var(--route-count) * 188px) !important;
  }
}

@container route-map-v77 (max-width: 720px) {
  .dag-mainline.dag-route-map .dag-route-head {
    grid-template-columns: minmax(0, 1fr) !important;
    justify-items: stretch !important;
  }
  .dag-mainline.dag-route-map .dag-route-score {
    justify-items: start !important;
  }
  .dag-mainline.dag-route-map .dag-route-rail {
    grid-template-columns: minmax(0, 1fr) !important;
    min-width: 100% !important;
    overflow-x: visible !important;
  }
  .dag-mainline.dag-route-map .route-connector {
    display: none !important;
  }
  .dag-mainline.dag-route-map .dag-line-stage {
    grid-template-columns: 54px minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
  }
  .dag-mainline.dag-route-map .route-dot {
    align-self: start !important;
  }
}

/* V79 · 完整横向航线：回到完整阶段卡，当前强聚焦，全链始终可见 */
.dag-mainline.dag-route-map.route-complete {
  gap: clamp(16px, 1.2vw, 24px) !important;
  padding: clamp(20px, 1.6vw, 32px) !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.94)),
    #ffffff !important;
  border: 1px solid rgba(120,120,128,.18) !important;
  border-radius: 32px !important;
  box-shadow: 0 24px 62px rgba(15,23,42,.075), inset 0 1px 0 rgba(255,255,255,.96) !important;
  container-name: route-map-v79;
}

.route-complete .dag-route-head {
  position: sticky !important;
  left: 0 !important;
  z-index: 4 !important;
  padding: 0 !important;
}

.route-complete .dag-route-head > .route-title,
.route-complete .dag-route-head > div:first-child {
  grid-template-columns: 48px minmax(0, 1fr) !important;
}

.route-complete .dag-route-head b {
  color: #1d1d1f !important;
  font-size: clamp(28px, 1.8vw, 38px) !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
}

.route-complete .dag-route-head small {
  max-width: min(980px, 70vw) !important;
  color: #57575c !important;
  font-size: clamp(14px, .84vw, 16px) !important;
  line-height: 1.45 !important;
  white-space: normal !important;
}

.route-complete .dag-route-score {
  display: grid !important;
  grid-template-columns: auto minmax(150px, 210px) !important;
  align-items: center !important;
  gap: 14px !important;
}

.route-complete .dag-route-score b {
  color: #1b61c9 !important;
  font-size: clamp(32px, 2.3vw, 48px) !important;
  font-weight: 900 !important;
}

.route-complete .dag-route-score span {
  width: 100% !important;
  height: 12px !important;
  border-radius: 999px !important;
  background: rgba(120,120,128,.14) !important;
}

.route-complete .dag-route-rail {
  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(var(--route-count), minmax(250px, 1fr)) !important;
  align-items: stretch !important;
  gap: clamp(16px, 1.1vw, 22px) !important;
  min-width: max(100%, calc(var(--route-count) * 250px)) !important;
  width: max(100%, calc(var(--route-count) * 250px)) !important;
  padding: clamp(22px, 1.8vw, 34px) 4px 54px !important;
  overflow: visible !important;
  scroll-snap-type: x proximity !important;
}

.route-complete .dag-route-rail::before {
  content: "" !important;
  position: absolute !important;
  left: 28px !important;
  right: 28px !important;
  top: calc(50% + 12px) !important;
  height: 5px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, rgba(52,199,89,.36), rgba(27,97,201,.34), rgba(120,120,128,.16)) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.9) !important;
  pointer-events: none !important;
}

.route-complete .dag-line-stage {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  min-height: clamp(224px, 15vw, 292px) !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  scroll-snap-align: center !important;
  transform: translateZ(0) !important;
}

.route-complete .route-connector {
  display: none !important;
}

.route-complete .route-dot {
  position: absolute !important;
  z-index: 3 !important;
  left: clamp(18px, 1.15vw, 24px) !important;
  top: clamp(20px, 1.25vw, 28px) !important;
  display: grid !important;
  place-items: center !important;
  width: clamp(58px, 3.8vw, 72px) !important;
  height: clamp(58px, 3.8vw, 72px) !important;
  border-radius: 22px !important;
  color: #6e6e73 !important;
  background: rgba(118,118,128,.11) !important;
  box-shadow: inset 0 0 0 1px rgba(120,120,128,.12) !important;
}

.route-complete .route-dot em {
  font-size: clamp(20px, 1.35vw, 28px) !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

.route-complete .route-card {
  display: grid !important;
  grid-template-rows: auto auto 1fr auto !important;
  align-content: start !important;
  gap: clamp(10px, .78vw, 14px) !important;
  min-height: clamp(224px, 15vw, 292px) !important;
  height: 100% !important;
  padding: clamp(22px, 1.45vw, 28px) clamp(18px, 1.3vw, 26px) clamp(18px, 1.25vw, 24px) clamp(96px, 6.6vw, 118px) !important;
  border: 1px solid rgba(120,120,128,.16) !important;
  border-radius: 30px !important;
  background: rgba(255,255,255,.88) !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.055), inset 0 1px 0 rgba(255,255,255,.86) !important;
  overflow: hidden !important;
}

.route-complete .route-card-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 10px !important;
}

.route-complete .route-card-top b {
  color: #1d1d1f !important;
  font-size: clamp(22px, 1.45vw, 30px) !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}

.route-complete .route-card strong {
  color: #1d1d1f !important;
  font-size: clamp(18px, 1.05vw, 23px) !important;
  font-weight: 700 !important;
  line-height: 1.24 !important;
  letter-spacing: 0 !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}

.route-complete .route-card small {
  color: #57575c !important;
  font-size: clamp(14px, .82vw, 16px) !important;
  font-weight: 600 !important;
  line-height: 1.42 !important;
  letter-spacing: 0 !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
}

.route-complete .route-card-top .dl-state {
  min-height: 34px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  color: #6e6e73 !important;
  background: rgba(118,118,128,.12) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}

.route-complete .route-mini {
  align-self: end !important;
  height: 10px !important;
  margin-top: 4px !important;
  border-radius: 999px !important;
  background: rgba(120,120,128,.16) !important;
  overflow: hidden !important;
}

.route-complete .route-mini i {
  display: block !important;
  height: 100% !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, #1b61c9, #30d158) !important;
}

.route-complete .dag-line-stage.is-past:not(.is-focus) .route-card {
  border-color: rgba(52,199,89,.18) !important;
  background: linear-gradient(180deg, rgba(239,250,244,.92), rgba(255,255,255,.88)) !important;
}

.route-complete .dag-line-stage.is-past .route-dot {
  color: #1f8f45 !important;
  background: rgba(52,199,89,.14) !important;
}

.route-complete .dag-line-stage.is-past .dl-state,
.route-complete .dag-line-stage.done .dl-state {
  color: #1f8f45 !important;
  background: rgba(52,199,89,.12) !important;
}

.route-complete .dag-line-stage.is-focus .route-card {
  border: 2px solid rgba(27,97,201,.48) !important;
  background:
    linear-gradient(135deg, rgba(0,113,227,.14), rgba(255,255,255,.96) 48%, rgba(48,209,88,.08)),
    #ffffff !important;
  box-shadow: 0 26px 68px rgba(0,113,227,.20), inset 0 1px 0 rgba(255,255,255,.94) !important;
}

.route-complete .dag-line-stage.is-focus .route-dot {
  color: #ffffff !important;
  background: linear-gradient(180deg, #2388ff, #1b61c9) !important;
  box-shadow: 0 18px 36px rgba(0,113,227,.24), inset 0 1px 0 rgba(255,255,255,.34) !important;
}

.route-complete .dag-line-stage.is-focus .dl-state {
  color: #ffffff !important;
  background: #1b61c9 !important;
  box-shadow: 0 10px 20px rgba(27,97,201,.18) !important;
}

.route-complete .dag-line-stage.is-focus .route-card-top b {
  color: #111827 !important;
}

.route-complete .dag-line-stage.blocked .route-card {
  border-color: rgba(255,59,48,.36) !important;
  background: linear-gradient(180deg, rgba(255,244,243,.95), rgba(255,255,255,.92)) !important;
}

.route-complete .dag-line-stage.blocked .route-dot,
.route-complete .dag-line-stage.blocked .dl-state {
  color: #ffffff !important;
  background: #d70015 !important;
}

.route-complete .dag-line-stage.is-future:not(.is-focus) .route-card {
  background: rgba(255,255,255,.62) !important;
  border-color: rgba(120,120,128,.14) !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.035), inset 0 1px 0 rgba(255,255,255,.78) !important;
}

.route-complete .dag-line-stage.is-future:not(.is-focus) .route-card-top b,
.route-complete .dag-line-stage.is-future:not(.is-focus) .route-card strong,
.route-complete .dag-line-stage.is-future:not(.is-focus) .route-card small {
  color: rgba(29,29,31,.55) !important;
}

.route-complete .dag-route-legend {
  position: sticky !important;
  left: 0 !important;
  justify-content: flex-end !important;
  color: #57575c !important;
  font-size: 14px !important;
}

@container route-map-v79 (max-width: 1180px) {
  .route-complete .dag-route-head {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .route-complete .dag-route-score {
    grid-template-columns: auto minmax(140px, 1fr) !important;
    justify-self: stretch !important;
  }
  .route-complete .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(236px, 1fr)) !important;
    min-width: max(100%, calc(var(--route-count) * 236px)) !important;
    width: max(100%, calc(var(--route-count) * 236px)) !important;
  }
}

@media (max-width: 720px) {
  .dag-mainline.dag-route-map.route-complete {
    border-radius: 24px !important;
  }
  .route-complete .dag-route-rail {
    grid-template-columns: minmax(0, 1fr) !important;
    min-width: 100% !important;
    width: 100% !important;
    padding-bottom: 20px !important;
  }
  .route-complete .dag-route-rail::before {
    display: none !important;
  }
  .route-complete .dag-line-stage,
  .route-complete .route-card {
    min-height: 156px !important;
  }
}

/* V80 · 主航线一次收敛：完整流程卡 + 当前条 + 低空白高辨识 */
.dag-mainline.dag-route-map.route-complete.route-airline {
  gap: 18px !important;
  padding: clamp(20px, 1.3vw, 28px) clamp(20px, 1.45vw, 32px) 18px !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 10% 18%, rgba(0,113,227,.075), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,249,252,.96)) !important;
  box-shadow: 0 18px 54px rgba(15,23,42,.07), inset 0 1px 0 rgba(255,255,255,.98) !important;
  container-name: route-map-v80;
}

.route-airline .dag-route-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 18px !important;
}

.route-airline .dag-route-head b {
  font-size: clamp(26px, 1.55vw, 34px) !important;
  line-height: 1.05 !important;
}

.route-airline .dag-route-head small {
  max-width: 920px !important;
  font-size: clamp(13px, .78vw, 15px) !important;
  color: #6e6e73 !important;
}

.route-airline .dag-route-score {
  grid-template-columns: auto 160px !important;
  gap: 14px !important;
}

.route-airline .dag-route-score b {
  font-size: clamp(30px, 2vw, 42px) !important;
  line-height: 1 !important;
}

.route-airline .dag-route-score span {
  height: 11px !important;
  background: rgba(120,120,128,.15) !important;
}

.route-airline .route-nowbar {
  position: sticky !important;
  left: 0 !important;
  z-index: 5 !important;
  display: grid !important;
  grid-template-columns: auto auto minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 12px !important;
  width: min(100%, 1180px) !important;
  min-height: 54px !important;
  padding: 10px 14px !important;
  border: 1px solid rgba(0,113,227,.18) !important;
  border-radius: 18px !important;
  background:
    linear-gradient(90deg, rgba(0,113,227,.10), rgba(255,255,255,.88) 46%, rgba(52,199,89,.08)),
    rgba(255,255,255,.92) !important;
  box-shadow: 0 12px 30px rgba(0,113,227,.08), inset 0 1px 0 rgba(255,255,255,.9) !important;
  overflow: hidden !important;
}

.route-airline .route-nowbar span {
  display: grid !important;
  place-items: center !important;
  width: 42px !important;
  height: 34px !important;
  border-radius: 12px !important;
  color: #ffffff !important;
  background: #0071e3 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

.route-airline .route-nowbar b,
.route-airline .route-nowbar strong,
.route-airline .route-nowbar small {
  min-width: 0 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.route-airline .route-nowbar b {
  color: #1d1d1f !important;
  font-size: 17px !important;
  font-weight: 800 !important;
}

.route-airline .route-nowbar strong {
  color: #1d1d1f !important;
  font-size: 17px !important;
  font-weight: 800 !important;
}

.route-airline .route-nowbar small {
  color: #57575c !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.route-airline .dag-route-rail {
  grid-template-columns: repeat(var(--route-count), minmax(232px, 1fr)) !important;
  gap: clamp(12px, .85vw, 16px) !important;
  min-width: max(100%, calc(var(--route-count) * 232px)) !important;
  width: max(100%, calc(var(--route-count) * 232px)) !important;
  padding: 8px 0 34px !important;
  align-items: stretch !important;
}

.route-airline .dag-route-rail::before {
  left: 24px !important;
  right: 24px !important;
  top: 86px !important;
  height: 4px !important;
  background: linear-gradient(90deg, rgba(52,199,89,.34), rgba(0,113,227,.30), rgba(120,120,128,.14)) !important;
}

.route-airline .dag-line-stage {
  min-height: 166px !important;
  height: auto !important;
  scroll-snap-align: center !important;
}

.route-airline .route-dot {
  left: 16px !important;
  top: 20px !important;
  width: 52px !important;
  height: 52px !important;
  border-radius: 17px !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.route-airline .route-dot em {
  font-size: 21px !important;
  line-height: 1 !important;
}

.route-airline .route-card {
  grid-template-rows: auto auto auto 1fr auto !important;
  gap: 8px !important;
  /* V132 · 七轮工单 P2-03：卡片由内容撑高——固定 height + overflow:hidden 会裁掉长中文标题。 */
  min-height: 166px !important;
  padding: 18px 16px 15px 86px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(120,120,128,.15) !important;
  background: rgba(255,255,255,.82) !important;
  box-shadow: 0 12px 30px rgba(15,23,42,.045), inset 0 1px 0 rgba(255,255,255,.86) !important;
  overflow: visible !important;
}

.route-airline .route-card-top {
  min-height: 28px !important;
  align-items: start !important;
  gap: 8px !important;
  min-width: 0 !important;
}

.route-airline .route-card-top b {
  min-width: 0 !important;
  font-size: clamp(18px, .95vw, 21px) !important;
  line-height: 1.08 !important;
  -webkit-line-clamp: 2 !important;
}

.route-airline .route-card strong {
  font-size: clamp(15px, .86vw, 17px) !important;
  line-height: 1.18 !important;
  -webkit-line-clamp: 2 !important;
  color: #242429 !important;
}

.route-airline .route-card small {
  font-size: 13px !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
  color: #66666b !important;
  -webkit-line-clamp: 2 !important;
}

.route-airline .route-card-top .dl-state {
  flex: 0 0 auto !important;
  min-height: 28px !important;
  height: 28px !important;
  padding: 0 10px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}

.route-airline .route-mini {
  height: 8px !important;
  margin-top: 0 !important;
}

.route-airline .dag-line-stage.is-past:not(.is-focus) .route-card {
  border-color: rgba(52,199,89,.28) !important;
  background: linear-gradient(180deg, rgba(235,250,242,.86), rgba(255,255,255,.82)) !important;
}

.route-airline .dag-line-stage.is-focus .route-card {
  border: 2px solid rgba(0,113,227,.58) !important;
  background:
    linear-gradient(145deg, rgba(0,113,227,.16), rgba(255,255,255,.98) 54%, rgba(52,199,89,.09)),
    #ffffff !important;
  box-shadow: 0 18px 42px rgba(0,113,227,.18), inset 0 1px 0 rgba(255,255,255,.96) !important;
}

.route-airline .dag-line-stage.is-focus .route-dot {
  transform: translateY(-3px) !important;
}

.route-airline .dag-line-stage.is-future:not(.is-focus) .route-card {
  opacity: .82 !important;
  background: rgba(255,255,255,.58) !important;
}

.route-airline .dag-line-stage.is-future:not(.is-focus) .route-dot {
  background: rgba(118,118,128,.10) !important;
}

.route-airline .dag-line-stage.is-future:not(.is-focus) .route-mini i {
  background: rgba(120,120,128,.22) !important;
}

.route-airline .dag-route-legend {
  margin-top: -28px !important;
  padding-right: 2px !important;
  font-size: 13px !important;
}

@container route-map-v80 (max-width: 1360px) {
  .route-airline .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(222px, 1fr)) !important;
    min-width: max(100%, calc(var(--route-count) * 222px)) !important;
    width: max(100%, calc(var(--route-count) * 222px)) !important;
  }
  .route-airline .route-card {
    padding-left: 82px !important;
  }
  .route-airline .route-dot {
    width: 48px !important;
    height: 48px !important;
  }
}

/* V80.1 · 用完整选择器压住旧 route-map 层，避免编号盖住标题 */
.dag-mainline.dag-route-map.route-airline .route-card {
  min-height: 166px !important;
  height: auto !important;
  padding: 18px 16px 15px 86px !important;
  gap: 8px !important;
  overflow: visible !important;
}

.dag-mainline.dag-route-map.route-airline .route-card-top,
.dag-mainline.dag-route-map.route-airline .route-card strong,
.dag-mainline.dag-route-map.route-airline .route-card small {
  min-width: 0 !important;
}

.dag-mainline.dag-route-map.route-airline .route-card-top {
  grid-template-columns: minmax(0, 1fr) auto !important;
  min-height: 28px !important;
}

.dag-mainline.dag-route-map.route-airline .route-card-top b {
  min-width: 0 !important;
  font-size: clamp(18px, .95vw, 21px) !important;
  line-height: 1.08 !important;
}

.dag-mainline.dag-route-map.route-airline .route-dot {
  left: 16px !important;
  top: 20px !important;
  width: 52px !important;
  height: 52px !important;
  z-index: 2 !important;
}

@media (max-width: 920px) {
  .route-airline .dag-route-head,
  .route-airline .route-nowbar {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .route-airline .route-nowbar span {
    display: none !important;
  }
  .route-airline .dag-route-score {
    justify-self: stretch !important;
  }
}

/* V80.2 · 主航线终修：强制顺序、完整横向、当前卡可读 */
.dag-mainline.dag-route-map.route-complete.route-airline {
  grid-auto-flow: row !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch !important;
  row-gap: 14px !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  scroll-snap-type: none !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-head,
.dag-mainline.dag-route-map.route-airline .route-nowbar,
.dag-mainline.dag-route-map.route-airline .dag-route-rail,
.dag-mainline.dag-route-map.route-airline .dag-route-legend {
  grid-column: 1 / -1 !important;
  position: relative !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-head { order: 1 !important; }
.dag-mainline.dag-route-map.route-airline .route-nowbar { order: 2 !important; }
.dag-mainline.dag-route-map.route-airline .dag-route-rail { order: 3 !important; }
.dag-mainline.dag-route-map.route-airline .dag-route-legend { order: 4 !important; }

.dag-mainline.dag-route-map.route-airline .route-nowbar {
  width: 100% !important;
  min-height: 62px !important;
  grid-template-columns: auto auto minmax(0, 1fr) auto !important;
  padding: 12px 16px !important;
  border-radius: 20px !important;
  border-color: rgba(0,113,227,.24) !important;
}

.dag-mainline.dag-route-map.route-airline .route-nowbar span {
  width: 46px !important;
  height: 38px !important;
  border-radius: 14px !important;
}

.dag-mainline.dag-route-map.route-airline .route-nowbar b,
.dag-mainline.dag-route-map.route-airline .route-nowbar strong {
  font-size: clamp(17px, .92vw, 20px) !important;
  line-height: 1.15 !important;
}

.dag-mainline.dag-route-map.route-airline .route-nowbar small {
  font-size: clamp(13px, .74vw, 15px) !important;
  line-height: 1.2 !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-rail {
  --route-card-w: clamp(224px, 12vw, 252px);
  grid-template-columns: repeat(var(--route-count), var(--route-card-w)) !important;
  gap: 12px !important;
  justify-content: start !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-x: contain !important;
  scroll-snap-type: x proximity !important;
  scrollbar-gutter: stable both-edges !important;
  padding: 12px 0 24px !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-rail::before {
  top: 96px !important;
  left: 24px !important;
  right: 24px !important;
  height: 5px !important;
  border-radius: 999px !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage {
  height: auto !important;
  min-height: 188px !important;
}

.dag-mainline.dag-route-map.route-airline .route-card {
  position: relative !important;
  min-height: 188px !important;
  height: auto !important;
  grid-template-rows: auto auto minmax(40px, 1fr) auto !important;
  padding: 18px 14px 16px 72px !important;
  gap: 8px !important;
  border-radius: 22px !important;
}

.dag-mainline.dag-route-map.route-airline .route-dot {
  left: 16px !important;
  top: 20px !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 15px !important;
}

.dag-mainline.dag-route-map.route-airline .route-dot em {
  font-size: 18px !important;
}

.dag-mainline.dag-route-map.route-airline .route-card-top {
  display: block !important;
  min-height: 42px !important;
  padding-right: 56px !important;
}

.dag-mainline.dag-route-map.route-airline .route-card-top b {
  display: -webkit-box !important;
  width: 100% !important;
  font-size: clamp(18px, .9vw, 21px) !important;
  line-height: 1.08 !important;
  -webkit-line-clamp: 2 !important;
}

.dag-mainline.dag-route-map.route-airline .route-card-top .dl-state {
  position: absolute !important;
  top: 16px !important;
  right: 14px !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 10px !important;
}

.dag-mainline.dag-route-map.route-airline .route-card strong {
  font-size: clamp(15px, .82vw, 17px) !important;
  line-height: 1.18 !important;
  -webkit-line-clamp: 2 !important;
}

.dag-mainline.dag-route-map.route-airline .route-card small {
  font-size: clamp(12px, .68vw, 14px) !important;
  line-height: 1.26 !important;
  -webkit-line-clamp: 3 !important;
}

.dag-mainline.dag-route-map.route-airline .route-mini {
  align-self: end !important;
  height: 8px !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-focus .route-card {
  transform: translateY(-3px) !important;
  border-color: rgba(0,113,227,.66) !important;
  box-shadow: 0 22px 44px rgba(0,113,227,.20), inset 0 1px 0 rgba(255,255,255,.96) !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-focus .route-dot {
  transform: translateY(-2px) scale(1.04) !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-legend {
  margin-top: -14px !important;
}

/* V80.3 · 主航线语义修正：后续并行完成显示「已备好」，不再误导为主线已过 */
.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-ready-ahead .route-card {
  border-color: rgba(0,113,227,.18) !important;
  background:
    linear-gradient(180deg, rgba(247,251,255,.88), rgba(255,255,255,.72)),
    rgba(255,255,255,.74) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.045), inset 0 1px 0 rgba(255,255,255,.90) !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-ready-ahead .route-dot {
  background: linear-gradient(180deg, rgba(229,242,255,.94), rgba(245,249,255,.76)) !important;
  color: #0a63ce !important;
  border-color: rgba(0,113,227,.18) !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-ready-ahead .dl-state {
  color: #0a63ce !important;
  background: rgba(0,113,227,.10) !important;
  border-color: rgba(0,113,227,.14) !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-ready-ahead .route-card strong,
.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-ready-ahead .route-card small {
  color: rgba(29,29,31,.70) !important;
}

/* V80.4 · 状态徽标入流：不再悬浮盖标题，长状态也不遮挡 */
.dag-mainline.dag-route-map.route-airline .route-card-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  column-gap: 8px !important;
  min-height: 44px !important;
  padding-right: 0 !important;
}

.dag-mainline.dag-route-map.route-airline .route-card-top .dl-state {
  position: static !important;
  justify-self: end !important;
  margin-top: 0 !important;
  white-space: nowrap !important;
}

/* V81 · 主航线收口：外层固定，阶段轨道独立滚动，避免整块横漂和文字压缩 */
.dag-mainline.dag-route-map.route-complete.route-airline {
  max-width: 100% !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-head,
.dag-mainline.dag-route-map.route-airline .route-nowbar,
.dag-mainline.dag-route-map.route-airline .dag-route-legend {
  min-width: 0 !important;
  max-width: 100% !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-rail {
  contain: layout paint !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-rail::-webkit-scrollbar {
  height: 10px !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-rail::-webkit-scrollbar-track {
  background: rgba(120,120,128,.10) !important;
  border-radius: 999px !important;
}

.dag-mainline.dag-route-map.route-airline .dag-route-rail::-webkit-scrollbar-thumb {
  background: linear-gradient(90deg, rgba(0,113,227,.72), rgba(48,176,160,.76)) !important;
  border-radius: 999px !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage {
  scroll-snap-align: start !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-focus {
  z-index: 3 !important;
}

.dag-mainline.dag-route-map.route-airline .dag-line-stage.is-focus .route-card {
  background:
    linear-gradient(145deg, rgba(0,113,227,.18), rgba(255,255,255,.98) 50%, rgba(52,199,89,.10)),
    #ffffff !important;
}

/* V82 · 主航线去同质化：全局导航仪，不再像下方任务清单 */
.dag-mainline.dag-route-map.route-command {
  padding: 22px 28px 20px !important;
  border-radius: 30px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,251,255,.96)),
    #fff !important;
  box-shadow:
    0 22px 70px rgba(15,23,42,.08),
    inset 0 0 0 1px rgba(0,0,0,.045),
    inset 0 1px 0 rgba(255,255,255,.96) !important;
}

/* V85 · 全链导航仪：保留完整流程，但让“当前在哪”一眼锁定 */
.dag-fullscreen {
  z-index: 80 !important;
  inset: 12px !important;
  background:
    radial-gradient(circle at 16% 0%, rgba(0,113,227,.08), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,249,252,.98)) !important;
  box-shadow:
    0 34px 110px rgba(15,23,42,.18),
    inset 0 0 0 1px rgba(0,0,0,.06),
    inset 0 1px 0 rgba(255,255,255,.96) !important;
}

.dag-fullscreen .dag-full-head {
  min-height: 70px !important;
  padding: 18px 24px !important;
  border-bottom: 1px solid rgba(0,0,0,.07) !important;
  background: rgba(255,255,255,.88) !important;
  backdrop-filter: saturate(180%) blur(18px) !important;
}

.dag-fullscreen .dag-full-body {
  padding: 18px 22px 22px !important;
  overflow: auto !important;
}

.dag-fullscreen .dag-wrap.full {
  min-height: 0 !important;
}

.dag-fullscreen .dag-wrap.full .dag-meta {
  position: sticky !important;
  top: 0 !important;
  z-index: 5 !important;
  padding: 8px 0 12px !important;
  background: linear-gradient(180deg, rgba(248,250,253,.98), rgba(248,250,253,.72)) !important;
  backdrop-filter: blur(14px) !important;
}

.dag-fullscreen .dag-mainline.dag-route-map.route-command {
  padding: 22px 26px 24px !important;
  border-radius: 32px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(250,252,255,.97)),
    #fff !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage {
  transition: transform .22s ease, opacity .22s ease, filter .22s ease !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus {
  transform: translateY(-14px) !important;
  z-index: 6 !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card {
  min-height: 226px !important;
  height: 226px !important;
  border: 3px solid rgba(0,113,227,.86) !important;
  outline: 8px solid rgba(0,113,227,.10) !important;
  background:
    linear-gradient(145deg, rgba(0,113,227,.22), rgba(255,255,255,.98) 45%, rgba(52,199,89,.12)),
    #fff !important;
  box-shadow:
    0 34px 72px rgba(0,113,227,.24),
    inset 0 1px 0 rgba(255,255,255,.98) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card::after {
  content: none !important;
}

/* V85.1 · 7 段主线优先一屏完整露出，避免首尾被切 */
.dag-fullscreen .dag-mainline.dag-route-map.route-airline .dag-route-rail {
  --route-card-w: clamp(208px, 11.2vw, 235px) !important;
  gap: 10px !important;
  justify-content: center !important;
  padding-left: 4px !important;
  padding-right: 4px !important;
}

.dag-fullscreen .dag-mainline.dag-route-map.route-airline .dag-line-stage {
  height: 206px !important;
  min-height: 206px !important;
}

.dag-fullscreen .dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card {
  min-height: 222px !important;
  height: 222px !important;
}

@media (max-width: 1500px) {
  .dag-fullscreen .dag-mainline.dag-route-map.route-airline .dag-route-rail {
    justify-content: start !important;
    overflow-x: auto !important;
  }
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-dot {
  left: 14px !important;
  top: 18px !important;
  width: 60px !important;
  height: 60px !important;
  border-radius: 20px !important;
  background: linear-gradient(180deg, #0a84ff, #005ac8) !important;
  color: #fff !important;
  box-shadow: 0 18px 36px rgba(0,113,227,.34) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card-top b {
  font-size: 22px !important;
  color: #0b1220 !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card strong {
  font-size: 19px !important;
  color: #0b1220 !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card small {
  color: rgba(29,29,31,.78) !important;
  padding-right: 72px !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .dl-state {
  color: #fff !important;
  background: #0a84ff !important;
  border-color: rgba(0,113,227,.20) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-past:not(.is-focus) {
  opacity: .78 !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-future:not(.is-focus) {
  opacity: .46 !important;
  filter: saturate(.76) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-future:not(.is-focus) .route-card {
  background: rgba(255,255,255,.72) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-parallel:not(.is-focus) .route-card {
  border-color: rgba(48,176,160,.24) !important;
  background:
    linear-gradient(180deg, rgba(240,253,249,.86), rgba(255,255,255,.78)),
    #fff !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-parallel:not(.is-focus) .route-dot {
  background: rgba(232,249,244,.96) !important;
  color: #087f6f !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-parallel:not(.is-focus) .dl-state {
  color: #087f6f !important;
  background: rgba(48,176,160,.12) !important;
}

.dag-mainline.dag-route-map.route-command .route-nowbar {
  border-width: 2px !important;
  border-color: rgba(0,113,227,.34) !important;
}

.dag-mainline.dag-route-map.route-command .route-now-main strong::before {
  content: "现在 ";
  display: inline-grid;
  place-items: center;
  height: 26px;
  margin-right: 8px;
  padding: 0 10px;
  border-radius: 999px;
  color: #fff;
  background: #0a84ff;
  font: 900 14px/1 var(--sans);
  vertical-align: 3px;
}

.dag-mainline.dag-route-map.route-command .dag-route-rail {
  padding-top: 24px !important;
}

.route-command .dag-route-head {
  margin-bottom: 2px !important;
}

.route-command .dag-route-head b {
  font-size: 30px !important;
}

.route-command .dag-route-head small {
  font-size: 15px !important;
  color: #58585f !important;
}

.route-command .dag-route-score {
  grid-template-columns: auto 180px !important;
}

.route-command .dag-route-score b {
  color: #075fc7 !important;
  font-size: 42px !important;
  letter-spacing: 0 !important;
}

.route-command .route-control-tower {
  display: grid !important;
  grid-template-columns: 66px minmax(280px, .95fr) minmax(380px, 1.2fr) minmax(260px, .95fr) !important;
  gap: 18px !important;
  align-items: stretch !important;
  min-height: 92px !important;
  padding: 16px 18px !important;
  border: 1px solid rgba(0,113,227,.22) !important;
  border-radius: 24px !important;
  background:
    linear-gradient(90deg, rgba(0,113,227,.13), rgba(255,255,255,.94) 34%, rgba(245,251,247,.96)),
    #fff !important;
  box-shadow: 0 18px 44px rgba(0,113,227,.10), inset 0 1px 0 rgba(255,255,255,.96) !important;
}

.route-command .route-control-tower > span {
  width: 58px !important;
  height: 58px !important;
  align-self: center !important;
  border-radius: 18px !important;
  font: 900 24px/1 var(--mono) !important;
  background: linear-gradient(180deg, #0a84ff, #005ac8) !important;
  box-shadow: 0 14px 30px rgba(0,113,227,.24) !important;
}

.route-command .route-now-main,
.route-command .route-now-facts {
  min-width: 0 !important;
}

.route-command .route-now-main {
  display: grid !important;
  align-content: center !important;
  gap: 6px !important;
}

.route-command .route-now-main b {
  font-size: 16px !important;
  color: #0071e3 !important;
  font-weight: 900 !important;
}

.route-command .route-now-main strong {
  font-size: clamp(24px, 1.6vw, 34px) !important;
  line-height: 1.08 !important;
  color: #1d1d1f !important;
  font-weight: 900 !important;
  white-space: normal !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

.route-command .route-now-facts {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.route-command .route-now-facts small {
  display: grid !important;
  align-content: center !important;
  gap: 6px !important;
  min-width: 0 !important;
  padding: 12px 14px !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.78) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055) !important;
  color: #73737a !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

.route-command .route-now-facts small b {
  min-width: 0 !important;
  color: #1d1d1f !important;
  font-size: 17px !important;
  line-height: 1.12 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.route-command .route-control-tower em {
  display: grid !important;
  align-content: center !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 12px 16px !important;
  border-radius: 18px !important;
  background: rgba(235,245,255,.74) !important;
  color: #334155 !important;
  font: 800 14px/1.45 var(--sans) !important;
  font-style: normal !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.route-command .dag-route-rail {
  --route-card-w: clamp(218px, 13vw, 260px) !important;
  padding: 26px 4px 28px !important;
  gap: 14px !important;
}

.route-command .dag-route-rail::before {
  top: 82px !important;
  left: 34px !important;
  right: 34px !important;
  height: 7px !important;
  background:
    linear-gradient(90deg, rgba(52,199,89,.82), rgba(0,113,227,.82) 36%, rgba(120,120,128,.22) 70%) !important;
}

.route-command .dag-line-stage {
  height: 142px !important;
  min-height: 142px !important;
}

.route-command .dag-line-stage::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: -18px !important;
  width: 2px !important;
  height: 18px !important;
  transform: translateX(-50%) !important;
  background: rgba(120,120,128,.16) !important;
}

.route-command .dag-line-stage.is-focus::before {
  width: 4px !important;
  height: 28px !important;
  top: -28px !important;
  border-radius: 999px !important;
  background: #0071e3 !important;
  box-shadow: 0 0 0 7px rgba(0,113,227,.10) !important;
}

.route-command .route-dot {
  left: 50% !important;
  top: 0 !important;
  width: 58px !important;
  height: 58px !important;
  transform: translateX(-50%) !important;
  border-radius: 50% !important;
  z-index: 3 !important;
}

.route-command .dag-line-stage.is-focus .route-dot {
  transform: translateX(-50%) translateY(-4px) scale(1.08) !important;
  background: linear-gradient(180deg, #0a84ff, #005ac8) !important;
  box-shadow: 0 16px 32px rgba(0,113,227,.28), 0 0 0 9px rgba(0,113,227,.12) !important;
}

.route-command .route-card {
  height: 118px !important;
  min-height: 118px !important;
  margin-top: 34px !important;
  padding: 32px 14px 12px !important;
  border-radius: 22px !important;
  grid-template-rows: auto auto auto 1fr auto !important;
  text-align: center !important;
}

.route-command .route-card-top {
  min-height: 32px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 5px !important;
  justify-items: center !important;
}

.route-command .route-card-top b {
  font-size: 18px !important;
  line-height: 1.08 !important;
  text-align: center !important;
}

.route-command .route-card-top .dl-state {
  position: absolute !important;
  top: -18px !important;
  right: 12px !important;
  min-height: 27px !important;
  height: 27px !important;
  font-size: 12px !important;
}

.route-command .route-card strong {
  font-size: 14px !important;
  line-height: 1.15 !important;
  text-align: center !important;
  -webkit-line-clamp: 2 !important;
}

.route-command .route-card small {
  font-size: 12px !important;
  line-height: 1.24 !important;
  text-align: center !important;
  -webkit-line-clamp: 2 !important;
}

.route-command .dag-line-stage.is-future:not(.is-focus) .route-card {
  opacity: .68 !important;
  filter: saturate(.82) !important;
}

.route-command .dag-line-stage.is-future:not(.is-focus) .route-dot {
  opacity: .72 !important;
}

.route-command .dag-route-legend {
  justify-content: center !important;
  margin-top: -6px !important;
}

@media (max-width: 980px) {
  .route-command .route-control-tower {
    grid-template-columns: 58px minmax(0, 1fr) !important;
  }
  .route-command .route-now-facts,
  .route-command .route-control-tower em {
    grid-column: 1 / -1 !important;
  }
}

/* V81.1 · SKU 身份证头部防遮挡：标题在黑卡内完整换行，下方作战图不再钻进头部 */
.sku-drawer .identity-band {
  overflow: clip !important;
  max-width: 100% !important;
  isolation: isolate !important;
}

.sku-drawer .ib-top {
  gap: clamp(12px, 1.4vw, 20px) !important;
}

.sku-drawer .ib-name h2 {
  margin: 0 !important;
  font-size: clamp(30px, 3vw, 48px) !important;
  line-height: 1.12 !important;
  max-width: 100% !important;
}

.sku-drawer .drawer-body > .identity-band + .dag-preview-card {
  position: relative !important;
  z-index: 1 !important;
  margin-top: 20px !important;
}

/* V86 · 唯一主线：一条路线、一个当前动作、完整节点按需展开 */
.dag-wrap.full {
  height: auto !important;
  min-height: 0 !important;
  display: block !important;
}

.dag-wrap .dag-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 10px !important;
}

.dag-mainline.dag-route-map.route-command {
  gap: 14px !important;
  padding: clamp(18px, 1.2vw, 24px) !important;
  border-radius: 26px !important;
  overflow: visible !important;
}

.dag-mainline.dag-route-map.route-command .dag-route-head {
  min-height: 48px !important;
  margin: 0 !important;
}

.dag-mainline.dag-route-map.route-command .dag-route-head b {
  font-size: clamp(24px, 1.45vw, 31px) !important;
}

.dag-mainline.dag-route-map.route-command .dag-route-score b {
  font-size: clamp(32px, 1.8vw, 40px) !important;
}

.dag-mainline.dag-route-map.route-command .route-control-tower {
  grid-template-columns: 58px minmax(260px, 1fr) minmax(390px, 1.2fr) minmax(240px, .8fr) !important;
  min-height: 86px !important;
  padding: 14px 16px !important;
  border-radius: 22px !important;
}

.dag-mainline.dag-route-map.route-command .route-control-tower > span {
  width: 52px !important;
  height: 52px !important;
  border-radius: 16px !important;
  font-size: 22px !important;
}

.dag-mainline.dag-route-map.route-command .route-now-main strong {
  font-size: clamp(21px, 1.3vw, 28px) !important;
  line-height: 1.12 !important;
}

.dag-mainline.dag-route-map.route-command .route-now-main strong::before {
  content: "现在" !important;
  height: 24px !important;
  padding: 0 9px !important;
  font-size: 12px !important;
  vertical-align: 3px !important;
}

.dag-mainline.dag-route-map.route-command .dag-route-rail {
  display: grid !important;
  grid-template-columns: repeat(var(--route-count), minmax(0, 1fr)) !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  gap: clamp(7px, .55vw, 11px) !important;
  padding: 12px 0 8px !important;
  overflow: visible !important;
  contain: none !important;
  scrollbar-gutter: auto !important;
}

.dag-mainline.dag-route-map.route-command .dag-route-rail::before {
  left: 3.5% !important;
  right: 3.5% !important;
  top: 71px !important;
  height: 3px !important;
  background: linear-gradient(90deg, rgba(52,199,89,.62), rgba(0,113,227,.58) 45%, rgba(120,120,128,.18) 74%) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage,
.dag-fullscreen .dag-mainline.dag-route-map.route-airline .dag-line-stage {
  min-width: 0 !important;
  width: auto !important;
  height: 146px !important;
  min-height: 146px !important;
  transform: none !important;
  overflow: visible !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage::before {
  content: none !important;
}

.dag-mainline.dag-route-map.route-command .route-connector {
  display: none !important;
}

.dag-mainline.dag-route-map.route-command .route-card,
.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card,
.dag-fullscreen .dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card {
  position: relative !important;
  display: grid !important;
  grid-template-rows: auto minmax(34px, auto) auto 1fr auto !important;
  align-content: start !important;
  width: 100% !important;
  height: 132px !important;
  min-height: 132px !important;
  margin: 7px 0 0 !important;
  padding: 15px 12px 12px 50px !important;
  gap: 7px !important;
  border-width: 1px !important;
  border-radius: 19px !important;
  outline: 0 !important;
  text-align: left !important;
  transform: none !important;
  box-shadow: 0 10px 26px rgba(15,23,42,.055), inset 0 1px 0 rgba(255,255,255,.92) !important;
}

.dag-mainline.dag-route-map.route-command .route-dot,
.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-dot {
  left: 12px !important;
  top: 20px !important;
  width: 31px !important;
  height: 31px !important;
  border-radius: 10px !important;
  transform: none !important;
  box-shadow: none !important;
}

.dag-mainline.dag-route-map.route-command .route-dot em {
  font-size: 13px !important;
}

.dag-mainline.dag-route-map.route-command .route-card-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  min-height: 31px !important;
  gap: 4px !important;
  padding: 0 !important;
  justify-items: start !important;
}

.dag-mainline.dag-route-map.route-command .route-card-top b,
.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card-top b {
  width: 100% !important;
  font-size: clamp(15px, .82vw, 18px) !important;
  line-height: 1.12 !important;
  text-align: left !important;
  -webkit-line-clamp: 2 !important;
}

.dag-mainline.dag-route-map.route-command .route-card-top .dl-state,
.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .dl-state {
  position: absolute !important;
  top: 10px !important;
  right: 9px !important;
  min-height: 23px !important;
  height: 23px !important;
  padding: 0 8px !important;
  font-size: 11px !important;
}

.dag-mainline.dag-route-map.route-command .route-card strong,
.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card strong {
  min-width: 0 !important;
  font-size: clamp(13px, .72vw, 15px) !important;
  line-height: 1.18 !important;
  text-align: left !important;
  -webkit-line-clamp: 2 !important;
}

.dag-mainline.dag-route-map.route-command .route-card small,
.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card small {
  min-width: 0 !important;
  padding: 0 !important;
  color: #68686e !important;
  font-size: clamp(11px, .62vw, 13px) !important;
  line-height: 1.2 !important;
  text-align: left !important;
  -webkit-line-clamp: 1 !important;
}

.dag-mainline.dag-route-map.route-command .route-mini {
  width: 100% !important;
  height: 6px !important;
  align-self: end !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus {
  z-index: 4 !important;
  transform: none !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-card {
  border: 2px solid #0a84ff !important;
  background: linear-gradient(145deg, rgba(0,113,227,.15), rgba(255,255,255,.98) 58%, rgba(52,199,89,.08)) !important;
  box-shadow: 0 18px 38px rgba(0,113,227,.18), inset 0 1px 0 rgba(255,255,255,.96) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-focus .route-dot {
  background: linear-gradient(180deg, #0a84ff, #0062cf) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(0,113,227,.22) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-past:not(.is-focus) {
  opacity: 1 !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-past:not(.is-focus) .route-card {
  border-color: rgba(52,199,89,.24) !important;
  background: linear-gradient(180deg, rgba(240,251,245,.94), rgba(255,255,255,.90)) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-future:not(.is-focus) {
  opacity: .62 !important;
  filter: grayscale(.08) saturate(.72) !important;
}

.dag-mainline.dag-route-map.route-command .dag-line-stage.is-parallel:not(.is-focus) {
  opacity: .9 !important;
  filter: none !important;
}

.dag-mainline.dag-route-map.route-command .dag-route-legend {
  justify-content: flex-end !important;
  margin: 4px 0 0 !important;
}

.dag-route-legend i.parallel {
  background: #30b0a0 !important;
}

.dag-focus-work {
  display: grid;
  gap: 14px;
  margin-top: 16px;
  padding: clamp(18px, 1.2vw, 24px);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 26px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 52px rgba(15,23,42,.07), inset 0 1px 0 rgba(255,255,255,.96);
}

.dag-focus-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.dag-focus-kicker > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 14px;
  color: #075fc7;
  background: rgba(0,113,227,.10);
  font: 900 15px/1 var(--mono);
}

.dag-focus-kicker > div {
  min-width: 0;
  flex: 1;
}

.dag-focus-kicker small,
.dag-focus-kicker b {
  display: block;
}

.dag-focus-kicker small {
  margin-bottom: 3px;
  color: #717177;
  font-size: 12px;
  font-weight: 800;
}

.dag-focus-kicker b {
  color: #1d1d1f;
  font-size: clamp(21px, 1.25vw, 27px);
  line-height: 1.08;
}

.dag-focus-primary {
  display: grid;
  grid-template-columns: minmax(260px, 1.25fr) minmax(420px, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 112px;
  padding: 18px 20px;
  border-radius: 23px;
  color: #fff;
  background: linear-gradient(120deg, #171719, #24262b 68%, #153f6d);
  box-shadow: 0 22px 48px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.10);
}

.dag-focus-primary.is-blocked {
  background: linear-gradient(120deg, #241719, #3a2022 68%, #6b2025);
}

.dag-focus-action {
  min-width: 0;
}

.dag-focus-action small,
.dag-focus-action strong,
.dag-focus-action p {
  display: block;
  margin: 0;
}

.dag-focus-action small {
  margin-bottom: 7px;
  color: #78b7ff;
  font-size: 12px;
  font-weight: 900;
}

.dag-focus-action strong {
  font-size: clamp(24px, 1.55vw, 34px);
  line-height: 1.08;
  letter-spacing: 0;
}

.dag-focus-action p {
  margin-top: 9px;
  color: rgba(255,255,255,.66);
  font-size: 14px;
  font-weight: 700;
}

.dag-focus-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.dag-focus-facts span {
  min-width: 0;
  padding: 12px;
  border-radius: 15px;
  background: rgba(255,255,255,.075);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}

.dag-focus-facts small,
.dag-focus-facts b {
  display: block;
  min-width: 0;
}

.dag-focus-facts small {
  margin-bottom: 6px;
  color: rgba(255,255,255,.48);
  font-size: 11px;
  font-weight: 800;
}

.dag-focus-facts b {
  color: #fff;
  font-size: 16px;
  line-height: 1.16;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dag-focus-open {
  align-self: stretch;
  min-width: 150px;
  border: 0 !important;
  color: #075fc7 !important;
  background: #fff !important;
  box-shadow: 0 14px 28px rgba(0,0,0,.16) !important;
}

.dag-focus-list-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-top: 2px;
}

.dag-focus-list-head b {
  font-size: 17px;
}

.dag-focus-list-head small {
  color: #77777d;
  font-size: 12px;
}

.dag-focus-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.dag-focus-list .dag-step {
  min-height: 62px;
  border-radius: 17px;
  background: #f5f5f7;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
}

.dag-all-stages {
  margin-top: 14px;
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 20px;
  background: rgba(255,255,255,.88);
  overflow: clip;
}

.dag-all-stages > summary {
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  cursor: pointer;
  list-style: none;
  color: #1d1d1f;
}

.dag-all-stages > summary::-webkit-details-marker {
  display: none;
}

.dag-all-stages > summary > svg {
  width: 22px;
  height: 22px;
  color: #0071e3;
}

.dag-all-stages > summary span {
  display: grid;
  gap: 2px;
}

.dag-all-stages > summary b {
  font-size: 15px;
}

.dag-all-stages > summary small {
  color: #77777d;
  font-size: 12px;
}

.dag-all-stages[open] > summary {
  border-bottom: 1px solid rgba(0,0,0,.06);
  background: #f7f8fa;
}

.dag-all-stages .dag-flow-scroll {
  padding: 16px !important;
}

@media (max-width: 1320px) {
  .dag-mainline.dag-route-map.route-command .route-control-tower {
    grid-template-columns: 52px minmax(0, 1fr) !important;
  }
  .dag-mainline.dag-route-map.route-command .route-now-facts,
  .dag-mainline.dag-route-map.route-command .route-control-tower em {
    grid-column: 1 / -1 !important;
  }
  .dag-focus-primary {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }
  .dag-focus-facts {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 1100px) {
  .dag-mainline.dag-route-map.route-command .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(168px, 1fr)) !important;
    width: max(100%, calc(var(--route-count) * 168px)) !important;
    max-width: none !important;
    overflow-x: auto !important;
    contain: layout paint !important;
  }
  .dag-focus-primary {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .dag-focus-open {
    min-height: 48px;
  }
  .dag-focus-list {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ========================================================================
   V87 · Work Surface Grammar
   One current action, one primary surface, secondary information on demand.
   ======================================================================== */

html {
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.workspace {
  width: 100% !important;
  max-width: 1920px !important;
  padding: 24px clamp(20px, 2.4vw, 44px) 120px !important;
}

.station {
  --surface-accent: var(--tint, #0071e3);
  --surface-soft: #f5f5f7;
  gap: 0 !important;
}

.station.surface-launch      { --surface-accent: #0a66d8; --surface-soft: #f1f7ff; }
.station.surface-lab         { --surface-accent: #007f73; --surface-soft: #f0faf7; }
.station.surface-writing     { --surface-accent: #7a3db8; --surface-soft: #faf7fc; }
.station.surface-registry    { --surface-accent: #3159a6; --surface-soft: #f3f6fb; }
.station.surface-studio      { --surface-accent: #b23ac7; --surface-soft: #fbf7fc; }
.station.surface-spec        { --surface-accent: #94672f; --surface-soft: #faf7f2; }
.station.surface-procurement { --surface-accent: #a55a00; --surface-soft: #fff8ef; }
.station.surface-inspection  { --surface-accent: #147a44; --surface-soft: #f2faf5; }
.station.surface-field       { --surface-accent: #a94700; --surface-soft: #fff7ef; }
.station.surface-fulfillment { --surface-accent: #17646f; --surface-soft: #f1f8f9; }
.station.surface-support     { --surface-accent: #1570a6; --surface-soft: #f2f8fb; }
.station.surface-media       { --surface-accent: #bd8b00; --surface-soft: #fbf9f1; }
.station.surface-publishing  { --surface-accent: #3463c7; --surface-soft: #f3f6fc; }
.station.surface-retail      { --surface-accent: #a43d63; --surface-soft: #fcf5f8; }
.station.surface-broadcast   { --surface-accent: #df264f; --surface-soft: #fff4f6; }

.station > .station-head,
.surface-head {
  min-height: 104px !important;
  margin: 0 !important;
  padding: 18px 4px 20px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.surface-head .station-title {
  align-items: center;
  gap: 16px;
}

.surface-head .station-title .emblem.lg {
  width: 56px !important;
  height: 56px !important;
  border-radius: 17px !important;
  color: var(--surface-accent, var(--tint)) !important;
  background: var(--surface-soft, #f5f5f7) !important;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .055), 0 8px 24px rgba(0, 0, 0, .055) !important;
}

.surface-head .station-title h1 {
  margin: 4px 0 0 !important;
  color: #1d1d1f !important;
  font-size: 40px !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  text-wrap: pretty;
}

.surface-head .station-title p {
  max-width: 920px !important;
  margin: 5px 0 0 !important;
  color: #77777d !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
}

.station-eyebrow {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 20px;
  color: var(--surface-accent, var(--tint));
  font-size: 12px;
  font-weight: 800;
}

.station-eyebrow .ic {
  width: 15px;
  height: 15px;
}

.station-eyebrow b {
  min-height: 20px;
  display: inline-flex;
  align-items: center;
  margin-left: 3px;
  padding: 0 8px;
  border-radius: 999px;
  color: #5f5f65;
  background: #f1f1f3;
  font-size: 11px;
  font-weight: 800;
}

.station > .role-tabs {
  margin: 14px 0 0 !important;
}

.station-now {
  margin-top: 24px;
  min-width: 0;
}

.station-now > .zone-label {
  min-height: 30px;
  margin: 0 0 10px !important;
  color: #1d1d1f !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

.station-now > .zone-label .zdot {
  width: 9px;
  height: 9px;
  background: var(--surface-accent);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--surface-accent) 12%, transparent);
}

.station-now > .zone-label .count {
  color: var(--surface-accent) !important;
  background: var(--surface-soft) !important;
}

.station[data-surface] > .zone,
.station-tools {
  margin-top: 20px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.station-dock {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, auto)) 1fr;
  align-items: start;
  gap: 9px;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid rgba(0, 0, 0, .08);
}

.station-dock .fold-pill {
  min-height: 38px;
  margin: 0;
  color: #4c4c50;
  background: #f5f5f7;
  border-color: transparent;
}

.station-dock .fold-pill.is-open {
  color: #1d1d1f;
  background: #e9e9ed;
}

.station-dock > .fold-body {
  grid-column: 1 / -1;
  width: 100%;
  margin: 3px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid rgba(0, 0, 0, .06);
}

.station-dock-empty {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 13px;
  border-radius: 999px;
  color: #3d7b50;
  background: #eef8f1;
  font-size: 13px;
  font-weight: 700;
}

.station-dock-empty .ic {
  width: 15px;
  height: 15px;
}

/* Primary tool: product identity is compact; the action is dominant. */
.station-now > .focus-card,
.focus-card[data-surface] {
  overflow: clip !important;
  border: 1px solid rgba(0, 0, 0, .085) !important;
  border-radius: 24px !important;
  background: #ffffff !important;
  box-shadow: 0 20px 58px rgba(20, 24, 34, .085) !important;
}

.focus-head {
  display: grid !important;
  gap: 12px !important;
  padding: 18px 20px 14px !important;
  background: #fafafa !important;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .065) !important;
}

.focus-product {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  min-width: 0;
}

.focus-stage-no {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #ffffff;
  background: var(--surface-accent, var(--tint));
  box-shadow: 0 8px 22px color-mix(in srgb, var(--surface-accent, var(--tint)) 26%, transparent);
  font-size: 15px;
  font-weight: 900;
}

.focus-product-copy {
  min-width: 0;
}

.focus-product-copy small,
.focus-product-copy h2,
.focus-product-copy p {
  display: block;
  margin: 0;
  min-width: 0;
}

.focus-product-copy small {
  margin-bottom: 3px;
  color: #85858b;
  font-size: 11px;
  font-weight: 700;
}

.focus-product-copy h2 {
  overflow: hidden;
  color: #1d1d1f;
  font-size: 22px !important;
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.focus-product-copy p {
  margin-top: 4px;
  overflow: hidden;
  color: #77777d;
  font-size: 12px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.focus-progress-summary {
  display: grid;
  grid-template-columns: minmax(140px, auto) minmax(160px, 1fr) auto auto;
  align-items: center;
  gap: 12px;
}

.focus-progress-summary > div {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}

.focus-progress-summary span {
  overflow: hidden;
  color: #515155;
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.focus-progress-summary > div b,
.focus-progress-summary > strong {
  color: #1d1d1f;
  font-size: 12px;
  font-weight: 800;
}

.focus-progress-summary > i {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7e7ea;
}

.focus-progress-summary > i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--surface-accent, var(--tint));
}

.focus-command {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(320px, 1.35fr) minmax(420px, 1fr) !important;
  align-items: center !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 22px 20px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, .07) !important;
  border-radius: 0 !important;
  color: #1d1d1f !important;
  background: var(--surface-soft, #f5f5f7) !important;
  box-shadow: none !important;
}

.focus-command.is-blocked {
  --surface-soft: #fff1f1;
  --surface-accent: #c82028;
}

.fc-left {
  min-width: 0;
}

.fc-left .fc-ic {
  width: 54px !important;
  height: 54px !important;
  border-radius: 17px !important;
  color: var(--surface-accent, var(--tint)) !important;
  background: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06), 0 8px 22px rgba(0, 0, 0, .06) !important;
}

.fc-left span {
  color: var(--surface-accent, var(--tint)) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

.fc-left strong {
  color: #1d1d1f !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

.fc-left p {
  max-width: 760px;
  margin-top: 7px !important;
  color: #626268 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}

.fc-right {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

.fc-right > span {
  min-width: 0;
  min-height: 66px;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 11px 13px;
  border-radius: 15px;
  background: rgba(255, 255, 255, .82);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .055);
}

.fc-right > span.is-risk {
  background: #fff0f0;
  box-shadow: inset 0 0 0 1px rgba(217, 40, 47, .2);
}

.fc-right small,
.fc-right b {
  display: block;
  min-width: 0;
}

.fc-right small {
  color: #85858b;
  font-size: 11px;
  font-weight: 700;
}

.fc-right b {
  overflow: hidden;
  color: #27272a;
  font-size: 14px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fc-details {
  grid-column: 1 / -1;
  justify-self: start;
}

.fc-details > summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  cursor: pointer;
  color: #717177;
  font-size: 12px;
  font-weight: 700;
  list-style: none;
}

.fc-details > summary::-webkit-details-marker {
  display: none;
}

.fc-details > summary .ic {
  width: 14px;
  height: 14px;
}

.fc-details > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 8px;
}

.focus-body {
  padding: 20px !important;
  background: #ffffff;
}

.focus-foot {
  padding: 14px 20px !important;
  background: #f7f7f9 !important;
}

/* Each profession gets a recognisable work surface, not another generic card. */
.surface-writing .focus-card {
  border-left: 6px solid var(--surface-accent) !important;
}

.surface-writing .focus-body {
  padding: 28px clamp(24px, 4vw, 72px) 34px !important;
  background: #fffefc;
}

.surface-writing .copy-main-card,
.surface-writing .copy-point-card {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.surface-studio .focus-command,
.surface-media .focus-command {
  color: #ffffff !important;
  background: #1d1d1f !important;
}

.surface-studio .fc-left strong,
.surface-media .fc-left strong,
.surface-studio .fc-left p,
.surface-media .fc-left p {
  color: #ffffff !important;
}

.surface-studio .fc-left p,
.surface-media .fc-left p {
  opacity: .68;
}

.surface-studio .fc-right > span,
.surface-media .fc-right > span {
  background: rgba(255, 255, 255, .09);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .09);
}

.surface-studio .fc-right small,
.surface-media .fc-right small {
  color: rgba(255, 255, 255, .5);
}

.surface-studio .fc-right b,
.surface-media .fc-right b,
.surface-studio .fc-details > summary,
.surface-media .fc-details > summary {
  color: #ffffff;
}

.surface-studio .design-clean,
.surface-media .focus-body > * {
  max-width: 100%;
}

.surface-lab .focus-body {
  background: linear-gradient(90deg, #ffffff 0 67%, #f7fbfa 67% 100%);
}

.surface-spec .focus-body {
  background-color: #fdfcf9;
  background-image: linear-gradient(rgba(148, 103, 47, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 103, 47, .045) 1px, transparent 1px);
  background-size: 24px 24px;
}

.surface-procurement .focus-body {
  background: #fffdfa;
}

.surface-inspection .focus-card,
.surface-field .focus-card {
  border-top: 5px solid var(--surface-accent) !important;
}

.surface-fulfillment .focus-command {
  grid-template-columns: minmax(360px, 1fr) minmax(420px, .9fr) !important;
}

.surface-media .upload-zone,
.surface-media .drop-zone {
  min-height: 150px;
}

.surface-publishing .focus-body {
  background: #f8faff;
}

.surface-retail .focus-body {
  background: #fffafd;
}

/* Broadcast control: search on the left, Douyin link order on the right. */
.live-primary {
  margin-top: 24px;
}

.surface-broadcast .live-console {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: clip !important;
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 24px !important;
  background: #ffffff !important;
  box-shadow: 0 20px 58px rgba(20, 24, 34, .085) !important;
}

.surface-broadcast .live-console-head {
  min-height: 88px;
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) minmax(360px, 620px) !important;
  align-items: center !important;
  gap: 22px !important;
  margin: 0 !important;
  padding: 18px 20px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .07);
  background: #ffffff;
}

.surface-broadcast .live-console-head > div {
  display: grid;
  gap: 2px;
}

.surface-broadcast .live-console-head > div > small {
  margin: 0 !important;
  color: #df264f !important;
  font-size: 11px !important;
  font-weight: 800;
}

.surface-broadcast .live-console-head > div > b {
  color: #1d1d1f;
  font-size: 24px !important;
  font-weight: 800;
  line-height: 1.12;
}

.surface-broadcast .live-console-head > div > span {
  color: #57575c;
  font-size: 12px;
  font-weight: 600;
}

.live-search-box {
  min-width: 0;
  min-height: 48px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 0 15px;
  border-radius: 15px;
  background: #f3f3f5;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .045);
}

.live-search-box > .ic {
  width: 19px;
  height: 19px;
  color: #77777d;
}

.live-search-box .live-bigq {
  width: 100% !important;
  min-width: 0;
  min-height: 46px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 15px !important;
}

.live-import-panel {
  margin: 0;
  border-bottom: 1px solid rgba(0, 0, 0, .07);
  background: linear-gradient(180deg, #fbfbfd 0%, #fff 100%);
}

.live-import-panel > summary {
  min-height: 58px;
  display: grid;
  grid-template-columns: 28px auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 0 20px;
  color: #1d1d1f;
  cursor: pointer;
  list-style: none;
}

.live-import-panel > summary::-webkit-details-marker { display: none; }

.live-import-panel > summary > span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #eaf3ff;
  color: #0071e3;
}

.live-import-panel > summary b {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0;
}

.live-import-panel > summary small {
  overflow: hidden;
  color: #77777d;
  font-size: 12px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.live-import-body {
  display: grid;
  gap: 12px;
  padding: 0 20px 18px;
}

.live-import-body textarea {
  width: 100%;
  min-height: 150px;
  max-height: 42vh;
  padding: 14px 16px !important;
  resize: vertical;
  border-radius: 16px !important;
  font-size: 14px !important;
  line-height: 1.6;
  white-space: pre-wrap;
}

.live-import-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.live-import-actions > span {
  color: #77777d;
  font-size: 12px;
  font-weight: 600;
}

.live-console-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(410px, .72fr);
  min-height: 540px;
}

.live-library-pane,
.live-order-pane {
  min-width: 0;
  padding: 18px;
}

.live-library-pane {
  border-right: 1px solid rgba(0, 0, 0, .075);
}

.live-order-pane {
  position: relative;
  background: #f7f7f9;
}

.live-pane-head {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.live-pane-head > div {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.live-pane-head b {
  color: #1d1d1f;
  font-size: 17px;
  font-weight: 800;
}

.live-pane-head small,
.live-pane-head > span {
  color: #57575c;
  font-size: 12px;
  font-weight: 700;
}

.live-pane-head > span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 0 9px;
  border-radius: 999px;
  background: #ebebee;
}

.live-brand-strip {
  display: flex;
  gap: 6px;
  padding: 2px 0 12px;
  overflow-x: auto;
  scrollbar-width: none;
}

.live-brand-strip::-webkit-scrollbar {
  display: none;
}

.live-add-list,
.live-order-list {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: start;
  gap: 8px !important;
}

.surface-broadcast .live-hit-card {
  width: 100%;
  min-width: 0 !important;
  min-height: 72px !important;
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) auto auto !important;
  align-items: center !important;
  gap: 11px !important;
  padding: 9px 11px !important;
  overflow: hidden !important;
  border: 1px solid rgba(0, 0, 0, .07) !important;
  border-radius: 15px !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

.surface-broadcast .live-hit-card:hover {
  transform: none !important;
  border-color: rgba(0, 113, 227, .28) !important;
  background: #f8fbff !important;
  box-shadow: none !important;
}

.surface-broadcast .live-hit-card.is-dim {
  opacity: 1 !important;
}

.surface-broadcast .live-hit-card.is-dim .live-thumb,
.surface-broadcast .live-hit-card.is-dim .fr-main {
  opacity: 1;
}

.surface-broadcast .live-hit-card > .live-thumb,
.surface-broadcast .live-link-card > .live-thumb {
  width: 52px !important;
  height: 52px !important;
  border-radius: 12px !important;
}

.surface-broadcast .live-hit-card .fr-main,
.surface-broadcast .live-link-card .fr-main {
  min-width: 0 !important;
}

.surface-broadcast .live-hit-card .fr-main b,
.surface-broadcast .live-link-card .fr-main b {
  overflow: hidden !important;
  color: #1d1d1f !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.surface-broadcast .live-hit-card .fr-main small,
.surface-broadcast .live-link-card .fr-main small {
  display: block !important;
  margin-top: 4px;
  overflow: hidden !important;
  color: #57575c !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.surface-broadcast .live-hit-tags,
.surface-broadcast .live-hit-actions,
.surface-broadcast .deck-tags {
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.surface-broadcast .live-hit-actions .btn {
  min-height: 34px;
  white-space: nowrap;
}

.surface-broadcast .live-link-card {
  width: 100%;
  min-width: 0 !important;
  min-height: 72px !important;
  display: grid !important;
  grid-template-columns: 48px 52px minmax(0, 1fr) auto 30px !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 9px 10px !important;
  overflow: hidden !important;
  border: 1px solid rgba(0, 0, 0, .07) !important;
  border-radius: 15px !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

.surface-broadcast .live-link-card.is-now {
  border-color: rgba(223, 38, 79, .42) !important;
  background: #fff6f8 !important;
  box-shadow: inset 4px 0 0 #df264f !important;
}

.surface-broadcast .live-link-card .dk-n {
  width: 48px;
  display: grid;
  justify-items: center;
  gap: 1px;
  color: #1d1d1f;
}

.surface-broadcast .live-link-card .dk-n b {
  font-size: 23px;
  font-weight: 900;
  line-height: 1;
}

.surface-broadcast .live-link-card .dk-n small {
  color: #57575c;
  font-size: 11px;
  font-weight: 700;
}

.surface-broadcast .live-link-card .dk-grip {
  display: none !important;
}

.surface-broadcast .live-link-card > .btn {
  width: 30px;
  min-width: 30px;
  min-height: 30px;
  padding: 0;
}

/* V102 · 直播链接排序：拖动只做一次提交，并始终保留可见的上下移动入口。 */
body.live-sorting { cursor: grabbing; user-select: none; }
.live-sort-row { position: relative; isolation: isolate; }
.live-sort-row.is-dragging { opacity: .58 !important; transform: none !important; }
.live-sort-row.is-drop-before::before,
.live-sort-row.is-drop-after::after {
  content: "";
  position: absolute;
  z-index: 5;
  left: 8px;
  right: 8px;
  height: 3px;
  border-radius: 999px;
  background: #0071e3;
  box-shadow: 0 0 0 3px rgba(0,113,227,.12);
  pointer-events: none;
}
.live-sort-row.is-drop-before::before { top: -5px; }
.live-sort-row.is-drop-after::after { bottom: -5px; }
.live-row-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; flex: none; }
.live-sort-tools { display: grid; grid-template-rows: repeat(3, 22px); gap: 2px; flex: none; }
.live-drag-handle,
.live-sort-btn,
.live-remove-btn {
  width: 30px;
  min-width: 30px;
  height: 26px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(29,29,31,.11);
  border-radius: 8px;
  background: #fff;
  color: #3a3a3c;
  cursor: pointer;
}
.live-drag-handle {
  width: 30px;
  min-width: 30px;
  height: 22px;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
.live-drag-handle:active,
body.live-sorting .live-drag-handle { cursor: grabbing; }
.live-remove-btn { height: 30px; color: #8e8e93; }
.live-drag-handle:hover,
.live-sort-btn:hover:not(:disabled),
.live-remove-btn:hover { border-color: rgba(0,113,227,.35); background: #f0f7ff; color: #0071e3; }
.live-drag-handle:focus-visible,
.live-sort-btn:focus-visible,
.live-remove-btn:focus-visible { outline: 3px solid rgba(0,113,227,.24); outline-offset: 1px; }
.live-sort-btn:disabled { opacity: .26; cursor: default; }
.live-drag-handle .ic,
.live-sort-btn .ic,
.live-remove-btn .ic { width: 15px; height: 15px; }
.live-sort-btn.is-up .ic { transform: rotate(180deg); }
.surface-broadcast .live-link-card { grid-template-columns: 48px 52px minmax(0,1fr) auto auto !important; overflow: visible !important; }
.surface-broadcast .live-link-card .live-row-actions { min-width: 66px; }
.lc-link-row { grid-template-columns: 58px minmax(0,1fr) 30px; overflow: visible; }
.lc-link-row .live-row-actions { width: 30px; }
.lc-link-row .live-sort-tools { grid-template-rows: repeat(3, 20px); }
@media (max-width: 900px) {
  .surface-broadcast .live-link-card { grid-template-columns: 42px 48px minmax(0,1fr) auto !important; }
  .surface-broadcast .live-link-card .deck-tags { display: none; }
}

.live-order-empty {
  min-height: 180px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 6px;
  color: #8a8a90;
  text-align: center;
}

.live-order-empty .ic {
  width: 26px;
  height: 26px;
  color: #df264f;
}

.live-order-empty b {
  color: #4f4f54;
  font-size: 15px;
}

.live-order-empty small {
  font-size: 12px;
}

.live-clear {
  margin-top: 12px;
}

@media (max-width: 1280px) {
  .live-console-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .live-library-pane {
    border-right: 0;
    border-bottom: 1px solid rgba(0, 0, 0, .075);
  }
}

@media (max-width: 760px) {
  .surface-broadcast .live-console-head {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .surface-broadcast .live-hit-card {
    grid-template-columns: 46px minmax(0, 1fr) !important;
  }

  .surface-broadcast .live-hit-tags,
  .surface-broadcast .live-hit-actions {
    grid-column: 2;
    justify-content: flex-start;
  }

  .surface-broadcast .live-link-card {
    grid-template-columns: 42px 46px minmax(0, 1fr) 28px !important;
  }

  .surface-broadcast .live-link-card .deck-tags {
    display: none;
  }
}

.station-tools > .fold-pill {
  min-height: 42px;
  background: #f5f5f7;
  border-color: transparent;
}

.station-tools > .fold-body {
  margin-top: 12px;
}

@media (max-width: 1180px) {
  .focus-command,
  .surface-fulfillment .focus-command {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .fc-details {
    grid-column: auto;
  }
}

@media (max-width: 820px) {
  .workspace {
    padding: 16px 14px 96px !important;
  }

  .surface-head .station-title h1 {
    font-size: 32px !important;
  }

  .surface-head .station-title .emblem.lg {
    width: 50px !important;
    height: 50px !important;
  }

  .station-dock {
    grid-template-columns: minmax(0, 1fr);
  }

  .station-dock > .fold-body {
    grid-column: 1;
  }

  .focus-product {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .focus-stage-no {
    width: 40px;
    height: 40px;
  }

  .focus-product .fh-right {
    grid-column: 1 / -1;
  }

  .focus-progress-summary {
    grid-template-columns: minmax(0, 1fr) auto auto;
  }

  .focus-progress-summary > div {
    grid-column: 1 / -1;
  }

  .fc-left strong {
    font-size: 24px !important;
  }

  .fc-right {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* V89.2 · Compact auxiliary viewport: two topbar rows, no empty third band. */
@media (min-width: 821px) and (max-width: 1180px) {
  .fc-right b {
    overflow: visible;
    line-height: 1.28;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .topbar {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "station actions"
      "search batch" !important;
    align-items: center !important;
    row-gap: 8px !important;
  }

  .topbar .station-chip {
    grid-area: station;
    max-width: min(420px, 100%) !important;
  }

  .topbar .top-actions {
    grid-area: actions;
  }

  .topbar .gsearch {
    grid-area: search;
    grid-column: auto !important;
  }

  .topbar .batch-dock {
    grid-area: batch;
    grid-column: auto !important;
    justify-self: end !important;
    justify-content: flex-end !important;
    max-width: 300px !important;
  }
}

/* ========================================================================
   V89 · Action OS
   全链是导航，不再伪装成任务卡；录入区优先整段粘贴与直接编辑。
   ======================================================================== */


.station,
.drawer,
.sheet-doc,
.lc-panel {
  letter-spacing: 0 !important;
}

.station button,
.station input,
.station textarea,
.station select {
  font-family: var(--sans) !important;
  letter-spacing: 0 !important;
}

.station textarea,
.drawer textarea,
.sheet-doc textarea {
  field-sizing: content;
  min-height: 96px;
  max-height: 440px;
  overflow: auto;
}

.route-v89.dag-mainline.dag-route-map.route-command {
  width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
  padding: 0 0 18px !important;
  overflow: hidden !important;
  border: 1px solid rgba(0, 0, 0, .08) !important;
  border-radius: 26px !important;
  background: #ffffff !important;
  box-shadow: 0 20px 58px rgba(20, 24, 34, .08) !important;
}

.route-v89 .dag-route-head {
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  order: initial !important;
  padding: 18px 20px 14px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .065) !important;
  background: #fbfbfc !important;
}

.route-v89 .route-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 11px;
}

.route-v89 .route-title > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.route-v89 .route-title b {
  color: #1d1d1f !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

.route-v89 .route-title small {
  overflow: hidden;
  color: #77777d !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.route-v89 .dag-route-score {
  flex: 0 0 auto;
  min-width: 168px;
  display: grid !important;
  grid-template-columns: auto 86px auto !important;
  align-items: center !important;
  gap: 9px !important;
}

.route-v89 .dag-route-score > b {
  display: inline-flex;
  align-items: baseline;
  color: #075fc7 !important;
  font: 900 28px/1 var(--sans) !important;
  white-space: nowrap;
}

.route-v89 .dag-route-score > b small {
  display: inline !important;
  margin-left: 1px;
  font-size: 13px;
}

.route-v89 .dag-route-score > span {
  width: 86px !important;
  height: 6px !important;
  overflow: hidden;
  border-radius: 99px;
  background: #e5e7eb !important;
}

.route-v89 .dag-route-score > span i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #0877df, #2fbd73) !important;
}

.route-v89 .dag-route-score > em {
  color: #77777d;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  white-space: nowrap;
}

.route-v89 .route-control-tower {
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 58px minmax(250px, 1.1fr) minmax(360px, 1fr) minmax(190px, .7fr) !important;
  align-items: stretch !important;
  gap: 12px !important;
  order: initial !important;
  margin: 16px 20px 4px !important;
  padding: 12px !important;
  overflow: hidden !important;
  border: 1px solid rgba(0, 113, 227, .20) !important;
  border-radius: 20px !important;
  background: linear-gradient(90deg, #edf6ff, #ffffff 54%, #f3fbf7) !important;
  box-shadow: 0 13px 32px rgba(0, 113, 227, .08) !important;
}

.route-v89 .route-now-index {
  width: 58px !important;
  min-width: 58px !important;
  height: 58px !important;
  display: grid !important;
  place-items: center !important;
  align-self: center;
  border-radius: 17px !important;
  color: #ffffff !important;
  background: #0877df !important;
  box-shadow: 0 10px 24px rgba(0, 113, 227, .24) !important;
  font: 900 19px/1 var(--mono) !important;
}

.route-v89 .route-now-main {
  min-width: 0;
  display: grid !important;
  align-content: center;
  gap: 5px;
}

.route-v89 .route-now-main small {
  color: #0870d1 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

.route-v89 .route-now-main strong {
  overflow: hidden;
  color: #171719 !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.route-v89 .route-now-facts {
  min-width: 0;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 7px !important;
  margin: 0 !important;
}

.route-v89 .route-now-facts > div {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 4px;
  margin: 0;
  padding: 9px 11px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .82);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .055);
}

.route-v89 .route-now-facts dt,
.route-v89 .route-now-facts dd {
  min-width: 0;
  margin: 0;
}

.route-v89 .route-now-facts dt {
  color: #85858b;
  font-size: 11px;
  font-weight: 700;
}

.route-v89 .route-now-facts dd {
  overflow: hidden;
  color: #27272a;
  font-size: 14px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.route-v89 .route-now-queue {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 8px 11px;
  border-left: 1px solid rgba(0, 0, 0, .07);
}

.route-v89 .route-now-queue small,
.route-v89 .route-now-queue b {
  min-width: 0;
  display: block;
}

.route-v89 .route-now-queue small {
  color: #4c8a69;
  font-size: 11px;
  font-weight: 800;
}

.route-v89 .route-now-queue b {
  overflow: hidden;
  color: #314a3c;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.route-v89 .route-track-shell {
  position: relative;
  min-width: 0;
  margin: 0 20px;
  padding: 14px 0 0;
  overflow: hidden;
}

.route-v89 .route-track-progress {
  position: absolute;
  z-index: 0;
  top: 41px;
  left: calc(100% / var(--route-count, 7) / 2);
  right: calc(100% / var(--route-count, 7) / 2);
  height: 4px;
  overflow: hidden;
  border-radius: 99px;
  background: #e2e4e8;
}

.route-v89 .route-track-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #31bd69, #0877df);
}

.route-v89 .dag-route-rail {
  --route-card-w: auto;
  position: relative !important;
  z-index: 1;
  width: 100% !important;
  min-width: max(100%, calc(var(--route-count) * 142px)) !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: repeat(var(--route-count), minmax(142px, 1fr)) !important;
  grid-auto-flow: initial !important;
  gap: 0 !important;
  order: initial !important;
  padding: 0 0 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: #c9ccd1 transparent;
  background: transparent !important;
  contain: layout paint;
}

.route-v89 .dag-route-rail::before,
.route-v89 .dag-route-rail::after,
.route-v89 .dag-line-stage::before,
.route-v89 .route-connector,
.route-v89 .route-card,
.route-v89 .route-dot,
.route-v89 .dag-route-legend {
  display: none !important;
}

.route-v89 .dag-line-stage,
.dag-fullscreen .route-v89 .dag-line-stage {
  appearance: none;
  position: relative !important;
  min-width: 0 !important;
  width: auto !important;
  height: 96px !important;
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) !important;
  grid-template-rows: 48px 5px !important;
  align-items: center !important;
  align-content: start !important;
  gap: 8px 9px !important;
  margin: 0 !important;
  padding: 8px 8px 6px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 16px !important;
  color: #1d1d1f !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: left;
  cursor: pointer;
  scroll-snap-align: center;
  opacity: 1 !important;
  transform: none !important;
}

.route-v89 .dag-line-stage:hover {
  background: #f5f7fa !important;
}

.route-v89 .dag-line-stage.is-focus {
  background: #edf6ff !important;
  box-shadow: inset 0 0 0 1px rgba(0, 113, 227, .18) !important;
}

.route-v89 .route-stop-node {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 3px solid #ffffff;
  border-radius: 50%;
  color: #77777d;
  background: #eceef1;
  box-shadow: 0 0 0 1px #d6d9de, 0 5px 14px rgba(0, 0, 0, .07);
  font: 900 13px/1 var(--mono);
}

.route-v89 .route-stop-node .ic {
  width: 18px;
  height: 18px;
}

.route-v89 .dag-line-stage.is-past .route-stop-node,
.route-v89 .dag-line-stage.done .route-stop-node {
  color: #ffffff;
  background: #29b65f;
  box-shadow: 0 0 0 1px #29b65f, 0 5px 14px rgba(41, 182, 95, .18);
}

.route-v89 .dag-line-stage.is-focus .route-stop-node {
  color: #ffffff;
  background: #0877df;
  box-shadow: 0 0 0 5px rgba(0, 113, 227, .13), 0 8px 18px rgba(0, 113, 227, .24);
}

.route-v89 .dag-line-stage.blocked .route-stop-node {
  color: #ffffff;
  background: #d92d35;
  box-shadow: 0 0 0 5px rgba(217, 45, 53, .12), 0 8px 18px rgba(217, 45, 53, .20);
}

.route-v89 .dag-line-stage.is-ready-ahead .route-stop-node,
.route-v89 .dag-line-stage.is-parallel .route-stop-node {
  color: #087569;
  background: #e3f7f2;
  box-shadow: 0 0 0 1px #bde7dc, 0 5px 14px rgba(0, 127, 115, .10);
}

.route-v89 .route-stop-copy {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 3px;
}

.route-v89 .route-stop-copy b,
.route-v89 .route-stop-copy small {
  min-width: 0;
  display: block;
}

.route-v89 .route-stop-copy b {
  overflow: hidden;
  color: #252528 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.route-v89 .route-stop-copy small {
  overflow: hidden;
  color: #85858b !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.route-v89 .dag-line-stage.is-focus .route-stop-copy b {
  color: #075fc7 !important;
}

.route-v89 .route-stop-meter {
  grid-column: 1 / -1;
  width: 100%;
  height: 4px;
  overflow: hidden;
  border-radius: 99px;
  background: #e8e9ec;
}

.route-v89 .route-stop-meter i {
  position: static !important;
  inset: auto !important;
  display: block;
  width: auto;
  max-width: none !important;
  height: 100%;
  border-radius: inherit;
  background: #32bd69;
}

/* 备案与成分：一张纵向编辑页，整段粘贴优先，不再挤成两张并排卡。 */
.reg-stage {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px !important;
}

.reg-stage .reg-primary {
  width: 100%;
  min-width: 0;
}

.reg-stage .reg-fields {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.reg-stage .reg-field,
.reg-stage .reg-bulk,
.reg-stage .reg-bulk label,
.reg-stage .reg-table {
  min-width: 0 !important;
}

.reg-stage .reg-field input,
.reg-stage .reg-field textarea,
.reg-stage .reg-bulk textarea,
.reg-stage .reg-row input {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.reg-stage .reg-bulk {
  padding: 16px !important;
  border-radius: 18px !important;
}

.reg-stage .reg-bulk textarea {
  field-sizing: content;
  min-height: 210px !important;
  max-height: 480px !important;
  resize: vertical;
  font-size: 16px !important;
  line-height: 1.72 !important;
}

.reg-stage .reg-table {
  overflow: visible !important;
}

.reg-stage .reg-head,
.reg-stage .reg-row {
  grid-template-columns: minmax(160px, 1fr) minmax(110px, .55fr) minmax(220px, 1.25fr) 44px !important;
}

.reg-stage .reg-row .btn {
  /* V137 · P1-14：删除成分按钮 40→44，含所在网格列。 */
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
}

.reg-stage .reg-bulk-actions small {
  flex: 1 1 220px;
  line-height: 1.45;
}

/* 字符层级：所有主动作可读，元信息退后但不小于 12px。 */
.station-now .focus-body,
.station-now .focus-command,
.station-dock,
.station-tools {
  font-size: var(--type-body);
  line-height: var(--line-body);
}

.station-now .btn,
.station-dock .btn,
.station-tools .btn {
  font-size: 14px !important;
  font-weight: 700 !important;
}

.station-now small,
.station-dock small,
.station-tools small {
  font-size: 12px;
  line-height: 1.42;
}

@media (max-width: 1320px) {
  .route-v89 .route-control-tower {
    grid-template-columns: 58px minmax(220px, 1fr) minmax(330px, 1.1fr) !important;
  }

  .route-v89 .route-now-queue {
    grid-column: 2 / -1;
    border-top: 1px solid rgba(0, 0, 0, .06);
    border-left: 0;
  }
}

@media (max-width: 900px) {
  .route-v89 .dag-route-head {
    align-items: flex-start !important;
  }

  .route-v89 .route-title small,
  .route-v89 .dag-route-score > em {
    display: none;
  }

  .route-v89 .dag-route-score {
    min-width: 96px;
    grid-template-columns: auto 54px !important;
  }

  .route-v89 .route-control-tower {
    grid-template-columns: 52px minmax(0, 1fr) !important;
  }

  .route-v89 .route-now-index {
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
  }

  .route-v89 .route-now-facts,
  .route-v89 .route-now-queue {
    grid-column: 1 / -1;
  }

  .route-v89 .route-now-main strong {
    white-space: normal;
  }

  .route-v89 .route-track-shell {
    margin-inline: 12px;
  }

  .route-v89 .dag-route-rail {
    grid-template-columns: repeat(var(--route-count), minmax(156px, 1fr)) !important;
    min-width: calc(var(--route-count) * 156px) !important;
  }

  .reg-stage .reg-fields,
  .reg-stage .reg-head,
  .reg-stage .reg-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .reg-stage .reg-head {
    display: none !important;
  }

  .reg-stage .reg-row .btn {
    justify-self: end;
  }
}

/* Route isolation: the pre-V89 DAG layer must never leak into the navigator. */
.dag-mainline.dag-route-map.route-command.route-v89 .dag-route-rail::before,
.dag-mainline.dag-route-map.route-command.route-v89 .dag-route-rail::after,
.dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage::before,
.dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage::after,
.dag-mainline.dag-route-map.route-command.route-v89 .route-connector,
.dag-mainline.dag-route-map.route-command.route-v89 .route-card,
.dag-mainline.dag-route-map.route-command.route-v89 .route-dot,
.dag-mainline.dag-route-map.route-command.route-v89 .dag-route-legend,
.dag-fullscreen .dag-mainline.dag-route-map.route-command.route-v89 .route-connector,
.dag-fullscreen .dag-mainline.dag-route-map.route-command.route-v89 .route-card,
.dag-fullscreen .dag-mainline.dag-route-map.route-command.route-v89 .route-dot {
  display: none !important;
  content: none !important;
}

.dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage,
.dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage.is-focus,
.dag-fullscreen .dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage,
.dag-fullscreen .dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage.is-focus {
  min-width: 0 !important;
  width: auto !important;
  height: 96px !important;
  min-height: 96px !important;
  max-height: 96px !important;
  grid-template-columns: 48px minmax(0, 1fr) !important;
  grid-template-rows: 48px 5px !important;
  align-items: center !important;
  align-content: start !important;
  gap: 8px 9px !important;
  margin: 0 !important;
  padding: 8px 8px 6px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 16px !important;
  transform: none !important;
}

.dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage.is-focus,
.dag-fullscreen .dag-mainline.dag-route-map.route-command.route-v89 .dag-line-stage.is-focus {
  background: #edf6ff !important;
  box-shadow: inset 0 0 0 1px rgba(0, 113, 227, .18) !important;
}

/* V90 rule contract: one compact source-of-truth band, not another dashboard card. */
.rule-profile {
  margin: 0;
  padding: 18px 24px;
  background: rgba(248, 250, 253, .92);
  border-block: 1px solid var(--line, #dfe3e8);
}
.rule-profile-head,
.rule-profile-head > div:first-child,
.rule-profile-tags,
.rule-profile-metrics {
  display: flex;
  align-items: center;
}
.rule-profile-head {
  justify-content: space-between;
  gap: 24px;
}
.rule-profile-head > div:first-child {
  gap: 12px;
  min-width: 0;
}
.rule-profile-head span {
  display: grid;
  gap: 2px;
}
.rule-profile-head small {
  color: var(--text-secondary, #6e7781);
  font-size: 12px;
  font-weight: 600;
}
.rule-profile-head b {
  color: var(--text, #1d1d1f);
  font-size: 17px;
  line-height: 1.3;
}
.rule-profile-metrics {
  gap: 22px;
  flex: none;
}
.rule-profile-metrics span {
  min-width: 72px;
  text-align: right;
}
.rule-profile-metrics b {
  color: var(--text, #1d1d1f);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}
.rule-profile-tags {
  flex-wrap: wrap;
  gap: 7px;
  margin: 14px 0 10px;
}
.rule-profile-standards {
  display: grid;
  gap: 7px;
  margin: 0 0 12px;
}
.rule-profile-standards > small {
  color: var(--text-secondary, #6e7781);
  font-size: 12px;
  font-weight: 600;
}
.rule-profile-standards > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.rule-field-list {
  border-top: 1px solid var(--line, #dfe3e8);
}
.rule-field-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(100px, .55fr) minmax(240px, 1fr) 54px;
  align-items: center;
  gap: 18px;
  min-height: 58px;
  padding: 8px 4px;
  border-bottom: 1px solid var(--line, #dfe3e8);
}
.rule-field-row > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.rule-field-row b,
.rule-field-row span,
.rule-field-row small {
  overflow-wrap: anywhere;
}
.rule-field-row b { font-size: 14px; }
.rule-field-row span,
.rule-field-row small { color: var(--text-secondary, #6e7781); font-size: 12px; }
.rule-field-row i {
  justify-self: end;
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
}
.rule-field-row i.ok { color: var(--green, #248a3d); }
.rule-field-row i.wait { color: var(--amber, #b15d00); }
.fh-hint.is-warn { color: var(--amber, #b15d00); font-weight: 700; }
@media (max-width: 900px) {
  .rule-profile { padding: 16px; }
  .rule-profile-head { align-items: flex-start; flex-direction: column; }
  .rule-profile-metrics { width: 100%; justify-content: space-between; }
  .rule-profile-metrics span { text-align: left; }
  .rule-field-row { grid-template-columns: minmax(0, 1fr) 54px; gap: 8px; }
  .rule-field-row > span { grid-column: 1 / -1; }
}

/* V95 · 包材模式安全、保存告警与移动端身份入口 */
.package-binding-main.is-readonly {
  cursor: default;
  user-select: text;
}

.system-alert.bad {
  position: sticky;
  top: 66px;
  z-index: 230;
  border: 1px solid rgba(255, 59, 48, .28);
  box-shadow: 0 12px 32px rgba(123, 28, 20, .12);
}

@media (max-width: 680px) {
  .login-screen {
    align-items: flex-start;
    padding: 22px 12px 30px;
  }
  .login-panel {
    width: 100%;
  }
  .login-title {
    margin-bottom: 20px;
  }
  .login-title h1 {
    margin-top: 12px;
    font-size: 27px;
  }
  .login-title p {
    max-width: 330px;
    margin-inline: auto;
    font-size: 13px;
  }
  .brand-mark {
    width: 58px;
    height: 58px;
    border-radius: 15px;
  }
  .brand-mark .ic {
    width: 28px;
    height: 28px;
  }
  .identity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
  }
  .identity-card {
    min-height: 174px;
    padding: 13px;
    border-radius: 20px;
    gap: 7px;
  }
  .identity-card:hover {
    transform: none;
  }
  .identity-card h3 {
    font-size: 17px;
  }
  .identity-card p,
  .identity-card .id-eff {
    font-size: 12px;
    line-height: 1.35;
  }
  .identity-card .load-line {
    display: none;
  }
  .id-photo {
    width: 48px;
    height: 56px;
    border-radius: 15px;
  }
  .id-photo b {
    font-size: 21px;
  }
  .id-emblem {
    width: 26px;
    height: 26px;
  }
  .identity-card .role-chips {
    gap: 4px;
  }
  .identity-card .role-chips .chip {
    min-height: 22px;
    padding: 3px 7px;
    font-size: 11px;
  }
  .identity-card .role-chips .chip:nth-child(n + 2) {
    display: none;
  }
  .login-note {
    margin-top: 18px;
    font-size: 11px;
  }
}

.decision-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

.decision-grid > .hint-line {
  grid-column: 1 / -1;
}

.decision-card {
  display: grid;
  grid-template-rows: auto minmax(92px, 1fr) auto auto;
  min-height: 252px;
  height: 100%;
  padding: 16px 17px 15px;
  animation: none !important;
}

/* V119 · 总监拍板队列按内容收高，禁止单卡吞掉整屏 */
.director-decision-zone {
  align-self: start;
}

.director-decision-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

.director-decision-grid .decision-card {
  height: auto !important;
  min-height: 268px;
}

.director-queue-note {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 4px 2px;
  color: var(--ink-3);
}

.director-queue-note > svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: var(--system-action);
}

.director-queue-note span {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.director-queue-note b {
  color: var(--ink-2);
  white-space: nowrap;
}

.director-queue-note small {
  overflow-wrap: anywhere;
}

.decision-card .dc-body {
  align-self: start;
  grid-row: 2;
}

.decision-card .dc-vs {
  grid-row: 3;
  min-height: 34px;
}

.decision-card .dc-text h3 {
  display: -webkit-box;
  min-height: 40px;
  overflow: hidden;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.decision-card .dc-text p {
  display: -webkit-box;
  overflow: hidden;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.decision-card .card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-self: end;
  gap: 7px;
  margin-top: auto;
  grid-row: 4;
}

.decision-card .card-actions .btn {
  min-width: 0;
  white-space: nowrap;
}

.system-alert.bad {
  position: relative;
  top: auto;
  z-index: 3;
  margin: 0 0 14px;
}

.system-alert.bad > .btn:last-child {
  width: 34px;
  min-width: 34px;
  padding-inline: 8px;
}

.purchase-card,
.decision-card,
.alert-row,
.focus-card {
  animation: none !important;
}

.purchase-card:hover,
.decision-card:hover {
  transform: none !important;
}

.purchase-completed {
  margin-top: 14px;
  border: 1px solid var(--hair);
  border-radius: 14px;
  background: rgba(246, 247, 249, .72);
}

.purchase-completed > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 10px 14px;
  cursor: pointer;
  list-style: none;
}

.purchase-completed > summary::-webkit-details-marker {
  display: none;
}

.purchase-completed > summary > span {
  display: grid;
  flex: 1;
  gap: 2px;
}

.purchase-completed > summary b {
  font-size: 14px;
}

.purchase-completed > summary small {
  color: var(--ink-3);
  font-size: 12px;
}

.purchase-completed > div {
  display: grid;
  gap: 6px;
  padding: 0 10px 10px;
}

.purchase-complete-row {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--hair);
}

.purchase-complete-row .pcr-state {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--green);
}

.purchase-complete-row > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.purchase-complete-row b,
.purchase-complete-row small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.purchase-complete-row small {
  color: var(--ink-3);
  font-size: 12px;
}

.ck-row.is-action {
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(0, 113, 227, .18);
}

.ck-row.is-action:not(.is-on):hover {
  background: rgba(0, 113, 227, .06);
  box-shadow: inset 0 0 0 1px rgba(0, 113, 227, .42);
}

.qc-report-ready {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(52, 199, 89, .08);
  box-shadow: inset 0 0 0 1px rgba(52, 199, 89, .20);
}

.qc-report-ready > div {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.qc-report-ready span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.qc-report-ready b,
.qc-report-ready small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qc-report-ready small {
  color: var(--ink-3);
  font-size: 11px;
}

@media (max-width: 1500px) {
  .decision-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .director-decision-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .decision-grid {
    grid-template-columns: 1fr;
  }
  .director-decision-grid {
    grid-template-columns: 1fr;
  }
  .director-queue-note span {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }
  .purchase-complete-row {
    grid-template-columns: 32px minmax(0, 1fr);
  }
  .purchase-complete-row > .btn {
    grid-column: auto;
  }
}

/* V99 · 客服检索与售后接单：读共享，写入才锁单 */
.cs-finder {
  display: grid;
  gap: 18px;
}

.cs-find-console {
  display: grid;
  gap: 16px;
  padding: 22px;
  border-bottom: 1px solid var(--hair-2);
  background: #fff;
}

.cs-find-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.cs-find-head > div {
  display: grid;
  gap: 3px;
}

.cs-find-head small,
.cs-find-head > span {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 500;
}

.cs-find-head h3 {
  margin: 0;
  color: var(--ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
}

.cs-find-head > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.cs-find-head > span .ic {
  width: 16px;
  height: 16px;
}

.cs-search-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.cs-search-line > label {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  min-height: 54px;
  padding: 0 14px;
  border: 1px solid rgba(0, 113, 227, .22);
  border-radius: 12px;
  background: #f8fbff;
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .055);
}

.cs-search-line > label > .ic {
  width: 18px;
  height: 18px;
  color: var(--system-action);
}

.cs-search-line .gs-in {
  min-width: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  font-size: 16px;
}

.cs-search-line > .btn {
  min-width: 112px;
}

.cs-filter-grid {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(180px, 260px) auto;
  align-items: end;
  gap: 12px;
}

.cs-filter-grid > label {
  display: grid;
  gap: 6px;
}

.cs-filter-grid > label > span {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 600;
}

.cs-case-queue {
  border-block: 1px solid var(--hair);
  background: rgba(247, 249, 252, .76);
}

.cs-case-queue > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 10px 22px;
  cursor: pointer;
  list-style: none;
}

.cs-case-queue > summary::-webkit-details-marker { display: none; }

.cs-case-queue > summary > span {
  display: grid;
  grid-template-columns: 22px auto;
  column-gap: 8px;
  flex: 1;
  align-items: center;
}

.cs-case-queue > summary > span > .ic {
  grid-row: 1 / span 2;
  width: 18px;
  height: 18px;
  color: var(--system-action);
}

.cs-case-queue > summary b { font-size: 14px; }
.cs-case-queue > summary small { color: var(--ink-3); font-size: 11px; }

.cs-case-queue > div {
  display: grid;
  gap: 6px;
  padding: 0 18px 14px;
}

.cs-case-queue-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--hair);
}

.cs-case-queue-row.mine {
  box-shadow: inset 3px 0 0 var(--system-action), inset 0 0 0 1px rgba(var(--system-action-rgb), .16);
}

.cs-case-queue-row.waiting {
  box-shadow: inset 3px 0 0 var(--amber), inset 0 0 0 1px rgba(255, 159, 10, .16);
}

.cs-case-queue-row.locked {
  background: rgba(247, 249, 252, .92);
}

.cs-case-queue-row.locked .cs-case-open b { color: var(--ink-2); }

.cs-case-open {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.cs-case-open b,
.cs-case-open small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cs-case-open b { font-size: 14px; }
.cs-case-open small { color: var(--ink-3); font-size: 12px; }

.cs-result-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding: 2px 22px 0;
}

.cs-result-head > div {
  display: grid;
  gap: 3px;
}

.cs-result-head b { font-size: 17px; }
.cs-result-head small,
.cs-result-head > span { color: var(--ink-3); font-size: 12px; }

.cs-result-list {
  display: grid;
  gap: 1px;
  padding: 0 14px 20px;
}

.cs-product-result {
  display: grid;
  grid-template-columns: 56px minmax(240px, 1.3fr) minmax(180px, .7fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 76px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid var(--hair);
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: background .16s var(--ease);
}

.cs-product-result:hover,
.cs-product-result:focus-visible {
  background: #f5f9ff;
}

.cs-product-result .live-thumb,
.cs-product-result img {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  object-fit: contain;
}

.cs-product-copy,
.cs-product-facts {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.cs-product-copy b,
.cs-product-copy small,
.cs-product-copy em,
.cs-product-facts b,
.cs-product-facts small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cs-product-copy b { font-size: 15px; }
.cs-product-copy small,
.cs-product-copy em,
.cs-product-facts small { color: var(--ink-3); font-size: 12px; font-style: normal; }
.cs-product-facts b { font-size: 14px; }

.cs-product-open {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--system-action);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

.cs-product-open .ic { width: 14px; height: 14px; }

.cs-empty-result {
  display: grid;
  justify-items: center;
  gap: 7px;
  padding: 54px 20px;
  color: var(--ink-3);
  text-align: center;
}

.cs-empty-result > .ic { width: 28px; height: 28px; }
.cs-empty-result b { color: var(--ink); font-size: 16px; }
.cs-empty-result small { font-size: 12px; }

.support-case-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 9px;
  min-height: 62px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--hair);
}

.support-case-row .fr-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.support-case-row .fr-main b,
.support-case-row .fr-main small,
.support-case-row .fr-main em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.support-case-row .fr-main small { color: var(--ink); font-size: 12px; }
.support-case-row .fr-main em { color: var(--ink-3); font-size: 11px; font-style: normal; }

.support-ref-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.support-ref-grid label {
  display: grid;
  gap: 5px;
}

.support-ref-grid label > span,
.support-form-note {
  color: var(--ink-3);
  font-size: 11px;
  font-weight: 500;
}

@media (max-width: 900px) {
  .cs-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cs-filter-grid > .btn { grid-column: 1 / -1; width: max-content; }
  .cs-product-result { grid-template-columns: 52px minmax(0, 1fr) auto; }
  .cs-product-facts { grid-column: 2; }
  .cs-product-open { grid-column: 3; grid-row: 1 / span 2; }
}

@media (max-width: 680px) {
  .cs-find-console { padding: 18px 14px; }
  .cs-find-head { align-items: start; flex-direction: column; }
  .cs-search-line { grid-template-columns: 1fr; }
  .cs-search-line > .btn { width: 100%; }
  .cs-filter-grid,
  .support-ref-grid { grid-template-columns: 1fr; }
  .cs-product-result { grid-template-columns: 48px minmax(0, 1fr); }
  .cs-product-facts { grid-column: 2; }
  .cs-product-open { grid-column: 1 / -1; grid-row: auto; justify-self: end; }
  .support-case-row { grid-template-columns: minmax(0, 1fr) auto; }
  .support-case-state { grid-column: 1 / -1; }
  .support-case-row > .fr-main { grid-column: 1 / -1; }
}

/* V98 final visual QA overrides */
.cs-sheet-panel .lc-price {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  gap: 14px;
  min-height: 68px !important;
  padding: 10px 2px 4px;
}

.cs-sheet-panel .lc-price small {
  margin-top: 0;
  font-size: 13px;
}

.cs-source-grid {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
}

.cs-source-copy b { font-size: 16px; }
.cs-source-copy small,
.cs-source-copy em { font-size: 12px; }
.cs-source-state { font-size: 13px; }

@media (max-width: 900px) {
  .cs-sheet-panel .lc-price {
    display: grid;
    gap: 4px;
  }
  
}

/* V100 可访问性总闸：所有可操作控件都有一致、清晰且不改变布局的键盘焦点。 */
html body :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--blue) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(var(--blue-rgb), .18), var(--shadow-1, 0 1px 2px rgba(0, 0, 0, .08));
}

/* V101 · 系统级保存故障与并发审计。与业务红灯分层，不再依赖瞬时 Toast。 */
.system-alert.system-failure {
  position: sticky;
  top: 66px;
  z-index: 230;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid rgba(215, 0, 21, .28);
  border-left: 4px solid var(--crimson);
  border-radius: 8px;
  background: #fff7f8;
  box-shadow: 0 12px 30px rgba(90, 0, 9, .1);
}

.system-alert.system-failure > .ic {
  width: 22px;
  height: 22px;
  padding: 7px;
  border-radius: 8px;
  color: #fff;
  background: var(--crimson);
  box-sizing: content-box;
}

.system-alert-copy { display: grid; gap: 3px; min-width: 0; }
.system-alert-copy > b { color: #6f0010; font-size: 14px; font-weight: 700; }
.system-alert-copy > small { color: #4f1c23; font-size: 12px; line-height: 1.55; }
.system-alert-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.system-alert-details { margin-top: 6px; }
.system-alert-details summary { width: max-content; color: #8d0014; font-size: 12px; font-weight: 600; cursor: pointer; }
.system-alert-details ul { display: grid; gap: 4px; margin: 7px 0 0; padding: 8px 10px 8px 28px; border-radius: 7px; color: #4f1c23; background: rgba(215, 0, 21, .05); }
.system-alert-details li { font-size: 12px; line-height: 1.45; }

.audit-entry { position: relative; }
.audit-entry.has-conflict { color: #8a4b00; background: rgba(255, 149, 0, .1); }
.audit-count { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; color: #fff; background: #a85700; font-size: 11px; line-height: 18px; }

.conflict-audit-panel { width: min(1040px, calc(100vw - 40px)); }
.conflict-audit-panel .drawer-head p { margin-top: 3px; color: var(--ink-3); font-size: 12px; }
.conflict-audit-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 2px 12px; border-bottom: 1px solid var(--hair); }
.conflict-audit-list { display: grid; }
.conflict-audit-row { display: grid; gap: 10px; padding: 16px 2px; border-bottom: 1px solid var(--hair); }
.conflict-audit-row > header { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.conflict-audit-row > header > div { display: grid; gap: 2px; min-width: 0; }
.conflict-audit-row > header b { font-size: 14px; }
.conflict-audit-row > header small { color: var(--ink-3); font-size: 11px; }
.conflict-seq { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 7px; color: #8a4b00; background: rgba(255, 149, 0, .12); font-weight: 700; }
.conflict-items { display: grid; gap: 7px; padding-left: 44px; }
.conflict-items > section { display: grid; gap: 6px; padding: 10px 12px; border-left: 2px solid rgba(255, 149, 0, .45); background: var(--soft); }
.conflict-items code { overflow-wrap: anywhere; color: var(--ink); font-size: 12px; }
.conflict-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.conflict-values > span { display: grid; gap: 2px; min-width: 0; }
.conflict-values small { color: var(--ink-3); font-size: 11px; }
.conflict-values b { overflow-wrap: anywhere; font-size: 12px; font-weight: 500; line-height: 1.45; }
.conflict-values > span:first-child b { color: #147a39; }
.conflict-values > span:last-child b { color: #9a4d00; }

@media (max-width: 760px) {
  .system-alert.system-failure { position: relative; top: auto; grid-template-columns: 32px minmax(0, 1fr); padding: 13px; }
  .system-alert.system-failure > .ic { width: 18px; height: 18px; padding: 6px; }
  .system-alert-actions { grid-column: 1 / -1; justify-content: stretch; }
  .system-alert-actions .btn { flex: 1; }
  .conflict-audit-panel { width: 100%; }
  .conflict-audit-row > header { grid-template-columns: 30px minmax(0, 1fr); }
  .conflict-audit-row > header > .chip { grid-column: 2; justify-self: start; }
  .conflict-items { padding-left: 0; }
  .conflict-values { grid-template-columns: 1fr; }
}

/* V104 · 双业务线、后置 SKU、服饰文案与工艺包装。 */
.station-line-filter {
  display: grid;
  grid-template-columns: minmax(260px, .7fr) minmax(420px, 1.3fr);
  align-items: center;
  gap: 18px;
  margin: 0 24px 14px;
  padding: 12px 14px;
  border-block: 1px solid var(--hair);
  background: rgba(248, 249, 251, .88);
}

.station-line-filter > div {
  display: flex;
  align-items: center;
  min-width: 0;
}

.station-line-filter > div:first-child { gap: 10px; }
.station-line-filter > div:first-child > span { display: grid; gap: 2px; min-width: 0; }
.station-line-filter > div:first-child b { font-size: 14px; }
.station-line-filter > div:first-child small { color: var(--ink-3); font-size: 11px; }
.station-line-filter > div:last-child { justify-content: flex-end; gap: 6px; }

.station-line-filter button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid var(--hair);
  border-radius: 8px;
  color: var(--ink-2);
  background: #fff;
  font: 600 13px/1.2 var(--sans);
  cursor: pointer;
}

.station-line-filter button em {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 10px;
  color: var(--ink-3);
  background: var(--fill);
  font: 700 11px/20px var(--mono);
  text-align: center;
}

.station-line-filter button.is-on {
  border-color: rgba(var(--system-action-rgb), .32);
  color: var(--system-action);
  background: #edf6ff;
  box-shadow: inset 0 0 0 1px rgba(var(--system-action-rgb), .08);
}

.station-line-filter button.is-on em { color: #fff; background: var(--system-action); }

.design-clean,
.sku-plan-focus,
.fashion-copy-stage {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.design-step-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: var(--hair);
}

.design-step-strip > span {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 9px;
  min-height: 62px;
  padding: 9px 12px;
  color: var(--ink-3);
  background: #f7f7f9;
}

.design-step-strip i {
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #e8e9ed;
  font: 700 12px/1 var(--mono);
  font-style: normal;
}

.design-step-strip b { color: inherit; font-size: 13px; }
.design-step-strip small { color: inherit; font-size: 11px; }
.design-step-strip > span.is-on { color: #126b39; background: #f2fbf5; }
.design-step-strip > span.is-on i { color: #fff; background: #28a65b; }

.design-brief-line.primary,
.design-upload-primary {
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(var(--system-action-rgb), .19);
  border-radius: 8px;
  background: #f7fbff;
}

.design-brief-line.primary {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: start;
  gap: 14px;
}

.design-brief-line.primary > span {
  padding-top: 12px;
  color: var(--ink-2);
  font-size: 13px;
  font-weight: 700;
}

.design-brief-line.primary textarea {
  width: 100%;
  min-width: 0;
  min-height: 76px;
  padding: 12px 14px;
  border: 1px solid var(--hair);
  border-radius: 7px;
  color: var(--ink);
  background: #fff;
  font: 500 15px/1.55 var(--sans);
  resize: vertical;
}

.design-upload-primary { background: #fff; }
.design-upload-primary .list-head { align-items: center; }
.design-upload-primary .list-head > div { display: grid; gap: 3px; }
.design-upload-primary .list-head small { color: var(--ink-3); }

.design-work-details {
  min-width: 0;
  border-block: 1px solid var(--hair);
  background: #fff;
}

.design-work-details > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 8px 4px;
  cursor: pointer;
  list-style: none;
}

.design-work-details > summary::-webkit-details-marker { display: none; }
.design-work-details > summary > .ic { width: 18px; height: 18px; color: var(--system-action); }
.design-work-details > summary > span { display: grid; gap: 2px; }
.design-work-details > summary b { font-size: 14px; }
.design-work-details > summary small { color: var(--ink-3); font-size: 11px; }
.design-work-details[open] > summary { border-bottom: 1px solid var(--hair); }
.design-work-details > :not(summary) { margin: 12px 0; }

.sku-plan-intro,
.fashion-copy-command,
.fashion-pack-head,
.shoot-line-note > div {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
}

.sku-plan-intro,
.fashion-copy-command,
.fashion-pack-head {
  justify-content: space-between;
  padding: 14px 16px;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: #f8f9fb;
}

.sku-plan-intro > div,
.fashion-copy-command > div,
.fashion-pack-head > div > div,
.shoot-line-note span {
  display: grid;
  flex: 1;
  gap: 3px;
  min-width: 0;
}

.sku-plan-intro b,
.fashion-copy-command b,
.fashion-pack-head b { font-size: 15px; }
.sku-plan-intro small,
.fashion-copy-command small,
.fashion-pack-head small,
.shoot-line-note small { color: var(--ink-3); line-height: 1.45; }

.sku-plan-table,
.fashion-copy-table {
  overflow: auto;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: #fff;
}

.sku-plan-table .sku-table { min-width: 1100px; }
.fashion-copy-table .sku-table { min-width: 940px; }
.fashion-copy-table td:nth-child(2) { min-width: 190px; }
.fashion-copy-table td:nth-child(2) code,
.fashion-copy-table td:nth-child(2) small { display: block; }
.fashion-copy-table td:nth-child(2) small { margin-top: 3px; color: var(--ink-3); }

.fashion-copy-fields {
  display: grid;
  grid-template-columns: 1.25fr 1fr .8fr;
  gap: 10px;
}

.fashion-copy-fields .copy-field.full { grid-column: 1 / -1; }
.fashion-copy-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr);
  gap: 14px;
  align-items: start;
}

.fashion-copy-bottom > div { display: grid; gap: 8px; }
.copy-alerts { display: flex; flex-wrap: wrap; gap: 7px; }

.fashion-pack-panel {
  display: grid;
  gap: 15px;
  min-width: 0;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid rgba(178, 130, 67, .26);
  border-radius: 8px;
  background: #fffdf9;
}

.fashion-pack-head > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.pack-preset-row {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 9px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--hair);
}

.pack-preset-row > label {
  display: grid;
  flex: 1 1 300px;
  gap: 5px;
}

.pack-preset-row label span,
.pack-spec-grid label span,
.trim-cost-row label span,
.fashion-cost-summary span,
.sheet-cost-summary small { color: var(--ink-3); font-size: 11px; font-weight: 600; }

.pack-preset-row select,
.pack-spec-grid input,
.pack-spec-grid textarea,
.trim-cost-row input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid var(--hair);
  border-radius: 7px;
  color: var(--ink);
  background: #fff;
  font: 500 14px/1.4 var(--sans);
}

.pack-preset-row select { min-height: 42px; padding: 7px 11px; }
.pack-spec-grid { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 9px; }
.pack-spec-grid label { display: grid; gap: 5px; min-width: 0; }
.pack-spec-grid input,
.pack-spec-grid textarea { min-height: 42px; padding: 9px 11px; }
.pack-spec-grid label.wide { grid-column: span 2; }
.pack-spec-grid textarea { min-height: 68px; resize: vertical; }

.trim-cost-grid { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--hair); border-radius: 8px; background: var(--hair); }
.trim-cost-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 124px 94px;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 8px 12px;
  background: #fff;
}

.trim-cost-row.is-on { background: #f5fbf7; }
.trim-check { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 10px; min-width: 0; padding: 0; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.trim-check > span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--hair); border-radius: 7px; background: #fff; }
.trim-cost-row.is-on .trim-check > span { border-color: #2dbb64; color: #fff; background: #2dbb64; }
.trim-check > span .ic { width: 16px; height: 16px; }
.trim-check > div { display: grid; gap: 2px; min-width: 0; }
.trim-check b { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.trim-check small { color: var(--ink-3); font-size: 11px; }
.trim-cost-row label { display: grid; gap: 4px; }
.trim-cost-row input { min-height: 38px; padding: 7px 9px; text-align: right; }
.trim-cost-row > b { color: #7f4f12; font: 700 14px/1.2 var(--mono); text-align: right; }

.fashion-cost-summary,
.sheet-cost-summary {
  display: grid;
  grid-template-columns: minmax(130px, 1fr) 18px minmax(130px, 1fr) 18px minmax(150px, 1.1fr) minmax(150px, 1fr) minmax(160px, 1.1fr);
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(30, 140, 74, .22);
  border-radius: 8px;
  background: #f4fbf6;
}

.fashion-cost-summary > div,
.sheet-cost-summary > div { display: grid; gap: 3px; min-width: 0; }
.fashion-cost-summary b,
.sheet-cost-summary b { overflow-wrap: anywhere; font: 700 15px/1.25 var(--mono); }
.fashion-cost-summary i,
.sheet-cost-summary > span { color: var(--ink-3); font-style: normal; text-align: center; }
.fashion-cost-summary .total b,
.sheet-cost-summary .total b { color: #16723a; font-size: 17px; }

.shoot-line-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border-block: 1px solid var(--hair);
  background: #f8fafc;
}

.fashion-code-builder {
  display: grid;
  gap: 16px;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: #fff;
}

.fashion-code-intro,
.wizard-deferred-strip {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid rgba(var(--system-action-rgb), .18);
  border-radius: 8px;
  background: #f5faff;
}

.fashion-code-intro > div,
.wizard-deferred-strip > div { display: grid; flex: 1; gap: 3px; min-width: 0; }
.fashion-code-intro b,
.wizard-deferred-strip b { font-size: 14px; }
.fashion-code-intro small,
.wizard-deferred-strip small { color: var(--ink-3); line-height: 1.45; }
.fashion-code-group { display: grid; gap: 8px; }
.fashion-code-group > b { font-size: 13px; }
.fashion-code-options { display: flex; flex-wrap: wrap; gap: 7px; }
.fashion-code-option { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 11px; border: 1px solid var(--hair); border-radius: 8px; color: var(--ink-2); background: #fff; font: 600 13px/1.2 var(--sans); cursor: pointer; }
.fashion-code-option.is-on { border-color: rgba(var(--system-action-rgb), .38); color: var(--system-action); background: #edf6ff; }
.fashion-code-option i { width: 13px; height: 13px; border: 1px solid rgba(0,0,0,.14); border-radius: 50%; background: var(--swatch, transparent); }
.fashion-code-result { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid var(--hair); }
.fashion-code-result > div { display: flex; flex-wrap: wrap; gap: 6px; }

@media (max-width: 1200px) {
  .pack-spec-grid { grid-template-columns: repeat(3, minmax(160px, 1fr)); }
  .fashion-cost-summary,
  .sheet-cost-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fashion-cost-summary > i,
  .sheet-cost-summary > span { display: none; }
}

@media (max-width: 900px) {
  .station-line-filter { grid-template-columns: 1fr; margin-inline: 14px; }
  .station-line-filter > div:last-child { justify-content: flex-start; overflow-x: auto; }
  .fashion-copy-fields,
  .fashion-copy-bottom { grid-template-columns: 1fr; }
  .pack-spec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pack-spec-grid label.wide { grid-column: 1 / -1; }
  .design-brief-line.primary { grid-template-columns: 1fr; gap: 6px; }
  .design-brief-line.primary > span { padding-top: 0; }
}

@media (max-width: 680px) {
  .station-line-filter { margin-inline: 10px; padding-inline: 4px; background: transparent; }
  .station-line-filter > div:first-child { display: none; }
  .station-line-filter button { flex: 0 0 auto; }
  .design-step-strip { grid-template-columns: 1fr; }
  .design-step-strip > span { min-height: 50px; }
  .fashion-pack-panel { padding: 12px; }
  .pack-spec-grid,
  .fashion-cost-summary,
  .sheet-cost-summary { grid-template-columns: 1fr; }
  .trim-cost-row { grid-template-columns: minmax(0, 1fr) 92px; }
  .trim-cost-row > b { grid-column: 2; }
  .shoot-line-note { align-items: flex-start; flex-direction: column; }
  .fashion-code-result { align-items: flex-start; flex-direction: column; }
}

/* V104 role split polish: wide launch choices and calm, readable work surfaces. */
.drawer.wizard .drawer-body {
  padding-inline: clamp(24px, 4vw, 72px) !important;
}

.drawer.wizard .pick-grid {
  grid-template-columns: repeat(3, minmax(240px, 1fr)) !important;
  gap: 16px !important;
  width: 100%;
}

.drawer.wizard .pick-grid.src {
  grid-template-columns: repeat(4, minmax(210px, 1fr)) !important;
}

.drawer.wizard .pick-card {
  min-width: 0;
  min-height: 150px;
  padding: 20px !important;
  border-radius: 8px !important;
}

.drawer.wizard .wiz-q {
  margin-bottom: 14px;
  font-size: 18px;
  line-height: 1.35;
}

.drawer.wizard .brand-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
  gap: 5px 12px;
  min-height: 164px;
  text-align: left;
}

.drawer.wizard .brand-card > b,
.drawer.wizard .brand-card > small,
.drawer.wizard .brand-history,
.drawer.wizard .brand-owner {
  grid-column: 1 / -1;
  min-width: 0;
}

.drawer.wizard .brand-card > b {
  padding-right: 64px;
  font-size: 17px;
  line-height: 1.25;
}

.drawer.wizard .brand-card > small {
  color: var(--ink-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.drawer.wizard .brand-card .vi-stack {
  position: absolute;
  top: 20px;
  right: 20px;
}

.drawer.wizard .brand-history {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 8px;
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.35;
}

.drawer.wizard .brand-history svg {
  width: 15px;
  height: 15px;
  color: var(--system-action);
}

.drawer.wizard .brand-owner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  margin-top: 5px;
  padding-top: 10px;
  border-top: 1px solid var(--hair);
}

.drawer.wizard .brand-owner > span:last-child {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.drawer.wizard .brand-owner b,
.drawer.wizard .brand-owner small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.drawer.wizard .brand-owner b {
  color: var(--ink-1);
  font-size: 13px;
}

.drawer.wizard .brand-owner small {
  color: var(--ink-3);
  font-size: 12px;
}

.surface-studio .focus-command,
.surface-media .focus-command {
  color: var(--ink-1) !important;
  border: 1px solid rgba(var(--surface-accent-rgb, 10, 132, 255), .16) !important;
  background: linear-gradient(90deg, #ffffff 0%, #f7faff 100%) !important;
  box-shadow: 0 18px 48px rgba(41, 64, 98, .08) !important;
}

.surface-media .focus-command {
  border-color: rgba(172, 111, 28, .16) !important;
  background: linear-gradient(90deg, #ffffff 0%, #fffaf2 100%) !important;
}

.surface-studio .fc-left strong,
.surface-media .fc-left strong,
.surface-studio .fc-left p,
.surface-media .fc-left p,
.surface-studio .fc-details > summary,
.surface-media .fc-details > summary {
  color: var(--ink-1) !important;
}

.surface-studio .fc-left p,
.surface-media .fc-left p {
  color: var(--ink-3) !important;
  opacity: 1 !important;
}

.surface-studio .fc-right > span,
.surface-media .fc-right > span {
  background: #ffffff !important;
  box-shadow: inset 0 0 0 1px var(--hair), 0 8px 22px rgba(41, 64, 98, .05) !important;
}

.surface-studio .fc-right small,
.surface-media .fc-right small {
  color: var(--ink-3) !important;
}

.surface-studio .fc-right b,
.surface-media .fc-right b {
  color: var(--ink-1) !important;
}

@media (max-width: 1180px) {
  .drawer.wizard .pick-grid,
  .drawer.wizard .pick-grid.src {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  .drawer.wizard .drawer-body { padding-inline: 14px !important; }
  .drawer.wizard .pick-grid,
  .drawer.wizard .pick-grid.src {
    grid-template-columns: 1fr !important;
  }
}

/* V105.1: the launch preview exposes handoffs, while role tasks stay folded. */
.wizard-route-preview {
  display: grid;
  gap: 14px;
  min-width: 0;
  margin-top: 14px;
  padding: 18px;
  border: 1px solid rgba(var(--system-action-rgb), .16);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(49, 73, 107, .07);
}

.wizard-route-head,
.wizard-route-head > div,
.wizard-route-head > div > span {
  display: flex;
  align-items: center;
  min-width: 0;
}

.wizard-route-head {
  justify-content: space-between;
  gap: 16px;
}

.wizard-route-head > div { gap: 10px; }
.wizard-route-head > div > span { align-items: flex-start; flex-direction: column; gap: 3px; }
.wizard-route-head b { color: var(--ink-1); font-size: 18px; line-height: 1.2; }
.wizard-route-head small { color: var(--ink-3); font-size: 12px; line-height: 1.4; }

.wizard-route-scroll {
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.wizard-route-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--wizard-stage-count), minmax(170px, 1fr));
  gap: 10px;
  min-width: calc(var(--wizard-stage-count) * 170px + (var(--wizard-stage-count) - 1) * 10px);
  padding: 5px 1px 8px;
}

.wizard-route-track::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 35px;
  left: 6%;
  right: 6%;
  height: 2px;
  background: var(--hair);
}

.wizard-route-stage {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 142px;
  padding: 12px;
  border: 1px solid var(--hair);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
}

.wizard-route-stage.is-current {
  border-color: rgba(var(--system-action-rgb), .45);
  background: #edf6ff;
  box-shadow: 0 10px 26px rgba(var(--system-action-rgb), .12);
}

.wizard-route-stage.is-done {
  border-color: rgba(var(--green-rgb), .24);
  background: #f2fbf5;
}

.wizard-route-stage-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.wizard-route-stage-top > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--hair);
  border-radius: 50%;
  color: var(--ink-3);
  background: #fff;
  font: 900 13px/1 var(--mono);
}

.wizard-route-stage-top > span .ic { width: 18px; height: 18px; }
.wizard-route-stage.is-current .wizard-route-stage-top > span { border-color: var(--system-action); color: #fff; background: var(--system-action); }
.wizard-route-stage.is-done .wizard-route-stage-top > span { border-color: var(--green); color: #fff; background: var(--green); }
.wizard-route-stage-top em { color: var(--ink-3); font: 800 10px/1 var(--sans); font-style: normal; }
.wizard-route-stage.is-current .wizard-route-stage-top em { color: var(--system-action); }
.wizard-route-stage.is-done .wizard-route-stage-top em { color: var(--green-text); }
.wizard-route-stage > b { color: var(--ink-1); font-size: 15px; line-height: 1.25; }
.wizard-route-stage > p { margin: 0; color: var(--ink-2); font-size: 12px; line-height: 1.45; }
.wizard-route-stage > small { margin-top: auto; color: var(--ink-3); font-size: 11px; line-height: 1.35; }
.wizard-route-stage.is-future { background: #fafafa; }

.wizard-route-rule {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px 14px;
  border-radius: 8px;
  color: var(--green-text);
  background: rgba(var(--green-rgb), .09);
}

.wizard-route-rule > .ic { width: 18px; height: 18px; flex: 0 0 auto; }
.wizard-route-rule > span { display: grid; gap: 2px; min-width: 0; }
.wizard-route-rule b { font-size: 13px; }
.wizard-route-rule small { color: var(--ink-2); font-size: 12px; line-height: 1.45; }

.wizard-route-backstage,
.wizard-compiler-notes,
.wizard-assignment-preview {
  border-top: 1px solid var(--hair);
}

.wizard-route-backstage > summary,
.wizard-compiler-notes > summary,
.wizard-assignment-preview > summary {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto 18px;
  gap: 10px;
  align-items: center;
  min-height: 52px;
  color: var(--ink-1);
  list-style: none;
  cursor: pointer;
}

.wizard-compiler-notes > summary,
.wizard-assignment-preview > summary {
  grid-template-columns: 24px minmax(0, 1fr) 18px;
}

.wizard-route-backstage > summary::-webkit-details-marker,
.wizard-compiler-notes > summary::-webkit-details-marker,
.wizard-assignment-preview > summary::-webkit-details-marker { display: none; }
.wizard-route-backstage > summary > .ic,
.wizard-compiler-notes > summary > .ic,
.wizard-assignment-preview > summary > .ic { width: 17px; height: 17px; color: var(--system-action); }
.wizard-route-backstage > summary > span,
.wizard-compiler-notes > summary > span,
.wizard-assignment-preview > summary > span { display: grid; gap: 2px; min-width: 0; }
.wizard-route-backstage > summary b,
.wizard-compiler-notes > summary b,
.wizard-assignment-preview > summary b { font-size: 13px; }
.wizard-route-backstage > summary small,
.wizard-compiler-notes > summary small,
.wizard-assignment-preview > summary small { color: var(--ink-3); font-size: 11px; }
.wizard-route-backstage > summary em { color: var(--ink-3); font: 800 11px/1 var(--sans); font-style: normal; }
.wizard-route-backstage > summary > .ic:last-child,
.wizard-compiler-notes > summary > .ic:last-child,
.wizard-assignment-preview > summary > .ic:last-child { color: var(--ink-4); transition: transform .18s ease; }
.wizard-route-backstage[open] > summary > .ic:last-child,
.wizard-compiler-notes[open] > summary > .ic:last-child,
.wizard-assignment-preview[open] > summary > .ic:last-child { transform: rotate(180deg); }

.wizard-route-backstage > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 4px 0 14px 34px;
}

.wizard-route-backstage section { min-width: 0; padding: 10px 12px; border-radius: 8px; background: #f7f7f9; }
.wizard-route-backstage section > b { font-size: 12px; }
.wizard-route-backstage section > p { display: flex; flex-wrap: wrap; gap: 5px; margin: 7px 0 0; }
.wizard-route-backstage section span { padding: 4px 7px; border: 1px solid var(--hair); border-radius: 999px; color: var(--ink-2); background: #fff; font-size: 11px; }
.wizard-compiler-notes,
.wizard-assignment-preview { margin-top: 12px; }
.wizard-compiler-notes > .reason-list,
.wizard-assignment-preview > .assign-grid { padding: 6px 0 14px 34px; }

@media (max-width: 720px) {
  .wizard-route-preview { padding: 14px; }
  .wizard-route-head { align-items: flex-start; flex-direction: column; }
  .wizard-route-track { grid-template-columns: repeat(var(--wizard-stage-count), 190px); min-width: calc(var(--wizard-stage-count) * 190px + (var(--wizard-stage-count) - 1) * 10px); }
  .wizard-route-backstage > div { grid-template-columns: 1fr; padding-left: 0; }
  .wizard-compiler-notes > .reason-list,
  .wizard-assignment-preview > .assign-grid { padding-left: 0; }
}

/* V107 · 独立直播控台与品控闭环 */ .live-ops-switch{display:inline-flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--hair);border-radius:999px;background:rgba(255,255,255,.78);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 8px 24px rgba(0,0,0,.06);}.live-ops-switch .btn{height:34px;}.live-ops-switch .btn.primary{color:#fff;border-color:#ff2d55;background:#ff2d55;box-shadow:0 8px 18px rgba(255,45,85,.22);}.role-tabs button.is-live-tab,.role-tabs button.is-ops-tab{gap:8px;padding:8px 11px;}.role-tabs button .rt-ico{display:grid;place-items:center;width:24px;height:24px;flex:0 0 auto;color:var(--tint);border-radius:8px;background:rgba(var(--tint-rgb),.12);}.role-tabs button .rt-ico svg{width:15px;height:15px;}.role-tabs button .rt-copy{display:grid;gap:1px;min-width:0;text-align:left;line-height:1.05;}.role-tabs button .rt-copy b{overflow:hidden;max-width:118px;color:var(--ink-1);font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;}.role-tabs button .rt-copy small{overflow:hidden;max-width:118px;color:var(--ink-3);font-size:11px;text-overflow:ellipsis;white-space:nowrap;}.role-tabs button.is-live-tab.is-active{outline:1px solid rgba(255,45,85,.34);background:linear-gradient(180deg,rgba(255,45,85,.12),rgba(255,255,255,.78));}.live-independent-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid rgba(255,45,85,.20);border-radius:22px;background:linear-gradient(135deg,rgba(255,45,85,.08),rgba(255,255,255,.94) 55%,rgba(0,113,227,.05));box-shadow:0 14px 38px rgba(17,24,39,.07);}.live-independent-banner > div:first-child{display:flex;align-items:center;gap:12px;min-width:0;}.live-independent-banner b{display:block;color:var(--ink-0);font-size:17px;font-weight:800;}.live-independent-banner small{display:block;margin-top:3px;color:var(--ink-3);line-height:1.35;}.live-livebadges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;}.live-warning-strip{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:12px 14px;color:var(--red);border:1px solid rgba(var(--red-rgb),.22);border-radius:18px;background:linear-gradient(90deg,rgba(var(--red-rgb),.10),rgba(255,255,255,.84));font-weight:800;}.live-warning-strip svg{width:18px;height:18px;flex:0 0 auto;}.live-warning-strip span{min-width:0;color:var(--ink-1);font-weight:700;}.live-warning-strip .btn{margin-left:auto;}.qc-ledger{display:grid;grid-template-columns:repeat(6,minmax(92px,1fr));gap:8px;margin:12px 0;}.qc-ledger div{min-width:0;padding:11px 12px;border:1px solid var(--hair);border-radius:14px;background:rgba(255,255,255,.84);box-shadow:inset 0 1px 0 rgba(255,255,255,.82);}.qc-ledger small{display:block;color:var(--ink-3);font-size:11px;font-weight:800;}.qc-ledger b{color:var(--ink-0);font-size:24px;line-height:1.1;}.qc-ledger span{margin-left:3px;color:var(--ink-3);font-size:12px;}.qc-glossary{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px 10px;margin:0 0 12px;padding:10px 12px;color:var(--ink-2);border-radius:14px;background:rgba(var(--blue-rgb),.06);}.qc-glossary b{color:var(--blue);white-space:nowrap;}.qc-glossary span{font-size:12px;line-height:1.45;}.station-role-brief{margin:12px 0 16px;}.role-lane-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}.role-lane{min-width:0;padding:14px 16px;border:1px solid var(--hair);border-radius:18px;background:rgba(255,255,255,.78);box-shadow:inset 0 1px 0 rgba(255,255,255,.85);}.role-lane b{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:var(--ink-0);font-size:15px;font-weight:800;line-height:1.2;}.role-lane b .ic{width:16px;height:16px;flex:0 0 auto;}.role-lane small{display:block;color:var(--ink-2);font-size:12px;line-height:1.55;}.role-lane.standard,.role-lane.detail{border-color:rgba(var(--blue-rgb),.18);background:linear-gradient(145deg,rgba(var(--blue-rgb),.08),rgba(255,255,255,.86));}.role-lane.package{border-color:rgba(255,149,0,.22);background:linear-gradient(145deg,rgba(255,149,0,.11),rgba(255,255,255,.86));}.role-lane.fashion{border-color:rgba(52,199,89,.2);background:linear-gradient(145deg,rgba(52,199,89,.11),rgba(255,255,255,.86));}.role-lane.trace{border-color:rgba(142,142,147,.18);background:linear-gradient(145deg,rgba(142,142,147,.10),rgba(255,255,255,.86));}.live-sort-row,.live-drag-handle{touch-action:none;}.live-sort-row[draggable="false"]{user-select:none;}.lc-title-band,
.lc-head,
.lc-tv-focus,
.lc-tv-deal,
.lc-tv-must,
.lc-tv-rich,
.lc-tv-cost,
.lc-tv-risk,
.cs-find-console,
.cs-result-list,
.cs-product-result,
.focus-head,
.focus-product,
.focus-progress-summary,
.flow-v91,
.flow-v91-head,
.flow-v91-rail-scroll,
.dag-focus-work {min-width:0;max-width:100%;}.lc-title-band{grid-template-columns:auto minmax(0,1fr) minmax(180px,auto);overflow:hidden;}.lc-title-band .lc-vi,.lc-head .lc-vi,.flow-v91-title .mini-icon,.focus-product > .focus-stage-no,.cs-source-icon,.cs-feedback-icon{flex:0 0 auto;}.lc-status-stack{min-width:0;max-width:100%;justify-content:flex-end;}.lc-status-stack .chip{min-width:0;max-width:100%;white-space:nowrap;}.lc-title-copy h2,.lc-title-copy p,.lc-tv-open b,.lc-tv-line b,.lc-tv-rich-card b,.lc-tv-rich-card span,.cs-product-copy b,.cs-product-copy small,.focus-product-copy h2,.focus-product-copy p{overflow-wrap:anywhere;word-break:normal;}.focus-product{grid-template-columns:auto minmax(0,1fr) auto;}.focus-progress-summary{grid-template-columns:minmax(130px,auto) minmax(120px,1fr) auto auto;}.wizard-supplier-dock,.supplier-picker-panel,.supplier-choice-card,.supplier-compare-card,.purchase-card,.purchase-panel,.po-edit-grid,.po-package-bindings,.qc-workflow,.qc-facts,.qc-problem-panel,.qc-support-grid{max-width:100%;min-width:0;overflow-wrap:anywhere;}.po-edit-grid input,.po-edit-grid textarea,.po-edit-grid select,.supplier-picker-panel input,.supplier-picker-panel textarea,.supplier-picker-panel select,.purchase-panel input,.purchase-panel textarea,.purchase-panel select,.qc-workflow input,.qc-workflow textarea,.qc-workflow select{min-width:0;}@media (max-width:900px){.live-independent-banner{align-items:flex-start;flex-direction:column;}.live-livebadges{justify-content:flex-start;}.qc-ledger{grid-template-columns:repeat(2,minmax(0,1fr));}.qc-glossary{grid-template-columns:1fr;}.qc-glossary b{margin-top:4px;}.live-ops-switch .hide-m{display:none;}}@media (max-width:1100px){.role-lane-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}@media (max-width:680px){.role-lane-grid{grid-template-columns:1fr;}}/* ===== V126 · P2-2 包材豁免登记行 ===== */ .po-waiver{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:var(--bg-soft,rgba(0,0,0,.03));margin:8px 0 2px;}.po-waiver > svg{flex:none;}.po-waiver span{display:flex;flex-direction:column;gap:2px;min-width:0;}.po-waiver b{font-size:13px;}.po-waiver small{color:var(--muted);}.po-waiver input.gs-in{margin-left:auto;max-width:260px;}.po-waiver.is-on{border-style:solid;border-color:var(--green);}/* ===== V126 · P0-3 定位标识：本机数据常驻提示 ===== */ .local-data-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;border:1px solid var(--amber);color:var(--amber);font-size:11.5px;line-height:1.4;white-space:nowrap;background:transparent;}.local-data-pill svg{width:12px;height:12px;}@media (max-width:760px){.local-data-pill{font-size:10.5px;padding:2px 8px;}}/* ===== V128 · P0-03 附件证据状态 ===== */ .doc-pill .doc-sha{font-size:11px;opacity:0.75;margin-left:4px;}.doc-pill.is-tampered{border-color:var(--red);}.doc-pill.is-meta{border-color:var(--amber);}/* ===== V128 · P1-01 疑似安全项 ===== */ .qc-safety-flag{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px dashed var(--amber);border-radius:8px;font-size:12px;}.qc-safety-dismissed{grid-column:1 / -1;font-size:11px;opacity:0.75;}/* ===== V135 · 全屏作战图唯一末端几何护栏（重叠/裁切/200% 文本） ===== */ .dag-fullscreen{width:auto;min-width:0;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);grid-template-columns:minmax(0,1fr);}.dag-fullscreen .dag-full-head,.dag-fullscreen .dag-full-body,.dag-fullscreen .dag-full-foot,.dag-fullscreen .dag-wrap,.dag-fullscreen .flow-v91,.dag-fullscreen .flow-v91-head,.dag-fullscreen .flow-v91-rail-scroll,.dag-fullscreen .dag-focus-work,.dag-fullscreen .dag-all-stages{width:100%;min-width:0;max-width:100%;}.dag-fullscreen .dag-full-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 18px;}.dag-fullscreen .dag-full-head > div:first-child,.dag-fullscreen .dag-full-head > div:first-child > div{min-width:0;max-width:100%;}.dag-fullscreen .dag-full-head b,.dag-fullscreen .dag-full-head small{max-width:100%;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;}.dag-fullscreen .dag-full-head .drawer-actions{min-width:0;max-width:min(46vw,620px);display:flex;flex-wrap:wrap;justify-content:flex-end;}.dag-fullscreen .dag-full-head .drawer-actions > button,.dag-fullscreen .dag-full-head .drawer-actions > .btn{min-width:44px;min-height:44px;}.dag-fullscreen .dag-full-body{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;}.dag-fullscreen .flow-v91-rail-scroll{overflow-x:auto;overflow-y:visible;padding-bottom:12px;}.dag-fullscreen .flow-v91-rail{--flow-stage-min:176px;width:max(100%,calc(var(--flow-count) * var(--flow-stage-min)));min-width:max(100%,calc(var(--flow-count) * var(--flow-stage-min)));grid-template-columns:repeat(var(--flow-count),minmax(var(--flow-stage-min),1fr));padding-inline:0 16px;}.dag-fullscreen .flow-v91-item,.dag-fullscreen .flow-v91-stage,.dag-fullscreen .flow-v91-copy{min-width:0;max-width:100%;}.dag-fullscreen .flow-v91-copy b,.dag-fullscreen .flow-v91-copy small{display:block;width:100%;min-height:0;overflow:visible;white-space:normal;overflow-wrap:anywhere;word-break:normal;}@media (max-width:860px){.dag-fullscreen{inset:0;max-width:100vw;max-height:100dvh;border-radius:0;}.dag-fullscreen .dag-full-head{grid-template-columns:minmax(0,1fr);align-items:start;}.dag-fullscreen .dag-full-head .drawer-actions{max-width:100%;justify-content:flex-start;}}@media (max-width:480px),(pointer:coarse){button,.btn,[role="button"],input:not([type="hidden"]),select{min-height:44px;}}
.card-btn {
  appearance: none; -webkit-appearance: none;
  background: none; border: 0; margin: 0;
  font: inherit; color: inherit; text-align: inherit;
  width: 100%; box-sizing: border-box; cursor: pointer;
}
.card-btn:focus-visible { outline: 2px solid var(--tint, #0a84ff); outline-offset: 2px; border-radius: 10px; }
@media(pointer:coarse){button,.drawer button{min-height:45px}}
@media (pointer: coarse) { .role-tabs button { min-height: 45px; } }
.smc-head.card-btn { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.smc-head-main { display: flex; flex-direction: column; min-width: 0; text-align: left; }

/* Next Generation：沿用原令牌与层级，仅补足可读性和触控热区。 */
.chip.red{background:#fdebed}.chip.amber{background:#fff0d8}.chip.green{background:#e8f6ec}
body.is-app :where(small,.muted,.hint-line,.zone-label,.focus-product-copy p,.fc-details>summary,.design-step-strip>span,.pack-preset-row label span,.pack-spec-grid label span,.trim-cost-row label span,.fashion-cost-summary span){color:var(--ink-3)}
.station-eyebrow,.station-now>.zone-label .count,.fc-left span{color:var(--tint-text,#164d9e)}.focus-stage-no{color:#fff;background:var(--tint-text,#164d9e)}
:where(.focus-command,.focus-head,.focus-body,.focus-foot,.decision-card,.alert-row,.cs-product-result,.qc-step-line,.qc-conclusion,.supplier-maint-card,.purchase-card,.fashion-pack-panel,.fashion-cost-summary,.trim-cost-row,.shot-slot,.live-hit-card,.deck-row,.scan-row.is-dim,.dag-node.pending){opacity:1}
.live-hit-card.is-dim,.deck-row.is-draft{background-color:#f3f4f6}.surface-studio .fc-left p,.surface-media .fc-left p{opacity:1}
:where(.surface-studio,.surface-media,.surface-broadcast .live-console-head,.identity-band) small{color:rgba(255,255,255,.88)}
.drawer .ghost-ic{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;opacity:1}
@media (max-width:480px),(pointer:coarse){.drawer :where(button,.btn,[role="button"],input:not([type="hidden"]),select,textarea){min-width:44px;min-height:44px}}
.qc-glossary > b { color: var(--system-action); }
.alert-row-group { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
