/* ================================================================
   Nova RFQ System — Frontend CSS v1.6
   Namespaces: nrfq- (RFQ form) | nsd- (dashboard) | niqf- (item quote form)
   ================================================================ */

:root {
    /* ── Brand colours ─────────────────────────────── */
    --rfq-blue:       #2563eb;   /* portal primary (updated from #1a56db) */
    --rfq-blue-dk:    #1d4ed8;
    --rfq-blue-lt:    #eff6ff;
    --rfq-green:      #0d9488;
    --rfq-green-lt:   #d1fae5;
    --rfq-amber:      #f59e0b;
    --rfq-amber-lt:   #fef3c7;
    --rfq-red:        #dc2626;
    --rfq-red-lt:     #fee2e2;

    /* ── Grays ─────────────────────────────────────── */
    --rfq-gray-50:    #f9fafb;
    --rfq-gray-100:   #f3f4f6;
    --rfq-gray-200:   #e5eaf2;   /* portal border tone */
    --rfq-gray-400:   #94a3b8;
    --rfq-gray-600:   #475569;   /* portal body text */
    --rfq-gray-700:   #374151;
    --rfq-gray-800:   #0f172a;   /* portal heading */

    /* ── Portal design tokens ──────────────────────── */
    --portal-bg:      #f5f7fb;
    --portal-card:    #ffffff;
    --portal-border:  #e5eaf2;
    --portal-radius:  16px;
    --portal-shadow:  0 8px 24px rgba(15,23,42,.06);
    --portal-title:   #0f172a;
    --portal-body:    #475569;
    --portal-muted:   #64748b;
    --portal-primary: #2563eb;

    /* ── Component tokens ──────────────────────────── */
    --rfq-radius:     8px;       /* form inputs (slightly larger than old 6px) */
    --rfq-shadow:     0 8px 24px rgba(15,23,42,.06);
    --rfq-shadow-md:  0 4px 6px -1px rgba(0,0,0,.10);
    --rfq-font:       -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    --rfq-transition: 0.18s ease;
}


/* ================================================================
   REQUEST-A-QUOTE 페이지: 로그인 상태에서 Elementor 랜딩 요소 숨김
   body.logged-in 조건으로 비로그인 사용자 영향 없음
   ================================================================ */

/* Astra breadcrumb 숨김 (로그인 buyer) */
body.logged-in .ast-breadcrumbs-wrapper,
body.logged-in .astra-breadcrumbs,
body.logged-in .rank-math-breadcrumb,
body.logged-in nav.breadcrumb,
body.logged-in .breadcrumb-trail {
    display: none !important;
}

/* Elementor 페이지 제목 섹션 숨김
   — .nbp-header 가 있는 페이지에서만 적용 (portal 페이지) */
body.logged-in:has(.nbp-header) .elementor-widget-heading:first-of-type,
body.logged-in:has(.nbp-header) .page-header,
body.logged-in:has(.nbp-header) .ast-page-header-wrap,
body.logged-in:has(.nbp-header) .site-above-header-wrap {
    display: none !important;
}

