/* Neptune Partner shell.
   Same identity as the App Manager (brand_portal_dashboard.html): same token
   values, same topnav/sidebar geometry, same dark ramp. Every shell class is
   prefixed `pt-` because the store sections rendered inside it still ship
   their own `.sidebar`, `.main-content`, `.card` rules.

   Token block is scoped to `html.pt` (specificity 0,1,1) so it beats the
   `:root` (0,1,0) blocks the legacy store template declares. */

html.pt {
  --paper: #FFFFFF;
  --paper-2: #F8FAFC;
  --ink: #0F172A;
  --ink-2: #334155;
  --muted: #64748B;
  --accent-blue: #05213D;
  --accent-red: #701111;
  --surface-lighter: #F1F5F9;
  --border-subtle: #E2E8F0;
  --border-strong: #CBD5E1;
  --bg: var(--paper-2);
  --font-main: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-display: 'Libre Baskerville', Georgia, serif;
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.14);
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 12px;
  --radius-full: 9999px;
  --success: #166534;
  --success-bg: #DCFCE7;
  --warning: #B45309;
  --warning-bg: #FEF3C7;
  --danger: #B91C1C;
  --danger-bg: #FEE2E2;
  --info-bg: #E0E7FF;
  --topnav-h: 56px;
  --on-accent: #FFFFFF;
  --accent-glow: none;
  --accent-glow-soft: none;
  --focus-ring: 0 0 0 3px rgba(5, 33, 61, 0.12);
  /* Names the legacy store template reads. */
  --text-primary: var(--ink);
  --text-secondary: var(--muted);
  --gray-100: var(--surface-lighter);
  --gray-200: var(--border-subtle);
  --gray-300: var(--border-strong);
  color-scheme: light;
}

html.pt[data-theme="dark"] {
  --paper: #0F172A;
  --paper-2: #020617;
  --ink: #E2E8F0;
  --ink-2: #94A3B8;
  --muted: #94A3B8;
  --accent-blue: #C7D2DC;
  --accent-red: #F87171;
  --surface-lighter: #1E293B;
  --border-subtle: #1E293B;
  --border-strong: #334155;
  --success: #6EE7B7;
  --success-bg: rgba(16, 185, 129, 0.14);
  --warning: #FCD34D;
  --warning-bg: rgba(245, 158, 11, 0.14);
  --danger: #FCA5A5;
  --danger-bg: rgba(239, 68, 68, 0.14);
  --info-bg: rgba(129, 140, 248, 0.16);
  --on-accent: #0F172A;
  --accent-glow: 0 0 14px rgba(199, 210, 220, 0.32), 0 0 38px rgba(199, 210, 220, 0.16);
  --accent-glow-soft: 0 0 10px rgba(199, 210, 220, 0.22);
  --focus-ring: 0 0 0 3px rgba(199, 210, 220, 0.22);
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.25);
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.35);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.55);
  color-scheme: dark;
}

html.pt, html.pt body {
  background: var(--paper-2);
  color: var(--ink);
  font-family: var(--font-main);
}
html.pt body { margin: 0; min-height: 100vh; }

/* ---------- Top nav ---------- */
.pt-topnav {
  position: sticky; top: 0; z-index: 1030;
  display: flex; align-items: center; gap: 16px;
  height: var(--topnav-h); padding: 0 16px;
  background: var(--paper); border-bottom: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-xs);
}
.pt-brand { display: flex; align-items: baseline; gap: 10px; min-width: 0; text-decoration: none; color: inherit; }
.pt-brand:hover { color: inherit; }
.pt-brand-mark {
  font-family: 'Lobster', var(--font-display); font-weight: 400; font-size: 22px; line-height: 1; letter-spacing: .005em;
  color: var(--accent-blue); white-space: nowrap;
}
.pt-brand-name {
  font-size: 13px; color: var(--muted); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 28vw;
}
.pt-topnav-actions { margin-inline-start: auto; display: flex; align-items: center; gap: 6px; }
.pt-iconbtn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 40px; height: 40px; padding: 0 10px;
  border: 1px solid transparent; border-radius: var(--radius-md);
  background: transparent; color: var(--ink); cursor: pointer;
  font: 600 12px var(--font-main);
}
.pt-iconbtn:hover { background: var(--surface-lighter); }
.pt-iconbtn:focus-visible, .pt-avatar:focus-visible, .pt-side-link:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.pt-iconbtn svg, .pt-side-icon svg, .pt-menu svg { width: 18px; height: 18px; }
.pt-burger { display: none; }
.pt-avatar {
  width: 36px; height: 36px; border-radius: var(--radius-full);
  border: 1px solid var(--border-subtle); background: var(--accent-blue); color: var(--on-accent);
  font: 700 14px var(--font-main); cursor: pointer;
}
.pt-menu-wrap { position: relative; }
.pt-menu {
  position: absolute; top: calc(100% + 6px); inset-inline-end: 0; z-index: 1040;
  min-width: 190px; padding: 6px;
  background: var(--paper); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
}
.pt-menu[hidden] { display: none; }
.pt-menu button, .pt-menu a {
  display: flex; align-items: center; gap: 10px; width: 100%;
  min-height: 40px; padding: 8px 10px; border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--ink); text-align: start; text-decoration: none;
  font: 500 14px var(--font-main); cursor: pointer;
}
.pt-menu button:hover, .pt-menu a:hover { background: var(--surface-lighter); color: var(--ink); }
.pt-menu button.is-active { color: var(--accent-blue); font-weight: 700; }
.pt-menu .is-danger, .pt-menu .is-danger:hover { color: var(--danger); }
.pt-menu-head { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px 10px; border-bottom: 1px solid var(--border-subtle); margin-bottom: 6px; }
.pt-menu-head strong { font-size: 14px; }
.pt-menu-head span { font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }

/* ---------- Layout ---------- */
.pt-layout {
  display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 12px;
  min-height: calc(100vh - var(--topnav-h)); padding: 12px;
}
.pt-sidebar {
  position: sticky; top: calc(var(--topnav-h) + 12px); align-self: start;
  max-height: calc(100vh - var(--topnav-h) - 24px); overflow-y: auto;
  padding: 14px; background: var(--paper); color: var(--ink);
  border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs);
}
.pt-nav-group + .pt-nav-group { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border-subtle); }
.pt-nav-title {
  padding: 0 12px 8px; font-size: 11px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; color: var(--muted);
}
.pt-side-link {
  display: flex; align-items: center; gap: 10px;
  min-height: 44px; padding: 9px 12px; margin-bottom: 4px; box-sizing: border-box;
  border: 1px solid transparent; border-radius: var(--radius-md);
  color: var(--ink); text-decoration: none; font-size: 14px;
  transition: background .15s, border-color .15s, color .15s;
}
.pt-side-link:hover { background: var(--surface-lighter); border-color: var(--border-subtle); color: var(--ink); }
.pt-side-link.active { background: var(--accent-blue); border-color: var(--accent-blue); color: var(--on-accent); box-shadow: var(--accent-glow-soft); }
.pt-side-icon { flex: 0 0 18px; width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; }
.pt-side-label { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-side-badge {
  flex: 0 0 auto; min-width: 20px; height: 20px; padding: 0 6px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--radius-full); background: var(--accent-red); color: #fff;
  font-size: 11px; font-weight: 700;
}
html.pt[data-theme="dark"] .pt-side-badge { color: #0F172A; }
.pt-main { min-width: 0; }
.pt-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 4px 2px 14px; }
.pt-page-head h1 {
  margin: 0; font-family: var(--font-display); font-size: 26px; font-weight: 700;
  color: var(--accent-blue); letter-spacing: -.01em;
}
.pt-page-head p { margin: 4px 0 0; font-size: 14px; color: var(--muted); }
.pt-store-link { font-size: 13px; font-weight: 600; color: var(--accent-blue); text-decoration: none; }
.pt-store-link:hover { text-decoration: underline; color: var(--accent-blue); }
.pt-backdrop { display: none; }

