/* Indelivery V2 shared white-label design tokens. Loaded last on purpose. */
:root {
  --brand-primary:#2563EB; --brand-primary-hover:#1D4ED8; --brand-primary-soft:#EFF6FF;
  --brand-primary-border:#BFDBFE; --brand-primary-contrast:#fff;
  --brand-secondary:#0F2747; --brand-secondary-hover:#0A1D36; --brand-secondary-soft:#F1F5F9; --brand-secondary-contrast:#fff;
  --ind-page:#F6F8FB; --ind-surface:#FFFFFF; --ind-text:#172033; --ind-muted:#64748B; --ind-border:#E2E8F0;
  --status-success:#16A34A; --status-info:#0EA5E9; --status-warning:#F59E0B; --status-danger:#DC2626; --status-return:#7C3AED;
  --ind-radius:14px;
}
body.ind-vendor-body { background:var(--ind-page)!important; color:var(--ind-text); }
.btn-primary,.ind-btn-primary { background:var(--brand-primary)!important; border-color:var(--brand-primary)!important; color:var(--brand-primary-contrast)!important; box-shadow:none!important; }
.btn-primary:hover,.ind-btn-primary:hover { background:var(--brand-primary-hover)!important; border-color:var(--brand-primary-hover)!important; }
.btn-secondary { background:var(--brand-secondary)!important; border-color:var(--brand-secondary)!important; color:var(--brand-secondary-contrast)!important; }
a:not(.btn):not(.ind-sidebar-link) { color:var(--brand-primary); }
.form-control:focus,.form-select:focus,.ind-filter-select:focus { border-color:var(--brand-primary)!important; box-shadow:0 0 0 .2rem color-mix(in srgb,var(--brand-primary) 18%,transparent)!important; }
.ind-sidebar a.active,.ind-sidebar-link.active,.ind-nav-item.active,.ind-status-tabs a.active { color:var(--brand-primary)!important; }
.ind-status-tabs a.active { border-color:var(--brand-primary-border)!important; background:var(--brand-primary-soft)!important; }
.ind-status-tabs a.active strong { color:var(--brand-primary)!important; }
.ind-card,.card.ind-card { border:1px solid var(--ind-border)!important; border-radius:var(--ind-radius)!important; box-shadow:0 4px 14px rgba(15,23,42,.045)!important; background:#fff; }
.ind-card .card-header { border-bottom:1px solid var(--ind-border)!important; background:#fff!important; }
.ind-brand-logo { object-fit:contain; background:white; }
.ind-live-badge { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:800; letter-spacing:.04em; color:var(--ind-muted); }
.ind-live-badge::before { content:""; width:8px; height:8px; border-radius:50%; background:#94a3b8; box-shadow:0 0 0 4px rgba(148,163,184,.12); }
html[data-realtime-state="live"] .ind-live-badge { color:var(--status-success); }
html[data-realtime-state="live"] .ind-live-badge::before { background:var(--status-success); box-shadow:0 0 0 4px rgba(22,163,74,.12); animation:indLivePulse 1.8s infinite; }
html[data-realtime-state="reconnecting"] .ind-live-badge::before,html[data-realtime-state="connecting"] .ind-live-badge::before { background:var(--status-warning); }
@keyframes indLivePulse { 50%{box-shadow:0 0 0 7px rgba(22,163,74,0)} }
.status-badge.is-success,.ind-status.is-success { background:#EAF8EF!important;color:#15803D!important; }
.status-badge.is-danger,.ind-status.is-danger { background:#FEF0F0!important;color:#B91C1C!important; }
.status-badge.is-warning,.ind-status.is-warning { background:#FFF7E6!important;color:#B45309!important; }
.status-badge.is-return,.ind-status.is-return { background:#F3E8FF!important;color:#6D28D9!important; }
.status-badge.is-info,.ind-status.is-info { background:var(--brand-primary-soft)!important;color:var(--brand-primary)!important; }
.ind-brand-preview { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:18px; margin-top:18px; padding:18px; border:1px solid var(--ind-border); border-radius:14px; background:#f8fafc; }
.ind-brand-preview-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.ind-preview-nav { padding:12px; border-radius:12px; background:#fff; border:1px solid var(--ind-border); }
.ind-preview-nav strong { color:var(--brand-primary); }
@media(max-width:767px){.ind-brand-preview{grid-template-columns:1fr}}


/* V2.3 Final shipment lock badge */
.ind-final-lock {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 28px;
    padding: .32rem .62rem;
    border: 1px solid var(--app-border, #e2e8f0);
    border-radius: 999px;
    background: var(--status-neutral-soft, #f1f5f9);
    color: var(--status-neutral, #64748b);
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
}
