* { box-sizing: border-box; }
body {
  margin: 0;
  background: #e6edef;
  color: rgba(0,0,0,.7);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5715;
  font-variant: tabular-nums;
  font-feature-settings: 'tnum';
}
button, input, select, textarea { font: inherit; }
button { height: 32px; padding: 0 15px; border: 1px solid #d9d9d9; border-radius: 2px; background: #fff; color: rgba(0,0,0,.65); cursor: pointer; white-space: nowrap; }
button:hover { border-color: #40a9ff; color: #40a9ff; }
button:disabled { color: #bfbfbf; cursor: not-allowed; }
.primary { color: #fff; background: #1890ff; border-color: #1890ff; }
.primary:hover { color: #fff; background: #40a9ff; border-color: #40a9ff; }
.danger { color: #f5222d; }
.link { height: auto; padding: 0 8px; color: #1890ff; border: 0; background: none; }
a { color: #1890ff; text-decoration: none; }
aside { position: fixed; inset: 0 auto 0 0; z-index: 2; width: 264px; background: #fff; box-shadow: 2px 0 8px #00000012; font: 13px -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft YaHei', sans-serif; }
.account { height: 120px; display: flex; align-items: center; gap: 6px; padding: 0 20px; border-bottom: 1px solid #e8e8e8; color: #595959; }
.account > span:nth-child(2) { margin-left: 14px; white-space: nowrap; }
.account button { margin-left: auto; padding: 0 15px; font-size: 13px; }
.avatar { display: block; width: 36px; height: 36px; flex-shrink: 0; }
.avatar svg { width: 36px; height: 36px; fill: none; stroke: white; stroke-width: 2; }
.avatar svg circle:first-child { stroke: none; }
nav { padding-top: 20px; max-height: calc(100vh - 120px); overflow-y: auto; scrollbar-width: thin; }
#business-menu { cursor: pointer; }
#business-menu:hover, #business-menu:focus-visible { color: #1890ff; background: #fafafa; }
#business-menu:focus-visible { outline: 2px solid #1890ff; outline-offset: -2px; }
#business-menu[aria-expanded=true] .menu-arrow { transform: rotate(180deg); }
#business-submenu { list-style: none; margin: 0; padding: 4px 0; background: #fafafa; }
#business-submenu[hidden], .collapse-nav #business-submenu { display: none; }
#business-submenu button {
  display: block;
  width: 100%;
  min-height: 40px;
  height: auto;
  padding: 10px 12px 10px 48px;
  border: 0;
  border-right: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  font: inherit;
  line-height: 20px;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
}
#business-submenu button:hover, #business-submenu button:focus-visible { color: #1890ff; background: #e6f7ff; }
#business-submenu button[aria-current=page] { color: #1890ff; background: #e6f7ff; border-right-color: #1890ff; }
nav > div { height: 76px; display: flex; align-items: center; gap: 10px; padding: 0 24px; color: #262626; }
nav svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; }
nav .menu-arrow { margin-left: auto; width: 12px; height: 12px; stroke-width: 1.2; }
#collapse { position: absolute; top: 140px; right: -24px; width: 24px; height: 34px; padding: 0; border: 0; border-radius: 0 6px 6px 0; color: #777; }
main { margin-left: 264px; min-height: 100vh; padding-bottom: 30px; }
.page-header { height: 101px; padding: 24px 30px 16px; background: #f7f9f9; }
.breadcrumb { height: 26px; color: #777; font-size: 14px; line-height: 18px; }
.breadcrumb span { margin: 0 8px; color: #555; }
h1 { margin: 8px 0 0; font-family: inherit; font-size: 20px; font-weight: 600; line-height: 26px; color: #000; }
#theme-control { position: fixed; top: 6px; right: 0; z-index: 3; padding: 0 11px; }
#theme-control span { padding-left: 12px; color: #bfbfbf; }
.form-card { margin: 30px 34px 0 30px; background: #fff; border-radius: 3px; }
form { padding: 36px 40px 30px; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 16px; }
.field { display: flex; align-items: flex-start; min-height: 56px; padding: 12px 4px; gap: 8px; }
.field.full { grid-column: 1 / -1; }
.field > label { flex: 0 0 140px; text-align: right; line-height: 32px; color: #333; white-space: nowrap; }
.required::before { content: '*'; color: #f5222d; margin-right: 4px; }
.control { flex: 1; min-width: 0; line-height: 32px; }
.control > input:not([type=radio]):not([type=checkbox]), .control > select, .control > textarea { width: 100%; }
input:not([type=radio]):not([type=checkbox]):not([type=file]), select, textarea {
  height: 32px;
  margin: 0;
  padding: 4px 11px;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  background: #fff;
  color: rgba(0,0,0,.7);
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5715;
  outline: none;
  transition: border-color .3s, box-shadow .3s;
}
input:hover, select:hover, textarea:hover { border-color: #43b7fa; }
input:focus, select:focus, textarea:focus { border-color: #43b7fa; box-shadow: none; }
select:focus, select.select-open { border-color: #43b7fa; box-shadow: 0 0 0 2px rgba(27,154,238,.2); }
input[readonly], input:disabled { background: #f5f5f5 !important; color: rgba(0,0,0,.7); }
input:disabled { color: rgba(0,0,0,.3); cursor: not-allowed; }
input[readonly]:hover, input[readonly]:focus, input:disabled:hover { border-color: #d9d9d9; box-shadow: none; }
select { appearance: none; padding: 0 30px 0 11px; line-height: 30px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 5 4-5' fill='none' stroke='%23b2b2b2'/%3E%3C/svg%3E"); background-position: right 11px center; background-repeat: no-repeat; }
select.select-searching { color: transparent; }
input[type=radio], input[type=checkbox] { appearance: none; position: relative; width: 16px; height: 16px; margin: 0 8px 0 0; border: 1px solid #d9d9d9; border-radius: 2px; background: #fff; vertical-align: -3px; cursor: pointer; }
input[type=radio] { border-radius: 50%; }
input[type=radio]:disabled { background: white !important; }
input[type=radio]:checked { border-color: #1890ff; }
input[type=radio]:checked::after { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: #1890ff; }
input[type=checkbox]:checked { background: #1890ff; border-color: #1890ff; }
input[type=checkbox]:checked::after { content: ''; position: absolute; top: 2px; left: 5px; width: 5px; height: 9px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); }
input[data-order-pick-all]:indeterminate, input[data-order-cross-all]:indeterminate { background: #fff; border-color: #d9d9d9; }
input[data-order-pick-all]:indeterminate::after, input[data-order-cross-all]:indeterminate::after { content: ''; position: absolute; top: 3px; left: 3px; width: 8px; height: 8px; background: #1890ff; border: 0; transform: none; }
.order-product-picker input[type=checkbox]:disabled { border-color: #d9d9d9; }
.order-product-picker input[type=checkbox]:disabled:checked::after { border-color: #bfbfbf; }
.radio { display: inline-block; margin-right: 16px; cursor: pointer; white-space: nowrap; }
textarea { min-height: 76px; resize: vertical; }
.meta { margin-bottom: 12px; }
.meta .field { min-height: 56px; }
[data-field=person] .control { flex: 0 0 calc((100% - 16px) / 2 - 152px); }
[data-field=banner] { padding-top: 24px; padding-bottom: 24px; }
[data-field=banner] .hint { display: none; }
[data-field=banner] > label { cursor: help; }
[data-field=theme], [data-field=themeId] { margin-top: 12px; }
[data-field=visibility] { margin-top: 8px; }
[data-field=formula] { min-height: 40px; padding-top: 0; padding-bottom: 8px; }
.hint { font-size: 14px; color: #000; line-height: 22px; margin: 8px 0 0; }
.hint strong { font-weight: normal; }
.toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.table-wrap { overflow: auto; }
table { width: 100%; min-width: 650px; border-collapse: collapse; font-size: 14px; }
th { background: #fafafa; font-weight: 500; text-align: left; color: rgba(0,0,0,.85); }
th, td { padding: 16px; border-bottom: 1px solid #e8e8e8; line-height: 22px; }
td input:not([type=checkbox]), td select { width: 100%; min-width: 90px; }
td:first-child { width: 48px; }
.empty { height: 96px; text-align: center; color: #bfbfbf; }
.empty::before { content: ''; display: block; width: 40px; height: 20px; margin: 4px auto 8px; border: 1px solid #e8e8e8; border-radius: 4px; background: #fafafa; }
.pagination { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 16px; color: rgba(0,0,0,.65); }
.pagination button { min-width: 32px; padding: 0 8px; }
.pagination select { min-width: 100px; }
.active-page { color: #1890ff; border-color: #1890ff; }
.footer { display: flex; justify-content: center; gap: 8px; padding: 24px 0 8px; }
.error { color: #f5222d; font-size: 14px; line-height: 22px; }
.invalid { border-color: #f5222d !important; }
.upload-preview { display: block; max-height: 110px; max-width: 240px; margin-top: 8px; }
.file-button { display: inline-block; padding: 0 15px; border: 1px solid #d9d9d9; border-radius: 2px; color: rgba(0,0,0,.65); cursor: pointer; }
.file-button input { display: none; }
.filename { color: #999; font-size: 12px; }
#toast { display: none; position: fixed; top: 24px; left: 50%; z-index: 100; max-width: 80vw; padding: 12px 22px; background: #fff; border-radius: 4px; box-shadow: 0 3px 18px #0003; transform: translateX(-50%); }
#toast.show { display: block; }
#overlay { position: fixed; inset: 0; z-index: 50; overflow: auto; padding: 100px 24px 24px; background: #0006; }
#overlay[hidden] { display: none; }
.modal { max-width: 1120px; margin: auto; background: white; border-radius: 4px; box-shadow: 0 4px 12px #0003; }
.modal.small { max-width: 600px; }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; border-bottom: 1px solid #e8e8e8; font-size: 16px; line-height: 24px; font-weight: 500; }
.modal-head button { border: 0; padding: 0; height: 24px; font-size: 22px; }
.modal-body { padding: 24px; max-height: 70vh; overflow: auto; }
.modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 10px 16px; border-top: 1px solid #e8e8e8; }
.modal.tier-editor { max-width: 1000px; }
.tier-editor .modal-head { line-height: 22px; color: rgba(0,0,0,.85); }
.tier-editor .modal-head button { height: 22px; line-height: 22px; }
.tier-editor .modal-body { padding: 24px 24px 48px; }
.tier-editor .modal-foot { padding: 10px 16px 18px; gap: 16px; }
.tier-editor-fields { display: grid; gap: 24px; }
.tier-editor-fields .field { padding: 0; min-height: 32px; }
.tier-editor-fields .field > label { flex-basis: 112px; }
.tier-editor .tier-price-metrics { grid-template-columns: 50% minmax(0,1fr); column-gap: 4px; row-gap: 24px; }
.tier-editor .control > input, .tier-editor .control > button { vertical-align: top; }
.tier-editor .primary { background: #1b9aee; border-color: #1b9aee; }
.tier-editor .primary:hover { background: #40a9ff; border-color: #40a9ff; }
.tier-editor .tier-product-table { table-layout: fixed; min-width: 800px; }
.tier-editor .tier-product-table th { line-height: 22px; white-space: nowrap; }
.tier-editor .table-wrap, .tier-editor .tier-product-table th, .tier-editor .tier-product-table td { border-color: #f0f0f0; }
.tier-editor .tier-product-table .empty { height: 167px; }
.tier-editor .tier-product-table .empty::before { width: 64px; height: 42px; margin: 0 auto 8px; }
.tier-editor .tier-product-table td { overflow-wrap: anywhere; }
.tier-editor .tier-product-note { margin-top: 8px; line-height: 22px; color: #999; }
@media (max-width:760px) { .tier-editor .tier-price-metrics { grid-template-columns: minmax(0,1fr); } }
.tabs { display: flex; gap: 32px; margin-bottom: 24px; border-bottom: 1px solid #e8e8e8; }
.tabs button { height: auto; padding: 0 0 16px; border: 0; border-radius: 0; }
.tabs .selected { border-bottom: 2px solid #1890ff; color: #1890ff; }
.search { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 24px; }
.search input { width: 175px; }
.product-search {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 24px;
  margin-top: 12px;
}
.product-filter { display: flex; align-items: center; gap: 10px; min-width: 0; }
.product-filter > span { flex: 0 0 78px; white-space: nowrap; }
.product-search input, .product-search select { width: 100%; min-width: 0; }
.product-price-range { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.product-price-range input { flex: 1; }
.product-price-range > span { color: #999; }
.product-search-actions { display: flex; justify-content: flex-end; gap: 8px; }
.product-search-no-region .product-filter:nth-child(3) { grid-column: 1; }
.product-search-no-region .product-search-actions { grid-column: -2; }
.product-filter-error { margin: -12px 0 16px; }
.product-picker-table table { min-width: 1020px; }
.product-picker-table th, .product-picker-table td { white-space: nowrap; }
[data-field=products] .product-table-with-region th:nth-child(1) { width: 48px; }
[data-field=products] .product-table-with-region th:nth-child(2) { width: 60px; }
[data-field=products] .product-table-with-region th:nth-child(3) { width: 140px; }
[data-field=products] .product-table-with-region th:nth-child(4) { width: 100px; }
[data-field=products] .product-table-with-region th:nth-child(5) { width: auto; }
[data-field=products] .product-table-with-region th:nth-child(6) { width: 90px; }
[data-field=products] .product-table-with-region th:nth-child(7) { width: 140px; }
[data-field=products] .product-table-with-region th:nth-child(8) { width: 80px; }
@media (max-width: 900px) {
  .product-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .product-search { grid-template-columns: minmax(0, 1fr); }
}
.tag { display: inline-block; padding: 1px 6px; border: 1px solid #ffe7ba; background: #fff7e6; color: #d48806; font-size: 12px; }
.preview-card { padding: 24px; background: #f8fafc; border-radius: 6px; }
.preview-card h2 { margin-top: 0; }
.price { font-size: 28px; color: #e79234; }
.collapse-nav aside { width: 64px; }
.collapse-nav .account { padding: 0 14px; }
.collapse-nav .account > span:nth-child(2), .collapse-nav .account button, .collapse-nav .menu-name, .collapse-nav .menu-arrow { display: none; }
.collapse-nav main { margin-left: 64px; }
@media (max-width: 1100px) {
  .form-card { margin: 24px 24px 0; }
  form { padding: 30px 16px; }
  .field > label { flex-basis: 130px; }
  [data-field=person] .control { flex-basis: calc((100% - 138px) / 2 - 4px); }
}
@media (max-width: 760px) {
  aside { display: none; }
  main { margin-left: 0; }
  .form-card { margin: 16px 12px 0; }
  .page-header { padding-left: 20px; }
  form { padding: 20px 8px; }
  .grid { grid-template-columns: minmax(0,1fr); }
  .field.full { grid-column: auto; }
  .field > label { flex-basis: 126px; }
  [data-field=person] .control { flex: 1; }
}
.button-icon { width: 14px; height: 14px; margin-right: 8px; fill: none; stroke: currentColor; stroke-width: 1; vertical-align: -2px; }
[data-field=coupon] > label, [data-field=tier] > label, [data-field=reason] > label { flex-basis: 132px; }
[data-field=tier] > label { white-space: normal; }
.table-wrap { border: 1px solid #e8e8e8; border-radius: 2px 2px 0 0; }
th, td { padding: 12px 8px; border: 1px solid #e8e8e8; line-height: 24px; }
th { border-top: 0; }
th:first-child, td:first-child { border-left: 0; }
th:last-child, td:last-child { border-right: 0; }
.empty { height: 134px; }
.empty::before { width: 46px; height: 36px; border: 0; background: center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='36' viewBox='0 0 48 36'%3E%3Cellipse cx='24' cy='33' rx='23' ry='3' fill='%23f5f5f5'/%3E%3Cpath d='M2 14 13 2h22l11 12v17H2Z' fill='white' stroke='%23d9d9d9'/%3E%3Cpath d='M2 14h12l3 6h14l3-6h12v17H2Z' fill='%23fafafa' stroke='%23d9d9d9'/%3E%3C/svg%3E"); }
[data-field=products] th:nth-child(1) { width: 6%; }
[data-field=products] th:nth-child(2), [data-field=products] th:nth-child(3) { width: 8.5%; }
[data-field=products] th:nth-child(4) { width: 28%; }
[data-field=products] th:nth-child(5) { width: 6%; }
[data-field=products] th:nth-child(6) { width: 18.3%; }
.select-menu { position: fixed; z-index: 80; padding: 4px 0; background: #fff; border-radius: 2px; box-shadow: 0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05); color: rgba(0,0,0,.7); }
input.select-search { position: fixed; z-index: 81; height: 30px !important; padding: 0 !important; border: 0 !important; background: transparent !important; line-height: 30px !important; box-shadow: none !important; }
.select-search::placeholder { color: rgba(0,0,0,.3); }
.select-options { max-height: 256px; overflow: auto; }
.select-options [role=option] { min-height: 32px; padding: 5px 12px; line-height: 22px; cursor: pointer; outline: none; }
.select-options [role=option]:hover, .select-options [role=option]:focus { background: #f5f5f5; }
.select-options [aria-selected=true] { background: #e8faff; font-weight: 600; }
.select-empty { padding: 12px; text-align: center; color: #bfbfbf; }
[data-field=formula] { min-height: 56px; padding-top: 12px; padding-bottom: 12px; }
.toolbar { gap: 15px; }
.table-wrap th:first-child:has(input[type=checkbox]), .table-wrap td:first-child:has(input[type=checkbox]) { text-align: center; }
.table-wrap th:first-child input[type=checkbox], .table-wrap td:first-child input[type=checkbox] { margin-right: 0; }
input[type=number] { appearance: textfield; }
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { appearance: none; margin: 0; }
.order-page .page-header { height: 97px; }
.order-page .form-card { margin-top: 30px; }
#order-form { padding: 28px 32px 30px; }
#order-form .field > label { flex-basis: 90px; height: 32px; white-space: normal; overflow-wrap: anywhere; line-height: 22px; padding-top: 5px; }
#order-form .field { min-height: 56px; }
#order-form .order-section { grid-column: 1/-1; margin: 12px 0; border: 1px solid #d9d9d9; border-radius: 2px; }
.order-section summary { padding: 12px 16px; background: #fafafa; cursor: pointer; }
.order-section .grid { padding: 12px 16px; }
#order-form .order-note { color: #000; line-height: 22px; }
.order-product-dialog { max-width: 1000px; }
.order-product-dialog .field { padding: 0; }
.order-product-dialog .field > label { flex-basis: 112px; }
.modal.order-cross-editor { max-width: 1320px; width: 80%; }
.order-cross-editor table th:first-child { width: 48px; }
.order-cross-editor table th:nth-child(2) { width: 140px; }
.order-cross-editor table th:nth-child(3) { width: 45%; }
.order-cross-editor table th:last-child { width: 100px; }
.order-page-jump { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.order-page-jump input { width: 50px; text-align: center; padding: 0 6px; }
@media (max-width: 900px) { .modal.order-cross-editor { width: 100%; } }
#order-form .order-files { margin-top: 6px; font-size: 13px; }
.order-files > div { display: flex; align-items: center; gap: 8px; }
.order-files .link { color: #1890ff; }
#order-form .table-wrap { margin-top: 12px; }
#order-form .order-date { text-align: left; width: 100%; position: relative; color: rgba(0,0,0,.7); padding: 0 30px 0 11px; }
.order-date::after { content: '▦'; position: absolute; right: 11px; color: #bfbfbf; }
.order-date.empty-date { color: #bfbfbf !important; }
.order-calendar { max-width: 320px; }
.order-calendar-panel { position: fixed; z-index: 80; width: 280px; padding: 12px; background: #fff; border-radius: 2px; box-shadow: 0 3px 6px -4px #0003,0 6px 16px #0002; }
.calendar-footer { border-top: 1px solid #f0f0f0; display: flex; justify-content: center; gap: 12px; padding-top: 8px; margin-top: 8px; }
.calendar-footer button { border: 0; color: #1890ff; }
.calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; text-align: center; }
.calendar-grid button { padding: 0; border: 0; }
.calendar-grid button:hover { background: #e6f7ff; }
.calendar-grid .selected { background: #1890ff; color: #fff; }
.calendar-grid .outside { color: #bfbfbf; }
.order-rich { width: 350px; max-width: 100%; border: 1px solid #d9d9d9; }
.order-rich-tools { display: flex; flex-wrap: wrap; padding: 8px; gap: 4px; border-bottom: 1px solid #d9d9d9; }
.order-rich-tools button { border: 0; min-width: 32px; padding: 0 8px; }
.order-rich [contenteditable] { min-height: 260px; padding: 12px; outline: none; line-height: 1.6; }
.order-rich [contenteditable]:empty::before { content: '请输入内容...'; color: #bfbfbf; }
.order-card-preview { max-width: 350px; min-height: 300px; margin: auto; padding: 32px; background: #fff5e8; background-size: cover; text-align: center; }
.order-card-preview img { max-width: 100%; }
.order-card-preview .card-message { white-space: pre-wrap; }
#order-form .order-error { border-color: #f5222d; }
.cg-manager { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.cg-manager input { width:168px; }
.cg-tabs { flex-wrap:wrap; gap:12px 24px; }
.cg-tabs button { white-space:normal; overflow-wrap:anywhere; }
.cg-panel .cg-products { min-width:850px; table-layout:auto; }
.cg-panel .cg-products th { width:auto!important; white-space:nowrap; }
.cg-panel .cg-products td input[type=number] { width:80px; min-width:60px; }
.cg-picker-target { margin-bottom:20px; }
.cg-picker-target select { min-width:180px; margin-left:12px; }
.cg-import-summary { padding:12px; margin:16px 0; background:#e6f7ff; }
#overlay .error { white-space:pre-wrap; }
.cg-preview .tabs { margin-bottom:12px; }
.cg-preview .tabs button { background:transparent; }
.cg-preview [hidden] { display:none; }
.cg-panel .pagination { flex-wrap:wrap; }
@media (max-width:760px) { #order-form { padding: 20px 8px; } }