/* ---------- Legacy store chrome the shell replaces ---------- */
.pt .main-container { display: block; min-height: 0; background: transparent; padding: 0; }
.pt .main-container > .sidebar,
.pt .mobile-management-shell,
.pt .mobile-bottom-dock,
.pt .page-header-elegant,
.pt .mobile-section-indicator-elegant,
.pt .neptune-footer { display: none !important; }
.pt .main-content {
  margin: 0 !important; padding: 0 !important;
  width: auto !important; max-width: none !important;
}

/* Sections not yet redrawn for the partner identity keep their light
   palette in dark mode: half-converted colours are worse than a light card. */
html.pt[data-theme="dark"] .pt-legacy {
  --paper: #FFFFFF; --paper-2: #F8FAFC; --ink: #0F172A; --ink-2: #334155; --muted: #64748B;
  --accent-blue: #05213D; --accent-red: #701111; --surface-lighter: #F1F5F9;
  --border-subtle: #E2E8F0; --border-strong: #CBD5E1; --on-accent: #FFFFFF;
  --success: #166534; --warning: #B45309; --danger: #B91C1C;
  /* Aliases are resolved where they are declared (on <html>, dark), so they
     have to be restated here or they keep the dark values. */
  --text-primary: #0F172A; --text-secondary: #64748B;
  --gray-100: #F1F5F9; --gray-200: #E2E8F0; --gray-300: #CBD5E1;
  --sm-surface: #FFFFFF; --sm-border: #E2E8F0; --sm-muted-bg: #F8FAFC;
  --sm-foreground: #0F172A; --sm-muted-foreground: #64748B; --sm-ring: rgba(5, 33, 61, 0.12);
  --primary: #05213D; --focus-ring: 0 0 0 3px rgba(5, 33, 61, 0.12);
  color-scheme: light;
  color: var(--ink); background: var(--paper);
  border-radius: var(--radius-lg); padding: 14px;
}

/* ---------- Shared components for redrawn sections ---------- */
.pt-card {
  background: var(--paper); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); padding: 16px; margin-bottom: 12px;
  box-shadow: var(--shadow-xs);
}

/* ---------- Mobile: sidebar becomes a drawer ---------- */
@media (max-width: 900px) {
  html.pt, html.pt body { overflow-x: clip; }
  .pt-burger { display: inline-flex; }
  .pt-topnav { gap: 8px; padding: 0 10px; }
  .pt-brand-name { display: none; }
  .pt-layout { grid-template-columns: minmax(0, 1fr); padding: 8px; }
  .pt-sidebar {
    position: fixed; top: 0; bottom: 0; inset-inline-start: 0; z-index: 1050;
    width: min(300px, 86vw); max-height: none; border-radius: 0;
    transform: translateX(-105%); transition: transform .2s ease;
  }
  html[dir="rtl"] .pt-sidebar { transform: translateX(105%); }
  .pt-sidebar.is-open, html[dir="rtl"] .pt-sidebar.is-open { transform: none; }
  .pt-backdrop:not([hidden]) {
    display: block; position: fixed; inset: 0; z-index: 1045;
    background: rgba(2, 6, 23, 0.45);
  }
  body.pt-drawer-open { overflow: hidden; }
  .pt-page-head h1 { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .pt-sidebar, .pt-side-link { transition: none; }
}

/* =====================================================================
   Store sections redrawn for the partner identity (PARTNER_READY_TABS).
   The legacy template stacks three layers (inline section styles, a V2
   token layer, a "strict polish" layer full of !important). Each rule
   below is prefixed `html.pt .main-content` so it outranks all three
   without editing them: the marketplace page keeps rendering unchanged.
   ===================================================================== */

/* The V2 layer reads these; pointing them at the partner ramp converts
   every surface built on them, light and dark. */
html.pt {
  --sm-surface: var(--paper);
  --sm-border: var(--border-subtle);
  --sm-muted-bg: var(--surface-lighter);
  --sm-foreground: var(--ink);
  --sm-muted-foreground: var(--muted);
  --sm-ring: rgba(5, 33, 61, 0.12);
  --primary: var(--accent-blue);
}
html.pt[data-theme="dark"] { --sm-ring: rgba(199, 210, 220, 0.22); }

/* Buttons: same two variants as the App Manager (navy primary, quiet outline). */
html.pt .main-content :is(.btn-elegant-primary, .btn-primary-elegant, .btn-design-primary, .add-product, .btn-save-message, .copy-btn-elegant, .btn-add-rel, .import-btn) {
  --sm-btn-bg: var(--accent-blue); --sm-btn-text: var(--on-accent); --sm-btn-border: var(--accent-blue);
  --sm-btn-bg-hover: var(--accent-blue); --sm-btn-border-hover: var(--accent-blue); --sm-btn-text-hover: var(--on-accent);
  --sm-btn-shadow: var(--accent-glow-soft);
}
html.pt .main-content :is(.btn-elegant-primary, .btn-primary-elegant, .btn-design-primary, .add-product, .btn-save-message, .copy-btn-elegant, .btn-add-rel, .import-btn):hover { filter: brightness(1.1); }
html.pt .main-content :is(.btn-design-outline, .btn-text-elegant, .filter-btn, .tab-btn, .theme-filter-btn, .bulk-close-btn, .call-btn-elegant, .bulk-btn, .action-btn-elegant) {
  --sm-btn-bg: var(--paper); --sm-btn-text: var(--ink-2); --sm-btn-border: var(--border-strong);
  --sm-btn-bg-hover: var(--surface-lighter); --sm-btn-border-hover: var(--border-strong); --sm-btn-text-hover: var(--ink);
  --sm-btn-shadow: none;
}
html.pt .main-content :is(.filter-btn, .tab-btn, .theme-filter-btn).active {
  --sm-btn-bg: var(--accent-blue); --sm-btn-text: var(--on-accent); --sm-btn-border: var(--accent-blue);
  --sm-btn-bg-hover: var(--accent-blue); --sm-btn-border-hover: var(--accent-blue); --sm-btn-text-hover: var(--on-accent);
}

/* Status tags: one semantic set for every section. */
html.pt .main-content .data-tag { background: var(--surface-lighter); color: var(--ink-2); }
html.pt .main-content .data-tag.warning { background: var(--warning-bg); color: var(--warning); }
html.pt .main-content .data-tag.success { background: var(--success-bg); color: var(--success); }
html.pt .main-content .data-tag.danger { background: var(--danger-bg); color: var(--danger); }

@media (max-width: 768px) {
  html.pt .main-content .dashboard-elegant :is(.metric-value, .revenue-value) { font-size: 20px; }
}

/* ---------- Products ---------- */
html.pt .main-content :is(.products-header, .products-filter-tabs, .bulk-actions-toolbar, .bulk-actions-content) {
  background: var(--paper) !important; border: 1px solid var(--border-subtle) !important;
  border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-xs) !important; color: var(--ink);
}
html.pt .main-content .bulk-actions-toolbar .bulk-actions-content { border: 0 !important; box-shadow: none !important; }
html.pt .main-content .products-header { justify-content: flex-end; }
/* The shell header already names the section. */
html.pt .main-content .products-header > h2 { display: none; }
html.pt .main-content .bulk-selection-info { color: var(--ink-2) !important; }

html.pt .main-content .filter-tab {
  background: var(--paper) !important; color: var(--ink-2) !important;
  border: 1px solid var(--border-strong) !important; border-radius: var(--radius-full) !important;
}
html.pt .main-content .filter-tab:hover { background: var(--surface-lighter) !important; color: var(--ink) !important; }
html.pt .main-content .filter-tab.active {
  background: var(--accent-blue) !important; color: var(--on-accent) !important; border-color: var(--accent-blue) !important;
  box-shadow: var(--accent-glow-soft);
}

