    .shop-table { border-collapse: collapse; width: 100%; font-size: 12px; }
    .shop-table th, .shop-table td {
      border: 1px solid #e2e8f0; padding: 8px 10px; text-align: center;
      white-space: nowrap; max-width: 280px; overflow: hidden; text-overflow: ellipsis;
    }
    .shop-table th { background: #f8fafc; font-weight: 700; color: #334155; position: sticky; top: 0; z-index: 2; }
    .shop-table thead { pointer-events: none; }
    .shop-table thead th { pointer-events: auto; }
    .shop-table td .shop-opt-edit-btn,
    .shop-table td .onoff-btn,
    .shop-table td .count-badge,
    .shop-table td .shop-code-copy-btn {
      position: relative; z-index: 1;
    }
    .shop-sort-th { cursor: pointer; user-select: none; }
    .shop-sort-th:hover { background: #eef2ff; color: #312e81; }
    .shop-sort-th-active { background: #eef2ff; color: #312e81; font-weight: 800; }

    .shop-salecount-th { position: relative; }
    .shop-salecount-th-inner {
      display: inline-flex; align-items: center; gap: 4px; vertical-align: middle;
    }
    .shop-salecount-refresh-btn {
      display: inline-flex; align-items: center; justify-content: center;
      width: 1.35rem; height: 1.35rem; padding: 0; border-radius: 9999px;
      border: 1px solid #cbd5e1; background: #fff; color: #475569;
      font-size: 13px; line-height: 1; cursor: pointer; flex-shrink: 0;
    }
    .shop-salecount-refresh-btn:hover:not(:disabled) {
      background: #eef2ff; border-color: #a5b4fc; color: #4338ca;
    }
    .shop-salecount-refresh-btn:disabled { opacity: 0.55; cursor: wait; }
    .shop-salecount-refresh-btn.is-spinning { animation: shop-salecount-spin 0.8s linear infinite; }
    @keyframes shop-salecount-spin { to { transform: rotate(360deg); } }
    .shop-salecount-label-wrap { position: relative; display: inline-flex; }
    .shop-salecount-period-popover {
      position: absolute; left: 50%; top: calc(100% + 6px); z-index: 70;
      transform: translateX(-50%) translateY(4px);
      min-width: 160px; padding: 8px 10px; border-radius: 10px;
      border: 1px solid #c7d2fe; background: rgba(255, 255, 255, 0.98);
      box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
      opacity: 0; visibility: hidden; pointer-events: none;
      transition: all 0.15s ease; text-align: center; white-space: nowrap;
    }
    .shop-salecount-label-wrap:hover .shop-salecount-period-popover,
    .shop-salecount-label-wrap:focus-within .shop-salecount-period-popover {
      opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0);
    }
    .shop-salecount-period-title {
      display: block; font-size: 10px; font-weight: 800; color: #6366f1; margin-bottom: 2px;
    }
    .shop-salecount-period-text { display: block; font-size: 11px; font-weight: 700; color: #334155; }

    .shop-table td.text-left { text-align: left; }
    .shop-table tbody tr:hover { background: #f8fafc; }
    .shop-table-wrap { overflow: auto; max-height: calc(100vh - 280px); border: 1px solid #e2e8f0; border-radius: 0; background: #fff; }

    .chrome-tabs-wrap {
      display: flex; align-items: flex-end; gap: 6px;
      border-bottom: 1px solid #cbd5e1; padding: 0 6px; background: #f1f5f9;
      border-radius: 12px 12px 0 0;
    }
    .chrome-tab-btn {
      border: 1px solid #cbd5e1; border-bottom: none;
      border-radius: 12px 12px 0 0; padding: 8px 18px;
      background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
      color: #475569; font-weight: 800; font-size: 13px;
      position: relative; top: 1px; transition: all 0.15s ease; cursor: pointer;
    }
    .chrome-tab-btn:hover {
      background: linear-gradient(180deg, #ffffff 0%, #f1f5f9 100%);
      color: #334155;
    }
    .chrome-tab-btn.active {
      background: #ffffff; color: #0f172a;
      border-color: #94a3b8; z-index: 2;
    }
    .chrome-tab-group {
      display: inline-flex; align-items: flex-end; gap: 0;
    }
    .chrome-tab-group:has(.chrome-kakao-subtabs:not(.hidden)) > .chrome-tab-btn[data-shop="kakao"].active {
      z-index: 3;
    }
    .chrome-kakao-subtabs {
      display: inline-flex; align-items: flex-end; gap: 0;
      position: relative; top: 1px; margin-left: 2px;
    }
    .chrome-kakao-subtabs.hidden { display: none; }
    .chrome-kakao-sub-btn {
      border: 1px solid #cbd5e1; border-bottom: none;
      border-radius: 9px 9px 0 0; padding: 5px 13px;
      background: linear-gradient(180deg, #fffef5 0%, #fef3c7 100%);
      color: #475569; font-weight: 800; font-size: 10px;
      position: relative; top: 1px; transition: all 0.15s ease; cursor: pointer;
      margin: 0 0 0 -1px; line-height: 1.2;
    }
    .chrome-kakao-sub-btn:first-child { margin-left: 0; }
    .chrome-kakao-sub-btn:hover {
      background: linear-gradient(180deg, #fffbeb 0%, #fde68a 100%);
      color: #334155;
    }
    .chrome-kakao-sub-btn.active {
      background: #fffbeb; color: #0f172a;
      border-color: #94a3b8; z-index: 2;
    }
    .shop-kakao-rank-panel { background: #fff; }
    .shop-kakao-rank-toolbar {
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
      padding: 10px 14px; border-bottom: 1px solid #e2e8f0; background: #f8fafc;
    }
    .shop-kakao-rank-body {
      overflow: auto; max-height: calc(100vh - 240px);
      padding: 0; background: #fff;
    }
    .shop-kakao-rank-table-wrap {
      overflow: auto; max-height: calc(100vh - 240px);
    }
    .shop-kakao-rank-table {
      width: 100%; border-collapse: collapse; font-size: 12px;
    }
    .shop-kakao-rank-table th,
    .shop-kakao-rank-table td {
      border-bottom: 1px solid #e2e8f0; padding: 8px 10px;
      text-align: center; vertical-align: middle;
    }
    .shop-kakao-rank-table th {
      position: sticky; top: 0; z-index: 1;
      background: #f8fafc; color: #475569; font-weight: 800; white-space: nowrap;
    }
    .shop-kakao-rank-table td.code-cell { font-family: ui-monospace, monospace; font-weight: 700; color: #1e3a8a; }
    .shop-kakao-rank-table td.name-cell {
      text-align: left; max-width: 360px; cursor: pointer; color: #1d4ed8;
      text-decoration: underline; text-decoration-color: #bfdbfe;
    }
    .shop-kakao-rank-table td.name-cell:hover { background: #eff6ff; }
    .shop-kakao-rank-table td.date-cell { min-width: 52px; font-variant-numeric: tabular-nums; font-weight: 700; color: #0f172a; }
    .shop-kakao-rank-table td.text-left { text-align: left; }
    .shop-kakao-rank-table tbody tr:hover { background: #f8fafc; }
    .shop-kakao-rank-toolbar-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .shop-kakao-rank-status { font-size: 12px; color: #64748b; padding: 12px 14px; }
    .shop-kakao-rank-status.is-error { color: #b91c1c; }
    .shop-kakao-inflow-section {
      margin-top: 20px; padding-top: 16px; border-top: 1px solid #e2e8f0;
    }
    .shop-kakao-inflow-title {
      font-size: 13px; font-weight: 700; color: #0f172a; margin: 0;
    }
    .shop-kakao-inflow-title-row {
      display: flex; align-items: center; justify-content: space-between;
      gap: 12px; margin: 0 0 12px 2px; flex-wrap: wrap;
    }
    .shop-kakao-inflow-meta {
      font-size: 11px; font-weight: 600; color: #64748b; white-space: nowrap;
    }
    .shop-kakao-inflow-date-block { margin-bottom: 16px; }
    .shop-kakao-inflow-date-label {
      font-size: 12px; font-weight: 700; color: #1e40af; margin: 0 0 6px 2px;
    }
    .shop-kakao-inflow-table { margin-bottom: 4px; }
    .shop-kakao-inflow-table td.num-cell {
      text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap;
    }
    .shop-kakao-inflow-table td.inflow-order-cell {
      cursor: help; position: relative; font-weight: 700; color: #0f172a;
    }
    .shop-kakao-inflow-table td.inflow-order-cell[data-tip]:hover::after {
      content: attr(data-tip);
      position: absolute; z-index: 20; right: 0; bottom: calc(100% + 6px);
      min-width: 120px; padding: 6px 10px; border-radius: 8px;
      background: #0f172a; color: #fff; font-size: 11px; font-weight: 600;
      white-space: nowrap; box-shadow: 0 8px 20px rgba(15, 23, 42, 0.22);
      pointer-events: none;
    }
    .shop-kakao-inflow-table th.date-cell {
      min-width: 52px; font-variant-numeric: tabular-nums;
    }

    .shop-table th.shop-onoff-th,
    .shop-table td.shop-onoff-td {
      width: calc(2.5rem + 0.5cm); max-width: calc(2.5rem + 0.5cm); padding-left: 2px; padding-right: 2px;
    }
    .onoff-btn {
      display: inline-flex; align-items: center; justify-content: center;
      min-width: 2.25rem; padding: 4px 5px; border-radius: 8px;
      font-size: 11px; font-weight: 800; border: 1px solid transparent;
      cursor: pointer; transition: all 0.15s ease;
    }
    .onoff-btn.selling { background: #dcfce7; color: #166534; border-color: #86efac; }
    .onoff-btn.selling:hover { background: #bbf7d0; }
    .onoff-btn.stopped { background: #fee2e2; color: #991b1b; border-color: #fca5a5; }
    .onoff-btn.stopped:hover { background: #fecaca; }
    .onoff-btn.other { background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
    .onoff-btn.new-product { background: #fef3c7; color: #92400e; border-color: #fcd34d; }
    .onoff-btn.new-product:hover { background: #fde68a; }
    .shop-inline-edit {
      width: 100%; min-width: 80px; height: 1.75rem; padding: 0 6px;
      border-radius: 6px; border: 1px solid #cbd5e1; background: #fff;
      font-size: 12px; color: #334155;
    }
    .shop-inline-edit:focus {
      outline: none; border-color: #818cf8;
      box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15);
    }
    .shop-table th.shop-col-code,
    .shop-table td.shop-col-code {
      width: calc(5.5rem + 1cm); max-width: calc(5.5rem + 1cm); padding-left: 4px; padding-right: 4px;
    }
    .shop-table th.shop-col-price,
    .shop-table td.shop-col-price {
      width: 4.25rem; max-width: 4.5rem; padding-left: 4px; padding-right: 4px;
    }
    .shop-table th.shop-col-salecount,
    .shop-table td.shop-col-salecount {
      width: calc(5.5rem - 0.5cm); max-width: calc(6rem - 0.5cm); padding-left: 4px; padding-right: 4px;
    }
    .shop-table th.shop-col-rename,
    .shop-table td.shop-col-rename {
      width: 11rem; min-width: 10rem; max-width: 13rem;
      white-space: normal; vertical-align: middle;
    }
    .shop-rename-th-inner {
      display: inline-flex; align-items: center; justify-content: center; gap: 4px;
      flex-wrap: nowrap; white-space: nowrap; max-width: 100%;
    }
    .shop-rename-th-label { font-weight: 700; }
    .shop-rename-th-search {
      width: 6.5rem; min-width: 5rem; max-width: 8rem; height: 1.35rem;
      padding: 0 4px; margin: 0; border: 1px solid #cbd5e1; border-radius: 4px;
      background: #fff; color: #334155; font-size: 11px; font-weight: 600;
      line-height: 1.2; vertical-align: middle;
    }
    .shop-rename-th-search:focus {
      outline: none; border-color: #818cf8;
      box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15);
    }
    .shop-rename-cell {
      display: inline-flex; align-items: center; justify-content: center; max-width: 100%;
    }
    .shop-rename-btn {
      display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
      width: 100%; max-width: 12rem; padding: 2px 6px; border: 1px solid transparent;
      border-radius: 6px; background: transparent; color: #334155;
      font-size: 12px; font-weight: 700; line-height: 1.25; cursor: pointer;
      overflow: hidden; text-overflow: ellipsis; white-space: normal;
      word-break: keep-all; overflow-wrap: break-word;
      max-height: calc(1.25em * 2 + 6px); text-align: center;
    }
    .shop-rename-btn.is-wrap {
      font-size: 10px; line-height: 1.2;
      max-height: calc(1.2em * 2 + 6px);
    }
    .shop-rename-btn.is-empty { color: #94a3b8; font-weight: 600; }
    .shop-rename-btn:hover:not(:disabled) {
      background: #f1f5f9; border-color: #cbd5e1; color: #0f172a;
    }
    .shop-rename-btn:disabled { opacity: 0.55; cursor: wait; }
    .shop-inline-edit-rename { min-width: 72px; max-width: 12rem; width: 100%; }
    .shop-link-prod-td {
      min-width: 72px; max-width: 110px; vertical-align: middle; text-align: center;
    }
    .shop-link-prod-cell {
      display: inline-flex; align-items: center; justify-content: center; max-width: 100%;
    }
    .shop-link-prod-btn {
      display: inline-block; max-width: 7.5rem; padding: 2px 6px; border: 1px solid transparent;
      border-radius: 6px; background: transparent; color: #334155;
      font-size: 12px; font-weight: 700; line-height: 1.3; cursor: pointer;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    }
    .shop-link-prod-btn.is-empty { color: #94a3b8; font-weight: 600; font-family: inherit; }
    .shop-link-prod-btn:hover:not(:disabled) {
      background: #ecfeff; border-color: #67e8f9; color: #0f172a;
    }
    .shop-link-prod-btn:disabled { opacity: 0.55; cursor: wait; }
    .shop-inline-edit-link-prod { min-width: 72px; max-width: 7.5rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
    .shop-tool-btn-violet {
      background: #7c3aed; border-color: #7c3aed; color: #fff;
    }
    .shop-tool-btn-violet:hover:not(:disabled) { background: #6d28d9; border-color: #6d28d9; }

    .onoff-btn:disabled { opacity: 0.55; cursor: wait; }

    .shop-code-cell {
      display: inline-flex; align-items: center; justify-content: center; gap: 4px;
    }
    .shop-code-text { line-height: 1; }
    .shop-code-copy-btn {
      flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
      width: 18px; height: 18px; padding: 0; border: 1px solid #c7d2fe;
      border-radius: 4px; background: #eef2ff; color: #4338ca;
      font-size: 10px; font-weight: 900; line-height: 1; cursor: pointer;
    }
    .shop-code-copy-btn:hover { background: #e0e7ff; border-color: #a5b4fc; color: #3730a3; }

    .shop-map-work-td {
      min-width: 72px;
      max-width: 96px;
      vertical-align: middle;
      text-align: center;
    }
    .shop-map-work-cell {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      justify-content: center;
      width: 100%;
      max-width: 4.75rem;
      margin: 0 auto;
      gap: 1px;
      line-height: 1.25;
      color: #475569;
      font-size: 11px;
      font-weight: 600;
    }
    .shop-map-work-date,
    .shop-map-work-name {
      display: block;
      width: 100%;
      text-align: center;
      white-space: nowrap;
      box-sizing: border-box;
    }
    .shop-map-work-date {
      color: #64748b;
      font-variant-numeric: tabular-nums;
      letter-spacing: 0;
    }
    .shop-map-work-name {
      color: #334155;
      letter-spacing: 0.22em;
      padding-right: 0.22em; /* letter-spacing 시각 보정 */
    }

    .shop-opt-edit-btn {
      display: inline-flex; align-items: center; justify-content: center;
      min-width: 3rem; padding: 4px 10px; border-radius: 8px;
      font-size: 11px; font-weight: 800; border: 1px solid #c7d2fe;
      background: #eef2ff; color: #4338ca; cursor: pointer;
    }
    .shop-opt-edit-btn:hover:not(:disabled) { background: #e0e7ff; border-color: #a5b4fc; }
    .shop-opt-edit-btn:disabled { opacity: 0.55; cursor: wait; }
    @keyframes shop-opt-work-req-blink-kakao {
      0%, 100% { background: #FEE500; border-color: #e6cf00; color: #3C1E1E; }
      50% { background: #3C1E1E; border-color: #2a1414; color: #FEE500; }
    }
    @keyframes shop-opt-work-req-blink-ss {
      0%, 100% { background: #03C75A; border-color: #02a84a; color: #000000; }
      50% { background: #111111; border-color: #000000; color: #03C75A; }
    }
    body[data-shop-key="kakao"] .shop-opt-edit-btn.shop-opt-work-requested,
    body[data-shop-key="kakao"] .shop-opt-work-req-btn.shop-opt-work-requested,
    body[data-shop-key="kakao"] .shop-work-request-chip {
      animation: shop-opt-work-req-blink-kakao 1s ease-in-out infinite;
    }
    body[data-shop-key="smartstore"] .shop-opt-edit-btn.shop-opt-work-requested,
    body[data-shop-key="smartstore"] .shop-opt-work-req-btn.shop-opt-work-requested,
    body[data-shop-key="smartstore"] .shop-work-request-chip {
      animation: shop-opt-work-req-blink-ss 1.2s ease-in-out infinite;
    }
    /* 긴급 요청: 더 빠르게 · 붉은 계열 */
    @keyframes shop-opt-work-req-blink-urgent {
      0%, 100% { background: #dc2626; border-color: #b91c1c; color: #ffffff; box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.55); }
      50% { background: #fee2e2; border-color: #dc2626; color: #7f1d1d; box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.25); }
    }
    body .shop-opt-edit-btn.shop-opt-work-requested.is-urgent,
    body .shop-opt-work-req-btn.shop-opt-work-requested.is-urgent,
    body .shop-work-request-chip.is-urgent {
      animation: shop-opt-work-req-blink-urgent 0.45s ease-in-out infinite;
      font-weight: 900;
    }
    .shop-opt-work-req-urgent {
      display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0;
      font-size: 12px; font-weight: 800; color: #b91c1c; white-space: nowrap;
      cursor: pointer; user-select: none;
    }
    .shop-opt-work-req-urgent input { accent-color: #dc2626; cursor: pointer; }
    .shop-opt-work-req-urgent:has(input:disabled) { opacity: 0.6; cursor: default; }
    .shop-work-request-bar {
      flex: 1; display: flex; align-items: center; justify-content: flex-end;
      flex-wrap: wrap; gap: 4px; min-width: 0;
      padding: 2px 8px 6px; overflow: hidden;
    }
    .shop-work-request-bar.hidden { display: none; }
    .shop-work-request-chip {
      font-family: ui-monospace, monospace; font-size: 11px; font-weight: 800;
      padding: 3px 8px; border-radius: 6px; border: 1px solid transparent;
      cursor: pointer; line-height: 1.2; white-space: nowrap;
    }
    .shop-work-request-chip:hover { filter: brightness(0.95); }
    .shop-opt-work-req-comment.is-pending {
      background: #f8fafc; color: #334155; cursor: default;
    }

    .shop-opt-edit-panel {
      max-width: min(3024px, calc(100vw - 0.75rem)); width: min(3024px, calc(100vw - 0.75rem));
      max-height: min(calc(100vh - 72px), 2700px); height: min(calc(100vh - 72px), 2700px);
      position: relative;
    }
    .shop-opt-edit-panel.is-user-resized {
      max-width: none; max-height: none;
    }
    .shop-opt-edit-resize-handle {
      position: absolute; z-index: 20; touch-action: none; user-select: none;
    }
    .shop-opt-edit-resize-e {
      top: 12px; right: 0; bottom: 12px; width: 8px; cursor: ew-resize;
    }
    .shop-opt-edit-resize-s {
      left: 12px; right: 12px; bottom: 0; height: 8px; cursor: ns-resize;
    }
    .shop-opt-edit-resize-se {
      right: 0; bottom: 0; width: 18px; height: 18px; cursor: nwse-resize;
    }
    .shop-opt-edit-resize-se::after {
      content: ''; position: absolute; right: 3px; bottom: 3px; width: 10px; height: 10px;
      border-right: 2px solid #94a3b8; border-bottom: 2px solid #94a3b8; border-radius: 0 0 2px 0;
      opacity: 0.85; pointer-events: none;
    }
    .shop-opt-edit-panel.is-resizing { user-select: none; }
    .shop-opt-edit-panel.is-resizing iframe { pointer-events: none; }
    .shop-opt-edit-toolbar { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
    .shop-opt-edit-tool-btn {
      padding: 5px 10px; border-radius: 6px; font-size: 11px; font-weight: 800;
      border: 1px solid #e2e8f0; background: #fff; color: #334155; cursor: pointer;
    }
    .shop-opt-edit-tool-btn:hover { background: #f8fafc; border-color: #cbd5e1; }
    .shop-opt-edit-tool-btn.primary { background: #7c3aed; border-color: #7c3aed; color: #fff; }
    .shop-opt-edit-tool-btn.primary:hover { background: #6d28d9; }
    .shop-opt-edit-tool-btn.convert {
      border-color: #86efac; background: #dcfce7; color: #166534;
    }
    .shop-opt-edit-tool-btn.convert:hover { background: #bbf7d0; }
    .shop-opt-edit-head-actions {
      display: flex; align-items: center; gap: 8px; flex-shrink: 0;
    }
    .shop-opt-edit-head-title {
      display: flex; align-items: center; gap: 6px; min-width: 0; flex: 1 1 auto;
    }
    .shop-opt-edit-head-title h2 {
      min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .shop-opt-edit-copy-code-btn {
      flex-shrink: 0; width: 20px; height: 20px; padding: 0;
      border: 1px solid #cbd5e1; border-radius: 4px;
      background: #fff; color: #475569;
      font-size: 10px; font-weight: 900; line-height: 1;
      cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
    }
    .shop-opt-edit-copy-code-btn:hover { background: #eef2ff; border-color: #a5b4fc; color: #4338ca; }
    .shop-opt-edit-copy-code-btn.is-copied { background: #ecfdf5; border-color: #6ee7b7; color: #047857; }
    .shop-opt-edit-maximize-btn {
      width: 2rem; padding: 0; display: inline-flex; align-items: center; justify-content: center;
    }
    .shop-opt-edit-maximize-btn .shop-opt-edit-maximize-icon { display: block; }
    .shop-opt-edit-panel.is-maximized .shop-opt-edit-resize-handle { opacity: 0.35; }
    #shopOptionEditBlocks {
      display: flex; flex-direction: column; gap: 6px;
    }
    .shop-opt-model-search-wrap {
      margin-bottom: 4px; padding: 5px 8px; border: 1px solid #bfdbfe; border-radius: 6px;
      background: linear-gradient(180deg, #eff6ff 0%, #f8fafc 100%); flex-shrink: 0;
    }
    .shop-opt-search-grid {
      display: grid; grid-template-columns: minmax(74px, 0.21fr) minmax(0, 1fr);
      gap: 6px; align-items: stretch; min-height: 84px;
    }
    .shop-opt-search-left {
      display: flex; flex-direction: column; gap: 4px; min-width: 0;
    }
    .shop-opt-search-right {
      display: flex; flex-direction: column; min-height: 0; min-width: 0;
      border: 1px solid #93c5fd; border-radius: 5px; background: #fff; padding: 4px 6px;
    }
    .shop-opt-search-results-head {
      display: flex; align-items: center; justify-content: space-between; gap: 6px;
      flex-shrink: 0; margin-bottom: 2px;
    }
    .shop-opt-search-results-head-actions {
      display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0;
    }
    .shop-opt-search-results-label {
      font-size: 9px; font-weight: 800; color: #64748b; text-transform: uppercase; letter-spacing: .04em;
    }
    .shop-opt-model-search-input {
      width: 100%; flex: 0 0 auto; min-width: 0; padding: 5px 8px; border: 1px solid #93c5fd; border-radius: 5px;
      font-size: 12px; font-weight: 700; color: #1e3a8a; background: #fff;
    }
    .shop-opt-model-search-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,.15); }
    .shop-opt-model-search-status {
      flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 4px;
      font-size: 10px; font-weight: 700; color: #475569; line-height: 1.35;
      overflow: hidden;
    }
    .shop-opt-model-search-status .shop-opt-model-result-filter {
      flex: 0 0 auto; padding: 4px 8px; font-size: 11px;
    }
    .shop-opt-model-search-status-text {
      flex: 1 1 auto; min-height: 0; overflow: auto;
    }
    .shop-opt-search-right .shop-opt-model-search-results {
      flex: 1 1 auto; min-height: 0; margin-top: 0; overflow: auto;
    }
    .shop-opt-model-search-results.hidden { display: none; }
    .shop-opt-model-search-section { margin-bottom: 6px; }
    .shop-opt-model-search-section-head {
      display: flex; align-items: center; justify-content: flex-start; gap: 6px; margin-bottom: 3px;
    }
    .shop-opt-model-search-section-label {
      font-size: 9px; font-weight: 800; color: #64748b; margin-bottom: 0; text-transform: uppercase;
      letter-spacing: .04em;
    }
    .shop-opt-model-search-clear-btn {
      height: 20px; padding: 0 8px; border: none; border-radius: 5px;
      font-size: 9px; font-weight: 800; color: #64748b; background: #f1f5f9; cursor: pointer;
    }
    .shop-opt-model-search-clear-btn:hover { background: #e2e8f0; color: #334155; }
    .shop-opt-model-search-chips {
      display: flex; flex-wrap: wrap; gap: 4px; align-content: flex-start;
    }
    .shop-opt-model-chip {
      display: inline-flex; flex-direction: column; align-items: flex-start; gap: 1px;
      max-width: 100%; padding: 4px 8px; border-radius: 6px; border: 1px solid #cbd5e1;
      background: #fff; cursor: grab; user-select: none; text-align: left;
    }
    .shop-opt-model-chip:active { cursor: grabbing; }
    .shop-opt-model-chip.is-dragging { opacity: 0.45; }
    .shop-opt-drag-ghost-stack {
      display: flex; flex-direction: column; gap: 2px; align-items: flex-start; pointer-events: none;
    }
    .shop-opt-drag-ghost {
      display: inline-block; padding: 4px 8px; border-radius: 6px;
      border: 1px solid #6366f1; background: #eef2ff; font-size: 11px; font-weight: 800;
      color: #0f172a; white-space: nowrap; max-width: none; pointer-events: none;
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    }
    .shop-opt-model-chip:hover { border-color: #6366f1; background: #eef2ff; }
    .shop-opt-model-chip.is-selected {
      border-color: #2563eb; background: #dbeafe;
      box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.35);
    }
    .shop-opt-model-chip.is-selected:hover { background: #bfdbfe; }
    .shop-opt-model-chip.is-model {
      cursor: pointer; border-color: #93c5fd; background: #dbeafe; color: #1e40af;
    }
    .shop-opt-model-chip.is-model:hover { background: #bfdbfe; }
    .shop-opt-model-chip-label {
      font-size: 11px; font-weight: 800; color: #0f172a; line-height: 1.2;
      word-break: break-all;
    }
    .shop-opt-model-chip-meta {
      font-size: 11px; font-weight: 800; color: #334155; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    }
    .shop-opt-model-chip-stock {
      font-size: 9px; font-weight: 700; color: #0f766e; line-height: 1.2;
    }
    .shop-opt-model-chip-stock.is-out-of-stock { color: #dc2626; }
    .shop-opt-values-editor.shop-opt-drop-target,
    .shop-opt-values-text.shop-opt-drop-target {
      border-color: #6366f1 !important; background: #eef2ff !important; box-shadow: 0 0 0 2px rgba(99,102,241,.2);
    }
    .shop-opt-preview-item.shop-opt-drop-target {
      background: #eef2ff !important;
      box-shadow: inset 0 0 0 2px rgba(99,102,241,.25);
    }
    .shop-opt-preview-item.is-selected {
      background: #dbeafe !important;
    }
    .shop-opt-preview-item.is-selected .shop-opt-preview-col-dims {
      box-shadow: inset 3px 0 0 #2563eb;
    }
    .shop-opt-preview-item.is-dragging {
      opacity: 0.55;
    }
    .shop-opt-preview-col-dims[draggable="true"] {
      cursor: grab;
      user-select: none;
    }
    .shop-opt-preview-col-dims[draggable="true"]:active {
      cursor: grabbing;
    }
    .shop-opt-preview-col-dims { cursor: pointer; }
    .shop-opt-edit-row-wrap { display: flex; flex-direction: column; gap: 3px; }
    .shop-opt-edit-blocks-panel {
      display: flex; flex-direction: column; gap: 0;
      padding: 6px 8px; border: 1px solid #fcd34d; border-radius: 8px; background: #fffbeb;
    }
    .shop-opt-edit-blocks-panel > .shop-opt-edit-row-wrap + .shop-opt-edit-row-wrap {
      margin-top: 6px; padding-top: 6px; border-top: 1px solid #fde68a;
    }
    .shop-opt-edit-row {
      display: grid; grid-template-columns: minmax(74px, 0.21fr) minmax(0, 1fr);
      gap: 6px; align-items: stretch; min-height: 64px;
      padding: 0; border: none; border-radius: 0; background: transparent;
    }
    .shop-opt-edit-row-left { display: flex; flex-direction: column; min-width: 0; }
    .shop-opt-edit-row-right { display: flex; min-width: 0; min-height: 0; }
    .shop-opt-title-cell {
      display: flex; align-items: stretch; gap: 4px; height: 100%; min-width: 0;
    }
    
    .shop-opt-title-cell .shop-opt-ot-title { flex: 1; min-width: 0; min-height: 100%; }
    .shop-opt-values-field {
      display: flex; align-items: flex-start; gap: 4px; width: 100%; min-height: 100%; min-width: 0;
    }
    .shop-opt-values-field .shop-opt-values-editor { flex: 1; min-width: 0; width: 100%; }
    .shop-opt-field-copy-wrap {
      display: flex; align-items: center; gap: 4px; min-width: 0;
    }
    .shop-opt-field-copy-wrap .shop-opt-in { flex: 1; min-width: 0; }
    .shop-opt-field-copy-btn {
      width: 20px; height: 22px; padding: 0; border-radius: 4px; font-size: 10px; font-weight: 800;
      border: 1px solid #cbd5e1; background: #fff; color: #64748b; cursor: pointer; flex-shrink: 0;
      line-height: 1;
    }
    .shop-opt-field-copy-btn:hover { background: #f8fafc; border-color: #94a3b8; color: #334155; }
    .shop-opt-in {
      width: 100%; min-width: 0; padding: 4px 6px; border: 1px solid #e2e8f0;
      border-radius: 5px; font-size: 11px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
      background: #fff;
    }
    .shop-opt-ot-title { border-color: #fcd34d; }
    .shop-opt-values-text { border-color: #cbd5e1; }
    .shop-opt-values-editor {
      position: relative; display: flex; flex-direction: column;
      min-height: 64px; padding: 3px 50px 3px 4px;
      border: 1px solid #e2e8f0; border-radius: 5px; background: #fff; cursor: text;
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    }
    .shop-opt-values-chips {
      display: flex; flex-wrap: wrap; gap: 4px; align-items: center; min-height: 20px; flex: 1 1 auto;
      align-content: flex-start;
    }
    .shop-opt-values-actions {
      position: absolute; right: 3px; bottom: 2px;
      display: flex; align-items: center; gap: 2px;
      margin: 0; padding: 0; border: none; background: transparent;
    }
    .shop-opt-values-actions .shop-opt-row-copy,
    .shop-opt-values-actions .shop-opt-row-add,
    .shop-opt-values-actions .shop-opt-row-remove { cursor: pointer; }
    .shop-opt-value-chip {
      display: inline-flex; align-items: center; gap: 2px; max-width: 100%;
      padding: 2px 4px 2px 6px; border-radius: 4px; border: 1px solid #cbd5e1;
      background: #f8fafc; font-size: 11px; font-weight: 700; color: #0f172a;
      cursor: grab; user-select: none;
    }
    .shop-opt-value-chip.is-selected {
      border-color: #6366f1; background: #eef2ff; box-shadow: 0 0 0 1px rgba(99,102,241,.25);
    }
    .shop-opt-value-chip-label { word-break: break-all; line-height: 1.25; }
    .shop-opt-value-chip:active { cursor: grabbing; }
    .shop-opt-value-chip.is-dragging { opacity: 0.45; }
    .shop-opt-value-chip-remove {
      border: none; background: transparent; color: #94a3b8; cursor: pointer;
      font-size: 12px; line-height: 1; padding: 0 2px; flex-shrink: 0;
    }
    .shop-opt-value-chip-remove:hover { color: #dc2626; }
    .shop-opt-values-typein {
      border: none; outline: none; background: transparent; min-width: 72px; flex: 1 1 72px;
      font-size: 11px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; padding: 2px 4px;
      color: #0f172a;
    }
    .shop-opt-values-typein::placeholder { color: #94a3b8; }
    .shop-opt-row-add, .shop-opt-row-remove, .shop-opt-row-copy {
      width: 22px; height: 22px; padding: 0; border-radius: 5px; font-size: 13px; font-weight: 900;
      line-height: 1; cursor: pointer; flex-shrink: 0;
    }
    .shop-opt-row-analyze-btn {
      height: 22px; padding: 0 7px; border-radius: 5px; font-size: 10px; font-weight: 800;
      line-height: 1; cursor: pointer; flex-shrink: 0; white-space: nowrap;
      border: none; background: #fff7ed; color: #c2410c;
    }
    .shop-opt-row-analyze-btn:hover:not(:disabled) { background: #ffedd5; }
    .shop-opt-row-analyze-btn:disabled { opacity: 0.55; cursor: wait; }
    .shop-opt-row-analyze {
      font-size: 10px; color: #475569; padding: 0 8px 4px; line-height: 1.5;
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    }
    .shop-opt-row-analyze.hidden { display: none; }
    .shop-opt-analyze-miss { color: #b91c1c; font-weight: 800; }
    .shop-opt-analyze-meta { color: #64748b; font-weight: 700; margin-left: 6px; }
    .shop-opt-row-apply-btn {
      margin-left: 8px; height: 20px; padding: 0 8px; border-radius: 5px; font-size: 10px; font-weight: 800;
      border: 1px solid #4f46e5; background: #eef2ff; color: #4338ca; cursor: pointer; vertical-align: middle;
    }
    .shop-opt-row-apply-btn:hover { background: #e0e7ff; }
    .shop-opt-row-copy {
      border: none; background: #e0e7ff; color: #3730a3; font-size: 11px;
    }
    .shop-opt-row-copy:hover { background: #c7d2fe; }
    .shop-opt-row-add {
      border: none; background: #dcfce7; color: #166534;
    }
    .shop-opt-row-add:hover { background: #bbf7d0; }
    .shop-opt-row-remove {
      border: none; background: transparent; color: #dc2626;
    }
    .shop-opt-row-remove:hover { background: #fef2f2; }
    .shop-opt-preview-wrap { margin-top: 10px; border: 1px solid #e2e8f0; border-radius: 10px; overflow: hidden; flex: 1 1 auto; min-height: 160px; display: flex; flex-direction: column; }
    .shop-opt-preview-head {
      display: flex; align-items: center; justify-content: space-between; gap: 8px;
      padding: 6px 10px; background: #f8fafc; border-bottom: 1px solid #e2e8f0;
      font-size: 11px; font-weight: 800; color: #334155;
    }
    .shop-opt-preview-head-left {
      display: flex; align-items: center; gap: 8px; min-width: 0;
    }
    .shop-opt-preview-head-actions {
      display: flex; align-items: center; gap: 6px; flex-shrink: 0;
    }
    .shop-opt-preview-head.shop-opt-drop-target {
      background: #eef2ff !important; box-shadow: inset 0 -2px 0 #6366f1;
    }
    .shop-opt-preview-table th.shop-opt-preview-col-code.shop-opt-drop-target {
      background: #eef2ff !important; box-shadow: inset 0 -2px 0 #6366f1;
    }
    .shop-opt-preview-scroll { flex: 1 1 auto; min-height: 0; max-height: none; overflow: auto; padding: 0; }
    .shop-opt-preview-scroll.hidden { display: none; }
    .shop-opt-preview-table-wrap { min-width: 0; }
    .shop-opt-preview-table {
      width: 100%; border-collapse: collapse; table-layout: fixed;
      font-size: 12px; background: #fff;
    }
    .shop-opt-preview-table th,
    .shop-opt-preview-table td {
      border: 1px solid #cbd5e1; padding: 4px 6px; vertical-align: middle;
      text-align: left;
    }
    .shop-opt-preview-table thead th {
      background: #f1f5f9; font-size: 9px; font-weight: 800; color: #64748b;
      text-transform: uppercase; letter-spacing: .04em;
      position: sticky; top: 0; z-index: 1;
      box-shadow: 0 1px 0 #cbd5e1;
    }
    .shop-opt-preview-table .shop-opt-preview-col-move-edge { width: 22px; }
    .shop-opt-preview-table .shop-opt-preview-col-move { width: 22px; }
    .shop-opt-preview-table .shop-opt-preview-col-remove { width: 26px; }
    .shop-opt-preview-table .shop-opt-preview-col-dims { width: 24%; }
    .shop-opt-preview-table .shop-opt-preview-col-kind { width: 42px; }
    .shop-opt-preview-table .shop-opt-preview-col-code { width: 32%; }
    .shop-opt-preview-table .shop-opt-preview-col-names { width: auto; }
    .shop-opt-preview-table td.shop-opt-preview-col-move,
    .shop-opt-preview-table td.shop-opt-preview-col-move-edge,
    th.shop-opt-preview-col-move,
    th.shop-opt-preview-col-move-edge {
      padding: 1px 2px; text-align: center; vertical-align: middle;
    }
    th.shop-opt-preview-col-move,
    th.shop-opt-preview-col-move-edge {
      font-size: 9px; letter-spacing: -0.02em; color: #94a3b8;
    }
    .shop-opt-preview-move-btns {
      display: inline-flex; flex-direction: column; align-items: center; gap: 1px;
    }
    .shop-opt-preview-move-up,
    .shop-opt-preview-move-down,
    .shop-opt-preview-move-top,
    .shop-opt-preview-move-bottom {
      width: 14px; height: 12px; padding: 0; border: none; border-radius: 2px;
      background: transparent; color: #64748b; font-size: 10px; font-weight: 800;
      line-height: 1; cursor: pointer;
    }
    .shop-opt-preview-move-up:hover:not(:disabled),
    .shop-opt-preview-move-down:hover:not(:disabled),
    .shop-opt-preview-move-top:hover:not(:disabled),
    .shop-opt-preview-move-bottom:hover:not(:disabled) {
      background: #e2e8f0; color: #0f172a;
    }
    .shop-opt-preview-move-up:disabled,
    .shop-opt-preview-move-down:disabled,
    .shop-opt-preview-move-top:disabled,
    .shop-opt-preview-move-bottom:disabled {
      opacity: 0.28; cursor: default;
    }
    .shop-opt-preview-dims-expand-btn {
      margin-left: auto; flex-shrink: 0;
      width: 18px; height: 16px; padding: 0; border: 1px solid #cbd5e1; border-radius: 3px;
      background: #fff; color: #334155; font-size: 11px; font-weight: 700; line-height: 1;
      cursor: pointer;
    }
    .shop-opt-preview-dims-expand-btn:hover {
      background: #eff6ff; border-color: #93c5fd; color: #1d4ed8;
    }
    .shop-opt-preview-dims-search {
      width: 100%; min-width: 0; margin: 2px 0 3px; padding: 1px 6px;
      height: 18px; box-sizing: border-box;
      border: 1px solid #cbd5e1; border-radius: 4px;
      font-size: 10px; font-weight: 700; color: #334155; background: #fff;
    }
    .shop-opt-preview-dims-search:focus {
      outline: none; border-color: #93c5fd; box-shadow: 0 0 0 2px rgba(59, 130, 246, .2);
    }
    .shop-opt-preview-table.is-dims-expanded td.shop-opt-preview-col-dims .shop-opt-preview-dims {
      overflow: visible; text-overflow: clip;
    }
    .shop-opt-preview-table td.shop-opt-preview-col-kind {
      text-align: center; vertical-align: middle; padding: 2px 3px;
    }
    .shop-opt-preview-kind-badge {
      display: inline-block; font-size: 10px; font-weight: 800; line-height: 1.2;
      padding: 2px 5px; border-radius: 999px; white-space: nowrap;
    }
    .shop-opt-preview-kind-badge.is-set { background: #dbeafe; color: #1d4ed8; }
    .shop-opt-preview-kind-badge.is-single { background: #f1f5f9; color: #64748b; }
    .shop-opt-preview-table td.shop-opt-preview-col-remove {
      padding: 2px; text-align: center; vertical-align: middle;
    }
    .shop-opt-preview-remove,
    .shop-opt-preview-add {
      width: 14px; height: 14px; padding: 0; border: none; border-radius: 3px;
      background: transparent; font-size: 12px; font-weight: 800; line-height: 1;
      cursor: pointer; flex-shrink: 0;
    }
    .shop-opt-preview-remove { color: #dc2626; }
    .shop-opt-preview-remove:hover { background: #fef2f2; color: #b91c1c; }
    .shop-opt-preview-add { color: #2563eb; }
    .shop-opt-preview-add:hover { background: #eff6ff; color: #1d4ed8; }
    th.shop-opt-preview-col-remove {
      padding: 2px; text-align: center; vertical-align: middle;
    }
    .shop-opt-preview-dims {
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: #334155;
      white-space: nowrap; line-height: 1.45; overflow: hidden; text-overflow: ellipsis;
      font-size: 12px; display: block;
    }
    .shop-opt-preview-dims-input {
      width: 100%; min-width: 0; box-sizing: border-box;
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
      font-size: 12px; line-height: 1.45; color: #334155;
      border: 1px solid #cbd5e1; border-radius: 3px; padding: 1px 4px;
      background: #fff;
    }
    .shop-opt-preview-dims-input:focus {
      outline: none; border-color: #93c5fd; box-shadow: 0 0 0 2px rgba(59, 130, 246, .2);
    }
    .shop-opt-preview-table td.shop-opt-preview-col-dims[data-nav-tooltip] {
      position: relative;
    }
    /* 스크롤 컨테이너 overflow를 hover 시 visible로 바꾸면 스크롤바/테이블 레이아웃이 깨지므로 유지하지 않음.
       툴팁은 셀 아래쪽으로 띄워 스크롤 영역 안에서 보이게 함. */
    #shopOptionEditModal td.shop-opt-preview-col-dims[data-nav-tooltip]:hover {
      z-index: 5;
    }
    #shopOptionEditModal td.shop-opt-preview-col-dims[data-nav-tooltip]::after {
      bottom: auto;
      top: calc(100% + 4px);
      margin-bottom: 0;
      left: 0;
      transform: none;
      max-width: min(260px, 70vw);
      white-space: normal;
      text-align: left;
    }
    .shop-opt-preview-table th.shop-opt-preview-col-dims,
    .shop-opt-preview-table th.shop-opt-preview-col-code,
    .shop-opt-preview-table th.shop-opt-preview-col-names {
      padding: 2px 4px 0; vertical-align: top;
    }
    .shop-opt-preview-col-head {
      display: flex; flex-direction: column; gap: 0; min-width: 0;
    }
    .shop-opt-preview-col-label-row {
      display: flex; align-items: center; gap: 4px; min-width: 0;
    }
    .shop-opt-preview-col-label {
      line-height: 1.2; white-space: nowrap; min-width: 0; flex-shrink: 0;
    }
    .shop-opt-preview-col-reset-btn {
      padding: 0 5px; height: 18px; border: 1px solid #cbd5e1; border-radius: 4px;
      background: #fff; color: #64748b; font-size: 10px; font-weight: 700; line-height: 1;
      cursor: pointer; flex-shrink: 0; white-space: nowrap;
    }
    .shop-opt-preview-col-reset-btn:hover {
      background: #fef2f2; border-color: #fca5a5; color: #dc2626;
    }
    .shop-opt-preview-col-select-all-btn:hover {
      background: #eff6ff; border-color: #93c5fd; color: #1d4ed8;
    }
    .shop-opt-preview-col-out-of-stock-btn {
      border-color: #fecaca; color: #dc2626; background: #fff;
    }
    .shop-opt-preview-col-out-of-stock-btn:hover {
      background: #fef2f2; border-color: #f87171; color: #b91c1c;
    }
    .shop-opt-preview-col-scroll-btns {
      display: inline-flex; align-items: center; gap: 2px; flex-shrink: 0; margin-left: auto;
    }
    .shop-opt-preview-col-scroll-btn {
      width: 18px; height: 18px; padding: 0; border: 1px solid #cbd5e1; border-radius: 4px;
      background: #fff; color: #475569; font-size: 11px; font-weight: 700; line-height: 1;
      cursor: pointer; flex-shrink: 0;
    }
    .shop-opt-preview-col-scroll-btn:hover:not(:disabled) { background: #f1f5f9; border-color: #94a3b8; }
    .shop-opt-preview-col-scroll-btn:disabled { opacity: 0.35; cursor: default; }
    .shop-opt-preview-col-hscroll {
      overflow: hidden; width: 100%; max-width: 100%; height: 0; margin: 0; padding: 0;
      box-sizing: border-box; pointer-events: none;
    }
    .shop-opt-preview-col-hscroll-track { height: 1px; pointer-events: none; }
    .shop-opt-preview-table td.shop-opt-preview-col-code,
    .shop-opt-preview-table td.shop-opt-preview-col-names {
      padding: 0; vertical-align: middle; overflow: hidden; max-width: 0;
    }
    .shop-opt-preview-col-body {
      overflow: hidden; padding: 2px 4px; box-sizing: border-box;
    }
    .shop-opt-preview-col-body-inner {
      display: inline-block; min-width: min-content; max-width: none;
      will-change: transform;
    }
    .shop-opt-preview-code.shop-opt-in {
      width: auto; min-width: 0; max-width: none;
    }
    .shop-opt-preview-code {
      display: block; width: auto; min-width: 0; max-width: none;
      padding: 0 2px; font-size: 11px; box-sizing: border-box; border: none; background: transparent;
      resize: none; overflow: hidden; white-space: pre; word-break: normal;
      line-height: 22px; height: 22px; min-height: 22px;
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    }
    .shop-opt-preview-code:focus {
      outline: none; background: #fff; box-shadow: inset 0 0 0 1px #93c5fd;
    }
    .shop-opt-preview-sku-names {
      display: inline-block; min-width: min-content;
      font-size: 11px; font-weight: 700; color: #475569; line-height: 22px;
      white-space: nowrap; word-break: normal;
    }
    .shop-opt-preview-sku-pair-name.is-out-of-stock {
      color: #dc2626;
    }
    .shop-opt-preview-item.is-out-of-stock td.shop-opt-preview-col-names {
      background: #fef2f2;
    }
    .shop-opt-preview-sku-pair-sep { white-space: pre; color: #94a3b8; font-weight: 800; }
    #shopOptionEditModal .shop-modal-foot {
      flex-wrap: nowrap !important;
      gap: 8px;
    }
    .shop-opt-work-req-foot {
      display: flex; align-items: center; gap: 8px; flex-wrap: nowrap;
      flex: 1 1 auto; min-width: 0; margin-right: auto;
    }
    .shop-opt-work-req-comment {
      flex: 1 1 120px; min-width: 100px; max-width: 480px; height: 32px;
      padding: 0 10px; border-radius: 8px; border: 1px solid #cbd5e1;
      background: #fff; font-size: 12px; color: #334155;
    }
    .shop-opt-work-req-comment::placeholder { color: #94a3b8; }
    .shop-opt-work-req-select {
      flex-shrink: 0; height: 32px; min-width: 100px; padding: 0 8px; border-radius: 8px;
      border: 1px solid #cbd5e1; background: #fff; font-size: 12px; font-weight: 700; color: #334155;
    }
    .shop-opt-work-req-btn {
      flex-shrink: 0; height: 32px; padding: 0 12px; border-radius: 8px; font-size: 12px; font-weight: 800;
      border: 1px solid #059669; background: #ecfdf5; color: #047857; cursor: pointer; white-space: nowrap;
    }
    .shop-opt-work-req-btn:hover:not(:disabled) { background: #d1fae5; }
    .shop-opt-work-req-btn:disabled { opacity: 0.5; cursor: not-allowed; }
    .shop-modal-foot-actions { display: flex; gap: 8px; flex-shrink: 0; align-items: center; }
    #shopOptionEditModal.shop-modal-backdrop {
      top: 64px; bottom: 0; left: 0; right: 0;
      justify-content: flex-start; align-items: flex-start;
      padding: 0.5rem 0.75rem 0.75rem 0.5rem;
      box-sizing: border-box;
    }
    #shopOptionEditModal .shop-modal-head {
      padding: 6px 10px; gap: 8px; align-items: center;
    }
    #shopOptionEditModal .shop-modal-head h2 {
      font-size: 15px; line-height: 1.2; margin: 0;
    }
    #shopOptionEditModal .shop-modal-body {
      display: flex; flex-direction: column; gap: 4px; overflow: hidden; min-height: 0;
      padding: 6px 10px;
    }
    #shopOptionEditModal .shop-modal-foot {
      padding: 6px 10px !important; gap: 6px !important;
    }
    #shopOptionEditModal .shop-opt-search-grid { min-height: 96px; gap: 4px; }
    #shopOptionEditModal .shop-opt-model-search-input { padding: 4px 8px; }
    #shopOptionEditModal .shop-opt-model-search-chips { gap: 3px; }
    #shopOptionEditModal .shop-opt-values-editor { min-height: 58px; padding-right: 72px; }
    #shopOptionEditModal .shop-opt-edit-toolbar { margin-bottom: 4px; gap: 4px; }
    #shopOptionEditModal .shop-opt-preview-wrap {
      margin-top: 4px; border-radius: 6px; min-height: 160px; flex: 1 1 auto;
    }
    #shopOptionEditModal .shop-opt-preview-head { padding: 4px 8px; gap: 6px; }
    #shopOptionEditModal .shop-opt-preview-head-actions { gap: 4px; }
    #shopOptionEditModal .shop-opt-preview-table th,
    #shopOptionEditModal .shop-opt-preview-table td { padding: 2px 4px; }
    #shopOptionEditModal .shop-opt-preview-dims-search { height: 16px; font-size: 10px; padding: 0 5px; }
    #shopOptionEditModal .shop-opt-work-req-foot { gap: 6px; }
    #shopOptionEditModal .shop-opt-work-req-comment,
    #shopOptionEditModal .shop-opt-work-req-select,
    #shopOptionEditModal .shop-opt-work-req-btn { height: 28px; }
    #shopOptionEditModal #shopOptionEditBlocks { flex-shrink: 0; max-height: min(44vh, 540px); overflow: auto; gap: 4px; }
    #shopOptionEditModal .shop-opt-edit-row-wrap { gap: 2px; }
    #shopOptionEditModal .shop-opt-edit-row { gap: 4px; min-height: 58px; }
    #shopOptionEditModal .shop-opt-row-copy,
    #shopOptionEditModal .shop-opt-row-add,
    #shopOptionEditModal .shop-opt-row-remove { width: 20px; height: 20px; font-size: 12px; }
    #shopOptionEditModal .shop-opt-row-copy { font-size: 10px; }
    #shopOptionEditModal .shop-opt-in { padding: 3px 5px; }
    #shopOptionEditModal .shop-opt-edit-tool-btn { padding: 4px 8px; }
    .shop-opt-string-modal {
      position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: center;
      background: rgba(15, 23, 42, 0.35); border-radius: 1rem;
    }
    .shop-opt-string-modal.hidden { display: none; }
    .shop-opt-string-modal-panel {
      width: min(480px, calc(100% - 2rem)); padding: 14px 16px; border-radius: 10px;
      border: 1px solid #e2e8f0; background: #fff; box-shadow: 0 12px 32px rgba(15,23,42,.18);
    }
    .shop-opt-string-modal-title { font-size: 13px; font-weight: 900; color: #1e293b; margin: 0 0 4px; }
    .shop-opt-string-modal-hint { font-size: 10px; font-weight: 700; color: #64748b; margin: 0 0 8px; }
    .shop-opt-string-section { margin-top: 8px; }
    .shop-opt-string-section-label {
      font-size: 10px; font-weight: 800; color: #475569; margin: 0 0 4px;
    }
    .shop-opt-string-instruction {
      width: 100%; min-height: 56px; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 6px;
      font-size: 12px; font-weight: 600; color: #334155; resize: vertical;
    }
    .shop-opt-string-preview {
      margin-top: 0; padding: 8px 10px; border-radius: 6px; background: #f8fafc; border: 1px solid #e2e8f0;
      font-size: 11px; font-weight: 700; color: #475569; line-height: 1.55; max-height: 220px; overflow: auto;
      white-space: pre-wrap; word-break: break-all; min-height: 48px;
    }
    .shop-opt-string-preview.empty { color: #94a3b8; font-weight: 600; }
    .shop-map-detail-preview-header { margin-bottom: 6px; color: #334155; }
    .shop-map-detail-preview-row {
      display: flex; align-items: flex-start; gap: 6px; padding: 2px 0;
    }
    .shop-map-detail-preview-remove {
      width: 14px; height: 14px; padding: 0; border: none; border-radius: 3px;
      background: transparent; color: #dc2626; font-size: 12px; font-weight: 800; line-height: 1;
      cursor: pointer; flex-shrink: 0; margin-top: 1px;
    }
    .shop-map-detail-preview-remove:hover { background: #fef2f2; color: #b91c1c; }
    .shop-map-detail-preview-text { flex: 1; min-width: 0; word-break: break-all; }
    .shop-opt-string-modal-actions {
      display: flex; justify-content: flex-end; gap: 6px; margin-top: 10px;
    }

    .count-badge {
      display: inline-flex; align-items: center; justify-content: center;
      min-width: 4.5rem; padding: 2px 8px; border-radius: 8px;
      font-size: 11px; font-weight: 800; cursor: pointer;
      background: #eef2ff; color: #4338ca; border: 1px solid #c7d2fe;
      transition: background 0.15s ease; font-variant-numeric: tabular-nums;
      letter-spacing: 0.02em;
    }
    .count-badge:hover { background: #e0e7ff; }
    .count-badge-ok { background: #dcfce7; color: #166534; border-color: #86efac; }
    .count-badge-ok:hover { background: #bbf7d0; }
    .count-badge-warn { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
    .count-badge-warn:hover { background: #fecaca; }
    .count-badge-empty { background: #f8fafc; color: #94a3b8; border-color: #e2e8f0; cursor: pointer; }
    .count-badge-loading { background: #f8fafc; color: #94a3b8; border-color: #e2e8f0; }
    /* 방금 연 매핑 배지 — 정상 색 반전(폰트↔채우기/테두리) */
    .count-badge.count-badge-visited,
    .count-badge-ok.count-badge-visited,
    .count-badge-warn.count-badge-visited,
    .count-badge-empty.count-badge-visited {
      background: #166534;
      color: #dcfce7;
      border-color: #166534;
      box-shadow: none;
    }
    .count-badge.count-badge-visited:hover,
    .count-badge-ok.count-badge-visited:hover,
    .count-badge-warn.count-badge-visited:hover {
      background: #14532d;
      border-color: #14532d;
      color: #dcfce7;
    }

    .shop-toolbar {
      display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
      gap: 0.75rem; padding: 12px 14px; background: #fff;
      border: 1px solid #e2e8f0; border-bottom: none;
    }
    .shop-toolbar-left { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; min-width: 0; flex-shrink: 0; }
    .shop-toolbar-search-wrap {
      flex: 1 1 180px; min-width: 160px; max-width: 280px;
    }
    .shop-toolbar-opt-search-wrap {
      position: relative;
      flex: 1 1 130px; min-width: 140px; max-width: 180px;
    }
    .shop-toolbar-opt-search-wrap .shop-toolbar-opt-search {
      width: 100%;
      padding-right: 52px;
    }
    .shop-toolbar-opt-search-wrap .shop-toolbar-opt-search-btn {
      position: absolute;
      top: 3px;
      right: 3px;
      z-index: 1;
      height: calc(2rem - 6px);
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid #16a34a;
      background: #16a34a;
      color: #fff;
      font-size: 11px;
      font-weight: 800;
      line-height: 1;
      cursor: pointer;
    }
    .shop-toolbar-opt-search-wrap .shop-toolbar-opt-search-btn:hover:not(:disabled) {
      background: #15803d;
      border-color: #15803d;
    }
    .shop-toolbar-search {
      width: 100%; height: 2rem; padding: 0 10px 0 30px;
      border-radius: 8px; border: 1px solid #cbd5e1; background: #f8fafc;
      font-size: 12px; color: #334155;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.65' y1='16.65' x2='21' y2='21'/%3E%3C/svg%3E");
      background-repeat: no-repeat; background-position: 9px center;
    }
    .shop-toolbar-opt-search {
      border-color: #86efac; background-color: #f0fdf4;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2316a34a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.65' y1='16.65' x2='21' y2='21'/%3E%3C/svg%3E");
    }
    .shop-toolbar-search:focus {
      outline: none; border-color: #818cf8; background-color: #fff;
      box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
    }
    .shop-toolbar-opt-search:focus {
      border-color: #22c55e; background-color: #fff;
      box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
    }
    .shop-toolbar-search::placeholder { color: #94a3b8; }
    .shop-toolbar-opt-search::placeholder { color: #86a789; }
    .shop-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-left: auto; }
    .shop-tool-btn {
      height: 2rem; padding: 0 12px; border-radius: 8px;
      font-size: 12px; font-weight: 700; white-space: nowrap;
      border: 1px solid #cbd5e1; background: #fff; color: #334155;
    }
    .shop-tool-btn:hover:not(:disabled) { background: #f8fafc; }
    .shop-tool-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-tool-btn-primary {
      background: #4f46e5; border-color: #4f46e5; color: #fff;
    }
    .shop-tool-btn-primary:hover:not(:disabled) { background: #4338ca; border-color: #4338ca; }
    .shop-tool-btn-emerald {
      background: #059669; border-color: #059669; color: #fff;
    }
    .shop-tool-btn-emerald:hover:not(:disabled) { background: #047857; border-color: #047857; }
    .shop-tool-btn-teal {
      background: #0d9488; border-color: #0d9488; color: #fff;
    }
    .shop-tool-btn-teal:hover:not(:disabled) { background: #0f766e; border-color: #0f766e; }
    .shop-tool-btn-amber {
      background: #d97706; border-color: #d97706; color: #fff;
    }
    .shop-tool-btn-amber:hover:not(:disabled) { background: #b45309; border-color: #b45309; }
    .shop-mapping-fix-wrap { position: relative; display: inline-flex; }
    .shop-mapping-fix-wrap.hidden { display: none; }
    .shop-mapping-fix-menu {
      position: absolute; top: calc(100% + 4px); left: 0; z-index: 60;
      min-width: 220px; padding: 6px; border-radius: 10px;
      border: 1px solid #e2e8f0; background: #fff; box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
    }
    .shop-mapping-fix-menu.hidden { display: none; }
    .shop-mapping-fix-menu-item {
      display: block; width: 100%; text-align: left; padding: 8px 10px;
      border: none; background: transparent; border-radius: 8px;
      font-size: 12px; font-weight: 700; color: #334155; cursor: pointer;
    }
    .shop-mapping-fix-menu-item:hover { background: #f8fafc; }
    #shopMappingFixModal .shop-mapping-fix-panel { width: min(1180px, 96vw); max-height: min(90vh, 920px); }
    #shopMappingFixModal.shop-modal-backdrop.is-maximized {
      top: 64px;
      padding: 0.25rem;
      align-items: stretch;
      justify-content: stretch;
    }
    #shopMappingFixModal .shop-mapping-fix-panel.is-maximized {
      width: 100%;
      max-width: none;
      height: 100%;
      max-height: none;
    }
    #shopMappingFixModal .shop-mapping-fix-panel.is-maximized .shop-mapping-fix-body {
      max-height: none;
      flex: 1 1 auto;
    }
    .shop-mapping-fix-search-strip {
      padding: 0.5rem 1rem 0.75rem;
      border-bottom: 1px solid #e2e8f0;
      background: #f8fafc;
    }
    .shop-mapping-fix-search-strip.hidden { display: none; }
    .shop-mapping-fix-search-wrap {
      display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    }
    .shop-mapping-fix-search-input {
      flex: 1 1 220px; min-width: 180px; max-width: 420px;
      padding: 6px 10px; border: 1px solid #cbd5e1; border-radius: 8px;
      font-size: 12px; background: #fff;
    }
    .shop-mapping-fix-search-input:focus {
      outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,.15);
    }
    .shop-mapping-fix-search-status { font-size: 11px; color: #64748b; }
    .shop-mapping-fix-search-results { margin-top: 8px; }
    .shop-mapping-fix-search-results.hidden { display: none; }
    .shop-mapping-fix-search-results .shop-opt-model-search-chips { gap: 4px; }
    .shop-mapping-fix-draft-link {
      width: 100%; min-width: 160px; padding: 4px 6px;
      border: 1px solid #cbd5e1; border-radius: 6px;
      font-size: 11px; font-family: ui-monospace, monospace;
      background: #fff;
    }
    .shop-mapping-fix-draft-link:focus {
      outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,.12);
    }
    .shop-mapping-fix-draft-link.is-drop-target {
      border-color: #10b981; background: #ecfdf5;
    }
    .shop-mapping-fix-toolbar {
      display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
      padding: 0 1rem 0.75rem; border-bottom: 1px solid #e2e8f0;
    }
    .shop-mapping-fix-body { max-height: min(62vh, 640px); overflow: auto; }
    .shop-mapping-fix-foot {
      display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap;
      padding: 0.75rem 1rem; border-top: 1px solid #e2e8f0;
    }
    .shop-mapping-fix-table { width: 100%; border-collapse: collapse; font-size: 12px; }
    .shop-mapping-fix-table th,
    .shop-mapping-fix-table td {
      border-bottom: 1px solid #e2e8f0; padding: 8px 10px; vertical-align: top; text-align: left;
    }
    .shop-mapping-fix-table th { position: sticky; top: 0; background: #f8fafc; z-index: 1; font-weight: 800; }
    .shop-mapping-fix-table .shop-mapping-fix-code-cell {
      justify-content: flex-start;
      gap: 4px;
    }
    .shop-mapping-fix-table .shop-mapping-fix-map-btn {
      background: #ecfdf5;
      border-color: #a7f3d0;
      color: #047857;
    }
    .shop-mapping-fix-table .shop-mapping-fix-map-btn:hover {
      background: #d1fae5;
      border-color: #6ee7b7;
      color: #065f46;
    }
    .shop-mapping-fix-table .link-codes-cell {
      white-space: normal;
      word-break: break-word;
      vertical-align: top;
    }
    .shop-mapping-fix-table .shop-link-code-line {
      display: flex; align-items: center; justify-content: space-between; gap: 6px;
      padding: 1px 0;
    }
    .shop-mapping-fix-table .shop-link-code-text {
      flex: 1 1 auto; min-width: 0;
    }
    .shop-mapping-fix-table .shop-link-code-text.is-out-of-stock,
    .shop-mapping-fix-table .shop-link-code-text.is-link-set-mismatch {
      color: #dc2626;
      font-weight: 800;
    }
    .shop-mapping-fix-empty { padding: 2rem; text-align: center; color: #94a3b8; }
    .shop-mapping-fix-status { font-size: 12px; color: #64748b; margin-right: auto; }
    .shop-status-msg { font-size: 11px; color: #4338ca; font-weight: 700; }

    .shop-sabang-wrap { position: relative; display: inline-flex; }
    .shop-sabang-wrap.hidden { display: none; }
    .shop-sabang-popover { display: none !important; }
    .shop-sabang-download {
      margin-top: 6px; padding: 0; border: none; background: none;
      font-size: 11px; font-weight: 800; color: #0f766e; cursor: pointer;
    }
    .shop-sabang-download:hover { color: #134e4a; text-decoration: underline; }
    .shop-sabang-msg { margin-top: 6px; font-size: 11px; font-weight: 800; color: #047857; }

    #shopSabangMapModal .shop-modal-panel { width: min(920px, 100%); max-height: min(88vh, 860px); }
    #shopSabangMapModal .shop-modal-body {
      display: flex; flex-direction: column; min-height: 0; padding-top: 0.75rem; padding-bottom: 0.75rem;
    }
    .shop-sabang-map-top {
      display: flex; align-items: stretch; gap: 8px; flex-shrink: 0;
    }
    .shop-sabang-map-drop {
      display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
      gap: 2px; flex: 0 0 200px; min-width: 160px; min-height: 0; padding: 8px 10px;
      border: 1.5px dashed #99f6e4; border-radius: 8px; background: #f0fdfa;
      color: #0f766e; font-size: 11px; font-weight: 700; cursor: pointer; line-height: 1.3;
      transition: border-color .15s, background .15s;
    }
    .shop-sabang-map-drop.is-dragover {
      border-color: #0f766e; background: #ccfbf1;
    }
    .shop-sabang-map-drop .shop-sabang-map-drop-hint {
      font-size: 10px; font-weight: 600; color: #64748b;
    }
    .shop-sabang-map-meta {
      flex: 1 1 auto; min-width: 0; margin: 0; padding: 6px 10px; border-radius: 8px;
      background: #f8fafc; border: 1px solid #e2e8f0; font-size: 11px; color: #334155;
      display: grid; grid-template-columns: auto 1fr; column-gap: 8px; row-gap: 2px; align-items: baseline;
    }
    .shop-sabang-map-meta dt {
      font-weight: 800; color: #64748b; font-size: 10px; margin: 0; white-space: nowrap;
    }
    .shop-sabang-map-meta dd {
      margin: 0; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .shop-sabang-map-search-row {
      display: flex; gap: 8px; align-items: center; margin-top: 8px; flex-wrap: nowrap; flex-shrink: 0;
    }
    .shop-sabang-map-search-row input[type="search"] {
      flex: 1 1 auto; min-width: 0; border: 1px solid #cbd5e1; border-radius: 8px;
      padding: 6px 10px; font-size: 13px; font-weight: 700;
    }
    .shop-sabang-map-search-row input[type="search"]:focus {
      outline: none; border-color: #0f766e; box-shadow: 0 0 0 2px rgba(15, 118, 110, 0.15);
    }
    .shop-sabang-map-result-meta {
      margin-top: 6px; margin-bottom: 0; font-size: 11px; font-weight: 700; color: #64748b; flex-shrink: 0;
    }
    .shop-sabang-map-table-wrap {
      margin-top: 6px; flex: 1 1 auto; min-height: 280px; max-height: none; overflow: auto;
      border: 1px solid #e2e8f0; border-radius: 10px;
    }
    .shop-sabang-map-table { width: 100%; border-collapse: collapse; font-size: 12px; }
    .shop-sabang-map-table th, .shop-sabang-map-table td {
      border-bottom: 1px solid #e2e8f0; padding: 7px 10px; text-align: left; vertical-align: top;
    }
    .shop-sabang-map-table th {
      position: sticky; top: 0; background: #f0fdfa; color: #115e59; font-weight: 800; z-index: 1;
    }
    .shop-sabang-map-table td.code-cell { font-family: ui-monospace, monospace; font-weight: 800; color: #0f766e; white-space: nowrap; }
    .shop-sabang-map-empty { padding: 24px; text-align: center; color: #94a3b8; font-size: 12px; font-weight: 700; }

    .shop-sabang-panel {
      padding: 16px; background: #fff; border: 1px solid #e2e8f0; border-top: none;
    }
    .shop-sabang-panel.hidden { display: none; }
    .shop-sabang-set-label {
      font-size: 13px; font-weight: 800; color: #334155; margin-bottom: 8px;
    }
    .shop-sabang-set-toolbar {
      display: flex; flex-wrap: nowrap; align-items: center; gap: 0.5rem 0.75rem;
      padding: 10px 12px; background: #f8fafc; border: 1px solid #e2e8f0;
      border-radius: 10px; overflow-x: auto;
    }
    .shop-sabang-set-toolbar.is-dragover {
      border-color: #818cf8; background: #eef2ff;
    }
    .shop-sabang-set-field {
      display: inline-flex; align-items: center; gap: 6px; min-width: 0; flex-shrink: 1;
    }
    .shop-sabang-set-label-inline {
      font-size: 11px; font-weight: 800; color: #64748b; white-space: nowrap;
    }
    .shop-sabang-set-value {
      font-size: 12px; font-weight: 700; color: #0f172a;
      max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .shop-sabang-set-value[data-set-file-name] {
      cursor: default;
      text-decoration: none;
    }
    .shop-sabang-set-value[data-set-file-name].is-file-link {
      color: #047857;
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .shop-sabang-set-value[data-set-file-name].is-file-link:hover {
      color: #065f46;
    }
    #shopCoupangFileName.is-downloadable {
      color: #4f46e5;
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    #shopCoupangFileName.is-downloadable:hover {
      color: #4338ca;
    }
    .shop-sabang-set-btn {
      height: 2rem; padding: 0 10px; border-radius: 8px; flex-shrink: 0;
      font-size: 11px; font-weight: 700; white-space: nowrap;
      border: 1px solid #cbd5e1; background: #fff; color: #334155; cursor: pointer;
    }
    .shop-sabang-set-btn:hover:not(:disabled) { background: #f1f5f9; }
    .shop-sabang-set-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-sabang-set-btn-primary {
      background: #4f46e5; border-color: #4f46e5; color: #fff;
    }
    .shop-sabang-set-btn-primary:hover:not(:disabled) { background: #4338ca; border-color: #4338ca; }
    .shop-sabang-set-btn-emerald {
      background: #ecfdf5; border-color: #6ee7b7; color: #047857;
    }
    .shop-sabang-set-btn-emerald:hover:not(:disabled) { background: #d1fae5; }
    .shop-sabang-export-excel-btn {
      flex-shrink: 0; font-weight: 800;
      background: #059669; border-color: #059669; color: #fff;
    }
    .shop-sabang-export-excel-btn:hover:not(:disabled) {
      background: #047857; border-color: #047857; color: #fff;
    }
    .shop-sabang-dup-merge-btn {
      flex-shrink: 0; font-weight: 800;
      background: #fff7ed; border-color: #fdba74; color: #c2410c;
    }
    .shop-sabang-dup-merge-btn:hover:not(:disabled) {
      background: #ffedd5; border-color: #fb923c; color: #9a3412;
    }
    .shop-sabang-danpum-btn {
      flex-shrink: 0; font-weight: 800;
      background: #eff6ff; border-color: #93c5fd; color: #1d4ed8;
    }
    .shop-sabang-danpum-btn:hover:not(:disabled) {
      background: #dbeafe; border-color: #60a5fa; color: #1e40af;
    }
    .shop-sabang-set-status {
      font-size: 11px; font-weight: 700; color: #64748b; white-space: nowrap; margin-left: auto;
    }
    .shop-sabang-set-status.is-ok { color: #047857; }
    .shop-sabang-set-status.is-error { color: #dc2626; }
    .shop-sabang-preview { margin-top: 0.75rem; }
    .shop-sabang-preview-toolbar {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 0.5rem;
      margin-bottom: 6px;
    }
    .shop-sabang-preview-title-wrap {
      display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem;
      min-width: 0; width: 100%; flex: 0 0 auto;
    }
    .shop-sabang-preview-title { font-size: 13px; font-weight: 800; color: #334155; }
    .shop-sabang-prefix-counts {
      display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px;
      width: 100%; line-height: 1.4;
      max-height: 3.9rem;
      overflow-y: auto;
      overflow-x: hidden;
    }
    .shop-sabang-prefix-count-item {
      font-size: 11px; font-weight: 700; color: #4338ca; white-space: nowrap;
    }
    .shop-sabang-preview-actions {
      display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;
      width: 100%; flex: 0 0 auto; margin-left: 0;
    }
    .shop-coupang-batch-sup-wrap {
      margin-left: auto; display: inline-flex; align-items: center; gap: 0.4rem;
    }
    .shop-coupang-batch-sup-wrap select:disabled {
      opacity: 0.55; cursor: not-allowed;
    }
    /* 배너에 밀리지 않도록 · hidden이어도 필터 버튼은 항상 보이게(비활성은 disabled) */
    .shop-sabang-preview-actions .shop-sabang-filter-btn[hidden] {
      display: inline-flex !important;
    }
    .shop-sabang-filter-btn {
      background: #fff; border-color: #cbd5e1; color: #475569; flex-shrink: 0;
    }
    .shop-sabang-filter-btn:hover:not(:disabled) { background: #f8fafc; }
    .shop-sabang-filter-btn.is-active {
      background: #fef3c7; border-color: #f59e0b; color: #b45309;
    }
    .shop-sabang-dup-btn.is-active {
      background: #eff6ff; border-color: #93c5fd; color: #1d4ed8;
    }
    .shop-sabang-unlinked-dup-btn.is-active {
      background: #fdf4ff; border-color: #e9d5ff; color: #7e22ce;
    }
    .shop-sabang-unlinked-btn.is-active {
      background: #fef2f2; border-color: #fca5a5; color: #b91c1c;
    }
    .shop-sabang-prefix-btn.shop-sabang-unlinked-dup-prefix-btn {
      border-color: #e9d5ff; background: #faf5ff; color: #7e22ce;
    }
    .shop-sabang-prefix-btn.shop-sabang-unlinked-dup-prefix-btn:hover {
      background: #f3e8ff;
    }
    .shop-sabang-delete-btn {
      background: #fef2f2; border-color: #fca5a5; color: #b91c1c; flex-shrink: 0;
    }
    .shop-sabang-delete-btn:hover:not(:disabled) { background: #fee2e2; }
    .shop-sabang-prefix-btns {
      display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px;
      max-width: 28rem; overflow-x: auto;
    }
    .shop-sabang-prefix-btn {
      height: 2rem; padding: 0 8px; border-radius: 8px; flex-shrink: 0;
      font-size: 11px; font-weight: 800; white-space: nowrap;
      border: 1px solid #c7d2fe; background: #eef2ff; color: #4338ca; cursor: pointer;
    }
    .shop-sabang-prefix-btn:hover { background: #e0e7ff; }
    .shop-sabang-prefix-btn.is-dragging { opacity: 0.45; }
    .shop-sabang-prefix-trash {
      display: inline-flex; align-items: center; justify-content: center;
      width: 2rem; height: 2rem; flex-shrink: 0;
      border: 1px dashed #cbd5e1; border-radius: 8px;
      background: #f8fafc; color: #94a3b8; cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
    }
    .shop-sabang-prefix-trash.has-checked {
      border-color: #f87171; border-style: solid;
      background: #fef2f2; color: #dc2626;
    }
    .shop-sabang-prefix-trash.is-dragover {
      border-color: #f87171; border-style: solid;
      background: #fef2f2; color: #dc2626;
    }
    .shop-sabang-prefix-trash svg { width: 16px; height: 16px; pointer-events: none; }
    .shop-sabang-prefix-btn-warn {
      border-color: #fcd34d; background: #fffbeb; color: #b45309;
    }
    .shop-sabang-prefix-btn-warn:hover { background: #fef3c7; }
    .shop-sabang-search {
      height: 2rem; min-width: 12rem; padding: 0 10px; border-radius: 8px;
      border: 1px solid #cbd5e1; font-size: 12px; font-weight: 600; color: #334155;
      background: #fff;
    }
    .shop-sabang-search:focus {
      outline: none; border-color: #6366f1; box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15);
    }
    .shop-sabang-preview-count {
      font-size: 11px; font-weight: 800; color: #64748b; white-space: nowrap;
    }
    .shop-sabang-preview-note {
      margin: 0 0 8px; font-size: 11px; color: #94a3b8; font-weight: 600;
    }
    .shop-sabang-preview-table-wrap {
      overflow: auto; max-height: calc(100vh - 280px);
      border: 1px solid #e2e8f0; border-radius: 0; background: #fff;
    }
    .shop-sabang-preview-table { border-collapse: collapse; width: 100%; font-size: 12px; }
    .shop-sabang-preview-table th,
    .shop-sabang-preview-table td {
      border: 1px solid #e2e8f0; padding: 8px 10px; text-align: center;
      white-space: nowrap; max-width: 280px; overflow: hidden; text-overflow: ellipsis;
    }
    .shop-sabang-preview-table th {
      background: #f8fafc; font-weight: 700; color: #334155;
      position: sticky; top: 0; z-index: 3;
      box-shadow: 0 1px 0 #e2e8f0;
    }
    #shopCoupangTable { table-layout: fixed; }
    #shopCoupangTable th,
    #shopCoupangTable td { max-width: none; }
    #shopCoupangTable th { overflow: visible; background: #f8fafc; }
    #shopCoupangTable td.shop-coupang-product-name {
      white-space: normal; overflow-wrap: anywhere; word-break: keep-all;
      line-height: 1.45; text-overflow: clip;
    }
    #shopCoupangTable td.shop-coupang-map-cell {
      white-space: normal; line-height: 1.3; text-overflow: clip;
    }
    .shop-coupang-map-code {
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 11px; font-weight: 700; color: #334155;
    }
    .shop-coupang-map-code-row {
      display: flex; align-items: center; gap: 5px; min-width: 0;
    }
    .shop-coupang-map-edit-chip {
      flex: 0 0 auto; padding: 1px 5px; border: 1px solid #cbd5e1; border-radius: 999px;
      background: #fff; color: #475569; font-size: 9px; font-weight: 800; line-height: 1.4;
      cursor: pointer;
    }
    .shop-coupang-map-edit-chip:hover {
      border-color: #6366f1; background: #eef2ff; color: #4338ca;
    }
    .shop-coupang-map-set-chip {
      border-color: #a7f3d0; background: #ecfdf5; color: #047857;
    }
    .shop-coupang-row-check { width: 14px; height: 14px; accent-color: #4f46e5; cursor: pointer; }
    .shop-coupang-map-skuname {
      margin-top: 2px; font-size: 10px; font-weight: 600; color: #64748b;
      overflow-wrap: anywhere; word-break: keep-all;
    }
    .shop-coupang-map-selected-name {
      margin-top: 2px; font-size: 10px; font-weight: 800; color: #dc2626;
      overflow-wrap: anywhere; word-break: keep-all;
    }
    .shop-coupang-map-name-panel {
      width: min(680px, calc(100vw - 32px)); max-height: min(520px, calc(100vh - 48px));
      display: flex; flex-direction: column; overflow: hidden;
      border-radius: 12px; background: #fff; box-shadow: 0 20px 50px rgba(15, 23, 42, 0.28);
    }
    .shop-coupang-map-name-body { padding: 12px; min-height: 0; overflow: auto; }
    .shop-coupang-map-name-search {
      width: 100%; height: 34px; padding: 0 10px; border: 1px solid #cbd5e1;
      border-radius: 7px; font-size: 12px; color: #334155;
    }
    .shop-coupang-map-name-search:focus {
      outline: none; border-color: #6366f1; box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.14);
    }
    .shop-coupang-map-name-status {
      min-height: 20px; padding: 4px 2px 2px; color: #64748b; font-size: 10px; font-weight: 700;
    }
    .shop-coupang-map-name-results {
      display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px;
    }
    .shop-coupang-map-name-result {
      min-width: 0; display: flex; align-items: center; gap: 7px;
      padding: 6px 8px; border: 1px solid #e2e8f0; border-radius: 7px;
      background: #fff; text-align: left; cursor: pointer;
    }
    .shop-coupang-map-name-result:hover { border-color: #6366f1; background: #eef2ff; }
    .shop-coupang-map-name-result.is-selected {
      border-color: #10b981; background: #ecfdf5; box-shadow: inset 0 0 0 1px #10b981;
    }
    .shop-coupang-map-name-result-code {
      flex: 0 0 auto; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      color: #334155; font-size: 10px; font-weight: 800;
    }
    .shop-coupang-map-name-result-name {
      min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      color: #475569; font-size: 11px; font-weight: 700;
    }
    .shop-coupang-map-set-panel {
      margin-bottom: 10px; padding: 9px; border: 1px solid #d1fae5;
      border-radius: 8px; background: #f0fdf4;
    }
    .shop-coupang-map-set-head {
      display: flex; align-items: center; gap: 7px; margin-bottom: 7px;
    }
    .shop-coupang-map-set-prefix {
      width: 116px; height: 30px; padding: 0 8px; border: 1px solid #a7f3d0;
      border-radius: 6px; background: #fff; font: 700 11px ui-monospace, monospace;
    }
    .shop-coupang-map-set-save {
      height: 30px; padding: 0 10px; border: 0; border-radius: 6px;
      background: #059669; color: #fff; font-size: 11px; font-weight: 800; cursor: pointer;
    }
    .shop-coupang-map-set-save:disabled { opacity: .45; cursor: not-allowed; }
    .shop-coupang-map-set-items { display: grid; gap: 4px; }
    .shop-coupang-map-set-empty { color: #64748b; font-size: 10px; font-weight: 700; }
    .shop-coupang-map-set-item {
      display: grid; grid-template-columns: 90px minmax(0, 1fr) 54px 24px;
      align-items: center; gap: 5px; padding: 4px 5px; border-radius: 5px; background: #fff;
    }
    .shop-coupang-map-set-code { color: #334155; font: 800 10px ui-monospace, monospace; }
    .shop-coupang-map-set-name { min-width: 0; color: #475569; font-size: 10px; font-weight: 700; }
    .shop-coupang-map-set-item input {
      width: 54px; height: 25px; border: 1px solid #cbd5e1; border-radius: 5px;
      text-align: center; font-size: 11px;
    }
    .shop-coupang-map-set-item button {
      width: 24px; height: 24px; border: 0; border-radius: 5px;
      background: #fee2e2; color: #b91c1c; font-weight: 900; cursor: pointer;
    }
    @media (max-width: 640px) {
      .shop-coupang-map-name-results { grid-template-columns: 1fr; }
    }
    #shopCoupangTable td.shop-coupang-set-cell {
      white-space: normal; text-overflow: clip; vertical-align: middle;
    }
    .shop-coupang-set-item {
      display: grid; grid-template-columns: auto minmax(0, 1fr);
      align-items: baseline; gap: 5px; line-height: 1.35;
    }
    .shop-coupang-set-item + .shop-coupang-set-item { margin-top: 2px; }
    .shop-coupang-set-skuno {
      white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 10px; font-weight: 700; color: #334155;
    }
    .shop-coupang-set-skuname {
      min-width: 0; font-size: 10px; font-weight: 600; color: #64748b;
      overflow-wrap: anywhere; word-break: keep-all;
    }
    #shopCoupangTable .shop-coupang-col-resizer {
      position: absolute !important; top: 0; right: 0; z-index: 5;
      display: block; width: 12px; height: 100%; cursor: col-resize !important;
      touch-action: none; user-select: none;
    }
    .shop-coupang-col-resizer::after {
      content: ''; position: absolute; top: 0; right: -1px; bottom: 0;
      width: 2px; background: #6366f1; opacity: 0;
    }
    .shop-coupang-col-resizer:hover::after,
    body.shop-coupang-col-resizing .shop-coupang-col-resizer::after { opacity: 1; }
    body.shop-coupang-col-resizing,
    body.shop-coupang-col-resizing * {
      cursor: col-resize !important; user-select: none !important;
    }
    .shop-coupang-sup-select {
      min-width: 68px; height: 28px; padding: 0 24px 0 8px;
      border: 1px solid #cbd5e1; border-radius: 6px;
      background: #fff; color: #334155; font-size: 12px; font-weight: 700;
    }
    .shop-coupang-sup-select:focus {
      outline: none; border-color: #6366f1; box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15);
    }
    .shop-coupang-sup-select:disabled { opacity: 0.6; cursor: wait; }
    .shop-sabang-sort-th { cursor: pointer; user-select: none; }
    .shop-sabang-sort-th:hover { background: #eef2ff; color: #312e81; }
    .shop-sabang-check-th,
    .shop-sabang-check-td { width: 36px; min-width: 36px; padding: 4px; }
    .shop-sabang-row-check { width: 14px; height: 14px; cursor: pointer; }
    .shop-sabang-preview-row.is-set-no-link td { background: #fffbeb; }
    .shop-sabang-preview-row.is-dup-group-0 td { background: #eff6ff; }
    .shop-sabang-preview-row.is-dup-group-1 td { background: #f0fdf4; }
    .shop-sabang-preview-row.is-dup-group-2 td { background: #fff7ed; }
    .shop-sabang-preview-row.is-dup-group-3 td { background: #faf5ff; }
    .shop-sabang-preview-row.is-dup-group-4 td { background: #ecfeff; }
    .shop-sabang-preview-row.is-dup-group-5 td { background: #fef2f2; }
    .shop-sabang-preview-table td.danpum-cell,
    .shop-sabang-preview-table td.shop-sabang-mall-opt-td,
    .shop-sabang-preview-table td.shop-sabang-link-td {
      text-align: left; white-space: normal; max-width: 360px; line-height: 1.45;
    }
    .shop-sabang-preview-table td.shop-sabang-mall-name-td {
      text-align: center; white-space: nowrap; font-size: 12px; font-weight: 600; color: #334155;
    }
    .shop-sabang-preview-table td.shop-sabang-mall-code-td {
      text-align: left; white-space: normal; max-width: 160px; font-family: ui-monospace, monospace; font-size: 11px;
    }
    .shop-sabang-preview-table td.text-left { text-align: left; }
    .shop-sabang-preview-pager {
      display: flex; align-items: center; justify-content: flex-end;
      gap: 0.5rem; margin-top: 8px; padding: 4px 0;
    }
    .shop-sabang-page-btn {
      height: 2rem; padding: 0 12px; border-radius: 8px;
      font-size: 11px; font-weight: 700; border: 1px solid #cbd5e1;
      background: #fff; color: #334155; cursor: pointer;
    }
    .shop-sabang-page-btn:hover:not(:disabled) { background: #f8fafc; }
    .shop-sabang-page-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-sabang-page-info {
      font-size: 11px; font-weight: 800; color: #64748b; min-width: 4rem; text-align: center;
    }

    .shop-pager {
      display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;
      padding: 10px 14px; background: #fff;
      border: 1px solid #e2e8f0; border-top: none; border-radius: 0 0 12px 12px;
    }
    .shop-page-size {
      height: 2rem; border: 1px solid #cbd5e1; border-radius: 8px;
      background: #fff; font-size: 12px; font-weight: 700; padding: 0 8px;
    }
    .shop-page-btn {
      height: 2rem; padding: 0 12px; border: 1px solid #cbd5e1; border-radius: 8px;
      background: #fff; font-size: 12px; font-weight: 700; color: #334155;
    }
    .shop-page-btn:hover:not(:disabled) { background: #f8fafc; }
    .shop-page-btn:disabled { opacity: 0.45; cursor: not-allowed; }

    .product-link {
      color: #4f46e5; font-weight: 700; text-decoration: underline;
      text-underline-offset: 2px;
    }
    .product-link:hover { color: #4338ca; }
    #shopDetailModalTitle {
      display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
    }
    #shopDetailModalTitle .shop-detail-title-copy-btn {
      vertical-align: middle;
    }
    #shopDetailModalTitle .shop-detail-title-copy-btn.is-copied {
      background: #ecfdf5; border-color: #6ee7b7; color: #047857;
    }
    #shopDetailModalTitle .shop-detail-title-onoff-btn {
      min-width: 2rem;
      padding: 2px 6px;
      font-size: 10px;
      line-height: 1;
      position: relative;
      z-index: 1;
    }

    .shop-login-gate {
      border: 1px dashed #cbd5e1; border-radius: 1rem; background: #fff;
      padding: 3rem 1.5rem; text-align: center; color: #64748b;
    }

    .shop-modal-backdrop {
      position: fixed; inset: 0; z-index: 10050;
      background: rgba(15, 23, 42, 0.45);
      display: flex; align-items: center; justify-content: center; padding: 1rem;
    }
    .shop-modal-backdrop.hidden { display: none; }
    #shopDetailModal.shop-modal-backdrop.is-front {
      z-index: 10060;
    }
    .shop-modal-panel {
      width: min(1200px, 100%); max-height: min(85vh, 800px);
      background: #fff; border-radius: 1rem; border: 1px solid #e2e8f0;
      box-shadow: 0 25px 50px -12px rgba(0,0,0,.25);
      display: flex; flex-direction: column; overflow: hidden;
    }
    /* 전체보기: nav(z-index 더 높음, 높이 64px) 아래로 배치해 닫기/복원 버튼 유지 */
    #shopDetailModal.shop-modal-backdrop.is-maximized {
      top: 64px;
      padding: 0.25rem;
      align-items: stretch;
      justify-content: stretch;
    }
    #shopDetailModal .shop-modal-panel.is-maximized {
      width: 100%;
      max-width: none;
      height: 100%;
      max-height: none;
    }
    .shop-detail-maximize-btn {
      width: 2rem; min-width: 2rem; padding: 0;
      display: inline-flex; align-items: center; justify-content: center;
    }
    .shop-detail-maximize-btn .shop-detail-maximize-icon { display: block; }
    .shop-modal-head {
      display: flex; align-items: flex-start; justify-content: space-between;
      gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid #e2e8f0;
    }
    .shop-modal-head-actions {
      display: flex; align-items: center; gap: 8px; flex-shrink: 0;
    }
    .shop-modal-body { overflow: auto; flex: 1 1 auto; padding: 1rem 1.25rem; }
    .shop-modal-table { width: max-content; min-width: 100%; border-collapse: collapse; font-size: 12px; }
    .shop-modal-table th, .shop-modal-table td {
      border: 1px solid #e2e8f0; padding: 6px 8px; text-align: left; vertical-align: top;
      white-space: normal; word-break: break-word;
    }
    .shop-modal-table th { background: #f8fafc; font-weight: 700; position: sticky; top: 0; z-index: 1; }
    /* 제목줄 버튼 툴팁: nav 기본(위) 대신 마우스 아래로 */
    #shopDetailModal thead th:has([data-nav-tooltip]:hover),
    #shopDetailModal thead th:has([data-formula]:hover) {
      z-index: 5;
      overflow: visible;
    }
    #shopDetailModal thead [data-nav-tooltip]::after,
    #shopDetailModal thead [data-formula]::after {
      bottom: auto;
      top: 100%;
      margin-bottom: 0;
      margin-top: calc(6px + 3cm);
    }
    .shop-modal-th-mall {
      background: #fef9c3 !important;
      color: #854d0e;
      position: relative;
    }
    .shop-modal-th-sabang {
      background: #fee2e2 !important;
      color: #991b1b;
      position: relative;
    }
    .shop-modal-th-mall-mark::before,
    .shop-modal-th-sabang-mark::before {
      content: attr(data-head-watermark);
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: -0.02em;
      white-space: nowrap;
      pointer-events: none;
      z-index: 0;
    }
    .shop-modal-th-mall-mark::before { color: rgba(161, 98, 7, 0.22); }
    .shop-modal-th-sabang-mark::before { color: rgba(185, 28, 28, 0.2); }
    .shop-modal-th-mall > *,
    .shop-modal-th-sabang > * { position: relative; z-index: 1; }
    .shop-modal-table .danpum-cell,
    .shop-modal-table .link-codes-cell {
      text-align: left;
      white-space: normal;
      line-height: 1.45;
      font-size: 11px;
      vertical-align: top;
      max-width: 320px;
    }
    .shop-modal-table .link-codes-cell {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .shop-modal-table .danpum-token {
      display: inline;
      margin: 0;
      padding: 0;
      line-height: inherit;
    }
    .shop-modal-table .danpum-mismatch { color: #dc2626; font-weight: 800; }
    .shop-modal-table .danpum-out-of-stock { color: #dc2626; font-weight: 800; }
    .danpum-unresolved-sku { color: #dc2626; font-weight: 800; background: #fef2f2; border-radius: 3px; padding: 0 2px; }
    .shop-modal-table .shop-link-code-text.is-out-of-stock,
    .shop-modal-table .shop-link-code-text.is-link-set-mismatch {
      color: #dc2626;
      font-weight: 800;
    }
    .shop-modal-table tr.mapping-row-warn { background: #fef2f2; }
    .shop-modal-table tr.mapping-row-warn > td:first-child { box-shadow: inset 3px 0 0 #dc2626; }
    .shop-mismatch-count-btn {
      display: inline; padding: 0 2px; margin: 0; border: none; border-radius: 3px;
      background: transparent; color: #b91c1c; font-size: inherit; font-weight: 800;
      line-height: inherit; cursor: pointer; text-decoration: underline;
      text-underline-offset: 2px;
    }
    .shop-mismatch-count-btn:hover { background: #fee2e2; }
    .shop-mismatch-count-btn.is-on {
      background: #fecaca; color: #7f1d1d; text-decoration: none;
      box-shadow: inset 0 0 0 1px #f87171;
    }
    .shop-link-col-head { white-space: nowrap; vertical-align: top; }
    .shop-set-col-head { white-space: nowrap; }
    .shop-link-col-head .shop-link-col-label { vertical-align: middle; }
    .shop-link-col-head-top {
      display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0;
    }
    .shop-link-bulk-apply {
      display: flex; align-items: center; gap: 4px; margin-top: 4px;
    }
    .shop-link-bulk-apply.hidden { display: none; }
    .shop-link-bulk-input {
      width: 96px; min-width: 0; padding: 2px 5px; border: 1px solid #cbd5e1; border-radius: 4px;
      font-size: 10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background: #fff;
      line-height: 1.3;
    }
    .shop-link-bulk-input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 1px rgba(99,102,241,.2); }
    .shop-link-bulk-input:disabled { opacity: 0.55; }
    .shop-link-bulk-apply-btn {
      display: inline-flex; align-items: center; justify-content: center;
      height: 20px; padding: 0 7px; border-radius: 999px;
      border: 1px solid #c7d2fe; background: #eef2ff;
      font-size: 10px; font-weight: 800; color: #4338ca; cursor: pointer; line-height: 1;
      flex-shrink: 0; white-space: nowrap;
    }
    .shop-link-bulk-apply-btn:hover:not(:disabled) { background: #e0e7ff; border-color: #a5b4fc; }
    .shop-link-bulk-apply-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-col-head-icon-btn {
      display: inline-flex; align-items: center; justify-content: center;
      margin-left: 4px; padding: 2px; border: none; background: transparent;
      color: #64748b; cursor: pointer; border-radius: 4px; vertical-align: middle;
    }
    .shop-col-head-icon-btn:hover:not(:disabled) { color: #4f46e5; background: #eef2ff; }
    .shop-col-head-icon-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-set-name-cell { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
    .shop-set-name-cell-inner { flex: 1 1 auto; min-width: 0; }
    .shop-set-name-cell[data-nav-tooltip] { position: relative; }
    #shopDetailModal .shop-set-name-cell[data-nav-tooltip]:hover { z-index: 5; }
    #shopDetailModal .shop-set-name-cell[data-nav-tooltip]::after {
      white-space: pre-line;
      text-align: left;
      max-width: min(280px, 70vw);
    }
    .shop-set-row-link-btn {
      flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
      padding: 2px 5px; border: none; background: transparent;
      color: #64748b; cursor: pointer; border-radius: 4px;
      font-size: 12px; font-weight: 800; line-height: 1;
    }
    .shop-set-row-link-btn:hover:not(:disabled) { color: #4f46e5; background: #eef2ff; }
    .shop-set-row-link-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-link-code-line {
      display: flex; align-items: center; justify-content: space-between; gap: 6px;
      padding: 1px 0;
    }
    .shop-link-code-text { flex: 1 1 auto; min-width: 0; }
    .shop-link-row-map-btn {
      flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
      padding: 2px 5px; border: none; background: transparent;
      color: #64748b; cursor: pointer; border-radius: 4px;
      font-size: 12px; font-weight: 800; line-height: 1;
    }
    .shop-link-row-map-btn:hover:not(:disabled) { color: #4f46e5; background: #eef2ff; }
    .shop-link-row-map-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-link-edit-actions { margin-left: 6px; display: inline-flex; gap: 4px; vertical-align: middle; }
    .shop-link-edit-actions.hidden { display: none; }
    .shop-link-edit-action-btn {
      font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 4px;
      border: 1px solid #e2e8f0; background: #fff; cursor: pointer;
    }
    .shop-link-edit-action-btn:hover:not(:disabled) { background: #f8fafc; }
    .shop-link-edit-action-btn-primary { background: #4f46e5; border-color: #4f46e5; color: #fff; }
    .shop-link-edit-action-btn-primary:hover:not(:disabled) { background: #4338ca; }
    .shop-link-edit-input {
      width: 100%; min-width: 120px; box-sizing: border-box;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 11px; line-height: 1.45; padding: 4px 6px;
      border: 1px solid #c7d2fe; border-radius: 4px; resize: vertical;
      background: #fff;
    }
    .shop-link-analyze-btn {
      margin-left: 6px; padding: 2px 8px; border-radius: 6px;
      border: none; background: transparent; color: #c2410c;
      font-size: 10px; font-weight: 800; cursor: pointer; vertical-align: middle;
    }
    .shop-link-analyze-btn:hover:not(:disabled) { background: #fff7ed; color: #c2410c; }
    .shop-link-analyze-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-link-analyze-btn-confirm {
      border: none; background: transparent; color: #4338ca;
    }
    .shop-link-analyze-btn-confirm:hover:not(:disabled) { background: #eef2ff; }
    .shop-link-analyze-msg {
      margin-left: 6px; font-size: 10px; font-weight: 800; color: #b45309; vertical-align: middle;
    }
    .shop-map-code-col-head-wrap { white-space: nowrap; }
    .shop-map-code-col-head {
      display: inline-flex; align-items: center; gap: 4px; flex-wrap: nowrap; vertical-align: middle;
    }
    .shop-map-code-head-btns {
      display: inline-grid;
      grid-template-columns: auto auto;
      gap: 2px 4px;
      align-items: center;
      vertical-align: middle;
    }
    .shop-map-code-start-input {
      width: 88px; min-width: 0; padding: 1px 4px; border: 1px solid #cbd5e1; border-radius: 4px;
      font-size: 10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background: #fffbeb;
      line-height: 1.3;
    }
    .shop-map-code-start-input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 1px rgba(99,102,241,.2); }
    .shop-map-code-start-input:disabled { opacity: 0.55; }
    .shop-map-code-head-btn {
      display: inline-flex; align-items: center; justify-content: center;
      height: 18px; padding: 0 6px; border-radius: 999px;
      border: 1px solid #fdba74; background: #fff7ed;
      font-size: 10px; font-weight: 800; color: #c2410c; cursor: pointer; line-height: 1;
      flex-shrink: 0; white-space: nowrap;
    }
    .shop-map-code-head-btn:hover:not(:disabled) { background: #ffedd5; border-color: #fb923c; }
    .shop-map-code-head-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-map-code-head-btn-confirm {
      color: #4338ca; border-color: #c7d2fe; background: #eef2ff;
    }
    .shop-map-code-head-btn-confirm:hover:not(:disabled) {
      background: #e0e7ff; border-color: #a5b4fc;
    }
    .shop-map-code-head-btn-new {
      color: #0f766e; border-color: #99f6e4; background: #f0fdfa;
    }
    .shop-map-code-head-btn-new:hover:not(:disabled) {
      background: #ccfbf1; border-color: #5eead4;
    }
    .shop-map-code-head-btn-set-search {
      color: #1d4ed8; border-color: #bfdbfe; background: #eff6ff;
    }
    .shop-map-code-head-btn-set-search:hover:not(:disabled) {
      background: #dbeafe; border-color: #93c5fd;
    }
    .shop-map-code-head-btn-reset {
      color: #b91c1c; border-color: #fecaca; background: #fef2f2;
    }
    .shop-map-code-head-btn-reset:hover:not(:disabled) {
      background: #fee2e2; border-color: #fca5a5;
    }
    .shop-modal-table .shop-map-code-pending { color: #ca8a04; font-weight: 800; }
    .shop-map-code-cell { text-align: left; white-space: normal; max-width: 220px; vertical-align: top; }
    .shop-map-code-cell-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
    .shop-map-code-link-hint {
      display: inline-flex; align-items: center; gap: 4px; line-height: 1.35;
      font-size: 11px; color: #475569;
    }
    .shop-map-code-link-arrow { color: #94a3b8; font-weight: 800; flex-shrink: 0; }
    .shop-map-code-link-text { font-weight: 700; color: #334155; word-break: break-all; }
    .shop-map-code-detail { font-weight: 700; color: #334155; line-height: 1.35; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
    .shop-map-code-code { font-size: 10px; color: #94a3b8; }
    .shop-map-code-sub { font-size: 10px; color: #64748b; font-weight: 600; line-height: 1.35; word-break: break-all; }
    .shop-map-code-sub-temp { color: #b45309; }
    .shop-map-code-sub-row { display: inline-flex; align-items: center; gap: 2px; max-width: 100%; }
    .shop-map-code-sub-row .shop-map-code-sub { min-width: 0; }
    .shop-map-code-sub-row .shop-map-code-set-name-edit-btn { margin-left: 0; flex-shrink: 0; }
    .shop-map-code-sub-editing { flex-wrap: wrap; gap: 4px; width: 100%; }
    .shop-map-code-sub-edit {
      flex: 1 1 120px; min-width: 0; max-width: 100%;
      font-size: 11px; font-weight: 600; color: #334155; line-height: 1.35;
      border: 1px solid #c7d2fe; border-radius: 4px; padding: 2px 6px; background: #fff;
    }
    .shop-map-code-sub-edit:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 1px rgba(99,102,241,.2); }
    .shop-map-code-match-badge {
      display: inline-flex; align-items: center; padding: 0 5px; height: 16px;
      border-radius: 4px; font-size: 10px; font-weight: 800; letter-spacing: -0.02em;
      background: #dcfce7; color: #166534; border: 1px solid #86efac; flex-shrink: 0;
    }
    .shop-map-code-missing-tab {
      display: inline-flex; align-items: center; padding: 0 5px; height: 16px;
      border-radius: 4px; font-size: 10px; font-weight: 800; letter-spacing: -0.02em;
      background: #fef2f2; color: #b91c1c; border: 1px solid #fca5a5; flex-shrink: 0;
    }
    .shop-map-code-x-btn {
      display: inline-flex; align-items: center; justify-content: center;
      width: 16px; height: 16px; padding: 0; margin: 0;
      border: 1px solid #fecaca; border-radius: 4px;
      background: #fef2f2; color: #b91c1c;
      font-size: 12px; font-weight: 800; line-height: 1;
      cursor: pointer; flex-shrink: 0;
    }
    .shop-map-code-x-btn:hover:not(:disabled) {
      background: #fee2e2; border-color: #fca5a5; color: #991b1b;
    }
    .shop-map-code-x-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-map-code-file-val {
      display: inline-block; font-size: 11px; font-weight: 800; color: #b45309;
      background: #fffbeb; border: 1px solid #fcd34d; border-radius: 4px; padding: 0 5px; line-height: 1.4;
    }
    .shop-map-code-cell-actions { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
    .shop-map-code-mini-btn {
      padding: 0; border: none; background: transparent;
      font-size: 11px; font-weight: 700; color: #4338ca; cursor: pointer; line-height: 1.2;
    }
    .shop-map-code-mini-btn:hover:not(:disabled) { text-decoration: underline; }
    .shop-map-code-mini-btn:disabled { opacity: 0.45; cursor: not-allowed; text-decoration: none; }
    .shop-map-code-mini-btn-add { color: #047857; font-size: 10px; }
    .shop-map-code-mini-btn-rename { color: #0369a1; }
    .shop-map-code-mini-btn-reset { color: #b91c1c; }
    .shop-map-code-mini-btn-save { color: #4f46e5; font-weight: 800; }
    .shop-map-detail-source {
      margin-bottom: 8px; padding: 8px 10px; border-radius: 6px;
      background: #f8fafc; border: 1px solid #e2e8f0;
      font-size: 12px; font-weight: 600; color: #334155; line-height: 1.45;
      white-space: pre-wrap; word-break: break-all;
    }
    #shopDetailModal { position: fixed; }
    #shopDetailModal .shop-opt-string-modal { position: absolute; border-radius: 1rem; }
    #shopConvertModal.shop-opt-string-modal {
      position: fixed; inset: 0; z-index: 10120; border-radius: 0;
    }
    .shop-modal-table .link-codes-cell.shop-link-analyze-pending { color: #ca8a04; font-weight: 800; }
    .shop-link-edit-input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 2px rgba(99,102,241,.2); }
    .shop-modal-td-mall {
      background: #fffbeb !important;
      color: #713f12;
    }
    .shop-modal-th-string { white-space: nowrap; }
    .shop-modal-table th.shop-modal-th-string,
    .shop-modal-table td.shop-modal-string-cell {
      max-width: 200px;
      width: 200px;
      white-space: normal;
      word-break: break-word;
      line-height: 1.45;
      font-size: 11px;
    }
    .shop-modal-string-col-head {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
    }
    .shop-modal-kakao-opt-btn {
      padding: 2px 7px;
      border-radius: 6px;
      border: 1px solid #ca8a04;
      background: #fef3c7;
      color: #92400e;
      font-size: 10px;
      font-weight: 800;
      cursor: pointer;
      line-height: 1.35;
    }
    .shop-modal-kakao-opt-btn:hover:not(:disabled) { background: #fde68a; border-color: #a16207; }
    .shop-modal-kakao-opt-btn:disabled { opacity: 0.5; cursor: not-allowed; }
    .shop-modal-string-excel-wrap {
      position: relative;
      display: inline-flex;
      align-items: center;
    }
    .shop-toolbar-excel-wrap .shop-modal-string-excel-menu {
      min-width: 96px;
      z-index: 50;
    }
    .shop-modal-string-excel-btn {
      padding: 2px 7px;
      border-radius: 6px;
      border: 1px solid #15803d;
      background: #dcfce7;
      color: #166534;
      font-size: 10px;
      font-weight: 800;
      cursor: pointer;
      line-height: 1.35;
    }
    .shop-modal-string-excel-btn:hover:not(:disabled) { background: #bbf7d0; border-color: #166534; }
    .shop-modal-string-excel-btn:disabled { opacity: 0.5; cursor: not-allowed; }
    .shop-modal-string-excel-menu {
      position: absolute;
      top: calc(100% + 4px);
      left: 0;
      z-index: 40;
      display: flex;
      flex-direction: column;
      min-width: 88px;
      padding: 4px;
      border: 1px solid #86efac;
      border-radius: 8px;
      background: #fff;
      box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
    }
    .shop-modal-string-excel-menu.hidden { display: none; }
    .shop-modal-string-excel-menu button {
      padding: 6px 8px;
      border: 0;
      border-radius: 6px;
      background: transparent;
      color: #166534;
      font-size: 11px;
      font-weight: 700;
      text-align: left;
      cursor: pointer;
      white-space: nowrap;
    }
    .shop-modal-string-excel-menu button:hover { background: #dcfce7; }
    .shop-opt-preview-excel-wrap .shop-modal-string-excel-menu {
      left: auto; right: 0;
    }
    .shop-detail-export-bar {
      display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px;
    }
    .shop-detail-export-bar.hidden { display: none; }
    .shop-detail-export-btn {
      padding: 8px 12px; border-radius: 12px; font-size: 12px; font-weight: 800;
      border: 1px solid transparent; cursor: pointer; line-height: 1;
    }
    .shop-detail-rename-wrap {
      display: inline-flex; align-items: center; gap: 0; max-width: 12rem;
    }
    .shop-detail-export-btn.rename {
      border-color: #c4b5fd; background: #f5f3ff; color: #5b21b6;
      max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .shop-detail-export-btn.rename.hidden { display: none; }
    .shop-detail-export-btn.rename.is-empty { color: #7c3aed; font-weight: 800; }
    .shop-detail-export-btn.rename.is-wrap {
      display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
      white-space: normal; word-break: keep-all; overflow-wrap: break-word;
      font-size: 10px; line-height: 1.2; max-height: calc(1.2em * 2 + 8px);
    }
    .shop-detail-export-btn.rename:hover:not(:disabled) { background: #ede9fe; }
    .shop-detail-rename-input {
      width: 11rem; max-width: 12rem; height: 34px; padding: 0 10px;
      border-radius: 12px; border: 1px solid #c4b5fd; background: #fff;
      font-size: 12px; font-weight: 700; color: #334155; outline: none;
    }
    .shop-detail-rename-input:focus {
      border-color: #8b5cf6; box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.15);
    }
    .shop-detail-rename-input.hidden { display: none; }
    .shop-detail-export-btn.convert {
      border-color: #86efac; background: #dcfce7; color: #166534;
    }
    .shop-detail-export-btn.convert:hover { background: #bbf7d0; }
    .shop-detail-export-btn.set {
      border-color: #b91c1c; background: #ef4444; color: #fff;
    }
    .shop-detail-export-btn.set:hover { background: #dc2626; }
    .shop-convert-modal-panel { width: min(640px, calc(100% - 2rem)); }
    .shop-convert-input { min-height: 96px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
    .shop-convert-input-head {
      display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 4px;
    }
    .shop-convert-input-head .shop-opt-string-section-label { margin: 0; }
    .shop-convert-replace-wrap {
      display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0;
    }
    .shop-convert-replace-in {
      width: 56px; height: 22px; padding: 0 6px; box-sizing: border-box;
      border: 1px solid #cbd5e1; border-radius: 4px; background: #fff;
      font-size: 11px; font-weight: 700; color: #334155; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    }
    .shop-convert-replace-in:focus {
      outline: none; border-color: #93c5fd; box-shadow: 0 0 0 2px rgba(59, 130, 246, .2);
    }
    .shop-convert-replace-arrow {
      font-size: 12px; font-weight: 800; color: #64748b; line-height: 1;
    }
    .shop-convert-output-head {
      display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px;
    }
    .shop-convert-output-head .shop-opt-string-section-label { margin: 0; }
    .shop-convert-copy-btn {
      min-width: 28px; height: 24px; padding: 0 8px; border-radius: 6px;
      border: 1px solid #94a3b8; background: #f8fafc; color: #0f172a;
      font-size: 11px; font-weight: 900; cursor: pointer; line-height: 1;
    }
    .shop-convert-copy-btn:hover:not(:disabled) { background: #e2e8f0; }
    .shop-convert-copy-btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .shop-convert-status {
      margin: 6px 0 0; min-height: 14px; font-size: 10px; font-weight: 700; color: #64748b;
    }
    .shop-convert-status.is-error { color: #b91c1c; }
    .shop-convert-status.is-ok { color: #15803d; }
    #shopConvertOutput.shop-opt-string-preview {
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      max-height: 180px;
    }
    .shop-detail-export-btn.single {
      border-color: #93c5fd; background: #dbeafe; color: #1d4ed8;
    }
    .shop-detail-export-btn.single:hover { background: #bfdbfe; }
    .shop-detail-export-btn.close {
      border-color: #cbd5e1; background: #fff; color: #334155;
    }
    .shop-detail-export-btn.close:hover { background: #f8fafc; }
    #shopDetailModalClose.shop-detail-export-btn {
      align-self: flex-start;
    }
    .shop-sabang-step-only { display: none !important; }
    .shop-detail-export-btn.pumbeon {
      border-color: #ddd6fe; background: #f5f3ff; color: #4c1d95;
    }
    .shop-detail-export-btn.pumbeon:hover { background: #ede9fe; }
    .shop-detail-export-btn.stringgen {
      border-color: #a5f3fc; background: #ecfeff; color: #155e75;
    }
    .shop-detail-export-btn.stringgen:hover { background: #cffafe; }
    .shop-detail-export-btn.setfetch {
      border-color: #fde68a; background: #fffbeb; color: #92400e;
    }
    .shop-detail-export-btn.setfetch:hover { background: #fef3c7; }
    .shop-detail-export-btn.map-save {
      background: #4f46e5; color: #fff; border-color: #4f46e5;
    }
    .shop-detail-export-btn.map-save:hover { background: #4338ca; }
    .shop-modal-mall-drop-placeholder {
      text-align: center;
      color: #a16207;
      font-weight: 700;
      padding: 1.25rem 0.75rem !important;
    }
    .shop-modal-mall-drop-active .shop-modal-td-mall,
    .shop-modal-mall-drop-active .shop-modal-th-mall {
      background: #fef08a !important;
      box-shadow: inset 0 0 0 2px #ca8a04;
    }
    .shop-detail-sabang-status {
      display: inline-flex; align-items: flex-start; gap: 5px;
      margin: 0; padding: 0 2px; max-width: 220px;
      font-size: 10px; font-weight: 700; line-height: 1.45;
      color: #4338ca; white-space: normal;
    }
    .shop-detail-sabang-status.hidden { display: none; }
    .shop-detail-sabang-status-dot {
      width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
      margin-top: 4px; background: #94a3b8;
    }
    .shop-detail-sabang-status.is-active { color: #15803d; }
    .shop-detail-sabang-status.is-active .shop-detail-sabang-status-dot {
      background: #22c55e;
      animation: shop-sabang-dot-blink 0.9s ease-in-out infinite;
    }
    .shop-detail-sabang-status.is-error { color: #b91c1c; }
    .shop-detail-sabang-status.is-error .shop-detail-sabang-status-dot {
      background: #ef4444;
      animation: shop-sabang-dot-blink 0.9s ease-in-out infinite;
    }
    .shop-detail-sabang-status.is-done { color: #047857; }
    .shop-detail-sabang-status.is-done .shop-detail-sabang-status-dot {
      background: #22c55e;
    }
    .shop-detail-sabang-status.is-otp {
      flex-direction: column; align-items: flex-start; max-width: 240px;
    }
    .shop-detail-sabang-status-otp-wrap {
      display: flex; flex-direction: column; gap: 4px; width: 100%;
    }
    .shop-detail-sabang-status-otp-row {
      display: flex; align-items: center; gap: 4px; width: 100%;
    }
    .shop-sabang-otp-input {
      flex: 1; min-width: 0; height: 22px; padding: 2px 6px;
      border: 1px solid #cbd5e1; border-radius: 4px;
      font-size: 11px; font-weight: 600; color: #0f172a;
    }
    .shop-sabang-otp-submit {
      flex-shrink: 0; height: 22px; padding: 0 8px;
      border: 1px solid #15803d; border-radius: 4px;
      background: #dcfce7; color: #15803d;
      font-size: 10px; font-weight: 700; cursor: pointer;
    }
    .shop-sabang-otp-submit:disabled { opacity: 0.6; cursor: wait; }
    .shop-set-export-wrap {
      display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px;
      min-height: 44px;
    }
    .shop-set-export-main-btns {
      display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px;
    }
    /* 세트/품번/문자 — 여백 없이 붙은 다운로드 칩 */
    .shop-export-file-btns {
      display: inline-flex; align-items: stretch; gap: 0;
    }
    .shop-export-file-btns .shop-detail-export-btn.file-dl {
      margin: 0; border-radius: 0; padding: 8px 10px;
      border-width: 1px; border-style: solid;
    }
    .shop-export-file-btns .shop-detail-export-btn.file-dl + .shop-detail-export-btn.file-dl {
      border-left-width: 0;
    }
    .shop-export-file-btns .shop-detail-export-btn.file-dl:first-child {
      border-radius: 12px 0 0 12px;
    }
    .shop-export-file-btns .shop-detail-export-btn.file-dl:last-child {
      border-radius: 0 12px 12px 0;
    }
    .shop-detail-export-btn.file-set {
      border-color: #fde68a; background: #fffbeb; color: #92400e;
    }
    .shop-detail-export-btn.file-set:hover { background: #fef3c7; }
    .shop-detail-export-btn.file-pumbeon {
      border-color: #ddd6fe; background: #f5f3ff; color: #4c1d95;
    }
    .shop-detail-export-btn.file-pumbeon:hover { background: #ede9fe; }
    .shop-detail-export-btn.file-stringgen {
      border-color: #a5f3fc; background: #ecfeff; color: #155e75;
    }
    .shop-detail-export-btn.file-stringgen:hover { background: #cffafe; }
    .shop-sabang-set-progress {
      list-style: none; margin: 0; padding: 0 0 0 2px;
      font-size: 10px; line-height: 1.45; min-width: 210px; min-height: 15px;
    }
    .shop-sabang-set-progress.hidden { visibility: hidden; }
    .shop-sabang-set-progress li {
      display: flex; align-items: center; gap: 5px;
      white-space: nowrap;
    }
    .shop-sabang-set-progress li.is-done { color: #475569; }
    .shop-sabang-set-progress li.is-active { color: #b91c1c; font-weight: 700; }
    .shop-sabang-set-progress li.is-error { color: #b91c1c; font-weight: 700; }
    .shop-sabang-set-progress-dot {
      width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
      background: transparent;
    }
    .shop-sabang-set-progress li.is-done .shop-sabang-set-progress-dot {
      background: #22c55e;
    }
    .shop-sabang-set-progress li.is-active .shop-sabang-set-progress-dot {
      background: #22c55e;
      animation: shop-sabang-dot-blink 0.9s ease-in-out infinite;
    }
    .shop-sabang-set-progress li.is-error .shop-sabang-set-progress-dot {
      background: #ef4444;
      animation: shop-sabang-dot-blink 0.9s ease-in-out infinite;
    }
    .shop-sabang-cancel-btn {
      margin-left: 6px; padding: 1px 7px; border-radius: 6px;
      border: 1px solid #cbd5e1; background: #fff; color: #475569;
      font-size: 10px; font-weight: 800; cursor: pointer; vertical-align: middle;
    }
    .shop-sabang-cancel-btn:hover { background: #f8fafc; border-color: #94a3b8; color: #1e293b; }
    @keyframes shop-sabang-dot-blink {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.15; transform: scale(0.85); }
    }
    .shop-detail-export-btn.set.is-uploading,
    .shop-detail-export-btn.single.is-uploading,
    .shop-detail-export-btn.pumbeon.is-uploading,
    .shop-detail-export-btn.stringgen.is-uploading,
    .shop-detail-export-btn.setfetch.is-uploading { opacity: 0.55; cursor: wait; pointer-events: none; }

    /* 계정 탭 */
    .shop-account-panel { background: #fff; }
    .shop-account-toolbar {
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
      padding: 10px 14px; border-bottom: 1px solid #e2e8f0; background: #f8fafc;
    }
    .shop-account-toolbar-left {
      display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0;
    }
    .shop-account-toolbar-actions { display: flex; align-items: center; gap: 8px; }
    .shop-account-add-btn {
      display: inline-flex; align-items: center; justify-content: center;
      width: 26px; height: 26px; border-radius: 8px;
      border: 1px solid #94a3b8; background: #0f172a; color: #fff;
      font-size: 18px; font-weight: 800; line-height: 1; cursor: pointer;
      padding: 0; flex-shrink: 0;
    }
    .shop-account-add-btn:hover { background: #1e293b; border-color: #64748b; }
    .shop-account-table-wrap {
      overflow: auto; max-height: calc(100vh - 240px);
      border: 1px solid #e2e8f0; border-top: none; background: #fff;
    }
    .shop-account-table {
      width: 100%; border-collapse: collapse; font-size: 12px; table-layout: fixed;
    }
    .shop-account-table th,
    .shop-account-table td {
      border-bottom: 1px solid #e2e8f0; padding: 8px 8px;
      text-align: center; vertical-align: middle;
    }
    .shop-account-table th {
      position: sticky; top: 0; z-index: 1;
      background: #f8fafc; color: #475569; font-weight: 800; white-space: nowrap;
    }
    .shop-account-table th:nth-child(1),
    .shop-account-table td:nth-child(1) { width: 110px; }
    .shop-account-table th:nth-child(2),
    .shop-account-table td:nth-child(2),
    .shop-account-table th:nth-child(3),
    .shop-account-table td:nth-child(3) { width: 12%; }
    .shop-account-table th:nth-child(4),
    .shop-account-table td:nth-child(4) { width: 22%; }
    .shop-account-table th:nth-child(5),
    .shop-account-table td:nth-child(5),
    .shop-account-table th:nth-child(6),
    .shop-account-table td:nth-child(6) { width: 12%; }
    .shop-account-table th:nth-child(7),
    .shop-account-table td:nth-child(7) { width: 120px; }
    .shop-account-table th:nth-child(8),
    .shop-account-table td:nth-child(8) { width: 56px; }
    .shop-account-field-wrap {
      display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0;
    }
    .shop-account-field-wrap .shop-account-input { flex: 1 1 auto; }
    .shop-account-go-btn,
    .shop-account-copy-btn {
      flex: 0 0 auto;
      display: inline-flex; align-items: center; justify-content: center;
      border: none; border-radius: 0;
      background: transparent; color: #0f172a;
      font-size: 11px; font-weight: 800; line-height: 1.2;
      padding: 0 2px; cursor: pointer; white-space: nowrap;
      min-width: 0; box-shadow: none;
    }
    .shop-account-go-btn:hover,
    .shop-account-copy-btn:hover { background: transparent; color: #2563eb; }
    .shop-account-go-btn:focus,
    .shop-account-copy-btn:focus { outline: none; box-shadow: none; }
    .shop-account-cs-cell { text-align: center; }
    .shop-account-cs-wrap {
      display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    }
    .shop-account-cs-thumb {
      width: 44px; height: 32px; object-fit: cover;
      border: 1px solid #cbd5e1; border-radius: 6px;
      background: #f8fafc; cursor: zoom-in; display: none;
    }
    .shop-account-cs-thumb.is-ready { display: block; }
    .shop-account-cs-upload-btn {
      display: inline-flex; align-items: center; justify-content: center;
      border: 1px solid #94a3b8; border-radius: 8px;
      background: #fff; color: #0f172a;
      font-size: 10px; font-weight: 800; line-height: 1.2;
      padding: 5px 8px; cursor: pointer; white-space: nowrap;
    }
    .shop-account-cs-upload-btn:hover { background: #f1f5f9; }
    .shop-account-cs-preview {
      position: fixed; inset: 0; z-index: 80;
      display: flex; align-items: center; justify-content: center;
      background: rgba(15, 23, 42, 0.82); padding: 24px;
    }
    .shop-account-cs-preview.hidden { display: none; }
    .shop-account-cs-preview img {
      max-width: min(96vw, 1600px); max-height: 92vh;
      width: auto; height: auto; object-fit: contain;
      border-radius: 8px; background: #fff; box-shadow: 0 20px 50px rgba(0,0,0,.35);
    }
    .shop-account-cs-preview-close {
      position: absolute; top: 16px; right: 20px;
      width: 40px; height: 40px; border: none; border-radius: 999px;
      background: #fff; color: #0f172a; font-size: 24px; font-weight: 700;
      cursor: pointer; line-height: 1;
    }
    .shop-account-cs-preview-close:hover { background: #e2e8f0; }
    .shop-account-table tbody tr:hover { background: #f8fafc; }
    .shop-account-table tbody tr.shop-account-row-hidden { opacity: 0.55; }
    .shop-account-text {
      display: inline-block; text-align: center; font-weight: 700; color: #0f172a;
    }
    .shop-account-hidden-badge {
      display: inline-block; margin-left: 4px; font-size: 10px; font-weight: 800;
      color: #64748b; background: #e2e8f0; border-radius: 4px; padding: 0 5px; line-height: 1.4;
      vertical-align: middle;
    }
    .shop-account-no-wrap {
      display: inline-flex; align-items: center; justify-content: center; gap: 4px;
    }
    .shop-account-order-btn {
      width: 24px; height: 24px; border-radius: 6px;
      border: none; background: transparent; color: #334155;
      font-size: 12px; font-weight: 800; line-height: 1; cursor: pointer; padding: 0;
    }
    .shop-account-order-btn:hover:not(:disabled) {
      background: #f1f5f9; color: #0f172a;
    }
    .shop-account-order-btn:focus { outline: none; box-shadow: none; }
    .shop-account-order-btn:disabled {
      opacity: 0.35; cursor: not-allowed;
    }
    .shop-account-order-input {
      width: 42px; box-sizing: border-box;
      border: none; border-radius: 0;
      padding: 4px 2px; font-size: 14px; font-weight: 900; color: #0f172a;
      text-align: center; background: transparent;
      -moz-appearance: textfield;
    }
    .shop-account-order-input::-webkit-outer-spin-button,
    .shop-account-order-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
    .shop-account-order-input:focus {
      outline: none; box-shadow: none; background: transparent;
    }
    .shop-account-input {
      width: 100%; min-width: 0; box-sizing: border-box;
      border: 1px solid #cbd5e1; border-radius: 8px;
      padding: 6px 8px; font-size: 12px; font-weight: 600; color: #0f172a;
      background: #fff; text-align: center;
    }
    .shop-account-input:focus {
      outline: none; border-color: #64748b; box-shadow: 0 0 0 2px rgba(100, 116, 139, 0.15);
    }
    .shop-account-save-cell { font-size: 11px; font-weight: 700; color: #64748b; text-align: center; }
    .shop-account-save-hint.is-error { color: #dc2626; }
    #shopAccountStatus.is-error { color: #dc2626; }

    .shop-set-search-pick-overlay {
      position: absolute; inset: 0; z-index: 30;
      background: rgba(15, 23, 42, 0.42);
      display: flex; align-items: center; justify-content: center;
      padding: 1rem;
    }
    .shop-set-search-pick-overlay.hidden { display: none; }
    .shop-set-search-pick-panel {
      width: min(640px, 100%); max-height: min(78vh, 680px);
      background: #fff; border-radius: 1rem; border: 1px solid #e2e8f0;
      box-shadow: 0 25px 50px -12px rgba(0,0,0,.28);
      display: flex; flex-direction: column; overflow: hidden;
    }
    .shop-set-search-pick-head {
      display: flex; align-items: center; justify-content: space-between; gap: 8px;
      padding: 12px 16px; border-bottom: 1px solid #e2e8f0;
    }
    .shop-set-search-pick-head h3 {
      margin: 0; font-size: 15px; font-weight: 800; color: #0f172a;
    }
    .shop-set-search-pick-hint {
      margin: 0; padding: 8px 16px 0; font-size: 12px; color: #475569; font-weight: 600;
    }
    .shop-set-search-pick-body {
      padding: 10px 16px 12px; overflow: auto; display: flex; flex-direction: column; gap: 14px;
    }
    .shop-set-search-pick-group {
      border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px; background: #f8fafc;
    }
    .shop-set-search-pick-group-head {
      display: flex; flex-direction: column; gap: 4px; margin-bottom: 8px;
    }
    .shop-set-search-pick-group-head strong {
      font-size: 12px; color: #1d4ed8;
    }
    .shop-set-search-pick-group-head span {
      font-size: 12px; color: #334155; font-weight: 700;
    }
    .shop-set-search-pick-group-head code {
      font-size: 11px; color: #0f766e; background: #ecfdf5; padding: 2px 6px; border-radius: 6px;
      word-break: break-all;
    }
    .shop-set-search-pick-cards { display: flex; flex-direction: column; gap: 6px; }
    .shop-set-search-pick-card {
      display: flex; align-items: flex-start; gap: 8px;
      padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 10px;
      background: #fff; cursor: pointer;
    }
    .shop-set-search-pick-card:has(input:checked) {
      border-color: #2563eb; background: #eff6ff; box-shadow: 0 0 0 1px #2563eb;
    }
    .shop-set-search-pick-card input { margin-top: 3px; }
    .shop-set-search-pick-card-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
    .shop-set-search-pick-code-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .shop-set-search-pick-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; font-weight: 800; color: #0f172a; }
    .shop-set-search-pick-source {
      font-size: 10px; font-weight: 800; color: #0f766e; background: #ecfdf5;
      border: 1px solid #99f6e4; border-radius: 999px; padding: 1px 7px; letter-spacing: -0.02em;
    }
    .shop-set-search-pick-name { font-size: 12px; color: #334155; font-weight: 700; }
    .shop-set-search-pick-meta { font-size: 11px; color: #64748b; font-weight: 600; }
    .shop-set-search-pick-foot {
      display: flex; justify-content: flex-end; gap: 8px;
      padding: 10px 16px; border-top: 1px solid #e2e8f0;
    }
