:root {
  color: #202723;
  background: #f2f3ef;
  font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
  --ink: #202723;
  --muted: #69736d;
  --line: #dde1da;
  --paper: #fffdfa;
  --panel: #ffffff;
  --app-bg: #f2f3ef;
  --green: #285a48;
  --green-2: #e5f1ea;
  --sidebar: #17231e;
  --nav-active: #2f463d;
  --brand-subtitle: #d8eadf;
  --gold: #b78936;
  --red: #a94339;
}

:root[data-theme="red"] {
  color: #f5efed;
  background: #121010;
  --ink: #f5efed;
  --muted: #b8aaa8;
  --line: #3a3031;
  --paper: #fffdfb;
  --panel: #1c1819;
  --app-bg: #121010;
  --green: #a33a43;
  --green-2: #2a181b;
  --sidebar: #171111;
  --nav-active: #5d2028;
  --brand-subtitle: #e6c6ca;
  --gold: #c59a5a;
  --red: #a33a43;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  overflow-y: scroll;
  scrollbar-gutter: stable;
  background: var(--app-bg);
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  cursor: pointer;
}

.app-shell {
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
  background: var(--app-bg);
}

.app-shell.home-shell,
.app-shell.revenue-shell,
.app-shell.live-shell,
.app-shell.login-shell {
  grid-template-columns: 1fr;
}

.app-shell.home-shell .sidebar,
.app-shell.revenue-shell .sidebar,
.app-shell.live-shell .sidebar,
.app-shell.login-shell .sidebar {
  display: none;
}

.sidebar {
  background: var(--sidebar);
  color: #fff;
  padding: 26px 18px;
  position: sticky;
  top: 0;
  height: 100vh;
}

.brand {
  border: 0;
  background: transparent;
  color: inherit;
  display: grid;
  gap: 4px;
  margin-bottom: 30px;
  padding: 0 8px;
  text-align: left;
  width: 100%;
}

.brand:hover {
  color: #fff;
}

.brand span {
  font-size: 38px;
  font-weight: 900;
  letter-spacing: 0;
}

.brand strong {
  color: var(--brand-subtitle);
  font-size: 14px;
}

nav {
  display: grid;
  gap: 9px;
}

nav button,
.mini-list button {
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 14px;
  text-align: left;
}

nav button.active,
nav button:hover {
  background: var(--nav-active);
}

.warehouse-nav {
  gap: 6px;
}

.warehouse-nav-section,
.warehouse-nav-nested,
.warehouse-nav-children {
  display: grid;
  gap: 4px;
}

.warehouse-nav-children[hidden] { display: none; }

/* 基础数据中心验收整改 */

.warehouse-nav-group {
  justify-content: space-between;
  font-weight: 800;
}

.warehouse-nav-group i {
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  color: var(--brand-subtitle);
  font-size: 0;
  font-style: normal;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform .16s ease;
}

.warehouse-nav-group[aria-expanded="true"] i {
  transform: rotate(225deg) translate(-2px, -2px);
}

.warehouse-nav-link {
  margin-left: 12px;
  min-height: 38px;
  padding-left: 18px;
  font-size: 13px;
}

.warehouse-nav-subgroup {
  margin-left: 12px;
  min-height: 38px;
  padding-left: 18px;
  font-size: 13px;
}

.warehouse-nav-grandchildren .warehouse-nav-link {
  margin-left: 28px;
}

.warehouse-nav-link.is-planned {
  color: inherit;
  cursor: not-allowed;
  opacity: 1;
}

.warehouse-nav-link.is-planned:hover {
  background: transparent;
}

.warehouse-nav-link.is-planned span { display: none; }

.workspace {
  padding: 24px;
  min-width: 0;
  min-height: 0;
  height: 100vh;
  overflow: auto;
  background: var(--app-bg);
}

.workspace:has(.order-module-page.is-workbench) {
  padding-top: 0;
}

.modular-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 18px;
  align-items: start;
}

.order-page {
  display: grid;
  min-height: calc(100vh - 48px);
}

.order-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 18px;
  align-items: stretch;
  height: calc(100vh - 48px);
  min-height: 0;
}

.order-config {
  display: grid;
  gap: 18px;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  padding-right: 4px;
}

.order-side {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  overscroll-behavior: contain;
}

.order-section {
  display: grid;
  gap: 14px;
}

.template-edit-layout {
  width: 100%;
}

.template-meta-grid {
  grid-template-columns: 1fr;
}

.template-meta-grid label {
  min-width: 0;
}

.section-header.compact {
  margin-bottom: 0;
}

.order-template-global {
  min-width: 0;
}

.order-template-global .order-accordion-section {
  background: #eef6f1;
  border-color: #c7dbd0;
}

.order-template-global .order-accordion-head {
  min-height: 64px;
  grid-template-columns: minmax(0, 1fr) 34px;
}

.template-strip {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(172px, 1fr));
  gap: 10px;
}

.single-groups,
.multi-groups {
  display: grid;
  gap: 16px;
}

.order-accordion {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(154px, 1fr));
  gap: 8px;
  min-width: 0;
}

.order-accordion-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfa;
  overflow: hidden;
  min-width: 0;
  scroll-margin-top: 10px;
}

.order-accordion-section.open {
  border-color: #c7dbd0;
  grid-column: 1 / -1;
}

.order-accordion-head {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--ink);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: 6px 10px;
  min-height: 76px;
  padding: 10px 12px;
  text-align: left;
}

.order-accordion-head span {
  font-weight: 900;
  line-height: 1.2;
}

.order-accordion-head small {
  color: var(--muted);
  grid-column: 1 / -1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.35;
}

.order-accordion-head b {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--green-2);
  color: var(--green);
}

.order-accordion-section.open .order-accordion-head {
  background: var(--green-2);
  grid-template-columns: 150px minmax(0, 1fr) 34px;
  min-height: 52px;
  padding: 13px 14px;
}

.order-accordion-section.open .order-accordion-head small {
  grid-column: auto;
}

.order-accordion-section.open .order-accordion-head b {
  width: 28px;
  height: 28px;
}

.order-template-global .order-accordion-section.open .order-accordion-head,
.order-template-global .order-accordion-head {
  grid-template-columns: minmax(0, 1fr) 34px;
  min-height: 64px;
  padding: 12px 14px;
}

.order-template-global .order-accordion-head span {
  justify-self: start;
  border: 1px solid #bdd6c9;
  border-radius: 8px;
  background: #f7fbf8;
  color: var(--green);
  padding: 7px 12px;
  font-size: 18px;
}

.order-template-global .order-accordion-head small,
.order-template-global .order-accordion-section.open .order-accordion-head small {
  display: none;
}

.order-template-global .order-accordion-head b {
  justify-self: end;
}

.order-option-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(136px, 1fr));
  gap: 8px;
  padding: 12px;
  border-top: 1px solid var(--line);
  min-width: 0;
}

.order-option-tile {
  min-height: 90px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 10px;
  text-align: left;
  min-width: 0;
}

.order-option-tile.selected,
.order-option-tile:hover {
  border-color: var(--green);
  background: var(--green-2);
}

.order-template-global .order-option-tile.selected {
  border-color: var(--green);
  box-shadow: inset 0 0 0 1px var(--green);
}

.order-option-tile span,
.order-option-tile em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.workbench-main,
.workbench-side {
  display: grid;
  gap: 18px;
}

.workbench-side {
  position: sticky;
  top: 24px;
}

.page-grid,
.worker-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 18px;
  align-items: start;
}

.worker-layout {
  grid-template-columns: 260px minmax(0, 1fr);
}

.panel,
.hero-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(38, 47, 42, 0.07);
}

.panel {
  padding: 20px;
}

.hero-panel {
  min-height: 154px;
  padding: 26px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  background:
    linear-gradient(135deg, rgba(40, 90, 72, 0.94), rgba(54, 64, 52, 0.92)),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.14) 0 1px, transparent 1px 12px);
  color: #fff;
}

.hero-panel p,
.section-header p,
.picker-head p {
  color: var(--muted);
  margin: 0 0 5px;
  font-size: 13px;
  font-weight: 800;
}

.hero-panel p {
  color: #dcebe3;
}

h1,
h2 {
  margin: 0;
  letter-spacing: 0;
}

h1 {
  font-size: 28px;
}

h2 {
  font-size: 19px;
}

.full {
  min-height: calc(100vh - 48px);
}

.home-page,
.module-page {
  display: grid;
  gap: 18px;
  align-content: start;
}

.order-blank-page {
  grid-template-columns: minmax(0, 1fr);
}

.order-blank-body {
  display: grid;
  place-items: center;
  min-height: 240px;
  padding: 40px 24px;
  color: var(--muted);
  text-align: center;
}

.home-hero {
  min-height: 154px;
  border-radius: 8px;
  padding: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
  gap: 24px;
  align-items: end;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(40, 90, 72, 0.96), rgba(50, 58, 48, 0.94)),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.13) 0 1px, transparent 1px 12px);
}

.home-hero p,
.warehouse-topbar p {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.home-hero p {
  color: #dcebe3;
}

.home-entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.home-entry-card {
  min-height: 160px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 20px;
  background: var(--panel);
  color: var(--ink);
  text-align: left;
  display: grid;
  align-content: start;
  gap: 10px;
  box-shadow: 0 10px 30px rgba(38, 47, 42, 0.07);
}

.home-entry-card:hover,
.home-entry-card.primary-entry {
  border-color: var(--green);
  background: var(--green-2);
}

.home-entry-card span {
  color: var(--green);
  font-size: 13px;
  font-weight: 900;
}

.home-entry-card strong {
  font-size: 20px;
  line-height: 1.25;
}

.home-entry-card small {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.shortcut-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}

.shortcut-grid button,
.module-tabs button {
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 40px;
  padding: 0 14px;
  background: #fff;
  color: var(--ink);
}

.shortcut-grid button:hover,
.module-tabs button:hover,
.module-tabs button.active {
  border-color: var(--green);
  background: var(--green);
  color: #fff;
}

.module-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-bottom: 18px;
}

.warehouse-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: 18px;
  align-items: start;
}

.warehouse-summary {
  display: grid;
  gap: 18px;
}

.warehouse-list {
  display: grid;
  gap: 10px;
}

.warehouse-row {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
}

.warehouse-row.low {
  border-color: #e4c5c1;
  background: #fff7f5;
}

.warehouse-row div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.warehouse-row span,
.warehouse-row small {
  color: var(--muted);
  font-size: 12px;
}
.sku-archive-actions, .master-list-actions { justify-content: flex-end; margin-bottom: 10px; }
.sku-filters { display: grid; grid-template-columns: minmax(180px, 220px) repeat(4, minmax(0, 132px)) auto; gap: 8px; margin: 0 0 14px; align-items: center; }
.sku-filters input, .sku-filters select { min-width: 0; }
.sku-filters button:disabled { opacity: .45; cursor: default; }
.sku-filters .ghost { height: 40px; min-height: 40px; margin-top: 0; padding: 0 14px; white-space: nowrap; }
.sku-list-head, .sku-list-row { display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(170px, 1fr) minmax(120px, .7fr) 70px 100px; gap: 14px; align-items: center; }
.sku-list-head { padding: 0 12px 7px; color: var(--muted); font-size: 12px; font-weight: 800; }
.sku-list { border-top: 1px solid var(--line); }
.sku-list-row { min-height: 58px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.sku-list-row > div { display: grid; gap: 3px; min-width: 0; }
.sku-list-row small, .sku-list-row > span { color: var(--muted); font-size: 13px; }
.status-dot { display: inline-flex; align-items: center; gap: 5px; color: var(--green) !important; }
.status-dot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status-dot.is-off { color: var(--muted) !important; }
.sku-row-actions { position: relative; display: flex; justify-content: flex-end; align-items: center; gap: 6px; }
.sku-row-actions details { position: relative; }
.sku-row-actions summary { list-style: none; cursor: pointer; padding: 4px 8px; color: var(--muted); }
.sku-row-actions summary::-webkit-details-marker { display: none; }
.sku-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 12px 0; color: var(--muted); font-size: 13px; }
.sku-pagination > div { display: flex; align-items: center; gap: 8px; }
.sku-pagination button.ghost { width: 36px; height: 36px; min-height: 36px; margin-top: 0; padding: 0; display: inline-grid; place-items: center; }
.sku-pagination button.ghost svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.sku-empty-state { display: grid; justify-items: start; gap: 8px; padding: 32px 12px; color: var(--muted); }
.sku-empty-state strong { color: var(--text); font-size: 15px; }

.warehouse-row strong,
.warehouse-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.warehouse-row b {
  color: var(--green);
}

.warehouse-placeholder {
  min-height: 240px;
  display: grid;
  place-content: center;
  text-align: center;
  gap: 10px;
}

.warehouse-placeholder p {
  max-width: 520px;
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.dashboard-home {
  max-width: 1320px;
  width: 100%;
  margin: 0 auto;
}

.dashboard-topbar {
  display: grid;
  grid-template-columns: minmax(220px, auto) minmax(260px, 1fr) auto;
  gap: 14px;
  align-items: center;
}

.dashboard-logo {
  border: 0;
  background: transparent;
  color: var(--ink);
  display: grid;
  gap: 2px;
  padding: 0;
  text-align: left;
}

.dashboard-logo span {
  color: var(--green);
  font-size: 34px;
  font-weight: 900;
  line-height: 1;
}

.dashboard-logo strong {
  font-size: 13px;
  color: var(--muted);
}

.dashboard-search {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  color: var(--muted);
  padding: 0 12px;
  min-height: 44px;
}

.dashboard-search input {
  border: 0;
  background: transparent;
  min-height: 38px;
  padding: 0;
}

.dashboard-tools,
.dashboard-actions,
.dashboard-card-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.dashboard-actions .ghost,
.dashboard-card-actions .ghost {
  margin-top: 0;
}

.dashboard-tools {
  justify-content: flex-end;
  color: var(--muted);
  font-weight: 800;
}

.dashboard-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 460px);
  gap: 24px;
  align-items: stretch;
  padding: 24px;
}

.dashboard-hero-copy {
  display: grid;
  align-content: center;
  gap: 16px;
}

.dashboard-hero-copy p {
  margin: 0;
  color: var(--green);
  font-size: 13px;
  font-weight: 900;
}

.dashboard-hero-copy h1 {
  max-width: 720px;
  line-height: 1.25;
}

.dashboard-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.dashboard-status-grid div,
.dashboard-module-card,
.dashboard-list-row,
.planned-list div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf7;
}

.dashboard-status-grid div {
  display: grid;
  align-content: center;
  gap: 4px;
  min-height: 86px;
  padding: 14px;
}

.dashboard-status-grid strong,
.dashboard-module-meta b {
  color: var(--green);
  font-size: 24px;
  line-height: 1.1;
}

.dashboard-status-grid span,
.dashboard-module-meta span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.dashboard-section {
  display: grid;
  gap: 14px;
}

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

.dashboard-module-card {
  display: grid;
  gap: 14px;
  padding: 16px;
  box-shadow: 0 10px 30px rgba(38, 47, 42, 0.06);
}

.dashboard-module-main {
  border: 0;
  background: transparent;
  color: var(--ink);
  display: grid;
  gap: 7px;
  min-height: 116px;
  padding: 0;
  text-align: left;
}

.dashboard-module-main span,
.dashboard-list-row span {
  color: var(--green);
  font-size: 12px;
  font-weight: 900;
}

.dashboard-module-main strong {
  font-size: 19px;
  line-height: 1.25;
}

.dashboard-module-main small,
.dashboard-module-meta p,
.dashboard-list-row small {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.dashboard-module-meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.dashboard-module-meta div {
  display: grid;
  gap: 2px;
}

.dashboard-module-meta p {
  margin: 0;
}

.dashboard-operations {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: 18px;
  align-items: start;
}

.dashboard-list {
  display: grid;
  gap: 10px;
}

.dashboard-list-row {
  color: var(--ink);
  display: grid;
  gap: 4px;
  min-height: 74px;
  padding: 12px;
  text-align: left;
  width: 100%;
}

.dashboard-list-row:hover,
.dashboard-module-card:hover {
  border-color: var(--green);
  background: var(--green-2);
}

.dashboard-list-row.warning {
  border-color: #e4c5c1;
  background: #fff7f5;
}

.dashboard-list-row.ok {
  border-color: #cfe0d4;
}

.planned-module {
  display: grid;
  gap: 18px;
}

.planned-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.planned-list div {
  display: grid;
  gap: 6px;
  padding: 14px;
}

.planned-list span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.section-header,
.picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.actions,
.row-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.stats-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 10px;
}

.stats-strip div {
  min-width: 112px;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255,255,255,0.12);
}

.warehouse-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) repeat(3, minmax(130px, 180px));
  gap: 10px;
  margin-bottom: 14px;
}

.warehouse-table-wrap {
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: auto;
  background: #fff;
}

.warehouse-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
}

.warehouse-table th,
.warehouse-table td {
  border-bottom: 1px solid var(--line);
  padding: 11px 12px;
  text-align: left;
  vertical-align: top;
}

.warehouse-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--green-2);
  color: var(--green);
  font-size: 12px;
}

.warehouse-table td {
  background: #fff;
}

.warehouse-table tr.low td {
  background: #fff7f5;
}

.warehouse-table strong,
.warehouse-table span,
.warehouse-table small {
  display: block;
}

.warehouse-table strong,
.warehouse-table b {
  color: var(--ink);
}

.warehouse-table small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.warehouse-table span {
  max-width: 360px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.warehouse-edit-form,
.warehouse-form {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  margin-bottom: 14px;
  background: #fbfcfa;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.warehouse-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 0;
}

.warehouse-edit-form label,
.warehouse-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.warehouse-edit-form label:has(input[type="checkbox"]) {
  align-content: center;
  grid-template-columns: auto 1fr;
  gap: 8px;
}

.warehouse-edit-form .wide,
.warehouse-form .wide {
  grid-column: 1 / -1;
}

.warehouse-help {
  margin: -4px 0 14px;
  color: var(--muted);
  line-height: 1.6;
}

.master-tree { display: grid; gap: 0; margin-top: 20px; overflow: visible; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.master-tree-node { margin: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; overflow: visible; }
.master-tree > .master-tree-node:last-child { border-bottom: 0; }
.master-tree-row { min-height: 54px; display: grid; grid-template-columns: 42px minmax(0, 1fr) 132px auto; align-items: center; gap: 10px; padding: 0 14px; }
.master-tree-toggle, .master-tree-dot { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 7px; }
.master-tree-toggle { border: 0; background: transparent; color: var(--green); cursor: pointer; font-size: 19px; font-weight: 900; }
.master-tree-toggle:hover { background: var(--green-2); }
.master-tree-toggle i { display: none; }
.master-tree-dot::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--muted); opacity: .48; }
.master-tree-name { padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; font-size: 16px; font-weight: 750; cursor: pointer; }
.master-tree-name:not([data-master-toggle]):not([data-structure-toggle]) { cursor: default; }
.master-tree-row small { color: var(--muted); text-align: right; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.master-tree-children { margin-left: 34px; padding: 0; border-left: 1px solid color-mix(in srgb, var(--green) 32%, var(--line)); background: transparent; }
.master-tree-children > .master-tree-node { position: relative; }
.master-tree-children > .master-tree-node::before { content: ""; position: absolute; left: -1px; top: 27px; width: 14px; border-top: 1px solid color-mix(in srgb, var(--green) 32%, var(--line)); }
.master-tree-children > .master-tree-node:last-child::after { content: ""; position: absolute; left: -1px; top: 27px; bottom: 0; width: 1px; background: var(--panel); }
.master-tree-children .master-tree-row { padding-left: 18px; }
.master-tree-editor { padding: 14px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--green) 4%, var(--panel)); }
.master-tree-editor .warehouse-edit-form { margin: 0; }
.field-editor-panel { padding: 8px 0 0; background: transparent; }
.field-editor-panel h3 { margin: 0 0 4px; }
.field-editor-panel p { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
.field-editor { display: grid; margin-bottom: 10px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.part-template-field-editor { border-radius: 10px; overflow: visible; }
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) { overflow: visible; }
.field-editor-head,
.field-editor-row { display: grid; grid-template-columns: 40px minmax(150px, 1fr) 110px 80px 54px 72px 28px; gap: 12px; align-items: center; padding: 8px 14px; }
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-head,
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row {
  grid-template-columns: 40px minmax(180px, .9fr) 110px 110px 54px 86px minmax(148px, .34fr) 28px 28px;
}
.field-editor-head { min-height: 34px; background: color-mix(in srgb, var(--panel) 88%, var(--line)); color: var(--muted); font-size: 12px; text-align: center; }
.field-editor-row { min-height: 46px; border-top: 1px solid var(--line); background: transparent; transition: box-shadow .18s ease, background .18s ease; }
.field-editor-row label { display: flex; align-items: center; justify-content: center; color: var(--muted); }
.field-editor-row.field-disabled { opacity: .55; background: color-mix(in srgb, var(--panel) 90%, var(--line)); }
.field-editor .field-check input,
.field-editor .field-option-row input[type="checkbox"] {
  appearance: none;
  width: 17px;
  min-width: 17px;
  height: 17px;
  min-height: 17px;
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--muted) 48%, var(--line));
  border-radius: 5px;
  background: var(--panel);
  cursor: pointer;
}

