/* ============================================================
   Cucinotta B2B — Frontend & Admin styles
   ============================================================ */

:root {
  --b2b-horeca:      #C85C2B;  /* warm terracotta */
  --b2b-distributor: #1D3557;  /* navy */
  --b2b-export:      #2D6A4F;  /* forest green */
  --b2b-pending:     #856404;  /* amber */
  --b2b-radius:      8px;
  --b2b-border:      1px solid #E4E4E4;
  --b2b-shadow:      0 2px 12px rgba(0,0,0,.08);
}

/* ─── B2B Tier badges ─── */
.cd-b2b-badge {
  display: inline-flex !important;
  align-items: center !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  margin-right: 6px !important;
  vertical-align: middle !important;
}
.cd-b2b-badge--horeca      { background: #FBE9E3 !important; color: var(--b2b-horeca) !important; }
.cd-b2b-badge--distributor { background: #E8EDF3 !important; color: var(--b2b-distributor) !important; }
.cd-b2b-badge--export      { background: #E6F2EC !important; color: var(--b2b-export) !important; }

/* ─── Shop notices ─── */
.cd-b2b-shop-notice {
  padding: 12px 20px !important;
  border-radius: var(--b2b-radius) !important;
  margin-bottom: 24px !important;
  font-size: 14px !important;
  background: #FFF8F0 !important;
  border: 1px solid #FDDCB5 !important;
}
.cd-b2b-shop-notice--active {
  background: #E8EDF3 !important;
  border-color: var(--b2b-distributor) !important;
}
.cd-b2b-shop-notice--active.cd-b2b-shop-notice--horeca {
  background: #FBE9E3 !important;
  border-color: var(--b2b-horeca) !important;
}
.cd-b2b-shop-notice--active.cd-b2b-shop-notice--export {
  background: #E6F2EC !important;
  border-color: var(--b2b-export) !important;
}
.cd-b2b-shop-notice__inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}
.cd-b2b-shop-notice__left {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
}
.cd-b2b-shop-notice__right {
  font-size: 13px !important;
  color: inherit !important;
  opacity: .85 !important;
}
.cd-b2b-shop-notice__link {
  font-weight: 600 !important;
  text-decoration: none !important;
  opacity: 1 !important;
  margin-left: 10px !important;
  white-space: nowrap !important;
}
.cd-b2b-shop-notice__icon {
  font-weight: 700 !important;
  margin-right: 6px !important;
}
.cd-b2b-shop-notice--pending {
  background: #FFFBEA !important;
  border-color: #F0C040 !important;
}

/* ─── Notices (registration feedback etc.) ─── */
.cd-b2b-notice {
  padding: 16px 20px !important;
  border-radius: var(--b2b-radius) !important;
  margin-bottom: 24px !important;
  border-left: 4px solid transparent !important;
}
.cd-b2b-notice--success { background: #E6F2EC !important; border-color: var(--b2b-export) !important; }
.cd-b2b-notice--error   { background: #FBE9E3 !important; border-color: #D32F2F !important; }
.cd-b2b-notice--pending { background: #FFFBEA !important; border-color: #E0A800 !important; }
.cd-b2b-notice--info    { background: #E8EDF3 !important; border-color: var(--b2b-distributor) !important; }
.cd-b2b-notice p { margin: 0 !important; }

/* ─── Shipping progress bar ─── */
.cd-b2b-shipping {
  background: #F7F9FC !important;
  border: var(--b2b-border) !important;
  border-radius: var(--b2b-radius) !important;
  padding: 14px 18px !important;
  margin-bottom: 20px !important;
  font-size: 14px !important;
}
.cd-b2b-shipping p { margin: 0 0 8px !important; }
.cd-b2b-shipping__bar {
  height: 6px !important;
  background: #E4E4E4 !important;
  border-radius: 99px !important;
  overflow: hidden !important;
}
.cd-b2b-shipping__fill {
  height: 100% !important;
  background: var(--b2b-distributor) !important;
  border-radius: 99px !important;
  transition: width .4s ease !important;
}
.cd-b2b-shipping--free {
  background: #E6F2EC !important;
  border-color: var(--b2b-export) !important;
  font-weight: 600 !important;
  color: var(--b2b-export) !important;
}
.cd-b2b-shipping__icon { margin-right: 6px !important; }

/* ═══════════════════════════════════════════════
   REGISTRATION FORM
   ═══════════════════════════════════════════════ */

.cd-b2b-reg-wrap {
  max-width: 860px !important;
  margin: 0 auto !important;
  padding: 40px 20px !important;
}

.cd-b2b-reg-intro {
  text-align: center !important;
  margin-bottom: 48px !important;
}
.cd-b2b-reg-intro__title {
  font-size: 28px !important;
  font-family: 'Playfair Display', Georgia, serif !important;
  color: #1D3557 !important;
  margin-bottom: 12px !important;
}
.cd-b2b-reg-intro__sub {
  color: #555 !important;
  font-size: 16px !important;
  max-width: 560px !important;
  margin: 0 auto !important;
}

/* Tier preview cards */
.cd-b2b-tiers-preview {
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  margin-top: 32px !important;
  flex-wrap: wrap !important;
}
.cd-b2b-tier-card {
  background: #fff !important;
  border: 2px solid #E4E4E4 !important;
  border-radius: var(--b2b-radius) !important;
  padding: 18px 22px !important;
  text-align: center !important;
  min-width: 180px !important;
  flex: 1 !important;
  max-width: 220px !important;
}
.cd-b2b-tier-card strong { display: block !important; font-size: 15px !important; margin-bottom: 4px !important; }
.cd-b2b-tier-card span  { font-size: 12px !important; color: #777 !important; }
.cd-b2b-tier-card--horeca      { border-color: var(--b2b-horeca) !important; }
.cd-b2b-tier-card--distributor { border-color: var(--b2b-distributor) !important; }
.cd-b2b-tier-card--export      { border-color: var(--b2b-export) !important; }
.cd-b2b-tier-card--horeca strong      { color: var(--b2b-horeca) !important; }
.cd-b2b-tier-card--distributor strong { color: var(--b2b-distributor) !important; }
.cd-b2b-tier-card--export strong      { color: var(--b2b-export) !important; }

/* Form sections */
.cd-b2b-reg-form { display: flex !important; flex-direction: column !important; gap: 32px !important; }

.cd-b2b-reg-section {
  background: #fff !important;
  border: var(--b2b-border) !important;
  border-radius: var(--b2b-radius) !important;
  padding: 28px !important;
  box-shadow: var(--b2b-shadow) !important;
}
.cd-b2b-reg-section__title {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1D3557 !important;
  margin: 0 0 20px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid #F0F0F0 !important;
}

.cd-b2b-reg-section {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  align-items: start !important;
}
.cd-b2b-reg-section__title { grid-column: 1 / -1 !important; }
.cd-b2b-reg-row--full      { grid-column: 1 / -1 !important; }

.cd-b2b-reg-row { display: flex !important; flex-direction: column !important; gap: 4px !important; }
.cd-b2b-reg-row label { font-size: 13px !important; font-weight: 500 !important; color: #333 !important; }
.cd-b2b-reg-row abbr  { color: #C0392B !important; text-decoration: none !important; cursor: default !important; }

.cd-b2b-reg-row input,
.cd-b2b-reg-row textarea,
.cd-b2b-reg-row select {
  width: 100% !important;
  padding: 9px 12px !important;
  border: 1px solid #D0D5DD !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  color: #1A1A1A !important;
  background: #FAFAFA !important;
  transition: border-color .2s !important;
  box-sizing: border-box !important;
}
.cd-b2b-reg-row input[type="checkbox"] {
  -webkit-appearance: checkbox !important;
  appearance: auto !important;
  width: auto !important;
  height: auto !important;
  flex-shrink: 0 !important;
  background: initial !important;
  border: initial !important;
  border-radius: initial !important;
  padding: initial !important;
  box-shadow: none !important;
  cursor: pointer !important;
  opacity: 1 !important;
}
.cd-b2b-reg-row input[type="radio"] {
  -webkit-appearance: radio !important;
  appearance: auto !important;
  width: auto !important;
  height: auto !important;
  flex-shrink: 0 !important;
  background: initial !important;
  border: initial !important;
  border-radius: initial !important;
  padding: initial !important;
  box-shadow: none !important;
  cursor: pointer !important;
  opacity: 1 !important;
}

.cd-b2b-reg-row input:focus,
.cd-b2b-reg-row textarea:focus,
.cd-b2b-reg-row select:focus {
  border-color: #1D3557 !important;
  outline: none !important;
  background: #fff !important;
}

/* Business type selector */
.cd-b2b-type-selector {
  display: flex !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  grid-column: 1 / -1 !important;
}
.cd-b2b-type-option {
  flex: 1 !important;
  min-width: 200px !important;
  border: 2px solid #E4E4E4 !important;
  border-radius: var(--b2b-radius) !important;
  padding: 16px !important;
  cursor: pointer !important;
  transition: border-color .2s, background .2s !important;
}
.cd-b2b-type-option:hover { border-color: #AABBCC !important; background: #F7F9FC !important; }
.cd-b2b-type-option input[type="radio"] { position: absolute !important; opacity: 0 !important; }
.cd-b2b-type-option strong { display: block !important; font-size: 14px !important; margin-bottom: 4px !important; }
.cd-b2b-type-option span   { font-size: 12px !important; color: #777 !important; }
.cd-b2b-type-option:has(input:checked) { border-color: #1D3557 !important; background: #E8EDF3 !important; }
.cd-b2b-type-option--export:has(input:checked) { border-color: var(--b2b-export) !important; background: #E6F2EC !important; }

.cd-b2b-export-badge {
  background: var(--b2b-export) !important;
  color: #fff !important;
  font-size: 10px !important;
  padding: 2px 8px !important;
  border-radius: 99px !important;
  font-weight: 600 !important;
  vertical-align: middle !important;
  margin-left: 8px !important;
}

/* ── Sezioni condizionali per tipologia ─────────────────────── */
/* Hidden by default — display:none !important beats the grid !important
   from .cd-b2b-reg-section because this selector is more specific (2 classes) */
.cd-b2b-horeca-fields,
.cd-b2b-distributor-fields,
.cd-b2b-export-fields {
  display: none !important;
}
/* Shown when JS adds .cd-b2b--visible — two classes beat one */
.cd-b2b-horeca-fields.cd-b2b--visible,
.cd-b2b-distributor-fields.cd-b2b--visible,
.cd-b2b-export-fields.cd-b2b--visible {
  display: grid !important;
  animation: cd-b2b-reveal .25s ease both !important;
}
@keyframes cd-b2b-reveal {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.cd-b2b-export-fields {
  border-color: #B2DFCA !important;
  background: #F4FAF7 !important;
}
.cd-b2b-horeca-fields {
  border-color: #F5CDBA !important;
  background: #FFF8F5 !important;
}
.cd-b2b-distributor-fields {
  border-color: #B8C8DA !important;
  background: #F6F8FB !important;
}

/* ── Type option color per categoria ────────────────────────── */
.cd-b2b-type-option--horeca:has(input:checked) {
  border-color: var(--b2b-horeca) !important;
  background: #FBE9E3 !important;
}
.cd-b2b-type-option--distributor:has(input:checked) {
  border-color: var(--b2b-distributor) !important;
  background: #E8EDF3 !important;
}

/* ── Badge di tipo nella sezione ───────────────────────────── */
.cd-b2b-type-badge {
  font-size: 10px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  padding: 2px 8px !important;
  border-radius: 99px !important;
  vertical-align: middle !important;
  margin-left: 8px !important;
}
.cd-b2b-type-badge--horeca {
  background: var(--b2b-horeca) !important;
  color: #fff !important;
}
.cd-b2b-type-badge--distributor {
  background: var(--b2b-distributor) !important;
  color: #fff !important;
}

/* ── Checkbox e radio inline ────────────────────────────────── */
.cd-b2b-checkbox-label {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  cursor: pointer !important;
  font-size: 14px !important;
}
.cd-b2b-checkboxes-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  margin-top: 6px !important;
}
.cd-b2b-radio-group {
  display: flex !important;
  gap: 24px !important;
  margin-top: 6px !important;
}

/* ── Label opzionale ────────────────────────────────────────── */
.cd-b2b-optional {
  font-weight: 400 !important;
  color: #999 !important;
  font-size: 12px !important;
}

@media (max-width: 600px) {
  .cd-b2b-checkboxes-grid { grid-template-columns: 1fr !important; }
}

/* Submit */
.cd-b2b-reg-submit { text-align: center !important; }
.cd-b2b-submit-btn {
  background: #1D3557 !important;
  color: #fff !important;
  padding: 14px 40px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  border: none !important;
  cursor: pointer !important;
  transition: background .2s !important;
}
.cd-b2b-submit-btn:hover { background: #152843 !important; }
.cd-b2b-reg-privacy { margin-top: 12px !important; font-size: 12px !important; color: #888 !important; }

/* ═══════════════════════════════════════════════
   B2B DASHBOARD
   ═══════════════════════════════════════════════ */

.cd-b2b-dashboard { font-size: 14px !important; }

.cd-b2b-dash-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 20px 24px !important;
  background: #1D3557 !important;
  color: #fff !important;
  border-radius: var(--b2b-radius) !important;
  margin-bottom: 24px !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}
.cd-b2b-dash-header__name {
  font-size: 20px !important;
  margin: 6px 0 4px !important;
  color: #fff !important;
  font-family: 'Playfair Display', Georgia, serif !important;
}
.cd-b2b-dash-header__meta { font-size: 13px !important; color: #BCC9D8 !important; margin: 0 !important; }

.cd-b2b-dash-stats {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
  margin-bottom: 28px !important;
}
.cd-b2b-dash-stat {
  background: #fff !important;
  border: var(--b2b-border) !important;
  border-radius: var(--b2b-radius) !important;
  padding: 16px !important;
  text-align: center !important;
  box-shadow: var(--b2b-shadow) !important;
}
.cd-b2b-dash-stat strong { display: block !important; font-size: 22px !important; color: #1D3557 !important; font-family: 'Playfair Display', serif !important; }
.cd-b2b-dash-stat span   { font-size: 12px !important; color: #777 !important; }

.cd-b2b-dash-actions h3,
.cd-b2b-dash-quickorder h3,
.cd-b2b-dash-orders h3,
.cd-b2b-dash-export h3 {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #1D3557 !important;
  margin-bottom: 16px !important;
}

.cd-b2b-dash-actions__grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
  margin-bottom: 28px !important;
}
.cd-b2b-action-card {
  background: #fff !important;
  border: var(--b2b-border) !important;
  border-radius: var(--b2b-radius) !important;
  padding: 20px 16px !important;
  text-align: center !important;
  text-decoration: none !important;
  color: inherit !important;
  box-shadow: var(--b2b-shadow) !important;
  transition: border-color .2s, box-shadow .2s !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
.cd-b2b-action-card:hover { border-color: #1D3557 !important; box-shadow: 0 4px 16px rgba(29,53,87,.12) !important; }
.cd-b2b-action-card__icon { font-size: 26px !important; }
.cd-b2b-action-card strong { font-size: 13px !important; color: #1D3557 !important; }
.cd-b2b-action-card span   { font-size: 11px !important; color: #888 !important; }

/* Quick Order */
.cd-b2b-dash-quickorder,
.cd-b2b-quick-order-standalone {
  background: #fff !important;
  border: var(--b2b-border) !important;
  border-radius: var(--b2b-radius) !important;
  padding: 24px !important;
  box-shadow: var(--b2b-shadow) !important;
  margin-bottom: 28px !important;
}
.cd-b2b-dash-quickorder__desc { font-size: 13px !important; color: #666 !important; margin-bottom: 16px !important; }

.cd-b2b-quick-row {
  display: flex !important;
  gap: 10px !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}
.cd-b2b-sku-input { flex: 3 !important; padding: 8px 10px !important; border: 1px solid #D0D5DD !important; border-radius: 4px !important; font-size: 13px !important; }
.cd-b2b-qty-input { flex: 1 !important; padding: 8px 10px !important; border: 1px solid #D0D5DD !important; border-radius: 4px !important; font-size: 13px !important; max-width: 80px !important; }
.cd-b2b-sku-status { font-size: 12px !important; color: var(--b2b-export) !important; min-width: 60px !important; }
.cd-b2b-sku-status--error { color: #D32F2F !important; }

.cd-b2b-row-subtotal {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #333 !important;
  min-width: 70px !important;
  text-align: right !important;
  white-space: nowrap !important;
}
.cd-b2b-quick-total-row {
  margin-top: 14px !important;
  padding: 12px 14px !important;
  background: #F0F4F8 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  color: #444 !important;
}
.cd-b2b-grand-total {
  font-size: 17px !important;
  color: #1D3557 !important;
  margin-left: 6px !important;
}
.cd-b2b-quick-total-note {
  display: block !important;
  font-size: 11px !important;
  color: #888 !important;
  margin-top: 3px !important;
}
.cd-b2b-quick-controls { display: flex !important; gap: 10px !important; margin-top: 12px !important; }
.cd-b2b-quick-feedback {
  margin-top: 12px !important;
  padding: 12px !important;
  border-radius: 6px !important;
  font-size: 13px !important;
}
.cd-b2b-quick-feedback--ok    { background: #E6F2EC !important; color: var(--b2b-export) !important; }
.cd-b2b-quick-feedback--error { background: #FBE9E3 !important; color: #D32F2F !important; }

/* Orders table */
.cd-b2b-dash-orders { margin-bottom: 28px !important; }
.cd-b2b-orders-table { width: 100% !important; border-collapse: collapse !important; }
.cd-b2b-orders-table th,
.cd-b2b-orders-table td {
  padding: 10px 12px !important;
  text-align: left !important;
  border-bottom: 1px solid #F0F0F0 !important;
  font-size: 13px !important;
}
.cd-b2b-orders-table th { font-weight: 600 !important; color: #555 !important; background: #F7F9FC !important; }
.cd-b2b-order-status {
  padding: 3px 8px !important;
  border-radius: 99px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  background: #E4E4E4 !important;
  color: #333 !important;
}
.cd-b2b-order-status--processing { background: #E8EDF3 !important; color: var(--b2b-distributor) !important; }
.cd-b2b-order-status--completed  { background: #E6F2EC !important; color: var(--b2b-export) !important; }

.cd-b2b-empty { color: #777 !important; font-style: italic !important; }

.cd-b2b-def-list { display: grid !important; grid-template-columns: max-content 1fr !important; gap: 6px 16px !important; }
.cd-b2b-def-list dt { font-weight: 600 !important; color: #555 !important; font-size: 13px !important; }
.cd-b2b-def-list dd { margin: 0 !important; font-size: 13px !important; }

/* ═══════════════════════════════════════════════
   ADMIN PANEL
   ═══════════════════════════════════════════════ */

.cd-b2b-admin-wrap h1 { margin-bottom: 16px !important; }
.cd-b2b-admin-nav { display: flex !important; gap: 8px !important; margin-bottom: 20px !important; flex-wrap: wrap !important; }
.cd-b2b-admin-table td { vertical-align: top !important; padding: 10px 8px !important; }
.cd-b2b-admin-actions { display: flex !important; flex-wrap: wrap !important; gap: 4px !important; }
.cd-b2b-approve { color: var(--b2b-export) !important; border-color: var(--b2b-export) !important; }
.cd-b2b-reject  { color: #D32F2F !important; border-color: #D32F2F !important; }

.cd-b2b-status {
  display: inline-block !important;
  padding: 3px 8px !important;
  border-radius: 99px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}
.cd-b2b-status--pending_review    { background: #FFFBEA !important; color: var(--b2b-pending) !important; }
.cd-b2b-status--commercial_evaluation { background: #E8EDF3 !important; color: var(--b2b-distributor) !important; }
.cd-b2b-status--info_requested    { background: #FFF0E0 !important; color: #A0522D !important; }
.cd-b2b-status--approved          { background: #E6F2EC !important; color: var(--b2b-export) !important; }
.cd-b2b-status--rejected          { background: #FDEDED !important; color: #D32F2F !important; }

.cd-b2b-admin-empty {
  background: #F7F9FC !important;
  border: var(--b2b-border) !important;
  border-radius: var(--b2b-radius) !important;
  padding: 32px !important;
  text-align: center !important;
  color: #555 !important;
}

/* ═══════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════ */

@media (max-width: 768px) {
  .cd-b2b-reg-section          { grid-template-columns: 1fr !important; }
  .cd-b2b-dash-stats           { grid-template-columns: repeat(2, 1fr) !important; }
  .cd-b2b-dash-actions__grid   { grid-template-columns: repeat(2, 1fr) !important; }
  .cd-b2b-tiers-preview        { flex-direction: column !important; align-items: stretch !important; }
  .cd-b2b-tier-card            { max-width: 100% !important; }
  .cd-b2b-dash-header          { flex-direction: column !important; align-items: flex-start !important; }
  .cd-b2b-type-selector        { flex-direction: column !important; }
  .cd-b2b-type-option          { min-width: auto !important; }
}

@media (max-width: 480px) {
  .cd-b2b-dash-stats           { grid-template-columns: 1fr !important; }
  .cd-b2b-dash-actions__grid   { grid-template-columns: 1fr !important; }
  .cd-b2b-quick-row            { flex-wrap: wrap !important; }
}
