:root {
  --bg: #f4f5f7;
  --panel: #ffffff;
  --ink: #171717;
  --muted: #6b7280;
  --line: #d9dce1;
  --rst: #c8102e;
  --rst-dark: #991027;
  --good: #166534;
  --good-bg: #dcfce7;
  --warn: #92400e;
  --warn-bg: #fef3c7;
  --bad: #991b1b;
  --bad-bg: #fee2e2;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, "Noto Sans KR", sans-serif; background: var(--bg); color: var(--ink); }
a { color: var(--rst); text-decoration: none; }
a:hover { text-decoration: underline; }
.topbar { background: #171717; color: white; min-height: 64px; display: flex; align-items: center; padding: 0 24px; gap: 28px; position: sticky; top: 0; z-index: 20; }
.brand { font-size: 20px; font-weight: 800; letter-spacing: .5px; white-space: nowrap; }
.nav { display: flex; gap: 18px; align-items: center; flex: 1; }
.nav a { color: #f8f8f8; font-weight: 600; }
.userbox { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.container { max-width: 1380px; margin: 0 auto; padding: 26px; }
.page-title { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
h1, h2, h3 { margin-top: 0; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 20px; box-shadow: 0 2px 8px rgba(0,0,0,.04); margin-bottom: 20px; }
.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kpi { background: var(--panel); border: 1px solid var(--line); border-left: 5px solid var(--rst); border-radius: 10px; padding: 18px; }
.kpi .label { color: var(--muted); font-size: 13px; text-transform: uppercase; font-weight: 700; }
.kpi .value { font-size: 30px; font-weight: 800; margin-top: 6px; }
.btn { display: inline-block; border: 0; border-radius: 8px; background: var(--rst); color: white; padding: 10px 15px; font-weight: 700; cursor: pointer; font-size: 14px; }
.btn:hover { background: var(--rst-dark); text-decoration: none; }
.btn.secondary { background: #374151; }
.btn.light { background: #e5e7eb; color: #111827; }
.btn.good { background: #166534; }
.btn.warn { background: #92400e; }
.btn.danger { background: #991b1b; }
.btn.small { padding: 7px 10px; font-size: 12px; }
button:disabled { opacity: .55; cursor: not-allowed; }
input, select, textarea { width: 100%; padding: 10px 11px; border: 1px solid #c8ccd2; border-radius: 7px; background: white; font-size: 14px; }
textarea { min-height: 90px; resize: vertical; }
label { display:block; font-weight:700; margin-bottom:6px; font-size:13px; }
.field { margin-bottom: 14px; }
.help { color: var(--muted); font-size: 12px; margin-top: 5px; }
.inline { display:flex; gap:10px; align-items:end; }
.inline > * { flex:1; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th { background:#242424; color:white; text-align:left; padding:10px; position: sticky; top:64px; }
td { padding:9px 10px; border-bottom:1px solid #e5e7eb; vertical-align:top; }
tr:hover td { background:#fafafa; }
.num { text-align:right; font-variant-numeric: tabular-nums; }
.status { display:inline-block; border-radius:999px; padding:4px 9px; font-size:11px; font-weight:800; }
.status.DRAFT { background:#e5e7eb; color:#374151; }
.status.APPROVED { background:var(--warn-bg); color:var(--warn); }
.status.SHIPPED { background:var(--good-bg); color:var(--good); }
.status.CANCELLED { background:var(--bad-bg); color:var(--bad); }
.flash { border-radius:8px; padding:12px 14px; margin-bottom:18px; font-weight:700; }
.flash.info { background:#dbeafe; color:#1e3a8a; }
.flash.success { background:var(--good-bg); color:var(--good); }
.flash.error { background:var(--bad-bg); color:var(--bad); }
.flash.warning { background:var(--warn-bg); color:var(--warn); }
.actions { display:flex; gap:10px; flex-wrap:wrap; }
.muted { color:var(--muted); }
.login-wrap { min-height:100vh; display:grid; place-items:center; padding:20px; background:#171717; }
.login-card { width:min(440px,100%); background:white; border-radius:16px; padding:32px; box-shadow:0 20px 50px rgba(0,0,0,.35); }
.login-mark { font-size:28px; font-weight:900; margin-bottom:6px; }
.login-mark span { color:var(--rst); }
.line-row { display:grid; grid-template-columns: 1.5fr .45fr .7fr auto; gap:10px; margin-bottom:10px; align-items:end; }
.summary { margin-left:auto; width:min(420px,100%); }
.summary-row { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid #e5e7eb; }
.summary-row.total { font-size:19px; font-weight:900; border-top:2px solid #171717; }
.warning-box { background:var(--warn-bg); color:var(--warn); border-radius:8px; padding:12px; }
.critical-box { background:var(--bad-bg); color:var(--bad); border-radius:8px; padding:12px; }
.mono { font-family: Consolas, monospace; }
@media (max-width: 900px) {
  .grid-4, .grid-2 { grid-template-columns:1fr; }
  .topbar { flex-wrap:wrap; padding:14px 18px; }
  .nav { order:3; width:100%; overflow-x:auto; }
  .container { padding:16px; }
  .line-row { grid-template-columns:1fr 1fr; padding:12px; border:1px solid var(--line); border-radius:8px; }
  th { top:112px; }
}
@media print {
  .topbar, .no-print, .flash { display:none !important; }
  body { background:white; }
  .container { max-width:none; padding:0; }
  .panel { box-shadow:none; border:0; }
}

/* v0.6 business foundation */
.badge { display:inline-block; padding:3px 7px; border-radius:999px; background:#e5e7eb; color:#374151; font-size:11px; font-weight:800; }
.badge.bulk { background:#ede9fe; color:#5b21b6; }
.badge.stock { background:#dcfce7; color:#166534; }
.badge.service { background:#dbeafe; color:#1e3a8a; }
.status.ORDERED, .status.PARTIAL { background:var(--warn-bg); color:var(--warn); }
.status.RECEIVED, .status.COMPLETED { background:var(--good-bg); color:var(--good); }
.price-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.scan-btn { min-width:44px; padding-left:10px; padding-right:10px; }
.scanner-overlay { position:fixed; inset:0; background:rgba(0,0,0,.78); z-index:9999; display:grid; place-items:center; padding:16px; }
.scanner-card { position:relative; width:min(620px,100%); background:white; border-radius:14px; padding:16px; box-shadow:0 20px 60px rgba(0,0,0,.45); }
.scanner-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.scanner-card video { width:100%; max-height:60vh; background:#111; border-radius:10px; object-fit:cover; }
.scanner-guide { position:absolute; left:15%; right:15%; top:42%; height:90px; border:3px solid #c8102e; border-radius:10px; pointer-events:none; }
.bulk-message { background:#ede9fe; color:#4c1d95; padding:12px; border-radius:8px; margin-top:12px; display:none; }
.po-scan-row { display:grid; grid-template-columns:1.2fr 1.6fr .55fr .55fr .55fr .65fr; gap:8px; align-items:center; padding:8px 0; border-bottom:1px solid #e5e7eb; }
@media (max-width:900px) { .price-grid { grid-template-columns:1fr 1fr; } .po-scan-row { grid-template-columns:1fr 1fr; } }
/* A1 landed-cost foundation */
.a1-po-header, .a1-po-row { grid-template-columns: 1.05fr 1.55fr .48fr .48fr .48fr .62fr .72fr .45fr; }
.a1-po-header { font-weight:800;background:#242424;color:#fff;padding:10px; }
@media (max-width:1100px) { .a1-po-header, .a1-po-row { grid-template-columns:1fr 1fr; } }
.status.PAID { background:#dcfce7; color:#166534; }
.status.UNPAID { background:#fee2e2; color:#991b1b; }

/* A1.Fix3 invoice list alignment + notes-column quick edit */
.invoice-table-wrap { overflow-x:auto; }
.invoice-list-table { min-width:1180px; table-layout:auto; }
.invoice-list-table th { position:static; top:auto; white-space:nowrap; }
.invoice-list-table th, .invoice-list-table td { vertical-align:middle; }
.invoice-list-table td { height:54px; }
.invoice-status-cell { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-width:150px; }
.note-link { border:0; padding:0; background:transparent; color:var(--rst); font:inherit; font-size:11px; font-weight:700; cursor:pointer; white-space:nowrap; }
.note-link:hover { text-decoration:underline; }
.invoice-note-preview { min-width:180px; max-width:300px; white-space:normal; }
.invoice-actions { min-width:240px; align-items:center; }
.invoice-actions form { margin:0; }

.invoice-note-cell { display:flex; align-items:center; gap:10px; justify-content:space-between; }
/* A2 data + Naver + inventory control */
.status.PREVIEW { background:#dbeafe; color:#1e3a8a; }
.status.APPLIED { background:var(--good-bg); color:var(--good); }
.badge.issue { background:#fef3c7; color:#92400e; margin:2px 2px 2px 0; white-space:nowrap; }
.nav { gap:14px; }
@media (max-width:1200px) { .topbar { align-items:flex-start; } .nav { flex-wrap:wrap; } }

/* A2.Fix1 UI alignment, compact barcode control, discounts */
.inventory-list-table th { position:static; top:auto; }
.inventory-list-table th, .inventory-list-table td { vertical-align:middle; }
.sku-input-wrap { display:flex; gap:6px; align-items:center; }
.sku-input-wrap input { flex:1 1 auto; min-width:0; }
.sku-input-wrap .scan-btn { flex:0 0 42px; width:42px; min-width:42px; padding:9px 0; text-align:center; }
.invoice-product-row { grid-template-columns:minmax(260px,1.5fr) .42fr .72fr .48fr .72fr auto; }
.label-sub { font-size:11px; font-weight:400; color:var(--muted); }
.final-unit-price[readonly] { background:#f3f4f6; font-weight:700; }
.price-list-selector select { font-weight:800; border:2px solid #9ca3af; }
.save-contact-option { display:flex; gap:8px; align-items:center; margin:4px 0; font-weight:700; }
.save-contact-option input { width:auto; }
@media(max-width:1100px){ .invoice-product-row { grid-template-columns:1fr 1fr; } }


/* A2.Fix2 inventory header + one-line invoice product editor */
.inventory-list-table { width:100%; border-collapse:collapse; table-layout:auto; }
.inventory-list-table thead { display:table-header-group !important; }
.inventory-list-table tbody { display:table-row-group !important; }
.inventory-list-table tr { display:table-row !important; }
.inventory-list-table th, .inventory-list-table td { display:table-cell !important; }
.inventory-list-table thead th { position:static !important; top:auto !important; transform:none !important; z-index:auto !important; }
.inventory-list-table tbody tr:first-child td { position:static !important; }

.sku-input-wrap { display:flex; gap:6px; align-items:center; }
.sku-input-wrap .scan-btn { order:0; flex:0 0 36px; width:36px; min-width:36px; height:38px; padding:0; display:inline-grid; place-items:center; line-height:1; }
.sku-input-wrap input { order:1; min-width:0; }
.invoice-product-row {
  display:grid;
  grid-template-columns:minmax(300px,1fr) 72px 160px 82px 160px 78px;
  gap:8px;
  align-items:end;
  margin-bottom:10px;
}
.invoice-product-row > div { min-width:0; }
.invoice-product-row label { font-size:12px; line-height:1.15; min-height:28px; display:flex; align-items:flex-end; }
.invoice-product-row .label-sub { font-size:10px; margin-left:3px; white-space:nowrap; }
.invoice-qty-cell input { max-width:72px; }
.invoice-discount-cell input { max-width:82px; }
.invoice-money-cell input { max-width:160px; }
.invoice-remove-cell { align-self:end; padding-bottom:1px; }
.invoice-remove-cell .btn { width:78px; padding-left:6px; padding-right:6px; }
@media(max-width:1050px){
  .invoice-product-row { grid-template-columns:minmax(250px,1fr) 70px 145px 78px 145px 74px; gap:6px; }
  .invoice-money-cell input { max-width:145px; }
  .invoice-discount-cell input { max-width:78px; }
}
@media(max-width:820px){
  .invoice-product-row { grid-template-columns:1fr 1fr; padding:12px; border:1px solid var(--line); border-radius:8px; }
  .invoice-product-row .invoice-sku-cell { grid-column:1 / -1; }
  .invoice-money-cell input, .invoice-discount-cell input, .invoice-qty-cell input { max-width:none; }
}
.badge.success { background:#dcfce7; color:#166534; }
.badge.warning { background:#fef3c7; color:#92400e; }

/* A2.Fix7 — Naver mapping table viewport */
.naver-catalog-panel { overflow: hidden; }
.naver-catalog-scroll {
  width: 100%;
  height: min(820px, calc(100vh - 280px));
  min-height: 520px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  position: relative;
}
.naver-catalog-table {
  min-width: 1680px;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.naver-catalog-table thead { display: table-header-group !important; }
.naver-catalog-table tbody { display: table-row-group !important; }
.naver-catalog-table tr { display: table-row !important; }
.naver-catalog-table th,
.naver-catalog-table td { display: table-cell !important; }
.naver-catalog-table thead th {
  position: sticky !important;
  top: 0 !important;
  z-index: 5 !important;
  transform: none !important;
  background: #242424 !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.08), 0 2px 4px rgba(0,0,0,.12);
}
.naver-catalog-table tbody tr:first-child td {
  position: static !important;
  transform: none !important;
}
.naver-catalog-table th,
.naver-catalog-table td {
  vertical-align: middle;
}

@media (max-width: 900px) {
  .naver-catalog-scroll {
    height: 65vh;
    min-height: 440px;
  }
}

/* A2.Fix8 — freeze first 3 Naver mapping columns during horizontal scroll */
.naver-catalog-table {
  table-layout: fixed;
}
.naver-catalog-table th:nth-child(1),
.naver-catalog-table td:nth-child(1) {
  width: 300px;
  min-width: 300px;
  max-width: 300px;
  position: sticky !important;
  left: 0 !important;
}
.naver-catalog-table th:nth-child(2),
.naver-catalog-table td:nth-child(2) {
  width: 120px;
  min-width: 120px;
  max-width: 120px;
  position: sticky !important;
  left: 300px !important;
}
.naver-catalog-table th:nth-child(3),
.naver-catalog-table td:nth-child(3) {
  width: 210px;
  min-width: 210px;
  max-width: 210px;
  position: sticky !important;
  left: 420px !important;
}
.naver-catalog-table tbody td:nth-child(-n+3) {
  z-index: 3 !important;
  background: #ffffff;
}
.naver-catalog-table tbody tr:hover td:nth-child(-n+3) {
  background: #fafafa;
}
.naver-catalog-table thead th:nth-child(-n+3) {
  z-index: 9 !important;
  background: #242424 !important;
}
.naver-catalog-table th:nth-child(3),
.naver-catalog-table td:nth-child(3) {
  box-shadow: 3px 0 5px rgba(0,0,0,.10);
}
.naver-catalog-table td:nth-child(1),
.naver-catalog-table td:nth-child(3) {
  overflow-wrap: anywhere;
}

/* Keep the first visible mapping row frozen too; overrides the Fix7 first-row reset. */
.naver-catalog-table tbody tr:first-child td:nth-child(-n+3) {
  position: sticky !important;
}


/* A2.Fix9 — tighter Naver option column + RST product-name verification */
.naver-catalog-table th:nth-child(7),
.naver-catalog-table td:nth-child(7) {
  width: 230px;
  min-width: 230px;
}
.naver-catalog-table th:nth-child(8),
.naver-catalog-table td:nth-child(8) {
  width: 300px;
  min-width: 300px;
  overflow-wrap: anywhere;
}

/* A2.Fix19 — Naver Orders header is physically separated from the vertical scrolling rows.
   This avoids browser sticky-table behavior ever drawing a row underneath the headings. */
.naver-orders-table-shell {
  width: 100%;
  overflow: hidden;
  border-radius: 2px;
}
.naver-orders-header-scroll {
  width: 100%;
  overflow: hidden;
  background: #242424;
}
.naver-orders-body-scroll {
  width: 100%;
  max-height: 72vh;
  overflow: auto;
  position: relative;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.naver-orders-table {
  width: 1720px;
  min-width: 1720px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}
.naver-orders-header-table th {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
  background: #242424 !important;
  color: #fff;
  box-shadow: none !important;
  vertical-align: middle;
}
.naver-orders-body-table td {
  vertical-align: top;
}
.naver-orders-col-order { width: 190px; }
.naver-orders-col-date { width: 150px; }
.naver-orders-col-product { width: 240px; }
.naver-orders-col-option { width: 210px; }
.naver-orders-col-manage { width: 160px; }
.naver-orders-col-seller { width: 110px; }
.naver-orders-col-sku { width: 220px; }
.naver-orders-col-qty { width: 70px; }
.naver-orders-col-status { width: 140px; }
.naver-orders-col-mapping { width: 230px; }

/* A2.Fix24 — preview table stays simple/non-sticky to avoid any header overlap. */
.naver-processing-preview-table th { position: static !important; top: auto !important; z-index: auto !important; }

.success-box { padding:14px 16px; border-radius:12px; background:var(--good-bg); color:var(--good); }

/* A3.Fix2 — Partner Portal */
.partner-admin-card { border-left: 5px solid var(--rst); }
.partner-body { background:#f1f2f4; }
.partner-topbar { min-height:68px; background:#111; color:#fff; display:flex; align-items:center; gap:28px; padding:0 28px; position:sticky; top:0; z-index:30; }
.partner-brand { font-size:21px; font-weight:900; letter-spacing:.4px; white-space:nowrap; }
.partner-brand span { color:var(--rst); }
.partner-brand small { font-size:10px; color:#bbb; margin-left:6px; letter-spacing:1.3px; }
.partner-nav { display:flex; gap:22px; flex:1; }
.partner-nav a { color:#fff; font-weight:700; }
.partner-userbox { display:flex; align-items:center; gap:10px; font-size:13px; }
.partner-userbox form { margin:0; }
.partner-container { max-width:1500px; margin:0 auto; padding:28px; }
.partner-hero { display:flex; justify-content:space-between; gap:18px; align-items:center; margin-bottom:20px; }
.partner-hero h1 { margin-bottom:4px; }
.partner-filter-form { display:grid; grid-template-columns:minmax(300px,1.3fr) minmax(220px,.7fr) auto; gap:12px; align-items:end; }
.partner-filter-form .field { margin:0; }
.partner-table-wrap { width:100%; overflow:auto; }
.partner-catalog-table { min-width:1180px; }
.partner-catalog-table th { position:static; top:auto; }
.partner-catalog-table td { vertical-align:middle; }
.partner-small { font-size:11px; margin-top:4px; }
.bulk-text { color:#5b21b6; font-weight:700; }
.partner-stock { display:inline-block; min-width:34px; text-align:center; border-radius:999px; padding:4px 8px; background:#dcfce7; color:#166534; font-weight:900; }
.partner-stock.low { background:#fef3c7; color:#92400e; }
.partner-stock.out { background:#fee2e2; color:#991b1b; }
.partner-add-form { display:grid; grid-template-columns:68px auto; gap:6px; align-items:center; min-width:135px; }
.partner-add-form input { padding:7px 8px; }
.partner-checkout { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(380px,1.2fr); gap:28px; align-items:start; margin-top:24px; }
.partner-submit-box { border-left:4px solid var(--rst); padding-left:20px; }
.partner-empty { text-align:center; padding:42px 12px; }
.partner-login-wrap { min-height:calc(100vh - 56px); display:grid; place-items:center; padding:22px; }
.partner-login-card { width:min(460px,100%); background:#fff; border-radius:18px; padding:34px; box-shadow:0 20px 55px rgba(0,0,0,.16); border-top:5px solid var(--rst); }
.partner-login-logo { font-size:27px; font-weight:900; margin-bottom:18px; }
.partner-login-logo span { color:var(--rst); }
.partner-login-btn { width:100%; padding:12px; }
.partner-login-note { font-size:12px; color:var(--muted); margin-top:18px; text-align:center; }
.partner-narrow { width:min(620px,100%); margin:50px auto; }
.partner-admin-review { display:grid; grid-template-columns:minmax(150px,1fr) auto auto; gap:6px; align-items:center; min-width:380px; }
.partner-admin-review input { padding:7px 9px; }
.partner-test-steps { padding-left:20px; line-height:1.8; }

/* Preserve the A2.Fix30 invoice-line alignment while A3 builds on the same database. */
.invoice-product-row { align-items:start; }
.invoice-product-row label { height:32px; min-height:32px; display:flex; align-items:flex-end; margin-bottom:6px; }
.invoice-product-row input, .invoice-product-row select { min-height:40px; }
.invoice-product-row .invoice-remove-cell { align-self:start; padding-top:38px; padding-bottom:0; }
.invoice-product-row .invoice-remove-cell .btn { min-height:40px; }

@media (max-width: 980px) {
  .partner-topbar { flex-wrap:wrap; padding:14px 18px; gap:12px; }
  .partner-nav { order:3; width:100%; overflow:auto; }
  .partner-userbox { margin-left:auto; }
  .partner-container { padding:16px; }
  .partner-filter-form { grid-template-columns:1fr; }
  .partner-checkout { grid-template-columns:1fr; }
  .partner-hero { align-items:flex-start; }
}

/* A3.Fix3 — reseller order-mode rules, multi-user partner access, cart cleanup */
.partner-table-wrap th { position:static !important; top:auto !important; z-index:auto !important; }
.partner-cart-table { min-width:1120px; }
.partner-cart-table th, .partner-cart-table td { vertical-align:middle; }
.partner-login-admin-grid { display:grid; gap:10px; margin-bottom:16px; }
.partner-login-admin-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#fafafa; }
.partner-login-admin-row .field { margin:0; }
.partner-mode-wrap { width:min(900px,100%); }
.partner-mode-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:20px; }
.partner-mode-card { border:1px solid var(--line); border-top:5px solid #374151; border-radius:12px; padding:22px; background:#fff; }
.partner-mode-card.dropship { border-top-color:var(--rst); }
.partner-mode-card h2 { margin-bottom:8px; }
.partner-mode-card p { min-height:70px; line-height:1.55; color:var(--muted); }
.partner-login-email { color:#c7cbd1; }
.required { color:var(--rst); }
@media (max-width:760px) {
  .partner-login-admin-row, .partner-mode-grid { grid-template-columns:1fr; }
  .partner-mode-card p { min-height:0; }
}

/* A3.Fix7 — Partners admin tables: keep headings in normal table flow.
   The global sticky TH rule uses top:64px and, inside an overflow container,
   can push the heading over the first data row. */
.partner-admin-table { width:100%; border-collapse:collapse; table-layout:auto; }
.partner-admin-table thead { display:table-header-group !important; }
.partner-admin-table tbody { display:table-row-group !important; }
.partner-admin-table tr { display:table-row !important; }
.partner-admin-table th,
.partner-admin-table td { display:table-cell !important; }
.partner-admin-table thead th {
  position:static !important;
  top:auto !important;
  transform:none !important;
  z-index:auto !important;
}
.partner-admin-table tbody tr:first-child td { position:static !important; }

/* A3.Fix8 — searchable product picker for management order editing. */
.partner-product-picker-field { position:relative; }
.partner-product-search-results {
  position:absolute;
  z-index:30;
  left:0;
  right:0;
  top:72px;
  max-height:320px;
  overflow:auto;
  background:#fff;
  border:1px solid #d1d5db;
  border-radius:10px;
  box-shadow:0 14px 30px rgba(0,0,0,.14);
}
.partner-product-search-result {
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:3px 14px;
  padding:10px 12px;
  border:0;
  border-bottom:1px solid #eee;
  background:#fff;
  text-align:left;
  cursor:pointer;
  color:inherit;
}
.partner-product-search-result:last-child { border-bottom:0; }
.partner-product-search-result:hover,
.partner-product-search-result:focus { background:#f3f4f6; outline:none; }
.partner-product-search-result strong { min-width:0; }
.partner-product-search-result .partner-small { grid-column:1 / -1; }
.partner-product-search-empty { padding:12px; color:#6b7280; }
@media (max-width: 760px) {
  .partner-product-search-results { position:static; margin-top:6px; }
}

/* A3.Fix9 — compact horizontal Add Product row + live stock availability. */
.partner-order-add-row {
  display:grid;
  grid-template-columns:minmax(420px, 3fr) minmax(90px, .6fr) minmax(150px, .9fr) minmax(145px, .85fr) auto;
  gap:14px;
  align-items:start;
}
.partner-order-add-row .field { margin-bottom:0; }
.partner-add-product-action .btn { white-space:nowrap; min-height:42px; }
.partner-product-selected-help { margin:6px 0 16px; }
.partner-order-add-row .partner-product-search-results {
  top:100%;
  margin-top:6px;
}
.partner-product-search-result {
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
}
.partner-product-search-result .mono { min-width:0; }
.partner-product-stock {
  justify-self:end;
  white-space:nowrap;
  font-weight:800;
  font-size:13px;
  padding:4px 8px;
  border-radius:999px;
  background:#eef2f7;
}
.partner-product-stock.in-stock { color:#166534; background:#dcfce7; }
.partner-product-stock.out-of-stock { color:#991b1b; background:#fee2e2; }
@media (max-width: 1200px) {
  .partner-order-add-row { grid-template-columns:minmax(320px, 2fr) 1fr 1fr; }
  .partner-order-add-row .field:nth-child(4),
  .partner-order-add-row .field:nth-child(5) { grid-column:auto; }
}
@media (max-width: 760px) {
  .partner-order-add-row { grid-template-columns:1fr; }
  .partner-order-add-row .field:nth-child(4),
  .partner-order-add-row .field:nth-child(5) { grid-column:auto; }
}

/* A3.Fix14 operational payment/shipping popups */
.workflow-dialog { width:min(760px, calc(100vw - 32px)); max-height:88vh; border:0; border-radius:16px; padding:0; box-shadow:0 24px 80px rgba(0,0,0,.28); }
.workflow-dialog::backdrop { background:rgba(0,0,0,.48); }
.workflow-dialog form { padding:22px; }
.workflow-dialog h2 { margin:0 0 4px; }
.dialog-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; }
.dialog-x { border:0; background:transparent; font-size:30px; line-height:1; cursor:pointer; color:#6b7280; }
.dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.workflow-summary { display:flex; justify-content:space-between; gap:16px; padding:12px 14px; background:#f3f4f6; border-radius:10px; margin-bottom:16px; }
.payment-preview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.payment-preview-grid > div { background:#f3f4f6; border-radius:10px; padding:11px 13px; display:flex; flex-direction:column; gap:3px; }
.payment-preview-grid span { font-size:12px; color:#6b7280; font-weight:700; }
.payment-preview-grid b { font-size:16px; }
.form-grid.two { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-grid label { display:flex; flex-direction:column; gap:6px; font-weight:700; }
.form-grid input { width:100%; }
.shipment-dialog { width:min(920px, calc(100vw - 32px)); }
.shipment-lines { max-height:46vh; overflow:auto; border:1px solid #e5e7eb; border-radius:10px; margin-bottom:16px; }
.shipment-lines table { margin:0; }
.qty-mini { width:88px; text-align:right; }
button:disabled { opacity:.58; cursor:not-allowed; }
@media (max-width:700px) { .form-grid.two { grid-template-columns:1fr; } .payment-preview-grid { grid-template-columns:1fr; } .workflow-dialog form { padding:16px; } }
.shipment-history-block { border:1px solid #e5e7eb; border-radius:10px; padding:12px; margin-top:12px; }
.shipment-history-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:10px; }
/* A3.Fix14 — tables used inside workflow dialogs/history must never inherit global sticky headings. */
.nonsticky-table thead th { position:static !important; top:auto !important; transform:none !important; z-index:auto !important; }

/* A3.Fix17: annual PDF catalog landing page. */
.partner-pdf-panel { padding:16px; }
.partner-pdf-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.partner-pdf-frame { width:100%; height:76vh; min-height:620px; border:1px solid #d9dde5; border-radius:10px; background:#f4f5f7; }
@media (max-width: 800px) {
  .partner-pdf-toolbar { align-items:flex-start; flex-direction:column; }
  .partner-pdf-frame { height:68vh; min-height:480px; }
}

/* A3.Fix18 — live B2B attention indicator */
.nav-with-count { display:inline-flex; align-items:center; gap:6px; }
.nav-count {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:20px; height:20px; padding:0 6px; border-radius:999px;
  background:#b91c1c; color:#fff; font-size:11px; font-weight:800; line-height:1;
}
.b2b-attention-table td, .b2b-attention-table th { vertical-align:middle; }

/* A3.Fix19 — reseller order/payment/shipment visibility. */
.partner-order-status-table td, .partner-order-status-table th { vertical-align:middle; }
.partner-progress-note { margin-top:5px; color:#6b7280; font-size:12px; line-height:1.3; }
.partner-progress-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.partner-progress-card { background:#fff; border:1px solid #e1e4e8; border-radius:12px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,.035); }
.partner-progress-card > span { display:block; color:#6b7280; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.partner-progress-card > b { display:block; font-size:18px; margin-bottom:5px; }
.partner-progress-card > small { display:block; color:#6b7280; line-height:1.45; }
@media (max-width:900px) { .partner-progress-cards { grid-template-columns:1fr; } }

/* A3.Fix20 — shipment delivery method / in-person fulfillment. */
.shipment-meta-grid { display:grid; grid-template-columns:minmax(220px,1fr) minmax(280px,1.2fr) minmax(210px,.8fr); gap:14px; align-items:end; }
.shipment-meta-grid > label { display:flex; flex-direction:column; gap:6px; font-weight:700; }
.shipment-meta-grid input[type="date"], .shipment-meta-grid input[type="text"] { width:100%; }
.delivery-method-check { min-height:74px; justify-content:flex-end; }
.delivery-method-check > span:first-child { font-weight:700; }
.checkbox-line { display:flex; align-items:center; gap:8px; min-height:42px; padding:9px 12px; border:1px solid #d1d5db; border-radius:8px; background:#fff; font-weight:700; }
.checkbox-line input[type="checkbox"] { width:auto; margin:0; }
.delivery-method-check small { color:#6b7280; font-weight:400; }
.delivery-in-person-label { display:inline-block; font-weight:800; color:#166534; background:#dcfce7; border-radius:999px; padding:3px 8px; }
@media (max-width:820px) { .shipment-meta-grid { grid-template-columns:1fr; } .delivery-method-check { min-height:0; } }


/* A3.Fix21 — payment cap + ship-all convenience. */
.shipment-select-all { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 14px; background:#f7f8fa; border-bottom:1px solid #e5e7eb; }
.shipment-select-all .checkbox-line { font-weight:800; }
@media (max-width:720px) { .shipment-select-all { align-items:flex-start; flex-direction:column; gap:4px; } }

/* A3.Fix22 — overpayment warnings and reusable customer credit notes. */
.overpayment-warning { margin-top:12px; padding:12px 14px; border-radius:10px; border:1px solid #efb4b4; background:#fff0f0; color:#a12424; font-weight:700; line-height:1.45; }
.credit-balance-box { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:16px; padding:14px 16px; border:1px solid #cfd7e3; background:#f7f9fc; border-radius:12px; }
.credit-balance-box strong { font-size:22px; white-space:nowrap; }
.credit-positive { color:#2f6d3c; }
.customer-credit-balance { padding:9px 12px; border-radius:9px; background:#f3f4f6; white-space:nowrap; }
.customer-credit-balance b { margin-left:8px; font-size:18px; }
@media (max-width:700px) { .credit-balance-box { align-items:flex-start; flex-direction:column; } }


/* A3.Fix24 — reorganized internal navigation. */
.nav-menu { position:relative; color:#f8f8f8; }
.nav-menu > summary {
  display:flex; align-items:center; gap:6px; list-style:none; cursor:pointer;
  color:#f8f8f8; font-weight:600; white-space:nowrap; user-select:none;
}
.nav-menu > summary::-webkit-details-marker { display:none; }
.nav-menu > summary::after { content:"▾"; font-size:10px; opacity:.75; margin-left:1px; }
.nav-menu[open] > summary::after { content:"▴"; }
.nav-menu > summary:hover { text-decoration:underline; }
.nav-dropdown {
  position:absolute; top:calc(100% + 12px); left:-12px; z-index:60;
  min-width:210px; padding:8px; border:1px solid #343434; border-radius:10px;
  background:#1f1f1f; box-shadow:0 16px 38px rgba(0,0,0,.32);
}
.nav-dropdown::before { content:""; position:absolute; left:0; right:0; top:-13px; height:13px; }
.nav-dropdown > a,
.nav-dropdown > .nav-with-count {
  display:flex; width:100%; min-height:38px; align-items:center; justify-content:space-between;
  gap:10px; padding:9px 10px; border-radius:7px; color:#f8f8f8;
}
.nav-dropdown > a:hover,
.nav-dropdown > .nav-with-count:hover { background:#303030; text-decoration:none; }
.nav-dropdown .nav-with-count > a { color:#f8f8f8; flex:1; }
.nav-dropdown .nav-with-count > a:hover { text-decoration:none; }
.nav-menu > summary .nav-count { margin-left:1px; }
@media (max-width:1200px) {
  .nav { gap:12px; }
  .nav-dropdown { min-width:195px; }
}
@media (max-width:900px) {
  .nav { overflow:visible; flex-wrap:wrap; align-items:flex-start; row-gap:12px; }
  .nav-menu { position:static; }
  .nav-menu[open] { flex-basis:100%; }
  .nav-menu[open] > summary { margin-bottom:6px; }
  .nav-dropdown {
    position:static; min-width:0; width:100%; margin-top:0; padding:6px;
    box-shadow:none; border-color:#3a3a3a; background:#202020;
  }
  .nav-dropdown::before { display:none; }
}

/* A4.Fix2 — production cutover notices */
.notice { border-radius:8px; padding:12px 14px; margin:10px 0; }
.notice.success { background:var(--good-bg); color:var(--good); }
.notice.warning { background:var(--warn-bg); color:var(--warn); }
.notice.error { background:var(--bad-bg); color:var(--bad); }