.field-editor .field-check input:checked,
.field-editor .field-option-row input[type="checkbox"]:checked {
  border-color: var(--green);
  background: var(--green) center / 10px 10px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.2 6.4 11.5 13 4.8' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.field-editor .field-check input:disabled,
.field-editor .field-option-row input[type="checkbox"]:disabled { cursor: not-allowed; }
.field-unit { display: block; }
.field-unit i { display: none; color: var(--muted); font-style: normal; text-align: center; }
.field-unit.is-empty :is(input, select) { display: none; }
.field-unit.is-empty i { display: block; }
.field-editor-row > .ghost { padding: 4px 7px; font-size: 12px; }
.field-actions { display: flex; gap: 4px; justify-content: flex-end; }
.field-actions .ghost[hidden] { display: none; }
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-actions { min-width: 0; align-items: center; justify-content: center; gap: 6px; }
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-actions i { color: var(--muted); font-style: normal; }
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > [data-field="type"],
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > [data-field-unit] select { width: 100%; }
.template-field-editor .field-editor-head,
.template-field-editor .template-field-row { grid-template-columns: 40px minmax(240px, 1.3fr) 118px 54px 72px minmax(210px, .9fr) 88px 28px 28px; }
.template-field-editor { border: 1px solid var(--line); border-radius: 10px; overflow: visible; }
.template-field-editor .field-editor-head { border-radius: 10px 10px 0 0; }
.template-field-row:hover { background: color-mix(in srgb, var(--green) 4%, var(--panel)); }
.template-field-row:last-of-type { border-radius: 0 0 10px 10px; }
.template-field-row .template-field-config { min-width: 210px; }
.template-field-row .template-field-config :is(select, .field-config-trigger) { width: 100%; min-height: 40px; }
.template-field-row .template-field-usage { display: flex; align-items: center; justify-content: center; min-width: 0; }
.field-config-trigger { display: inline-flex; align-items: center; justify-content: flex-start; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--ink); cursor: pointer; text-align: left; white-space: nowrap; }
.field-config-trigger::after { content: "›"; margin-left: auto; color: var(--muted); font-size: 18px; line-height: 1; }
.field-config-trigger:hover { border-color: var(--green); background: var(--green-2); }
.field-config-trigger:focus-visible { border-color: var(--green); outline: 2px solid color-mix(in srgb, var(--green) 34%, transparent); outline-offset: 2px; }
.field-config-empty { display: block; color: var(--muted); text-align: center; }
.template-field-mobile-actions { display: none; }
.template-basic-info { padding: 2px 0 18px; border-bottom: 1px solid var(--line); }
.template-basic-info > p { margin: 0 0 10px; color: var(--muted); font-size: 13px; }
.template-basic-info > div { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(240px, .72fr); gap: 18px; align-items: end; }
.template-basic-info .form-toggle-row { margin: 0; min-height: 40px; }
.template-field-panel > header { margin-bottom: 12px; }
.template-field-panel > header h3 { margin: 0; }
.template-field-panel > header p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.template-editor-actions [data-template-dirty] { margin-right: auto; color: var(--muted); font-size: 13px; }
.template-field-drawer-mask { position: fixed; inset: 0; z-index: 60; display: flex; justify-content: flex-end; background: rgba(19,31,24,.36); }
.template-field-drawer { width: min(460px, 100%); height: 100dvh; min-height: 100%; display: flex; flex-direction: column; gap: 14px; padding: 20px; overflow: hidden; border-left: 1px solid var(--line); background: var(--panel); box-shadow: -16px 0 44px rgba(0,0,0,.18); }
.template-field-drawer > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.template-field-drawer header p { margin: 0 0 4px; color: var(--muted); font-size: 13px; }
.template-field-drawer h3 { margin: 0; }
.template-source-section { display: grid; gap: 4px; padding: 0; }
.template-source-section > strong { margin: 0 0 2px; color: var(--muted); font-size: 13px; font-weight: 600; }
.template-source-section label { min-height: 42px; display: flex; align-items: center; justify-content: flex-start; gap: 9px; padding: 0 10px; border: 1px solid transparent; border-radius: 8px; cursor: pointer; white-space: nowrap; transition: background .16s ease, border-color .16s ease; }
.template-source-section label:hover { background: color-mix(in srgb, var(--green) 7%, var(--panel)); }
.template-source-section label:has(input:checked) { border-color: color-mix(in srgb, var(--green) 35%, var(--line)); background: var(--green-2); color: var(--ink); }
.template-source-section label:has(input:focus-visible) { outline: 2px solid color-mix(in srgb, var(--green) 34%, transparent); outline-offset: 1px; }
.template-source-section input[type="radio"] { width: 17px !important; min-width: 17px !important; height: 17px !important; min-height: 17px !important; margin: 0 !important; accent-color: var(--green); cursor: pointer; }
.template-field-drawer [data-template-config-body] { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 2px 2px 10px; }
.template-source-help { margin: 0 0 12px; color: var(--muted); line-height: 1.5; }
.template-option-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.template-option-head > div { display: grid; gap: 2px; }
.template-option-head span { color: var(--muted); font-size: 13px; }
.template-field-drawer footer { flex: 0 0 auto; display: flex; justify-content: flex-end; margin: 0 -20px -20px; padding: 12px 20px; border-top: 1px solid var(--line); background: var(--panel); box-shadow: 0 -8px 16px color-mix(in srgb, var(--panel) 86%, transparent); }
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-actions select { min-width: 0; width: 78px; padding-inline: 7px 22px; font-size: 12px; }
.field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-actions .ghost { flex: 0 0 auto; padding: 4px 7px; font-size: 12px; }
.field-editor .generic-field-more { position: relative; justify-self: center; overflow: visible; }
.field-options-editor { grid-column: 1 / -1; padding: 10px 0 2px 62px; opacity: 1; }
.field-options-editor[hidden] { display: none; }
.field-options-editor p { margin: 0 0 8px; }
.field-option-row { display: grid; grid-template-columns: minmax(140px, 1fr) auto 24px 28px; gap: 7px; align-items: center; padding: 6px 0; border-top: 1px solid var(--line); transition: box-shadow .18s ease, background .18s ease; }
.field-option-row label { display: flex; flex-direction: row; gap: 5px; justify-content: flex-start; white-space: nowrap; }
.field-option-row small { color: var(--muted); text-align: right; }
.drag-handle { width: 28px; min-height: 28px; padding: 0; border: 0; border-radius: 7px; color: var(--muted); background: transparent; cursor: grab; touch-action: none; font-size: 16px; line-height: 1; }
.drag-handle:hover, .drag-handle:focus-visible { color: var(--green); background: color-mix(in srgb, var(--green) 10%, var(--panel)); outline: none; }
.drag-handle:active { cursor: grabbing; }
.field-editor-row.is-sorting, .field-option-row.is-sorting { z-index: 2; opacity: .94; pointer-events: none; background: var(--panel); box-shadow: 0 10px 24px color-mix(in srgb, var(--text) 22%, transparent); cursor: grabbing; }
.part-template-filters { display: grid; grid-template-columns: minmax(220px, 1fr) 150px 180px; gap: 10px; margin: 0 0 14px; }
.part-template-form { grid-template-columns: 1fr; gap: 0; }
.part-template-form > .form-toggle-row { grid-column: 1 / -1; }
.part-template-field-head, .part-template-field-row { display: grid; grid-template-columns: 40px minmax(240px, 1.3fr) 118px 54px minmax(210px, .9fr) 28px 28px; gap: 12px; align-items: center; padding: 8px 14px; }
.part-template-field-head { min-height: 34px; background: color-mix(in srgb, var(--panel) 88%, var(--line)); color: var(--muted); font-size: 12px; text-align: center; border-radius: 10px 10px 0 0; }
.part-template-field-row { min-height: 46px; border-top: 1px solid var(--line); }
.part-template-field-row:hover { background: color-mix(in srgb, var(--green) 4%, var(--panel)); }
.part-template-field-row:last-of-type { border-radius: 0 0 10px 10px; }
.part-template-field-row > label { display: flex; align-items: center; justify-content: center; }
.part-template-field-row .part-template-field-config { min-width: 210px; }
.part-template-field-row .part-template-field-config :is(select, .field-config-trigger) { width: 100%; min-height: 40px; }
.part-template-field-row .part-field-more { justify-self: center; }
.part-template-empty-fields { padding: 16px; margin: 0; text-align: center; }
.part-field-mobile-actions { display: none; }
.part-field-dialog-mask { position: fixed; inset: 0; z-index: 45; display: grid; place-items: center; padding: 16px; background: rgba(19,31,24,.36); }
.part-field-dialog { width: min(420px, 100%); display: grid; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); box-shadow: 0 18px 48px rgba(0,0,0,.22); }
.part-field-dialog header, .part-field-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.part-field-dialog h3 { margin: 0; }
.icon-button { width: 32px; height: 32px; display: inline-grid; place-items: center; padding: 0; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--muted); }
.icon-button:hover, .icon-button:focus-visible { border-color: var(--line); background: color-mix(in srgb, var(--green) 8%, var(--panel)); color: var(--ink); outline: none; }
.icon-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.part-option-dialog .field-option-row { grid-template-columns: minmax(0, 1fr) auto 28px; padding: 9px 0; }
.part-option-dialog .field-option-row .field-check { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.part-option-dialog .field-option-row .field-check input { appearance: none; width: 17px !important; min-width: 17px !important; height: 17px !important; min-height: 17px !important; margin: 0 !important; border: 1px solid color-mix(in srgb, var(--muted) 48%, var(--line)); border-radius: 5px; background: var(--panel); cursor: pointer; }
.part-option-dialog .field-option-row .field-check input:checked { border-color: var(--green); background: var(--green) center / 10px 10px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.2 6.4 11.5 13 4.8' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.touch-dragging { opacity: .62; outline: 2px solid var(--green); touch-action: none; }
.row-actions { display: flex !important; align-items: center; justify-content: flex-end; gap: 6px; overflow: visible !important; white-space: normal !important; }
.row-actions button { white-space: nowrap; }
.danger-link { border: 0; background: transparent; color: #a3443b; cursor: pointer; }
.test-data-toggle { color: var(--muted); font-size: 13px; }
.test-data-badge, .inactive-tag { display: inline-block; margin-left: 6px; padding: 2px 6px; border-radius: 999px; background: color-mix(in srgb, #c58c24 14%, var(--panel)); color: #8a5c0d; font-size: 11px; font-style: normal; font-weight: 700; }
.is-test-data { background: color-mix(in srgb, #e4af4d 6%, var(--panel)); }
.test-data-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.test-data-panel h2 { margin: 2px 0 5px; }
.test-data-panel span { color: var(--muted); font-size: 13px; }
.dynamic-attributes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; padding: 12px 0; }
.master-image-preview { width: 92px; height: 92px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.daily-entry-form { gap: 14px; }
.entry-section { padding: 16px 0; border-bottom: 1px solid var(--line); }
.entry-section > h3, .entry-section > header h3 { margin: 0; font-size: 15px; }
.entry-section > header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; align-items: start; }
.entry-grid label, .entry-attribute { display: grid; gap: 6px; }
.entry-grid small, .entry-name small, .image-picker small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.entry-name { grid-column: 1 / -1; }
.entry-name .ghost { position: absolute; right: 8px; top: 30px; padding: 3px 7px; font-size: 12px; }
.entry-name { position: relative; }
.name-mode-tag { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 999px; background: color-mix(in srgb, var(--green) 9%, var(--panel)); color: var(--green) !important; font-weight: 700; }
.entry-attribute > span { display: flex; gap: 4px; align-items: baseline; }
.entry-attribute em { color: var(--muted); font-style: normal; font-size: 12px; }
.entry-meta { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 20px; }
.entry-code { display: grid; gap: 4px; align-content: start; color: var(--muted); font-size: 13px; font-weight: 800; }
.entry-code strong { color: var(--text); font-size: 14px; }
.entry-code small { font-weight: 500; color: var(--muted); }
.usage-tags { display: flex; flex-wrap: wrap; gap: 7px; min-height: 28px; align-items: center; }
.usage-tag { border: 0; border-radius: 999px; padding: 4px 10px; min-height: 28px; background: color-mix(in srgb, var(--green) 10%, var(--panel)); color: var(--text); cursor: pointer; font-size: 13px; }
.usage-tag b { font-size: 13px; margin-left: 2px; font-weight: 500; }
.usage-picker-dialog { position: fixed; z-index: 30; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: 0 14px 34px rgba(0,0,0,.18); }
.usage-picker-dialog[hidden] { display: none; }
.usage-picker-dialog-head, .usage-picker-dialog footer { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.usage-picker-dialog > input { width: 100%; margin: 10px 0; }
.usage-part-tree { max-height: 276px; overflow: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 5px 0; }
.usage-part-choice { position: relative; }
.usage-part-children { margin-left: 11px; border-left: 1px solid color-mix(in srgb, var(--green) 32%, var(--line)); }
.usage-part-children > .usage-part-choice::before { content: ""; position: absolute; top: 19px; left: -1px; width: 11px; border-top: 1px solid color-mix(in srgb, var(--green) 32%, var(--line)); }
.usage-part-children > .usage-part-choice:last-child::after { content: ""; position: absolute; top: 19px; bottom: 0; left: -1px; width: 1px; background: var(--panel); }
.usage-part-row { min-height: 38px; display: flex; align-items: center; gap: 0; padding-left: calc(var(--part-depth) * 22px); }
.usage-part-row:hover { background: color-mix(in srgb, var(--green) 5%, var(--panel)); }
.usage-part-toggle { width: 22px; height: 30px; flex: 0 0 22px; padding: 0; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 18px; line-height: 1; display: grid; place-items: center; }
.usage-part-toggle svg { width: 16px; height: 16px; }
.usage-part-toggle.is-placeholder { cursor: default; }
.usage-part-row label { min-width: 0; display: flex; flex: 1; align-items: center; justify-content: flex-start; gap: 8px; padding: 0 6px 0 0; color: var(--text); font-weight: 600; white-space: nowrap; }
.usage-part-row input[type="checkbox"] { appearance: none; box-sizing: border-box; width: 18px !important; min-width: 18px !important; max-width: 18px !important; height: 18px !important; min-height: 18px !important; max-height: 18px !important; margin: 0 !important; padding: 0 !important; border: 1px solid color-mix(in srgb, var(--muted) 48%, var(--line)); border-radius: 5px; background: var(--panel); cursor: pointer; }
.usage-part-row input[type="checkbox"]:checked { border-color: var(--green); background: var(--green) center / 10px 10px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.2 6.4 11.5 13 4.8' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.usage-part-row input[type="checkbox"]:disabled { cursor: not-allowed; opacity: .6; }
.usage-part-row input[type="checkbox"]:checked:disabled { opacity: .8; }
.usage-part-row label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.usage-part-row label small { margin-left: auto; overflow: hidden; color: var(--muted); font-size: 11px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.usage-picker-dialog footer { margin-top: 10px; }
.material-type-picker { position: relative; }
.material-type-trigger { width: 100%; min-height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--text); text-align: left; cursor: pointer; }
.material-type-dialog { width: min(420px, calc(100vw - 24px)); }
.material-type-branch { display: grid; }
.material-type-category { min-height: 36px; padding: 0 8px; border: 0; background: transparent; color: var(--muted); font-weight: 800; text-align: left; cursor: pointer; }
.material-type-category span { display: block; padding-left: calc(var(--part-depth) * 22px); }
.material-type-branch > [data-material-type-children] { margin-left: 11px; border-left: 1px solid color-mix(in srgb, var(--green) 32%, var(--line)); }
.material-type-branch > [data-material-type-children] > * { position: relative; }
.material-type-branch > [data-material-type-children] > *::before { content: ""; position: absolute; top: 19px; left: -1px; width: 11px; border-top: 1px solid color-mix(in srgb, var(--green) 32%, var(--line)); }
.material-type-branch > [data-material-type-children] > *:last-child::after { content: ""; position: absolute; top: 19px; right: auto; bottom: 0; left: -1px; width: 1px; background: var(--panel); }
.material-type-choice { min-height: 38px; display: flex; align-items: center; gap: 12px; padding: 0 10px 0 calc(16px + var(--part-depth) * 18px); border: 0; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.material-type-choice:hover { background: color-mix(in srgb, var(--green) 5%, var(--panel)); }
.material-type-choice small { color: var(--muted); font-size: 11px; }
.type-template-required { display: grid; gap: 6px; padding: 14px; border: 1px solid #e6c98d; border-radius: 10px; background: #fffaf0; color: #7d5b1c; }
.type-template-required span { color: var(--muted); font-size: 13px; }
.type-template-required .ghost { width: max-content; margin-top: 2px; }
.image-picker-row { display: flex; align-items: center; gap: 12px; min-height: 40px; }
.image-picker-row > div:last-child { display: grid; gap: 5px; }
.image-picker-body { width: 76px; height: 76px; display: grid; place-items: center; overflow: hidden; border: 1px dashed var(--line); border-radius: 8px; background: color-mix(in srgb, var(--panel) 92%, var(--line)); color: var(--muted); }
.image-picker-body img { width: 100%; height: 100%; object-fit: cover; }
.image-picker-actions { display: flex; gap: 8px; margin-top: 2px; }
.status-switch, .data-switch { display: inline-flex !important; grid-template-columns: auto auto !important; gap: 8px !important; align-items: center; color: var(--muted); line-height: 22px; }
.status-switch input, .data-switch input { position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; }
.switch-track { width: 38px; height: 22px; border-radius: 999px; background: var(--line); position: relative; cursor: pointer; }
.switch-track::after { content: ""; position: absolute; width: 16px; height: 16px; left: 3px; top: 3px; border-radius: 50%; background: var(--panel); transition: transform .16s; }
.status-switch input:checked + .switch-track, .data-switch input:checked + .switch-track { background: var(--green); }
.status-switch input:checked + .switch-track::after, .data-switch input:checked + .switch-track::after { transform: translateX(16px); }
.status-switch input:focus-visible + .switch-track, .data-switch input:focus-visible + .switch-track { outline: 2px solid var(--green); outline-offset: 2px; }
.data-switch { justify-content: flex-start !important; font-weight: 500 !important; }
.data-switch em { font-style: normal; font-size: 12px; min-width: 14px; }
.other-settings summary { cursor: pointer; color: var(--muted); }
.other-settings[open] summary { margin-bottom: 12px; }
.historical-fields summary { cursor: pointer; color: var(--muted); }
.historical-fields summary small { margin-left: 8px; font-weight: 500; }

/* SKU 适用部位继承徽标 */
.inherit-badge { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--green) 10%, var(--panel)); color: var(--green); font-size: 11px; font-style: normal; font-weight: 700; line-height: 1.5; }
.inherit-badge.is-custom { background: color-mix(in srgb, #c58c24 14%, var(--panel)); color: #8a5c0d; }
.inherit-unit { display: grid; grid-template-columns: auto auto 1fr; gap: 4px 12px; align-items: center; }
.inherit-unit > span { color: var(--muted); font-size: 13px; font-weight: 700; }
.inherit-unit > strong { font-size: 14px; }
.inherit-unit > .inherit-badge { justify-self: start; margin-left: 0; }
.inherit-unit > small { grid-column: 1 / -1; color: var(--muted); font-size: 12px; line-height: 1.4; }
.usage-inherit > header .inherit-badge { margin-left: 0; }
.usage-inherit .usage-picker { padding: 0; border: 0; margin-top: 12px; }
.usage-inherit-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.entry-status { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; font-weight: 800; }
.historical-attributes { border-bottom: 0; padding: 12px 14px; border-radius: 8px; background: color-mix(in srgb, #c58c24 5%, var(--panel)); }
.historical-attributes h3 { margin: 0 0 4px; font-size: 14px; }
.historical-attributes p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }

.other-settings textarea { width: min(100%, 620px); min-height: 88px; }
.daily-entry-form { padding-bottom: 72px; }
.daily-entry-form { padding-bottom: 96px; }
.sticky-entry-actions { position: fixed; right: 0; bottom: 0; left: 236px; z-index: 15; min-height: 64px; margin: 0; padding: 12px 24px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 97%, transparent); box-shadow: 0 -8px 18px color-mix(in srgb, var(--panel) 70%, transparent); backdrop-filter: blur(8px); justify-content: flex-end; }
.warehouse-editor-page .warehouse-edit-form { padding-bottom: 96px; }
.warehouse-editor-page .warehouse-edit-form > .actions.wide:last-child { position: fixed; right: 0; bottom: 0; left: 236px; z-index: 15; min-height: 64px; margin: 0; padding: 12px 24px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 97%, transparent); box-shadow: 0 -8px 18px color-mix(in srgb, var(--panel) 70%, transparent); backdrop-filter: blur(8px); justify-content: flex-end; }
.sticky-entry-actions .primary:disabled { opacity: .5; cursor: not-allowed; }
.text-back { padding: 4px 0; border: 0; background: transparent; color: var(--muted); font-weight: 700; cursor: pointer; }
.text-back:hover { color: var(--text); }
.attribute-input { position: relative; display: block; }
.attribute-input input { padding-right: 42px; }
.attribute-input i { position: absolute; right: 11px; top: 50%; transform: translateY(-50%); color: var(--muted); font-style: normal; font-size: 13px; pointer-events: none; }
.attribute-input input[type="number"] { appearance: textfield; }
.attribute-input input[type="number"]::-webkit-outer-spin-button, .attribute-input input[type="number"]::-webkit-inner-spin-button { appearance: none; margin: 0; }
.warehouse-notice { position: fixed; z-index: 100; left: 50%; bottom: 28px; transform: translateX(-50%); padding: 10px 14px; border-radius: 8px; color: #fff; background: #263b31; box-shadow: 0 8px 24px rgba(0,0,0,.22); }
.app-dialog-mask { position: fixed; inset: 0; z-index: 130; display: grid; place-items: center; padding: 24px; background: color-mix(in srgb, var(--ink) 36%, transparent); }
.app-dialog { width: min(420px, 100%); max-height: calc(100vh - 48px); overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); box-shadow: 0 24px 64px color-mix(in srgb, var(--ink) 22%, transparent); padding: 22px; }
.app-dialog h2 { margin: 0; color: var(--ink); font-size: 18px; }
.app-dialog p { margin: 10px 0 0; color: var(--muted); line-height: 1.6; }
.app-dialog-field { display: grid; gap: 8px; margin-top: 14px; }
.app-dialog-field span { color: var(--muted); font-size: 13px; }
.app-dialog-field input, .app-dialog-field select { width: 100%; }
.app-dialog footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }
.app-dialog footer button { width: 96px; min-width: 96px; height: 40px; min-height: 40px; padding: 0 12px; }
@media (max-width: 760px) {
  .app-dialog-mask { align-items: end; padding: 0; }
  .app-dialog { width: 100%; max-height: 88vh; border-radius: 16px 16px 0 0; padding-bottom: max(22px, env(safe-area-inset-bottom)); }
  .app-dialog footer { position: sticky; bottom: 0; padding-bottom: env(safe-area-inset-bottom); background: var(--panel); }
}
.material-sku-summary button[data-master-edit-kind] { display: grid; grid-template-columns: 112px 1fr; text-align: left; border: 0; border-top: 1px solid var(--line); padding: 8px 0; background: transparent; color: var(--text); cursor: pointer; }
.material-sku-summary { display: grid; gap: 7px; padding: 12px; background: color-mix(in srgb, var(--green) 4%, var(--panel)); border-radius: 8px; }
.material-sku-summary header { display: flex; align-items: center; justify-content: space-between; }
.material-sku-summary span { color: var(--muted); font-size: 13px; }
.advanced-settings { border-top: 1px solid var(--line); padding-top: 8px; }
.advanced-settings summary { cursor: pointer; color: var(--muted); }

.panel .stats-strip {
  margin-bottom: 16px;
}

.panel .stats-strip div {
  border-color: var(--line);
  background: #f7f8f5;
}

.stats-strip strong {
  display: block;
  font-size: 24px;
}

.stats-strip span {
  color: inherit;
  opacity: 0.75;
  font-size: 12px;
}

.primary,
.icon-link,
.danger,
.danger.solid,
.items-header button,
.quick-row button,
.shortcut-group button,
.category-row button {
  border: 1px solid #cbd6d0;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  text-decoration: none;
}

.primary {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
  font-weight: 800;
}

.danger {
  border-color: #e4c5c1;
  background: #fff4f2;
  color: var(--red);
}

.danger.solid {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
  font-weight: 800;
}

.danger.solid:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.category-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.category-row button {
  min-height: 34px;
  font-size: 13px;
}

.category-row button.active {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

.template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(245px, 1fr));
  gap: 10px;
  max-height: 390px;
  overflow: auto;
  padding-right: 4px;
}

.template-card,
.library-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  text-align: left;
  padding: 13px;
  display: grid;
  gap: 6px;
}

.template-card:hover,
.template-card.selected,
.library-card:hover {
  border-color: var(--green);
  background: var(--green-2);
}

.template-card span,
.library-card em {
  color: var(--gold);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.template-card strong,
.library-card strong {
  line-height: 1.35;
}

.template-card em,
.template-card small,
.library-card span,
.library-card small {
  color: var(--muted);
  font-style: normal;
  line-height: 1.35;
}

.library-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 12px;
}

.template-list .library-card {
  min-height: 150px;
}

.template-row {
  display: grid;
  gap: 8px;
}

.manage-template-card {
  position: relative;
  padding-right: 48px;
}

.manage-template-card.selected {
  border-color: var(--green);
  background: var(--green-2);
}

.template-select-box {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 20px;
  height: 20px;
  min-height: 0;
  margin: 0;
}

.step-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.step-title > span {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--green);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}

.step-title p {
  margin: 0 0 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}

.choice-grid,
.choice-list {
  display: grid;
  gap: 10px;
}

.base-grid {
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

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

.choice-section,
.multi-section {
  display: grid;
  gap: 8px;
  align-content: start;
}

.choice-section h3,
.multi-section h3 {
  margin: 0;
  color: var(--green);
  font-size: 15px;
}

.choice-section.horizontal,
.multi-section.horizontal {
  border-top: 1px solid var(--line);
  padding-top: 13px;
}

.choice-section.horizontal:first-child,
.multi-section.horizontal:first-child {
  border-top: 0;
  padding-top: 0;
}

.multi-section h3 {
  display: flex;
  align-items: center;
  gap: 8px;
}

.multi-section h3 b {
  min-width: 24px;
  height: 24px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--green-2);
  color: var(--green);
  font-size: 13px;
}

.choice-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 11px;
  display: grid;
  gap: 4px;
  text-align: left;
}

.chip-grid,
.check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
  gap: 8px;
}

.template-strip .choice-card,
.chip-grid .choice-card {
  min-height: 82px;
}

.chip-grid .choice-card {
  padding: 10px;
}

.chip-grid .choice-card span {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.choice-card.selected,
.choice-card:hover {
  border-color: var(--green);
  background: var(--green-2);
}

.choice-card span,
.choice-card em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.35;
}

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

.check-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  display: grid;
  grid-template-columns: 18px 1fr auto;
  gap: 9px;
  align-items: start;
  padding: 10px;
  font-weight: 400;
}

.check-grid .check-card {
  min-height: 88px;
  grid-template-columns: 18px minmax(0, 1fr);
  grid-template-areas:
    "box text"
    "box price";
}

.check-grid .check-card input {
  grid-area: box;
}

.check-grid .check-card span {
  grid-area: text;
}

.check-grid .check-card em {
  grid-area: price;
  justify-self: start;
}

.check-grid .check-card small {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.check-card:has(input:checked) {
  border-color: var(--green);
  background: var(--green-2);
}

.check-card input {
  min-height: auto;
  margin-top: 3px;
}

.check-card span {
  display: grid;
  gap: 3px;
}

.check-card small,
.check-card em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.35;
}

.custom-size-inline {
  margin-top: 12px;
}

.custom-size-inline label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-weight: 800;
}

.template-picker {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(154px, 1fr));
  gap: 8px;
  margin-top: 18px;
  min-width: 0;
}

.template-picker-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfa;
  overflow: hidden;
  min-width: 0;
}

.template-picker-head {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--ink);
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  text-align: left;
}

.template-picker-head span {
  font-weight: 900;
}

.template-picker-head small {
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.template-picker-head b {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--green-2);
  color: var(--green);
}

.template-picker-section.open .template-picker-head {
  background: var(--green-2);
}

.template-option-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(126px, 1fr));
  gap: 8px;
  padding: 12px;
  border-top: 1px solid var(--line);
  min-width: 0;
}

.template-option-tile {
  min-height: 92px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 10px;
  text-align: left;
  min-width: 0;
}