html.pt .main-content .product-card {
  background: var(--paper) !important; border: 1px solid var(--border-subtle) !important;
  border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-xs) !important; color: var(--ink);
}
html.pt .main-content .product-card:hover { border-color: var(--border-strong) !important; box-shadow: var(--shadow-md) !important; }
html.pt .main-content .product-card.selected { border-color: var(--accent-blue) !important; box-shadow: var(--focus-ring) !important; }
html.pt .main-content .product-card :is(h4, .product-price) { color: var(--ink) !important; }
html.pt .main-content .product-card .stock-warning { color: var(--muted) !important; }
html.pt .main-content .product-image-link { background: var(--surface-lighter) !important; border-radius: var(--radius-md); }
html.pt .main-content .draft-product-card .draft-placeholder { background: var(--surface-lighter) !important; color: var(--muted) !important; border-color: var(--border-strong) !important; }
html.pt .main-content .product-checkbox { accent-color: var(--accent-blue); }

/* Badges: semantic set, readable in both themes. */
html.pt .main-content .product-card .badge,
html.pt .main-content .product-card .stock { border-radius: var(--radius-full) !important; font-weight: 600; }
html.pt .main-content .product-card .badge.bg-secondary { background: var(--surface-lighter) !important; color: var(--ink-2) !important; }
html.pt .main-content .product-card .badge.bg-success { background: var(--success-bg) !important; color: var(--success) !important; }
html.pt .main-content .product-card .badge.bg-warning,
html.pt .main-content .product-card .badge.bg-danger { background: var(--warning-bg) !important; color: var(--warning) !important; }
html.pt .main-content .product-card .stock { background: var(--danger-bg) !important; color: var(--danger) !important; }
html.pt .main-content .status-badge { background: var(--paper) !important; border: 1px solid var(--border-subtle); }
html.pt .main-content .status-badge.available { color: var(--success) !important; }
html.pt .main-content .status-badge.unavailable { color: var(--danger) !important; }
html.pt .main-content .status-badge.homepage { color: var(--accent-blue) !important; }

html.pt .main-content .product-actions .btn-edit {
  background: var(--surface-lighter) !important; color: var(--ink) !important; border: 1px solid var(--border-subtle) !important;
}
html.pt .main-content .product-actions .btn-delete {
  background: var(--danger-bg) !important; color: var(--danger) !important; border: 1px solid transparent !important;
}
html.pt .main-content .product-actions :is(.btn-edit, .btn-delete):hover { filter: brightness(1.08); }

/* Import and bulk-category modals */
html.pt .main-content :is(.import-modal-content, .import-modal-body, .import-modal-header) {
  background: var(--paper) !important; color: var(--ink) !important; border-color: var(--border-subtle) !important;
}
html.pt .main-content .import-modal-content { border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-lg) !important; }
html.pt .main-content .import-modal-header :is(h3, .close-btn) { color: var(--ink) !important; }
html.pt .main-content :is(.scraper-info, .platform-detected, .import-progress, .import-results, .stat-card, .progress-steps .step) {
  background: var(--surface-lighter) !important; color: var(--ink) !important; border-color: var(--border-subtle) !important;
}
html.pt .main-content :is(.info-text, .progress-hint, .scraper-info p, .step-num + span) { color: var(--muted) !important; }
html.pt .main-content .progress-bar-wrapper { background: var(--border-subtle) !important; }
html.pt .main-content .progress-bar { background: var(--accent-blue) !important; }

/* Form fields inside redrawn sections */
html.pt .main-content :is(.form-control, .form-select, input[type="text"], input[type="url"], input[type="number"], input[type="search"], input[type="email"], select, textarea) {
  background: var(--paper); color: var(--ink); border-color: var(--border-strong);
}
html.pt .main-content :is(.form-control, .form-select, input, select, textarea):focus {
  border-color: var(--accent-blue); box-shadow: var(--focus-ring); outline: none;
}
html.pt .main-content ::placeholder { color: var(--muted); opacity: 1; }

/* ---------- Orders ---------- */
html.pt .main-content .orders-section-elegant {
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important;
}
/* The shell header already names the section. */
html.pt .main-content .orders-section-elegant > .section-heading { display: none; }
html.pt .main-content :is(.order-metric-elegant, .orders-toolbar-elegant, .order-row-elegant, .delivery-bulk-bar, .empty-state-elegant, .no-results-elegant) {
  background: var(--paper) !important; color: var(--ink) !important;
  border: 1px solid var(--border-subtle) !important; border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-xs) !important;
}
html.pt .main-content .orders-metrics-elegant { gap: 12px; background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
html.pt .main-content .order-metric-elegant { text-align: start; padding: 14px 16px !important; }
html.pt .main-content .order-metric-elegant.highlight { border-inline-start: 3px solid var(--accent-red) !important; }
html.pt .main-content .metric-label-elegant { color: var(--muted) !important; font-size: 11px; font-weight: 600; letter-spacing: .05em; }
html.pt .main-content .metric-value-elegant { color: var(--ink) !important; font-size: 24px; font-weight: 700; }

html.pt .main-content .orders-toolbar-elegant :is(input, select) {
  background: var(--paper) !important; color: var(--ink) !important; border: 1px solid var(--border-strong) !important;
}
html.pt .main-content .order-row-elegant.is-new { border-inline-start: 3px solid var(--accent-blue) !important; }
html.pt .main-content :is(.order-row-header, .order-row-body, .order-row-footer) {
  background: transparent !important; border-color: var(--border-subtle) !important;
}
html.pt .main-content :is(.order-num, .customer-name-elegant, .item-row-elegant, .amount-value-elegant, .order-id-elegant) { color: var(--ink) !important; }
html.pt .main-content :is(.order-date-elegant, .customer-phone-elegant, .items-heading, .amount-label, .commission-note, .item-qty-elegant) { color: var(--muted) !important; }
html.pt .main-content .customer-initial { background: var(--surface-lighter) !important; color: var(--ink-2) !important; }
html.pt .main-content .new-tag-elegant { background: var(--accent-blue) !important; color: var(--on-accent) !important; }

html.pt .main-content .status-tag-order { background: var(--surface-lighter) !important; color: var(--ink-2) !important; border: 0 !important; }
html.pt .main-content .status-tag-order.pending { background: var(--warning-bg) !important; color: var(--warning) !important; }
html.pt .main-content .status-tag-order.processing { background: var(--info-bg) !important; color: var(--accent-blue) !important; }
html.pt .main-content .status-tag-order.shipped { background: var(--surface-lighter) !important; color: var(--ink) !important; }
html.pt .main-content .status-tag-order.delivered { background: var(--success-bg) !important; color: var(--success) !important; }
html.pt .main-content .status-tag-order.cancelled { background: var(--danger-bg) !important; color: var(--danger) !important; }
html.pt .main-content .delivery-sent-badge { background: var(--success-bg) !important; color: var(--success) !important; }

/* Order progress */
html.pt .main-content .timeline-step-elegant {
  background: var(--paper) !important; color: var(--muted) !important; border: 1px solid var(--border-strong) !important;
}
html.pt .main-content .timeline-step-elegant.done { background: var(--accent-blue) !important; color: var(--on-accent) !important; border-color: var(--accent-blue) !important; }
html.pt .main-content .timeline-line-elegant { background: var(--border-strong) !important; }
html.pt .main-content .timeline-line-elegant.done { background: var(--accent-blue) !important; }

/* Order actions: one primary, the rest quiet, cancel in red. */
html.pt .main-content .order-actions-elegant :is(.btn-action-minimal, .action-btn-elegant, .btn-delivery, .btn-tracking) {
  background: var(--paper) !important; color: var(--ink) !important; border: 1px solid var(--border-strong) !important;
  border-radius: var(--radius-md) !important; box-shadow: none !important;
}
html.pt .main-content .order-actions-elegant :is(.btn-action-minimal, .action-btn-elegant).primary {
  background: var(--accent-blue) !important; color: var(--on-accent) !important; border-color: var(--accent-blue) !important;
}
html.pt .main-content .order-actions-elegant :is(.btn-action-minimal, .action-btn-elegant).danger {
  background: var(--danger-bg) !important; color: var(--danger) !important; border-color: transparent !important;
}
html.pt .main-content .order-actions-elegant :is(.btn-action-minimal, .action-btn-elegant):hover { filter: brightness(1.08); }

/* Order modal */
html.pt .main-content :is(.modal-minimal, .modal-header-minimal, .modal-body-minimal, .modal-footer-minimal) {
  background: var(--paper) !important; color: var(--ink) !important; border-color: var(--border-subtle) !important;
}
html.pt .main-content .modal-minimal { border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-lg) !important; }
html.pt .main-content .modal-close-minimal { color: var(--ink) !important; background: transparent !important; }