/* ── Legacy compat ─────────────────────────────────────────── */
.nova-btn { display:inline-block;padding:10px 22px;border-radius:var(--rfq-radius);font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;border:none;transition:background var(--rfq-transition); }
.nova-btn-primary { background:var(--rfq-blue);color:#fff; }
.nova-btn-primary:hover { background:var(--rfq-blue-dk);color:#fff; }
.nova-notice { padding:12px 16px;border-radius:var(--rfq-radius);margin:16px 0;font-size:14px; }
.nova-notice-error { background:var(--rfq-red-lt);color:#991b1b;border:1px solid #fca5a5; }

/* ================================================================
   RFQ FORM (nrfq-)
   ================================================================ */
.nrfq-page { max-width:780px;margin:0 auto;padding:0 16px;font-family:var(--rfq-font); }  /* legacy — keep for non-portal use */

/* ── Portal RFQ layout (replaces nrfq-page when inside buyer portal) ── */
.nrfq-portal-wrap { }   /* inherits .nbd-wrap--v3 */

.nrfq-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
    align-items: start;
}
@media (max-width: 900px) {
    .nrfq-layout { grid-template-columns: 1fr; }
}

.nrfq-main  { min-width: 0; }
.nrfq-sidebar { min-width: 0; }

/* ── RFQ portal cards (mirrors .nbd-card) ──────────────────── */
.nrfq-card {
    background: var(--portal-card, #ffffff);
    border: 1px solid var(--portal-border, #e5eaf2);
    border-radius: var(--portal-radius, 16px);
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: var(--portal-shadow, 0 8px 24px rgba(15,23,42,.06));
}
.nrfq-card__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 18px;
    gap: 12px;
    flex-wrap: wrap;
}
.nrfq-card__title {
    font-size: 15px;
    font-weight: 700;
    color: var(--portal-title, #0f172a);
    margin: 0;
    font-family: inherit;
    text-transform: none;
    letter-spacing: 0;
}
.nrfq-card__hint {
    font-size: 12px;
    color: var(--portal-muted, #64748b);
}

/* Brand tags grid */
.nrfq-brand-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}
.nrfq-brand-tag {
    display: inline-block;
    padding: 4px 10px;
    background: #f1f5f9;
    border: 1px solid #e5eaf2;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    white-space: nowrap;
}

/* Alerts */
.nrfq-alert { padding:14px 18px;border-radius:var(--rfq-radius);margin-bottom:18px;font-size:14px; }
.nrfq-alert--success { background:var(--rfq-green-lt);color:#065f46;border:1px solid #6ee7b7; }
.nrfq-alert--error   { background:var(--rfq-red-lt);color:#991b1b;border:1px solid #fca5a5; }

/* Login gate */
.nrfq-login-gate { text-align:center;padding:48px 24px;border:2px dashed var(--rfq-gray-200);border-radius:var(--rfq-radius);background:var(--rfq-gray-50);max-width:440px;margin:0 auto; }
.nrfq-login-gate__icon { font-size:40px;margin-bottom:16px;display:block; }
.nrfq-login-gate__msg  { font-size:15px;color:var(--rfq-gray-600);margin:0 0 20px;line-height:1.6; }

/* Product banner */
.nrfq-product-banner { display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--rfq-blue-lt);border:1px solid #bfdbfe;border-radius:var(--rfq-radius);margin-bottom:18px;flex-wrap:wrap; }
.nrfq-product-banner__label  { font-size:12px;color:var(--rfq-blue-dk);text-transform:uppercase;letter-spacing:.05em;font-weight:600; }
.nrfq-product-banner__name   { font-size:15px;font-weight:700;color:var(--rfq-gray-800); }
.nrfq-product-banner__model  { font-size:12px;color:var(--rfq-gray-600);background:var(--rfq-gray-200);padding:2px 8px;border-radius:4px; }

/* Section */
.nrfq-section { background:var(--portal-card,#fff);border:1px solid var(--portal-border,#e5eaf2);border-radius:var(--portal-radius,16px);padding:22px 24px;margin-bottom:20px;box-shadow:var(--portal-shadow,0 8px 24px rgba(15,23,42,.06)); }
.nrfq-section__title { font-size:15px;font-weight:700;color:var(--portal-title,#0f172a);margin:0 0 16px;text-transform:none;letter-spacing:0; }

/* Items grid header */
.nrfq-items-header { display:flex;gap:6px;align-items:center;margin-bottom:6px;font-size:11px;font-weight:700;color:var(--rfq-gray-400);text-transform:uppercase;letter-spacing:.05em; }
.nrfq-item-row { display:flex;gap:8px;align-items:center;margin-bottom:8px; }
.nrfq-cell { height:40px;padding:0 10px;border:1.5px solid #e5eaf2;border-radius:8px;font-size:13px;font-family:var(--rfq-font);color:#0f172a;background:#fff;transition:border-color .15s;outline:none;box-sizing:border-box; }
.nrfq-cell:focus { border-color:var(--portal-primary,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.10); }
.nrfq-col--desc  { flex:3;min-width:0; }
.nrfq-col--mpn   { flex:2;min-width:0; }
.nrfq-col--brand { flex:1.5;min-width:0; }
.nrfq-col--qty   { flex:1;min-width:60px;max-width:80px; }
.nrfq-col--del   { width:28px; }
.nrfq-del-row { width:36px;height:40px;border:1.5px solid #fca5a5;border-radius:8px;background:#fff5f5;color:#ef4444;cursor:pointer;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s,border-color .15s;padding:0;line-height:1; }
.nrfq-del-row:hover { background:#fee2e2;color:#dc2626;border-color:#f87171; }
#nrfq-add-row { margin-top:10px; }

/* Inputs */
.nrfq-input { width:100%;box-sizing:border-box;height:40px;padding:0 12px;border:1.5px solid var(--portal-border,#e5eaf2);border-radius:var(--rfq-radius,8px);font-size:14px;font-family:var(--rfq-font);color:var(--portal-title,#0f172a);background:#fff;outline:none;transition:border-color var(--rfq-transition),box-shadow var(--rfq-transition); }
.nrfq-input:focus { border-color:var(--portal-primary,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.10); }
.nrfq-textarea { width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid var(--portal-border,#e5eaf2);border-radius:var(--rfq-radius,8px);font-size:14px;font-family:var(--rfq-font);color:var(--portal-title,#0f172a);outline:none;resize:vertical;transition:border-color var(--rfq-transition),box-shadow var(--rfq-transition); }
.nrfq-textarea:focus { border-color:var(--portal-primary,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.10); }
.nrfq-textarea--full { width:100%; }

/* File */
.nrfq-file-input { display:none; }
.nrfq-file-label { display:flex;align-items:center;gap:10px;padding:10px 14px;border:2px dashed var(--rfq-gray-200);border-radius:var(--rfq-radius);cursor:pointer;font-size:13px;color:var(--rfq-gray-600);transition:border-color var(--rfq-transition),background var(--rfq-transition); }
.nrfq-file-label:hover { border-color:var(--rfq-blue);background:var(--rfq-blue-lt);color:var(--rfq-blue); }

/* Contact grid */
.nrfq-field { margin-bottom:12px; }
.nrfq-label { display:block;font-size:13px;font-weight:600;color:var(--portal-title,#0f172a);margin-bottom:6px; }
.nrfq-hint--inline { font-weight:400;color:var(--portal-muted,#64748b);font-size:11px;margin-left:6px; }
.nrfq-required { color:var(--rfq-red); }
.nrfq-contact-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
@media(max-width:560px){ .nrfq-contact-grid { grid-template-columns:1fr; } }

/* Buttons */
.nrfq-btn { display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 24px;border-radius:var(--rfq-radius);font-size:14px;font-weight:700;cursor:pointer;border:none;transition:background var(--rfq-transition);text-decoration:none;font-family:var(--rfq-font); }
.nrfq-btn--primary { background:var(--rfq-blue);color:#fff; }
.nrfq-btn--primary:hover { background:var(--rfq-blue-dk); }
.nrfq-btn--ghost { background:transparent;border:1.5px solid var(--portal-border,#e5eaf2);color:var(--portal-body,#475569); }
.nrfq-btn--ghost:hover { border-color:var(--portal-primary,#2563eb);color:var(--portal-primary,#2563eb);background:var(--rfq-blue-lt,#eff6ff); }
.nrfq-btn--sm { padding:7px 14px;font-size:13px; }
.nrfq-btn--full { width:100%; }
.nrfq-btn:disabled { opacity:.6;cursor:not-allowed; }
.nrfq-submit-row { margin-top:20px; }

/* Spinner */
/* nrfq-spinner: hidden by default; JS .show()/.hide() controls visibility */
.nrfq-spinner { width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:rfqSpin .7s linear infinite;display:none; }
@keyframes rfqSpin { to { transform:rotate(360deg); } }

.nrfq-privacy-note { font-size:11px;color:var(--portal-muted,#64748b);margin-top:10px;text-align:center;line-height:1.5; }


/* ================================================================
   ITEM QUOTE FORM (niqf-)  — v1.9.1
   Supplier-facing: per-item quote submission.
   Supplier sees KRW only. Buyer sees USD only (handled server-side).
   ================================================================ */

/* ── Wrapper ─────────────────────────────────────────────────── */
.niqf-wrap {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 16px 48px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 14px;
    color: #1a202c;
    box-sizing: border-box;
}
.niqf-wrap *, .niqf-wrap *::before, .niqf-wrap *::after { box-sizing: border-box; }

/* ── Page header ─────────────────────────────────────────────── */
.niqf-header {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 0 16px;
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 20px;
}
.niqf-back {
    font-size: 13px;
    color: #64748b;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
}
.niqf-back:hover { color: #2563eb; }
.niqf-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0;
    color: #1a202c;
    font-family: inherit;
    line-height: 1.2;
}

/* ── RFQ info bar ────────────────────────────────────────────── */
.niqf-rfq-bar {
    display: flex;
    flex-wrap: wrap;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.niqf-rfq-bar__item {
    flex: 1;
    padding: 12px 16px;
    border-right: 1px solid #e2e8f0;
    min-width: 110px;
}
.niqf-rfq-bar__item:last-child { border-right: none; }
.niqf-rfq-bar__label {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #94a3b8;
    font-weight: 700;
    margin-bottom: 3px;
}
.niqf-rfq-bar__item strong {
    font-size: 13px;
    font-weight: 700;
    color: #1a202c;
}
.niqf-krw-badge {
    display: inline-block;
    background: #eff6ff;
    color: #2563eb;
    border: 1px solid #bfdbfe;
    border-radius: 4px;
    padding: 1px 7px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .03em;
}
@media (max-width: 560px) {
    .niqf-rfq-bar { flex-direction: column; }
    .niqf-rfq-bar__item { border-right: none; border-bottom: 1px solid #e2e8f0; }
    .niqf-rfq-bar__item:last-child { border-bottom: none; }
}

/* ── Requirements box ────────────────────────────────────────── */
.niqf-requirements {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: 13px;
    line-height: 1.6;
    color: #374151;
}
.niqf-requirements strong {
    display: block;
    color: #1d4ed8;
    margin-bottom: 4px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ── Status notices ──────────────────────────────────────────── */
.niqf-notice {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 14px;
    font-size: 13px;
    line-height: 1.6;
}
.niqf-notice--success { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.niqf-notice--error   { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.niqf-notice--info    { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; }

/* ── Section card ────────────────────────────────────────────── */
.niqf-section {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.niqf-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}
.niqf-section-heading {
    font-size: 14px;
    font-weight: 700;
    color: #1a202c;
    margin: 0 0 16px;
    font-family: inherit;
}
.niqf-section-head .niqf-section-heading { margin-bottom: 0; }
.niqf-section-note {
    font-size: 12px;
    color: #64748b;
    margin: 0;
}
.niqf-req { color: #dc2626; margin-left: 2px; }

/* ── Table base ──────────────────────────────────────────────── */
.niqf-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 0;
}
.niqf-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.niqf-table th {
    padding: 9px 12px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .05em;
    background: #f8fafc;
    border-bottom: 2px solid #e2e8f0;
    white-space: nowrap;
}
.niqf-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #374151;
}
.niqf-table tbody tr:last-child td { border-bottom: none; }
.niqf-table tbody tr:hover td { background: #f8fafc; }

/* ── Reference table — column widths ────────────────────────── */
.niqf-ref-table .niqf-col-num   { width: 36px;    text-align: center; }
.niqf-ref-table .niqf-col-desc  { min-width: 180px; }
.niqf-ref-table .niqf-col-mpn   { width: 120px; }
.niqf-ref-table .niqf-col-maker { width: 130px; }
.niqf-ref-table .niqf-col-qty   { width: 60px;   text-align: center; }

/* ── Quote input table — column widths ──────────────────────── */
.niqf-quote-table .niqf-col-num   { width: 36px;  text-align: center; }
.niqf-quote-table .niqf-col-desc  { min-width: 140px; }
.niqf-quote-table .niqf-col-price { width: 140px; }
.niqf-quote-table .niqf-col-lead  { width: 120px; }
.niqf-quote-table .niqf-col-notes { min-width: 150px; }

/* ── Cell helpers ────────────────────────────────────────────── */
.niqf-td-muted  { color: #94a3b8; font-size: 12px; }
.niqf-td-mono   { font-family: 'Courier New', Courier, monospace; font-size: 12px; color: #475569; }
.niqf-td-center { text-align: center; }
.niqf-item-desc { font-weight: 700; color: #1a202c; }

/* ── Inputs inside table ─────────────────────────────────────── */
.niqf-input {
    display: block;
    width: 100%;
    padding: 7px 9px;
    border: 1.5px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
    color: #1a202c;
    background: #fff;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
    box-sizing: border-box;
}
.niqf-input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .1);
}
.niqf-input--price {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    text-align: right;
    letter-spacing: .02em;
}
.niqf-input--notes {
    resize: none;
    height: 34px;
    min-height: 34px;
}
/* Read-only state (submitted mode, before Edit is clicked) */
.niqf-input--readonly {
    background: #f8fafc !important;
    color: #94a3b8 !important;
    border-color: #e2e8f0 !important;
    cursor: default;
}
.niqf-input--readonly:focus {
    box-shadow: none;
    border-color: #e2e8f0 !important;
}

/* ── Action buttons ──────────────────────────────────────────── */
.niqf-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 20px;
}
.niqf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 10px 24px;
    border-radius: 7px;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    border: none;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s;
    line-height: 1.2;
}
/* Primary — highest visual weight */
.niqf-btn--primary          { background: #2563eb; color: #fff; }
.niqf-btn--primary:hover    { background: #1d4ed8; color: #fff; }
.niqf-btn--primary:disabled { opacity: .55; cursor: not-allowed; }
/* Secondary — outlined */
.niqf-btn--secondary        { background: #fff; color: #374151; border: 1.5px solid #d1d5db; }
.niqf-btn--secondary:hover  { background: #f8fafc; border-color: #94a3b8; color: #1a202c; }
/* Ghost — minimal */
.niqf-btn--ghost            { background: transparent; color: #64748b; border: 1.5px solid #e2e8f0; }
.niqf-btn--ghost:hover      { background: #f8fafc; border-color: #cbd5e1; color: #374151; }
/* Link — text only */
.niqf-btn--link             { background: none; color: #64748b; border: none; padding-left: 8px; padding-right: 8px; font-weight: 500; }
.niqf-btn--link:hover       { color: #1a202c; text-decoration: underline; }

/* ── Spinner ─────────────────────────────────────────────────── */
.niqf-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: niqfSpin .7s linear infinite;
    display: none;
    flex-shrink: 0;
}
/* Dark spinner variant (for ghost buttons) */
.niqf-spinner--dark {
    border-color: rgba(0,0,0,.12);
    border-top-color: #64748b;
}
@keyframes niqfSpin { to { transform: rotate(360deg); } }

/* ================================================================
   SUPPLIER DASHBOARD (nsd-) — v1.7.2
   Single table layout. Card view removed.
   All rules use .nsd-wrap scope to isolate from theme styles.
   ================================================================ */

/* ── Wrapper ─────────────────────────────────────────────────── */
.nsd-wrap {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 16px 40px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #1a202c;
    box-sizing: border-box;
}
.nsd-wrap *, .nsd-wrap *::before, .nsd-wrap *::after {
    box-sizing: border-box;
}

/* ── Header ──────────────────────────────────────────────────── */
.nsd-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0 18px;
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 24px;
}
.nsd-header-identity {
    display: flex;
    align-items: center;
    gap: 14px;
}
.nsd-avatar {
    width: 44px;
    height: 44px;
    background: #2563eb;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 700;
    flex-shrink: 0;
}
.nsd-company {
    font-size: 17px;
    font-weight: 800;
    color: #1a202c;
}
.nsd-sub {
    font-size: 12px;
    color: #94a3b8;
    margin-top: 2px;
}
.nsd-logout {
    font-size: 13px;
    color: #94a3b8;
    text-decoration: none;
}
.nsd-logout:hover { color: #dc2626; }

/* ── Stat cards ──────────────────────────────────────────────── */
.nsd-stats {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.nsd-stat {
    flex: 1;
    min-width: 100px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 16px 12px;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.nsd-stat--pending { border-top: 3px solid #f59e0b; }
.nsd-stat--draft   { border-top: 3px solid #8b5cf6; }
.nsd-stat--ok      { border-top: 3px solid #10b981; }
.nsd-stat-num {
    display: block;
    font-size: 26px;
    font-weight: 800;
    color: #1a202c;
    line-height: 1;
}
.nsd-stat-label {
    display: block;
    font-size: 11px;
    color: #94a3b8;
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ── Section card ────────────────────────────────────────────── */
.nsd-section {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.nsd-section-title {
    font-size: 14px;
    font-weight: 700;
    color: #1a202c;
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.nsd-count-badge {
    background: #2563eb;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
}

/* ── Table ───────────────────────────────────────────────────── */
.nsd-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.nsd-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 560px;   /* prevents collapse on narrow screens; scroll instead */
}
.nsd-table thead tr {
    background: #f8fafc;
}
.nsd-table th {
    padding: 10px 12px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .05em;
    border-bottom: 2px solid #e2e8f0;
    white-space: nowrap;
}
.nsd-table td {
    padding: 12px 12px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #374151;
}
.nsd-table tbody tr:last-child td { border-bottom: none; }
.nsd-table tbody tr:hover td { background: #f8fafc; }

.nsd-row--pending td { background: #fffbeb; }
.nsd-row--pending:hover td { background: #fef3c7; }
.nsd-row--req td {
    padding: 0 12px 10px;
    background: #f8fafc;
}

.nsd-td-center { text-align: center; }

/* ── RFQ number ──────────────────────────────────────────────── */
.nsd-rfq-num {
    font-family: 'Courier New', Courier, monospace;
    font-size: 12px;
    color: #2563eb;
    font-weight: 700;
    white-space: nowrap;
}

/* ── Status badges ───────────────────────────────────────────── */
.nsd-status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.nsd-badge--pending  { background: #fef3c7; color: #92400e; }
.nsd-badge--draft    { background: #ede9fe; color: #5b21b6; }
.nsd-badge--quoted   { background: #d1fae5; color: #065f46; }
/* v2.14.3 — new 4-state dashboard badges */
.nsd-badge--open     { background: #dbeafe; color: #1e40af; }
.nsd-badge--issue    { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }
.nsd-badge--closed   { background: #f3f4f6; color: #6b7280; }

/* ── Action buttons ──────────────────────────────────────────── */
.nsd-action-btn {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    line-height: 1.4;
}
.nsd-btn--submit          { background: #2563eb; color: #fff; }
.nsd-btn--submit:hover    { background: #1d4ed8; color: #fff; }
/* v2.14.3 */
.nsd-btn--issue-view      { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }
.nsd-btn--issue-view:hover{ background: #ffedd5; color: #9a3412; }
.nsd-btn--closed          { background: #f3f4f6; color: #9ca3af; }
.nsd-row--issue           { background: #fffbf7; }
.nsd-btn--draft           { background: #ede9fe; color: #5b21b6; }
.nsd-btn--draft:hover     { background: #ddd6fe; color: #4c1d95; }
.nsd-btn--edit            { background: #f1f5f9; color: #374151; border: 1px solid #e2e8f0; }
.nsd-btn--edit:hover      { background: #e2e8f0; color: #1a202c; }

/* ── Requirements accordion ──────────────────────────────────── */
.nsd-req-details summary {
    cursor: pointer;
    color: #64748b;
    font-size: 12px;
    padding: 4px 0;
    user-select: none;
    list-style: none;
}
.nsd-req-details summary::before {
    content: '▶ ';
    font-size: 10px;
}
.nsd-req-details[open] summary::before { content: '▼ '; }
.nsd-req-body {
    padding: 8px 12px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    margin-top: 4px;
    font-size: 13px;
    line-height: 1.6;
    color: #374151;
}

/* ── Empty state ─────────────────────────────────────────────── */
.nsd-empty {
    text-align: center;
    padding: 60px 20px;
}
.nsd-empty-icon  { font-size: 40px; margin-bottom: 16px; display: block; }
.nsd-empty-title { font-size: 16px; font-weight: 700; color: #1a202c; margin: 0 0 8px; }
.nsd-empty-sub   { font-size: 13px; color: #94a3b8; margin: 0; }

/* ================================================================
   BUYER AUTH PAGES (nba-)  — v1.8.0
   Login · Register · My RFQs · My Quotes
   ================================================================ */

.nba-wrap {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 16px 48px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    box-sizing: border-box;
}
.nba-wrap *, .nba-wrap *::before, .nba-wrap *::after { box-sizing: border-box; }

/* ── Auth card (login / register) ───────────────────────────── */
.nba-card {
    max-width: 440px;
    margin: 40px auto 0;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 36px 32px;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
}
.nba-title {
    font-size: 22px;
    font-weight: 800;
    color: #1a202c;
    margin: 0 0 4px;
}
.nba-sub {
    font-size: 13px;
    color: #94a3b8;
    margin: 0 0 24px;
}

/* ── Form fields ─────────────────────────────────────────────── */
.nba-form .nba-field { margin-bottom: 16px; }
.nba-form label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 5px;
}
.nba-form input[type="text"],
.nba-form input[type="email"],
.nba-form input[type="password"] {
    width: 100%;
    padding: 9px 12px;
    border: 1.5px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    color: #1a202c;
    background: #fff;
    transition: border-color .15s;
    outline: none;
}
.nba-form input:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.1); }
.nba-hint { font-size: 11px; color: #94a3b8; margin-top: 3px; display: block; }
.nba-req  { color: #dc2626; }

/* WP native login form — reset to match plugin style */
#nova-buyer-login-form p { margin-bottom: 14px; }
#nova-buyer-login-form label { font-size: 13px; font-weight: 600; color: #374151; }
#nova-buyer-login-form input[type="text"],
#nova-buyer-login-form input[type="password"] {
    width: 100%;
    padding: 9px 12px;
    border: 1.5px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    margin-top: 4px;
    outline: none;
}
#nova-buyer-login-form input[type="submit"] {
    width: 100%;
    padding: 11px;
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s;
}
#nova-buyer-login-form input[type="submit"]:hover { background: #1d4ed8; }
#nova-buyer-login-form .forgetmenot { margin: 8px 0; font-size: 12px; color: #64748b; }

/* ── Buttons ─────────────────────────────────────────────────── */
.nba-btn {
    display: inline-block;
    width: 100%;
    padding: 11px;
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    cursor: pointer;
    text-decoration: none;
    transition: background .15s;
    margin-top: 8px;
}
.nba-btn:hover { background: #1d4ed8; color: #fff; }
.nba-btn--sm {
    width: auto;
    padding: 7px 16px;
    font-size: 12px;
}

/* ── Links row ───────────────────────────────────────────────── */
.nba-links {
    margin-top: 18px;
    text-align: center;
    font-size: 13px;
    color: #64748b;
}
.nba-links a { color: #2563eb; text-decoration: none; }
.nba-links a:hover { text-decoration: underline; }
.nba-sep { margin: 0 6px; }

/* ── Alerts ──────────────────────────────────────────────────── */
.nba-error   { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; padding: 10px 14px; border-radius: 6px; font-size: 13px; margin-bottom: 14px; }
.nba-success { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; padding: 10px 14px; border-radius: 6px; font-size: 13px; margin-bottom: 14px; }
.nba-notice  { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; padding: 10px 14px; border-radius: 6px; font-size: 13px; }

/* ── Buyer page header ───────────────────────────────────────── */
.nba-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 10px;
}
.nba-page-title {
    font-size: 20px;
    font-weight: 800;
    color: #1a202c;
    margin: 0;
}

/* ── Buyer history/quotes table ──────────────────────────────── */
.nba-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nba-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 480px;
}
.nba-table thead tr { background: #f8fafc; }
.nba-table th {
    padding: 10px 12px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .05em;
    border-bottom: 2px solid #e2e8f0;
    white-space: nowrap;
}
.nba-table td {
    padding: 12px 12px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #374151;
}
.nba-table tbody tr:last-child td { border-bottom: none; }
.nba-table tbody tr:hover td { background: #f8fafc; }
.nba-td-center { text-align: center; }
.nba-rfq-num { font-family: 'Courier New', monospace; font-size: 12px; color: #2563eb; font-weight: 700; }

/* ── Status badges ───────────────────────────────────────────── */
.nba-status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.nba-badge--pending  { background: #fef3c7; color: #92400e; }
.nba-badge--quoted   { background: #dbeafe; color: #1e40af; }
.nba-badge--awarded  { background: #d1fae5; color: #065f46; }
.nba-badge--closed   { background: #f1f5f9; color: #475569; }

/* ── Empty state ─────────────────────────────────────────────── */
.nba-empty      { text-align: center; padding: 60px 20px; }
.nba-empty-icon { font-size: 40px; margin-bottom: 16px; display: block; }
.nba-empty-title{ font-size: 16px; font-weight: 700; color: #1a202c; margin: 0 0 12px; }
.nba-empty-sub  { font-size: 13px; color: #94a3b8; margin: 0 0 20px; }

/* ── Nav bar shortcode [nova_rfq_nav] ────────────────────────── */
.nova-rfq-nav-bar { font-size: 13px; }
.nova-rfq-nav-bar__list,
.nsd-nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    align-items: center;
}
.nova-rfq-nav-bar__list li a,
.nsd-nav-menu li a {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    color: #374151;
    transition: background .15s, color .15s;
}
.nova-rfq-nav-bar__list li a:hover,
.nsd-nav-menu li a:hover { background: #f1f5f9; color: #1a202c; }
.nova-nav-login a,
.nova-nav-register a { background: #eff6ff; color: #2563eb; }
.nova-nav-logout a  { color: #94a3b8; }
.nova-nav-logout a:hover { color: #dc2626; background: #fef2f2; }

/* ================================================================
   CUSTOM LOGIN / REGISTER FORM (nlf-)  — v1.9.0
   [nova_login_form] · [nova_buyer_register]
   Scoped to .nlf-outer — no WP or theme styles leak in.
   ================================================================ */

/* ── Full-page centering wrapper ─────────────────────────────── */
.nlf-outer {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    box-sizing: border-box;
}
.nlf-outer *, .nlf-outer *::before, .nlf-outer *::after {
    box-sizing: border-box;
}

/* ── Card ────────────────────────────────────────────────────── */
.nlf-card {
    width: 100%;
    max-width: 420px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 40px 36px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .08);
}
.nlf-card--wide {
    max-width: 560px;
}

/* ── Brand block ─────────────────────────────────────────────── */
.nlf-brand {
    text-align: center;
    margin-bottom: 28px;
}
.nlf-brand-mark {
    display: inline-block;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: .06em;
    color: #1e293b;
    background: #f1f5f9;
    padding: 8px 18px;
    border-radius: 6px;
    font-family: 'Courier New', Courier, monospace;
}
.nlf-brand-mark span { color: #2563eb; }
.nlf-brand-sub {
    font-size: 11px;
    color: #94a3b8;
    margin: 6px 0 0;
    text-transform: uppercase;
    letter-spacing: .08em;
}

/* ── Headings ────────────────────────────────────────────────── */
.nlf-title {
    font-size: 22px;
    font-weight: 800;
    color: #1a202c;
    margin: 0 0 4px;
    text-align: center;
    /* prevent theme h1/h2 resets */
    font-family: inherit;
    line-height: 1.2;
}
.nlf-subtitle {
    font-size: 13px;
    color: #64748b;
    text-align: center;
    margin: 0 0 24px;
}

/* ── Alert banners ───────────────────────────────────────────── */
.nlf-alert {
    border-radius: 6px;
    padding: 11px 14px;
    font-size: 13px;
    margin-bottom: 18px;
    line-height: 1.4;
}
.nlf-alert--error   { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.nlf-alert--success { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.nlf-notice         { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe;
                      padding: 11px 14px; border-radius: 6px; font-size: 13px; }

/* ── Form layout ─────────────────────────────────────────────── */
.nlf-form { margin-top: 20px; }
.nlf-row  {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@media (max-width: 500px) { .nlf-row { grid-template-columns: 1fr; } }

.nlf-field { margin-bottom: 16px; }
.nlf-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 5px;
    font-family: inherit;
}

/* ── Inputs ──────────────────────────────────────────────────── */
.nlf-form input[type="text"],
.nlf-form input[type="email"],
.nlf-form input[type="password"] {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 1.5px solid #d1d5db;
    border-radius: 7px;
    font-size: 14px;
    color: #1a202c;
    background: #fff;
    font-family: inherit;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
    /* reset any theme styles */
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
}
.nlf-form input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

/* ── Password row: label + forgot link inline ────────────────── */
.nlf-field--pw label,
.nlf-field--pw .nlf-forgot {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 5px;
}
.nlf-field--pw { position: relative; }
.nlf-forgot {
    position: absolute;
    right: 0;
    top: 0;
    font-weight: 400;
    color: #2563eb;
    text-decoration: none;
    font-size: 12px;
}
.nlf-forgot:hover { text-decoration: underline; }

/* ── Remember checkbox ───────────────────────────────────────── */
.nlf-remember {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #64748b;
    margin-bottom: 20px;
    cursor: pointer;
    font-family: inherit;
}
.nlf-remember input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: #2563eb;
    cursor: pointer;
    flex-shrink: 0;
}

/* ── Submit button ───────────────────────────────────────────── */
.nlf-outer .nlf-btn,
button.nlf-btn,
input[type="submit"].nlf-btn {
    display: block !important;
    width: 100% !important;
    padding: 12px !important;
    background: #2563eb !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 7px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    cursor: pointer !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: background .15s !important;
    letter-spacing: .01em !important;
    box-shadow: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
}
.nlf-outer .nlf-btn:hover,
button.nlf-btn:hover {
    background: #1d4ed8 !important;
    color: #fff !important;
    text-decoration: none !important;
}
.nlf-outer .nlf-btn:active,
button.nlf-btn:active { background: #1e40af !important; }

/* ── Bottom link ─────────────────────────────────────────────── */
.nlf-register-link {
    margin-top: 20px;
    text-align: center;
    font-size: 13px;
    color: #64748b;
    font-family: inherit;
}
.nlf-register-link a { color: #2563eb; text-decoration: none; font-weight: 600; }
.nlf-register-link a:hover { text-decoration: underline; }

/* ── Misc ────────────────────────────────────────────────────── */
.nlf-req  { color: #dc2626; }
.nlf-hint { font-size: 11px; color: #94a3b8; margin-top: 3px; display: block; }

/* ================================================================
   SUPPLIER DASHBOARD — v1.9.0 refinements
   Corrects spacing, typography consistency, responsive table.
   ================================================================ */

/* Reset any WP admin-bar top offset on dashboard page */
.nsd-wrap { margin-top: 0 !important; padding-top: 24px; }

/* Consistent body-level typography — override theme defaults */
.nsd-wrap,
.nsd-wrap p,
.nsd-wrap td,
.nsd-wrap th,
.nsd-wrap span,
.nsd-wrap a {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Section card — add breathing room */
.nsd-section { padding: 24px; }

/* Table typography normalisation */
.nsd-table th,
.nsd-table td {
    font-size: 13px;
    font-family: inherit;
    /* prevent theme from overriding table cell padding */
    padding: 11px 14px !important;
}
.nsd-table th {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #64748b;
    white-space: nowrap;
}

/* Responsive: allow horizontal scroll on narrow screens */
@media (max-width: 640px) {
    .nsd-stats { flex-wrap: wrap; }
    .nsd-stat  { min-width: calc(50% - 6px); }
    .nsd-section { padding: 16px; }
    .nsd-table-wrap { border-radius: 6px; overflow: hidden; }
}

/* Stat card — tighten on mobile */
@media (max-width: 400px) {
    .nsd-stat { min-width: 100%; }
}

/* Action button — consistent vertical alignment in cell */
.nsd-table td:last-child { white-space: nowrap; vertical-align: middle; }

/* Remove any WP default border/padding on table elements */
.nsd-table,
.nsd-table tr,
.nsd-table th,
.nsd-table td {
    border-spacing: 0;
    border-collapse: collapse;
}

/* ================================================================
   NOVA BUYER PORTAL (nbp-)  — v2.4.3
   Prefix: nbp-   Scope: .nbp-header, .nbp-wrap, .nbp-*
   전체 portal 공통 시스템. 다른 페이지 영향 없음.
   ================================================================ */

/* ── Portal design tokens ───────────────────────────────────── */
.nbp-header,
.nbp-wrap {
    --p-bg:         #f5f7fb;
    --p-card:       #ffffff;
    --p-border:     #e5eaf2;
    --p-radius:     16px;
    --p-shadow:     0 8px 24px rgba(15,23,42,.06);
    --p-title:      #0f172a;
    --p-body:       #475569;
    --p-muted:      #64748b;
    --p-primary:    #2563eb;
    --p-primary-dk: #1d4ed8;
    --p-font:       -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ================================================================
   PORTAL HEADER  (.nbp-header)
   구조: .nbp-header > .nbp-header__inner
            ├── .nbp-header__nav   (탭 4개, 왼쪽)
            └── .nbp-header__account  (Welcome + Log Out, 오른쪽)
   ================================================================ */

.nbp-header {
    background: #ffffff;
    border-bottom: 1px solid #e5eaf2;
    box-shadow: 0 2px 8px rgba(15,23,42,.05);
    position: sticky;
    top: 0;
    z-index: 300;
    width: 100%;
}
.admin-bar .nbp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .nbp-header { top: 46px; } }

/* inner: max-width + 좌우 padding */
.nbp-header__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;    /* stretch 대신 center — 탭 높이 고정 유지 */
    justify-content: space-between;
    gap: 16px;
    height: 60px;           /* min-height → height 고정 */
    box-sizing: border-box;
}

/* ── 왼쪽: 탭 네비 ──────────────────────────────────────────── */
.nbp-header__nav {
    display: flex;
    align-items: center;   /* stretch → center: 탭이 헤더 전체 높이로 늘어나지 않음 */
    gap: 2px;
    flex-shrink: 1;
    min-width: 0;
    overflow: visible;
}

.nbp-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;          /* 모든 탭 고정 */
    padding: 0 18px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s, color .15s;
    flex-shrink: 0;
    border: none;
    background: transparent;
    box-shadow: none;      /* 기본 shadow 없음 */
    box-sizing: border-box;
}
.nbp-tab:hover {
    background: #f1f5fb;
    color: #1e3a8a;
    text-decoration: none;
}
/* active */
.nbp-tab--active,
.nbp-tab[aria-current="page"] {
    background: #eff6ff;
    color: #2563eb;
    font-weight: 700;
    box-shadow: none;   /* 외부 shadow 제거 → 높이 변화 없음 */
    outline: 1.5px solid #bfdbfe;
    outline-offset: -1px;
}
.nbp-tab--active:hover,
.nbp-tab[aria-current="page"]:hover {
    background: #dbeafe;
    color: #1d4ed8;
}
/* CTA 탭 (Submit RFQ) */
.nbp-tab--cta:not(.nbp-tab--active):not([aria-current="page"]) {
    color: #2563eb;
    font-weight: 700;
}
.nbp-tab--cta:not(.nbp-tab--active):not([aria-current="page"]):hover {
    background: #eff6ff;
}
/* CTA active = 다른 active 탭과 동일한 연파랑 (진한 파랑 제거 → 높이 착시 해소) */
.nbp-tab--cta.nbp-tab--active,
.nbp-tab--cta[aria-current="page"] {
    background: #eff6ff;
    color: #2563eb;
    font-weight: 700;
    box-shadow: none;
    outline: 1.5px solid #bfdbfe;
    outline-offset: -1px;
}

/* ── 오른쪽: Account 영역 ───────────────────────────────────── */
.nbp-header__account {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;      /* 절대 줄어들지 않음 → logout 항상 표시 */
    white-space: nowrap;
    /* overflow visible 유지 — hidden 절대 금지 */
    overflow: visible;
}

.nbp-welcome {
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
}

.nbp-logout-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 16px;
    border: 1.5px solid #e5eaf2;
    border-radius: 8px;
    background: #ffffff;
    color: #475569;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color .15s, color .15s, background .15s;
    flex-shrink: 0;
}
.nbp-logout-btn:hover {
    border-color: #fca5a5;
    color: #dc2626;
    background: #fff5f5;
    text-decoration: none;
}

/* ── 반응형 header ────────────────────────────────────────────── */
/* 태블릿: nav + account 모두 유지, 줄바꿈 허용 */
@media (max-width: 900px) {
    .nbp-header__inner {
        flex-wrap: wrap;
        padding: 8px 16px;
        min-height: auto;
        gap: 8px;
    }
    .nbp-header__nav {
        order: 1;
        flex: 1 0 100%;  /* nav 전체 줄 사용 */
        justify-content: flex-start;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
    }
    .nbp-header__nav::-webkit-scrollbar { display: none; }
    .nbp-header__account {
        order: 2;          /* nav 아래 */
        flex: 1 0 100%;
        justify-content: flex-end;
        padding: 4px 0 8px;
    }
    .nbp-tab { height: 38px !important; padding: 0 14px; font-size: 12px; box-shadow: none !important; outline: none !important; }
}
@media (max-width: 480px) {
    .nbp-tab { padding: 0 10px; font-size: 11px; }
    .nbp-welcome { max-width: 120px; }
}

/* ================================================================
   PORTAL WRAPPER  (.nbp-wrap)
   max-width 1280px 중앙 정렬 — 절대 full-width 금지
   ================================================================ */

.nbp-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 28px 24px 56px;
    font-family: var(--p-font, -apple-system, sans-serif);
    font-size: 14px;
    color: #475569;
    box-sizing: border-box;
}
.nbp-wrap * { box-sizing: border-box; }

@media (max-width: 1024px) { .nbp-wrap { padding: 20px 16px 48px; } }
@media (max-width: 480px)  { .nbp-wrap { padding: 16px 12px 40px; } }

/* form 페이지 — top padding 살짝 줄임 */
.nbp-wrap--form { padding-top: 24px; }

/* ================================================================
   PAGE HEADER
   ================================================================ */

.nbp-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.nbp-page-title {
    font-size: 20px;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 4px;
    line-height: 1.2;
    font-family: var(--p-font);
}
.nbp-page-subtitle {
    font-size: 13px;
    color: #64748b;
    margin: 0;
}

/* ================================================================
   STAT CARDS
   ================================================================ */

.nbp-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}
@media (max-width: 640px) { .nbp-stats { grid-template-columns: 1fr; gap: 10px; } }

.nbp-stat-card {
    background: #ffffff;
    border: 1px solid #e5eaf2;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(15,23,42,.06);
    transition: transform .18s, box-shadow .18s;
    cursor: default;
}
.nbp-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(15,23,42,.10);
}
.nbp-stat-accent {
    height: 4px;
}
.nbp-stat-accent--blue   { background: #2563eb; }
.nbp-stat-accent--orange { background: #f59e0b; }
.nbp-stat-accent--teal   { background: #0d9488; }
.nbp-stat-body {
    padding: 18px 22px 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.nbp-stat-num {
    font-size: 36px;
    font-weight: 800;
    color: #0f172a;
    line-height: 1;
}
.nbp-stat-label {
    font-size: 11px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .06em;
}

/* ================================================================
   2-COLUMN LAYOUT (main 2fr + sidebar 1fr)
   ================================================================ */

.nbp-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
    align-items: start;
}
@media (max-width: 900px) {
    .nbp-layout { grid-template-columns: 1fr; }
}
.nbp-main    { min-width: 0; }
.nbp-sidebar { min-width: 0; }

/* ================================================================
   CARD
   ================================================================ */

.nbp-card {
    background: #ffffff;
    border: 1px solid #e5eaf2;
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: 0 8px 24px rgba(15,23,42,.06);
}
.nbp-card--tinted { background: #f8fafc; }

.nbp-card-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 18px;
    gap: 12px;
    flex-wrap: wrap;
}
.nbp-card-title {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
    font-family: inherit;
}
.nbp-card-hint {
    font-size: 12px;
    color: #64748b;
}
.nbp-link-more {
    font-size: 13px;
    color: #2563eb;
    text-decoration: none;
    font-weight: 600;
}
.nbp-link-more:hover { text-decoration: underline; }

/* ================================================================
   TABLE
   ================================================================ */

.nbp-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nbp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 420px;
}
.nbp-table thead tr { background: #f8fafc; }
.nbp-table th {
    padding: 10px 14px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .06em;
    border-bottom: 2px solid #e5eaf2;
    white-space: nowrap;
}
.nbp-table td {
    padding: 12px 14px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #475569;
}
.nbp-table tbody tr:last-child td { border-bottom: none; }
.nbp-table tbody tr:hover td { background: #f8fafc; }
.nbp-td-center { text-align: center; }
.nbp-td-muted  { color: #cbd5e1; font-size: 13px; }
.nbp-rfq-num {
    font-family: 'Courier New', Courier, monospace;
    font-size: 12px;
    color: #2563eb;
    font-weight: 700;
}
.nbp-quote-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    background: #eff6ff;
    color: #2563eb;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    padding: 0 6px;
}

/* ================================================================
   STATUS BADGES
   ================================================================ */

.nbp-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
/* class names kept dual (nbp- and nbd-) for backward compat */
.nbp-badge.nbd-badge--pending,
.nbp-badge--pending { background: #fef3c7; color: #92400e; }
.nbp-badge.nbd-badge--quoted,
.nbp-badge--quoted  { background: #dbeafe; color: #1e40af; }
.nbp-badge.nbd-badge--awarded,
.nbp-badge--awarded { background: #d1fae5; color: #065f46; }
.nbp-badge.nbd-badge--closed,
.nbp-badge--closed  { background: #f1f5f9; color: #64748b; }

/* ================================================================
   ACTION BAR
   ================================================================ */

.nbp-action-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: #f8fafc;
    border-radius: 10px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #475569;
    gap: 12px;
    flex-wrap: wrap;
}
.nbp-action-bar-count strong { color: #0f172a; }

/* ================================================================
   EMPTY STATE
   ================================================================ */

.nbp-empty {
    text-align: center;
    padding: 48px 24px;
}
.nbp-empty-icon  { font-size: 40px; margin-bottom: 14px; }
.nbp-empty-title { font-size: 15px; font-weight: 700; color: #0f172a; margin: 0 0 6px; }
.nbp-empty-sub   { font-size: 13px; color: #64748b; margin: 0 0 20px; }

/* ================================================================
   BUTTONS
   ================================================================ */

.nbp-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 22px;
    background: #2563eb;
    color: #ffffff;
    border: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s;
    white-space: nowrap;
    flex-shrink: 0;
}
.nbp-btn-primary:hover { background: #1d4ed8; color: #fff; text-decoration: none; }

.nbp-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 16px;
    background: transparent;
    color: #2563eb;
    border: 1.5px solid #2563eb;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.nbp-btn-outline:hover { background: #eff6ff; color: #1d4ed8; text-decoration: none; }

/* small action buttons (PI / Choose Quote) */
.nbp-btn-sm {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border: 1.5px solid #e5eaf2;
    background: #fff;
    color: #374151;
    transition: background .15s;
    white-space: nowrap;
}
.nbp-btn-sm:hover { background: #f1f5f9; }
.nbp-btn-sm--view   { background: #2563eb; border-color: #2563eb; color: #fff; }
.nbp-btn-sm--view:hover { background: #1d4ed8; }
.nbp-btn-sm--choose { background: #16a34a; border-color: #16a34a; color: #fff; }
.nbp-btn-sm--choose:hover { background: #15803d; }

/* ================================================================
   SIDEBAR
   ================================================================ */

.nbp-sidebar-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    color: #2563eb;
    margin-bottom: 14px;
    text-transform: uppercase;
}
.nbp-qa-btn {
    display: flex;
    align-items: center;
    width: 100%;
    height: 42px;
    padding: 0 16px;
    border: 1.5px solid #e5eaf2;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    text-decoration: none;
    margin-bottom: 8px;
    transition: background .15s, border-color .15s, color .15s;
    background: #ffffff;
}
.nbp-qa-btn:last-child { margin-bottom: 0; }
.nbp-qa-btn:hover { background: #f1f5fb; border-color: #bfdbfe; color: #1e40af; text-decoration: none; }
.nbp-qa-btn--primary { background: #2563eb; border-color: #2563eb; color: #fff; }
.nbp-qa-btn--primary:hover { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }

/* Steps list */
.nbp-steps {
    list-style: none;
    padding: 0;
    margin: 0;
}
.nbp-steps li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 13px;
    color: #64748b;
    margin-bottom: 14px;
    line-height: 1.5;
}
.nbp-steps li:last-child { margin-bottom: 0; }
.nbp-steps li strong { color: #0f172a; display: block; margin-bottom: 2px; }
.nbp-step-num {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #eff6ff;
    color: #2563eb;
    font-size: 11px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}
.nbp-step-num--check {
    background: #d1fae5;
    color: #065f46;
    font-size: 13px;
}

/* Brand tags */
.nbp-brand-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}
.nbp-brand-tag {
    display: inline-block;
    padding: 4px 10px;
    background: #f1f5f9;
    border: 1px solid #e5eaf2;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    white-space: nowrap;
}

/* ================================================================
   LEGACY COMPAT — 기존 nbd- 클래스 별칭
   (이전 버전에서 출력된 HTML과 호환)
   ================================================================ */

/* nbd- stat aliases */
.nbd-stats--v3 { display: grid; grid-template-columns: repeat(3,1fr); gap:16px; margin-bottom:24px; }
.nbd-stat-card { background:#fff; border:1px solid #e5eaf2; border-radius:16px; overflow:hidden; box-shadow:0 8px 24px rgba(15,23,42,.06); }
.nbd-stat-accent { height:4px; }
.nbd-stat-accent--blue   { background:#2563eb; }
.nbd-stat-accent--orange { background:#f59e0b; }
.nbd-stat-accent--teal   { background:#0d9488; }
.nbd-stat-body { padding:18px 22px 20px; display:flex; flex-direction:column; gap:6px; }
.nbd-stat-num   { font-size:36px; font-weight:800; color:#0f172a; line-height:1; }
.nbd-stat-label { font-size:11px; font-weight:600; color:#94a3b8; text-transform:uppercase; letter-spacing:.06em; }

/* nbd- badge aliases */
.nbd-status-badge { display:inline-block; padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; white-space:nowrap; }
.nbd-badge--pending { background:#fef3c7; color:#92400e; }
.nbd-badge--quoted  { background:#dbeafe; color:#1e40af; }
.nbd-badge--awarded { background:#d1fae5; color:#065f46; }
.nbd-badge--closed  { background:#f1f5f9; color:#64748b; }

/* nbd- card/layout aliases */
.nbd-card { background:#fff; border:1px solid #e5eaf2; border-radius:16px; padding:24px; margin-bottom:20px; box-shadow:0 8px 24px rgba(15,23,42,.06); }
.nbd-card--info { background:#f8fafc; }
.nbd-card-head  { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; gap:12px; flex-wrap:wrap; }
.nbd-card-title { font-size:15px; font-weight:700; color:#0f172a; margin:0; font-family:inherit; }
.nbd-view-all   { font-size:13px; color:#2563eb; text-decoration:none; font-weight:600; }
.nbd-view-all:hover { text-decoration:underline; }
.nbd-layout { display:grid; grid-template-columns:2fr 1fr; gap:24px; align-items:start; }
@media (max-width:900px) { .nbd-layout { grid-template-columns:1fr; } }
.nbd-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.nbd-table { width:100%; border-collapse:collapse; font-size:13px; min-width:420px; }
.nbd-table thead tr { background:#f8fafc; }
.nbd-table th { padding:10px 14px; text-align:left; font-size:11px; font-weight:700; color:#64748b; text-transform:uppercase; letter-spacing:.06em; border-bottom:2px solid #e5eaf2; white-space:nowrap; }
.nbd-table td  { padding:12px 14px; border-bottom:1px solid #f1f5f9; vertical-align:middle; color:#475569; }
.nbd-table tbody tr:last-child td { border-bottom:none; }
.nbd-table tbody tr:hover td { background:#f8fafc; }
.nbd-td-center { text-align:center; }
.nbd-rfq-num   { font-family:'Courier New',monospace; font-size:12px; color:#2563eb; font-weight:700; }
.nbd-empty     { text-align:center; padding:48px 24px; }
.nbd-empty-icon  { font-size:40px; margin-bottom:14px; }
.nbd-empty-title { font-size:15px; font-weight:700; color:#0f172a; margin:0 0 6px; }
.nbd-action-bar  { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; background:#f8fafc; border-radius:10px; margin-bottom:16px; font-size:13px; color:#475569; gap:12px; flex-wrap:wrap; }
.nbd-action-bar-count strong { color:#0f172a; }
.nbd-btn,.nbd-btn--primary { display:inline-flex; align-items:center; height:40px; padding:0 22px; background:#2563eb; color:#fff; border:none; border-radius:10px; font-size:13px; font-weight:700; text-decoration:none; cursor:pointer; transition:background .15s; }
.nbd-btn:hover,.nbd-btn--primary:hover { background:#1d4ed8; color:#fff; }
.nbd-btn-outline { display:inline-flex; align-items:center; height:36px; padding:0 16px; background:transparent; color:#2563eb; border:1.5px solid #2563eb; border-radius:8px; font-size:12px; font-weight:700; text-decoration:none; transition:background .15s; }
.nbd-btn-outline:hover { background:#eff6ff; }
.nbd-sidebar-section-label { font-size:11px; font-weight:700; letter-spacing:.08em; color:#2563eb; margin-bottom:14px; text-transform:uppercase; }
.nbd-quote-count { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; background:#eff6ff; color:#2563eb; border-radius:20px; font-size:11px; font-weight:700; padding:0 6px; }
.nbd-td-muted { color:#cbd5e1; font-size:13px; }
.nbd-quick-btn { display:flex; align-items:center; width:100%; height:42px; padding:0 16px; border:1.5px solid #e5eaf2; border-radius:10px; font-size:13px; font-weight:600; color:#374151; text-decoration:none; margin-bottom:8px; transition:background .15s; background:#fff; }
.nbd-quick-btn:hover { background:#f1f5fb; border-color:#bfdbfe; color:#1e40af; text-decoration:none; }
.nbd-quick-btn--primary { background:#2563eb; border-color:#2563eb; color:#fff; }
.nbd-quick-btn--primary:hover { background:#1d4ed8; border-color:#1d4ed8; color:#fff; }
.nbd-how-list { list-style:none; padding:0; margin:0; }
.nbd-how-list li { display:flex; align-items:flex-start; gap:12px; font-size:13px; color:#64748b; margin-bottom:14px; line-height:1.5; }
.nbd-how-num { flex-shrink:0; width:24px; height:24px; border-radius:50%; background:#eff6ff; color:#2563eb; font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.nbd-btn-sm { display:inline-flex; align-items:center; height:30px; padding:0 12px; border-radius:6px; font-size:12px; font-weight:600; text-decoration:none; cursor:pointer; border:1.5px solid #e5eaf2; background:#fff; color:#374151; transition:background .15s; }
.nbd-btn-sm:hover { background:#f1f5f9; }
.nbd-btn-sm--view   { background:#2563eb; border-color:#2563eb; color:#fff; }
.nbd-btn-sm--view:hover { background:#1d4ed8; }
.nbd-btn-sm--choose { background:#16a34a; border-color:#16a34a; color:#fff; }
.nbd-btn-sm--choose:hover { background:#15803d; }
.nbd-muted { color:#94a3b8; font-size:13px; }
.nbd-page-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.nbd-page-header-left { display:flex; align-items:center; gap:14px; }
.nbd-page-title { font-size:20px; font-weight:800; color:#0f172a; margin:0 0 4px; line-height:1.2; }
.nbd-page-subtitle { font-size:13px; color:#64748b; margin:0; }
.nbd-avatar { width:48px; height:48px; background:#2563eb; color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:800; flex-shrink:0; }
.nbd-logout { font-size:13px; color:#94a3b8; text-decoration:none; }
.nbd-logout:hover { color:#dc2626; }
.nbd-wrap { max-width:1280px; margin:0 auto; padding:28px 24px 56px; font-size:14px; color:#475569; }
.nbd-wrap--v3 { max-width:1280px; margin:0 auto; padding:28px 24px 56px; }
/* nbd-tab-nav legacy — now replaced by .nbp-header, kept for compat */
/* ── nbd-tab-nav (buyer portal subnav) ── */
.nbd-tab-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px;
    background: #ffffff;
    border: 1px solid #e5eaf2;
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(15,23,42,.06);
    margin-bottom: 24px;
    position: sticky;
    top: 80px;
    z-index: 200;
}
.admin-bar .nbd-tab-nav { top: 112px; }
@media (max-width: 782px) { .nbd-tab-nav { top: 60px; } .admin-bar .nbd-tab-nav { top: 106px; } }
.nbd-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 44px;
    padding: 0 18px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s, color .15s;
    flex: 1;
    border: none;
    background: transparent;
    box-shadow: none;
    box-sizing: border-box;
}
.nbd-tab:hover { background: #f1f5fb; color: #1e3a8a; text-decoration: none; }
.nbd-tab--active, .nbd-tab[aria-current="page"] {
    background: #eff6ff;
    color: #2563eb;
    font-weight: 700;
    outline: 1.5px solid #bfdbfe;
    outline-offset: -1px;
}
.nbd-tab--active:hover, .nbd-tab[aria-current="page"]:hover { background: #dbeafe; color: #1d4ed8; }
.nbd-tab--cta:not(.nbd-tab--active):not([aria-current="page"]) { color: #2563eb; font-weight: 700; }
.nbd-tab--cta:not(.nbd-tab--active):not([aria-current="page"]):hover { background: #eff6ff; }
.nbd-tab--cta.nbd-tab--active, .nbd-tab--cta[aria-current="page"] {
    background: #eff6ff; color: #2563eb; font-weight: 700;
    outline: 1.5px solid #bfdbfe; outline-offset: -1px;
}
.nbd-tab-icon { font-size: 14px; line-height: 1; flex-shrink: 0; }
.nbd-tab-text--sr { display: none; }
.nbd-tab-divider  { display: none; }
@media (max-width: 600px) {
    .nbd-tab-nav { display: grid; grid-template-columns: 1fr 1fr; position: static; border-radius: 12px; }
    .nbd-tab { height: 40px !important; font-size: 12px; outline: none !important; }
}
@media (max-width: 380px) { .nbd-tab-nav { grid-template-columns: 1fr; } }
.nrfq-page .nbd-tab-nav { margin-bottom: 20px; }

/* ── Nova nav list (menu injection) ─────────────────────────── */
.nova-nav-list { list-style:none; margin:0; padding:0; display:flex; gap:2px; flex-wrap:wrap; align-items:center; }
.nova-nav-list li a { display:inline-block; padding:6px 13px; border-radius:5px; text-decoration:none; font-size:13px; font-weight:600; color:#374151; transition:background .15s,color .15s; white-space:nowrap; }
.nova-nav-list li a:hover { background:#f1f5f9; color:#1a202c; }
.nova-nav-login a,.nova-nav-register a { color:#2563eb; }
.nova-nav-login a:hover,.nova-nav-register a:hover { background:#eff6ff; }
.nova-nav-logout a { color:#94a3b8; }
.nova-nav-logout a:hover { color:#dc2626; background:#fef2f2; }
.nova-rfq-nav { display:inline-block; }

/* ── Floating account bar ─────────────────────────────────────── */
#nova-float-nav { position:fixed; top:0; right:0; z-index:99990; display:none; }
.nova-float-nav__inner { display:flex; align-items:center; background:#1e293b; padding:0 12px; border-bottom-left-radius:8px; box-shadow:0 2px 12px rgba(0,0,0,.18); }
.nova-float-nav__list { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:0; flex-wrap:nowrap; }
.nova-float-nav__list li a { display:inline-block; padding:8px 12px; font-size:12px; font-weight:600; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color:#cbd5e1; text-decoration:none; white-space:nowrap; transition:color .15s,background .15s; border-radius:4px; }
.nova-float-nav__list li a:hover { color:#fff; background:rgba(255,255,255,.08); }
.nova-float-nav__list .nova-nav-login a,.nova-float-nav__list .nova-nav-register a { color:#93c5fd; }
.nova-float-nav__list .nova-nav-logout a { color:#94a3b8; }
.nova-float-nav__list .nova-nav-logout a:hover { color:#fca5a5; }
.admin-bar #nova-float-nav { top:32px; }
@media (max-width:782px) { .admin-bar #nova-float-nav { top:46px; } }
.nova-nav-block-item.nova-nav-login a,.nova-nav-block-item.nova-nav-register a { color:var(--wp--preset--color--primary,#2563eb)!important; font-weight:700; }
.nova-nav-block-item.nova-nav-logout a { opacity:.75; }
.nova-nav-block-item.nova-nav-logout a:hover { color:#dc2626!important; opacity:1; }
.nova-nav-rfq--cta a,li.nova-nav-rfq--cta > a { background:#2563eb!important; color:#fff!important; padding:5px 14px!important; border-radius:6px!important; font-weight:700!important; }
.nova-nav-rfq--cta a:hover,li.nova-nav-rfq--cta > a:hover { background:#1d4ed8!important; }
.nova-nav-logout a { opacity:.75; }
.nova-nav-logout a:hover { opacity:1; color:#dc2626!important; }
.nlf-outer--selector .nlf-card--selector { max-width:500px; text-align:center; }
.nlf-selector-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:28px 0 22px; }
@media (max-width:460px) { .nlf-selector-grid { grid-template-columns:1fr; } }
.nlf-role-card { display:flex; flex-direction:row; align-items:center; gap:14px; padding:18px 16px; border:1.5px solid #e2e8f0; border-radius:10px; text-decoration:none; color:#1a202c; background:#fff; transition:border-color .18s,box-shadow .18s,transform .15s; text-align:left; }
.nlf-role-card:hover { transform:translateY(-2px); text-decoration:none; color:#1a202c; }
.nlf-role-card--buyer   { border-top:3px solid #2563eb; }
.nlf-role-card--buyer:hover { border-color:#2563eb; box-shadow:0 6px 20px rgba(37,99,235,.13); }
.nlf-role-card--supplier { border-top:3px solid #0d9488; }
.nlf-role-card--supplier:hover { border-color:#0d9488; box-shadow:0 6px 20px rgba(13,148,136,.13); }
.nlf-role-icon-wrap { flex-shrink:0; width:52px; height:52px; border-radius:10px; display:flex; align-items:center; justify-content:center; }
.nlf-role-icon-wrap--buyer { background:#eff6ff; color:#2563eb; }
.nlf-role-icon-wrap--supplier { background:#f0fdfa; color:#0d9488; }
.nlf-role-card:hover .nlf-role-icon-wrap--buyer { background:#dbeafe; }
.nlf-role-card:hover .nlf-role-icon-wrap--supplier { background:#ccfbf1; }
.nlf-role-body { flex:1; display:flex; flex-direction:column; gap:3px; min-width:0; }
.nlf-role-name { font-size:14px; font-weight:800; color:#1a202c; white-space:nowrap; font-family:inherit; }
.nlf-role-desc { font-size:11px; color:#64748b; line-height:1.4; font-family:inherit; }
.nlf-role-arrow { flex-shrink:0; color:#cbd5e1; transition:color .15s,transform .15s; }
.nlf-role-card:hover .nlf-role-arrow { color:#64748b; transform:translateX(2px); }
.nlf-back-link { display:inline-block; font-size:12px; color:#94a3b8; text-decoration:none; margin-bottom:16px; }
.nlf-back-link:hover { color:#2563eb; }
.nlf-group-heading { font-size:13px; font-weight:700; color:#475569; text-transform:uppercase; letter-spacing:.05em; margin:24px 0 6px; padding-bottom:6px; border-bottom:1px solid #e2e8f0; font-family:inherit; }
.nlf-group-note { font-size:12px; color:#94a3b8; margin:0 0 14px; }
.nlf-row--3 { grid-template-columns:repeat(3,1fr); }
@media (max-width:500px) { .nlf-row--3 { grid-template-columns:1fr; } }

/* ── Portal form (nrfq- scoped inside .nbp-wrap) ─────────────── */
.nbp-wrap .nrfq-layout { display:grid; grid-template-columns:2fr 1fr; gap:24px; align-items:start; }
@media (max-width:900px) { .nbp-wrap .nrfq-layout { grid-template-columns:1fr; } }
.nbp-wrap .nrfq-card { background:#fff; border:1px solid #e5eaf2; border-radius:16px; padding:24px; margin-bottom:20px; box-shadow:0 8px 24px rgba(15,23,42,.06); }

/* Print */
/* @media print — consolidated below */


/* ================================================================
   PROFORMA INVOICE UI (npi-*)  v1.0.0
   ================================================================ */

.npi-wrap { font-family: var(--rfq-font); font-size: 14px; color: var(--rfq-gray-800); }

/* ── 페이지 헤더 ─────────────────────────────────────────────── */
.npi-page-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    margin-bottom: 24px; gap: 16px;
}
.npi-page-title { font-size: 22px; font-weight: 800; color: #1a202c; margin: 0 0 4px; }
.npi-page-sub   { font-size: 13px; color: #64748b; margin: 0; }
.npi-draft-badge {
    display: inline-block; padding: 4px 12px; border-radius: 20px;
    background: #fef9c3; color: #854d0e; font-size: 12px; font-weight: 700;
    border: 1px solid #fde68a;
}

/* ── 레이아웃 ─────────────────────────────────────────────────── */
.npi-layout {
    display: grid; grid-template-columns: 1fr 300px; gap: 24px; align-items: start;
}
@media (max-width: 900px) { .npi-layout { grid-template-columns: 1fr; } }

/* ── 카드 ────────────────────────────────────────────────────── */
.npi-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
    padding: 24px; margin-bottom: 20px; box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.npi-section-label {
    font-size: 11px; font-weight: 700; letter-spacing: .08em;
    color: #2563eb; margin-bottom: 4px; text-transform: uppercase;
}
.npi-section-title { font-size: 16px; font-weight: 700; margin: 0 0 4px; color: #1a202c; }
.npi-section-sub   { font-size: 13px; color: #64748b; margin: 0 0 16px; }

/* ── 테이블 ──────────────────────────────────────────────────── */
.npi-table-wrap { overflow-x: auto; margin-top: 12px; }
.npi-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.npi-table th, .npi-table td { border: 1px solid #e5e7eb; padding: 8px 10px; }
.npi-table thead th { background: #f8fafc; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.npi-table tbody tr:hover { background: #fafbfd; }
.npi-mono  { font-family: monospace; font-size: 12px; }
.npi-center{ text-align: center; }
.npi-right { text-align: right; }
.npi-bold  { font-weight: 700; }

/* ── 폼 ──────────────────────────────────────────────────────── */
.npi-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 600px) { .npi-form-row { grid-template-columns: 1fr; } }
.npi-field { margin-bottom: 16px; }
.npi-label { display: block; font-size: 13px; font-weight: 600; color: #374151; margin-bottom: 5px; }
.npi-req   { color: #e11d48; }
.npi-input, .npi-select, .npi-textarea {
    display: block; width: 100%; padding: 10px 12px;
    border: 1.5px solid #d1d5db; border-radius: 7px; font-size: 14px;
    font-family: var(--rfq-font); color: #1a202c; background: #fff; outline: none;
    transition: border-color .15s, box-shadow .15s; box-sizing: border-box;
    appearance: none; -webkit-appearance: none;
}
.npi-input:focus, .npi-select:focus, .npi-textarea:focus {
    border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.npi-textarea { resize: vertical; min-height: 80px; }
.npi-input-prefix-wrap { position: relative; }
.npi-input-prefix {
    position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
    color: #64748b; font-weight: 600;
}
.npi-input--number { padding-left: 28px; }

/* ── 라디오 카드 ─────────────────────────────────────────────── */
.npi-radio-group { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 600px) { .npi-radio-group { grid-template-columns: 1fr; } }
.npi-radio-card {
    display: flex; align-items: center; gap: 12px; padding: 14px 16px;
    border: 2px solid #e5e7eb; border-radius: 10px; cursor: pointer;
    transition: border-color .15s, background .15s;
}
.npi-radio-card input[type="radio"] { display: none; }
.npi-radio-card--selected { border-color: #2563eb; background: #eff6ff; }
.npi-radio-icon  { font-size: 22px; }
.npi-radio-title { font-size: 14px; font-weight: 700; color: #1a202c; }
.npi-radio-sub   { font-size: 12px; color: #64748b; }

/* ── 요약 박스 (sticky) ─────────────────────────────────────── */
.npi-sidebar { position: sticky; top: 100px; }
.npi-summary-box {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
    padding: 24px; box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.npi-summary-title { font-size: 14px; font-weight: 800; color: #1a202c; margin-bottom: 16px; text-transform: uppercase; letter-spacing: .05em; }
.npi-summary-row { display: flex; justify-content: space-between; font-size: 14px; padding: 6px 0; color: #374151; }
.npi-summary-row--total { font-weight: 800; font-size: 16px; color: #1a202c; }
.npi-summary-row--paypal { color: #2563eb; font-size: 13px; }
.npi-summary-divider { border-top: 2px solid #e5e7eb; margin: 10px 0; }
.npi-summary-currency { font-size: 11px; color: #94a3b8; text-align: right; margin-bottom: 16px; }
.npi-summary-terms { background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 16px; }
.npi-terms-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #64748b; margin-bottom: 4px; }
.npi-terms-value { font-size: 14px; font-weight: 600; color: #1a202c; }
.npi-confirm-btn {
    display: block; width: 100%; padding: 13px; background: #16a34a;
    color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700;
    font-family: var(--rfq-font); cursor: pointer; text-align: center;
    transition: background .15s; margin-bottom: 12px;
}
.npi-confirm-btn:hover { background: #15803d; }
.npi-confirm-btn:disabled { background: #94a3b8; cursor: not-allowed; }
.npi-back-link { display: block; text-align: center; font-size: 13px; color: #64748b; text-decoration: none; }
.npi-back-link:hover { color: #2563eb; }
.npi-spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: npi-spin .7s linear infinite; }
@keyframes npi-spin { to { transform: rotate(360deg); } }

/* ── Notice ──────────────────────────────────────────────────── */
.npi-notice { padding: 12px 16px; border-radius: 8px; font-size: 13px; margin-bottom: 16px; }
.npi-notice--error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.npi-notice--success { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }

/* ── View PI ─────────────────────────────────────────────────── */
.npi-view-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    margin-bottom: 24px; gap: 16px; flex-wrap: wrap;
}
.npi-action-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.npi-action-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 16px; border: 1.5px solid #e5e7eb; border-radius: 7px;
    font-size: 13px; font-weight: 600; font-family: var(--rfq-font);
    color: #374151; background: #fff; cursor: pointer; text-decoration: none;
    transition: background .15s, border-color .15s;
}
.npi-action-btn:hover { background: #f1f5f9; border-color: #cbd5e1; }
.npi-action-btn:disabled { opacity: .4; cursor: not-allowed; }
.npi-action-btn--outline { color: #64748b; }

/* Status badges */
.npi-status-badge { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: 12px; font-weight: 700; }
.npi-badge--draft           { background: #fef9c3; color: #854d0e; }
.npi-badge--pending         { background: #fef3c7; color: #92400e; }
.npi-badge--awaiting        { background: #dbeafe; color: #1e40af; }
.npi-badge--paid            { background: #d1fae5; color: #065f46; }
.npi-badge--cancelled       { background: #fee2e2; color: #991b1b; }

/* ── Payment Section (v2.13.7) ────────────────────────────────── */
.npi-payment-section { margin-top: 24px; }

.npi-payment-status {
    display: flex; align-items: flex-start; gap: 16px;
    padding: 20px 24px; border-radius: 14px; margin-bottom: 16px;
}
.npi-payment-status--paid     { background: #ecfdf5; border: 1.5px solid #6ee7b7; }
.npi-payment-status--awaiting { background: #eff6ff; border: 1.5px solid #93c5fd; }
.npi-payment-status__icon     { font-size: 28px; line-height: 1; flex-shrink: 0; }
.npi-payment-status__title    { font-size: 16px; font-weight: 700; color: #111827; margin-bottom: 4px; }
.npi-payment-status__detail   { font-size: 13px; color: #374151; line-height: 1.6; }

.npi-payment-card {
    background: #fff; border: 1.5px solid #e5eaf2;
    border-radius: 16px; padding: 28px 28px 24px;
    box-shadow: 0 4px 16px rgba(15,23,42,.06);
}
.npi-payment-card__header { margin-bottom: 20px; }
.npi-payment-card__title  { font-size: 18px; font-weight: 700; color: #111827; margin: 0 0 6px; }
.npi-payment-card__sub    { font-size: 14px; color: #6b7280; margin: 0; }

.npi-payment-methods {
    display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
@media (max-width: 700px) { .npi-payment-methods { grid-template-columns: 1fr; } }

.npi-payment-method {
    background: #f8fafc; border: 1px solid #e5eaf2;
    border-radius: 12px; padding: 20px;
}
.npi-payment-method__label {
    font-size: 14px; font-weight: 700; color: #111827; margin-bottom: 8px;
}
.npi-payment-method__desc  { font-size: 13px; color: #6b7280; margin: 0 0 16px; line-height: 1.6; }

.npi-pay-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 100%; padding: 13px 20px; border: none; border-radius: 10px;
    font-size: 15px; font-weight: 600; cursor: pointer;
    transition: background .15s, transform .1s; gap: 8px;
}
.npi-pay-btn:active { transform: scale(.98); }
.npi-pay-btn--tt    { background: #2563eb; color: #fff; }
.npi-pay-btn--tt:hover { background: #1d4ed8; }
.npi-pay-btn--tt:disabled { background: #93c5fd; cursor: not-allowed; }

.npi-payment-msg {
    padding: 12px 16px; border-radius: 10px;
    font-size: 14px; font-weight: 500;
    margin-bottom: 16px; line-height: 1.5;
}
.npi-payment-msg--success { background: #ecfdf5; border: 1px solid #6ee7b7; color: #065f46; }
.npi-payment-msg--error   { background: #fef2f2; border: 1px solid #fca5a5; color: #991b1b; }
.npi-payment-msg--info    { background: #eff6ff; border: 1px solid #93c5fd; color: #1e40af; }

/* ── PI 문서 (인쇄용) ────────────────────────────────────────── */
.npi-document {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
    padding: 40px; box-shadow: 0 2px 8px rgba(0,0,0,.06); max-width: 860px;
}
.npi-doc-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 32px; padding-bottom: 24px; border-bottom: 2px solid #e5e7eb; }
.npi-doc-company-name { font-size: 20px; font-weight: 900; color: #1a202c; }
.npi-doc-company-sub  { font-size: 12px; color: #64748b; margin-top: 4px; }
.npi-doc-pi-title { font-size: 18px; font-weight: 800; color: #2563eb; text-align: right; margin-bottom: 8px; letter-spacing: .04em; }
.npi-doc-info-table { font-size: 13px; margin-left: auto; }
.npi-doc-info-table td { padding: 2px 8px 2px 0; color: #374151; }
.npi-doc-info-table td:first-child { color: #64748b; }

.npi-doc-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-bottom: 32px; }
.npi-doc-party-label { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: #2563eb; margin-bottom: 6px; }
.npi-doc-party-name  { font-size: 15px; font-weight: 700; color: #1a202c; margin-bottom: 4px; }
.npi-doc-party-info  { font-size: 13px; color: #64748b; }

.npi-doc-section-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #64748b; margin-bottom: 8px; }
.npi-doc-items { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 24px; }
.npi-doc-items th, .npi-doc-items td { border: 1px solid #e5e7eb; padding: 8px 10px; }
.npi-doc-items thead th { background: #f8fafc; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.npi-doc-items tbody tr:nth-child(even) { background: #fafbfd; }

.npi-doc-totals { display: flex; justify-content: flex-end; margin-bottom: 24px; }
.npi-doc-totals-table { font-size: 14px; }
.npi-doc-totals-table td { padding: 5px 12px; }
.npi-doc-totals-table td:last-child { text-align: right; min-width: 120px; }
.npi-doc-grand-total td { border-top: 2px solid #1a202c; font-size: 15px; padding-top: 8px; }

.npi-doc-terms-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; padding: 16px; background: #f8fafc; border-radius: 8px; }
@media (max-width: 700px) { .npi-doc-terms-grid { grid-template-columns: 1fr 1fr; } }
.npi-doc-term-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #64748b; margin-bottom: 4px; }
.npi-doc-term-value { font-size: 14px; font-weight: 600; color: #1a202c; }

.npi-doc-remarks { margin-bottom: 24px; padding: 16px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; }
.npi-doc-remarks-body { font-size: 13px; color: #374151; margin-top: 6px; line-height: 1.6; }

/* Bank Information section */
.npi-doc-bank { margin-bottom: 24px; }
.npi-doc-bank-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 10px; }
.npi-doc-bank-table tr { border-bottom: 1px solid #f1f5f9; }
.npi-doc-bank-table tr:last-child { border-bottom: none; }
.npi-doc-bank-label { padding: 7px 12px 7px 0; color: #6b7280; font-weight: 600; width: 200px; vertical-align: top; }
.npi-doc-bank-value { padding: 7px 0; color: #111827; }

.npi-doc-footer { font-size: 11px; color: #94a3b8; border-top: 1px solid #e5e7eb; padding-top: 16px; text-align: center; line-height: 1.8; }

/* ── My Quotes 버튼 추가 스타일 ──────────────────────────────── */
.nbd-btn-sm {
    display: inline-block; padding: 5px 12px; border-radius: 6px;
    font-size: 12px; font-weight: 600; text-decoration: none; cursor: pointer;
    border: 1.5px solid #e5e7eb; background: #fff; color: #374151;
    transition: background .15s;
}
.nbd-btn-sm:hover { background: #f1f5f9; }
.nbd-btn-sm--choose { background: #16a34a; border-color: #16a34a; color: #fff; }
.nbd-btn-sm--choose:hover { background: #15803d; }
.nbd-btn-sm--view { background: #2563eb; border-color: #2563eb; color: #fff; }
.nbd-btn-sm--view:hover { background: #1d4ed8; }
.nbd-muted { color: #94a3b8; font-size: 13px; }

/* @media print — consolidated below */

/* ── Portal RFQ: addr-toggle (portal design token) ─────────── */
.nrfq-addr-toggle {
    display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 16px;
    padding: 12px 14px; background: #f8fafc;
    border: 1px solid var(--portal-border,#e5eaf2);
    border-radius: var(--rfq-radius,8px);
}
.nrfq-addr-opt {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; color: var(--portal-body,#475569); cursor: pointer;
}
.nrfq-addr-opt input[type="radio"] { accent-color: var(--portal-primary,#2563eb); }

/* ── nbd-stats / nbd-stat aliases (dashboard v2.4.0 compat, expanded to 4 cards in v3.0.16) ── */
.nbd-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:24px; }
@media (max-width:900px) { .nbd-stats { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px) { .nbd-stats { grid-template-columns:1fr; gap:10px; } }
.nbd-stat {
    background:#fff; border:1px solid #e5eaf2; border-radius:16px;
    overflow:hidden; box-shadow:0 8px 24px rgba(15,23,42,.06);
    transition:transform .18s, box-shadow .18s;
}
.nbd-stat:hover { transform:translateY(-3px); box-shadow:0 14px 32px rgba(15,23,42,.10); }
.nbd-stat--quoted    { border-top:4px solid #2563eb; }
.nbd-stat--progress  { border-top:4px solid #f59e0b; }
.nbd-stat--completed { border-top:4px solid #059669; }
.nbd-stat-num   { display:block; font-size:36px; font-weight:800; color:#0f172a; line-height:1; padding:18px 22px 0; }
.nbd-stat-label { display:block; font-size:11px; font-weight:600; color:#94a3b8; text-transform:uppercase; letter-spacing:.06em; padding:6px 22px 20px; }

/* nbd-user-bar (dashboard header) */
.nbd-user-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.nbd-user-bar__identity { display:flex; align-items:center; gap:12px; }
.nbd-avatar { width:48px; height:48px; background:#2563eb; color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:800; flex-shrink:0; }
.nbd-company { font-size:17px; font-weight:800; color:#0f172a; }
.nbd-sub     { font-size:12px; color:#94a3b8; margin-top:2px; }
.nbd-logout  { font-size:13px; color:#94a3b8; text-decoration:none; }
.nbd-logout:hover { color:#dc2626; }

/* nbd-section (older shortcodes) */
.nbd-section { background:#fff; border:1px solid #e5eaf2; border-radius:16px; padding:24px; margin-bottom:20px; box-shadow:0 8px 24px rgba(15,23,42,.06); }
.nbd-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.nbd-section-title { font-size:15px; font-weight:700; color:#0f172a; margin:0; }

/* sidebar quick-btn (older) */
.nbd-sidebar-section-label { font-size:11px; font-weight:700; letter-spacing:.08em; color:#2563eb; margin-bottom:14px; text-transform:uppercase; }

/* ================================================================
   MY QUOTES — Supplier Comparison Table  (nmq-)  v2.5.0
   ================================================================ */

/* ── Scrollable wrapper ──────────────────────────────────────── */
.nmq-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -4px;
    padding: 0 4px;
}

/* ── Table base ──────────────────────────────────────────────── */
.nmq-table {
    width: 100%;
    min-width: 700px;
    border-collapse: collapse;
    font-size: 13.5px;
    color: var(--portal-body, #475569);
    font-family: var(--rfq-font);
}

.nmq-table thead th {
    padding: 10px 14px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--portal-muted, #64748b);
    background: var(--rfq-gray-50, #f9fafb);
    border-bottom: 2px solid var(--portal-border, #e5eaf2);
    white-space: nowrap;
}
.nmq-table thead th:last-child { text-align: right; }

/* ── Rows ────────────────────────────────────────────────────── */
.nmq-table tbody tr.nmq-row {
    border-bottom: 1px solid var(--portal-border, #e5eaf2);
    transition: background .12s;
}
.nmq-table tbody tr.nmq-row:last-child { border-bottom: none; }
.nmq-table tbody tr.nmq-row:hover      { background: #f8fafc; }

.nmq-table td {
    padding: 13px 14px;
    vertical-align: middle;
}
.nmq-td-action { text-align: right; white-space: nowrap; }

/* ── RFQ number + status badge ───────────────────────────────── */
.nmq-td-rfq { white-space: nowrap; }
.nmq-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 700;
    vertical-align: middle;
    letter-spacing: .04em;
}
.nmq-badge--quoted { background: #dbeafe; color: #1d4ed8; }
.nmq-badge--pi     { background: #d1fae5; color: #065f46; }

/* ── Price ───────────────────────────────────────────────────── */
.nmq-price {
    font-size: 14px;
    font-weight: 800;
    color: var(--portal-title, #0f172a);
}

/* ── Lead time pill ──────────────────────────────────────────── */
.nmq-lead-pill {
    display: inline-block;
    padding: 3px 10px;
    background: #fef3c7;
    color: #92400e;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

/* ── Notes ───────────────────────────────────────────────────── */
.nmq-notes-text {
    display: block;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--portal-muted, #64748b);
    font-size: 12.5px;
    cursor: default;
}

/* ── Mobile card layout (≤ 640px) ───────────────────────────── */
@media (max-width: 640px) {
    .nmq-table-wrap { margin: 0; padding: 0; }
    .nmq-table,
    .nmq-table thead,
    .nmq-table tbody,
    .nmq-table th,
    .nmq-table td,
    .nmq-table tr { display: block; width: 100%; }

    .nmq-table thead { display: none; }

    .nmq-table tbody tr.nmq-row {
        background: #fff;
        border: 1px solid var(--portal-border, #e5eaf2);
        border-radius: 12px;
        margin-bottom: 12px;
        padding: 14px;
        box-shadow: 0 2px 8px rgba(15,23,42,.05);
    }

    .nmq-table td {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        padding: 6px 0;
        border: none;
        font-size: 13px;
        text-align: left;
    }
    .nmq-table td[data-label]::before {
        content: attr(data-label);
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .05em;
        color: var(--portal-muted, #64748b);
        flex-shrink: 0;
        min-width: 110px;
    }
    .nmq-td-action {
        justify-content: flex-end;
        text-align: right;
        margin-top: 8px;
        padding-top: 10px;
        border-top: 1px solid #f1f5f9;
    }
    .nmq-td-action::before { display: none; }

    .nmq-notes-text { max-width: 100%; white-space: normal; }
}

/* ================================================================
   MY QUOTES v2.6.0 — RFQ Group + Supplier Summary + Item Comparison
   Namespace: nmq-
   ================================================================ */

/* ── RFQ Group container ─────────────────────────────────────── */
.nmq-rfq-group {
    border: 1px solid var(--portal-border, #e5eaf2);
    border-radius: 14px;
    margin-bottom: 28px;
    overflow: hidden;
    background: #fff;
}
.nmq-rfq-group:last-child { margin-bottom: 0; }

/* ── RFQ Group header ────────────────────────────────────────── */
.nmq-rfq-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    background: var(--rfq-gray-50, #f9fafb);
    border-bottom: 1px solid var(--portal-border, #e5eaf2);
    gap: 12px;
    flex-wrap: wrap;
}
.nmq-rfq-header__left  { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.nmq-rfq-header__right { font-size: 12px; color: var(--portal-muted, #64748b); }
.nmq-rfq-label  { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--portal-muted, #64748b); }
.nmq-rfq-num    { font-size: 15px; font-weight: 800; color: var(--portal-title, #0f172a); }
.nmq-rfq-meta   { font-size: 12px; color: var(--portal-muted, #64748b); }

/* Badges (RFQ header + item table) */
.nmq-badge {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
}
.nmq-badge--quoted { background: #dbeafe; color: #1d4ed8; }
.nmq-badge--pi     { background: #d1fae5; color: #065f46; }

/* ── Supplier Summary bar ────────────────────────────────────── */
.nmq-sup-summary {
    display: flex;
    gap: 12px;
    padding: 16px 20px;
    background: #fafbfd;
    border-bottom: 1px solid var(--portal-border, #e5eaf2);
    flex-wrap: wrap;
}
.nmq-sup-card {
    flex: 1 1 220px;
    background: #fff;
    border: 1.5px solid var(--portal-border, #e5eaf2);
    border-radius: 10px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-shadow: 0 2px 6px rgba(15,23,42,.04);
    transition: border-color .15s, box-shadow .15s;
}
.nmq-sup-card:hover {
    border-color: #93c5fd;
    box-shadow: 0 4px 12px rgba(37,99,235,.08);
}
.nmq-sup-card__name {
    font-size: 13px;
    font-weight: 700;
    color: var(--portal-title, #0f172a);
}
.nmq-sup-card__stats {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.nmq-sup-total {
    font-size: 16px;
    font-weight: 800;
    color: #0f172a;
}
.nmq-sup-date {
    font-size: 11px;
    color: var(--portal-muted, #64748b);
}
.nmq-sup-card__action { margin-top: 4px; }

/* Lead time pill — two sizes */
.nmq-lead-pill {
    display: inline-block;
    padding: 3px 9px;
    background: #fef3c7;
    color: #92400e;
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}
.nmq-lead-pill--sm {
    padding: 2px 7px;
    font-size: 11px;
}

/* ── Create PI / View PI buttons ─────────────────────────────── */
.nmq-pi-btn {
    display: inline-block;
    padding: 7px 14px;
    border-radius: 7px;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    border: none;
    font-family: var(--rfq-font);
    text-decoration: none;
    transition: background .15s, opacity .15s;
    white-space: nowrap;
}
.nmq-pi-btn--create {
    background: #16a34a;
    color: #fff;
    width: 100%;
    text-align: center;
}
.nmq-pi-btn--create:hover  { background: #15803d; }
.nmq-pi-btn--create:disabled { background: #94a3b8; cursor: not-allowed; }
.nmq-pi-btn--view {
    background: #2563eb;
    color: #fff;
    width: 100%;
    text-align: center;
    display: block;
}
.nmq-pi-btn--view:hover { background: #1d4ed8; color: #fff; }

/* ── Item comparison table ───────────────────────────────────── */
.nmq-item-wrap {
    padding: 0 0 4px;
}
.nmq-item-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.nmq-item-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    font-size: 13px;
    color: var(--portal-body, #475569);
    font-family: var(--rfq-font);
}
.nmq-item-table thead th {
    padding: 9px 12px;
    text-align: left;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--portal-muted, #64748b);
    background: #f9fafb;
    border-bottom: 2px solid var(--portal-border, #e5eaf2);
    white-space: nowrap;
    vertical-align: bottom;
}
.nmq-th-sup-name { display: block; font-size: 11px; font-weight: 700; color: #0f172a; }
.nmq-th-sup-sub  { display: block; font-size: 9.5px; font-weight: 500; color: #94a3b8; margin-top: 2px; }

.nmq-item-table tbody tr.nmq-item-row:nth-child(even) { background: #fafbfd; }
.nmq-item-table tbody tr.nmq-item-row:hover { background: #f0f7ff; }
.nmq-item-table td { padding: 10px 12px; border-bottom: 1px solid var(--portal-border, #e5eaf2); vertical-align: middle; }
.nmq-item-table tbody tr:last-child td { border-bottom: none; }

/* Column widths */
.nmq-col-no    { width: 36px; color: var(--portal-muted); font-size: 12px; }
.nmq-col-desc  { min-width: 140px; }
.nmq-col-mpn   { min-width: 100px; }
.nmq-col-brand { min-width: 80px; }
.nmq-col-qty   { width: 52px; text-align: center; }
.nmq-sup-price { min-width: 90px; }
.nmq-sup-lead  { min-width: 90px; }

/* Supplier price cell */
.nmq-sup-price strong { font-size: 13px; font-weight: 700; color: #0f172a; }
.nmq-no-data { background: #fafbfd; color: #cbd5e1; }
.nmq-muted { color: #cbd5e1; font-size: 12px; }
.nmq-mono  { font-family: 'SFMono-Regular', Consolas, monospace; font-size: 12px; }
.nmq-center { text-align: center; }

/* Tooltip info icon */
.nmq-item-note {
    display: inline-block;
    font-size: 10px;
    color: #94a3b8;
    margin-left: 4px;
    cursor: help;
    vertical-align: middle;
}

/* Totals footer */
.nmq-item-table tfoot tr.nmq-totals-row {
    background: #f0f7ff;
}
.nmq-item-table tfoot td {
    padding: 10px 12px;
    font-size: 12px;
    border-top: 2px solid #bfdbfe;
}
.nmq-totals-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #2563eb; }
.nmq-totals-val   { font-size: 14px; font-weight: 800; color: #0f172a; }

/* ── Mobile layout (≤640px) ──────────────────────────────────── */
@media (max-width: 640px) {
    .nmq-sup-summary { flex-direction: column; gap: 10px; }
    .nmq-sup-card    { flex: 1 1 100%; }
    .nmq-rfq-header  { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* ================================================================
   VIEW PI — Logo style
   ================================================================ */
.npi-doc-logo {
    display: block;
    max-width: 160px;
    max-height: 52px;
    width: auto;
    height: auto;
    margin-bottom: 8px;
    object-fit: contain;
}

/* ================================================================
   PRINT — PI Document Only  v2.7.0
   Strategy:
     1) body * hidden → total page blackout
     2) #npi-print-area + all descendants → visible
     3) Positioned absolute top-left, full width
     4) body.npi-printing (added by JS on print btn click) used as
        an additional hook for maximum specificity
   ================================================================ */
@media print {

    /* ── 0) Page setup ──────────────────────────────────────────── */
    @page {
        size: auto;
        margin: 10mm 12mm;
    }

    /* ── 1) Total blackout ──────────────────────────────────────── */
    html body,
    html body * {
        visibility: hidden !important;
        background: transparent !important;
    }

    html, body {
        background: #fff !important;
        margin: 0 !important;
        padding: 0 !important;
        height: auto !important;
        overflow: visible !important;
    }

    /* ── 2) Printable document area only (PI, PO, and future docs) ─ */
    /* v3.0.10 — .nova-print-doc is the shared class used by PO and any
     * future printable documents. #npi-print-area is the legacy PI ID
     * kept for backward compatibility. Both selectors get the same
     * treatment so we avoid duplicating the ~80 lines below. */
    body #npi-print-area,
    body #npi-print-area *,
    body.npi-printing #npi-print-area,
    body.npi-printing #npi-print-area *,
    body .nova-print-doc,
    body .nova-print-doc *,
    body.nova-printing .nova-print-doc,
    body.nova-printing .nova-print-doc * {
        visibility: visible !important;
        background: #fff !important;
    }

    /* ── 3) Pin document to top-left, full width ─────────────────── */
    body #npi-print-area,
    body.npi-printing #npi-print-area,
    body .nova-print-doc,
    body.nova-printing .nova-print-doc {
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        z-index: 2147483647 !important;
    }

    /* ── 4) Hard-kill every piece of site chrome ────────────────── */
    /* Generic HTML structure */
    header, footer, nav, aside,
    /* WordPress admin bar */
    #wpadminbar,
    /* Astra theme */
    .site-header, .site-footer,
    #site-header, #site-footer,
    .ast-above-header-wrap,
    .ast-header-wrap,
    .ast-below-header-wrap,
    .ast-desktop-header,
    .ast-mobile-header,
    .ast-footer-wrap,
    .ast-breadcrumbs-wrapper,
    /* Elementor */
    .elementor-location-header,
    .elementor-location-footer,
    .elementor-widget-theme-site-logo,
    .elementor-widget-theme-site-title,
    .elementor-widget-navigation-menu,
    /* Hello Elementor / HFE / EHF header+footer builders */
    .hfe-header, .hfe-footer,
    .ehf-header, .ehf-footer,
    /* Portal chrome */
    .npi-no-print,
    .npi-view-header,
    .npi-action-btns,
    .npo-no-print,
    .nbd-tab-nav,
    .npi-page-title,
    .npi-page-sub,
    /* Any sibling of print area inside wrappers */
    .npi-wrap > *:not(#npi-print-area),
    /* Page/post title elements */
    .entry-header,
    .entry-title,
    .page-header,
    .post-navigation,
    /* WooCommerce / misc */
    .woocommerce-breadcrumb,
    .rank-math-breadcrumb {
        display: none !important;
        visibility: hidden !important;
    }

    /* ── 5) PI document internal polish ────────────────────────── */
    body #npi-print-area .npi-doc-logo {
        max-width: 120px !important;
        max-height: 40px !important;
        display: block !important;
    }

    body #npi-print-area .npi-doc-company-name { font-size: 13pt !important; }
    body #npi-print-area .npi-doc-pi-title     { font-size: 15pt !important; }

    body #npi-print-area .npi-doc-items {
        font-size: 10pt !important;
        width: 100% !important;
        border-collapse: collapse !important;
    }
    body #npi-print-area .npi-doc-items th,
    body #npi-print-area .npi-doc-items td {
        border: 1px solid #888 !important;
        padding: 5px 7px !important;
        color: #000 !important;
    }
    body #npi-print-area .npi-doc-items thead th {
        background: #f0f0f0 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Terms grid */
    body #npi-print-area .npi-doc-terms-grid {
        background: #f8f8f8 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Footer */
    body #npi-print-area .npi-doc-footer { font-size: 8pt !important; color: #555 !important; }

    /* ── 6) Page-break control ──────────────────────────────────── */
    body #npi-print-area .npi-doc-items tr  { page-break-inside: avoid; break-inside: avoid; }
    body #npi-print-area .npi-doc-parties   { page-break-inside: avoid; break-inside: avoid; }
    body #npi-print-area .npi-doc-terms-grid{ page-break-inside: avoid; break-inside: avoid; }
    body #npi-print-area .npi-doc-bank { page-break-inside: avoid; break-inside: avoid; }
    body #npi-print-area .npi-doc-bank-table { width: 100%; font-size: 9pt; }
    body #npi-print-area .npi-doc-bank-label { color: #555; font-weight: 600; width: 180px; }
    body #npi-print-area .npi-doc-bank-value { color: #000; }

    /* ── 6.5) PO document internal polish (v3.0.10) ────────────── */
    body .nova-print-doc .npo-items-table,
    body .nova-print-doc .npo-items-table th,
    body .nova-print-doc .npo-items-table td {
        page-break-inside: avoid;
        break-inside: avoid;
    }
    body .nova-print-doc .npo-company-info { page-break-inside: avoid; break-inside: avoid; }
    body .nova-print-doc .npo-items-table { font-size: 10pt !important; }

    /* ── 7) No link URL output ──────────────────────────────────── */
    a[href]::after,
    a[href]:after { content: "" !important; }
}

/* body.npi-printing / body.nova-printing (screen): hide everything except
 * print area while browser opens the print dialog — prevents flash of
 * un-hidden content */
body.npi-printing > *:not(#npi-print-area):not(.npi-wrap) {
    visibility: hidden !important;
}
body.npi-printing .npi-wrap > *:not(#npi-print-area) {
    display: none !important;
}
body.nova-printing > *:not(.nova-print-doc):not(.npo-wrap):not(.npi-wrap) {
    visibility: hidden !important;
}

/* ================================================================
   v3.0.16 — View PI Order Progress + Shipments
   (Screen only; hidden on print by npi-no-print ancestor.)
   ================================================================ */
.npi-order-progress {
    background:#fff; border:1px solid #e5e7eb; border-radius:14px;
    padding:18px 20px 20px; margin:0 0 20px;
    box-shadow:0 2px 6px rgba(15,23,42,.04);
}
.npi-order-progress__title {
    font-size:11px; font-weight:700; text-transform:uppercase;
    color:#6b7280; letter-spacing:.06em; margin-bottom:14px;
}
.npi-order-pipeline {
    display:flex; gap:6px; flex-wrap:wrap;
}
.npi-order-step {
    flex:1; min-width:120px; padding:10px 6px; text-align:center;
    border:1px solid #e5e7eb; border-radius:8px;
    background:#f9fafb; color:#9ca3af;
    font-size:12px; font-weight:600;
    display:flex; flex-direction:column; gap:4px; align-items:center;
}
.npi-order-step-icon { font-size:16px; line-height:1; }
.npi-order-step-label { font-size:11px; }
.npi-order-step.is-done {
    background:#ecfdf5; border-color:#a7f3d0; color:#065f46;
}
.npi-order-step.is-current {
    background:#dbeafe; border-color:#93c5fd; color:#1e40af;
    box-shadow:0 0 0 3px rgba(147,197,253,.25);
}
@media (max-width: 640px) {
    .npi-order-pipeline { gap:4px; }
    .npi-order-step { min-width:80px; padding:8px 4px; }
    .npi-order-step-label { font-size:10px; }
}

.npi-order-cancelled {
    margin-top:14px; padding:10px 14px; border-radius:8px;
    background:#fee2e2; border:1px solid #fca5a5; color:#991b1b;
    font-size:13px; font-weight:600;
}

/* ── Shipments section ───────────────────────────────────── */
.npi-order-shipments {
    margin-top:18px; padding-top:18px;
    border-top:1px solid #e5e7eb;
}
.npi-order-shipments__title {
    font-size:14px; font-weight:700; color:#111827; margin-bottom:10px;
}
.npi-order-shipments__count {
    font-weight:500; color:#6b7280; font-size:13px; margin-left:6px;
}
.npi-order-shipments__list {
    display:flex; flex-direction:column; gap:8px;
}
.npi-order-ship-card {
    background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px;
    padding:12px 14px;
}
.npi-order-ship-card__label {
    font-size:11px; font-weight:600; color:#6b7280;
    text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px;
}
.npi-order-ship-card__row {
    display:flex; flex-wrap:wrap; align-items:center; gap:12px;
    font-size:13px;
}
.npi-order-ship-card__carrier {
    color:#374151; font-weight:500;
}
.npi-order-ship-card__track {
    color:#2563eb; font-weight:700; text-decoration:none;
    font-family:'SF Mono','Monaco','Menlo',monospace; font-size:13px;
}
.npi-order-ship-card__track:hover { text-decoration:underline; }

.npi-order-no-ship {
    margin-top:14px; padding:12px 16px; border-radius:8px;
    background:#fef3c7; border:1px solid #fcd34d; color:#92400e;
    font-size:13px;
}

/* ================================================================
   MY QUOTES v2.7.0 — Supplier Summary Table (replaces card layout)
   ================================================================ */

/* ── Summary section label ───────────────────────────────────── */
.nmq-sup-summary {
    padding: 0 0 0;
    background: #fafbfd;
    border-bottom: 1px solid var(--portal-border, #e5eaf2);
}

/* ── Summary table ───────────────────────────────────────────── */
.nmq-sup-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    font-family: var(--rfq-font);
}
.nmq-sup-table thead th {
    padding: 9px 14px;
    text-align: left;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--portal-muted, #64748b);
    background: #f1f5f9;
    border-bottom: 1px solid var(--portal-border, #e5eaf2);
    white-space: nowrap;
}
.nmq-sup-table thead th:last-child { text-align: right; padding-right: 16px; }

.nmq-sup-table tbody tr.nmq-sup-row {
    border-bottom: 1px solid var(--portal-border, #e5eaf2);
    transition: background .12s;
}
.nmq-sup-table tbody tr.nmq-sup-row:last-child { border-bottom: none; }
.nmq-sup-table tbody tr.nmq-sup-row:hover { background: #f8fafc; }

.nmq-sup-table td { padding: 11px 14px; vertical-align: middle; }

.nmq-sup-row__name  { font-weight: 700; color: var(--portal-title, #0f172a); min-width: 140px; }
.nmq-sup-row__total { min-width: 120px; }
.nmq-sup-row__total strong { font-size: 14px; font-weight: 800; color: #0f172a; }
.nmq-sup-row__lead  { min-width: 100px; }
.nmq-sup-row__date  { font-size: 12px; color: var(--portal-muted, #64748b); min-width: 90px; white-space: nowrap; }
.nmq-sup-row__action { text-align: right; padding-right: 16px; white-space: nowrap; }

/* ── Item table column header index badge ────────────────────── */
.nmq-col-sup-idx {
    display: inline-block;
    width: 16px; height: 16px;
    background: #2563eb;
    color: #fff;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 800;
    text-align: center;
    line-height: 16px;
    vertical-align: middle;
    margin-right: 3px;
}

/* Column widths for item table */
.nmq-col-price { min-width: 110px; }
.nmq-col-lead  { min-width: 100px; }

/* ── Mobile ──────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .nmq-sup-table,
    .nmq-sup-table thead,
    .nmq-sup-table tbody,
    .nmq-sup-table tr,
    .nmq-sup-table th,
    .nmq-sup-table td { display: block; width: 100%; }
    .nmq-sup-table thead { display: none; }
    .nmq-sup-table tbody tr.nmq-sup-row {
        padding: 12px 14px;
        border: 1px solid var(--portal-border);
        border-radius: 10px;
        margin: 8px 12px;
        background: #fff;
    }
    .nmq-sup-table td {
        display: flex;
        justify-content: space-between;
        padding: 4px 0;
        border: none;
    }
    .nmq-sup-row__action { justify-content: flex-end; margin-top: 8px; }
}

/* ================================================================
   SUPPLIER REGISTER / APPLY  — v2.7.3
   Minimal additions only; reuses all existing .nlf- auth card styles.
   ================================================================ */

/* Supplier apply link — slightly distinct teal colour to differentiate from buyer link */
.nlf-register-link--supplier a {
    color: #0d9488;
}
.nlf-register-link--supplier a:hover {
    text-decoration: underline;
}

/* Pending / success state with icon */
.nlf-alert--pending {
    background: #f0fdf4;
    color: #065f46;
    border: 1px solid #6ee7b7;
    line-height: 1.6;
}
.nlf-alert--pending small {
    display: block;
    margin-top: 4px;
    color: #047857;
    font-size: 12px;
}

/* Inline form note (ℹ️ inactive account notice) */
.nlf-form-note {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 13px;
    color: #1e40af;
    margin: 4px 0 18px;
    line-height: 1.55;
}

/* ================================================================
   NAV 2-BUTTON HEADER  — v2.7.3
   [nova_rfq_nav] — 2-button structure: [ Sign In / Log Out ] [ Supplier ]
   ================================================================ */

.nova-rfq-nav--2btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* ── Nav buttons: high-specificity to override Elementor/theme ── */
.nova-rfq-nav--2btn .nova-nav-btn,
a.nova-nav-btn {
    display: inline-block !important;
    padding: 7px 18px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    line-height: 1.4 !important;
    transition: background 0.15s, color 0.15s, border-color 0.15s !important;
    cursor: pointer !important;
    box-shadow: none !important;
    letter-spacing: 0 !important;
}

/* Sign In — outlined blue */
.nova-rfq-nav--2btn .nova-nav-btn--signin,
a.nova-nav-btn--signin {
    background: transparent !important;
    color: #2563eb !important;
    border: 1.5px solid #2563eb !important;
}
.nova-rfq-nav--2btn .nova-nav-btn--signin:hover,
a.nova-nav-btn--signin:hover {
    background: #eff6ff !important;
    color: #1d4ed8 !important;
    text-decoration: none !important;
}

/* Log Out — muted grey */
.nova-rfq-nav--2btn .nova-nav-btn--logout,
a.nova-nav-btn--logout {
    background: transparent !important;
    color: #64748b !important;
    border: 1.5px solid #e2e8f0 !important;
}
.nova-rfq-nav--2btn .nova-nav-btn--logout:hover,
a.nova-nav-btn--logout:hover {
    background: #fef2f2 !important;
    color: #dc2626 !important;
    border-color: #fecaca !important;
    text-decoration: none !important;
}

/* Supplier — filled teal */
.nova-rfq-nav--2btn .nova-nav-btn--supplier,
a.nova-nav-btn--supplier {
    background: #0d9488 !important;
    color: #ffffff !important;
    border: 1.5px solid #0d9488 !important;
}
.nova-rfq-nav--2btn .nova-nav-btn--supplier:hover,
a.nova-nav-btn--supplier:hover {
    background: #0f766e !important;
    border-color: #0f766e !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

/* ================================================================
   AUTH LOGO LINK  — v2.7.4
   nlf-brand-link wraps the logo and links to home.
   ================================================================ */

.nlf-brand-link {
    display: inline-block;
    text-decoration: none;
    color: inherit;
    transition: opacity .15s;
}
.nlf-brand-link:hover {
    opacity: 0.8;
    text-decoration: none;
}

/* When real logo image is used */
.nlf-logo-img {
    max-height: 48px;
    width: auto;
    display: block;
    margin: 0 auto;
}

/* Slightly enlarge logo on wide registration cards */
.nlf-card--wide .nlf-logo-img {
    max-height: 44px;
}

/* ================================================================
   NOVA AUTH PAGES — Astra 테마 페이지 제목 숨김  v2.7.7
   Astra / 대부분의 WP 테마는 body에 .page-id-XX 클래스를 추가함.
   Nova 플러그인이 관리하는 auth 페이지들은 카드 내부에 자체 제목이
   있으므로 테마 페이지 제목을 중복 표시하지 않음.
   ================================================================ */

/* account-login, login, register, supplier-login, supplier-register 등
   Nova auth 페이지 공통 — .nlf-outer 가 있는 페이지 */
body:has(.nlf-outer) .entry-title,
body:has(.nlf-outer) .page-title,
body:has(.nlf-outer) .page-header,
body:has(.nlf-outer) h1.page-title,
body:has(.nlf-outer) .ast-page-title,
body:has(.nlf-outer) .ast-archive-title,
body:has(.nlf-outer) .site-above-header-wrap + * > h1:first-child {
    display: none !important;
}

/* Astra 전용 선택자 */
body:has(.nlf-outer) .ast-page-title-wrap,
body:has(.nlf-outer) .ast-breadcrumbs-wrapper {
    display: none !important;
}

/* ================================================================
   MY QUOTES — Per-Item Selection UI  (nmq- v2.8.0)
   아이템별 공급자 선택 + 혼합 PI 생성
   ================================================================ */

/* 공급자 뱃지 (A, B, C...) */
.nmq-sup-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    margin-right: 6px;
    vertical-align: middle;
    flex-shrink: 0;
}
.nmq-sup-badge--a { background: #2563eb; }
.nmq-sup-badge--b { background: #16a34a; }
.nmq-sup-badge--c { background: #9333ea; }
.nmq-sup-badge--d { background: #ea580c; }

/* Supplier Summary — Action 열 제거됐으므로 col 폭 조정 */
.nmq-sup-table th:nth-child(1) { width: 35%; }
.nmq-sup-table th:nth-child(2) { width: 20%; }
.nmq-sup-table th:nth-child(3) { width: 22%; }
.nmq-sup-table th:nth-child(4) { width: 23%; }

/* 선택 힌트 바 */
.nmq-selection-hint {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    margin-bottom: 14px;
    font-size: 13px;
    color: #1e40af;
    flex-wrap: wrap;
}
.nmq-hint-icon { font-size: 16px; flex-shrink: 0; }
.nmq-hint-total-label { margin-left: auto; }
.nmq-hint-total {
    font-size: 16px;
    color: #1d4ed8;
    min-width: 80px;
    text-align: right;
}

/* Item Table v2 — 공급자별 컬럼 그룹 헤더 */
.nmq-item-table--v2 { border-collapse: collapse; width: 100%; table-layout: auto; }
.nmq-item-table--v2 thead th { background: #f8fafc; font-size: 12px; font-weight: 600; color: #475569; text-transform: uppercase; letter-spacing: .4px; padding: 10px 12px; border-bottom: 2px solid #e2e8f0; white-space: nowrap; }

/* 공급자 그룹 헤더 */
.nmq-col-sup-group {
    vertical-align: top;
    min-width: 160px;
    border-left: 2px solid #e2e8f0;
}
.nmq-col-sup-name {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #1e293b;
    margin-top: 2px;
    margin-bottom: 4px;
}
.nmq-col-sub-heads {
    display: flex;
    gap: 0;
    font-size: 10px;
    color: #94a3b8;
    margin-top: 4px;
}
.nmq-col-sub-heads span {
    flex: 1;
    text-align: center;
    border-top: 1px solid #e2e8f0;
    padding-top: 3px;
}

/* 공급자 셀 */
.nmq-sup-cell {
    border-left: 2px solid #e2e8f0;
    padding: 0 !important;
    vertical-align: middle;
}
.nmq-sup-cell.nmq-no-data { background: #f8fafc; }
.nmq-sup-cell.nmq-cell--best { background: #f0fdf4; }
.nmq-sup-cell.nmq-cell--selected {
    background: #eff6ff !important;
    outline: 2px solid #2563eb;
    outline-offset: -2px;
}

.nmq-cell-inner {
    display: flex;
    align-items: center;
    gap: 0;
    height: 100%;
}
.nmq-cell-price,
.nmq-cell-lead,
.nmq-cell-select {
    flex: 1;
    padding: 10px 8px;
    text-align: center;
    border-right: 1px solid #f1f5f9;
    font-size: 13px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
}
.nmq-cell-select { border-right: none; }

/* 최저가 강조 */
.nmq-price--best { color: #15803d; font-size: 14px; }
.nmq-best-badge {
    display: inline-block;
    padding: 1px 5px;
    background: #dcfce7;
    color: #15803d;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .2px;
}

/* 라디오 커스텀 */
.nmq-radio-label {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 4px;
}
.nmq-radio-label input[type="radio"] { display: none; }
.nmq-radio-check {
    width: 18px;
    height: 18px;
    border: 2px solid #cbd5e1;
    border-radius: 50%;
    background: #fff;
    transition: border-color .15s, background .15s;
    position: relative;
    display: block;
}
.nmq-radio-label input[type="radio"]:checked + .nmq-radio-check {
    border-color: #2563eb;
    background: #2563eb;
}
.nmq-radio-label input[type="radio"]:checked + .nmq-radio-check::after {
    content: '';
    position: absolute;
    top: 3px; left: 3px;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #fff;
}
.nmq-cell-select--na { color: #cbd5e1; font-size: 12px; }

/* 합계 행 */
.nmq-totals-val--sup { text-align: center; }

/* PI 액션 영역 */
.nmq-pi-action {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    border-radius: 0 0 10px 10px;
    flex-wrap: wrap;
}
.nmq-pi-action--done { background: #f0fdf4; border-top-color: #bbf7d0; }
.nmq-pi-done-icon { font-size: 18px; }
.nmq-pi-action-hint { font-size: 12px; color: #64748b; }

/* 혼합 PI 생성 버튼 */
.nmq-mixed-pi-btn {
    padding: 10px 22px;
    background: #1d4ed8;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
}
.nmq-mixed-pi-btn:hover:not(:disabled) { background: #1e40af; }
.nmq-mixed-pi-btn:disabled { opacity: .6; cursor: not-allowed; }

/* ── PI 재생성 액션 영역 (has-pi 상태) v2.8.1 ── */
.nmq-pi-action--has-pi {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    background: #f0fdf4;
    border-top-color: #bbf7d0;
}
.nmq-pi-action__existing {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #15803d;
    font-weight: 500;
}
.nmq-pi-action__new {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.nmq-mixed-pi-btn--reissue {
    background: #64748b;
}
.nmq-mixed-pi-btn--reissue:hover:not(:disabled) {
    background: #475569;
}

/* ================================================================
   MY QUOTES — Shipping & Trade Terms selector  (v2.9.0)
   ================================================================ */

.nmq-trade-terms {
    margin: 0 0 0 0;
    padding: 14px 20px 16px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
}
.nmq-trade-terms__header {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.nmq-trade-terms__title {
    font-size: 13px;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: .2px;
}
.nmq-trade-terms__hint {
    font-size: 12px;
    color: #64748b;
}
.nmq-trade-terms__fields {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
}
.nmq-trade-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.nmq-trade-field__label {
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: .4px;
}
.nmq-trade-radios {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.nmq-trade-radio {
    cursor: pointer;
}
.nmq-trade-radio input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.nmq-trade-radio__box {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border: 1.5px solid #cbd5e1;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #475569;
    background: #fff;
    transition: border-color .15s, background .15s, color .15s;
    white-space: nowrap;
}
.nmq-trade-radio input[type="radio"]:checked + .nmq-trade-radio__box {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}
.nmq-trade-radio__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1.5px solid #cbd5e1;
    background: #fff;
    flex-shrink: 0;
    transition: border-color .15s, background .15s;
}
.nmq-trade-radio input[type="radio"]:checked + .nmq-trade-radio__box .nmq-trade-radio__dot {
    border-color: #2563eb;
    background: #2563eb;
}

/* ── Create PI page — Shipping Method radio pills ── */
.npi-shipping-method-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
}
.npi-sm-radio {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 16px;
    border: 1.5px solid #cbd5e1;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 500;
    color: #475569;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}
.npi-sm-radio input[type="radio"] { display: none; }
.npi-sm-radio--selected,
.npi-sm-radio:has(input:checked) {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
}

/* ================================================================
   v2.10.0 — Payment Method pill note + create-pi auto fields
   ================================================================ */

/* PayPal fee note in My Quotes trade-terms */
.nmq-trade-fee-note {
    font-size: 10px;
    color: #94a3b8;
    font-weight: 400;
}

/* create-pi auto-mapped field display */
.npi-static-value {
    padding: 8px 12px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 13px;
    color: #334155;
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.npi-auto-note {
    font-size: 11px;
    color: #94a3b8;
    font-style: italic;
}

/* view-pi shipping terms note */
.npi-terms-note {
    font-size: 11px;
    color: #94a3b8;
    font-weight: 400;
    margin-left: 4px;
}

/* ================================================================
   v2.11.0 — Smart View PI button + View PI action bar cleanup
   ================================================================ */

/* Single "View PI / Create & View PI" button on My Quotes */
.nmq-view-pi-btn {
    padding: 11px 28px;
    background: #1d4ed8;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
    white-space: nowrap;
}
.nmq-view-pi-btn:hover:not(:disabled) { background: #1e40af; }
.nmq-view-pi-btn:disabled { opacity: .6; cursor: not-allowed; }

/* view-pi action bar — compact status row */
.npi-view-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e2e8f0;
}
.npi-view-header__meta {
    display: flex;
    align-items: center;
    gap: 10px;
}
.npi-view-pi-num {
    font-size: 13px;
    color: #64748b;
    font-weight: 500;
}

/* Primary action button (Edit & Confirm Order) */
.npi-action-btn--primary {
    background: #1d4ed8 !important;
    color: #fff !important;
    border: none !important;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.npi-action-btn--primary:hover { background: #1e40af !important; color:#fff !important; }

/* PI link in Recent RFQs table (v2.11.2) */
.nbd-pi-link { font-size:12px; font-weight:600; color:#2563eb; text-decoration:none; white-space:nowrap; }
.nbd-pi-link:hover { text-decoration:underline; }

/* ── nd-info-box : Buyer & Supplier dashboard info cards (v2.12.1) ── */
.nd-info-box {
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 18px;
    margin-bottom: 16px;
    width: 100%;
    box-sizing: border-box;
}
.nd-info-box h3 {
    font-size: 14px;
    font-weight: 700;
    color: #1e3a5f;
    margin: 0 0 10px;
    padding: 0;
}
.nd-info-box ul {
    margin: 0;
    padding-left: 0;
    list-style: none;
}
.nd-info-box li {
    margin-bottom: 6px;
    font-size: 13px;
    color: #374151;
    line-height: 1.5;
}
.nd-info-box li:last-child { margin-bottom: 0; }
@media (max-width: 600px) {
    .nd-info-box { padding: 14px 14px; }
}