.template-option-tile.selected,
.template-option-tile:hover {
  border-color: var(--green);
  background: var(--green-2);
}

.template-option-tile span,
.template-option-tile em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.35;
}

.form-grid.compact {
  grid-template-columns: minmax(0, 1fr);
}

.save-order {
  margin-top: 16px;
}

.summary-card dl {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 9px 12px;
  margin: 14px 0 0;
}

.order-side-panel,
.selected-overview {
  display: grid;
  grid-template-rows: auto minmax(0, auto) minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
  height: 100%;
  overflow: auto;
}

.order-side-panel.show-preview {
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.order-side-panel header,
.selected-overview header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 0 0 auto;
}

.order-side-panel header p,
.selected-overview header p {
  margin: 0 0 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}

.side-toggle,
.selected-overview header span {
  border: 0;
  border-radius: 8px;
  background: var(--green-2);
  color: var(--green);
  font-weight: 900;
  padding: 7px 10px;
  min-height: 34px;
}

.order-side-panel dl,
.selected-overview dl {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 8px 10px;
  margin: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
}

.order-side-panel dt,
.selected-overview dt {
  color: var(--muted);
  font-weight: 900;
}

.order-side-panel dd,
.selected-overview dd {
  margin: 0;
  line-height: 1.4;
}

.side-preview-scroll {
  min-height: 0;
  overflow: auto;
  padding-bottom: 24px;
}

.side-preview-scroll .print-sheet {
  zoom: 1.12;
  margin: 0 auto 48px;
}

.selected-groups {
  display: grid;
  gap: 10px;
}

.selected-groups section {
  display: grid;
  gap: 6px;
}

.selected-jump {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfa;
  color: var(--green);
  min-height: 34px;
  padding: 0 9px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  text-align: left;
}

.selected-jump strong {
  font-size: 13px;
}

.selected-jump i {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.selected-jump:hover {
  border-color: var(--green);
  background: var(--green-2);
}

.selected-groups div {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.selected-groups span,
.selected-groups em {
  border-radius: 8px;
  background: #f4f6f2;
  color: var(--ink);
  padding: 5px 8px;
  font-size: 12px;
  font-style: normal;
  line-height: 1.25;
}

.selected-groups em {
  color: var(--muted);
}

.summary-card dt {
  color: var(--muted);
  font-weight: 900;
}

.summary-card dd {
  margin: 0;
  line-height: 1.45;
}

.options-layout {
  display: grid;
  grid-template-columns: 420px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.option-form {
  position: sticky;
  top: 24px;
  max-width: 100%;
  min-width: 0;
}

.option-manager-list {
  display: grid;
  gap: 18px;
}

.option-manager-list section {
  display: grid;
  gap: 8px;
}

.option-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px 64px;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #fff;
}

.option-row div {
  display: grid;
  gap: 3px;
}

.option-row span,
.option-row small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.option-row button,
.row-actions button,
.ghost {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  min-height: 36px;
  color: var(--ink);
  padding: 0 12px;
}

.option-row .danger,
.row-actions .danger {
  color: var(--red);
  background: #fff4f2;
  border-color: #e4c5c1;
}

.ghost {
  margin-top: 12px;
  padding: 0 14px;
}

.row-actions .ghost { margin-top: 0; }
.secondary {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  font-weight: 600;
}
.ghost.link {
  margin-top: 0;
  border: 0;
  background: transparent;
  color: var(--green);
  font-weight: 600;
  min-height: 32px;
  padding: 0;
}
.ghost.danger-link {
  margin-top: 0;
  border: 0;
  background: transparent;
  color: var(--red);
  font-weight: 600;
  min-height: 32px;
  padding: 0;
}

button.row-icon-btn,
summary.row-icon-btn {
  width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
}
button.row-icon-btn:hover, button.row-icon-btn:focus-visible,
summary.row-icon-btn:hover, summary.row-icon-btn:focus-visible {
  border-color: var(--line);
  background: color-mix(in srgb, var(--green) 8%, var(--panel));
  color: var(--ink);
  outline: none;
}
button.row-icon-btn svg,
summary.row-icon-btn svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}
button.row-icon-btn.danger-link, button.row-icon-btn.danger {
  color: var(--red);
  background: transparent;
  border-color: transparent;
}
button.row-icon-btn.danger-link:hover, button.row-icon-btn.danger:hover {
  background: color-mix(in srgb, var(--red) 10%, var(--panel));
  color: var(--red);
}

.actions .ghost {
  margin-top: 0;
}

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

.smart-paste-box {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--green-2) 45%, var(--panel));
}

.smart-paste-box label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.smart-paste-box textarea {
  min-height: 72px;
  resize: vertical;
}

.smart-paste-actions,
.smart-paste-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.smart-paste-status {
  color: var(--muted);
  font-size: 13px;
}

.smart-paste-result {
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.smart-paste-result.hidden {
  display: none;
}

.form-grid.wide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 18px;
}

label {
  display: grid;
  gap: 6px;
  color: #526058;
  font-size: 13px;
  font-weight: 800;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid #cfd6cf;
  border-radius: 6px;
  background: #fbfcfa;
  color: var(--ink);
  min-height: 40px;
  padding: 8px 10px;
}

textarea {
  min-height: 76px;
  resize: vertical;
  white-space: pre-wrap;
}

.quick-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.items-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 22px 0 10px;
}

.items-table {
  display: grid;
  gap: 8px;
}

.item-row {
  display: grid;
  grid-template-columns: 1.1fr 2fr 80px 90px 56px;
  gap: 8px;
}

.item-row button {
  border: 1px solid #e4c5c1;
  background: #fff4f2;
  border-radius: 6px;
  color: var(--red);
}

.total-line {
  margin-top: 16px;
  text-align: right;
  font-size: 20px;
}

.shortcut-panel h2,
.preview-panel h2,
.mini-list h2 {
  margin-bottom: 14px;
}

.shortcut-group {
  display: grid;
  gap: 8px;
  margin-bottom: 18px;
}

.shortcut-group p {
  margin: 0;
  color: var(--muted);
  font-weight: 900;
}

.shortcut-group button {
  justify-content: flex-start;
  min-height: 36px;
  font-size: 13px;
}

.search,
#template-search,
#library-search {
  max-width: 420px;
  direction: ltr;
  unicode-bidi: plaintext;
}

.order-list {
  display: grid;
  gap: 10px;
}

.order-filters {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 150px 150px 170px;
  gap: 10px;
  margin-bottom: 16px;
}

.order-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 8px;
  text-align: left;
}

.order-card.manage {
  grid-template-columns: 28px minmax(0, 1fr) auto;
}

.order-card.selected {
  border-color: var(--green);
  background: var(--green-2);
}

.order-select-box {
  width: 18px;
  height: 18px;
  justify-self: center;
}

.order-card:hover {
  border-color: var(--green);
}

.order-card.printed {
  background: #f4f5f2;
  border-color: #e4e7e1;
  color: #616a64;
  opacity: 0.82;
}

.order-card.printed .order-card-main {
  color: #616a64;
}

.order-card-main {
  border: 0;
  background: transparent;
  color: var(--ink);
  display: grid;
  grid-template-columns: 104px 130px minmax(150px, 1fr) 140px 90px 70px;
  gap: 12px;
  align-items: center;
  min-height: 42px;
  padding: 8px;
  text-align: left;
}

.order-card-main:hover {
  background: var(--green-2);
}

.order-card-main i {
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  color: var(--muted);
  opacity: 0.72;
  text-align: center;
}

.order-card-main i.fresh {
  color: var(--muted);
}

.order-actions {
  display: flex;
  gap: 6px;
}

.order-actions button {
  width: 36px;
  min-height: 36px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--muted);
  line-height: 1;
}

.order-actions button:hover {
  border-color: var(--green);
  background: var(--green-2);
  color: var(--green);
}

.order-actions svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.order-actions button.danger {
  color: #9b4a4a;
}

.order-actions button.danger:hover {
  border-color: #d8b8b8;
  background: #f9eeee;
  color: #9b2f2f;
}

.order-card em,
.order-card small,
.mini-list span {
  color: var(--muted);
  font-style: normal;
}

.order-item-editor {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

.order-edit-page {
  display: grid;
  gap: 12px;
}

.order-edit-toolbar {
  align-items: center;
  position: sticky;
  top: -24px;
  z-index: 20;
  width: calc(100% + 48px);
  margin: -24px -24px 0;
  padding: 12px 24px;
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--ink) 8%, transparent);
}

.order-edit-toolbar h1 {
  font-size: 28px;
}

.order-edit-toolbar p {
  margin: 0 0 2px;
}

.order-edit-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
  gap: 18px;
  align-items: start;
}

.order-edit-form {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.edit-sheet-fields {
  display: grid;
  gap: 12px;
}

.edit-sheet-fields h2,
.order-item-editor h2 {
  margin: 0;
  font-size: 20px;
}

.edit-field-row {
  display: grid;
  gap: 10px;
}

.edit-field-row.four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.edit-field-row.customer {
  grid-template-columns: minmax(0, 1.1fr) minmax(120px, 0.8fr) 90px minmax(0, 1fr);
}

.edit-field-row.footer {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 140px;
}

.order-item-edit-head,
.order-item-edit-row {
  display: grid;
  grid-template-columns: 1fr 1.8fr 92px 78px 38px;
  gap: 8px;
  align-items: center;
}

.order-item-edit-head {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  padding: 0 4px;
}

.order-item-edit-row button {
  min-height: 36px;
  border: 1px solid #e4c5c1;
  border-radius: 8px;
  background: #fff4f2;
  color: var(--red);
}

.order-edit-preview {
  position: sticky;
  top: 18px;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 8px;
  max-height: calc(100vh - 24px);
  min-height: 0;
}

.order-edit-preview header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.order-edit-preview header p,
.order-edit-preview header h2 {
  margin: 0;
}

.order-edit-preview header p {
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}

.order-edit-preview header h2 {
  font-size: 20px;
}

.edit-mode-toggle {
  display: flex;
  gap: 6px;
}

.edit-mode-toggle button {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  min-height: 34px;
  padding: 0 10px;
}

.edit-mode-toggle button.active {
  border-color: var(--green);
  background: var(--green-2);
  color: var(--green);
  font-weight: 900;
}

.manual-toolbar {
  display: flex;
  justify-content: flex-end;
  min-height: 0;
}

.manual-toolbar.hidden {
  display: none;
}

.layout-actions-menu {
  position: relative;
}

.layout-actions-menu summary {
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  font-weight: 800;
  list-style: none;
}

.layout-actions-menu summary::-webkit-details-marker {
  display: none;
}

.layout-actions-menu summary::after {
  content: "⌄";
  margin-left: 8px;
}

.layout-actions-menu[open] summary {
  border-color: var(--green);
  color: var(--green);
}

.layout-actions-menu-panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 8;
  display: grid;
  gap: 8px;
  width: 238px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  box-shadow: 0 12px 28px color-mix(in srgb, var(--ink) 16%, transparent);
}

.layout-actions-menu-panel .ghost,
.layout-actions-menu-panel select {
  width: 100%;
  margin: 0;
}

.layout-actions-menu-panel label {
  gap: 5px;
  font-size: 12px;
}

.order-edit-preview-body {
  min-height: 0;
  overflow: auto;
  padding: 0 0 12px;
}

.order-edit-preview-body .print-sheet {
  zoom: 1.04;
}


.order-detail {
  display: grid;
  justify-items: center;
}

.order-detail .section-header {
  justify-self: stretch;
  width: 100%;
}

.settings-page {
  display: grid;
  align-content: start;
  gap: 18px;
}

.login-page {
  min-height: calc(100vh - 48px);
  display: grid;
  place-items: center;
}

.login-card {
  width: min(420px, 100%);
}

.settings-section {
  display: grid;
  gap: 14px;
}

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

.theme-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 6px 14px;
  min-height: 112px;
  padding: 16px;
  text-align: left;
}

.theme-card.selected {
  border-color: var(--green);
  background: var(--green-2);
}

.theme-card strong,
.theme-card small {
  grid-column: 2;
}

.theme-card small {
  color: var(--muted);
  line-height: 1.45;
}

.theme-swatch {
  grid-row: 1 / span 2;
  width: 48px;
  height: 48px;
  border-radius: 8px;
  border: 1px solid var(--line);
}

.theme-swatch.green {
  background: linear-gradient(135deg, #17231e 0 50%, #285a48 50% 100%);
}

.theme-swatch.red {
  background: linear-gradient(135deg, #281618 0 50%, #8f2d35 50% 100%);
}

.permission-section {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.auth-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  display: grid;
  gap: 12px;
  max-width: 720px;
  padding: 16px;
}

.auth-card p,
.permission-note {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
}

.auth-status {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--green-2);
  color: var(--green);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  max-width: 720px;
  padding: 14px 16px;
}

.user-list {
  display: grid;
  gap: 8px;
  max-width: 720px;
}

.user-row {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 12px;
}

.user-row div {
  display: grid;
  gap: 2px;
}

.user-row span {
  color: var(--muted);
  font-size: 13px;
}

.permission-note {
  display: grid;
  gap: 4px;
}

:root[data-theme="red"] .workspace {
  background: var(--app-bg);
}

:root[data-theme="red"] .panel,
:root[data-theme="red"] .hero-panel,
:root[data-theme="red"] .order-card,
:root[data-theme="red"] .order-actions button,
:root[data-theme="red"] .library-card,
:root[data-theme="red"] .choice-card,
:root[data-theme="red"] .order-option-tile,
:root[data-theme="red"] .template-option-tile,
:root[data-theme="red"] .option-row,
:root[data-theme="red"] .auth-card,
:root[data-theme="red"] .user-row,
:root[data-theme="red"] .theme-card,
:root[data-theme="red"] .summary-card,
:root[data-theme="red"] .order-side-panel,
:root[data-theme="red"] .order-edit-preview,
:root[data-theme="red"] .selected-jump,
:root[data-theme="red"] .side-toggle,
:root[data-theme="red"] .order-accordion-section,
:root[data-theme="red"] .template-picker-section,
:root[data-theme="red"] .warehouse-table-wrap,
:root[data-theme="red"] .warehouse-edit-form,
:root[data-theme="red"] .warehouse-form,
:root[data-theme="red"] .check-card {
  background: var(--panel);
  color: var(--ink);
}

:root[data-theme="red"] .panel,
:root[data-theme="red"] .hero-panel {
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34);
}

:root[data-theme="red"] input,
:root[data-theme="red"] select,
:root[data-theme="red"] textarea {
  background: #151213;
  border-color: #4a3a3c;
  color: var(--ink);
}

:root[data-theme="red"] .order-template-global .order-accordion-head span {
  background: #211719;
  border-color: #5b3337;
  color: #f2c8cc;
}

:root[data-theme="red"] label {
  color: #d7cac8;
}

:root[data-theme="red"] .warehouse-table th {
  background: #211719;
  color: #f2c8cc;
}

:root[data-theme="red"] .warehouse-table td {
  background: var(--panel);
}

:root[data-theme="red"] .warehouse-table tr.low td {
  background: #2a181b;
}

:root[data-theme="red"] .panel .stats-strip div,
:root[data-theme="red"] .selected-overview header span,
:root[data-theme="red"] .side-toggle,
:root[data-theme="red"] .order-card-main:hover,
:root[data-theme="red"] .choice-card.selected,
:root[data-theme="red"] .choice-card:hover,
:root[data-theme="red"] .home-entry-card.primary-entry,
:root[data-theme="red"] .home-entry-card:hover,
:root[data-theme="red"] .module-tabs button:hover,
:root[data-theme="red"] .module-tabs button.active,
:root[data-theme="red"] .shortcut-grid button:hover,
:root[data-theme="red"] .order-option-tile.selected,
:root[data-theme="red"] .order-option-tile:hover,
:root[data-theme="red"] .template-option-tile.selected,
:root[data-theme="red"] .template-option-tile:hover,
:root[data-theme="red"] .template-card.selected,
:root[data-theme="red"] .manage-template-card.selected,
:root[data-theme="red"] .check-card:has(input:checked),
:root[data-theme="red"] .theme-card.selected,
:root[data-theme="red"] .auth-status,
:root[data-theme="red"] .order-actions button:hover {
  background: var(--green-2);
  border-color: var(--green);
  color: var(--ink);
}

:root[data-theme="red"] .primary {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

:root[data-theme="red"] .icon-link,
:root[data-theme="red"] .ghost,
:root[data-theme="red"] .edit-mode-toggle button,
:root[data-theme="red"] .option-row button,
:root[data-theme="red"] .row-actions button,
:root[data-theme="red"] .module-tabs button,
:root[data-theme="red"] .shortcut-grid button {
  background: #211b1c;
  border-color: var(--line);
  color: var(--ink);
}

:root[data-theme="red"] .edit-mode-toggle button.active {
  background: var(--green-2);
  border-color: var(--green);
  color: var(--ink);
}


:root[data-theme="red"] .home-entry-card,
:root[data-theme="red"] .warehouse-row,
:root[data-theme="red"] .warehouse-placeholder,
:root[data-theme="red"] .dashboard-search,
:root[data-theme="red"] .dashboard-module-card,
:root[data-theme="red"] .dashboard-list-row,
:root[data-theme="red"] .dashboard-status-grid div,
:root[data-theme="red"] .planned-list div {
  background: var(--panel);
  border-color: var(--line);
  color: var(--ink);
}

:root[data-theme="red"] .dashboard-list-row:hover,
:root[data-theme="red"] .dashboard-module-card:hover {
  background: var(--green-2);
  border-color: var(--green);
}

:root[data-theme="red"] .dashboard-list-row.warning {
  background: #2a181b;
  border-color: #6f3339;
}

:root[data-theme="red"] .dashboard-search input {
  background: transparent;
}

:root[data-theme="red"] .order-card.printed {
  background: #1f1d1d;
  border-color: #312a2b;
  color: #9f9391;
  opacity: 0.72;
}

:root[data-theme="red"] .order-card.printed .order-card-main,
:root[data-theme="red"] .order-card em,
:root[data-theme="red"] .order-card small,
:root[data-theme="red"] .selected-groups span,
:root[data-theme="red"] .selected-groups em,
:root[data-theme="red"] .choice-card span,
:root[data-theme="red"] .choice-card em,
:root[data-theme="red"] .order-option-tile span,
:root[data-theme="red"] .order-option-tile em,
:root[data-theme="red"] .template-option-tile span,
:root[data-theme="red"] .template-option-tile em,
:root[data-theme="red"] .option-row span,
:root[data-theme="red"] .option-row small,
:root[data-theme="red"] .theme-card small,
:root[data-theme="red"] .auth-card p,
:root[data-theme="red"] .permission-note {
  color: var(--muted);
}

:root[data-theme="red"] .home-hero {
  background:
    linear-gradient(135deg, rgba(93, 32, 40, 0.96), rgba(32, 25, 27, 0.94)),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.08) 0 1px, transparent 1px 12px);
}

:root[data-theme="red"] .home-entry-card span,
:root[data-theme="red"] .warehouse-row b {
  color: var(--green);
}

:root[data-theme="red"] .warehouse-row.low {
  background: #2a181b;
  border-color: #6f3339;
}

:root[data-theme="red"] .print-sheet {
  background: #fffdfa;
  color: #000;
}

:root[data-theme="red"] .sheet-row,
:root[data-theme="red"] .sheet-head,
:root[data-theme="red"] .sheet-item,
:root[data-theme="red"] .sheet-footer,
:root[data-theme="red"] .print-sheet {
  border-color: #111;
}

.mini-list {
  display: grid;
  gap: 8px;
}

.mini-list button {
  color: var(--ink);
  border: 1px solid var(--line);
  display: grid;
  gap: 2px;
}

.mini-list button.active {
  border-color: var(--green);
  background: var(--green-2);
}

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

.preview-panel {
  overflow: auto;
  max-height: none;
  flex: 1 1 auto;
  min-height: 0;
  overscroll-behavior: contain;
  padding-bottom: 24px;
}

.preview-panel .print-sheet {
  zoom: 1.12;
  margin: 0 auto 48px;
}

.print-sheet {
  width: 76mm;
  height: 127mm;
  margin: 0 auto;
  border: 0.45mm solid #111;
  color: #000;
  background: var(--paper);
  font-family: "Microsoft YaHei", SimHei, sans-serif;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.manual-print-root {
  width: 76mm;
  height: 127mm;
  margin: 0 auto;
  overflow: hidden;
  background: #fffdfa;
  color: #000;
  font-family: "Microsoft YaHei", SimHei, sans-serif;
}

.manual-print-root table {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
  height: 100%;
}

.manual-print-root td,
.manual-print-root th {
  border: 0.45mm solid #111;
  padding: 0.5mm 0.8mm;
  font-size: 2.8mm;
  line-height: 1.12;
  vertical-align: middle;
  word-break: break-all;
}

.manual-print-root .manual-title {
  font-size: 4.2mm;
  font-weight: 900;
  text-align: center;
}

.print-sheet h2 {
  text-align: center;
  font-size: 4.2mm;
  line-height: 1.18;
  border-bottom: 0.45mm solid #111;
}

.sheet-row,
.sheet-head,
.sheet-item,
.sheet-footer {
  display: grid;
  border-bottom: 0.45mm solid #111;
  flex: 0 0 auto;
}

.sheet-row {
  grid-template-columns: 12mm 1fr;
}

.sheet-row.four {
  grid-template-columns: 12mm 26mm 12mm 25mm;
}

.sheet-row.four.date-row {
  grid-template-columns: 12mm 25mm 12mm 26mm;
}

.sheet-row.four.customer-row {
  grid-template-columns: 12mm 18mm 12mm 33mm;
}

.sheet-row.tall span {
  min-height: 6.8mm;
  white-space: pre-wrap;
}

.sheet-row b,
.sheet-row span,
.sheet-head b,
.sheet-item span,
.sheet-item b,
.sheet-footer b,
.sheet-footer span {
  min-height: 4.8mm;
  padding: 0.32mm 0.8mm;
  border-right: 0.45mm solid #111;
  font-size: 2.8mm;
  line-height: 1.08;
}

.sheet-row b {
  text-align: center;
}

.sheet-row span:last-child,
.sheet-head b:last-child,
.sheet-item b,
.sheet-footer span {
  border-right: 0;
}

.sheet-head,
.sheet-item {
  grid-template-columns: 1fr 14mm;
}

.sheet-head b,
.sheet-item b {
  text-align: center;
}

.sheet-item span {
  text-align: right;
}

.sheet-item.total span,
.sheet-item.total b {
  font-weight: 900;
}

.sheet-footer {
  grid-template-columns: 1fr 12mm 18mm;
  margin-top: auto;
  border-top: 0.45mm solid #111;
  border-bottom: 0;
  box-shadow: none;
}

@media print {
  @page {
    size: 76mm 127mm;
    margin: 0;
  }

  .sidebar,
  .section-header,
  .mini-list {
    display: none;
  }

  .app-shell,
  .worker-layout {
    display: block;
  }

  .workspace,
  .panel {
    padding: 0;
    border: 0;
    box-shadow: none;
  }

  body {
    background: #fff;
  }
}

@media (max-width: 1180px) {
  .modular-workbench,
  .order-layout,
  .home-hero,
  .home-entry-grid,
  .dashboard-topbar,
  .dashboard-hero,
  .dashboard-operations,
  .warehouse-grid,
  .order-edit-layout,
  .options-layout,
  .page-grid,
  .worker-layout {
    grid-template-columns: 1fr;
  }

  .app-shell {
    height: auto;
    overflow: visible;
  }

  .dashboard-module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workbench-side,
  .order-side,
  .order-edit-preview,
  .option-form {
    position: static;
  }

  .workspace {
    height: auto;
    overflow: visible;
  }

  .order-edit-toolbar {
    top: -24px;
  }

  .order-page,
  .order-layout {
    min-height: auto;
    height: auto;
  }

  .order-config {
    overflow: visible;
    padding-right: 0;
  }

  .order-side {
    max-height: none;
    overflow: hidden;
    padding-right: 4px;
  }

  .preview-panel {
    max-height: calc(100vh - 96px);
  }

  .side-preview-scroll {
    max-height: calc(100vh - 132px);
  }

  .preview-panel .print-sheet,
  .side-preview-scroll .print-sheet {
    zoom: 1;
    margin-bottom: 48px;
  }
}

@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    height: auto;
    position: sticky;
    z-index: 2;
  }

  nav {
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
  }

  nav.warehouse-nav {
    grid-template-columns: 1fr;
  }

  .hero-panel,
  .order-topbar,
  .section-header,
  .picker-head {
    align-items: stretch;
    flex-direction: column;
  }

  .form-grid,
  .form-grid.wide,
  .warehouse-filters,
  .warehouse-edit-form,
  .warehouse-form,
  .order-filters,
  .order-card,
  .order-card-main,
  .order-item-edit-row,
  .order-item-edit-head,
  .edit-field-row.four,
  .edit-field-row.customer,
  .edit-field-row.footer,
  .manual-toolbar,
  .theme-options,
  .user-row,
  .option-columns,
  .multi-columns,
  .template-picker-head {
    grid-template-columns: 1fr;
  }

  .item-row {
    grid-template-columns: 1fr;
  }

  .module-tabs {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 2px;
  }

  .module-tabs button {
    flex: 0 0 auto;
  }

  .warehouse-row {
    grid-template-columns: 1fr;
  }

  .warehouse-table {
    min-width: 0;
  }

  .warehouse-table thead {
    display: none;
  }

  .warehouse-table,
  .warehouse-table tbody,
  .warehouse-table tr,
  .warehouse-table td {
    display: block;
    width: 100%;
  }

  .warehouse-table tr {
    border-bottom: 1px solid var(--line);
  }

  .warehouse-table td {
    border-bottom: 0;
    padding: 9px 12px;
  }

  .warehouse-table td:last-child {
    padding-bottom: 14px;
  }

  .warehouse-table span {
    max-width: none;
  }
}