/* ---------- Space switcher (store / app) ---------- */
.pt-spaces {
  display: inline-flex; gap: 2px; padding: 3px; margin-inline-start: 8px;
  background: var(--surface-lighter); border: 1px solid var(--border-subtle); border-radius: var(--radius-full);
}
.pt-space {
  display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 14px;
  border-radius: var(--radius-full); color: var(--ink-2); text-decoration: none;
  font-size: 13px; font-weight: 600; white-space: nowrap;
}
.pt-space svg { width: 16px; height: 16px; }
.pt-space:hover { color: var(--ink); }
.pt-space.is-active { background: var(--paper); color: var(--ink); box-shadow: var(--shadow-xs); }
.pt-space:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.pt-spaces--drawer { display: none; }
@media (max-width: 900px) {
  .pt-topnav > .pt-spaces { display: none; }
  .pt-spaces--drawer { display: flex; width: 100%; margin: 0 0 14px; box-sizing: border-box; }
  .pt-spaces--drawer .pt-space { flex: 1 1 0; justify-content: center; padding: 0 8px; }
}

/* ---------- Sign-in and space chooser ---------- */
.pt-center {
  min-height: calc(100vh - var(--topnav-h)); box-sizing: border-box;
  display: grid; place-items: center; padding: 32px 16px;
}
.pt-auth { width: min(420px, 100%); }
.pt-auth .pt-card { padding: 28px; }
.pt-auth h1, .pt-choose h1 {
  margin: 0 0 6px; font-family: var(--font-display); font-size: 26px; font-weight: 700; color: var(--accent-blue);
}
.pt-lead { margin: 0 0 22px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.pt-social { display: grid; gap: 10px; }
.pt-social a {
  display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px;
  border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  background: var(--paper); color: var(--ink); text-decoration: none; font-weight: 600; font-size: 14px;
}
.pt-social a:hover { background: var(--surface-lighter); }
.pt-social svg { width: 18px; height: 18px; }
.pt-or { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--muted); font-size: 12px; }
.pt-or::before, .pt-or::after { content: ''; flex: 1; height: 1px; background: var(--border-subtle); }
.pt-field { display: grid; gap: 6px; margin-bottom: 14px; }
.pt-field label { font-size: 13px; font-weight: 600; color: var(--ink-2); }
.pt-field input {
  width: 100%; box-sizing: border-box; min-height: 44px; padding: 10px 12px;
  border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  background: var(--paper); color: var(--ink); font: 15px var(--font-main);
}
.pt-field input:focus { outline: none; border-color: var(--accent-blue); box-shadow: var(--focus-ring); }
.pt-field-row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.pt-link { color: var(--accent-blue); font-size: 13px; font-weight: 600; text-decoration: none; }
.pt-link:hover { text-decoration: underline; color: var(--accent-blue); }
.pt-error {
  margin: 0 0 14px; padding: 10px 12px; border-radius: var(--radius-sm);
  background: var(--danger-bg); color: var(--danger); font-size: 13px; line-height: 1.45;
}
.pt-btn-primary {
  width: 100%; min-height: 46px; border: 1px solid var(--accent-blue); border-radius: var(--radius-md);
  background: var(--accent-blue); color: var(--on-accent); font: 600 15px var(--font-main);
  cursor: pointer; box-shadow: var(--accent-glow-soft);
}
.pt-btn-primary:hover { filter: brightness(1.1); }
.pt-btn-primary:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.pt-foot { margin: 18px 0 0; text-align: center; font-size: 13px; color: var(--muted); line-height: 1.6; }

.pt-choose { width: min(760px, 100%); }
.pt-choose-head { margin-bottom: 36px; }
.pt-choose h1 { margin: 0; font-size: clamp(30px, 4vw, 40px); line-height: 1.15; letter-spacing: -0.01em; }
.pt-tagline {
  margin: 10px 0 0; font-family: var(--font-display); font-style: italic; font-weight: 400;
  font-size: clamp(16px, 2vw, 19px); line-height: 1.45; color: var(--ink-2);
}
html[dir="rtl"] .pt-tagline { font-family: var(--font-main); font-style: normal; }
.pt-choose-label { margin: 0 0 14px; font-size: 14px; font-weight: 500; color: var(--muted); }
.pt-choose-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pt-choice {
  display: flex; flex-direction: column; gap: 22px; padding: 28px 28px 24px;
  background: var(--paper); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs); color: var(--ink); text-decoration: none;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.pt-choice:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); transform: translateY(-2px); color: var(--ink); }
.pt-choice:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.pt-choice-icon { display: block; width: 48px; height: 48px; color: var(--accent-blue); }
.pt-choice-icon svg { display: block; width: 100%; height: 100%; }
.pt-choice-body { display: grid; gap: 8px; }
.pt-choice-body strong { font-size: 18px; font-weight: 600; letter-spacing: -0.01em; }
.pt-choice-body span { color: var(--muted); font-size: 14px; line-height: 1.55; }
.pt-choice-cta {
  margin-top: auto; display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; color: var(--accent-blue);
}
.pt-choice-arrow { display: inline-flex; width: 16px; height: 16px; transition: transform .2s; }
.pt-choice-arrow svg { width: 100%; height: 100%; }
.pt-choice:hover .pt-choice-arrow { transform: translateX(4px); }
html[dir="rtl"] .pt-choice-arrow svg { transform: scaleX(-1); }
html[dir="rtl"] .pt-choice:hover .pt-choice-arrow { transform: translateX(-4px); }
@media (prefers-reduced-motion: reduce) {
  .pt-choice, .pt-choice-arrow { transition: none; }
  .pt-choice:hover { transform: none; }
}
@media (max-width: 640px) {
  .pt-choose-head { margin-bottom: 28px; }
  .pt-choose-grid { grid-template-columns: 1fr; }
  .pt-choice { padding: 22px; gap: 18px; }
}

/* =====================================================================
   All sections: typography and the few surfaces the generated map
   (partner-legacy-map.css) cannot infer.
   ===================================================================== */
html.pt .main-content h2 { font-family: var(--font-display); letter-spacing: -.005em; color: var(--ink); }
html.pt .main-content :is(.section-header-elegant, .settings-section) h2 { font-size: 22px; }

html.pt .main-content .sales-tips-card {
  background: var(--surface-lighter) !important; border: 1px solid var(--border-subtle) !important;
  border-inline-start: 3px solid var(--warning) !important; border-radius: var(--radius-lg) !important;
}
html.pt .main-content .sales-tips-card h4 { color: var(--warning) !important; }
html.pt .main-content .sales-tips-card :is(h5, li strong) { color: var(--ink) !important; }
html.pt .main-content .sales-tips-card li { color: var(--ink-2) !important; }

