    /* 收银结账弹窗 */
    .c-pay-overlay {
      position: fixed; inset: 0; z-index: 10020;
      background: rgba(0,0,0,.42);
      display: flex; align-items: center; justify-content: center;
    }
    .c-pay-modal {
      width: min(1280px, calc(100vw - 64px));
      height: min(720px, calc(100vh - 64px));
      background: #fff; border-radius: 4px;
      display: grid; grid-template-columns: minmax(560px, 1fr) minmax(600px, 1fr);
      box-shadow: 0 12px 36px rgba(0,0,0,.18);
      overflow: hidden;
      color: #20242a;
    }
    .c-pay-left, .c-pay-right {
      padding: 28px 28px 24px;
      overflow-y: auto;
    }
    .c-pay-left {
      border-right: 1px solid #edf0f3;
    }
    .c-pay-right {
      display: flex; flex-direction: column;
      overflow: hidden;
      padding-bottom: 0;
    }
    .c-pay-title {
      font-size: 24px; font-weight: 700; color: #20242a;
      display: flex; align-items: baseline; gap: 4px;
      margin-bottom: 30px;
    }
    .c-pay-title small {
      font-size: 15px; color: #4b5563; font-weight: 600;
    }
    .c-pay-scan-card {
      width: 88px; height: 88px;
      border: 1px solid #d9dde3; border-radius: 8px;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 7px; font-size: 14px; color: #20242a;
      margin-bottom: 34px;
      background: #fff;
    }
    .c-pay-scan-icon {
      width: 44px; height: 44px; border-radius: 9px; background: #aaa;
      color: #fff; display: flex; align-items: center; justify-content: center;
      font-size: 25px; line-height: 1;
    }
    .c-pay-subtitle {
      font-size: 24px; font-weight: 700; margin-bottom: 22px; color: #20242a;
    }
    .c-pay-method-grid {
      display: grid; grid-template-columns: repeat(4, 90px);
      gap: 18px 26px; margin-bottom: 24px;
    }
    .c-pay-method {
      min-width: 0; height: 82px; border: 1px solid #dedede; border-radius: 6px;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 6px; background: #fafafa; color: #20242a; font-size: 14px;
    }
    .c-pay-method.active {
      background: #fff; border-color: #4caf82; box-shadow: inset 0 0 0 1px #4caf82;
    }
    .c-pay-method-icon {
      width: 40px; height: 40px; border-radius: 50%; background: #aaa;
      color: #fff; display: flex; align-items: center; justify-content: center;
      font-size: 18px; font-weight: 700;
    }
    .c-pay-method-icon.vip { background: #f1c94a; font-style: italic; font-size: 17px; }
    .c-pay-method-icon.wx { background: #69c547; font-size: 21px; }
    .c-pay-inputs {
      display: grid; grid-template-columns: 120px 120px; gap: 12px 38px;
      align-items: start;
    }
    .c-pay-mini-label { font-size: 15px; color: #20242a; margin-bottom: 8px; }
    .c-pay-mini-input {
      width: 116px; height: 38px; border: 1px solid #d8d8d8; border-radius: 19px;
      padding: 0 16px; font-size: 17px; color: #20242a; outline: none;
    }
    .c-pay-balance {
      grid-column: 1 / span 2;
      margin-top: 10px; color: #ef5a5a; font-size: 14px;
    }
    .c-pay-right-title-row {
      display: flex; align-items: center; gap: 14px; margin-bottom: 22px;
      flex-shrink: 0;
    }
    .c-pay-right-title {
      font-size: 24px; font-weight: 700; color: #20242a;
    }
    .c-pay-print {
      height: 34px; padding: 0 18px; border: 1px solid #cfd3dc; border-radius: 18px;
      background: #fff; color: #20242a; font-size: 14px; cursor: pointer;
    }
    .c-pay-detail-scroll {
      flex: 1; overflow-y: auto; padding-right: 2px;
    }
    .c-pay-row {
      display: grid; grid-template-columns: 130px minmax(0, 1fr);
      align-items: center; min-height: 44px; column-gap: 18px;
      font-size: 15px; color: #20242a;
    }
    .c-pay-row-label { display: flex; align-items: center; gap: 8px; }
    .c-pay-row-value {
      justify-self: end; font-size: 16px; font-weight: 600; color: #20242a;
    }
    .c-pay-row-value.muted { font-weight: 500; }
    .c-pay-help {
      width: 17px; height: 17px; border-radius: 50%; background: #9ca3af;
      color: #fff; display: inline-flex; align-items: center; justify-content: center;
      font-size: 12px; font-weight: 700;
    }
    .c-pay-pill {
      justify-self: end; width: min(260px, 100%); height: 34px; border: 1px solid #d6d6d6;
      border-radius: 22px; display: flex; align-items: center; justify-content: flex-end;
      padding: 0 14px; font-size: 14px; font-weight: 700; color: #20242a;
      gap: 8px;
    }
    .c-pay-arrow { color: #b7bbc2; font-size: 20px; font-weight: 400; }
    .c-pay-input-line {
      justify-self: end; width: min(260px, 100%); height: 34px;
      border: 1px solid #d6d6d6; border-radius: 22px;
      padding: 0 14px; font-size: 14px; outline: none;
    }
    .c-pay-field-stack {
      justify-self: end; width: min(260px, 100%);
    }
    .c-pay-field-stack .c-pay-input-line {
      width: 100%; box-sizing: border-box;
    }
    .c-pay-deduct {
      text-align: right; font-size: 15px; font-weight: 700; margin-top: 5px;
    }
    .c-pay-deduct-coupon {
      justify-self: end;
      width: min(260px, 100%);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      min-height: 34px;
      padding: 0 14px;
      border: 1px solid #d6d6d6;
      border-radius: 18px;
      background: #fff;
      box-sizing: border-box;
      font-size: 14px;
      color: #20242a;
    }
    .c-pay-deduct-coupon .name {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      color: #4b5563;
    }
    .c-pay-deduct-coupon .amount {
      flex-shrink: 0;
      color: #e85858;
      font-weight: 700;
    }
    .c-pay-discount-wrap {
      justify-self: end; width: min(260px, 100%); height: 34px; border: 1px solid #d6d6d6;
      border-radius: 22px; display: grid; grid-template-columns: 1fr 42px; overflow: hidden;
    }
    .c-pay-discount-wrap input {
      border: none; outline: none; padding: 0 14px; font-size: 14px;
    }
    .c-pay-discount-wrap span {
      border-left: 1px solid #d6d6d6; background: #f3f4f6;
      display: flex; align-items: center; justify-content: center; font-size: 14px;
    }
    .c-pay-actual {
      justify-self: end; width: min(430px, 100%); height: 38px; border: 1px solid #b8d2c5;
      border-radius: 24px; display: grid; grid-template-columns: 100px 1fr; overflow: hidden;
    }
    .c-pay-actual span {
      border-right: 1px solid #b8d2c5; display: flex; align-items: center; justify-content: center;
      font-size: 14px;
    }
    .c-pay-actual input {
      border: none; outline: none; text-align: right; padding: 0 18px;
      font-size: 18px; font-weight: 700;
    }
    .c-pay-check-row {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 12px; margin: 12px 0 8px;
    }
    .c-pay-check {
      display: flex; align-items: center; gap: 10px;
      font-size: 14px; color: #20242a;
    }
    .c-pay-check input {
      width: 16px; height: 16px; accent-color: #4caf82;
    }
    .c-pay-footer {
      flex-shrink: 0;
      margin: 14px -28px 0;
      padding: 14px 28px 16px;
      box-shadow: 0 -6px 18px rgba(0,0,0,.05);
      display: flex; align-items: center; justify-content: space-between;
      background: #fff;
    }
    .c-pay-footer-amount {
      display: flex; align-items: baseline; gap: 8px; color: #20242a;
      font-size: 14px; font-weight: 600;
    }
    .c-pay-footer-amount .amount {
      font-size: 36px; font-weight: 800; letter-spacing: 0;
    }
    .c-pay-footer-note { color: #ef5a5a; font-size: 13px; margin-top: 0; }
    .c-pay-submit {
      width: 158px; height: 48px; border: none; border-radius: 26px;
      background: #79c68e; color: #fff; font-size: 22px; font-weight: 700;
      cursor: pointer; box-shadow: 0 4px 10px rgba(61,155,115,.22);
    }