@media (max-width: 680px) {
  .workspace {
    padding: 14px;
  }

  .order-edit-toolbar {
    top: -14px;
    width: calc(100% + 28px);
    margin: -14px -14px 0;
    padding: 14px;
  }

  .dashboard-module-grid,
  .dashboard-status-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    padding-bottom: 0;
  }

  .dashboard-actions button {
    width: 100%;
    min-width: 0;
  }

  .dashboard-card-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .dashboard-card-actions button,
  .dashboard-card-actions .ghost {
    width: 100%;
    margin-top: 0;
  }

  .field-editor-row {
    grid-template-columns: 32px minmax(0, 1fr) 78px 34px 34px 28px;
  }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row {
    grid-template-columns: 18px minmax(0, 1fr) 18px 18px 28px 28px;
    gap: 10px;
    padding: 12px;
  }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > [data-field="label"] { grid-column: 2 / -1; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > [data-field="type"] { grid-column: 2 / 5; grid-row: 2; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > [data-field-unit] { grid-column: 2 / 5; grid-row: 3; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > [data-field-unit].is-empty { display: none; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > .field-check:has([data-field="required"]) { grid-column: 5; grid-row: 2; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > .field-check:has([data-field="name"]) { grid-column: 6; grid-row: 2; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > .field-actions { grid-column: 2 / 5; grid-row: 4; justify-content: flex-start; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > .generic-field-more { grid-column: 5; grid-row: 4; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row > .drag-handle { grid-column: 6; grid-row: 4; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row:has([data-field-unit].is-empty) > .field-actions { grid-row: 3; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row:has([data-field-unit].is-empty) > .generic-field-more { grid-row: 3; }
  .field-editor:is([data-field-editor="type"], [data-field-editor="template"]) .field-editor-row:has([data-field-unit].is-empty) > .drag-handle { grid-row: 3; }
  .part-template-filters { grid-template-columns: 1fr; }
  .part-template-field-head { display: none; }
  .part-template-field-row { grid-template-columns: 24px minmax(0, 1fr) 28px; gap: 10px; padding: 12px; }
  .part-template-field-row > [data-part-field="label"] { grid-column: 2; }
  .part-template-field-row > [data-part-field="type"] { grid-column: 2; grid-row: 2; }
  .part-template-field-row > .field-check:has([data-part-field="required"]) { grid-column: 1; grid-row: 2; }
  .part-template-field-row > .part-template-field-config { grid-column: 2 / -1; grid-row: 3; min-width: 0; }
  .part-template-field-row > .part-field-more { grid-column: 3; grid-row: 1; }
  .part-template-field-row > .drag-handle { display: none; }
  .part-field-mobile-actions { grid-column: 1 / -1; display: flex; gap: 8px; }
  .part-field-mobile-actions .danger-link { margin-left: auto; }
  .part-field-dialog-mask { align-items: end; padding: 0; }
  .part-field-dialog { width: 100%; border-radius: 14px 14px 0 0; padding-bottom: max(18px, env(safe-area-inset-bottom)); }

  .field-editor-head {
    display: none;
  }

  .field-actions {
    grid-column: 2 / -1;
    justify-self: start;
  }
  .field-options-editor { padding-left: 0; }
  .field-option-row { grid-template-columns: minmax(110px, 1fr) auto 22px 28px; }
  .field-option-row small { display: none; }
  .dynamic-attributes { grid-template-columns: 1fr; }
  .entry-grid { grid-template-columns: 1fr; }
  .entry-name { grid-column: auto; }
  .material-sku-summary button[data-master-edit-kind] { grid-template-columns: 88px 1fr; }
  .test-data-panel { align-items: stretch; flex-direction: column; }
  .sku-filters { grid-template-columns: 1fr 1fr; }
  .sku-filters input { grid-column: 1 / -1; }
  .sku-pagination { align-items: flex-start; flex-direction: column; }
  .sku-pagination > div { width: 100%; justify-content: space-between; }
  .sku-list-head { display: none; }
  .sku-list-row { grid-template-columns: 1fr auto; gap: 7px 12px; }
  .sku-list-row > span:nth-child(2), .sku-list-row > span:nth-child(3) { grid-column: 1 / -1; }
  .sku-row-actions { grid-column: 2; grid-row: 1; }
  .usage-picker-dialog { left: 0 !important; right: 0; top: auto !important; bottom: 0; width: 100% !important; max-height: 78vh; border-radius: 14px 14px 0 0; }
  .usage-part-tree { max-height: 46vh; }
  .sticky-entry-actions,
  .warehouse-editor-page .warehouse-edit-form > .actions.wide:last-child { left: 0; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
}

.data-issue-button,
.data-issue-badge {
  color: #9d5d13;
}

.data-issue-badge {
  margin-left: 6px;
  font-size: 12px;
  font-style: normal;
  font-weight: 600;
}

.data-issues-page,
.data-issue-group {
  display: grid;
  gap: 16px;
}

.data-issue-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.6fr) repeat(3, minmax(130px, .7fr));
  gap: 10px;
}

.data-issue-count,
.data-issue-group header span,
.data-issue-rows small,
.data-issue-inline span {
  color: var(--muted);
}

.data-issue-group {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.data-issue-group > header,
.data-issue-rows article,
.data-issue-inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.data-issue-group > header > div,
.data-issue-rows label,
.data-issue-rows label span,
.data-issue-inline {
  display: grid;
  gap: 3px;
}

.data-issue-rows {
  border: 1px solid var(--line);
  border-radius: 10px;
}

.data-issue-rows article {
  min-height: 58px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
}

.data-issue-rows article:last-child { border-bottom: 0; }
.data-issue-rows label { grid-template-columns: auto 1fr; align-items: center; }
.data-issue-inline { padding: 12px 14px; border: 1px solid #e7c898; background: #fffaf0; border-radius: 9px; }
.data-switch .text-link { margin-left: 6px; }

@media (max-width: 680px) {
  .data-issue-filters { grid-template-columns: 1fr; }
  .data-issue-group > header,
  .data-issue-rows article,
  .data-issue-inline { align-items: flex-start; flex-direction: column; }
}

/* --------------------------------------------------------------------------
   基础数据中心：控件、列表、抽屉、树与响应式均在本分段维护。
   -------------------------------------------------------------------------- */

/* 控件基线 */
input[type="checkbox"] {
  box-sizing: border-box !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.status-switch input[type="checkbox"],
.data-switch input[type="checkbox"] {
  width: 1px !important;
  min-width: 1px !important;
  max-width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  max-height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
}

.form-toggle-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 140px auto;
  align-items: center;
  justify-content: start;
  gap: 24px;
  min-height: 62px;
}
.form-toggle-row > div { display: grid; gap: 4px; }
.form-toggle-row strong { color: var(--ink); font-size: 15px; }
.form-toggle-row > div > span { color: var(--muted); font-size: 13px; }
.form-status-row { margin-top: 4px; padding-top: 16px; border-top: 1px solid var(--line); }
.form-toggle-row .status-switch { justify-self: start; }
.entry-grid .entry-meta { grid-column: 1 / -1; min-height: 0; padding-top: 0; }

.dynamic-attributes > .entry-attribute:has(.data-switch) {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 14px;
}

/* 双栏与页签 */
.base-data-center {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  position: relative;
}

.base-data-tabs {
  position: sticky;
  top: 18px;
  align-self: start;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: var(--panel);
  box-shadow: none;
}

.base-data-tabs button {
  display: block;
  width: 100%;
  min-height: 42px;
  padding: 11px 13px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  text-align: left;
}

.base-data-tabs button.active {
  background: var(--green-soft);
  color: var(--green);
  font-weight: 700;
}

.base-data-content { min-width: 0; }

/* 列表 */
.base-data-table {
  width: 100%;
  overflow: visible;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.base-data-row {
  display: grid;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--line);
}

.base-data-row:last-child { border-bottom: 0; }
.base-data-row strong,
.base-data-row small { display: block; }
.base-data-head { background: var(--soft); color: var(--muted); font-size: 13px; font-weight: 700; }

.base-data-row.is-unit:not(.is-bulk) {
  grid-template-columns: minmax(130px, 1fr) 72px 72px 72px 100px 120px;
}

.base-data-row:not(.is-unit):not(.is-bulk) {
  grid-template-columns: minmax(160px, 1.2fr) minmax(150px, .9fr) 100px 150px;
}

.base-data-row.is-unit.is-bulk {
  grid-template-columns: 40px minmax(130px, 1fr) 72px 72px 72px 100px;
}

.base-data-row.is-bulk:not(.is-unit) {
  grid-template-columns: 40px minmax(160px, 1.2fr) minmax(150px, .9fr) 100px;
}

.base-select-all {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.base-data-row [data-base-select],
.base-select-all [data-base-select-all] {
  align-self: center;
  justify-self: center;
}

.base-data-row .row-actions {
  position: relative;
  display: flex !important;
  justify-content: flex-start;
  justify-self: stretch;
  gap: 6px;
  min-width: 0;
}

.base-data-row .row-actions .ghost {
  margin-top: 0;
  transform: translateX(-16px);
}

.base-data-row .row-actions .base-more {
  position: absolute;
  right: 0;
}

.base-more { position: relative; display: inline-block; }
.base-more summary { padding: 4px 8px; cursor: pointer; list-style: none; }
.base-more summary::-webkit-details-marker { display: none; }
.base-more[open] { z-index: 50; }
.base-more-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 50;
  min-width: 104px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: 0 8px 18px #0002;
}
.base-more[open] > .base-more-menu { display: grid; }
.base-more-menu button {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  text-align: left;
  white-space: nowrap;
}
.base-more-menu button:hover { background: color-mix(in srgb, var(--green) 8%, var(--panel)); }
.base-more-menu .danger-link { color: #b42318 !important; }
.master-tree-row .row-actions, .warehouse-row .row-actions, .style-template-row .row-actions, .part-template-list .row-actions { position: relative; overflow: visible; }
.base-data-row:last-child .base-more[open] > .base-more-menu,
.sku-list-row:last-child .base-more[open] > .base-more-menu { top: auto; bottom: calc(100% + 4px); }
.part-template-field-row .part-field-more { position: relative; justify-self: center; overflow: visible; }
.field-editor.part-template-field-editor { overflow: visible; }

.color-swatch { display: inline-block; width: 14px; height: 14px; margin-right: 8px; border: 1px solid var(--line); border-radius: 50%; vertical-align: -2px; }
.base-data-table .base-empty,
.warehouse-list > .empty-note,
.master-tree > .empty-note { margin: 0; padding: 36px 16px; color: var(--muted); text-align: center; }

.base-bulk { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); }

.base-data-content > .section-header .actions [data-base-bulk],
.base-data-content > .section-header .actions [data-base-bulk-mode] {
  box-sizing: border-box;
  width: 96px;
  min-width: 96px;
  height: 40px;
  min-height: 40px;
  margin: 0;
  padding: 0 10px;
}

.base-data-content > .section-header .danger-link.ghost {
  margin-top: 0;
  border-color: #e3bdb8;
  background: #fff;
  color: #b42318;
}

.base-data-head.is-unit.is-bulk > span:last-child { transform: translateX(-16px); }

/* 抽屉 */
.base-drawer-mask { position: fixed; inset: 0; z-index: 20; background: #0004; }
.base-data-drawer {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 8;
  display: grid;
  align-content: start;
  gap: 14px;
  width: min(460px, 100vw);
  height: 100vh;
  max-height: none;
  overflow: auto;
  padding: 24px;
  border: 0;
  border-radius: 0;
  background: var(--panel);
  box-shadow: 0 20px 48px #0002;
}

.base-data-drawer header,
.base-data-drawer footer { display: flex; align-items: center; justify-content: space-between; }
.base-data-drawer footer { position: sticky; bottom: -24px; margin: 0 -24px -24px; padding: 14px 24px; border-top: 1px solid var(--line); background: var(--panel); }
.base-data-drawer label,
.base-data-drawer fieldset { display: grid; gap: 6px; min-width: 0; }
.base-data-drawer input,
.base-data-drawer select,
.base-data-drawer textarea { width: 100%; box-sizing: border-box; }
.base-data-drawer fieldset { padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.base-switch-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; min-height: 62px; }
.base-switch-row > span { display: grid; gap: 4px; color: var(--ink); font-size: 15px; font-weight: 800; }
.base-switch-row > span::after { content: "启用该基础数据"; color: var(--muted); font-size: 13px; font-weight: 500; }
.base-switch-row:has(input[name="allowDecimal"]) > span::after { content: "允许该单位录入小数"; }
.base-switch-row:has(input[name="statusEnabled"]) { margin-top: 4px; padding-top: 16px; border-top: 1px solid var(--line); }
.base-tree-check { display: flex !important; align-items: center; justify-content: flex-start; gap: 8px; padding: 6px 0; }
.base-tree-check input { flex: 0 0 auto !important; }
.color-input { display: flex; align-items: center; gap: 10px; }
.color-input i { width: 24px; height: 24px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 6px; }

/* 部位库 */
.base-data-content > .section-header .base-part-actions { display: flex; flex: 0 1 auto; flex-wrap: nowrap; align-items: center; gap: 10px; }
.base-data-content > .section-header .base-part-actions button { min-height: 40px; margin-top: 0; padding: 0 16px; }
.base-data-content > .section-header .base-part-action-btn { flex: 0 0 116px; width: 116px; height: 40px; }
.base-part-actions input[data-base-part-search] { width: min(360px, 34vw); min-width: 220px; }
.base-part-bulk-drawer textarea { min-height: 160px; resize: vertical; }
.base-part-result { display: grid; grid-template-columns: 1fr auto; gap: 3px 14px; align-items: center; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.base-part-result small { color: var(--muted); }

/* 响应式 */
@media (max-width: 900px) {
  .sidebar { position: static; }
}

@media (max-width: 760px) {
  .template-basic-info > div { grid-template-columns: 1fr; gap: 12px; }
  .template-field-editor .field-editor-head { display: none; }
  .template-field-editor .template-field-row { grid-template-columns: 24px minmax(0, 1fr) 28px; gap: 10px; padding: 12px; }
  .template-field-row > [data-field="label"] { grid-column: 2; }
  .template-field-row > [data-field="type"] { grid-column: 2; grid-row: 2; }
  .template-field-row > .field-check:has([data-field="required"]) { grid-column: 1; grid-row: 2; }
  .template-field-row > .field-check:has([data-field="name"]) { grid-column: 3; grid-row: 2; }
  .template-field-row > .template-field-config { grid-column: 2 / -1; grid-row: 3; min-width: 0; }
  .template-field-row > .template-field-usage { grid-column: 2 / -1; grid-row: 4; justify-content: flex-start; }
  .template-field-row > .template-field-mobile-actions { grid-row: 5; }
  .template-field-row > .generic-field-more { grid-column: 3; grid-row: 1; }
  .template-field-row > .drag-handle { display: none; }
  .template-field-mobile-actions { grid-column: 1 / -1; display: flex; gap: 8px; }
  .template-field-drawer { width: 100%; height: min(92dvh, 760px); min-height: 0; max-height: none; margin-top: auto; padding: 18px; border: 1px solid var(--line); border-radius: 14px 14px 0 0; }
  .template-field-drawer footer { margin: 0 -18px -18px; padding: 12px 18px; }
  .template-field-drawer-mask { align-items: end; }
  .app-shell.warehouse-shell { display: block; height: auto; min-height: 100vh; overflow: visible; }
  .warehouse-shell .sidebar { position: static; width: 100%; height: auto; padding: 16px 14px; }
  .warehouse-shell .brand { display: none; }
  .warehouse-shell .warehouse-nav { display: grid; gap: 6px; }
  .warehouse-shell .warehouse-nav-section { margin: 0; }
  .warehouse-shell .warehouse-nav-group { min-height: 40px; }
  .warehouse-shell .warehouse-nav-children { padding-left: 10px; }
  .warehouse-shell .workspace { min-width: 0; }
  .base-data-center { display: block; }
  .base-data-tabs { position: static; display: flex; overflow: auto; margin-bottom: 14px; }
  .base-data-tabs button { width: auto; white-space: nowrap; }
  .base-data-center .section-header { align-items: flex-start; gap: 14px; }
  .base-data-center .section-header .actions { width: 100%; flex-wrap: wrap; }
  .base-data-center .section-header .actions input[type="search"] { flex: 1 1 100%; }
  .base-data-row { grid-template-columns: 1fr auto; gap: 8px; }
  .base-data-row > span:nth-child(2) { grid-column: 1; }
  .base-data-head { display: none; }
  .base-data-head.is-bulk { display: grid; grid-template-columns: 1fr; min-height: 48px; }
  .base-data-head.is-bulk > span { display: none; }
  .base-data-drawer { position: fixed; inset: auto 12px 12px; width: auto; height: auto; max-height: 88vh; }
  .base-bulk { position: sticky; bottom: 8px; }
  .base-data-content > .section-header .base-part-actions { width: 100%; }
  .base-data-center .section-header .base-part-actions input[data-base-part-search] { width: auto; min-width: 0; flex: 1 1 auto; }
  .base-data-center .master-tree-row { grid-template-columns: 26px minmax(0, 1fr) auto; grid-template-rows: auto auto; gap: 2px 8px; min-height: 62px; padding: 9px 10px; }
  .base-data-center .master-tree-row .master-tree-name { min-width: 0; overflow-wrap: anywhere; }
  .base-data-center .master-tree-row small { grid-column: 2; font-size: 12px; text-align: left; }
  .base-data-center .master-tree-row .row-actions { grid-column: 3; grid-row: 1 / span 2; align-self: center; flex-wrap: nowrap; gap: 6px; }
  .base-data-center .master-tree-row .row-actions button { padding: 7px 9px; white-space: nowrap; }
  .base-data-center .master-tree-row .row-actions button.row-icon-btn { width: 34px; height: 34px; min-height: 34px; padding: 0; }
}

/* 款式模板 */
.style-template-page, .style-editor-page { display: grid; gap: 18px; }
.style-list-tools, .style-basic-grid, .style-fee-row, .style-usage-row, .order-style-selector, .order-style-config header { display: flex; align-items: center; gap: 12px; }
.style-list-tools input { flex: 1; }
.style-template-list { display: grid; gap: 10px; }
.style-template-row { display: grid; grid-template-columns: 64px minmax(0,1fr) auto auto; align-items: center; gap: 16px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; }
.style-template-row > div:nth-child(2) { display: grid; gap: 4px; }
.style-template-row span, .style-template-row small, .style-status small, .style-editor-header small { color: var(--muted); }
.style-thumb { display: grid; width: 58px; height: 58px; place-items: center; overflow: hidden; border-radius: 8px; background: color-mix(in srgb, var(--line) 45%, var(--panel)); color: var(--muted); font-size: 12px; }
.style-thumb img, .style-image-preview img { width: 100%; height: 100%; object-fit: cover; }
.style-status { display: grid; justify-items: end; gap: 5px; }
.style-status b { font-size: 13px; }.style-status .enabled { color: var(--accent); }.style-status .disabled, .warning-text { color: #b87822; }
.style-editor-tabs { display: flex; gap: 6px; padding: 5px; border: 1px solid var(--line); border-radius: 10px; width: max-content; background: var(--panel); }
.style-editor-tabs button { border: 0; background: transparent; padding: 9px 14px; border-radius: 7px; }.style-editor-tabs button.active { color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--panel)); font-weight: 800; }
.style-editor-main { min-height: 420px; }.style-basic-form { display: grid; gap: 18px; }.style-basic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: end; }.style-basic-grid label:last-child { grid-column: span 2; }
.style-image-preview { display: flex; align-items: center; gap: 12px; min-height: 62px; color: var(--muted); }.style-image-preview img { width: 86px; height: 86px; border-radius: 8px; }
.style-fee-section, .style-sku-section { display: grid; gap: 10px; }.style-fee-section header, .style-sku-section header { display: flex; align-items: center; justify-content: space-between; }.style-fee-section h2, .style-sku-section h3 { margin: 0; font-size: 17px; }
.style-fee-row { display: grid; grid-template-columns: 170px 1fr 1fr 100px 76px 38px; }.style-parts-workbench { display: grid; grid-template-columns: minmax(220px, .34fr) minmax(0, 1fr); min-height: 550px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--panel); }.style-part-nav { display: grid; align-content: start; gap: 6px; padding: 12px; border-right: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 93%, var(--line)); }.style-part-nav-row { display: grid; grid-template-columns: 1fr auto; gap: 3px; border: 0; border-radius: 8px; text-align: left; background: transparent; padding: 11px; }.style-part-nav-row small { color: var(--muted); }.style-part-nav-row.active { color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--panel)); }.style-part-choice { display: grid; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; max-height: 260px; overflow: auto; }.style-part-choice > div { display: grid; gap: 5px; }
.style-part-detail { display: grid; align-content: start; gap: 18px; padding: 20px; }.style-part-detail > header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }.style-part-detail h2 { margin: 3px 0; }.style-part-detail p, .style-part-detail small { color: var(--muted); }.style-dynamic-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }.style-dynamic-fields .switch-field, .style-dynamic-fields fieldset { grid-column: span 2; }.style-field { margin: 0; border: 1px solid var(--line); border-radius: 8px; padding: 10px; }.style-field legend { padding: 0 5px; }.style-usage-list { display: grid; gap: 8px; }.style-usage-row { display: grid; grid-template-columns: minmax(150px,1fr) 100px auto minmax(120px,.7fr) 34px; padding: 9px; border: 1px solid var(--line); border-radius: 8px; }.style-usage-row div { display: grid; gap: 2px; }.style-usage-row small { color: var(--muted); }.style-usage-row label { display: grid; gap: 3px; font-size: 12px; color: var(--muted); }.style-sku-picker { display: grid; gap: 8px; padding: 10px; border: 1px dashed var(--line); border-radius: 8px; }.style-sku-picker > div { display: grid; gap: 5px; }.style-sku-picker button { display: grid; text-align: left; gap: 3px; padding: 8px; border: 1px solid var(--line); background: var(--panel); border-radius: 7px; }.style-sku-picker small { color: var(--muted); }.style-part-notes textarea { min-height: 84px; }
.style-summary { display: grid; gap: 8px; }.style-summary h2 { margin: 0 0 6px; }.style-summary details { border: 1px solid var(--line); border-radius: 8px; padding: 10px; }.style-summary summary { display: flex; justify-content: space-between; cursor: pointer; }.style-summary small { display: block; margin-top: 9px; color: var(--muted); }
.style-save-bar { position: sticky; bottom: 0; z-index: 40; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0; padding: 12px 20px; border-top: 1px solid var(--line); background: var(--panel); border-radius: 0 0 8px 8px; }.style-save-bar-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }.style-save-bar-actions { display: flex; gap: 8px; align-items: center; margin-left: auto; }.style-save-bar-actions button { min-height: 40px; margin-top: 0; }.style-save-state { font-size: 12px; color: var(--muted); white-space: nowrap; }.style-save-bar .config-issues-pop { top: auto; bottom: calc(100% + 8px); }
.order-style-selector { margin: 0 0 12px; align-items: end; }.order-style-selector label { min-width: min(360px,100%); }.order-style-selector small { color: var(--muted); }.order-style-config, .order-snapshot-editor { display: grid; gap: 8px; margin: 0 0 14px; padding: 12px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line)); border-radius: 9px; background: color-mix(in srgb, var(--accent) 5%, var(--panel)); }.order-style-config header { justify-content: space-between; }.order-style-config h3, .order-snapshot-editor h2 { margin: 2px 0; }.order-style-config p, .order-style-config small, .order-snapshot-editor p, .order-snapshot-editor small { color: var(--muted); }.order-style-config details, .order-snapshot-editor details { border-top: 1px solid var(--line); padding-top: 8px; }.order-style-config summary { display: flex; justify-content: space-between; cursor: pointer; }.order-style-part-values { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 10px 0 2px; }
.style-use-mobile { display: none; }.style-sku-filters { display: grid; grid-template-columns: minmax(180px,1fr) repeat(2,minmax(110px,.45fr)); gap: 8px; }.new-order-fee { margin-top: 16px; }
@media (max-width: 760px) { .style-template-row { grid-template-columns: 52px minmax(0,1fr); }.style-template-row .style-status, .style-template-row .row-actions { grid-column: 2; justify-items: start; }.style-use-desktop { display: none; }.style-use-mobile { display: block; }.style-basic-grid, .style-dynamic-fields, .order-style-part-values, .style-sku-filters { grid-template-columns: 1fr; }.style-basic-grid label:last-child, .style-dynamic-fields .switch-field, .style-dynamic-fields fieldset { grid-column: auto; }.style-fee-row, .style-usage-row { grid-template-columns: 1fr 1fr; }.style-fee-row > :first-child, .style-usage-row > :first-child { grid-column: span 2; }.style-parts-workbench { grid-template-columns: 1fr; }.style-part-nav { border-right: 0; border-bottom: 1px solid var(--line); max-height: 280px; overflow: auto; }.order-style-selector { align-items: stretch; flex-direction: column; }.style-editor-tabs { width: 100%; }.style-editor-tabs button { flex: 1; }.style-save-bar { bottom: 0; } }

/* 主数据删除：先展示依赖、再允许最终危险操作。 */
.delete-task-mask { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 24px; background: color-mix(in srgb, var(--ink) 36%, transparent); }
.delete-modal, .delete-dependency-panel { width: min(680px, 100%); max-height: min(760px, calc(100vh - 48px)); overflow: auto; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); box-shadow: 0 24px 64px color-mix(in srgb, var(--ink) 22%, transparent); }
.delete-modal { padding: 28px; }
.delete-modal h2, .delete-dependency-panel h2 { margin: 0; color: var(--ink); }
.delete-modal p, .delete-dependency-panel header p { margin: 8px 0 0; color: var(--muted); }
.delete-modal footer, .delete-dependency-panel > footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.delete-modal footer > :is([data-delete-cancel], [data-delete-confirm], [data-part-field-delete-cancel], [data-part-field-delete-confirm]) {
  box-sizing: border-box;
  width: auto;
  min-width: 64px;
  height: 40px;
  min-height: 40px;
  margin-top: 0;
  padding: 0 16px;
  white-space: nowrap;
}
.delete-dependency-panel > footer > button { box-sizing: border-box; height: 40px; min-height: 40px; margin-top: 0; padding: 0 16px; }
.delete-dependency-panel { width: min(760px, 100%); padding: 24px; }
.delete-dependency-panel > header, .dependency-group > header, .dependency-group article { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dependency-progress { margin: 18px 0; color: var(--muted); font-weight: 800; }
.dependency-disable-note { margin: 14px 0 0; color: var(--muted); font-size: 13px; }
.dependency-groups { display: grid; gap: 12px; }
.dependency-group { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.dependency-group > header { padding: 13px 16px; background: color-mix(in srgb, var(--panel) 86%, var(--line)); }
.dependency-group > header div, .dependency-group article div { display: grid; gap: 3px; }
.dependency-group > header span, .dependency-group small { color: var(--muted); font-size: 13px; }
.dependency-group article { padding: 12px 16px; border-top: 1px solid var(--line); }
.dependency-history { border-color: color-mix(in srgb, var(--danger) 36%, var(--line)); }
.dependency-unknown { border-color: color-mix(in srgb, #b9832f 42%, var(--line)); }
.dependency-handled { border-color: var(--line); }
.dependency-handled > header, .dependency-handled article div { opacity: .55; filter: grayscale(1); }
.dependency-handled article { background: color-mix(in srgb, var(--panel) 70%, transparent); }
.dependency-group .text-link { margin: 0 16px 12px; }
.dependency-edit-notice { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 20px; padding: 11px 14px; border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line)); border-radius: 10px; background: color-mix(in srgb, var(--accent) 8%, var(--panel)); color: var(--muted); }
@media (max-width: 760px) {
  .delete-task-mask { padding: 0; place-items: stretch; }
  .delete-modal, .delete-dependency-panel { width: auto; max-height: none; border-radius: 0; border: 0; padding: 20px; }
  .delete-dependency-panel > header, .dependency-group article, .dependency-edit-notice { align-items: flex-start; }
  .delete-modal footer, .delete-dependency-panel > footer { position: sticky; bottom: -20px; padding: 14px 0 env(safe-area-inset-bottom); background: var(--panel); }
}

/* 单项删除决策面板与引用详情抽屉 */
.delete-decision-summary { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.decision-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); color: var(--muted); font-size: 13px; }
.decision-chip strong { color: var(--ink); }
.decision-resolvable { border-color: color-mix(in srgb, var(--accent) 44%, var(--line)); }
.decision-resolvable strong { color: var(--accent); }
.decision-history { border-color: color-mix(in srgb, var(--danger) 42%, var(--line)); }
.decision-history strong { color: var(--danger); }
.decision-unknown { border-color: color-mix(in srgb, #b9832f 42%, var(--line)); }
.decision-unknown strong { color: #b9832f; }
.decision-handled { opacity: .62; border-color: var(--line); }
.decision-handled strong { color: var(--muted); }
.delete-impact { margin-top: 14px; padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--muted) 30%, var(--line)); border-radius: 12px; background: color-mix(in srgb, var(--panel) 72%, transparent); }
.delete-impact strong { display: block; margin: 0 0 8px; color: var(--ink); }
.delete-impact span { position: relative; display: block; padding-left: 14px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.delete-impact span::before { content: "·"; position: absolute; left: 3px; color: var(--muted); }
.reference-drawer-mask { display: flex; align-items: stretch; justify-content: flex-end; padding: 0; background: color-mix(in srgb, var(--ink) 44%, transparent); }
.reference-drawer { display: flex; flex-direction: column; width: min(460px, 100vw); height: 100%; max-height: 100vh; overflow: hidden; border: 0; border-left: 1px solid var(--line); border-radius: 16px 0 0 16px; background: var(--panel); box-shadow: -24px 0 64px color-mix(in srgb, var(--ink) 26%, transparent); }
.reference-drawer > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 22px 16px; border-bottom: 1px solid var(--line); }
.reference-drawer > header p { margin: 0; color: var(--muted); font-size: 13px; }
.reference-drawer > header h2 { margin: 4px 0 0; color: var(--ink); }
.reference-drawer > header span { display: block; margin-top: 8px; color: var(--muted); font-size: 13px; }
.reference-groups { flex: 1; overflow: auto; padding: 16px 22px; }
.reference-group { margin-bottom: 14px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.reference-group > header { display: flex; align-items: baseline; padding: 12px 14px; background: color-mix(in srgb, var(--panel) 86%, var(--line)); }
.reference-group > header strong { color: var(--ink); }
.reference-group > header span { margin-left: 8px; color: var(--muted); font-size: 13px; }
.reference-items { border-top: 1px solid var(--line); }
.reference-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.reference-item:last-child { border-bottom: 0; }
.reference-item div { display: grid; gap: 3px; min-width: 0; }
.reference-item b { color: var(--ink); }
.reference-item small { color: var(--muted); font-size: 12px; }
.reference-resolvable { border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); }
.reference-history { border-color: color-mix(in srgb, var(--danger) 36%, var(--line)); }
.reference-unknown { border-color: color-mix(in srgb, #b9832f 42%, var(--line)); }
.reference-handled { border-color: var(--line); }
.reference-handled > header, .reference-handled .reference-item div { opacity: .55; filter: grayscale(1); }
.reference-handled b, .reference-handled small { color: var(--muted); }
.reference-drawer > footer { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 22px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--panel); }
@media (max-width: 760px) {
  .reference-drawer-mask { align-items: flex-end; }
  .reference-drawer { width: 100%; height: auto; max-height: 88vh; border: 0; border-radius: 16px 16px 0 0; }
  .reference-groups { max-height: 58vh; }
  .reference-drawer > footer { position: sticky; bottom: 0; }
}
/* ================= 开单系统 ================= */
.order-nav { gap: 6px; }
.order-module-page { gap: 18px; }
.order-module-page:has(.style-editor-page) { gap: 0; }
.order-module-page:has(.style-editor-page) .order-module-head { display: none; }
.order-topbar p { margin: 0 0 6px; }
.order-module-head { padding: 0 2px 2px; }
.order-module-head p { margin: 0; font-size: 12px; color: var(--muted); letter-spacing: .06em; }
.style-basic-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 18px; align-items: start; margin-top: 12px; }
.style-basic-layout .style-hero-image { margin-top: 0; flex-direction: column; align-items: stretch; }
.style-basic-layout .style-hero-actions { flex-direction: row; justify-content: center; }
.style-basic-layout .style-hero-empty { width: 100%; font: inherit; color: var(--muted); }
.list-empty-state { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: 12px; padding: 32px 20px; text-align: center; display: grid; gap: 8px; justify-items: center; background: var(--panel); }
.list-empty-state strong { font-size: 15px; }
.list-empty-state p { margin: 0; color: var(--muted); font-size: 13px; max-width: 380px; }
.charge-table-head { display: grid; grid-template-columns: minmax(140px, 1.2fr) 110px 80px minmax(120px, 1fr) 90px 34px; gap: 8px; padding: 6px 10px; font-size: 12px; color: var(--muted); font-weight: 700; }
.charge-remove-btn { width: 36px; height: 36px; min-height: 36px; padding: 0; display: inline-grid; place-items: center; flex: 0 0 auto; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--red); cursor: pointer; }
.charge-remove-btn:hover, .charge-remove-btn:focus-visible { border-color: color-mix(in srgb, var(--red) 25%, transparent); background: color-mix(in srgb, var(--red) 10%, var(--panel)); color: var(--red); outline: none; }
.charge-remove-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.usage-summary-empty { border: 1px solid var(--line); border-radius: 10px; padding: 20px; text-align: center; display: grid; gap: 6px; justify-items: center; color: var(--muted); }
.usage-summary-empty strong { font-size: 14px; color: var(--text); }
.usage-summary-empty p { margin: 0; font-size: 13px; }
.usage-summary-note { margin: 8px 0 0; font-size: 12px; color: var(--gold); }
.order-archive-tools .order-date-filter { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.order-archive-tools .order-date-filter input[type="date"] { flex: 0 1 150px; }

/* 款式列表 */
.style-archive-head, .order-archive-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }
.style-archive-tools, .order-archive-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.style-archive-tools input[type="search"], .order-archive-tools input[type="search"] { width: 220px; }
.style-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.style-card { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); display: flex; flex-direction: column; }
.style-card.is-disabled { opacity: .6; }
.style-thumb { height: 120px; background: var(--app-bg); display: grid; place-items: center; border-radius: 8px 8px 0 0; overflow: hidden; }
.style-thumb img { width: 100%; height: 100%; object-fit: cover; }
.style-thumb span { font-size: 34px; font-weight: 800; color: var(--muted); }
.style-thumb.large { height: 150px; }
.style-card-body { padding: 12px 14px; display: grid; gap: 6px; }
.style-card-title { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.style-card-title strong { font-size: 15px; }
.style-card-title em { font-style: normal; color: var(--muted); font-size: 12px; }
.style-card-body p { margin: 0; color: var(--muted); font-size: 12px; }
.style-card-body small { color: var(--muted); }
.style-card-badges { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.config-badge { display: inline-flex; align-items: center; min-height: 24px; line-height: 1; padding: 3px 11px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.config-badge.ok { background: color-mix(in srgb, var(--green) 14%, transparent); color: var(--green); }
.config-badge.warn { background: color-mix(in srgb, var(--gold) 16%, transparent); color: var(--gold); }
.style-card-actions { position: relative; display: flex; gap: 4px; padding: 8px 12px; border-top: 1px solid var(--line); align-items: center; }
.style-card-actions .base-more { margin-left: auto; }

/* 款式编辑器 */
.style-editor-page { max-width: none; padding: 0; min-height: calc(100vh - 48px); display: flex; flex-direction: column; min-width: 0; }
.style-editor-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.style-editor-form { display: grid; gap: 18px; max-width: none; padding: 18px 20px 24px; flex: 1 1 auto; }
.style-basic-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.style-image-field { display: flex; gap: 16px; align-items: flex-start; margin-top: 12px; }
.style-image-actions { display: grid; gap: 8px; align-content: start; }
.section-head-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.style-parts-layout { display: grid; grid-template-columns: minmax(200px, 240px) minmax(0, 1fr); gap: 0 24px; align-items: start; }
.style-parts-nav { display: flex; flex-direction: column; gap: 0; min-width: 0; padding: 0; border-right: 1px solid var(--line); }
.style-part-nav-item { display: grid; grid-template-columns: minmax(0, 1fr) 36px; align-items: center; min-height: 56px; margin: 0; padding: 8px 2px 8px 10px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; position: relative; }
.style-part-nav-item.active { border-color: var(--line); background: color-mix(in srgb, var(--green) 8%, transparent); }
.style-part-nav-item.active::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--green); }
.style-part-nav-main { flex: 1; min-width: 0; border: 0; background: transparent; text-align: left; display: grid; gap: 2px; padding: 4px 8px 4px 0; min-height: 0; }
.style-part-nav-main strong { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.style-part-nav-main small { color: var(--muted); font-size: 12px; }
.style-part-detail { border: 0; border-radius: 0; padding: 4px 0 0; display: grid; gap: 14px; align-content: start; background: transparent; }
.style-part-detail-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.style-part-detail-head strong { display: flex; align-items: center; gap: 8px; }
.style-part-fields { display: grid; gap: 10px; }
.part-field-row { display: grid; grid-template-columns: minmax(120px, 200px) minmax(0, 1fr); align-items: center; gap: 10px; }
.part-field-row > span { color: var(--muted); font-size: 13px; }
.part-field-row input[type="text"], .part-field-row select, .part-field-row input[type="number"] { width: 100%; }
.part-field-row.readonly { grid-template-columns: minmax(120px, 200px) minmax(0, 1fr); }
.part-field-row.readonly strong { font-weight: 500; }
.part-field-choice { position: relative; min-width: 0; }
.part-field-choice > summary { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 40px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--text); cursor: pointer; list-style: none; }
.part-field-choice > summary::-webkit-details-marker { display: none; }
.part-field-choice > summary:hover { border-color: color-mix(in srgb, var(--green) 48%, var(--line)); }
.part-field-choice > summary:focus-visible { outline: 2px solid color-mix(in srgb, var(--green) 48%, transparent); outline-offset: 2px; }
.part-field-choice > summary > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.part-field-choice > summary svg { flex: 0 0 auto; width: 16px; height: 16px; color: var(--muted); transition: transform .16s ease; }
.part-field-choice[open] > summary { border-color: var(--green); border-radius: 8px 8px 0 0; }
.part-field-choice[open] > summary svg { transform: rotate(180deg); }
.part-field-choice-options { position: absolute; z-index: 46; top: calc(100% - 1px); left: 0; right: 0; display: grid; max-height: min(280px, 42vh); overflow: auto; padding: 5px; border: 1px solid var(--green); border-radius: 0 0 8px 8px; background: var(--panel); box-shadow: 0 12px 26px rgba(19,31,24,.18); }
.part-field-choice-option { display: flex; align-items: center; width: 100%; min-height: 36px; gap: 8px; padding: 7px 9px; border: 0; border-radius: 6px; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
button.part-field-choice-option:hover, .part-field-choice-option:has(input:hover) { background: color-mix(in srgb, var(--green) 8%, var(--panel)); }
button.part-field-choice-option.is-selected { background: color-mix(in srgb, var(--green) 13%, var(--panel)); color: var(--green); font-weight: 700; }
.part-field-choice-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--green); }
.part-field-choice-option.is-disabled { color: var(--muted); cursor: not-allowed; }
.number-field-wrap { display: flex; align-items: center; gap: 6px; min-width: 0; }
.field-unit-suffix { color: var(--muted); font-size: 13px; white-space: nowrap; }
.part-field-switch { min-height: 40px; }
.switch-label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }

/* SKU 用料行 */
.sku-usage-list { display: grid; gap: 0; }
.sku-usage-row { display: grid; grid-template-columns: minmax(180px, 1fr) 90px 140px minmax(120px, 1fr) 36px; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: var(--panel); }
.sku-usage-row.is-disabled { opacity: .6; }
.sku-usage-row.readonly { grid-template-columns: minmax(180px, 1fr) auto auto; }
.sku-usage-info { display: grid; gap: 2px; min-width: 0; }
.sku-usage-info strong { font-size: 13px; }
.sku-usage-info small { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sku-usage-row label { display: grid; gap: 2px; }
.sku-usage-row label > span { font-size: 12px; color: var(--muted); }
.sku-usage-row input, .sku-usage-row select { width: 100%; }
.sku-usage-static { color: var(--muted); font-size: 13px; }
.sku-usage-static.remark { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.usage-remove-btn { width: 36px; height: 36px; min-height: 36px; padding: 0; display: inline-grid; place-items: center; flex: 0 0 auto; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--red); cursor: pointer; }
.usage-remove-btn:hover, .usage-remove-btn:focus-visible { border-color: color-mix(in srgb, var(--red) 25%, transparent); background: color-mix(in srgb, var(--red) 10%, var(--panel)); color: var(--red); outline: none; }
.usage-remove-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }

/* 收费行 */
.charge-list { display: grid; gap: 8px; }
.charge-row { display: grid; grid-template-columns: minmax(140px, 1.2fr) 110px 80px minmax(120px, 1fr) 90px 34px; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: var(--panel); }
.charge-row label { display: grid; gap: 2px; min-width: 0; }
.charge-row label > span { display: none; font-size: 12px; color: var(--muted); }
.charge-row input { width: 100%; min-height: 40px; }
.charge-row > strong { text-align: right; font-size: 13px; line-height: 40px; }
.charge-row.readonly { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.charge-row.readonly small { color: var(--muted); }

/* SKU / 部位选择器弹层 */
.sku-picker-mask { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 60; display: grid; place-items: center; padding: 18px; }
.sku-picker-panel { width: min(580px, 100%); max-height: 80vh; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.sku-picker-panel header { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.sku-picker-panel header strong { font-size: 15px; }
.sku-picker-tools { display: flex; gap: 10px; padding: 12px 16px; align-items: center; flex-wrap: wrap; }
.sku-picker-tools input[type="search"] { flex: 1; min-width: 180px; }
.sku-picker-list { overflow-y: auto; padding: 8px 12px; display: grid; gap: 6px; }
.sku-picker-item { display: grid; gap: 2px; text-align: left; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: transparent; width: 100%; }
.sku-picker-item:hover { border-color: var(--green); }
.sku-picker-item strong { font-size: 13px; }
.sku-picker-item small { color: var(--muted); font-size: 12px; }
.sku-picker-more { padding: 10px 16px; text-align: center; }
/* 款式部位选择器已改用 SKU 档案同款 usage-part-tree 弹层 */

/* 开单页 */
.order-create-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 22px; align-items: start; }
.order-create-main { display: grid; gap: 22px; min-width: 0; }
.order-basic-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.order-summary-panel { position: sticky; top: 22px; display: grid; gap: 16px; align-content: start; }
.order-summary-list { display: grid; gap: 8px; margin: 0; }
.order-summary-list > div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.order-summary-list dt { color: var(--muted); }
.order-summary-list dd { margin: 0; text-align: right; }
.order-summary-total { border-top: 1px solid var(--line); padding-top: 8px; }
.order-summary-total dd { font-size: 17px; font-weight: 700; color: var(--green); }
.order-save-hint { color: var(--muted); font-size: 12px; margin: 0; }
.order-status-actions { display: grid; gap: 10px; }
.order-status-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.order-status-badge.ok { background: color-mix(in srgb, var(--green) 14%, transparent); color: var(--green); }
.order-status-badge.danger { background: color-mix(in srgb, var(--red) 14%, transparent); color: var(--red); }
.order-status-badge.draft { background: color-mix(in srgb, var(--muted) 16%, transparent); color: var(--muted); }
.order-part-list { display: grid; gap: 10px; }
.order-part-card { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.order-part-card summary { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; list-style: none; }
.order-part-card summary::-webkit-details-marker { display: none; }
.order-part-card summary strong { font-size: 14px; }
.order-part-card summary small { color: var(--muted); }
.order-part-values { padding: 10px 14px; border-top: 1px solid var(--line); display: grid; gap: 12px; }
.order-part-usages { padding: 10px 14px; display: grid; gap: 12px; }

/* 款式选择器 */
.order-style-select .order-select-hint { color: var(--muted); margin: 0 0 16px; }
.order-style-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.order-style-card { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--panel); display: grid; gap: 10px; padding: 0 0 12px; }
.order-style-card.is-incomplete { opacity: .72; }
.order-style-card .style-thumb { width: 100%; height: 180px; border-radius: 0; }
.order-style-card-title strong { font-size: 17px; }
.order-style-card-title em { order: 2; }
.order-style-card-body { padding: 0 12px; display: grid; gap: 4px; }
.config-reasons { color: var(--gold); font-size: 12px; margin: 0; }
.order-style-card .primary { margin: 8px 12px 0; }

/* 订单列表 */
.order-list { display: grid; gap: 8px; }
.order-row { display: grid; grid-template-columns: minmax(150px, 1.2fr) 100px 110px 78px 90px auto; gap: 10px; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; background: var(--panel); }
.order-row-main { display: grid; gap: 2px; min-width: 0; }
.order-row-main strong { font-size: 14px; }
.order-row-main span { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.order-row small { color: var(--muted); }
.order-amount { text-align: right; }
.order-pagination { display: flex; justify-content: space-between; align-items: center; padding: 14px 4px 4px; }
.order-pagination > span { color: var(--muted); font-size: 13px; }
.order-pagination > div { display: flex; gap: 10px; align-items: center; }
.order-settings-note { display: grid; gap: 10px; color: var(--muted); line-height: 1.7; max-width: 760px; }
.order-settings-note code { background: var(--app-bg); padding: 2px 6px; border-radius: 4px; }

/* 窄屏适配 */
@media (max-width: 960px) {
  .order-create-layout { grid-template-columns: minmax(0, 1fr); }
  .order-summary-panel { position: static; }
  .style-parts-layout { grid-template-columns: minmax(0, 1fr); }
  .style-parts-nav { border-right: 0; border-bottom: 1px solid var(--line); max-height: 280px; overflow: auto; padding-bottom: 6px; }
  .sku-usage-row { grid-template-columns: minmax(150px, 1fr) 90px 140px 34px; }
  .sku-usage-row .sku-usage-remark { grid-column: 1 / -1; }
  .charge-row { grid-template-columns: 1fr 1fr; }
  .order-row { grid-template-columns: minmax(140px, 1fr) 90px 90px 80px; }
  .order-row .row-actions { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .style-archive-tools input[type="search"], .order-archive-tools input[type="search"] { width: 100%; }
  .style-basic-grid { grid-template-columns: minmax(0, 1fr); }
  .part-field-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .part-field-row.readonly { grid-template-columns: minmax(0, 1fr); }
  .charge-row { grid-template-columns: minmax(0, 1fr); }
  .order-row { grid-template-columns: minmax(0, 1fr); }
  .sku-picker-mask { padding: 10px; }
}

/* 款式模板「新增部位」选择器：与 SKU 档案选择部位同风格 */
.style-part-picker-panel .usage-part-tree { border: 0; border-top: 1px solid var(--line); max-height: 40vh; }
.style-part-picker-panel .sku-picker-footer { display: flex; justify-content: flex-end; align-items: center; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--line); }
.style-part-picker-panel .sku-picker-footer button, .usage-picker-dialog footer button { min-height: 40px; margin-top: 0; }
.style-part-picker-panel header { display: grid; align-items: stretch; justify-content: stretch; gap: 6px; }
.style-part-picker-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.style-part-picker-title { display: flex; align-items: baseline; gap: 8px; }
.style-part-picker-title strong { font-size: 15px; }
.style-part-picker-title em { font-style: normal; font-size: 12px; color: var(--muted); }
.style-part-picker-selected { font-size: 12px; color: var(--muted); line-height: 1.5; }
/* ===== 开单系统整改：款式工作台 / 编号拆分 / 用料汇总 / 订单空态（20260815） ===== */
.style-workbench-head { position: sticky; top: 0; z-index: 8; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0; padding: 16px 20px 14px; border-bottom: 1px solid var(--line); background: var(--panel); border-radius: 8px 8px 0 0; }
.style-workbench-title { flex: 1 1 260px; min-width: 0; }
.style-workbench-title p { margin: 0 0 2px; font-size: 12px; color: var(--muted); }
.style-workbench-title h1 { margin: 0; font-size: 20px; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.style-workbench-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.style-workbench-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }

.sysno-badge { display: inline-flex; align-items: center; min-height: 24px; line-height: 1; padding: 2px 9px; border-radius: 999px; font-size: 12px; color: var(--muted); background: color-mix(in srgb, var(--line) 45%, var(--panel)); white-space: nowrap; }
.status-badge { display: inline-flex; align-items: center; gap: 5px; min-height: 24px; line-height: 1; padding: 2px 9px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.status-badge.business::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status-badge.business.ok { background: color-mix(in srgb, var(--green) 14%, transparent); color: var(--green); }
.status-badge.business.danger { background: color-mix(in srgb, var(--red) 14%, transparent); color: var(--red); }

.config-badge { border: 1px solid transparent; }
.config-badge::before { content: "◌"; margin-right: 4px; font-size: 10px; }
.config-badge svg { width: 13px; height: 13px; margin-left: 3px; opacity: .75; flex: 0 0 auto; }
.config-badge.ok { border-color: color-mix(in srgb, var(--green) 35%, transparent); }
.config-badge.warn { border-color: color-mix(in srgb, var(--gold) 45%, transparent); }
.config-badge-wrap { position: relative; }
.config-badge-wrap summary { list-style: none; cursor: pointer; user-select: none; border-radius: 999px; }
.config-badge-wrap summary:hover { filter: brightness(1.07); }
.config-badge-wrap summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.config-badge-wrap summary::-webkit-details-marker { display: none; }
.config-issues-pop { position: absolute; right: 0; top: calc(100% + 8px); z-index: 40; width: min(380px, 78vw); max-height: 320px; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .14); padding: 8px; display: grid; gap: 4px; }
.config-issue-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 6px 8px; border-radius: 8px; font-size: 12px; }
.config-issue-row:hover { background: color-mix(in srgb, var(--line) 40%, transparent); }
.config-issue-loc { color: var(--muted); white-space: nowrap; max-width: 130px; overflow: hidden; text-overflow: ellipsis; }
.config-issue-msg { color: var(--text); }
.config-issue-jump { font-size: 12px; padding: 2px 8px; }

.style-basic-section .section-head-row small, .style-whole-bag-section .section-head-row small, .style-parts-section .section-head-row small, .style-usage-summary-section .section-head-row small, .style-charges-section .section-head-row small { display: block; font-size: 12px; color: var(--muted); }
.style-basic-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; align-items: start; }
.style-basic-grid .span-1 { grid-column: span 1; }
.style-basic-grid .span-2 { grid-column: span 2; }
.style-basic-grid .span-3 { grid-column: span 3; }
.style-basic-grid .span-6 { grid-column: span 6; }
.style-basic-grid label { display: grid; gap: 5px; font-size: 12px; color: var(--muted); align-content: start; min-width: 0; }
.style-basic-grid label > span { font-weight: 600; color: var(--text); }
.style-basic-grid input, .style-basic-grid select, .style-basic-grid textarea { font-size: 14px; }
.style-basic-grid textarea { resize: vertical; width: 100%; min-width: 0; max-width: 100%; min-height: 56px; max-height: 240px; overflow: auto; }
.sysno-readonly strong { font-size: 14px; color: var(--muted); font-weight: 600; }
.style-code-hint { font-size: 11px; color: var(--muted); min-height: 14px; }
.style-code-picker { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 10px; align-items: center; }
.style-code-picker select { width: 100%; }
.style-code-preview { font-size: 16px; font-weight: 700; color: var(--ink); }

.style-hero-image { display: flex; gap: 16px; align-items: stretch; margin-top: 14px; flex-wrap: wrap; }
.style-hero-image > img { width: min(320px, 100%); aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); }
.style-hero-empty { width: min(320px, 100%); aspect-ratio: 4 / 3; border: 1px dashed var(--line); border-radius: 10px; display: grid; place-content: center; text-align: center; gap: 4px; color: var(--muted); background: color-mix(in srgb, var(--line) 22%, var(--panel)); cursor: pointer; }
.style-hero-empty span { font-size: 14px; font-weight: 700; }
.style-hero-empty small { font-size: 12px; }
.style-hero-actions { display: flex; flex-direction: column; gap: 8px; justify-content: center; }