/* Bootstrap pieces still used inside the store sections. */
html.pt .main-content .btn-primary {
  background: var(--accent-blue) !important; border-color: var(--accent-blue) !important; color: var(--on-accent) !important;
  border-radius: var(--radius-md); box-shadow: var(--accent-glow-soft);
}
html.pt .main-content .btn-primary:hover { filter: brightness(1.1); }
html.pt .main-content :is(.btn-secondary, .btn-light, .btn-outline-secondary, .btn-outline-primary, .btn-outline-dark) {
  background: var(--paper) !important; border-color: var(--border-strong) !important; color: var(--ink) !important;
  border-radius: var(--radius-md);
}
html.pt .main-content :is(.btn-danger, .btn-outline-danger) {
  background: var(--danger-bg) !important; border-color: transparent !important; color: var(--danger) !important;
}
html.pt .main-content .table { color: var(--ink); --bs-table-bg: transparent; border-color: var(--border-subtle); }
html.pt .main-content .table > :not(caption) > * > * { color: var(--ink); border-bottom-color: var(--border-subtle); }
html.pt .main-content .text-muted { color: var(--muted) !important; }
html.pt .main-content :is(.card, .modal-content, .list-group-item, .dropdown-menu) {
  background: var(--paper); color: var(--ink); border-color: var(--border-subtle);
}
html.pt .main-content :is(.modal-header, .modal-footer, .card-header, .card-footer) { border-color: var(--border-subtle); background: transparent; }
html.pt .main-content .btn-close { filter: var(--pt-close-filter, none); }
html.pt[data-theme="dark"] .main-content .btn-close { --pt-close-filter: invert(1) grayscale(1) brightness(2); }
html.pt .main-content .form-check-input { background-color: var(--paper); border-color: var(--border-strong); }
html.pt .main-content .form-check-input:checked { background-color: var(--accent-blue); border-color: var(--accent-blue); }
html.pt[data-theme="dark"] .main-content input[type="checkbox"],
html.pt[data-theme="dark"] .main-content input[type="radio"] { accent-color: var(--accent-blue); }

/* A section repeating the page title right under it (see partner-store.js). */
html.pt .main-content .pt-dup-title { display: none !important; }



/* =====================================================================
   App Manager list pattern (products, orders, customers on partner):
   panel > head (title + actions) > tabs or chips > toolbar > table.
   ===================================================================== */
.pt-panel {
  background: var(--paper); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs); padding: 18px; margin-bottom: 12px; color: var(--ink);
}
.pt-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.pt-panel-title { margin: 0; font-family: var(--font-display); font-size: 22px; font-weight: 700; color: var(--ink); }
.pt-panel-sub { margin: 4px 0 0; color: var(--muted); font-size: 14px; }
.pt-panel-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.pt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 16px;
  border: 1px solid transparent; border-radius: var(--radius-md); cursor: pointer; text-decoration: none;
  font: 600 13px var(--font-main); white-space: nowrap; transition: filter .15s, background .15s;
}
.pt-btn svg { width: 16px; height: 16px; }
.pt-btn--primary { background: var(--accent-blue); color: var(--on-accent); border-color: var(--accent-blue); box-shadow: var(--accent-glow-soft); }
.pt-btn--primary:hover { filter: brightness(1.1); color: var(--on-accent); }
.pt-btn--ghost { background: var(--paper); color: var(--ink); border-color: var(--border-strong); }
.pt-btn--ghost:hover { background: var(--surface-lighter); color: var(--ink); }
.pt-btn--danger { background: var(--accent-red); color: #fff; border-color: var(--accent-red); }
html.pt[data-theme="dark"] .pt-btn--danger { color: #0F172A; }
.pt-btn--sm { min-height: 34px; padding: 0 12px; font-size: 12px; }
.pt-btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* Underline tabs (App Manager "Tous 101 / Actifs 101 ...") */
.pt-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border-subtle); margin: 0 0 14px; overflow-x: auto; scrollbar-width: none; }
.pt-tabs::-webkit-scrollbar { display: none; }
html.pt .main-content .pt-tab {
  --sm-btn-bg: transparent; --sm-btn-border: transparent; --sm-btn-shadow: none; --sm-btn-text: var(--muted);
  --sm-btn-bg-hover: transparent; --sm-btn-border-hover: transparent; --sm-btn-text-hover: var(--ink);
  background: transparent !important; border: 0 !important; border-bottom: 2px solid transparent !important;
  border-radius: 0 !important; box-shadow: none !important; min-height: 42px; padding: 0 12px; margin: 0 0 -1px;
  color: var(--muted) !important; font: 600 14px var(--font-main); white-space: nowrap; transform: none !important;
}
html.pt .main-content .pt-tab:hover { color: var(--ink) !important; }
html.pt .main-content .pt-tab.active { color: var(--ink) !important; border-bottom-color: var(--accent-blue) !important; }
.pt-count { color: var(--muted); font-weight: 500; margin-inline-start: 2px; }

/* Status chips with a count (App Manager orders "Traitement 0") */
.pt-chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.pt-chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 14px;
  border: 1px solid var(--border-subtle); border-radius: var(--radius-full); background: var(--paper);
  color: var(--ink); font: 600 13px var(--font-main); cursor: pointer;
}
.pt-chip:hover { border-color: var(--border-strong); }
.pt-chip.is-active { border-color: var(--accent-blue); box-shadow: var(--focus-ring); }
.pt-chip-count { min-width: 22px; padding: 1px 7px; border-radius: var(--radius-full); background: var(--surface-lighter); color: var(--ink-2); font-size: 12px; text-align: center; }
.pt-chip-count.is-warn { background: var(--warning-bg); color: var(--warning); }
.pt-chip-count.is-info { background: var(--info-bg); color: var(--accent-blue); }
.pt-chip-count.is-ok { background: var(--success-bg); color: var(--success); }
.pt-chip-count.is-bad { background: var(--danger-bg); color: var(--danger); }

