/* Asset eksternal untuk bagian header portal vendor. Selector berbasis akhiran
   tetap membatasi aturan ke instance acak yang dirender JSP. */
body[class*="vendor-body-"] { font-family: "Open Sans", Poppins, Arial, sans-serif; background:#f7f9fc; color:#1f2937; }
[class*="vendor-bg-"] { position:fixed; inset:0; background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,250,252,.96)), var(--vendor-bg-image, none) center/cover no-repeat; z-index:-2; }
[class*="vendor-navbar-"] { backdrop-filter: blur(16px); background:rgba(255,255,255,.92); border-bottom:1px solid rgba(148,163,184,.24); }
[class*="vendor-brand-logo-"] { width:46px; height:46px; object-fit:contain; filter:drop-shadow(0 8px 18px rgba(0,0,0,.15)); }
[class*="vendor-gradient-text-"] { background:var(--theme-gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
[class*="vendor-card-"] { border:0; border-radius:1.15rem; box-shadow:0 18px 45px rgba(15,23,42,.08); overflow:hidden; }
[class*="vendor-soft-card-"] { background:#fff; border:1px solid rgba(148,163,184,.18); border-radius:1.15rem; box-shadow:0 12px 28px rgba(15,23,42,.05); }
[class*="vendor-pill-"] { border-radius:999px; }
[class*="vendor-section-title-"] { font-weight:800; color:#0f172a; letter-spacing:-.03em; }
[class*="vendor-btn-gradient-"] { background:var(--theme-gradient)!important; color:var(--theme-text-on-primary)!important; border:0!important; box-shadow:0 10px 24px rgba(15,23,42,.18); }
[class*="vendor-btn-gradient-"]:hover { transform:translateY(-1px); filter:brightness(.98); }
[class*="vendor-icon-box-"] { width:46px; height:46px; display:inline-flex; align-items:center; justify-content:center; border-radius:14px; background:var(--theme-light); color:var(--theme-primary); }
[class*="vendor-stat-"] { border-left:4px solid var(--theme-primary); }
.vendor-required::after { content:" *"; color:#dc3545; font-weight:700; }
[class*="vendor-loader-"] { position:fixed; inset:0; display:none; align-items:center; justify-content:center; background:rgba(15,23,42,.70); backdrop-filter:blur(8px); z-index:9999; }
[class*="vendor-loader-"].show { display:flex; }
.vendor-table thead th { font-size:.76rem; text-transform:uppercase; letter-spacing:.04em; color:#64748b; background:#f8fafc; }
.vendor-badge-soft { background:var(--theme-light); color:var(--theme-primary); border:1px solid rgba(148,163,184,.24); }
.nav-pills .nav-link { color:#334155; font-weight:700; border-radius:999px; }
.nav-pills .nav-link.active { background:var(--theme-gradient)!important; color:var(--theme-text-on-primary)!important; }
.vendor-action-kebab { width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border-radius:9px; }
.vendor-action-kebab:focus-visible, .vendor-action-kebab + .dropdown-menu .dropdown-item:focus-visible { outline:3px solid #60a5fa; outline-offset:2px; }
@media (max-width: 575.98px) { .vendor-action-kebab { width:40px; height:40px; } }