.style-parts-empty { border: 1px solid var(--line); border-radius: 10px; padding: 22px 20px; text-align: center; display: grid; gap: 8px; justify-items: center; background: color-mix(in srgb, var(--line) 10%, var(--panel)); }
.style-parts-empty strong { font-size: 15px; }
.style-parts-empty p { margin: 0; color: var(--muted); font-size: 13px; }

.style-part-subsection { display: grid; gap: 10px; }
.style-part-subsection h3 { margin: 0; font-size: 12px; color: var(--muted); font-weight: 700; letter-spacing: .04em; border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.style-part-nav-main small.note-warn { color: #9a7b32; }
.style-part-nav-main small.note-danger { color: var(--red); }
.stopped-tag { font-style: normal; font-size: 11px; color: var(--red); margin-left: 6px; }
.field-highlight { outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 8px; }

.usage-summary-table { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.usage-summary-row { display: grid; grid-template-columns: minmax(140px, 1.2fr) minmax(0, 1.4fr) 90px 70px minmax(120px, 1fr); gap: 10px; align-items: center; padding: 9px 12px; font-size: 13px; }
.usage-summary-row + .usage-summary-row { border-top: 1px solid var(--line); }
.usage-summary-head { background: color-mix(in srgb, var(--line) 45%, var(--panel)); font-weight: 700; font-size: 12px; color: var(--muted); }
.usage-summary-row small { color: var(--muted); }
.usage-summary-parts { color: var(--muted); font-size: 12px; }

.order-archive-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.order-archive-tools input[type="search"] { flex: 1 1 260px; width: auto; }
.order-archive-tools select { flex: 0 1 150px; }
.order-archive-tools input[type="date"] { flex: 0 1 150px; }
.order-count-hint { font-size: 13px; color: var(--muted); font-weight: 400; }
.order-empty-state { padding: 38px 20px; text-align: center; display: grid; gap: 8px; justify-items: center; }
.order-empty-state strong { font-size: 16px; }
.order-empty-state p { margin: 0; color: var(--muted); }

@media (max-width: 860px) {
  .style-basic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .style-basic-grid .span-3, .style-basic-grid .span-2, .style-basic-grid .span-6 { grid-column: span 2; }
  .style-basic-grid .span-1 { grid-column: span 1; }
  .style-parts-layout { grid-template-columns: 1fr; }
  .style-basic-layout { grid-template-columns: 1fr; }
  .style-basic-layout .style-hero-image { width: 100%; }
  .charge-table-head { display: none; }
  .charge-row { align-items: end; }
  .charge-row label > span { display: block; }
  .charge-row > strong { padding-bottom: 8px; line-height: inherit; }
  .usage-summary-row { grid-template-columns: minmax(0, 1fr) auto auto; }
  .usage-summary-head { display: none; }
  .usage-summary-row small { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .style-workbench-head { flex-direction: column; align-items: stretch; }
  .style-save-bar { flex-direction: column; align-items: stretch; }
  .style-save-bar-actions { margin-left: 0; }
  .style-save-bar-actions button { flex: 1 1 0; }
  .config-issues-pop { right: auto; left: 0; width: min(340px, 92vw); }
}

/* ---------- 款式用料：摘要态 / 编辑态 ---------- */
.usage-row { display: grid; gap: 8px; }
.usage-row.usage-summary { grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; padding: 10px 4px; border: 0; border-radius: 0; border-bottom: 1px solid var(--line); background: transparent; }
.sku-usage-list .usage-row.usage-summary:last-child { border-bottom: 0; }
.usage-row.usage-editor { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.sku-usage-list .usage-row.usage-editor { margin: 8px 0; }
.usage-row-actions { display: flex; align-items: center; gap: 2px; }
.usage-summary .stopped-tag { color: var(--text); }
.usage-summary-main { display: grid; gap: 2px; min-width: 0; }
.usage-summary-main > strong { font-size: 13px; }
.usage-summary-main > small { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.usage-qty-static { color: var(--text); font-size: 13px; white-space: nowrap; }
.usage-qty-static b { font-weight: 700; }
.usage-no-sku-tag { display: inline-flex; align-items: center; align-self: start; width: max-content; min-height: 20px; padding: 0 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 11px; background: color-mix(in srgb, var(--line) 30%, var(--panel)); }
.usage-sku-line { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.usage-sku-line b { color: var(--text); font-weight: 600; }
.usage-remark-line { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: normal; }
.usage-no-spec { color: var(--muted); }
.usage-more { align-self: center; }
.usage-sub-count { font-style: normal; font-size: 12px; color: var(--muted); font-weight: 400; margin-left: 6px; }

.usage-editor { padding: 12px; }
.usage-source-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 10px; }
.usage-source-field, .usage-spec-field, .usage-qty, .usage-unit, .usage-remark { display: grid; gap: 4px; }
.usage-source-field > span, .usage-spec-field > span, .usage-qty > span, .usage-unit > span, .usage-remark > span { font-size: 12px; color: var(--muted); }
.usage-source-field select, .usage-spec-field select, .usage-spec-field input, .usage-qty input, .usage-unit select, .usage-remark input { width: 100%; }
.usage-spec-fields { display: grid; gap: 6px; }
.usage-spec-grid { display: flex; flex-wrap: wrap; gap: 10px 14px; }
.usage-spec-field { min-width: 0; flex: 1 1 200px; }
.usage-spec-grid.is-readonly input, .usage-spec-grid.is-readonly select { color: var(--text); background: color-mix(in srgb, var(--panel) 60%, var(--line) 40%); cursor: default; opacity: 1; }
.usage-sku-readonly-note { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.field-impact-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.field-impact-stat { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb, var(--panel) 88%, var(--line)); }
.field-impact-stat strong { font-size: 20px; color: var(--ink); }
.field-impact-stat span { color: var(--muted); font-size: 12px; }
.field-impact-list { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 2px 2px 10px; }
.field-impact-list > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.field-impact-list > header span { color: var(--muted); font-size: 12px; }
.field-impact-rows { display: grid; gap: 8px; }
.field-impact-row { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; }
.field-impact-row strong { font-size: 13px; }
.field-impact-row span { color: var(--muted); font-size: 12px; }
.field-impact-row small { color: var(--muted); font-size: 12px; }
.field-usage-empty { color: var(--muted); font-size: 12px; }
.field-usage-zero { color: var(--muted); }
.field-replace-drawer form { display: grid; gap: 12px; }
.field-replace-drawer form > label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; }
.field-replace-drawer form .field-check { display: flex; flex-direction: row; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.usage-spec-empty { margin: 0; color: var(--muted); font-size: 12px; }
.usage-spec-skeleton { color: var(--muted); font-size: 12px; padding: 6px 0; }
.usage-spec-load-error { display: flex; align-items: center; gap: 8px; color: var(--red); font-size: 12px; }
.usage-usage-grid { display: grid; grid-template-columns: 110px 150px minmax(0, 1fr); gap: 10px; }
.usage-editor-actions { display: flex; align-items: center; gap: 10px; justify-content: flex-end; border-top: 1px dashed var(--line); padding-top: 10px; }
.usage-editor-hint { color: var(--muted); font-size: 12px; margin-right: auto; }

.usage-summary-row { grid-template-columns: minmax(160px, 1.2fr) 90px 70px minmax(120px, 1fr); }
.usage-summary-entity { display: grid; gap: 2px; min-width: 0; }
.usage-summary-entity strong { font-size: 13px; }
.usage-summary-entity small { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.template-weak-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 0 7px; border-radius: 999px; background: color-mix(in srgb, var(--line) 40%, var(--panel)); color: var(--muted); font-size: 11px; }
.template-weak-badge.is-unset { border: 1px dashed var(--line); background: transparent; }
.material-template-line { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--muted); font-size: 12px; }
.material-template-line b { color: var(--text); font-weight: 600; }
.material-template-line b.is-unset { color: var(--muted); font-weight: 400; }

@media (max-width: 860px) {
  .usage-summary-row { grid-template-columns: minmax(0, 1fr) auto auto; }
  .usage-editor { gap: 10px; }
  .usage-usage-grid { grid-template-columns: 1fr 1fr; }
  .usage-remark { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .usage-source-grid, .usage-usage-grid { grid-template-columns: 1fr; }
  .usage-remark { grid-column: auto; }
  .usage-summary { grid-template-columns: minmax(0, 1fr) auto; }
  .usage-summary .usage-row-actions { grid-column: 1 / -1; justify-self: end; }
  .usage-editor-actions { flex-wrap: wrap; }
}

/* ================= 制作单表格模板 / 打印输出层 ================= */
/* 开单页双栏：左编辑 + 右 Sticky 摘要/预览 */
.order-create-layout { grid-template-columns: minmax(0, 1fr) 360px; }
.order-create-aside { display: grid; gap: 20px; align-content: start; position: sticky; top: 22px; }
.order-create-aside .order-summary-panel { position: static; }
.table-preview-open-btn { display: none; }

.order-customer-section { margin-top: 14px; border-top: 1px dashed var(--line); padding-top: 12px; display: grid; gap: 8px; }
.order-customer-title { margin: 0; font-size: 12px; font-weight: 700; color: var(--text); }
.order-customer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.order-customer-grid label { display: grid; gap: 5px; font-size: 12px; color: var(--muted); }
.order-customer-grid input { font-size: 14px; }
.order-empty-inline { color: var(--muted); font-size: 12px; min-height: 40px; margin: 0; display: flex; align-items: center; justify-content: center; }

.order-table-preview-card { display: grid; gap: 16px; }
.order-table-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.order-table-preview-template { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.order-table-preview-template select { font-size: 13px; max-width: 200px; }
.order-table-preview-hint { font-size: 11px; color: var(--muted); }
.table-template-weak-badge { font-size: 12px; color: var(--muted); background: color-mix(in srgb, var(--line) 40%, var(--panel)); border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.order-table-preview-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.order-preview-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer; flex: 0 0 auto; }
.order-preview-icon-btn:hover { background: color-mix(in srgb, var(--green) 8%, var(--panel)); border-color: color-mix(in srgb, var(--green) 25%, var(--line)); color: var(--green); }
.order-preview-icon-btn svg { width: 18px; height: 18px; }
.order-table-preview { border: 1px solid var(--line); border-radius: 10px; background: var(--app-bg); padding: 14px; overflow-x: hidden; overflow-y: auto; max-height: 62vh; }
.order-table-preview.is-loading { opacity: .65; }
.table-preview-loading { color: var(--muted); font-size: 12px; text-align: center; padding: 18px 0; }
.table-preview-error { color: var(--red); font-size: 12px; padding: 12px 0; text-align: center; }

/* 模板列表 */
.table-template-archive-head .actions { display: flex; gap: 8px; }
.table-template-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.table-template-tools input[type="search"] { width: 300px; }
.table-template-tools select { width: 150px; }
.table-template-tools .primary { margin-left: auto; }
.table-template-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.table-template-card { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); display: flex; flex-direction: column; gap: 10px; padding: 14px; }
.table-template-card header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.table-template-card-title { display: flex; align-items: center; gap: 8px; min-width: 0; }
.table-template-card-title strong { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-default-badge { flex: 0 0 auto; font-size: 11px; line-height: 1; padding: 3px 7px; border-radius: 999px; background: color-mix(in srgb, var(--green) 16%, transparent); color: var(--green); }
.table-template-card-badges { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.status-badge.type { background: color-mix(in srgb, var(--line) 45%, var(--panel)); color: var(--muted); }
.table-template-desc { margin: 0; color: var(--muted); font-size: 13px; min-height: 36px; }
.table-template-meta { display: flex; gap: 10px; justify-content: space-between; align-items: center; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.table-template-updated { font-size: 11px; color: var(--muted); opacity: .85; white-space: nowrap; }
.table-template-card-actions { position: relative; overflow: visible; display: flex; gap: 6px; align-items: center; border-top: 1px solid var(--line); padding-top: 10px; }
.table-template-card-actions .base-more { margin-left: auto; }
.table-template-card-actions .base-more button { display: block; width: 100%; text-align: left; }
.table-template-card-actions .row-icon-btn { width: 36px; height: 36px; }
.table-config-badge summary { display: inline-flex; align-items: center; min-height: 24px; line-height: 1; padding: 2px 10px; border-radius: 999px; font-size: 12px; white-space: nowrap; border: 1px solid transparent; }
.table-config-badge.ok summary { background: color-mix(in srgb, var(--green) 14%, transparent); color: var(--green); }
.table-config-badge.warn summary { background: color-mix(in srgb, var(--gold) 16%, transparent); color: var(--gold); border-color: color-mix(in srgb, var(--gold) 45%, transparent); }
.table-config-badge .config-badge-pop { position: absolute; right: 0; top: calc(100% + 8px); z-index: 40; width: min(360px, 76vw); max-height: 300px; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .14); padding: 8px; display: grid; gap: 4px; }
.table-config-badge .config-badge-pop span { font-size: 12px; color: var(--muted); padding: 4px 8px; border-radius: 6px; }
.table-config-badge .config-badge-pop span:first-child { color: var(--text); }

/* 新建模板 Drawer */
.table-template-create-panel { position: fixed; z-index: 60; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(480px, 92vw); max-height: 88vh; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 60px rgba(0, 0, 0, .22); padding: 20px; display: grid; gap: 14px; }
.table-template-create-panel form { display: grid; gap: 12px; }
.table-template-create-panel form > label { display: grid; gap: 6px; font-size: 12px; color: var(--muted); }
.table-template-create-panel form > label input, .table-template-create-panel form > label select, .table-template-create-panel form > label textarea { font-size: 14px; }
.table-template-create-panel form > footer,
.table-template-create-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.table-template-create-actions .primary,
.table-template-create-actions .ghost { width: 100%; justify-content: center; }

/* 模板编辑器 */
.table-editor-page { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 10px; min-height: 0; height: calc(100vh - 120px); }
.table-editor-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.table-editor-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.table-editor-title input { font-size: 15px; font-weight: 700; min-width: 200px; max-width: 320px; }
.table-editor-toolbar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.table-editor-toolbar .ghost { min-height: 32px; padding: 0 10px; font-size: 12px; }
.table-editor-sep { width: 1px; height: 20px; background: var(--line); margin: 0 4px; }
.table-editor-body { display: grid; grid-template-columns: 250px minmax(0, 1fr) 300px; gap: 12px; min-height: 0; }
.table-field-panel, .table-props-panel { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); padding: 10px; display: grid; align-content: start; gap: 10px; overflow: auto; min-height: 0; }
.table-field-panel > input[type="search"] { font-size: 13px; }
.table-field-groups { display: grid; gap: 6px; }
.table-field-group { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.table-field-group summary { list-style: none; cursor: pointer; padding: 7px 10px; font-size: 12px; font-weight: 700; color: var(--text); }
.table-field-group summary::-webkit-details-marker { display: none; }
.table-field-list { display: grid; gap: 2px; padding: 4px 6px 8px; }
.table-field-item { display: grid; gap: 1px; text-align: left; border: none; background: transparent; padding: 6px 8px; border-radius: 6px; cursor: pointer; }
.table-field-item:hover { background: color-mix(in srgb, var(--line) 45%, transparent); }
.table-field-item strong { font-size: 12px; color: var(--text); }
.table-field-item code { font-size: 10px; color: var(--muted); }
.table-field-static-title { display: block; padding: 6px 0 2px; font-size: 12px; font-weight: 700; color: var(--text); }

.table-canvas-wrap { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 8px; min-width: 0; min-height: 0; }
.table-canvas-toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.table-canvas-hint { color: var(--muted); }
.table-canvas { border: 1px solid var(--line); border-radius: 10px; background: var(--paper); padding: 18px; overflow: auto; min-height: 0; }
.table-editor-grid { border-collapse: separate; border-spacing: 0; table-layout: fixed; width: max-content; min-width: 100%; background: var(--paper); }
.table-editor-grid th, .table-editor-grid td { border: 1px solid var(--line); }
.table-editor-corner, .table-editor-col-head { background: color-mix(in srgb, var(--line) 35%, var(--panel)); padding: 4px 6px; font-size: 11px; color: var(--muted); position: relative; }
.table-editor-col-head { font-weight: 600; text-align: center; }
.table-editor-row-gutter { background: color-mix(in srgb, var(--line) 35%, var(--panel)); text-align: center; color: var(--muted); font-size: 11px; padding: 0; position: relative; }
.table-editor-row-select { text-align: center; }
.table-editor-cell { min-width: 28px; height: 100%; padding: 4px 6px; vertical-align: middle; font-size: 12px; color: var(--text); background: var(--paper); cursor: pointer; position: relative; overflow: hidden; }
.table-editor-cell.is-empty { background: color-mix(in srgb, var(--line) 18%, var(--paper)); }
.table-editor-cell.has-border { box-shadow: inset 0 0 0 1px var(--line); }
.table-editor-cell.is-selected { outline: 2px solid var(--accent); outline-offset: -2px; z-index: 1; }
.table-editor-cell.is-editing { padding: 0; }
.table-cell-inner { min-height: 18px; overflow: hidden; white-space: nowrap; }
.table-cell-binding { display: inline-block; font-family: ui-monospace, monospace; font-size: 11px; color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); border-radius: 4px; padding: 1px 5px; }
.table-cell-inline-input { width: 100%; min-height: 100%; border: none; background: transparent; font: inherit; color: var(--text); padding: 3px 6px; outline: 2px solid var(--accent); }
.table-col-resize { position: absolute; right: -3px; top: 0; bottom: 0; width: 7px; cursor: col-resize; border: none; background: transparent; padding: 0; }
.table-row-resize { position: absolute; left: 0; right: 0; bottom: -3px; height: 7px; cursor: row-resize; border: none; background: transparent; padding: 0; }
.table-col-resize:hover, .table-row-resize:hover { background: color-mix(in srgb, var(--accent) 35%, transparent); }
.table-editor-row.is-repeat td { background: color-mix(in srgb, var(--green) 6%, var(--paper)); }
.table-repeat-block-label-row td { background: color-mix(in srgb, var(--green) 14%, transparent); color: var(--green); font-size: 11px; font-weight: 700; padding: 4px 10px; }

.table-props-section { display: grid; gap: 8px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.table-props-section:last-child { border-bottom: none; }
.table-props-section h3 { margin: 0; font-size: 12px; font-weight: 700; color: var(--text); }
.table-props-section label { display: grid; gap: 5px; font-size: 12px; color: var(--muted); }
.table-props-section label.switch-label { display: flex; align-items: center; gap: 8px; }
.table-props-section input[type="number"], .table-props-section select, .table-props-section input[type="text"] { font-size: 13px; }
.table-props-margins { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.table-props-hint { color: var(--muted); font-size: 12px; margin: 0; }
.table-props-muted { color: var(--muted); font-size: 12px; }

/* 预览纸张 */
.table-preview-sheet { display: grid; gap: 12px; justify-items: center; }
.table-paper-page { background: var(--paper); border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 2px 10px rgba(0, 0, 0, .08); position: relative; overflow: hidden; }
.table-paper-page-num { position: absolute; right: 6px; top: 4px; font-size: 10px; color: var(--muted); z-index: 1; }
.table-doc-table { border-collapse: collapse; table-layout: fixed; }
.table-doc-row > td { padding: 4px; font-size: 10pt; overflow: visible; }
.table-doc-cell { border: 1px solid #c9d2cc; color: var(--ink); background: var(--paper); }
.table-doc-cell.empty { border-color: transparent; }
.table-doc-cell.has-border { border-color: #6B736E; }
.table-doc-cell-inner { overflow: visible; white-space: nowrap; }
.table-doc-cell.is-wrap { padding: 4px; }
.table-doc-cell.is-wrap .table-doc-cell-inner { white-space: normal; word-break: break-word; }

/* 全屏预览 Overlay：挂 #ss-print-overlay，三行 Header / Warning / Workspace */
#ss-print-overlay { position: fixed; inset: 0; z-index: 110; display: none; }
#ss-print-overlay.is-open { display: block; }
#ss-print-overlay.is-closing .table-preview-overlay { opacity: 0; }
.table-preview-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; background: rgba(20, 24, 22, .55); opacity: 1; transition: opacity .14s ease; }
.table-preview-overlay-head { display: flex; align-items: center; gap: 12px; flex: 0 0 56px; height: 56px; padding: 0 18px; background: var(--panel); border-bottom: 1px solid var(--line); }
.table-preview-overlay-title { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.table-preview-overlay-head strong { font-size: 14px; font-weight: 600; }
.table-preview-overlay-head span { font-size: 12px; color: var(--muted); }
.table-preview-overlay-head .table-preview-zoom { margin-left: auto; }
.table-preview-overlay-head .actions { display: flex; gap: 8px; flex-shrink: 0; }
.table-preview-overlay-workspace { flex: 1; min-height: 0; overflow: auto; padding: 28px 24px; display: flex; align-items: center; justify-content: center; background: #ECEFED; }
.table-preview-overlay-workspace .table-paper-page { border-radius: 2px; box-shadow: 0 8px 28px rgba(20, 24, 22, .12); }
.ss-overflow-banner { flex: 0 0 36px; height: 36px; margin: 0; padding: 0 18px; display: flex; align-items: center; gap: 8px; background: color-mix(in srgb, #c45c5c 12%, var(--panel)); color: #a33d3d; font-size: 13px; border-bottom: 1px solid color-mix(in srgb, #c45c5c 28%, var(--line)); }
.ss-overflow-banner svg { width: 16px; height: 16px; flex-shrink: 0; }
.ss-fit-banner { flex: 0 0 32px; height: 32px; margin: 0; padding: 0 18px; display: flex; align-items: center; gap: 8px; font-size: 12px; border-bottom: 1px solid var(--line); }
.ss-fit-banner.is-info { background: color-mix(in srgb, var(--green) 8%, var(--panel)); color: var(--muted); }
.ss-fit-banner.is-warn { background: color-mix(in srgb, #c9a227 12%, var(--panel)); color: #8a6a12; }
.ss-fit-banner.is-error { background: color-mix(in srgb, #c45c5c 12%, var(--panel)); color: #a33d3d; font-size: 13px; flex-basis: 36px; height: 36px; }
.ss-fit-banner svg { width: 16px; height: 16px; flex-shrink: 0; }
.table-paper-overflow-line { position: absolute; left: 0; right: 0; bottom: 0; border-bottom: 1px dashed #c45c5c; pointer-events: none; }

/* 窄屏：隐藏右栏预览卡，露出「查看制作单预览」按钮 */
@media (max-width: 960px) {
  .order-create-layout { grid-template-columns: minmax(0, 1fr); }
  .order-create-aside { position: static; }
  .order-table-preview-card { display: none; }
  .table-preview-open-btn { display: inline-flex; }
  .table-editor-page { height: auto; }
  .table-editor-body { grid-template-columns: 1fr; grid-template-rows: auto auto minmax(0, 1fr); }
  .table-field-panel { max-height: 260px; }
  .table-props-panel { max-height: 300px; }
}
@media (max-width: 600px) {
  .table-template-grid { grid-template-columns: minmax(0, 1fr); }
  .table-template-create-panel { width: 94vw; }
  .table-editor-head { flex-direction: column; align-items: stretch; }
  .table-editor-title { justify-content: space-between; }
  .table-preview-overlay-head { flex-wrap: wrap; }
  .table-preview-overlay-head .actions { margin-left: 0; flex-wrap: wrap; }
}

/* 打印：只显示制作单内容 */
@media print {
  body > *:not(#table-print-root) { display: none !important; }
  #table-print-root { display: block !important; }
  #table-print-root .table-paper-page { margin: 0; padding: 0; border: none; box-shadow: none; overflow: hidden; page-break-after: always; break-after: page; }
  #table-print-root .table-paper-page:last-child { page-break-after: auto; break-after: auto; }
  #table-print-root .table-paper-page-num { display: none; }
  #table-print-root .table-doc-table { width: 100% !important; }
  #table-print-root .table-doc-row { break-inside: avoid; page-break-inside: avoid; }
}

/* 打印/预览修正：纸张盒模型与表格宽度 */
.table-paper-page { box-sizing: border-box; }
.table-doc-table { width: max-content; }

/* 制作单：属性面板 Tab 与自定义纸张 */
.table-props-tabs { display: flex; gap: 4px; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.table-props-tab { flex: 1; height: 34px; border: 1px solid var(--line); border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer; font-size: 13px; }
.table-props-tab.active { border-color: var(--green); color: var(--green); background: var(--green-2); font-weight: 600; }
.table-props-custom-paper { display: flex; flex-direction: column; gap: 8px; padding: 10px; border: 1px dashed var(--line); border-radius: 8px; }
.table-props-custom-fields { display: flex; gap: 8px; }
.table-props-custom-fields label { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.table-props-mm-hint { font-size: 11px; color: var(--muted); }
.table-props-mm-hint.error { color: var(--red); }
.table-preview-zoom { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.table-preview-zoom .ghost { height: 36px; padding: 0 14px; font-size: 13px; }
.table-preview-zoom-slider { width: 120px; accent-color: var(--green); }
.table-preview-zoom-label { font-size: 12px; color: var(--muted); min-width: 3.2em; }
.table-preview-overlay-head .actions .ghost,
.table-preview-overlay-head .actions .primary { height: 36px; }
.table-preview-overlay-head .actions .ghost:disabled,
.table-preview-overlay-head .actions .primary:disabled { opacity: .4; cursor: not-allowed; }
.table-preview-zoom .ghost.active { border-color: var(--green); color: var(--green); background: var(--green-2); }
.table-preview-sheet { overflow: hidden; }
.table-preview-overlay-workspace.scroll-x { overflow-x: auto; }

/* ============================================================
 * Univer 制作单模板编辑器（P0+P1）· 四层：Univer → Binding → Dynamic → Output
 * ============================================================ */
.ss-editor { height: calc(100vh - 118px); min-height: 480px; display: grid; grid-template-rows: 54px minmax(0, 1fr) 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); overflow: hidden; }
.ss-editor-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 18px; background: var(--panel); border-bottom: 1px solid var(--line); min-width: 0; }
.ss-editor-header-left { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; }
.ss-editor-title { font-size: 16px; font-weight: 600; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss-editor-name-view, .ss-editor-name-edit { display: flex; align-items: center; gap: 4px; min-width: 0; }
.ss-editor-name { width: 280px; max-width: min(320px, 48vw); border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink); font-size: 15px; font-weight: 600; padding: 6px 8px; }
.ss-editor-name:focus { outline: 2px solid color-mix(in srgb, var(--green) 48%, transparent); outline-offset: 1px; border-color: var(--green); }
.ss-editor-header-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.ss-header-more { position: relative; }
.ss-header-more summary { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; cursor: pointer; list-style: none; color: var(--muted); }
.ss-header-more summary::-webkit-details-marker { display: none; }
.ss-header-more summary:hover { background: color-mix(in srgb, var(--green) 8%, var(--panel)); color: var(--ink); }
.ss-header-more summary:focus-visible { outline: 2px solid color-mix(in srgb, var(--green) 48%, transparent); outline-offset: 1px; }
.ss-header-more .base-more-menu { min-width: 160px; }
.ss-header-text-btn { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--ink); font-size: 13px; }
.ss-header-text-btn:hover { background: color-mix(in srgb, var(--green) 8%, var(--panel)); }
.ss-header-text-btn:focus-visible, .ss-fmt-btn:focus-visible, .ss-ext-btn:focus-visible { outline: 2px solid color-mix(in srgb, var(--green) 48%, transparent); outline-offset: 1px; }
.ss-header-text-btn svg { width: 16px; height: 16px; }
.ss-format-toolbar { display: flex; align-items: center; gap: 2px; height: 42px; padding: 0 8px; border-bottom: 1px solid #E7E9E7; border-top: 1px solid #E7E9E7; background: var(--panel); flex-shrink: 0; }
.ss-fmt-btn { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--muted); }
.ss-fmt-btn:hover { background: color-mix(in srgb, var(--green) 8%, transparent); color: var(--green); }
.ss-fmt-btn svg { width: 16px; height: 16px; }
.ss-fmt-sep { width: 1px; height: 18px; background: var(--line); margin: 0 6px; }
.ss-fmt-btn:disabled { opacity: .35; cursor: not-allowed; }
.ss-fmt-size-wrap { display: inline-flex; align-items: center; height: 32px; }
.ss-fmt-size { height: 28px; width: 56px; min-width: 52px; border: 1px solid #E4E6E4; border-radius: 6px; background: var(--panel); color: var(--ink); font-size: 12px; padding: 0 4px; appearance: auto; }
.ss-toolbar-menu { position: relative; }
.ss-toolbar-menu > summary { list-style: none; cursor: pointer; gap: 0; }
.ss-toolbar-menu > summary::-webkit-details-marker { display: none; }
.ss-toolbar-menu > summary svg:last-child { width: 12px; height: 12px; opacity: .7; }
.ss-toolbar-menu-pop { position: absolute; top: calc(100% + 4px); left: 0; z-index: 12; min-width: 160px; width: 172px; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(20, 24, 22, .12); padding: 6px; display: grid; }
.ss-toolbar-menu-pop button { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 10px; border: 0; background: transparent; border-radius: 6px; text-align: left; font-size: 13px; color: var(--ink); }
.ss-toolbar-menu-pop button:hover { background: color-mix(in srgb, var(--green) 8%, transparent); }
.ss-toolbar-menu-pop svg { width: 15px; height: 15px; color: var(--muted); }
.ss-list-menu > summary { width: auto; padding: 0 10px; }
.ss-editor-body[data-left="open"] .ss-fmt-expand { display: none; }
.boolean-display-config { display: grid; gap: 4px; min-width: 120px; }
.boolean-display-config input { height: 30px; font-size: 12px; }
.ss-header-icon-btn:hover { background: color-mix(in srgb, var(--green) 8%, var(--panel)); color: var(--ink); }
.ss-header-icon-btn:active, .ss-header-icon-btn.is-active { background: var(--green-2); color: var(--green); }
.ss-header-icon-btn svg { width: 18px; height: 18px; }
.ss-header-icon-btn:disabled { opacity: .4; cursor: not-allowed; }
.ss-editor-body { display: grid; grid-template-columns: 260px minmax(0, 1fr); min-height: 0; }
.ss-data-panel { width: 260px; display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: #FAFBFA; border-right: 1px solid var(--line); padding: 0; gap: 0; }
.ss-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 44px; padding: 0 12px; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.ss-panel-head strong { font-size: 14px; font-weight: 600; color: var(--ink); }
.ss-panel-close { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--muted); cursor: pointer; flex: 0 0 auto; }
.ss-panel-close:hover { background: color-mix(in srgb, var(--green) 8%, var(--panel)); color: var(--ink); }
.ss-panel-close svg { width: 16px; height: 16px; }
.ss-selection-bar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 6px 12px; border-bottom: 1px solid var(--line); background: var(--green-2); font-size: 12px; color: var(--green); flex-shrink: 0; }
.ss-selection-bar .primary, .ss-selection-bar .ghost { height: 28px; font-size: 12px; padding: 0 8px; }
.ss-field-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 6px; padding: 4px 0 12px; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--ink) 18%, transparent) transparent; }
.ss-field-group { border: 0; border-radius: 0; background: transparent; overflow: visible; }
.ss-field-group-head { display: flex; align-items: center; gap: 6px; min-height: 40px; font-size: 13px; color: var(--muted); padding: 0 12px; cursor: pointer; list-style: none; background: color-mix(in srgb, var(--green) 5%, transparent); }
.ss-field-group-head::-webkit-details-marker { display: none; }
.ss-field-group-head:hover { background: color-mix(in srgb, var(--green) 9%, transparent); }
.ss-field-chevron { display: inline-flex; width: 14px; height: 14px; color: var(--muted); flex-shrink: 0; }
.ss-field-chevron svg { width: 14px; height: 14px; }
.ss-field-group-head strong { font-size: 13px; font-weight: 600; color: var(--ink); flex: 1; }
.ss-field-group-head span:last-child { font-size: 11px; line-height: 1; min-height: 18px; background: color-mix(in srgb, var(--green) 10%, transparent); color: var(--green); border-radius: 999px; padding: 2px 7px; }
.ss-field-list { display: flex; flex-direction: column; gap: 0; margin: 0 10px 4px 18px; padding: 0 0 0 10px; border-left: 1px solid #9BB0A3; }
.ss-field-item { display: flex; align-items: center; gap: 8px; width: 100%; height: 35px; padding: 0 8px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--ink); text-align: left; font-size: 13px; }
.ss-field-item:hover { background: color-mix(in srgb, var(--green) 8%, var(--panel)); border-color: color-mix(in srgb, var(--green) 30%, var(--line)); }
.ss-field-item.is-selected { background: var(--green-2); border-color: var(--green); color: var(--green); font-weight: 600; }
.ss-field-item.is-bound-active { background: color-mix(in srgb, var(--green) 10%, var(--panel)); }
.ss-field-item.is-disabled { opacity: .45; cursor: not-allowed; }
.ss-field-item.is-flash { animation: ss-field-flash .4s ease; }
@keyframes ss-field-flash { 0% { background: var(--green); color: #fff; } 100% { background: var(--green-2); color: var(--green); } }
.ss-field-icon { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 6px; background: var(--green-2); color: var(--green); font-size: 11px; font-weight: 700; flex-shrink: 0; }
.ss-field-item.is-selected .ss-field-icon { background: var(--green); color: #fff; }
.ss-field-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss-field-check { color: var(--green); font-size: 13px; flex-shrink: 0; }
.ss-spreadsheet-wrap { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--panel); position: relative; }
.ss-univer-toolbar-ext { display: flex; align-items: center; gap: 4px; padding: 4px 8px; border-bottom: 1px solid var(--line); background: var(--panel); flex-shrink: 0; }
.ss-ext-label { font-size: 11px; color: var(--muted); padding-right: 6px; border-right: 1px solid var(--line); margin-right: 4px; letter-spacing: .05em; }
.ss-ext-btn { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--muted); font-size: 12px; white-space: nowrap; }
.ss-ext-btn:hover { background: color-mix(in srgb, var(--green) 8%, transparent); color: var(--green); }
.ss-ext-btn:disabled { opacity: .4; cursor: not-allowed; }
.ss-ext-btn svg { width: 15px; height: 15px; }
.ss-univer-host { flex: 1; min-height: 0; min-width: 0; position: relative; overflow: hidden; --univer-gray-200: #ECEEEC; }
.ss-univer-host .univer-container { position: absolute; inset: 0; }
.ss-sheet-chrome { position: absolute; inset: 0; pointer-events: none; z-index: 6; overflow: hidden; }
.ss-chrome-print { position: absolute; border: 1px dashed color-mix(in srgb, #6B736E 18%, transparent); box-sizing: border-box; }
.ss-chrome-bind { position: absolute; box-sizing: border-box; background: rgba(46, 125, 90, .025); box-shadow: inset 2px 0 0 color-mix(in srgb, #5E8F74 55%, transparent); }
.ss-chrome-region { position: absolute; box-sizing: border-box; border: 1px solid color-mix(in srgb, #5E8F74 45%, transparent); }
.ss-chrome-region-label { position: absolute; left: 0; top: 0; transform: translateY(calc(-100% - 2px)); font-size: 10px; line-height: 14px; color: #5E8F74; background: color-mix(in srgb, var(--panel) 88%, transparent); padding: 0 4px; white-space: nowrap; border-radius: 3px; }
.ss-sheet-chrome.is-compact .ss-chrome-region-label { display: none; }
.ss-univer-host .univer-container { position: absolute; inset: 0; }
.ss-univer-host [data-u-comp="header"],
.ss-univer-host [data-u-comp="header-menu"],
.ss-univer-host [data-u-comp="toolbar"],
.ss-univer-host [data-u-comp="formula-bar"],
.ss-data-preview-host [data-u-comp="header"],
.ss-data-preview-host [data-u-comp="header-menu"],
.ss-data-preview-host [data-u-comp="toolbar"],
.ss-data-preview-host [data-u-comp="formula-bar"] { display: none !important; }
.ss-inspector { min-height: 0; background: var(--panel); border-left: 1px solid var(--line); display: flex; flex-direction: column; overflow: hidden; }
.ss-inspector-bar { display: flex; justify-content: flex-end; align-items: center; padding: 6px 8px 0; flex: 0 0 auto; }
.ss-inspector-content { flex: 1; min-height: 0; min-width: 0; overflow: auto; padding: 10px 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.ss-inspector-field { margin: 0; font-size: 15px; font-weight: 700; color: var(--ink); }
.ss-tech-key { font-size: 11px; color: var(--muted); }
.ss-tech-key summary { cursor: pointer; list-style: none; color: var(--muted); font-size: 11px; }
.ss-tech-key::-webkit-details-marker { display: none; }
.ss-tech-key code { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 11px; color: var(--muted); word-break: break-all; }
.ss-inspector-sec { display: flex; flex-direction: column; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.ss-inspector-sec:last-child { border-bottom: none; }
.ss-inspector-list { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.ss-inspector-list div { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; }
.ss-inspector-list dt { color: var(--muted); }
.ss-inspector-list dd { color: var(--ink); margin: 0; text-align: right; word-break: break-all; }
.ss-inspector-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.ss-inspector-empty { color: var(--muted); font-size: 12px; margin: 0; line-height: 1.6; }
.ss-region-tag { font-size: 11px; color: var(--green); background: var(--green-2); border-radius: 999px; padding: 2px 8px; }
.ss-issue-list { display: flex; flex-direction: column; gap: 6px; }
.ss-issue-item { width: 100%; text-align: left; font-size: 12px; color: var(--red); background: color-mix(in srgb, var(--red) 6%, var(--panel)); border: 1px solid color-mix(in srgb, var(--red) 30%, var(--line)); border-radius: 8px; padding: 7px 9px; line-height: 1.5; }
.ss-issue-item:hover { border-color: var(--red); }
.ss-editor-statusbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 12px; font-size: 11px; color: var(--muted); background: var(--panel); border-top: 1px solid var(--line); white-space: nowrap; overflow: hidden; }
/* 浮层根（映射预览 / 动态列表 / 页面设置 / 数据预览 共用） */
#ss-root { position: fixed; inset: 0; z-index: 90; display: none; }
#ss-root.is-open { display: block; }
.ss-overlay-mask { position: absolute; inset: 0; background: color-mix(in srgb, var(--ink) 45%, transparent); backdrop-filter: blur(2px); }
.ss-map-popover, .ss-dyn-popover { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(420px, 92vw); max-height: 84vh; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 60px rgba(0, 0, 0, .22); padding: 16px; display: grid; gap: 12px; z-index: 1; }
.ss-map-popover header, .ss-dyn-popover header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ss-map-popover header strong, .ss-dyn-popover header strong { font-size: 15px; }
.ss-map-list { display: flex; flex-direction: column; gap: 4px; max-height: 40vh; overflow: auto; }
.ss-map-row { display: flex; align-items: center; gap: 8px; font-size: 13px; padding: 4px 6px; border-radius: 6px; }
.ss-map-row:nth-child(odd) { background: color-mix(in srgb, var(--green) 5%, var(--panel)); }
.ss-map-row code { color: var(--muted); min-width: 40px; }
.ss-map-row span { color: var(--muted); }
.ss-map-popover footer, .ss-dyn-popover footer { display: flex; justify-content: flex-end; gap: 8px; }
.ss-dyn-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 13px; }
.ss-dyn-row code { color: var(--green); }
.ss-page-setup { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(400px, 92vw); max-height: 88vh; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 60px rgba(0, 0, 0, .22); padding: 18px; display: grid; gap: 12px; z-index: 1; }
.ss-page-setup > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ss-page-setup > header strong { font-size: 15px; }
.ss-setup-group { display: flex; flex-direction: column; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.ss-setup-group:last-child { border-bottom: none; }
.ss-setup-group h3 { margin: 0; font-size: 12px; font-weight: 700; color: var(--ink); }
.ss-setup-row { display: flex; align-items: center; gap: 8px; font-size: 13px; flex-wrap: wrap; }
.ss-setup-row code { color: var(--green); font-size: 12px; }
.ss-setup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ss-setup-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.ss-setup-grid input { font-size: 13px; }
.ss-setup-radio { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink); }
.ss-data-preview { position: absolute; inset: 24px; display: grid; grid-template-rows: 46px minmax(0, 1fr); background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 60px rgba(0, 0, 0, .22); overflow: hidden; z-index: 1; }
.ss-data-preview > header { display: flex; align-items: center; gap: 10px; padding: 0 16px; border-bottom: 1px solid var(--line); font-size: 13px; }
.ss-data-preview > header strong { font-size: 15px; }
.ss-data-preview > header span { color: var(--muted); }
.ss-data-preview > header .actions { margin-left: auto; }
.ss-data-preview-host { min-height: 0; overflow: hidden; position: relative; }
.ss-data-preview-host .univer-container { position: absolute; inset: 0; }
/* 轻提示 */
.ss-toast { position: fixed; left: 50%; bottom: 42px; transform: translateX(-50%) translateY(12px); z-index: 120; background: var(--ink); color: var(--paper); font-size: 13px; padding: 9px 16px; border-radius: 999px; box-shadow: 0 6px 24px rgba(0, 0, 0, .18); opacity: 0; pointer-events: none; transition: opacity .18s ease, transform .18s ease; }
.ss-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }
/* 面板状态：左/右栏可收起，浮动入口仅在对侧栏关闭时显示 */
.ss-editor-body { position: relative; }
.ss-editor-body[data-left="closed"] { grid-template-columns: minmax(0, 1fr) 300px; }
.ss-editor-body[data-left="closed"] .ss-data-panel { display: none; }
.ss-editor-body[data-inspector="closed"] { grid-template-columns: 260px minmax(0, 1fr); }
.ss-editor-body[data-inspector="closed"] .ss-inspector { display: none; }
.ss-editor-body[data-left="closed"][data-inspector="closed"] { grid-template-columns: minmax(0, 1fr); }
.ss-float-btn { position: absolute; z-index: 8; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); color: var(--muted); box-shadow: 0 4px 14px rgba(0, 0, 0, .14); cursor: pointer; }
.ss-float-btn:hover { color: var(--green); border-color: color-mix(in srgb, var(--green) 40%, var(--line)); }
.ss-float-btn svg { width: 18px; height: 18px; }
.ss-float-left { left: 10px; bottom: 10px; }
.ss-float-inspector { right: 10px; bottom: 10px; }
.ss-editor-body[data-left="open"] .ss-float-left { display: none; }
.ss-editor-body[data-inspector="open"] .ss-float-inspector { display: none; }
/* 全屏：隐藏左右栏，保留浮动入口；点开的面板作为覆盖层 */
.ss-editor.is-fullscreen { position: fixed; inset: 0; z-index: 100; height: 100vh; border: 0; border-radius: 0; }
.ss-editor.is-fullscreen .ss-data-panel,
.ss-editor.is-fullscreen .ss-inspector { display: none; position: absolute; top: 0; bottom: 0; z-index: 9; box-shadow: 0 10px 40px rgba(0, 0, 0, .22); }
.ss-editor.is-fullscreen .ss-data-panel { left: 0; width: 280px; }
.ss-editor.is-fullscreen .ss-inspector { right: 0; width: 300px; }
.ss-editor.is-fullscreen .ss-editor-body[data-left="open"] .ss-data-panel { display: flex; }
.ss-editor.is-fullscreen .ss-editor-body[data-inspector="open"] .ss-inspector { display: flex; }
.ss-editor.is-fullscreen .ss-float-left { display: inline-flex; }
.ss-editor.is-fullscreen .ss-float-inspector { display: inline-flex; }
.ss-editor.is-fullscreen .ss-editor-body[data-left="open"] .ss-float-left,
.ss-editor.is-fullscreen .ss-editor-body[data-inspector="open"] .ss-float-inspector { display: none; }
/* 中宽：右 Inspector 默认折叠，可展开 */
  @media (max-width: 1240px) {
  .ss-editor-body { grid-template-columns: 240px minmax(0, 1fr); }
  .ss-editor-body[data-left="closed"] { grid-template-columns: minmax(0, 1fr); }
  .ss-editor-body[data-inspector="open"] { grid-template-columns: 240px minmax(0, 1fr) 300px; }
  .ss-editor-body[data-left="closed"][data-inspector="open"] { grid-template-columns: minmax(0, 1fr) 300px; }
  .ss-editor-body[data-inspector="open"] .ss-inspector { display: flex; }
}
/* 更窄：左右栏都作为抽屉，Spreadsheet 水平滚动为主 */
  @media (max-width: 940px) {
  .ss-editor-body { grid-template-columns: minmax(0, 1fr); }
  .ss-data-panel, .ss-inspector { display: none; }
  .ss-editor-body[data-left="open"] .ss-data-panel { display: flex; position: absolute; left: 0; top: 0; bottom: 0; width: 260px; z-index: 9; box-shadow: 0 10px 40px rgba(0, 0, 0, .2); }
  .ss-editor-body[data-inspector="open"] .ss-inspector { display: flex; position: absolute; right: 0; top: 0; bottom: 0; width: 300px; z-index: 9; box-shadow: 0 10px 40px rgba(0, 0, 0, .2); }
  .ss-float-left { left: 6px; bottom: 6px; }
  .ss-float-inspector { right: 6px; bottom: 6px; }
  .ss-editor-header { flex-wrap: wrap; padding: 6px 10px; }
  .ss-editor-name { max-width: 180px; }
}
  @media (max-width: 700px) {
  .ss-editor { height: auto; min-height: 560px; }
  .ss-editor-header-actions { flex-wrap: wrap; }
  .ss-univer-toolbar-ext { overflow-x: auto; }
}
/* 深色：Univer 外壳跟随主题 */
:root[data-theme="red"] .ss-editor .ss-univer-host {
  --univer-gray-50: #2c3444;
  --univer-gray-100: #252c3a;
  --univer-gray-200: #30394a;
  --univer-gray-300: #3a4557;
  --univer-gray-400: #4a576c;
  --univer-gray-500: #aab2c4;
  --univer-gray-600: #c3cad8;
  --univer-gray-700: #d8dde7;
  --univer-gray-800: #eef0f5;
  --univer-gray-900: #f7f8fb;
  --univer-primary-100: color-mix(in srgb, var(--green) 18%, var(--panel));
  --univer-primary-500: var(--green);
  --univer-primary-600: var(--green);
  --univer-bg: var(--panel);
  --univer-bg-white: var(--panel);
}
:root[data-theme="red"] .ss-editor .ss-univer-host [class*="univer-bg-white"] { background: var(--panel) !important; }
:root[data-theme="red"] .ss-editor .ss-univer-host [data-u-comp="formula-bar"],
:root[data-theme="red"] .ss-editor .ss-univer-host [data-u-comp="toolbar"] { background: var(--panel); color: var(--ink); }
:root[data-theme="red"] .ss-editor .ss-univer-host [data-u-comp="formula-bar"] input,
:root[data-theme="red"] .ss-editor .ss-univer-host [data-u-comp="formula-bar"] span { color: var(--ink); }
/* 预览纸张保持白色 */
.table-paper-page { background: #fff; }

/* 用料用途与关联用料 */
.usage-relation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.order-whole-bag-card .section-header>small{color:var(--muted);font-size:12px}
.usage-relation-note{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.5}
.usage-material-line,.usage-related-line{display:block;color:var(--muted);font-size:12px;line-height:1.45}
.usage-related-line{color:var(--green-2)}
@media (max-width:800px){.usage-relation-grid{grid-template-columns:1fr}}
.historical-type-fields{border-color:color-mix(in srgb,var(--line) 72%,#b7791f 28%);background:color-mix(in srgb,var(--panel) 96%,#fff7df 4%)}
.historical-type-fields>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.historical-type-fields h3{margin:0 0 4px}.historical-type-fields p{margin:0;color:var(--muted)}
.historical-field-list{display:grid;gap:10px}.historical-field-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr) auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.historical-field-row>div:first-child{display:grid;gap:3px}.historical-field-row small,.historical-field-row>span{color:var(--muted)}
.historical-field-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.historical-field-actions button{white-space:nowrap}
@media(max-width:800px){.historical-field-row{grid-template-columns:1fr}.historical-field-actions{justify-content:flex-start}}

.size-model-list,.handle-group-list,.order-handle-fields,.order-strap-fields{display:grid;gap:8px}
.readonly-metric,.order-size-combo,.part-role-tag{color:var(--muted);font-size:12px}
.part-role-tag{font-style:normal;margin-left:6px}
.readonly-metric{margin:0}
.style-size-section{min-height:140px}
.style-size-section .section-head-row .ghost,.settings-detail-card .text-action{margin-top:0}

.settings-detail-card{background:transparent;border:0;border-radius:0;padding:0}
.settings-detail-help{margin:0 0 12px;color:var(--muted);font-size:13px}
.order-settings-form{display:flex;flex-direction:column;gap:16px;width:100%;margin:0;padding:0;border:0;background:transparent}
.order-settings .section-header p{font-weight:600;color:var(--muted)}
.order-settings .section-header small{display:block;margin-top:6px;color:var(--muted);font-size:13px;font-weight:400}
.order-settings>.section-header .actions>.primary,.order-settings>.section-header .actions>.ghost{height:40px;min-height:40px;margin-top:0;padding-top:0;padding-bottom:0}
.setting-rows{display:flex;flex-direction:column;width:100%}
.setting-row{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr) minmax(64px,80px);align-items:center;gap:16px;min-height:68px;padding:18px 8px;border:0;border-radius:0;background:transparent;border-bottom:1px solid var(--line)}
.setting-row:last-child{border-bottom:0}
.setting-row:hover{background:color-mix(in srgb,var(--app-bg) 55%,transparent)}
.setting-row strong{font-size:14px;font-weight:600}
.setting-row>span{color:var(--muted);font-size:13px;min-width:0;word-break:normal;overflow-wrap:break-word}
.order-settings-page{display:grid;gap:20px;min-width:0}
.order-settings-page-head{padding:2px 2px 0}
.settings-directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:16px;align-items:stretch}
.settings-group-panel{display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden}
.settings-group-head{display:grid;gap:5px;min-height:94px;padding:20px 20px 16px}
.settings-group-head h2{margin:0;color:var(--ink);font-size:17px;line-height:1.3}
.settings-group-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.settings-group-entries{display:flex;flex:1;flex-direction:column;border-top:1px solid var(--line)}
.settings-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:82px;padding:16px 18px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);text-align:left}
.settings-entry:last-child{border-bottom:0}
.settings-entry-link{width:100%;font:inherit;cursor:pointer}
.settings-entry-link:hover{background:color-mix(in srgb,var(--green) 5%,var(--panel))}
.settings-entry-link:focus-visible{position:relative;z-index:1;outline:2px solid var(--green);outline-offset:-3px}
.settings-entry-copy{display:grid;gap:5px;min-width:0}
.settings-entry-copy strong{font-size:14px;font-weight:600;line-height:1.35}
.settings-entry-copy small{color:var(--muted);font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.settings-entry-chevron{display:grid;place-items:center;color:var(--muted)}
.settings-entry-chevron svg{width:17px;height:17px}
.settings-value-entry .text-action{min-width:36px;justify-self:end}
[data-order-settings-save-bar][hidden]{display:none}
.inline-value-edit{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-size:13px;height:36px}
.inline-value-edit input{width:64px;height:36px;min-height:36px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:7px;padding:0 8px;background:#fff;color:var(--ink)}
.inline-value-edit input:focus{border-color:var(--green);outline:2px solid color-mix(in srgb,var(--green) 18%,transparent);outline-offset:1px}

.style-charges-table .size-compact-head,.style-charges-table .size-compact-row{grid-template-columns:minmax(0,1.5fr) 110px 80px minmax(0,1fr) 90px 40px}
.style-charges-table .size-cell-name,.style-charges-table .size-cell-num{height:44px;min-height:44px;border-color:transparent;border-radius:0;background:transparent;cursor:text;transition:background-color .14s ease,box-shadow .14s ease,border-radius .14s ease}
.style-charges-table .size-cell-name:hover,.style-charges-table .size-cell-num:hover{border-radius:6px;background:color-mix(in srgb,var(--green) 5%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 24%,var(--line))}
.style-charges-table .size-cell-name:focus,.style-charges-table .size-cell-num:focus{border-color:transparent;border-radius:6px;background:color-mix(in srgb,var(--green) 7%,var(--panel));outline:2px solid color-mix(in srgb,var(--green) 42%,transparent);outline-offset:-2px}
.style-charges-table .size-cell-text{text-align:right}
.style-charges-section .text-action{margin-top:8px}
.style-charges-table .empty-note{padding:12px 0;margin:0}

.size-compact-table{display:grid;width:100%;overflow-x:hidden}
.settings-size-table{width:min(900px,100%)}
.settings-group-table{width:min(760px,100%)}
.size-compact-head,.size-compact-row{display:grid;align-items:center;gap:8px;min-height:50px}
.size-compact-head{color:var(--muted);font-size:12px;font-weight:600;min-height:36px;border-bottom:1px solid var(--line)}
.size-compact-row{border-bottom:1px solid var(--line)}
.size-compact-row:last-child{border-bottom:0}
.size-compact-row:hover{background:color-mix(in srgb,var(--app-bg) 55%,transparent)}
.size-compact-row.is-unused{opacity:.62}
.settings-size-table .size-compact-head,.settings-size-table .size-compact-row{grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr)) 40px}
.settings-group-table .size-compact-head,.settings-group-table .size-compact-row{grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1.3fr) minmax(100px,1.1fr) 40px}
.drawer-size-table .size-compact-head,.drawer-size-table .size-compact-row{grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr)) minmax(90px,100px) minmax(88px,1.1fr)}
.drawer-group-table .size-compact-head,.drawer-group-table .size-compact-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(72px,90px) minmax(88px,1fr)}
.size-cell-name,.size-cell-num,.size-cell-text,.size-cell-label{min-width:0;width:100%}
.size-cell-text,.size-cell-label{color:var(--ink);font-size:13px}
.size-cell-num{text-align:right}
.size-cell-name,.size-cell-num{height:36px;min-height:36px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:7px;padding:0 8px;background:#fff;color:var(--ink);font-size:13px}
.size-cell-name:focus,.size-cell-num:focus{border-color:var(--green);outline:none;background:#fff}
.settings-size-table .size-cell-name,.settings-size-table .size-cell-num,.settings-group-table .size-cell-num{height:44px;min-height:44px;border-color:transparent;border-radius:0;background:transparent}
:root[data-theme="red"] .settings-size-table .size-cell-name,:root[data-theme="red"] .settings-size-table .size-cell-num,:root[data-theme="red"] .settings-group-table .size-cell-num{border-color:transparent;background:transparent}
.settings-size-table .size-cell-name,.settings-size-table .size-cell-num,.settings-group-table .size-cell-num{cursor:text;transition:background-color .14s ease,box-shadow .14s ease,border-radius .14s ease}
.settings-size-table .size-cell-num,.settings-group-table .size-cell-num{width:min(64px,100%);justify-self:start;margin-left:-6px;padding-right:6px;padding-left:6px;text-align:left}
.settings-size-table .size-cell-name:hover,.settings-size-table .size-cell-num:hover,.settings-group-table .size-cell-num:hover{border-radius:6px;background:color-mix(in srgb,var(--green) 5%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 24%,var(--line))}
.settings-size-table .size-cell-name:focus,.settings-size-table .size-cell-num:focus,.settings-group-table .size-cell-num:focus{border-color:transparent;border-radius:6px;background:color-mix(in srgb,var(--green) 7%,var(--panel));outline:2px solid color-mix(in srgb,var(--green) 42%,transparent);outline-offset:-2px}
.settings-size-table input[type="number"],.settings-group-table input[type="number"]{appearance:textfield;-moz-appearance:textfield}
.settings-size-table input[type="number"]::-webkit-inner-spin-button,.settings-size-table input[type="number"]::-webkit-outer-spin-button,.settings-group-table input[type="number"]::-webkit-inner-spin-button,.settings-group-table input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.size-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}
.size-default-cell{display:flex;align-items:center;min-width:0;white-space:nowrap}
.text-action{border:0;background:transparent;color:var(--green);font-size:13px;font-weight:600;min-height:32px;padding:0;cursor:pointer}
.text-action-sep{color:var(--muted)}
.text-action-quiet{color:color-mix(in srgb,var(--green) 38%,var(--muted));font-weight:500}
.text-action-quiet:hover{color:var(--green)}
.text-action-muted{color:var(--muted);font-weight:500}
.text-action-muted:hover{color:var(--ink)}
.size-status{color:var(--muted);font-size:13px;font-style:normal;font-weight:400}
.size-status.is-adjusted{color:color-mix(in srgb,var(--green) 72%,#6aa37a)}
.size-status.is-unused{color:var(--muted)}
.size-row-delete{opacity:.28;color:var(--muted)}
.size-compact-row:hover .size-row-delete,.style-part-nav-item:hover .size-row-delete{opacity:.7}
.size-row-delete:hover{opacity:1;color:var(--red)}
button:has(svg.icon-trash){color:var(--red)}
button.row-icon-btn:has(svg.icon-trash){opacity:.72;color:var(--red)}
button.row-icon-btn:has(svg.icon-trash):hover,button.row-icon-btn:has(svg.icon-trash):focus-visible{opacity:1;border-color:color-mix(in srgb,var(--red) 24%,var(--line));background:color-mix(in srgb,var(--red) 10%,var(--panel));color:var(--red)}
button:has(svg.icon-trash):disabled{color:var(--red);opacity:.34}

.size-drawer-mask{position:fixed;inset:0;z-index:70;display:flex;justify-content:flex-end;background:rgba(19,31,24,.36)}
.size-drawer{width:min(800px,100%);max-width:840px;height:100dvh;display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--line);box-shadow:-16px 0 44px rgba(0,0,0,.18);overflow:hidden;overflow-x:hidden}
.size-drawer-header{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px 16px;border-bottom:1px solid var(--line)}
.size-drawer-header p{margin:0 0 4px;color:var(--muted);font-size:13px}
.size-drawer-header h3{margin:0;font-size:18px}
.size-drawer-header .ghost.link{margin-top:0}
.size-drawer-body{flex:1 1 auto;min-height:0;overflow:auto;overflow-x:hidden;padding:24px 24px 40px}
.size-drawer-section{display:grid;gap:12px}
.size-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.size-section-head strong{font-size:16px}
.size-drawer-subhead{display:grid;gap:2px;margin-top:8px}
.size-drawer-subhead small{color:var(--muted);font-size:12px}
.size-drawer-divider{height:1px;background:var(--line);margin:24px 0}
.size-span-summary{margin:0;color:var(--ink);font-size:14px}
.size-form-row{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;gap:12px;min-height:44px}
.size-form-stack{display:grid;gap:8px;padding:4px 0 20px;border-bottom:1px solid var(--line)}
.size-form-stack:last-of-type{border-bottom:0}
.size-diff-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px}
.size-diff-empty{display:grid;gap:14px;justify-items:start}
.size-diff-select,.size-select-wide{width:min(400px,100%);height:36px;border:1px solid var(--line);border-radius:7px;padding:0 10px;background:#fff;color:var(--ink)}
.size-num-short{width:min(200px,100%)}
.size-num-short input{width:100%;height:36px;min-height:36px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:7px;padding:0 8px;background:#fff}
.size-num-short input:focus{border-color:var(--green);outline:none}
.handle-default-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 24px;align-content:start;min-height:100px}
.handle-default-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center;min-height:36px}
.handle-default-item>span{color:var(--muted);font-size:13px}
.handle-default-item>strong{font-size:14px;font-weight:600}
.handle-default-value{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.size-calc-block{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;align-items:start;padding-top:4px}
.size-calc-block>span{color:var(--muted);font-size:13px}
.size-calc-block p{margin:0;color:var(--ink);font-size:14px;font-weight:500}
.field-inline-error{margin:4px 0 0;color:#9a7b32;font-size:12px}

.part-param-summary{display:grid;gap:6px;padding:4px 0 12px;border:0;background:transparent}
.part-param-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.part-param-title{display:flex;align-items:baseline;gap:8px;min-width:0}
.part-param-title strong{font-size:14px}
.part-role-weak{color:var(--muted);font-size:13px}
.part-param-default,.part-param-diff{margin:0;font-size:13px;color:var(--ink)}
.style-part-detail .part-param-default,.style-part-detail .part-param-diff,.style-part-detail .part-param-title strong{color:var(--ink)}
.part-param-quiet{margin:0;font-size:12px;color:var(--muted)}
.part-param-quiet.is-adjusted{color:color-mix(in srgb,var(--green) 72%,#6aa37a);font-size:13px}
.part-param-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.part-param-foot .ghost,.part-param-head .ghost{margin-top:0}
.style-part-param-block{padding:0 0 12px;border-bottom:1px solid var(--line)}
.style-part-subsection{padding-top:12px}

.order-size-card{padding:20px 24px}
.order-size-select{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:end;margin-bottom:10px}
.order-size-select label,.order-size-special-row label{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.order-size-select select,.order-size-special-row input{height:40px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--app-bg);color:var(--ink)}
.order-size-special-row{display:grid;grid-template-columns:repeat(4,minmax(64px,1fr));gap:10px}
.order-size-combo{margin:0;font-size:14px;color:var(--ink)}
.order-size-part-lines{display:grid}
.order-size-line{border-bottom:1px solid var(--line)}
.order-size-line:last-child{border-bottom:0}
.order-size-line-main{width:100%;display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:52px;padding:8px 0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.order-size-line-main strong{font-size:14px}
.order-size-line-main span{color:var(--muted);font-size:13px}
.order-handle-fields,.order-strap-fields{padding:0 0 12px 0;border:0;background:transparent}

@media (max-width:960px){
  .drawer-size-table .size-compact-head,.drawer-size-table .size-compact-row,.order-size-line-main,.size-form-row,.size-calc-block{grid-template-columns:minmax(0,1fr)}
  .size-drawer{width:100%;height:min(92dvh,760px);margin-top:auto;border-radius:14px 14px 0 0}
  .size-drawer-mask{align-items:end}
}
@media (max-width:640px){
  .setting-row{grid-template-columns:minmax(0,1fr)}
  .order-settings-page{gap:16px}
  .settings-directory-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .settings-group-head{min-height:0;padding:18px 18px 14px}
  .settings-entry{min-height:76px;padding:14px 16px}
  .inline-value-edit{height:auto;flex-wrap:wrap}
}

/* 开单工作台 */
.order-workbench{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:0;min-width:0;width:100%;--order-header-height:64px}
.order-workbench-header,.order-workbench-body{grid-column:1/-1;min-width:0;max-width:100%}
.order-workbench-header{position:sticky;top:0;z-index:8;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;margin:0 -24px;padding:8px 24px 12px;background:var(--app-bg);border-bottom:1px solid var(--line)}
@media (max-width: 680px) {
  .order-workbench-header { margin: 0 -14px; padding-left: 14px; padding-right: 14px; }
}
.order-workbench-header-left,.order-workbench-header-right{display:flex;align-items:center;gap:12px;flex-shrink:0;position:relative;overflow:visible}
.order-workbench-kicker{margin:0;color:var(--muted);font-size:12px}
.order-workbench-header h1{margin:0;font-size:20px;line-height:1.2}
.order-workbench-header .primary,.order-workbench-header .secondary{height:40px;border-radius:8px;padding:0 16px}
.order-header-more{position:relative;flex:0 0 auto}
.order-header-more summary.row-icon-btn{list-style:none}
.order-header-more .base-more-menu{min-width:160px}
.order-preview-launch .ghost{display:inline-flex;align-items:center;gap:6px;height:36px}
.order-preview-launch .ghost svg{width:16px;height:16px}
.order-workbench-body{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;width:100%;max-width:1440px}
.order-workbench-body.with-preview{grid-template-columns:minmax(0,1fr) minmax(340px,400px)}
.order-workbench-main{display:grid;gap:20px;min-width:0;width:100%;padding:8px 4px 40px}
.order-main-card,.order-section{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 24px}
.order-section h2{margin:0 0 16px;font-size:16px}
.order-section h3,.order-section h4{margin:0 0 10px;font-size:14px}
.order-divider{border:0;border-top:1px solid var(--line);margin:20px 0}
.order-info-grid,.order-customer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.order-info-grid label,.order-customer-grid label,.order-platform-other{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.order-info-grid input,.order-info-grid select,.order-customer-grid input,.order-customer-grid select,.order-platform-other input{height:40px;border-radius:8px}
.order-section textarea{height:auto;min-height:64px;max-height:140px;width:100%;resize:vertical;overflow:auto}
.order-customer-grid label:nth-child(3) select{max-width:180px}
.order-paste-box textarea{width:100%;min-height:96px;max-height:none;height:auto;overflow:auto;line-height:1.5;field-sizing:content;border-radius:8px}
.order-paste-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.order-paste-hint{margin:0;flex:1;color:var(--muted);font-size:12px}
.order-paste-actions .secondary{flex:0 0 auto;min-height:32px;height:32px;padding:0 12px;font-size:13px;gap:6px}
.order-paste-actions .secondary:disabled{opacity:.55;cursor:not-allowed}
.order-paste-adopt{margin-top:4px;border:0;background:transparent;color:var(--green);padding:0;font-size:12px;text-align:left}
.field-error{color:var(--red);font-size:12px}
.order-style-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.order-style-select-wrap{min-width:min(100%,400px)}
.order-style-chip{display:flex;gap:10px;align-items:center}
.order-style-chip img{width:48px;height:48px;object-fit:cover;border-radius:8px}
.order-model-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.order-model-chip{height:32px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit}
.order-model-chip.active{border-color:transparent;background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}
.order-size-summary{display:grid;gap:4px;color:var(--muted);font-size:13px}
.order-parts-split{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:280px}
.order-parts-nav{border-right:1px solid var(--line);padding-right:12px;display:grid;align-content:start;gap:6px}
.order-parts-nav-item{text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;display:flex;align-items:center;gap:6px}
.order-parts-nav-item.active{background:color-mix(in srgb,var(--green) 12%,transparent)}
.order-parts-detail{padding-left:18px;min-width:0}
.order-subsection{padding:14px 0;border-top:1px solid var(--line)}
.order-subsection:first-child{border-top:0;padding-top:0}
.order-usage-table,.order-charge-table{width:100%;border-collapse:collapse}
.order-usage-table th,.order-usage-table td,.order-charge-table th,.order-charge-table td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;vertical-align:top}
.order-usage-table-wrap{overflow:visible}
.order-usage-table th:nth-child(4),.order-charge-table th:nth-child(4){min-width:120px}
.order-row-actions{position:relative;overflow:visible;white-space:nowrap;width:1%}
.order-charge-table input{width:100%;min-height:36px;border-radius:8px}
.order-charge-edit-row td{vertical-align:middle}
.order-charge-edit-row .order-row-actions{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.order-labor-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0}
.order-labor-row h4{margin:0;font-size:13px}
.order-labor-row .order-labor-field{display:flex;align-items:center;gap:8px;max-width:none;margin:0}
.order-labor-row .order-labor-field input{width:88px;min-height:36px}
.order-labor-fact,.order-fact-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:36px}
.order-fact-row span{color:var(--muted);font-size:13px;min-width:5em}
.order-charge-totals{display:grid;gap:6px;margin:14px 0 0;justify-items:end;font-size:13px}
.order-charge-totals p{margin:0;display:flex;gap:12px;align-items:center}
.order-charge-total{margin:12px 0 0;text-align:right;font-weight:700}
.order-labor-jump{border:0;background:transparent;color:var(--green);padding:0;font-size:12px}
.order-labor-tag{margin-left:6px;color:var(--muted);font-size:11px;font-weight:400}
.order-workbench-preview{position:sticky;top:var(--order-header-height);display:grid;gap:10px;align-content:start}
.order-preview-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.order-preview-launch{justify-self:start}
.order-diff-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);flex:0 0 auto}
.order-adjusted-text{color:var(--muted);font-size:12px}
.order-restore-link,.order-row-actions .ghost{font-size:12px}
.order-row-more{display:inline-block;vertical-align:middle}
.order-baseline-missing{margin:0 0 10px;color:var(--muted);font-size:12px}
.order-whole-bag-block{display:grid;gap:8px;padding-bottom:8px}
.order-whole-bag-block h3{margin:0;display:flex;align-items:center;gap:8px}
.order-usage-more-settings{margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.order-usage-more-settings summary{cursor:pointer;color:var(--muted);font-size:12px}
.usage-spec-load-note{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--muted);font-size:12px;padding:8px 0}
.business-option-table{display:grid;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.business-option-head,.business-option-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 80px 80px auto;gap:10px;align-items:center;padding:10px 14px}
.business-option-head{background:var(--app-bg);color:var(--muted);font-size:12px}
.business-option-row{border-top:1px solid var(--line)}
.business-option-table>.empty-note{margin:0;padding:18px 14px;border-top:1px solid var(--line);color:var(--muted)}
.business-option-drawer{width:min(460px,100%)}
.order-info-form{display:grid;gap:0}
.order-parts-workbench{display:grid;gap:16px}
.order-active-part{display:grid;gap:16px}
@media (max-width:1100px){
  .order-workbench-body.with-preview{grid-template-columns:minmax(0,1fr)}
  .order-info-grid,.order-customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:800px){
  .order-parts-split{grid-template-columns:minmax(0,1fr)}
  .order-parts-nav{border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px;max-height:none}
  .order-parts-detail{padding-left:0;padding-top:12px}
  .order-info-grid,.order-customer-grid{grid-template-columns:minmax(0,1fr)}
}

.dimension-editor{display:grid;gap:8px;min-width:0}
.dimension-editor-items{display:flex;flex-wrap:wrap;gap:10px 14px}
.dimension-item-field{display:grid;gap:4px;min-width:120px;flex:1 1 140px}
.dimension-item-field>span{color:var(--muted);font-size:12px}
.dimension-editor-preview,.usage-actual-use small,.usage-actual-use-line{color:var(--muted);font-size:12px}
.usage-actual-use{display:grid;gap:2px;padding:8px 0;border-bottom:1px dashed var(--line)}
.usage-actual-use span{color:var(--muted);font-size:12px}
.usage-actual-use strong{font-weight:600}
.usage-spec-dimension{grid-column:1/-1}
.dimension-config-row{display:grid;grid-template-columns:32px minmax(0,1.4fr) minmax(88px,.8fr) auto 36px;gap:8px;align-items:center;min-height:46px}
.dimension-config-drawer .template-option-head{margin-bottom:8px}
.handle-default-value{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:44px}
.size-drawer-header .icon-button{margin-top:0}
.size-compact-row,.handle-default-item{min-height:44px}
@media (max-width:720px){
  .dimension-editor-items{display:grid;grid-template-columns:minmax(0,1fr)}
  .dimension-config-row{grid-template-columns:minmax(0,1fr) auto;grid-auto-flow:row}
}