/* KPI tiles (App Manager "TOTAL DES COMMANDES 0") */
.pt-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 12px; }
.pt-kpi { background: var(--paper); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 14px 16px; box-shadow: var(--shadow-xs); }
.pt-kpi-label { display: block; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.pt-kpi-value { display: block; margin-top: 4px; color: var(--ink); font-size: 24px; font-weight: 700; }
.pt-kpi-value.is-ok { color: var(--success); }
.pt-kpi-value.is-warn { color: var(--warning); }
@media (max-width: 900px) { .pt-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pt-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; }
.pt-input, .pt-select {
  flex: 1 1 260px; min-height: 42px; padding: 0 12px; box-sizing: border-box;
  border: 1px solid var(--border-strong) !important; border-radius: var(--radius-md) !important;
  background: var(--paper) !important; color: var(--ink) !important; font: 14px var(--font-main);
}
.pt-select { flex: 0 1 220px; }
.pt-input:focus, .pt-select:focus { outline: none; border-color: var(--accent-blue) !important; box-shadow: var(--focus-ring); }
.pt-toolbar-meta { color: var(--muted); font-size: 13px; white-space: nowrap; }

/* Table */
.pt-table-wrap { overflow-x: auto; }
.pt-table { width: 100%; border-collapse: collapse; font-size: 14px; color: var(--ink); }
.pt-table th {
  padding: 10px 12px; text-align: start; font-size: 13px; font-weight: 600; color: var(--ink-2);
  border-bottom: 1px solid var(--border-subtle); white-space: nowrap;
}
.pt-table td { padding: 12px; border-bottom: 1px solid var(--border-subtle); vertical-align: middle; }
.pt-table tbody tr:last-child td { border-bottom: 0; }
.pt-table tbody tr:hover td { background: var(--surface-lighter); }
html.pt .main-content .pt-table .product-card {
  background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  display: table-row !important; padding: 0 !important; transform: none !important;
}
html.pt .main-content .pt-table .product-card.selected td { background: var(--info-bg); }
html.pt .main-content .pt-table .product-card:is(.hidden, .pt-search-hidden) { display: none !important; }
.pt-col-check { width: 36px; }
.pt-col-check input { width: 18px; height: 18px; accent-color: var(--accent-blue); }
.pt-col-actions { width: 1%; white-space: nowrap; text-align: end; }
.pt-col-actions form { display: inline; margin: 0; }
.pt-product { display: flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; min-width: 220px; }
.pt-product:hover { color: var(--ink); }
.pt-product:hover strong { text-decoration: underline; }
.pt-product-text { display: grid; gap: 2px; min-width: 0; }
.pt-product-text strong { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 360px; }
.pt-product-text > span { color: var(--muted); font-size: 13px; }
.pt-thumb { width: 44px; height: 44px; flex: 0 0 44px; border-radius: var(--radius-sm); object-fit: cover; background: var(--surface-lighter); }
.pt-thumb--empty { display: grid; place-items: center; color: var(--muted); }
.pt-thumb--empty svg { width: 20px; height: 20px; }
.pt-avatar-sm { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; border-radius: var(--radius-full); background: var(--surface-lighter); color: var(--ink-2); font-weight: 700; }

.pt-pill { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: var(--radius-full); font-size: 12px; font-weight: 600; white-space: nowrap; }
.pt-pill--ok { background: var(--success-bg); color: var(--success); }
.pt-pill--warn { background: var(--warning-bg); color: var(--warning); }
.pt-pill--bad { background: var(--danger-bg); color: var(--danger); }
.pt-pill--info { background: var(--info-bg); color: var(--accent-blue); }
.pt-pill--muted { background: var(--surface-lighter); color: var(--ink-2); }
.pt-muted { color: var(--muted); }
.pt-stock-low { color: var(--warning); font-weight: 600; }
.pt-stock-out { color: var(--danger); font-weight: 600; }
/* Status follows the row's data-* so bulk actions update it in place. */
tr[data-available="false"] .pt-when-available,
tr[data-available="true"] .pt-when-unavailable,
tr[data-homepage="false"] .pt-when-homepage,
tr[data-homepage="true"] .pt-when-not-homepage { display: none; }

.pt-iconbtn--sm { min-width: 34px; height: 34px; padding: 0 8px; border: 1px solid var(--border-subtle); text-decoration: none; }
.pt-iconbtn--sm svg { width: 16px; height: 16px; }
.pt-iconbtn--danger { color: var(--danger); }
.pt-iconbtn--danger:hover { background: var(--danger-bg); }
.pt-empty { margin: 0; padding: 28px 12px; text-align: center; color: var(--muted); border: 1px dashed var(--border-strong); border-radius: var(--radius-lg); }
.pt-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Bulk bar (App Manager "0 sélectionné(s)") */
html.pt .main-content .bulk-actions-toolbar {
  border: 1px solid var(--accent-blue) !important; border-radius: var(--radius-lg) !important; margin: 0 0 12px;
}

@media (max-width: 760px) {
  .pt-col-hide-sm { display: none; }
  .pt-product { min-width: 0; }
  .pt-product-text strong { max-width: 46vw; }
}
html.pt .main-content .pt-tabs .pt-tab.active,
html.pt .main-content .pt-tabs .pt-tab.active:hover {
  background: transparent !important; color: var(--ink) !important; border-bottom-color: var(--accent-blue) !important; box-shadow: none !important;
}
html.pt .main-content .pt-table :is(th, td) { text-align: start !important; }
html.pt .main-content .pt-table .pt-col-actions { text-align: end !important; }

/* ---------- Orders (partner layout) ---------- */
.pt-panel--flush { padding: 6px 6px 0; }
.pt-panel--flush .pt-empty { margin: 12px; }
.pt-small { font-size: 12px; margin-top: 2px; }
.pt-order-id { color: var(--ink); font-weight: 700; text-decoration: none; margin-inline-end: 6px; }
.pt-order-id:hover { text-decoration: underline; color: var(--ink); }
.pt-person { display: flex; align-items: center; gap: 10px; min-width: 160px; }
.pt-items { display: grid; gap: 2px; font-size: 13px; max-width: 280px; }
.pt-items > div { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-status-cell { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pt-row-actions { display: inline-flex; gap: 6px; align-items: center; justify-content: flex-end; flex-wrap: nowrap; }
.pt-row-actions form { display: inline; margin: 0; }
html.pt .main-content .pt-table .order-row-elegant {
  background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important;
}
html.pt .main-content .pt-table .order-row-elegant.is-new td:first-child { box-shadow: inset 3px 0 0 var(--accent-blue); }
html.pt .main-content .pt-bulkbar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 12px 16px; margin: 0 0 12px; background: var(--paper) !important;
  border: 1px solid var(--accent-blue) !important; border-radius: var(--radius-lg) !important;
}
html.pt .main-content .pt-bulkbar .delivery-bulk-left { display: flex; align-items: center; gap: 14px; color: var(--ink); }
html.pt .main-content .delivery-sent-badge { padding: 3px 8px; border-radius: var(--radius-full); font-size: 11px; font-weight: 600; }

/* ---------- Customers (partner layout) ---------- */
html.pt .main-content :is(.customers-section-elegant) { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
html.pt .main-content .customers-section-elegant > .section-heading { display: none; }
html.pt .main-content .pt-table .customer-row-elegant.pt-search-hidden { display: none !important; }
html.pt .main-content .pt-table.elegant-table { background: transparent !important; border: 0 !important; box-shadow: none !important; }
html.pt .main-content .pt-table.elegant-table th { background: transparent !important; text-transform: none; letter-spacing: 0; }
html.pt .main-content .pt-table :is(thead, thead tr) { background: transparent !important; }
html.pt .main-content .pt-table th { font-size: 13px !important; font-weight: 600 !important; color: var(--ink-2) !important; text-transform: none !important; letter-spacing: 0 !important; }

/* Phones: each table row becomes a compact card. */
@media (max-width: 760px) {
  .pt-select { flex: 1 1 100%; }
  .pt-table thead { display: none; }
  .pt-table, .pt-table tbody { display: block; }
  html.pt .main-content .pt-table tbody tr,
  html.pt .main-content .pt-table .product-card {
    display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px 6px;
    border-bottom: 1px solid var(--border-subtle);
  }
  html.pt .main-content .pt-table tbody tr:last-child { border-bottom: 0; }
  .pt-table td { display: block; padding: 0; border: 0; }
  .pt-table td:has(.pt-product), .pt-table td:has(.pt-person), .pt-table td:has(.pt-order-id) { flex: 1 1 55%; min-width: 0; }
  .pt-table td.pt-col-actions { flex: 1 1 100%; text-align: end; }
  .pt-table tbody tr:hover td { background: transparent; }
  .pt-product-text strong { max-width: none; white-space: normal; }
  .pt-row-actions { flex-wrap: wrap; }
  html.pt .main-content .pt-table .product-card:is(.hidden, .pt-search-hidden),
  html.pt .main-content .pt-table .customer-row-elegant.pt-search-hidden { display: none !important; }
}
@media (max-width: 760px) {
  .pt-table td.pt-col-hide-sm { display: none; }
  html.pt .main-content .pt-table tbody tr { padding: 14px 8px; border-bottom-color: var(--border-strong); }
}
@media (max-width: 760px) {
  html.pt .main-content .pt-table tbody tr { border-bottom: 1px solid var(--border-strong) !important; }
  html.pt .main-content .pt-table tbody tr:last-child { border-bottom: 0 !important; }
}

/* Standalone store pages (product add/edit, order detail) render straight
   into the shell's .main-content; their own page wrappers must not paint. */
html.pt .pt-content { background: transparent !important; border: 0 !important; box-shadow: none !important; }

/* Product add/edit and order detail inside the partner shell. */
html.pt :is(.add-product-page, .edit-product-page, .order-detail-page) {
  background: transparent !important; min-height: 0 !important; padding: 0 !important;
}
html.pt :is(.add-product-page, .edit-product-page) > .container { max-width: none !important; padding: 0 !important; }
html.pt .order-detail-container { max-width: none !important; }
html.pt {
  /* store_order_detail.html's own palette */
  --n-bg: var(--paper-2); --n-surface: var(--paper); --n-border: var(--border-subtle);
  --n-text: var(--ink); --n-muted: var(--muted); --n-primary: var(--accent-blue); --n-accent: var(--accent-red);
  --n-success: var(--success); --n-warning: var(--warning);
}
@media screen { html.pt body { padding: 0 !important; } }
/* Order detail: the next status step is the primary action, as in the App Manager. */
html.pt .order-detail-page :is(.btn-action.btn-warning, .btn-action.btn-success, .btn-action.btn-primary) {
  background: var(--accent-blue) !important; border-color: var(--accent-blue) !important; color: var(--on-accent) !important;
  box-shadow: var(--accent-glow-soft);
}

/* =====================================================================
   Dashboard and Ma Boutique: editorial styling of the EXISTING markup.
   Same content, same order; only how it reads changes:
   - figures sit on a hairline grid inside one sheet instead of a pile of
     identical bordered tiles;
   - no all-caps micro-labels; sentence case, muted, regular tracking;
   - navy only, crimson used once per block as a marker (never a fill);
   - charts monochrome (partner-store.js recolours them).
   ===================================================================== */
html.pt body .main-content :is(.dashboard-elegant, .balance-section-elegant, .store-promo-elegant) {
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important;
}
html.pt body .main-content :is(.balance-section-elegant, .store-promo-elegant) + :is(.balance-section-elegant, .store-promo-elegant) { margin-top: 28px !important; }

/* Headings */
html.pt body .main-content :is(.dashboard-elegant, .balance-section-elegant, .store-promo-elegant) .section-heading,
html.pt body .main-content .section-header-elegant h2 {
  margin: 28px 0 12px !important; padding: 0 !important; border: 0 !important;
  font-family: var(--font-display) !important; font-size: 20px !important; font-weight: 700 !important;
  letter-spacing: 0 !important; text-transform: none !important; color: var(--ink) !important;
}
html.pt body .main-content .section-header-elegant { margin: 0 0 16px; }
html.pt body .main-content .section-header-elegant h2 { margin-top: 0 !important; font-size: 24px !important; }
html.pt body .main-content .section-header-elegant p { margin: 4px 0 0; color: var(--muted) !important; font-size: 14px; }
html.pt body .main-content :is(.dashboard-elegant, .balance-section-elegant, .store-promo-elegant) :is(h3, h4) {
  text-transform: none !important; letter-spacing: 0 !important;
}

/* Labels: sentence case everywhere (some are written in capitals in the HTML) */
html.pt body .main-content :is(.metric-label, .revenue-label, .finance-label, .filter-label, .stat-label-elegant, .quick-link-label, .form-label-elegant, .status-label-elegant, .closure-message-label, .action-label) {
  display: inline-block; text-transform: lowercase !important; letter-spacing: 0 !important;
  font-size: 13px !important; font-weight: 500 !important; color: var(--muted) !important;
}
html.pt body .main-content :is(.metric-label, .revenue-label, .finance-label, .filter-label, .stat-label-elegant, .quick-link-label, .form-label-elegant, .status-label-elegant, .closure-message-label, .action-label)::first-letter { text-transform: uppercase; }

/* Figure grids: one sheet, hairline separators */
html.pt body .main-content :is(.metrics-grid, .revenue-grid, .finance-grid, .discount-overview-elegant) {
  gap: 0 !important; background: var(--paper) !important; border: 1px solid var(--border-subtle) !important;
  border-radius: var(--radius-lg) !important; overflow: hidden; margin-bottom: 16px !important; box-shadow: none !important;
}
html.pt body .main-content :is(.metric-card, .revenue-card, .finance-card, .discount-stat-elegant) {
  background: var(--paper) !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: 1px 0 0 var(--border-subtle), 0 1px 0 var(--border-subtle) !important;
  padding: 18px 20px !important; text-align: start !important; transform: none !important;
}
html.pt body .main-content :is(.metric-card, .revenue-card, .finance-card, .discount-stat-elegant):hover { transform: none !important; }
html.pt body .main-content :is(.metric-value, .revenue-value, .finance-amount, .stat-value-elegant) {
  display: block; margin-top: 6px; font-family: var(--font-main) !important; font-size: 26px !important; font-weight: 700 !important;
  letter-spacing: -0.02em !important; font-variant-numeric: tabular-nums; color: var(--ink) !important;
}
html.pt body .main-content .finance-note { display: block; margin-top: 4px; font-size: 13px; color: var(--muted) !important; }
/* Deductions read as a quieter figure, not an alarm */
html.pt body .main-content :is(.revenue-value.deduct, .finance-amount.deduct) { color: var(--ink-2) !important; }
/* The one figure that matters gets the single crimson marker */
html.pt body .main-content :is(.revenue-card.highlight, .finance-card.highlight) {
  background: var(--paper) !important; border: 0 !important;
  box-shadow: inset 0 2px 0 var(--accent-red), 1px 0 0 var(--border-subtle), 0 1px 0 var(--border-subtle) !important;
}
html.pt body .main-content :is(.revenue-card, .finance-card).accent { background: var(--paper) !important; }
html.pt body .main-content :is(.revenue-card, .finance-card).accent :is(.revenue-label, .revenue-value, .finance-label, .finance-amount) { color: var(--ink) !important; }
html.pt body .main-content :is(.revenue-card, .finance-card).accent :is(.revenue-label, .finance-label) { color: var(--muted) !important; }
html.pt body .main-content :is(.revenue-card.highlight, .finance-card.highlight) :is(.revenue-label, .finance-label, .finance-note) { color: var(--muted) !important; opacity: 1 !important; }
html.pt body .main-content :is(.revenue-card.highlight, .finance-card.highlight) :is(.revenue-value, .finance-amount) { color: var(--ink) !important; font-size: 30px !important; }
html.pt body .main-content :is(.revenue-card.accent, .finance-card.accent-warm) { border-left: 0 !important; }
html.pt body .main-content .finance-amount.success { color: var(--ink) !important; }

/* Period filter: a quiet segmented control, not a toolbar card */
html.pt body .main-content .dashboard-elegant .dashboard-filter-bar {
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important;
  justify-content: flex-end; margin-bottom: 14px !important;
}
html.pt body .main-content .dashboard-filter-bar .filter-label i { display: none; }
html.pt body .main-content .dashboard-filter-bar .filter-buttons { gap: 2px !important; padding: 3px; border-radius: var(--radius-full); background: var(--surface-lighter); }
html.pt body .main-content .dashboard-filter-bar .filter-btn {
  --sm-btn-bg: transparent; --sm-btn-border: transparent; --sm-btn-shadow: none; --sm-btn-text: var(--muted);
  --sm-btn-bg-hover: transparent; --sm-btn-border-hover: transparent; --sm-btn-text-hover: var(--ink);
  min-height: 32px !important; padding: 0 14px !important; border-radius: var(--radius-full) !important; font-weight: 500 !important; transform: none !important;
}
html.pt body .main-content .dashboard-filter-bar .filter-btn.active {
  --sm-btn-bg: var(--paper); --sm-btn-text: var(--ink); --sm-btn-bg-hover: var(--paper); --sm-btn-text-hover: var(--ink);
  box-shadow: var(--shadow-xs) !important; font-weight: 600 !important;
}

/* Charts and detail lists: plain sheets, titles in sentence case, no grey header bar */
html.pt body .main-content .dashboard-elegant :is(.chart-box, .data-card) {
  background: var(--paper) !important; border: 1px solid var(--border-subtle) !important; border-radius: var(--radius-lg) !important; box-shadow: none !important;
}
html.pt body .main-content :is(.dashboard-elegant, .store-promo-elegant) :is(.chart-title, .data-card-title) {
  background: transparent !important; border-bottom: 0 !important; padding: 16px 18px 4px !important;
  font-size: 14px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ink) !important;
}
html.pt body .main-content .dashboard-elegant .data-row { padding: 11px 18px !important; border-bottom: 1px solid var(--border-subtle) !important; }
html.pt body .main-content .dashboard-elegant .data-row:last-child { border-bottom: 0 !important; }
html.pt body .main-content :is(.data-tag, .tag-elegant, .status-tag-elegant) { background: var(--surface-lighter) !important; color: var(--ink-2) !important; border-radius: var(--radius-full) !important; font-weight: 600 !important; }
html.pt body .main-content :is(.data-tag.danger, .tag-elegant.void) { color: var(--accent-red) !important; }
html.pt body .main-content .data-value.success { color: var(--ink) !important; }

/* Ma Boutique: balance position */
html.pt body .main-content .summary-section { gap: 0 !important; background: var(--paper); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; }
html.pt body .main-content .summary-box { background: var(--paper) !important; border: 0 !important; border-radius: 0 !important; box-shadow: 1px 0 0 var(--border-subtle) !important; padding: 20px !important; }
html.pt body .main-content .summary-indicator { width: 2px !important; background: var(--accent-blue) !important; }
html.pt body .main-content .summary-box.outgoing .summary-indicator { background: var(--accent-red) !important; }
html.pt body .main-content .summary-content h4 { font-size: 13px !important; font-weight: 500 !important; color: var(--muted) !important; text-transform: lowercase !important; display: inline-block; }
html.pt body .main-content .summary-content h4::first-letter { text-transform: uppercase; }
html.pt body .main-content .summary-value { font-size: 30px !important; font-weight: 700 !important; letter-spacing: -0.02em; color: var(--ink) !important; font-variant-numeric: tabular-nums; }
html.pt body .main-content .ledger-recap { background: var(--paper) !important; border: 1px solid var(--border-subtle) !important; border-radius: var(--radius-lg) !important; box-shadow: none !important; }
html.pt body .main-content .ledger-recap span { text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; color: var(--muted) !important; }
html.pt body .main-content .ledger-recap strong { color: var(--ink) !important; font-variant-numeric: tabular-nums; }
html.pt body .main-content .ledger-recap-total { border-inline-start: 1px solid var(--border-subtle) !important; }

/* "Comment ça marche": numbered steps without the filled badges */
html.pt body .main-content .info-section-elegant h3 { font-family: var(--font-display) !important; font-size: 20px !important; color: var(--ink) !important; }
html.pt body .main-content .info-grid-elegant { gap: 0 !important; background: var(--paper); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; }
html.pt body .main-content .info-item-elegant { background: var(--paper) !important; border: 0 !important; border-radius: 0 !important; box-shadow: 1px 0 0 var(--border-subtle) !important; padding: 18px 20px !important; }
html.pt body .main-content .info-number {
  background: transparent !important; color: var(--accent-red) !important; width: auto !important; height: auto !important;
  border-radius: 0 !important; font-weight: 700 !important; font-variant-numeric: tabular-nums; box-shadow: none !important;
}

/* Tables */
html.pt body .main-content .table-section-elegant h3 { font-family: var(--font-display) !important; font-size: 20px !important; color: var(--ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
html.pt body .main-content .elegant-table { border: 1px solid var(--border-subtle) !important; border-radius: var(--radius-lg) !important; overflow: hidden; }
html.pt body .main-content .elegant-table :is(thead, thead tr, th) { background: var(--paper) !important; }
html.pt body .main-content .elegant-table th { text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; font-weight: 600 !important; color: var(--ink-2) !important; }

/* Store settings sheets */
html.pt body .main-content .store-promo-elegant :is(.status-card-elegant, .closure-message-card, .action-card-elegant, .quick-link-elegant, .data-card) {
  background: var(--paper) !important; border: 1px solid var(--border-subtle) !important; border-radius: var(--radius-lg) !important; box-shadow: none !important;
}
html.pt body .main-content .actions-grid-elegant, html.pt body .main-content .quick-links-elegant { gap: 12px !important; }
html.pt body .main-content .action-desc { font-size: 15px !important; font-weight: 600 !important; color: var(--ink) !important; }
html.pt body .main-content :is(.action-link-elegant, .quick-link-value) { color: var(--accent-blue) !important; font-weight: 600; }
html.pt body .main-content .status-tag-elegant.open { background: var(--success-bg) !important; color: var(--success) !important; }
html.pt body .main-content :is(.closure-message-input, .form-input-elegant, .share-input-elegant input) {
  background: var(--paper) !important; color: var(--ink) !important; border: 1px solid var(--border-strong) !important; border-radius: var(--radius-sm) !important;
}
html.pt body .main-content .discount-tag-elegant { background: var(--surface-lighter) !important; color: var(--accent-red) !important; }
html.pt body .main-content .store-promo-elegant .data-card > .discount-overview-elegant { margin: 0 16px 12px !important; }
html.pt body .main-content .dashboard-elegant .revenue-card:is(.accent, .highlight) { background: var(--paper) !important; }
html.pt body .main-content .dashboard-elegant .revenue-card:is(.accent, .highlight) .revenue-label { color: var(--muted) !important; opacity: 1 !important; }
html.pt body .main-content .dashboard-elegant .revenue-card:is(.accent, .highlight) .revenue-value { color: var(--ink) !important; opacity: 1 !important; }

/* No decorative or separator lines on the figure blocks: no coloured side
   bars, no top rule, no hairlines between cells. Spacing alone groups them. */
html.pt body .main-content :is(.metric-card, .revenue-card, .finance-card, .discount-stat-elegant, .summary-box, .info-item-elegant),
html.pt body .main-content :is(.revenue-card, .finance-card):is(.highlight, .accent, .accent-warm),
html.pt body .main-content .dashboard-elegant .revenue-card:is(.accent, .highlight) {
  box-shadow: none !important; border: 0 !important;
}
html.pt body .main-content :is(.revenue-card, .finance-card, .summary-box)::before,
html.pt body .main-content :is(.revenue-card, .finance-card, .summary-box)::after { display: none !important; }
html.pt body .main-content .summary-indicator { display: none !important; }
html.pt body .main-content .ledger-recap-total { border: 0 !important; }
/* :not(#_) only lifts specificity above the generated legacy map's borders. */
html.pt body .main-content :is(.metric-card, .revenue-card, .finance-card, .discount-stat-elegant, .summary-box, .info-item-elegant):not(#_) {
  border: 0 !important; box-shadow: none !important;
}
html.pt body .main-content .summary-section:not(#_) { background: var(--paper) !important; gap: 0 !important; }

/* Space chooser: everything on the centre axis, in every language. */
.pt-choose-head, .pt-choose-label { text-align: center; }
.pt-choice { align-items: center; text-align: center; }
.pt-choice-cta { justify-content: center; }

/* Logo + tagline, top of the space chooser, read as one sentence: the
   wordmark is set inline as its first word. Measured on the image: the
   "Neptune" baseline sits at 75% of its height and its x-height spans 24%,
   so 2.25em makes its lowercase match the tagline's and -0.57em puts the
   two baselines on one line. The logo stays first on the left in every
   language: it is the brand, not a translated word. */
.pt-lockup {
  margin: 0 auto 36px; text-align: center; direction: ltr;
  font-family: var(--font-display); font-style: italic; font-size: clamp(17px, 2vw, 20px);
  line-height: 1.5; color: var(--ink-2);
}
.pt-lockup-logo {
  display: inline-block; height: 2.25em; width: auto;
  vertical-align: -0.57em; margin-inline-end: .12em;
}
.pt-lockup .pt-tagline { margin: 0; font: inherit; color: inherit; }
html[dir="rtl"] .pt-lockup .pt-tagline { direction: rtl; unicode-bidi: isolate; font-family: var(--font-main); font-style: normal; }
.pt-on-dark { display: none !important; }
html[data-theme="dark"] .pt-on-light { display: none !important; }
html[data-theme="dark"] .pt-on-dark { display: inline-block !important; }
@media (max-width: 640px) {
  .pt-lockup { margin-bottom: 26px; font-size: 16px; text-wrap: balance; }
}
.pt-choose-head { margin-bottom: 28px; }
@media (max-width: 640px) {
  .pt-lockup { gap: 12px; margin-bottom: 28px; }
  .pt-lockup-logo { height: 52px; }
  .pt-lockup .pt-tagline { font-size: 15px; white-space: normal; text-wrap: balance; max-width: 18ch; }
}
