:root {
    --ink: #3b0764;
    --muted: #746b7f;
    --brand: #6d28d9;
    --brand2: #7c3aed;
    --soft: #f5f3ff;
    --line: #e7e0f2;
    --danger: #7e22ce;
    --warn: #9333ea;
    --shadow: 0 12px 30px rgba(109, 40, 217, .10)
}

/* ViaShop v1.8.1 — home curation, promo banner, and merchant profile */
.category-product-section {
    padding-top: 34px;
    padding-bottom: 24px;
}

.category-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
    color: var(--primary, #6d28d9);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.category-promo-section {
    padding: 10px 0 22px;
}

.category-promo-banner {
    position: relative;
    display: block;
    min-height: 220px;
    overflow: hidden;
    border: 1px solid rgba(139, 92, 246, .22);
    border-radius: 26px;
    box-shadow: 0 20px 50px rgba(76, 29, 149, .16);
    color: #fff;
}

.category-promo-banner > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.category-promo-overlay {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 220px;
    max-width: 760px;
    padding: 32px 42px;
    background: linear-gradient(90deg, rgba(30, 16, 65, .92), rgba(76, 29, 149, .52), transparent);
}

.category-promo-overlay small {
    margin-bottom: 8px;
    color: #e9d5ff;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.category-promo-overlay strong {
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1.12;
}

.category-promo-overlay em {
    max-width: 640px;
    margin-top: 9px;
    color: rgba(255, 255, 255, .88);
    font-style: normal;
}

.category-promo-overlay b {
    margin-top: 18px;
    padding: 9px 14px;
    border-radius: 12px;
    background: #fff;
    color: #5b21b6;
    font-size: 13px;
}

.merchant-profile-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 16px 0;
    padding: 13px 15px;
    border: 1px solid rgba(109, 40, 217, .2);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(109, 40, 217, .09), rgba(59, 130, 246, .06));
    color: inherit;
}

.merchant-profile-cta > span {
    display: grid;
    grid-template-columns: 28px 1fr;
    align-items: center;
}

.merchant-profile-cta > span > i {
    grid-row: 1 / span 2;
    color: #6d28d9;
    font-size: 20px;
}

.merchant-profile-cta small {
    color: var(--muted, #667085);
}

.merchant-profile-card {
    overflow: hidden;
    border: 1px solid rgba(109, 40, 217, .18);
    border-radius: 30px;
    background: var(--panel, #fff);
    box-shadow: 0 26px 70px rgba(46, 16, 101, .14);
}

.merchant-cover {
    min-height: 210px;
    padding: 24px;
    background: linear-gradient(115deg, #3b0764, #6d28d9 58%, #2563eb);
    background-position: center;
    background-size: cover;
}

.merchant-verified-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    backdrop-filter: blur(12px);
}

.merchant-profile-body {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto;
    gap: 24px;
    align-items: start;
    padding: 0 32px 26px;
}

.merchant-profile-logo {
    display: grid;
    width: 142px;
    height: 142px;
    margin-top: -72px;
    place-items: center;
    overflow: hidden;
    border: 7px solid var(--panel, #fff);
    border-radius: 28px;
    background: #ede9fe;
    box-shadow: 0 12px 30px rgba(46, 16, 101, .18);
    color: #6d28d9;
    font-size: 34px;
    font-weight: 900;
}

.merchant-profile-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.merchant-profile-main {
    padding-top: 24px;
}

.merchant-profile-main h1 {
    margin: 2px 0 5px;
    font-size: clamp(28px, 4vw, 44px);
}

.merchant-profile-main p {
    max-width: 760px;
    color: var(--muted, #667085);
    line-height: 1.7;
}

.merchant-tagline {
    color: #6d28d9;
}

.merchant-profile-actions {
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 190px;
    padding-top: 26px;
}

.merchant-profile-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--border, #e5e7eb);
    background: rgba(109, 40, 217, .035);
}

.merchant-profile-stats > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 20px 26px;
    border-right: 1px solid var(--border, #e5e7eb);
}

.merchant-profile-stats > div:last-child {
    border-right: 0;
}

.merchant-profile-stats strong {
    color: #5b21b6;
    font-size: 24px;
}

.merchant-profile-stats span,
.merchant-story {
    color: var(--muted, #667085);
}

.merchant-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 18px;
}

.merchant-story {
    white-space: pre-line;
    line-height: 1.8;
}

.merchant-contact-card .summary-row {
    align-items: flex-start;
}

.merchant-contact-card .summary-row strong {
    max-width: 65%;
    text-align: right;
}

.banner-admin-preview {
    position: relative;
}

.banner-admin-preview > img {
    width: 100%;
    aspect-ratio: 16 / 6;
    border-radius: 16px;
    object-fit: cover;
}

.banner-admin-preview .badge {
    position: absolute;
    top: 10px;
    right: 10px;
}

.courier-deduction-row {
    color: #047857;
}

.courier-deduction-row small {
    display: block;
    color: var(--muted, #667085);
    font-weight: 500;
}

@media (max-width: 900px) {
    .merchant-profile-body {
        grid-template-columns: 112px 1fr;
        padding: 0 20px 22px;
    }

    .merchant-profile-logo {
        width: 106px;
        height: 106px;
        margin-top: -52px;
        border-radius: 22px;
    }

    .merchant-profile-actions {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        padding-top: 0;
    }

    .merchant-profile-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .merchant-profile-stats > div:nth-child(2) {
        border-right: 0;
    }

    .merchant-about-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .category-promo-banner,
    .category-promo-overlay {
        min-height: 260px;
    }

    .category-promo-overlay {
        padding: 26px 22px;
        background: linear-gradient(90deg, rgba(30, 16, 65, .94), rgba(76, 29, 149, .68));
    }

    .merchant-cover {
        min-height: 150px;
    }

    .merchant-profile-body {
        grid-template-columns: 1fr;
    }

    .merchant-profile-logo {
        margin-top: -54px;
    }

    .merchant-profile-main {
        padding-top: 0;
    }

    .merchant-profile-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .merchant-profile-stats > div {
        padding: 16px;
    }
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: #fcfbff;
    color: var(--ink)
}

a {
    color: inherit;
    text-decoration: none
}

.container {
    width: min(1180px, calc(100% - 32px));
    margin: auto
}

.topbar {
    background: #3b0764;
    color: #f5f3ff;
    font-size: 13px;
    padding: 8px 0
}

.nav {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line)
}

.navin {
    height: 68px;
    display: flex;
    align-items: center;
    gap: 18px
}

.brand {
    font-size: 23px;
    font-weight: 900;
    letter-spacing: -.6px;
    color: var(--brand)
}

.brand small {
    font-size: 11px;
    color: var(--muted);
    display: block;
    font-weight: 700;
    letter-spacing: .2px
}

.spacer {
    flex: 1
}

.navlinks {
    display: flex;
    align-items: center;
    gap: 8px
}

.nav a,
.nav button.link {
    padding: 10px 12px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 14px
}

.nav a:hover {
    background: var(--soft)
}

button.link {
    border: 0;
    background: none;
    cursor: pointer
}

.hero {
    padding: 54px 0 28px;
    background: linear-gradient(135deg, #f5f3ff, #fff 60%, #faf5ff)
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.4fr .8fr;
    gap: 28px;
    align-items: center
}

.kicker {
    display: inline-flex;
    padding: 7px 10px;
    background: #ede9fe;
    color: #5b21b6;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800
}

.hero h1 {
    font-size: clamp(38px, 6vw, 72px);
    line-height: .98;
    letter-spacing: -2.6px;
    margin: 15px 0 18px
}

.hero p {
    font-size: 18px;
    line-height: 1.65;
    color: #6b6375;
    max-width: 720px
}

.hero-card {
    background: #4c1d95;
    color: #fff;
    border-radius: 24px;
    padding: 26px;
    box-shadow: var(--shadow)
}

.hero-card h3 {
    font-size: 22px;
    margin: 0 0 12px
}

.hero-stat {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 18px
}

.hero-stat div {
    padding: 14px;
    background: rgba(255, 255, 255, .09);
    border-radius: 14px
}

.section {
    padding: 34px 0
}

.section-head {
    display: flex;
    gap: 16px;
    align-items: end;
    margin-bottom: 18px
}

.section-head h2 {
    margin: 0;
    font-size: 28px;
    letter-spacing: -.7px
}

.section-head p {
    margin: 0;
    color: var(--muted)
}

.grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px
}

.card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 3px 14px rgba(109, 40, 217, .04)
}

.card-body {
    padding: 16px
}

.product-img {
    height: 180px;
    background: linear-gradient(135deg, #f3e8ff, #faf5ff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 50px;
    color: #7c3aed;
    overflow: hidden
}

.product-img img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .7px;
    font-weight: 900;
    color: var(--brand)
}

.title {
    font-size: 17px;
    font-weight: 850;
    margin: 7px 0 5px
}

.merchant {
    font-size: 13px;
    color: var(--muted)
}

.price {
    font-weight: 900;
    font-size: 18px;
    margin-top: 12px
}

.badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 850;
    background: #f3e8ff;
    color: #5b21b6
}

.badge.b {
    background: #fff0dd;
    color: #7e22ce
}

.badge.red {
    background: #fdecea;
    color: #7e22ce
}

.badge.gray {
    background: #eef1ef;
    color: #6b6375
}

.badge.blue {
    background: #e9f2ff;
    color: #7c3aed
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 11px;
    padding: 11px 15px;
    font-weight: 800;
    cursor: pointer;
    background: var(--brand);
    color: #fff
}

.btn:hover {
    filter: brightness(.94)
}

.btn.secondary {
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line)
}

.btn.danger {
    background: #7e22ce
}

.btn.sm {
    font-size: 12px;
    padding: 8px 10px
}

.actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.searchbar {
    display: grid;
    grid-template-columns: 1fr 150px 180px auto;
    gap: 10px;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    margin-top: -8px;
    box-shadow: var(--shadow)
}

input,
select,
textarea {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid #d8cff0;
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    font: inherit
}

textarea {
    min-height: 110px
}

label {
    font-weight: 750;
    font-size: 13px;
    display: block;
    margin: 0 0 6px
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px
}

.field.full {
    grid-column: 1/-1
}

.panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px;
    box-shadow: var(--shadow)
}

.table-wrap {
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff
}

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px
}

th,
td {
    padding: 13px 12px;
    text-align: left;
    border-bottom: 1px solid #f0ecf7;
    vertical-align: top
}

th {
    background: #faf8ff;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #6f667a
}

.flash {
    padding: 12px 14px;
    border-radius: 12px;
    margin: 14px 0;
    background: #f3e8ff;
    color: #5b21b6;
    border: 1px solid #ddd6fe
}

.flash.error {
    background: #fff0ef;
    color: #9a1b13;
    border-color: #f3c6c2
}

.errors {
    padding: 12px 16px;
    background: #fff0ef;
    color: #9a1b13;
    border: 1px solid #f3c6c2;
    border-radius: 12px
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px
}

.metric {
    background: #fff;
    border: 1px solid var(--line);
    padding: 18px;
    border-radius: 16px
}

.metric .n {
    font-size: 26px;
    font-weight: 900
}

.metric .l {
    font-size: 12px;
    color: var(--muted);
    margin-top: 4px
}

.two-col {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 20px
}

.summary {
    background: #f8f5ff;
    border-radius: 14px;
    padding: 15px
}

.summary-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0
}

.summary-row.total {
    border-top: 1px solid #ddd6fe;
    margin-top: 5px;
    padding-top: 13px;
    font-size: 19px;
    font-weight: 900
}

.footer {
    margin-top: 42px;
    padding: 34px 0;
    background: #2e1065;
    color: #ede9fe
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 24px
}

.muted {
    color: var(--muted)
}

.empty {
    padding: 36px;
    text-align: center;
    color: var(--muted)
}

.statusline {
    display: flex;
    gap: 7px;
    align-items: center;
    flex-wrap: wrap
}

.dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #c084fc
}

.dot.ok {
    background: #6d28d9
}

.dot.err {
    background: #9333ea
}

.dot.warn {
    background: #a855f7
}

.login-shell {
    min-height: 70vh;
    display: grid;
    place-items: center;
    padding: 40px 0
}

.login-card {
    width: min(520px, 100%);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 24px;
    box-shadow: var(--shadow)
}

.pagination {
    margin-top: 20px
}

.qrbox {
    padding: 12px;
    border: 1px dashed #b8a7d9;
    border-radius: 12px;
    background: #fcfaff;
    word-break: break-all;
    font-size: 12px
}

.hint {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.5
}

.sidebar-layout {
    display: grid;
    grid-template-columns: 210px 1fr;
    gap: 22px;
    padding-top: 24px
}

.side {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 10px;
    height: max-content;
    position: sticky;
    top: 92px
}

.side a {
    display: block;
    padding: 10px 11px;
    border-radius: 9px;
    font-weight: 750;
    font-size: 14px
}

.side a:hover {
    background: var(--soft)
}

@media(max-width:900px) {

    .hero-grid,
    .two-col,
    .sidebar-layout {
        grid-template-columns: 1fr
    }

    .grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .metric-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .searchbar {
        grid-template-columns: 1fr 1fr
    }

    .hero-card {
        display: none
    }

    .side {
        position: static
    }

    .navlinks .hide-sm {
        display: none
    }
}

@media(max-width:560px) {
    .container {
        width: min(100% - 22px, 1180px)
    }

    .grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px
    }

    .product-img {
        height: 135px
    }

    .card-body {
        padding: 12px
    }

    .title {
        font-size: 15px
    }

    .searchbar {
        grid-template-columns: 1fr
    }

    .form-grid {
        grid-template-columns: 1fr
    }

    .field.full {
        grid-column: auto
    }

    .metric-grid {
        grid-template-columns: 1fr 1fr
    }

    .hero {
        padding-top: 34px
    }

    .hero h1 {
        font-size: 42px
    }

    .footer-grid {
        grid-template-columns: 1fr
    }

    .navin {
        gap: 6px
    }

    .nav a {
        padding: 8px
    }

    .brand small {
        display: none
    }
}

.brand-lockup {
    display: inline-flex;
    align-items: center;
    gap: 9px
}

.vs-logo {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-grid;
    place-items: center;
    background: #6d28d9;
    color: #fff;
    font-size: 15px;
    font-weight: 950;
    letter-spacing: -.6px;
    box-shadow: 0 5px 14px rgba(109, 40, 217, .22);
    flex: 0 0 auto
}

.footer .vs-logo {
    background: #fff;
    color: #6d28d9
}

.address-box {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid var(--line);
    background: #fcfaff;
    border-radius: 15px
}

.address-box[hidden] {
    display: none !important
}

.shipping-options {
    display: grid;
    gap: 10px;
    margin-top: 14px
}

.shipping-option {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
    cursor: pointer
}

.shipping-option:has(input:checked) {
    border-color: #6d28d9;
    box-shadow: 0 0 0 2px rgba(109, 40, 217, .12)
}

.shipping-option input {
    width: auto
}

.shipping-option small {
    display: block;
    color: var(--muted);
    font-weight: 500;
    margin-top: 3px;
    line-height: 1.45
}

.share-card {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center
}

.merchant-hero {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center
}

.merchant-avatar {
    width: 84px;
    height: 84px;
    border-radius: 22px;
    background: #6d28d9;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 25px;
    font-weight: 950
}

.merchant-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.btn[disabled] {
    opacity: .5;
    cursor: not-allowed
}

@media(max-width:650px) {
    .merchant-hero {
        grid-template-columns: auto 1fr
    }

    .merchant-hero>.share-card {
        grid-column: 1/-1
    }

    .shipping-option {
        grid-template-columns: auto 1fr
    }

    .shipping-option>strong:last-child {
        grid-column: 2
    }
}

/* ViaShop v1.2 professional workspace */
.page-heading {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 0 0 20px
}

.page-heading h1,
.page-heading h2 {
    margin: 0;
    letter-spacing: -.5px
}

.page-heading p {
    margin: 4px 0 0;
    color: var(--muted)
}

.page-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--soft);
    font-size: 21px;
    border: 1px solid #ddd6fe;
    flex: 0 0 auto
}

.page-product-title {
    font-size: 38px;
    line-height: 1.05;
    margin: 14px 0 8px
}

.side-pro {
    padding: 12px;
    border-radius: 20px;
    box-shadow: 0 12px 34px rgba(109, 40, 217, .10);
    background: linear-gradient(180deg, #fff, #fcfaff)
}

.side-store {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 8px 15px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 8px
}

.side-store-logo {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #6d28d9;
    color: #fff;
    font-weight: 950;
    font-size: 12px;
    box-shadow: 0 5px 14px rgba(109, 40, 217, .22)
}

.side-store strong {
    display: block;
    font-size: 13px;
    max-width: 125px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.side-store small {
    display: block;
    color: var(--muted);
    font-size: 10px;
    margin-top: 2px
}

.side-menu {
    display: grid;
    gap: 3px
}

.side-pro a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 10px;
    border-radius: 11px;
    color: #453a50;
    font-weight: 750;
    font-size: 13px;
    transition: .16s ease
}

.side-pro a:hover {
    background: #f5f3ff;
    color: #6d28d9;
    transform: translateX(1px)
}

.side-pro a.active {
    background: #6d28d9;
    color: #fff;
    box-shadow: 0 6px 18px rgba(109, 40, 217, .22)
}

.menu-icon {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    background: rgba(109, 40, 217, .08);
    font-size: 14px;
    flex: 0 0 auto
}

.side-pro a.active .menu-icon {
    background: rgba(255, 255, 255, .14)
}

.side-bottom {
    border-top: 1px solid var(--line);
    margin-top: 9px;
    padding-top: 9px
}

.workspace-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px
}

.workspace-head h1 {
    margin: 0
}

.stat-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px
}

.stat-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 16px
}

.stat-card .value {
    font-size: 24px;
    font-weight: 950
}

.stat-card .label {
    font-size: 12px;
    color: var(--muted);
    margin-top: 3px
}

.stock-low {
    color: #7e22ce;
    font-weight: 800
}

.variant-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px
}

.variant-chip {
    padding: 5px 8px;
    border-radius: 8px;
    background: #f7f4fb;
    border: 1px solid var(--line);
    font-size: 11px
}

.pos-layout {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 18px
}

.pos-products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    max-height: 68vh;
    overflow: auto;
    padding-right: 4px
}

.pos-product {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
    text-align: left;
    cursor: pointer
}

.pos-product:hover {
    border-color: #b8a4ee;
    box-shadow: 0 5px 14px rgba(109, 40, 217, .08)
}

.pos-product strong {
    display: block;
    margin-bottom: 4px
}

.pos-cart {
    position: sticky;
    top: 92px
}

.pos-cart-lines {
    display: grid;
    gap: 8px;
    max-height: 300px;
    overflow: auto
}

.pos-line {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 9px;
    background: #fcfaff;
    border-radius: 10px
}

.pos-line small {
    color: var(--muted)
}

.pos-total {
    font-size: 27px;
    font-weight: 950
}

.payment-choice {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px
}

.payment-choice label {
    border: 1px solid var(--line);
    padding: 10px;
    border-radius: 10px;
    text-align: center;
    cursor: pointer
}

.payment-choice label:has(input:checked) {
    border-color: #6d28d9;
    background: #f5f3ff
}

.payment-choice input {
    width: auto
}

.receipt {
    width: min(420px, 100%);
    margin: auto;
    background: #fff;
    border: 1px solid var(--line);
    padding: 24px;
    border-radius: 18px
}

.receipt .receipt-center {
    text-align: center
}

.receipt hr {
    border: 0;
    border-top: 1px dashed #cfc4dc;
    margin: 14px 0
}

.receipt-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0
}

.receipt-row.total {
    font-size: 18px;
    font-weight: 900
}

.tabs {
    display: flex;
    gap: 8px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 16px
}

.tabs a {
    padding: 10px 12px;
    font-weight: 800;
    border-bottom: 2px solid transparent
}

.tabs a.active {
    color: #6d28d9;
    border-bottom-color: #6d28d9
}

.carrier-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 9px;
    margin: 12px 0
}

.carrier-card {
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    text-align: center;
    font-size: 12px;
    font-weight: 850
}

.carrier-card.unavailable {
    opacity: .45;
    background: #f4f5f4
}

.carrier-card small {
    display: block;
    font-size: 10px;
    font-weight: 500;
    color: var(--muted);
    margin-top: 3px
}

.role-pill {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    background: #f3e8ff;
    font-size: 11px;
    font-weight: 850
}

.swal2-popup {
    border-radius: 18px !important
}

.sidebar-layout {
    grid-template-columns: 240px 1fr
}

@media(max-width:1050px) {
    .pos-layout {
        grid-template-columns: 1fr
    }

    .pos-cart {
        position: static
    }

    .pos-products {
        grid-template-columns: repeat(2, 1fr);
        max-height: none
    }

    .stat-cards {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:900px) {
    .side-pro {
        position: static;
        display: block;
        overflow: auto
    }

    .side-menu {
        display: flex;
        overflow: auto;
        padding-bottom: 4px
    }

    .side-pro a {
        white-space: nowrap
    }

    .side-store,
    .side-bottom {
        display: none
    }

    .sidebar-layout {
        grid-template-columns: 1fr
    }

    .carrier-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:560px) {
    .pos-products {
        grid-template-columns: 1fr
    }

    .stat-cards {
        grid-template-columns: 1fr 1fr
    }

    .payment-choice {
        grid-template-columns: 1fr
    }

    .page-product-title {
        font-size: 30px
    }
}

@media print {

    .topbar,
    .nav,
    .side,
    .footer,
    .no-print,
    .swal2-container {
        display: none !important
    }

    .sidebar-layout {
        display: block
    }

    .container {
        width: 100%
    }

    .receipt {
        border: 0;
        box-shadow: none
    }
}

/* v1.2 carrier + operations */
.carrier-availability {
    display: grid;
    grid-template-columns: repeat(4, minmax(110px, 1fr));
    gap: 10px;
    margin: 16px 0
}

.carrier-pill {
    border: 1px solid #e7e0f2;
    border-radius: 14px;
    padding: 12px;
    background: #fff;
    display: flex;
    align-items: center;
    gap: 9px;
    font-weight: 800
}

.carrier-pill .carrier-mark {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #ede9fe;
    color: #6d28d9;
    display: grid;
    place-items: center;
    font-size: 12px
}

.carrier-pill.off {
    opacity: .45;
    background: #f7f8f7
}

.carrier-pill.off .carrier-mark {
    background: #eee;
    color: #7e22ce
}

.soft-panel {
    background: #fcfaff
}

.shipping-box {
    border: 1px solid #e7e0f2;
    background: #fcfaff;
    border-radius: 14px;
    padding: 14px
}

.notification-line {
    display: grid;
    gap: 5px;
    padding: 10px 0;
    border-bottom: 1px solid #f0ecf7
}

.danger-text {
    color: #a62828
}

.user-card {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px;
    border: 1px solid #e7e0f2;
    border-radius: 14px
}

.workspace-main {
    min-width: 0
}

.page-heading h1 {
    margin: 0
}

.page-heading p {
    margin: 5px 0 0;
    color: #746b7f
}

@media(max-width:760px) {
    .carrier-availability {
        grid-template-columns: repeat(2, 1fr)
    }
}

/* v1.2.1 Bootstrap Icons + Super Admin settings */
.bi {
    line-height: 1
}

.nav a .bi,
.nav button .bi {
    margin-right: 5px
}

.menu-icon .bi {
    font-size: 15px
}

.page-icon .bi {
    font-size: 21px
}

.side-section-label {
    padding: 10px 10px 5px;
    color: #8a9690;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 1.15px
}

.side-menu .side-section-label:first-child {
    padding-top: 5px
}

.side-pro a.active .bi {
    color: #fff
}

.settings-updated {
    font-size: 12px;
    color: var(--muted);
    display: inline-flex;
    align-items: center;
    gap: 6px
}

.settings-health {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px
}

.health-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
    display: flex;
    gap: 10px;
    align-items: center
}

.health-card strong {
    font-size: 12px;
    display: block
}

.health-card small {
    font-size: 10px;
    color: var(--muted);
    display: block;
    margin-top: 2px
}

.health-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #d8b4fe;
    box-shadow: 0 0 0 4px #f5f3ff
}

.health-dot.ok {
    background: #6d28d9;
    box-shadow: 0 0 0 4px #f3e8ff
}

.settings-grid {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 16px;
    align-items: start
}

.settings-index {
    position: sticky;
    top: 92px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 8px;
    display: grid;
    gap: 3px
}

.settings-index a {
    padding: 9px 10px;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 800;
    display: flex;
    gap: 8px;
    align-items: center
}

.settings-index a:hover {
    background: var(--soft);
    color: #6d28d9
}

.settings-content {
    display: grid;
    gap: 16px;
    min-width: 0
}

.settings-card {
    scroll-margin-top: 95px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 8px 22px rgba(109, 40, 217, .045)
}

.settings-card-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px
}

.settings-card-head h2 {
    font-size: 19px;
    margin: 0
}

.settings-card-head p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 12px
}

.settings-card-icon {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: #f3e8ff;
    color: #6d28d9;
    display: grid;
    place-items: center;
    flex: 0 0 auto
}

.settings-card-icon .bi {
    font-size: 17px
}

.config-badge {
    margin-left: auto;
    border-radius: 999px;
    padding: 6px 9px;
    font-size: 10px;
    font-weight: 900;
    background: #fff4e5;
    color: #9a5a00;
    white-space: nowrap
}

.config-badge.ok {
    background: #f3e8ff;
    color: #6d28d9
}

.config-badge.warn {
    background: #fff4e5;
    color: #9a5a00
}

.input-suffix {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: stretch
}

.input-suffix input {
    border-radius: 10px 0 0 10px
}

.input-suffix span {
    display: grid;
    place-items: center;
    padding: 0 12px;
    background: #f8f5ff;
    border: 1px solid var(--line);
    border-left: 0;
    border-radius: 0 10px 10px 0;
    font-size: 11px;
    color: var(--muted)
}

.switch-line {
    display: flex;
    gap: 9px;
    align-items: center;
    font-weight: 800
}

.switch-line input {
    width: auto
}

.toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin: 8px 0 18px
}

.toggle-card {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    cursor: pointer;
    background: #fcfbff
}

.toggle-card:has(input:checked) {
    border-color: #a78bfa;
    background: #faf7ff;
    box-shadow: 0 0 0 2px rgba(109, 40, 217, .06)
}

.toggle-card input {
    width: auto;
    margin-top: 3px
}

.toggle-card span {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 8px;
    align-items: center
}

.toggle-card span .bi {
    grid-row: 1/3;
    font-size: 19px;
    color: #6d28d9
}

.toggle-card strong {
    font-size: 12px
}

.toggle-card small {
    font-size: 10px;
    color: var(--muted)
}

.setting-subtitle {
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 20px 0 10px
}

.courier-checks {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 18px
}

.courier-checks label {
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 10px;
    cursor: pointer;
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 7px;
    align-items: center;
    background: #fff
}

.courier-checks label:has(input:checked) {
    border-color: #6d28d9;
    background: #faf7ff
}

.courier-checks input {
    width: auto
}

.courier-symbol {
    min-width: 33px;
    height: 27px;
    padding: 0 6px;
    border-radius: 8px;
    background: #6d28d9;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 9px;
    font-weight: 950
}

.courier-checks strong {
    font-size: 10px
}

.provider-card {
    border: 1px solid #e7e0f2;
    border-radius: 15px;
    padding: 14px;
    background: #fcfbff;
    margin-top: 10px
}

.provider-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px
}

.secret-input {
    position: relative
}

.secret-input input {
    padding-right: 38px
}

.secret-input .bi {
    position: absolute;
    right: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: #8a8096
}

.settings-savebar {
    position: sticky;
    bottom: 10px;
    z-index: 10;
    background: rgba(59, 7, 100, .96);
    color: white;
    border-radius: 16px;
    padding: 12px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    box-shadow: 0 14px 34px rgba(59, 7, 100, .28);
    backdrop-filter: blur(8px)
}

.settings-savebar strong {
    display: block;
    font-size: 12px
}

.settings-savebar small {
    font-size: 10px;
    color: #ded6e8
}

.settings-savebar .btn {
    background: white;
    color: #6d28d9
}

.error-page {
    max-width: 620px;
    margin: 40px auto;
    text-align: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 34px;
    box-shadow: var(--shadow)
}

.error-code {
    font-size: 72px;
    font-weight: 950;
    color: #e8e0f0;
    line-height: 1
}

.error-page .page-icon {
    margin: 10px auto
}

.error-page h1 {
    margin: 12px 0 8px
}

.error-page p {
    color: var(--muted);
    margin-bottom: 18px
}

@media(max-width:1050px) {
    .settings-grid {
        grid-template-columns: 1fr
    }

    .settings-index {
        position: static;
        display: flex;
        overflow: auto
    }

    .settings-index a {
        white-space: nowrap
    }

    .settings-health {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:700px) {
    .courier-checks {
        grid-template-columns: repeat(2, 1fr)
    }

    .toggle-grid {
        grid-template-columns: 1fr
    }

    .settings-card {
        padding: 15px
    }

    .settings-card-head {
        flex-wrap: wrap
    }

    .config-badge {
        margin-left: 50px
    }

    .settings-savebar {
        position: static;
        align-items: stretch;
        flex-direction: column
    }

    .settings-savebar .btn {
        width: 100%
    }
}

@media(max-width:900px) {
    .side-section-label {
        display: none
    }
}

.product-placeholder-icon {
    font-size: 3.1rem;
    opacity: .42
}

/* v1.3 retail general: finance, attendance, product gallery, dark/light */
.theme-toggle {
    width: 39px;
    height: 39px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    display: grid;
    place-items: center;
    font-size: 16px
}

.chart-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}

.chart-panel {
    min-width: 0
}

.chart-box {
    height: 270px
}

.feature-panel {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 15px;
    margin-top: 16px
}

.feature-panel h3 {
    margin: 0 0 12px
}

.product-image-editor,
.image-preview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(90px, 150px));
    gap: 10px;
    margin: 10px 0
}

.existing-image {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 7px;
    background: #fff
}

.existing-image img,
.image-preview-grid img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 9px
}

.existing-image span {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 6px;
    font-size: 11px
}

.existing-image input {
    width: auto
}

.pos-category-filter {
    display: flex;
    gap: 7px;
    overflow: auto;
    padding-top: 12px
}

.chip {
    white-space: nowrap;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer
}

.chip.active {
    background: var(--brand);
    color: #fff;
    border-color: var(--brand)
}

.label-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px
}

.link-button {
    border: 0;
    background: none;
    color: var(--brand);
    font-weight: 850;
    cursor: pointer;
    padding: 3px
}

.customer-search-wrap {
    position: relative
}

.customer-search-results {
    position: absolute;
    z-index: 50;
    left: 0;
    right: 0;
    top: 100%;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: var(--shadow);
    padding: 5px;
    max-height: 220px;
    overflow: auto
}

.customer-result {
    width: 100%;
    border: 0;
    background: transparent;
    padding: 9px;
    text-align: left;
    border-radius: 8px;
    cursor: pointer;
    color: var(--ink)
}

.customer-result:hover {
    background: var(--soft)
}

.customer-result strong,
.customer-result small {
    display: block
}

.customer-result small {
    color: var(--muted);
    margin-top: 2px
}

.app-modal[hidden] {
    display: none
}

.app-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 16px
}

.app-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 18, 11, .62);
    backdrop-filter: blur(3px)
}

.app-modal-card {
    position: relative;
    width: min(620px, 100%);
    max-height: 90vh;
    overflow: auto;
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 28px 70px rgba(76, 29, 149, .28)
}

body.modal-open {
    overflow: hidden
}

.customer-match-box {
    margin-top: 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 5px
}

.report-filter {
    display: flex;
    gap: 12px;
    align-items: end;
    flex-wrap: wrap
}

.report-filter>div {
    min-width: 180px
}

.report-sheet {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px;
    box-shadow: var(--shadow)
}

.report-title {
    border-bottom: 2px solid var(--ink);
    margin-bottom: 8px
}

.report-title h2 {
    margin: 0
}

.report-title p {
    color: var(--muted)
}

.report-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 2px;
    border-bottom: 1px solid var(--line)
}

.report-row.report-total {
    font-weight: 850;
    border-top: 1px solid var(--ink)
}

.report-row.report-grand {
    font-size: 19px;
    font-weight: 950;
    border-top: 2px solid var(--ink);
    border-bottom: 3px double var(--ink);
    margin-top: 5px
}

.attendance-today {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px
}

.attendance-today h2 {
    margin: 5px 0
}

.product-gallery-main {
    height: 380px;
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(135deg, #f3e8ff, #faf5ff);
    display: grid;
    place-items: center;
    cursor: zoom-in
}

.product-gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.product-thumbs {
    display: grid;
    grid-template-columns: repeat(3, 90px);
    gap: 8px;
    margin-top: 10px
}

.product-thumb {
    border: 2px solid transparent;
    border-radius: 10px;
    overflow: hidden;
    padding: 0;
    background: #fff;
    cursor: pointer;
    aspect-ratio: 1
}

.product-thumb.active {
    border-color: var(--brand)
}

.product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.image-zoom-dialog {
    border: 0;
    padding: 0;
    background: transparent;
    max-width: 94vw;
    max-height: 94vh
}

.image-zoom-dialog::backdrop {
    background: rgba(46, 16, 101, .88)
}

.image-zoom-dialog img {
    display: block;
    max-width: 92vw;
    max-height: 88vh;
    border-radius: 14px
}

.image-zoom-close {
    position: fixed;
    top: 18px;
    right: 18px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    font-size: 24px;
    cursor: pointer
}

.shipping-rate-only {
    border-left: 4px solid var(--brand);
    padding: 10px 12px;
    background: var(--soft);
    border-radius: 8px
}

.rupiah-input {
    font-variant-numeric: tabular-nums
}

html[data-theme="dark"] {
    color-scheme: dark;
    --ink: #f5f3ff;
    --muted: #b7adc5;
    --soft: #251b33;
    --line: #47355d;
    --shadow: 0 12px 30px rgba(76, 29, 149, .28)
}

html[data-theme="dark"] body {
    background: #2e1065;
    color: var(--ink)
}

html[data-theme="dark"] .nav {
    background: rgba(24, 16, 34, .96)
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .searchbar,
html[data-theme="dark"] .metric,
html[data-theme="dark"] .login-card,
html[data-theme="dark"] .table-wrap,
html[data-theme="dark"] .pos-product,
html[data-theme="dark"] .receipt,
html[data-theme="dark"] .carrier-card,
html[data-theme="dark"] .carrier-pill,
html[data-theme="dark"] .health-card,
html[data-theme="dark"] .settings-index,
html[data-theme="dark"] .settings-card,
html[data-theme="dark"] .courier-checks label,
html[data-theme="dark"] .provider-card,
html[data-theme="dark"] .error-page,
html[data-theme="dark"] .report-sheet,
html[data-theme="dark"] .existing-image,
html[data-theme="dark"] .app-modal-card,
html[data-theme="dark"] .customer-search-results,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .theme-toggle,
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: #4c1d95;
    color: var(--ink);
    border-color: var(--line)
}

html[data-theme="dark"] th {
    background: #5b21b6;
    color: #d0c5dc
}

html[data-theme="dark"] td {
    border-color: #3a2a4d
}

html[data-theme="dark"] .summary,
html[data-theme="dark"] .soft-panel,
html[data-theme="dark"] .shipping-box,
html[data-theme="dark"] .pos-line,
html[data-theme="dark"] .qrbox {
    background: #3b0764
}

html[data-theme="dark"] .btn.secondary {
    background: #581c87;
    color: var(--ink);
    border-color: var(--line)
}

html[data-theme="dark"] .payment-choice label {
    border-color: var(--line)
}

html[data-theme="dark"] .payment-choice label:has(input:checked) {
    background: #362050
}

html[data-theme="dark"] .hero {
    background: linear-gradient(135deg, #3b0764, #2e1065 60%, #581c87)
}

html[data-theme="dark"] .hero p {
    color: #c8bed2
}

html[data-theme="dark"] .product-img,
html[data-theme="dark"] .product-gallery-main {
    background: linear-gradient(135deg, #4c1d95, #581c87)
}

html[data-theme="dark"] .customer-result:hover {
    background: #5b21b6
}

html[data-theme="dark"] .swal2-popup {
    background: #4c1d95;
    color: var(--ink)
}

@media(max-width:900px) {
    .chart-grid {
        grid-template-columns: 1fr
    }

    .attendance-today {
        align-items: flex-start;
        flex-direction: column
    }
}

@media(max-width:620px) {

    .product-image-editor,
    .image-preview-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .product-thumbs {
        grid-template-columns: repeat(3, 1fr)
    }

    .report-row {
        font-size: 13px
    }
}

/* ViaShop v1.4 storefront, PWA, cart and local courier */
.nav-cart {
    position: relative;
    width: 48px;
    height: 44px;
    display: grid !important;
    place-items: center;
    padding: 0 !important
}

.nav-cart .bi {
    font-size: 24px
}

.nav-cart-count {
    position: absolute;
    right: 1px;
    top: 1px;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--brand);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    border: 2px solid #fff
}

.pwa-install-btn {
    color: var(--brand)
}

.receipt-powered {
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px dotted var(--line);
    font-size: 10px;
    letter-spacing: .25px;
    color: var(--muted)
}

.home-banner-section {
    padding-top: 24px
}

.slider-shell,
.product-slider-shell {
    position: relative
}

.home-banner-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    border-radius: 24px
}

.home-banner-track::-webkit-scrollbar,
.product-slider::-webkit-scrollbar,
.category-card-row::-webkit-scrollbar {
    display: none
}

.home-banner-slide {
    position: relative;
    flex: 0 0 100%;
    height: clamp(280px, 38vw, 460px);
    scroll-snap-align: start;
    overflow: hidden;
    border-radius: 24px;
    background: #3b0764
}

.home-banner-slide>img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.home-banner-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    padding: clamp(22px, 5vw, 62px);
    background: linear-gradient(90deg, rgba(46, 16, 101, .84), rgba(46, 16, 101, .38) 56%, rgba(46, 16, 101, .06));
    color: #fff
}

.home-banner-overlay>div {
    max-width: 650px
}

.home-banner-overlay h1 {
    font-size: clamp(32px, 5vw, 62px);
    line-height: 1;
    margin: 12px 0;
    letter-spacing: -1.8px
}

.home-banner-overlay p {
    font-size: clamp(14px, 2vw, 19px);
    line-height: 1.55;
    max-width: 560px
}

.slider-arrow {
    position: absolute;
    z-index: 6;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: #4c1d95;
    box-shadow: var(--shadow);
    cursor: pointer;
    display: grid;
    place-items: center
}

.slider-arrow.left {
    left: -12px
}

.slider-arrow.right {
    right: -12px
}

.category-card-row {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding: 2px 2px 8px
}

.category-card {
    flex: 0 0 145px;
    min-height: 125px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 15px;
    scroll-snap-align: start;
    box-shadow: 0 4px 14px rgba(109, 40, 217, .04);
    transition: .18s
}

.category-card:hover,
.category-card.active {
    transform: translateY(-2px);
    border-color: #a78bfa;
    background: var(--soft)
}

.category-card strong {
    font-size: 12px;
    line-height: 1.3
}

.category-icon {
    width: 48px;
    height: 48px;
    border-radius: 15px;
    background: #ede9fe;
    color: var(--brand);
    display: grid;
    place-items: center;
    font-size: 22px
}

.category-card-row.compact .category-card {
    flex-basis: 125px;
    min-height: 108px
}

.product-slider {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding: 2px 2px 14px
}

.product-slide-card {
    flex: 0 0 270px;
    scroll-snap-align: start
}

.fulfillment-badge {
    gap: 5px;
    white-space: normal;
    line-height: 1.2
}

.filter-chips {
    display: flex;
    gap: 8px;
    overflow: auto;
    margin: 14px 0
}

.filter-chip {
    white-space: nowrap;
    border: 1px solid var(--line);
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    background: #fff
}

.filter-chip.active {
    background: var(--brand);
    color: white;
    border-color: var(--brand)
}

.product-thumbs {
    display: flex !important;
    align-items: center;
    overflow-x: auto
}

.product-thumbs-label {
    font-size: 11px;
    color: var(--muted);
    font-weight: 800;
    white-space: nowrap
}

.product-description-panel {
    margin-top: 16px
}

.product-description-panel h2 {
    margin: 8px 0
}

.product-description-panel p {
    line-height: 1.7;
    color: var(--muted)
}

.product-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 14px
}

.product-meta-grid>div {
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--soft)
}

.product-meta-grid span,
.product-meta-grid strong {
    display: block
}

.product-meta-grid span {
    font-size: 10px;
    color: var(--muted);
    text-transform: uppercase
}

.product-meta-grid strong {
    font-size: 13px;
    margin-top: 3px
}

.midtrans-diagnostic {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px
}

.midtrans-diagnostic>div {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px;
    background: var(--soft)
}

.midtrans-diagnostic span,
.midtrans-diagnostic strong {
    display: block
}

.midtrans-diagnostic span {
    font-size: 10px;
    color: var(--muted)
}

.midtrans-diagnostic strong {
    font-size: 12px;
    margin-top: 3px;
    word-break: break-all
}

html[data-theme="dark"] .category-card,
html[data-theme="dark"] .filter-chip {
    background: #4c1d95;
    color: var(--ink);
    border-color: var(--line)
}

html[data-theme="dark"] .category-icon {
    background: #38254d
}

html[data-theme="dark"] .slider-arrow {
    background: #2a1f38;
    color: #fff;
    border-color: var(--line)
}

html[data-theme="dark"] .nav-cart-count {
    border-color: #4c1d95
}

@media(max-width:760px) {
    .slider-arrow {
        display: none
    }

    .home-banner-slide {
        height: 330px
    }

    .home-banner-overlay {
        align-items: flex-end;
        padding: 24px
    }

    .home-banner-overlay h1 {
        font-size: 34px
    }

    .product-slide-card {
        flex-basis: 78vw;
        max-width: 300px
    }

    .category-card {
        flex-basis: 118px;
        min-height: 110px
    }

    .midtrans-diagnostic {
        grid-template-columns: 1fr 1fr
    }

    .product-meta-grid {
        grid-template-columns: 1fr
    }

    .nav-cart {
        width: 43px
    }

    .nav-cart .bi {
        font-size: 23px
    }
}

@media print {
    .receipt-powered {
        display: block !important
    }
}

.banner-admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px
}

.banner-admin-card>img {
    width: 100%;
    aspect-ratio: 16/7;
    object-fit: cover;
    border-radius: 13px;
    margin-bottom: 12px
}

.courier-local-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px
}

.local-courier-card {
    position: relative;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px;
    background: var(--soft)
}

.local-courier-head {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 12px
}

.local-courier-head strong,
.local-courier-head small {
    display: block
}

.local-courier-head small {
    color: var(--muted)
}

.courier-avatar {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: #ede9fe;
    color: var(--brand);
    display: grid;
    place-items: center;
    font-size: 20px
}

.courier-delete-form {
    margin-top: -52px;
    margin-left: auto;
    width: max-content;
    position: relative;
    z-index: 2;
    padding: 8px
}

.compact-grid {
    gap: 9px
}

html[data-theme="dark"] .local-courier-card {
    background: #3b0764
}

@media(max-width:760px) {

    .banner-admin-grid,
    .courier-local-grid {
        grid-template-columns: 1fr
    }
}

/* ViaShop v1.5.2 — Super Admin merchant status, activation, plans & account promos */
.admin-filter-bar {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr auto;
    gap: 12px;
    align-items: end;
    margin: 16px 0;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow)
}

.merchant-status-table table {
    min-width: 1120px
}

.status-mini {
    font-size: 11px;
    color: var(--muted);
    margin-top: 6px;
    display: flex;
    gap: 5px;
    align-items: center
}

.status-mini.ok {
    color: #6d28d9
}

.progress-track {
    height: 7px;
    background: #e8efeb;
    border-radius: 999px;
    overflow: hidden;
    margin: 7px 0
}

.progress-track span {
    display: block;
    height: 100%;
    background: var(--brand);
    border-radius: inherit
}

.merchant-action-stack {
    display: grid;
    gap: 7px;
    min-width: 145px
}

.merchant-action-stack .btn {
    width: 100%
}

.merchant-status-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 20px;
    margin: 16px 0;
    box-shadow: var(--shadow)
}

.merchant-status-hero.is-waiting {
    background: linear-gradient(135deg, #fff9ef, #fff)
}

.merchant-status-hero.is-active {
    background: linear-gradient(135deg, #f3e8ff, #fff)
}

.merchant-status-hero h2 {
    margin: 8px 0 4px;
    font-size: 27px
}

.merchant-status-hero p {
    margin: 0;
    color: var(--muted)
}

.merchant-status-hero-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end
}

.merchant-status-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
    margin-bottom: 16px
}

.small-n {
    font-size: 16px !important;
    line-height: 1.25
}

.activation-panel {
    border: 2px solid #c4b5fd;
    background: linear-gradient(135deg, #faf5ff, #fff);
    scroll-margin-top: 100px
}

.activation-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 14px
}

.activation-heading h2 {
    margin: 7px 0 4px
}

.activation-payment {
    min-width: 250px;
    border: 1px solid #ddd6fe;
    background: #f3e8ff;
    padding: 13px;
    border-radius: 14px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 8px;
    align-items: center;
    color: #5b21b6
}

.activation-payment i {
    grid-row: 1/3;
    font-size: 22px
}

.activation-payment span {
    font-size: 11px
}

.activation-form-grid {
    grid-template-columns: 1fr 1fr
}

.override-box {
    padding: 12px;
    border: 1px dashed #d9ad62;
    background: #fff9ed;
    border-radius: 12px
}

.override-box label {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 0
}

.override-box input {
    width: auto;
    margin-top: 4px
}

.override-box span,
.override-box small {
    display: block
}

.override-box small {
    color: var(--muted);
    margin-top: 4px
}

.activation-submit {
    font-size: 15px;
    padding: 13px 18px
}

.warn-text {
    color: #9333ea
}

.requirement-adjust-list {
    display: grid;
    gap: 8px;
    margin-bottom: 14px
}

.requirement-adjust-list label {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 10px;
    margin: 0
}

.requirement-adjust-list input {
    width: auto;
    margin-top: 3px
}

.requirement-adjust-list span,
.requirement-adjust-list small {
    display: block
}

.requirement-adjust-list small {
    font-weight: 500;
    color: var(--muted);
    margin-top: 2px
}

.admin-thumb-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.admin-thumb-row img {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 12px
}

.legal-check-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-bottom: 12px
}

.legal-check-grid label {
    display: flex;
    gap: 7px;
    align-items: center;
    border: 1px solid var(--line);
    padding: 9px;
    border-radius: 10px;
    margin: 0
}

.legal-check-grid input {
    width: auto
}

.curation-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px
}

.admin-plan-grid,
.merchant-plan-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px
}

.plan-management-card,
.merchant-plan-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 20px;
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0
}

.plan-management-card.premium,
.merchant-plan-card.premium {
    border: 2px solid #a78bfa;
    position: relative
}

.plan-management-card.premium:before,
.merchant-plan-card.premium:before {
    content: 'PALING POPULER';
    position: absolute;
    top: -10px;
    right: 16px;
    background: var(--brand);
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .5px;
    padding: 5px 8px;
    border-radius: 999px
}

.plan-card-head {
    display: flex;
    align-items: center;
    gap: 11px
}

.plan-card-head h2 {
    margin: 3px 0 0;
    font-size: 22px
}

.plan-icon {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--soft);
    display: grid;
    place-items: center;
    color: var(--brand);
    font-size: 21px
}

.plan-price-preview {
    font-size: 26px;
    font-weight: 900;
    letter-spacing: -.8px
}

.plan-price-preview small {
    font-size: 11px;
    font-weight: 600;
    color: var(--muted);
    letter-spacing: 0
}

.money-field {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    border: 1px solid #d8cff0;
    border-radius: 10px;
    overflow: hidden
}

.money-field span {
    padding: 0 10px;
    font-weight: 800;
    color: var(--muted)
}

.money-field input {
    border: 0;
    border-left: 1px solid var(--line);
    border-radius: 0
}

.plan-active-toggle {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    border: 1px solid var(--line);
    padding: 10px;
    border-radius: 11px;
    margin: 0
}

.plan-active-toggle input {
    width: auto;
    margin-top: 3px
}

.plan-active-toggle span,
.plan-active-toggle small {
    display: block
}

.plan-active-toggle small {
    color: var(--muted);
    font-weight: 500
}

.plan-features {
    flex: 1
}

.plan-features ul,
.merchant-plan-features {
    list-style: none;
    padding: 0;
    margin: 9px 0 0;
    display: grid;
    gap: 8px
}

.plan-features li,
.merchant-plan-features li {
    display: flex;
    gap: 7px;
    align-items: flex-start;
    font-size: 13px
}

.plan-features i,
.merchant-plan-features i {
    color: var(--brand);
    margin-top: 2px
}

.duration-discount-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px
}

.duration-discount-card {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 14px;
    background: var(--soft);
    display: grid;
    gap: 5px
}

.duration-discount-card>span {
    font-size: 11px;
    color: var(--muted)
}

.duration-icon {
    font-size: 20px;
    color: var(--brand)
}

.subscription-current {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 14px
}

.subscription-current>i {
    font-size: 28px;
    color: var(--brand)
}

.admin-promo-layout {
    align-items: start
}

.admin-promo-layout aside {
    position: sticky;
    top: 92px
}

@media(max-width:1100px) {
    .merchant-status-grid {
        grid-template-columns: repeat(3, 1fr)
    }

    .admin-plan-grid,
    .merchant-plan-grid {
        grid-template-columns: 1fr
    }

    .curation-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .duration-discount-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:900px) {
    .admin-filter-bar {
        grid-template-columns: 1fr 1fr
    }

    .merchant-status-hero,
    .activation-heading {
        align-items: stretch;
        flex-direction: column
    }

    .merchant-status-hero-actions {
        justify-content: flex-start
    }

    .admin-promo-layout aside {
        position: static
    }

    .activation-payment {
        min-width: 0
    }
}

@media(max-width:560px) {

    .admin-filter-bar,
    .merchant-status-grid,
    .duration-discount-grid,
    .curation-grid,
    .legal-check-grid {
        grid-template-columns: 1fr
    }

    .activation-form-grid {
        grid-template-columns: 1fr
    }

    .merchant-status-hero-actions .btn {
        width: 100%
    }
}

html[data-theme="dark"] .admin-filter-bar,
html[data-theme="dark"] .plan-management-card,
html[data-theme="dark"] .merchant-plan-card {
    background: #4c1d95;
    border-color: var(--line)
}

html[data-theme="dark"] .merchant-status-hero.is-waiting,
html[data-theme="dark"] .merchant-status-hero.is-active,
html[data-theme="dark"] .activation-panel {
    background: #4c1d95
}

html[data-theme="dark"] .override-box {
    background: #4c1d95;
    border-color: #705d35
}

html[data-theme="dark"] .activation-payment {
    background: #2e1748;
    border-color: #5b3a8a
}

html[data-theme="dark"] .money-field {
    border-color: var(--line)
}

html[data-theme="dark"] .progress-track {
    background: #37284b
}


/* ViaShop v1.6.0 — Purple brand & configurable shipping fees */
.shipping-fee-admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 12px 0 20px
}

.shipping-fee-admin-card {
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 16px;
    background: linear-gradient(180deg, #fff, #fcfaff);
    display: grid;
    gap: 12px
}

.shipping-fee-admin-head {
    display: flex;
    align-items: center;
    gap: 11px
}

.shipping-fee-admin-head strong,
.shipping-fee-admin-head small {
    display: block
}

.shipping-fee-admin-head small {
    color: var(--muted);
    font-weight: 500;
    margin-top: 3px
}

.fee-icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    background: #ede9fe;
    color: var(--brand);
    font-size: 19px;
    flex: 0 0 auto
}

.shipping-extra-row {
    color: #5b21b6
}

.shipping-extra-row span {
    display: flex;
    align-items: center;
    gap: 7px
}

.checkout-summary-card {
    position: sticky;
    top: 92px
}

.brand-purple-note {
    color: var(--brand)
}

html[data-theme="dark"] .shipping-fee-admin-card {
    background: linear-gradient(180deg, #4c1d95, #3b0764);
    border-color: var(--line)
}

html[data-theme="dark"] .fee-icon {
    background: #35204f;
    color: #c4b5fd
}

html[data-theme="dark"] .shipping-extra-row {
    color: #c4b5fd
}

@media(max-width:900px) {
    .shipping-fee-admin-grid {
        grid-template-columns: 1fr
    }

    .checkout-summary-card {
        position: static
    }
}

/* ViaShop v1.6.1 — cache-safe compact navbar branding */
.brand-image-lockup {
    gap: 9px;
    min-width: 0;
    max-width: 270px;
    padding: 0 !important
}

.brand-mark-img {
    display: block !important;
    width: 48px !important;
    height: 32px !important;
    max-width: 48px !important;
    max-height: 32px !important;
    object-fit: contain !important;
    flex: 0 0 48px
}

.brand-wordmark {
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    column-gap: 0;
    font-size: 24px;
    font-weight: 900;
    line-height: .92;
    letter-spacing: -.8px;
    white-space: nowrap
}

.brand-wordmark>strong {
    color: var(--brand);
    font-weight: 950
}

.brand-wordmark>span {
    color: var(--ink);
    font-weight: 850
}

.brand-wordmark>small {
    grid-column: 1/-1;
    margin-top: 5px;
    font-size: 9px !important;
    line-height: 1 !important;
    letter-spacing: .15px !important;
    color: var(--muted) !important;
    font-weight: 750 !important
}

.nav .brand-image-lockup:hover {
    background: transparent
}

.navin {
    overflow: visible
}

@media(max-width:680px) {
    .brand-mark-img {
        width: 42px !important;
        height: 28px !important;
        max-width: 42px !important;
        max-height: 28px !important;
        flex-basis: 42px
    }

    .brand-wordmark {
        font-size: 20px
    }

    .brand-wordmark>small {
        display: none !important
    }

    .brand-image-lockup {
        gap: 6px;
        max-width: 150px
    }
}

@media(max-width:430px) {
    .brand-wordmark>span {
        display: none
    }

    .brand-wordmark {
        font-size: 19px
    }

    .brand-image-lockup {
        max-width: 92px
    }
}

/* ViaShop CSS-only hotfix — compact & natural public navbar branding */
.navin {
    height: 64px;
    align-items: center;
}

.brand-image-lockup {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    flex: 0 0 auto;
}

.brand-mark-img {
    display: block !important;
    width: 44px !important;
    height: 30px !important;
    max-width: 44px !important;
    max-height: 30px !important;
    object-fit: contain !important;
    flex: 0 0 44px !important;
}

.brand-wordmark {
    display: grid !important;
    grid-template-columns: max-content max-content !important;
    justify-content: start !important;
    align-items: baseline !important;
    column-gap: 0 !important;
    row-gap: 0 !important;
    width: max-content !important;
    max-width: none !important;
    font-size: 23px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: -.75px !important;
    white-space: nowrap !important;
}

.brand-wordmark>strong,
.brand-wordmark>span {
    display: block !important;
    width: max-content !important;
    margin: 0 !important;
    padding: 0 !important;
}

.brand-wordmark>strong {
    color: var(--brand) !important;
    font-weight: 950 !important
}

.brand-wordmark>span {
    color: var(--ink) !important;
    font-weight: 850 !important
}

.brand-wordmark>small {
    grid-column: 1 / -1 !important;
    display: block !important;
    width: max-content !important;
    max-width: none !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    font-size: 9px !important;
    line-height: 1.05 !important;
    letter-spacing: .1px !important;
    color: var(--muted) !important;
    font-weight: 750 !important;
    white-space: nowrap !important;
}

.nav .brand-image-lockup:hover {
    background: transparent !important
}

@media(max-width:680px) {
    .navin {
        height: 60px
    }

    .brand-image-lockup {
        gap: 6px !important
    }

    .brand-mark-img {
        width: 39px !important;
        height: 27px !important;
        max-width: 39px !important;
        max-height: 27px !important;
        flex-basis: 39px !important;
    }

    .brand-wordmark {
        font-size: 20px !important
    }

    .brand-wordmark>small {
        display: none !important
    }
}

@media(max-width:430px) {
    .brand-wordmark {
        font-size: 19px !important
    }

    .brand-wordmark>span {
        display: block !important
    }
}
/* =========================================================
   ViaShop v1.7.0 — Purple Identity & Merchant Experience
   ========================================================= */
:root {
    --ink: #3b0764;
    --text: #3b0764;
    --muted: #7e22ce;
    --brand: #7c3aed;
    --brand2: #9333ea;
    --brand-deep: #4c1d95;
    --brand-soft: #f5f3ff;
    --soft: #faf5ff;
    --line: #e9d5ff;
    --danger: #7e22ce;
    --warn: #9333ea;
    --shadow: 0 14px 34px rgba(109,40,217,.13)
}
body { background:#fdfbff; color:var(--ink) }
.topbar { background:linear-gradient(90deg,#4c1d95,#6d28d9,#7e22ce); color:#fff }
.nav { background:rgba(255,255,255,.97); border-bottom-color:#ede9fe }
.nav a, .nav button.link { color:#4c1d95 }
.nav a:hover, .nav button.link:hover { background:#f5f3ff; color:#7c3aed }

/* Official all-purple logo supplied for ViaShop v1.7 */
.brand-image-lockup { padding:0!important; width:auto!important; max-width:none!important; overflow:visible!important }
.brand-full-img { display:block!important; width:auto!important; height:58px!important; max-height:58px!important; max-width:220px!important; object-fit:contain!important; object-position:left center!important }
.navin { min-height:76px; height:76px }
.nav .brand-image-lockup:hover { background:transparent!important }
.footer-brand-box { display:inline-flex; background:#fff; border-radius:16px; padding:8px 12px; margin-bottom:10px; box-shadow:0 8px 24px rgba(76,29,149,.16) }
.footer-brand-box img { display:block; height:54px; width:auto; max-width:190px; object-fit:contain }
.viashop-side-logo { background:#fff!important; border:1px solid #e9d5ff!important; padding:5px!important; overflow:hidden }
.viashop-side-logo img { width:100%; height:100%; object-fit:contain; display:block }
.side-store.admin { background:linear-gradient(135deg,#f5f3ff,#faf5ff); color:#4c1d95 }
.side-store.admin strong,.side-store.admin small { color:#4c1d95 }

.hero { background:linear-gradient(135deg,#faf5ff,#fff 54%,#f3e8ff) }
.hero h1,.section-head h2,.page-heading h1,h1,h2,h3,.title,.price,strong { color:#4c1d95 }
.hero p,.section-head p,.hint,.merchant,small { color:#7e22ce }
.hero-card { background:linear-gradient(145deg,#5b21b6,#7c3aed); color:#fff }
.hero-card h3,.hero-card strong,.hero-card p,.hero-card small { color:#fff }
.card,.panel,.searchbar,.settings-card,.provider-card,.health-card,.login-card,.report-sheet { border-color:#e9d5ff }
.btn { background:linear-gradient(135deg,#6d28d9,#9333ea); color:#fff; box-shadow:0 7px 18px rgba(124,58,237,.16) }
.btn.secondary { background:#fff; color:#6d28d9; border-color:#d8b4fe }
.btn.danger { background:#7e22ce }
.badge,.badge.b,.badge.blue,.badge.red,.badge.gray { background:#f3e8ff; color:#6b21a8 }
input,select,textarea { border-color:#d8b4fe; color:#4c1d95; background:#fff }
input:focus,select:focus,textarea:focus { outline:3px solid rgba(147,51,234,.12); border-color:#9333ea }
.footer { background:linear-gradient(145deg,#3b0764,#5b21b6); color:#fff }
.footer a,.footer p,.footer strong { color:#fff }
.side { border-color:#e9d5ff }
.side-menu a { color:#5b21b6 }
.side-menu a:hover,.side-menu a.active { background:#f3e8ff; color:#6d28d9 }
.side-section-label { color:#9333ea }
.side-store-logo,.menu-icon,.page-icon,.settings-card-icon,.plan-icon,.fee-icon,.category-icon { background:#f3e8ff; color:#7c3aed }

/* Merchant name search */
.merchant-search-section { padding-top:0 }
.merchant-search-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px }
.merchant-search-card { display:grid; grid-template-columns:54px 1fr auto; align-items:center; gap:12px; padding:14px; background:#fff; border:1px solid #e9d5ff; border-radius:16px; box-shadow:0 6px 18px rgba(109,40,217,.06); color:#4c1d95 }
.merchant-search-card:hover { transform:translateY(-2px); border-color:#c084fc; box-shadow:var(--shadow) }
.merchant-search-logo { width:54px; height:54px; border-radius:14px; display:grid; place-items:center; overflow:hidden; background:#f5f3ff; color:#7c3aed; font-size:24px }
.merchant-search-logo img { width:100%; height:100%; object-fit:cover }
.merchant-search-card span:nth-child(2) { min-width:0; display:grid; gap:4px }
.merchant-search-card strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.merchant-search-card small { font-size:12px; color:#7e22ce }

/* PIC onboarding */
.onboarding-pic-section { min-height:calc(100vh - 180px); padding:46px 0; background:radial-gradient(circle at top,#f3e8ff,transparent 42%),#fdfbff }
.onboarding-pic-wrap { display:flex; justify-content:center }
.onboarding-pic-card { width:min(680px,100%); background:#fff; border:1px solid #e9d5ff; border-radius:26px; padding:28px; box-shadow:0 24px 64px rgba(109,40,217,.14) }
.onboarding-step { display:flex; align-items:center; gap:12px; padding:12px 14px; background:#faf5ff; border-radius:16px; margin-bottom:22px }
.onboarding-step>span { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:#7c3aed; color:#fff; font-weight:900 }
.onboarding-step div { display:grid; gap:2px }
.onboarding-pic-hero { display:grid; grid-template-columns:94px 1fr; gap:18px; align-items:center; margin-bottom:20px }
.onboarding-pic-hero img { width:94px; height:72px; object-fit:contain }
.onboarding-pic-hero h1 { margin:0 0 6px }
.onboarding-pic-hero p { margin:0; color:#7e22ce; line-height:1.6 }
.pic-upload-box { display:flex; min-height:230px; border:2px dashed #c084fc; border-radius:20px; background:#faf5ff; align-items:center; justify-content:center; flex-direction:column; gap:8px; cursor:pointer; padding:18px; text-align:center; color:#6d28d9; overflow:hidden }
.pic-upload-box>i { font-size:42px }
.pic-upload-box img:not([hidden]) { width:150px; height:150px; object-fit:cover; border-radius:18px; margin-top:8px; border:4px solid #fff; box-shadow:0 8px 24px rgba(109,40,217,.14) }
.onboarding-security { display:flex; gap:9px; align-items:flex-start; color:#6d28d9; background:#f5f3ff; border-radius:12px; padding:11px 13px; margin:14px 0 }
.onboarding-next { width:100%; min-height:48px }
.pic-verification-card { display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding:12px; background:#faf5ff; border:1px solid #e9d5ff; border-radius:14px }
.pic-verification-card>div { flex:1; min-width:190px }
.pic-verification-card img { width:84px; height:84px; border-radius:14px; object-fit:cover }

/* Product photo source / ViaShop editing service */
.photo-source-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0 }
.photo-source-card { position:relative; display:grid; grid-template-columns:auto auto 1fr; gap:10px; align-items:start; padding:14px; border:1px solid #e9d5ff; background:#fff; border-radius:16px; cursor:pointer; margin:0 }
.photo-source-card:has(input:checked) { border-color:#9333ea; background:#faf5ff; box-shadow:0 0 0 3px rgba(147,51,234,.08) }
.photo-source-card input { width:auto; margin-top:4px }
.photo-source-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:#f3e8ff; color:#7c3aed; font-size:18px }
.photo-source-card>span:last-child { display:grid; gap:5px }
.photo-source-card small { line-height:1.45 }
.photo-source-card b { color:#6d28d9 }
.photo-edit-notes { background:#faf5ff; border:1px solid #e9d5ff; border-radius:14px; padding:14px; margin-top:10px }
.photo-edit-status { display:flex; gap:12px; align-items:flex-start; margin:12px 0; padding:13px; background:linear-gradient(135deg,#f5f3ff,#faf5ff); border:1px solid #e9d5ff; border-radius:14px; color:#6d28d9 }
.photo-edit-status>i { font-size:22px }
.photo-edit-status>div { display:grid; gap:4px }
.photo-edit-status span { color:#7e22ce; font-size:13px }
.photo-edit-filter { grid-template-columns:1fr 190px auto; margin:0 }
.photo-edit-request-grid { display:grid; gap:16px; margin-top:16px }
.photo-edit-admin-card { background:#fff; border:1px solid #e9d5ff; border-radius:20px; padding:18px; box-shadow:0 8px 22px rgba(109,40,217,.06) }
.photo-edit-fee { font-size:20px; white-space:nowrap }
.photo-edit-originals,.photo-edit-merchant-notes { margin:14px 0; padding:12px; background:#faf5ff; border-radius:14px }
.photo-edit-merchant-notes p { margin:6px 0 0; color:#6b21a8; white-space:pre-wrap }

/* Online training benefit */
.training-benefit { display:flex; gap:10px; align-items:flex-start; margin:12px 0 16px; padding:12px; border-radius:14px; background:linear-gradient(135deg,#ede9fe,#faf5ff); border:1px solid #d8b4fe; color:#6d28d9 }
.training-benefit>i { font-size:20px }
.training-benefit>div { display:grid; gap:3px }
.training-benefit span { font-size:12px; line-height:1.45; color:#7e22ce }
.training-benefit.muted { background:#faf5ff; opacity:.78 }

/* Purple dark mode, not black */
html[data-theme="dark"] {
    --ink:#f5f3ff; --text:#f5f3ff; --muted:#d8b4fe; --soft:#3b0764; --line:#6b21a8; --shadow:0 12px 30px rgba(76,29,149,.35)
}
html[data-theme="dark"] body { background:#2e1065; color:#f5f3ff }
html[data-theme="dark"] .nav { background:rgba(59,7,100,.96) }
html[data-theme="dark"] .nav a,html[data-theme="dark"] .nav button.link { color:#f5f3ff }
html[data-theme="dark"] .card,html[data-theme="dark"] .panel,html[data-theme="dark"] .searchbar,html[data-theme="dark"] .metric,html[data-theme="dark"] .login-card,html[data-theme="dark"] .table-wrap,html[data-theme="dark"] .pos-product,html[data-theme="dark"] .receipt,html[data-theme="dark"] .carrier-card,html[data-theme="dark"] .carrier-pill,html[data-theme="dark"] .health-card,html[data-theme="dark"] .settings-index,html[data-theme="dark"] .settings-card,html[data-theme="dark"] .courier-checks label,html[data-theme="dark"] .provider-card,html[data-theme="dark"] .error-page,html[data-theme="dark"] .report-sheet,html[data-theme="dark"] .existing-image,html[data-theme="dark"] .app-modal-card,html[data-theme="dark"] .customer-search-results,html[data-theme="dark"] .chip,html[data-theme="dark"] .theme-toggle,html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .photo-edit-admin-card,html[data-theme="dark"] .merchant-search-card,html[data-theme="dark"] .photo-source-card { background:#4c1d95; color:#f5f3ff; border-color:#7e22ce }
html[data-theme="dark"] th { background:#5b21b6; color:#f5f3ff }
html[data-theme="dark"] td { border-color:#6b21a8 }
html[data-theme="dark"] .summary,html[data-theme="dark"] .soft-panel,html[data-theme="dark"] .shipping-box,html[data-theme="dark"] .pos-line,html[data-theme="dark"] .qrbox,html[data-theme="dark"] .photo-edit-originals,html[data-theme="dark"] .photo-edit-merchant-notes,html[data-theme="dark"] .photo-edit-notes { background:#3b0764 }
html[data-theme="dark"] .btn.secondary { background:#5b21b6; color:#fff; border-color:#9333ea }
html[data-theme="dark"] .hero { background:linear-gradient(135deg,#3b0764,#2e1065 60%,#581c87) }
html[data-theme="dark"] .hero p,html[data-theme="dark"] .hint,html[data-theme="dark"] small { color:#e9d5ff }
html[data-theme="dark"] .product-img,html[data-theme="dark"] .product-gallery-main { background:linear-gradient(135deg,#4c1d95,#581c87) }
html[data-theme="dark"] .swal2-popup { background:#4c1d95; color:#fff }
.image-zoom-dialog::backdrop { background:rgba(46,16,101,.88) }

@media(max-width:900px){
    .merchant-search-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
    .brand-full-img { height:52px!important; max-height:52px!important; max-width:190px!important }
    .navin { min-height:68px; height:68px }
}
@media(max-width:620px){
    .merchant-search-grid,.photo-source-options { grid-template-columns:1fr }
    .photo-edit-filter { grid-template-columns:1fr }
    .onboarding-pic-card { padding:20px; border-radius:20px }
    .onboarding-pic-hero { grid-template-columns:70px 1fr }
    .onboarding-pic-hero img { width:70px; height:58px }
    .brand-full-img { height:46px!important; max-height:46px!important; max-width:160px!important }
    .navin { min-height:62px; height:62px }
}

/* =========================================================
   ViaShop v1.7.1 — Balanced Purple UI & Clear Light/Dark Mode
   Purple is used as brand accent, not as the entire interface.
   ========================================================= */
:root {
    --ink: #27232d;
    --text: #27232d;
    --muted: #746f7b;
    --brand: #6d28d9;
    --brand2: #7c3aed;
    --brand-deep: #5b21b6;
    --brand-soft: #f5f3ff;
    --soft: #f7f6f9;
    --line: #e8e4eb;
    --danger: #dc2626;
    --warn: #d97706;
    --shadow: 0 12px 30px rgba(31, 24, 40, .09)
}

body {
    background: #fafafb;
    color: var(--ink)
}

/* Brand purple stays concentrated in the small top strip and action states. */
.topbar {
    background: #5b21b6;
    color: #fff
}

.nav {
    background: rgba(255, 255, 255, .97);
    border-bottom-color: var(--line)
}

.navin {
    min-height: 64px !important;
    height: 64px !important
}

.nav a,
.nav button.link {
    color: #332e39
}

.nav a:hover,
.nav button.link:hover {
    background: #f5f3ff;
    color: var(--brand)
}

/* Compact old-style lockup: symbol on the left, ViaShop + subtitle on the right. */
.brand-image-lockup {
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    flex: 0 0 auto;
    overflow: visible !important
}

.brand-mark-img {
    display: block !important;
    width: 62px !important;
    height: 60px !important;
    max-width: 462px !important;
    max-height: 45px !important;
    object-fit: contain !important;
    flex: 0 0 42px !important
}

.brand-wordmark {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 2px !important;
    width: auto !important;
    max-width: none !important;
    font-size: 22px !important;
    line-height: .95 !important;
    letter-spacing: -.55px !important;
    white-space: nowrap !important
}

.brand-wordmark > strong {
    display: block !important;
    color: var(--brand) !important;
    font-weight: 900 !important;
    line-height: .95 !important;
    margin: 0 !important;
    padding: 0 !important
}

.brand-wordmark > small {
    display: block !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    color: #77717e !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: .05px !important;
    white-space: nowrap !important
}

.brand-full-img {
    display: none !important
}

/* Neutral typography. Purple is no longer forced onto every heading/strong text. */
h1,
h2,
h3,
h4,
h5,
h6,
.title,
.price,
strong,
.hero h1,
.section-head h2,
.page-heading h1 {
    color: var(--ink)
}

p,
small,
.hint,
.merchant,
.hero p,
.section-head p {
    color: var(--muted)
}

.brand-wordmark > strong,
.btn,
.filter-chip.active,
.brand-purple-note {
    color: #fff
}

.brand-wordmark > strong {
    color: var(--brand) !important
}

/* Main surfaces stay neutral in light mode. */
.card,
.panel,
.searchbar,
.metric,
.login-card,
.table-wrap,
.pos-product,
.receipt,
.carrier-card,
.carrier-pill,
.health-card,
.settings-index,
.settings-card,
.courier-checks label,
.provider-card,
.error-page,
.report-sheet,
.existing-image,
.app-modal-card,
.customer-search-results,
.chip,
.theme-toggle,
input,
select,
textarea,
.photo-edit-admin-card,
.merchant-search-card,
.photo-source-card,
.category-card {
    background: #fff;
    color: var(--ink);
    border-color: var(--line)
}

input,
select,
textarea {
    color: var(--ink)
}

input:focus,
select:focus,
textarea:focus {
    outline: 3px solid rgba(109, 40, 217, .10);
    border-color: #8b5cf6
}

.btn {
    background: var(--brand);
    color: #fff;
    box-shadow: 0 7px 18px rgba(109, 40, 217, .16)
}

.btn:hover {
    background: var(--brand-deep)
}

.btn.secondary {
    background: #fff;
    color: #4b4452;
    border-color: #dcd7df
}

.btn.danger {
    background: var(--danger);
    color: #fff
}

.badge,
.badge.b,
.badge.blue {
    background: #f3f0ff;
    color: #5b21b6
}

.badge.red {
    background: #fef2f2;
    color: #b91c1c
}

.badge.gray {
    background: #f3f4f6;
    color: #4b5563
}

.hero {
    background: linear-gradient(135deg, #f7f5fb, #fff 58%, #faf9fc)
}

.hero-card {
    background: linear-gradient(145deg, #5b21b6, #7c3aed);
    color: #fff
}

.hero-card h3,
.hero-card strong,
.hero-card p,
.hero-card small {
    color: #fff
}

/* Keep merchant/product photos natural. Overlay uses neutral charcoal rather than purple. */
.home-banner-slide {
    background: #eeeaf2
}

.home-banner-overlay {
    background: linear-gradient(90deg, rgba(24, 21, 28, .58), rgba(24, 21, 28, .22) 58%, rgba(24, 21, 28, .03));
    color: #fff
}

.home-banner-overlay h1,
.home-banner-overlay p {
    color: #fff
}

.home-banner-overlay .kicker {
    background: rgba(255, 255, 255, .92);
    color: var(--brand-deep)
}

.category-section,
.section {
    color: var(--ink)
}

.category-card {
    box-shadow: 0 4px 14px rgba(31, 24, 40, .04)
}

.category-card:hover,
.category-card.active {
    border-color: #b8a4e9;
    background: #f8f6fc
}

.category-icon,
.menu-icon,
.page-icon,
.settings-card-icon,
.plan-icon,
.fee-icon,
.side-store-logo {
    background: #f3f0ff;
    color: var(--brand)
}

.filter-chip {
    background: #fff;
    color: #4b4452;
    border-color: var(--line)
}

.filter-chip.active {
    background: var(--brand);
    border-color: var(--brand)
}

.slider-arrow {
    background: rgba(255, 255, 255, .96);
    color: #4b4452;
    border-color: var(--line)
}

.merchant-search-card {
    color: var(--ink);
    box-shadow: 0 6px 18px rgba(31, 24, 40, .05)
}

.merchant-search-card small,
.onboarding-pic-hero p,
.photo-edit-status span,
.training-benefit span {
    color: var(--muted)
}

.side-store.admin {
    background: #f8f6fc;
    color: var(--ink)
}

.side-store.admin strong {
    color: var(--ink)
}

.side-store.admin small {
    color: var(--muted)
}

.side-menu a {
    color: #4a4450
}

.side-menu a:hover,
.side-menu a.active {
    background: #f3f0ff;
    color: var(--brand-deep)
}

.side-section-label {
    color: #817987
}

.shipping-fee-admin-card {
    background: #fff;
    border-color: var(--line)
}

.footer {
    background: #211c27;
    color: #fff
}

.footer a,
.footer p,
.footer strong {
    color: #f5f3f7
}

.footer-brand-box {
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12)
}

/* Dark mode: charcoal surfaces with purple accents, never a purple page wash. */
html[data-theme="dark"] {
    color-scheme: dark;
    --ink: #f5f3f7;
    --text: #f5f3f7;
    --muted: #aaa4b0;
    --soft: #27242b;
    --line: #3b3740;
    --brand: #8b5cf6;
    --brand2: #a78bfa;
    --brand-deep: #7c3aed;
    --shadow: 0 12px 30px rgba(0, 0, 0, .24)
}

html[data-theme="dark"] body {
    background: #151318;
    color: var(--ink)
}

html[data-theme="dark"] .topbar {
    background: #5b21b6;
    color: #fff
}

html[data-theme="dark"] .nav {
    background: rgba(24, 22, 27, .97);
    border-bottom-color: var(--line)
}

html[data-theme="dark"] .nav a,
html[data-theme="dark"] .nav button.link {
    color: #ece9ef
}

html[data-theme="dark"] .nav a:hover,
html[data-theme="dark"] .nav button.link:hover {
    background: #2b2730;
    color: #c4b5fd
}

html[data-theme="dark"] .brand-wordmark > strong {
    color: #a78bfa !important
}

html[data-theme="dark"] .brand-wordmark > small {
    color: #aaa4b0 !important
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] .title,
html[data-theme="dark"] .price,
html[data-theme="dark"] strong,
html[data-theme="dark"] .hero h1,
html[data-theme="dark"] .section-head h2,
html[data-theme="dark"] .page-heading h1 {
    color: var(--ink)
}

html[data-theme="dark"] p,
html[data-theme="dark"] small,
html[data-theme="dark"] .hint,
html[data-theme="dark"] .merchant,
html[data-theme="dark"] .hero p,
html[data-theme="dark"] .section-head p {
    color: var(--muted)
}

html[data-theme="dark"] .brand-wordmark > strong,
html[data-theme="dark"] .btn,
html[data-theme="dark"] .filter-chip.active {
    color: #fff
}

html[data-theme="dark"] .brand-wordmark > strong {
    color: #a78bfa !important
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .searchbar,
html[data-theme="dark"] .metric,
html[data-theme="dark"] .login-card,
html[data-theme="dark"] .table-wrap,
html[data-theme="dark"] .pos-product,
html[data-theme="dark"] .receipt,
html[data-theme="dark"] .carrier-card,
html[data-theme="dark"] .carrier-pill,
html[data-theme="dark"] .health-card,
html[data-theme="dark"] .settings-index,
html[data-theme="dark"] .settings-card,
html[data-theme="dark"] .courier-checks label,
html[data-theme="dark"] .provider-card,
html[data-theme="dark"] .error-page,
html[data-theme="dark"] .report-sheet,
html[data-theme="dark"] .existing-image,
html[data-theme="dark"] .app-modal-card,
html[data-theme="dark"] .customer-search-results,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .theme-toggle,
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .photo-edit-admin-card,
html[data-theme="dark"] .merchant-search-card,
html[data-theme="dark"] .photo-source-card,
html[data-theme="dark"] .category-card,
html[data-theme="dark"] .shipping-fee-admin-card {
    background: #211e24;
    color: var(--ink);
    border-color: var(--line)
}

html[data-theme="dark"] th {
    background: #29262d;
    color: #d8d3dc
}

html[data-theme="dark"] td {
    border-color: #3b3740
}

html[data-theme="dark"] .summary,
html[data-theme="dark"] .soft-panel,
html[data-theme="dark"] .shipping-box,
html[data-theme="dark"] .pos-line,
html[data-theme="dark"] .qrbox,
html[data-theme="dark"] .photo-edit-originals,
html[data-theme="dark"] .photo-edit-merchant-notes,
html[data-theme="dark"] .photo-edit-notes {
    background: #29262d
}

html[data-theme="dark"] .btn.secondary {
    background: #29262d;
    color: #ece9ef;
    border-color: #45404b
}

html[data-theme="dark"] .hero {
    background: linear-gradient(135deg, #1d1a20, #151318 60%, #211d26)
}

html[data-theme="dark"] .hero-card {
    background: linear-gradient(145deg, #5b21b6, #7c3aed)
}

html[data-theme="dark"] .hero-card h3,
html[data-theme="dark"] .hero-card strong,
html[data-theme="dark"] .hero-card p,
html[data-theme="dark"] .hero-card small {
    color: #fff
}

html[data-theme="dark"] .product-img,
html[data-theme="dark"] .product-gallery-main {
    background: #29262d
}

html[data-theme="dark"] .category-card,
html[data-theme="dark"] .filter-chip {
    background: #211e24;
    color: #ece9ef;
    border-color: var(--line)
}

html[data-theme="dark"] .category-card:hover,
html[data-theme="dark"] .category-card.active {
    background: #2b2730;
    border-color: #6f5b9a
}

html[data-theme="dark"] .category-icon,
html[data-theme="dark"] .menu-icon,
html[data-theme="dark"] .page-icon,
html[data-theme="dark"] .settings-card-icon,
html[data-theme="dark"] .plan-icon,
html[data-theme="dark"] .fee-icon,
html[data-theme="dark"] .side-store-logo {
    background: #30283d;
    color: #bca7ff
}

html[data-theme="dark"] .slider-arrow {
    background: #211e24;
    color: #ece9ef;
    border-color: var(--line)
}

html[data-theme="dark"] .side-store.admin,
html[data-theme="dark"] .onboarding-step,
html[data-theme="dark"] .photo-edit-status,
html[data-theme="dark"] .training-benefit,
html[data-theme="dark"] .training-benefit.muted,
html[data-theme="dark"] .pic-verification-card,
html[data-theme="dark"] .pic-upload-box {
    background: #27242b;
    color: var(--ink);
    border-color: var(--line)
}

html[data-theme="dark"] .swal2-popup {
    background: #211e24;
    color: var(--ink)
}

html[data-theme="dark"] .image-zoom-dialog::backdrop,
.image-zoom-dialog::backdrop {
    background: rgba(10, 9, 12, .86)
}

@media(max-width:680px) {
    .navin {
        min-height: 58px !important;
        height: 58px !important;
        gap: 10px
    }

    .brand-image-lockup {
        gap: 7px !important
    }

    .brand-mark-img {
        width: 36px !important;
        height: 26px !important;
        max-width: 36px !important;
        max-height: 26px !important;
        flex-basis: 36px !important
    }

    .brand-wordmark {
        font-size: 19px !important
    }

    .brand-wordmark > small {
        display: block !important;
        font-size: 7.5px !important;
        margin-top: 2px !important
    }
}

@media(max-width:430px) {
    .brand-wordmark {
        font-size: 18px !important
    }

    .brand-wordmark > small {
        font-size: 7px !important
    }
}

/* v1.7.1 finishing pass: keep informational surfaces neutral. */
.onboarding-pic-section {
    background: radial-gradient(circle at top, #f7f5fb, transparent 42%), #fafafb
}

.onboarding-pic-card,
.onboarding-step,
.pic-verification-card,
.photo-edit-notes,
.photo-edit-originals,
.photo-edit-merchant-notes {
    border-color: var(--line)
}

.onboarding-step,
.pic-verification-card,
.photo-edit-notes,
.photo-edit-originals,
.photo-edit-merchant-notes {
    background: #f7f6f9
}

.onboarding-security,
.photo-edit-status,
.training-benefit,
.training-benefit.muted {
    background: #f7f6f9;
    border-color: var(--line);
    color: var(--ink)
}

.onboarding-security i,
.photo-edit-status > i,
.training-benefit > i,
.photo-source-icon {
    color: var(--brand)
}

.pic-upload-box {
    background: #fbfafc;
    color: #5d5664;
    border-color: #c9bed8
}

.photo-source-card:has(input:checked) {
    background: #f8f6fc;
    border-color: #9b83d6
}

.photo-source-card b {
    color: var(--ink)
}

.photo-edit-merchant-notes p {
    color: var(--muted)
}

.theme-toggle {
    background: #fff;
    color: #4b4452;
    border-color: #dcd7df
}

.theme-toggle:hover {
    color: var(--brand);
    border-color: #bdaee0;
    background: #f8f6fc
}

html[data-theme="dark"] .theme-toggle {
    background: #29262d;
    color: #d8d3dc;
    border-color: #45404b
}

html[data-theme="dark"] .theme-toggle:hover {
    background: #302b35;
    color: #c4b5fd;
    border-color: #6f5b9a
}

html[data-theme="dark"] .nav-cart-count {
    border-color: #18161b
}

html[data-theme="dark"] .onboarding-pic-section {
    background: radial-gradient(circle at top, #211d27, transparent 42%), #151318
}

html[data-theme="dark"] .onboarding-security,
html[data-theme="dark"] .photo-edit-status,
html[data-theme="dark"] .training-benefit,
html[data-theme="dark"] .training-benefit.muted,
html[data-theme="dark"] .onboarding-step,
html[data-theme="dark"] .pic-verification-card,
html[data-theme="dark"] .photo-edit-notes,
html[data-theme="dark"] .photo-edit-originals,
html[data-theme="dark"] .photo-edit-merchant-notes,
html[data-theme="dark"] .pic-upload-box {
    background: #27242b;
    color: var(--ink);
    border-color: var(--line)
}

/* =========================================================
   ViaShop v1.7.2 — Complete Mobile Responsive Pass
   Fixes horizontal overflow, compact header/menu, tables,
   workspace pages, storefront, forms, checkout and footer.
   ========================================================= */

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

body {
    min-width: 0;
}

main,
section,
.container,
.sidebar-layout,
.workspace-main,
.panel,
.card,
.table-wrap,
.settings-content,
.pos-layout,
.two-col,
.form-grid,
.searchbar {
    min-width: 0;
    max-width: 100%;
}

img,
video,
iframe,
canvas,
svg {
    max-width: 100%;
}

.footer {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.navin {
    position: relative;
}

.nav-utilities {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
}

.mobile-nav-toggle {
    display: none;
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    place-items: center;
    font-size: 20px;
    cursor: pointer;
}

html[data-theme="dark"] .mobile-nav-toggle {
    background: #29262d;
    color: #ece9ef;
    border-color: #45404b;
}

.table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
}

.table-wrap > table {
    width: 100%;
    max-width: none;
}

.workspace-main,
.sidebar-layout > section,
.sidebar-layout > main,
.sidebar-layout > div {
    min-width: 0;
}

.actions,
.workspace-head,
.page-heading,
.section-head,
.merchant-status-hero-actions {
    max-width: 100%;
}

@media (max-width: 1050px) {
    .merchant-search-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .midtrans-diagnostic,
    .settings-health {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .sidebar-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px;
        padding-top: 14px;
    }

    .side-pro {
        width: 100%;
        max-width: 100%;
        padding: 7px;
        border-radius: 14px;
        overflow: hidden;
        position: static !important;
    }

    .side-pro .side-menu {
        display: flex;
        width: 100%;
        max-width: 100%;
        gap: 5px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 1px 1px 5px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .side-pro .side-menu::-webkit-scrollbar {
        display: none;
    }

    .side-pro .side-menu a {
        flex: 0 0 auto;
        min-height: 42px;
        padding: 8px 10px;
        white-space: nowrap;
    }

    .side-pro .side-menu .badge {
        display: none;
    }

    .workspace-head {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .admin-filter-bar,
    .photo-edit-filter {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .topbar {
        padding: 6px 0;
        font-size: 10px;
        line-height: 1.35;
        text-align: center;
    }

    .nav {
        overflow: visible;
    }

    .navin {
        min-height: 60px !important;
        height: 60px !important;
        gap: 8px !important;
    }

    .navlinks {
        display: none;
        position: absolute;
        z-index: 80;
        top: calc(100% + 8px);
        right: 0;
        width: min(310px, calc(100vw - 24px));
        max-height: calc(100vh - 95px);
        overflow-y: auto;
        padding: 8px;
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 14px;
        box-shadow: 0 18px 48px rgba(20, 16, 25, .18);
    }

    .nav.menu-open .navlinks {
        display: grid;
        gap: 3px;
    }

    .navlinks a,
    .navlinks button.link {
        width: 100%;
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 11px 12px !important;
        border-radius: 9px;
        text-align: left;
        color: var(--ink);
    }

    .navlinks form {
        margin: 0;
        width: 100%;
    }

    .navlinks .bi,
    .navlinks button .bi {
        margin-right: 0 !important;
    }

    html[data-theme="dark"] .navlinks {
        background: #211e24;
        border-color: var(--line);
    }

    .mobile-nav-toggle {
        display: grid;
    }

    .nav-utilities .theme-toggle,
    .nav-utilities .mobile-nav-toggle {
        width: 38px;
        height: 38px;
    }

    .nav-cart {
        width: 40px !important;
        height: 38px !important;
    }

    .nav-cart .bi {
        font-size: 21px;
    }

    .nav-cart-count {
        min-width: 17px;
        height: 17px;
        font-size: 9px;
        right: -1px;
        top: -1px;
    }

    .brand-image-lockup {
        min-width: 0 !important;
        max-width: calc(100vw - 190px) !important;
        overflow: hidden !important;
    }

    .brand-mark-img {
        width: 37px !important;
        height: 26px !important;
        max-width: 37px !important;
        max-height: 26px !important;
        flex-basis: 37px !important;
    }

    .brand-wordmark {
        min-width: 0;
        width: auto !important;
        max-width: 145px !important;
        font-size: 19px !important;
        white-space: nowrap !important;
        overflow: hidden;
    }

    .brand-wordmark > strong {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .brand-wordmark > small {
        display: block !important;
        width: auto !important;
        max-width: 145px !important;
        margin-top: 2px !important;
        font-size: 7px !important;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .section {
        padding: 24px 0;
    }

    .home-banner-section {
        padding-top: 14px;
    }

    .home-banner-track,
    .home-banner-slide {
        border-radius: 18px;
    }

    .home-banner-slide {
        height: clamp(230px, 69vw, 330px) !important;
    }

    .home-banner-overlay {
        align-items: flex-end;
        padding: 18px !important;
        background: linear-gradient(0deg, rgba(20, 16, 25, .68), rgba(20, 16, 25, .08) 72%);
    }

    .home-banner-overlay > div {
        width: 100%;
        max-width: 100%;
    }

    .home-banner-overlay h1 {
        max-width: 100%;
        margin: 8px 0;
        font-size: clamp(27px, 8vw, 36px) !important;
        line-height: 1.05;
        letter-spacing: -1px;
    }

    .home-banner-overlay p {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin: 8px 0 12px;
        font-size: 13px;
        line-height: 1.45;
    }

    .hero {
        padding: 30px 0 22px;
    }

    .hero h1 {
        font-size: clamp(34px, 10vw, 46px);
        line-height: 1;
        letter-spacing: -1.5px;
    }

    .hero p {
        font-size: 15px;
        line-height: 1.55;
    }

    .section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
        margin-bottom: 14px;
    }

    .section-head h2 {
        font-size: 23px;
    }

    .searchbar,
    .form-grid,
    .activation-form-grid,
    .settings-grid,
    .toggle-grid,
    .shipping-fee-admin-grid,
    .banner-admin-grid,
    .courier-local-grid,
    .photo-source-options,
    .merchant-search-grid,
    .admin-filter-bar,
    .photo-edit-filter {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .searchbar {
        gap: 9px;
        padding: 12px;
        border-radius: 13px;
    }

    .searchbar .btn,
    .admin-filter-bar .btn,
    .photo-edit-filter .btn {
        width: 100%;
    }

    .two-col,
    .pos-layout,
    .chart-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .panel,
    .settings-card,
    .report-sheet {
        padding: 15px;
        border-radius: 15px;
    }

    .page-heading {
        gap: 10px;
        align-items: flex-start;
        margin-bottom: 15px;
    }

    .page-heading h1,
    .page-heading h2 {
        font-size: clamp(22px, 7vw, 28px);
        line-height: 1.08;
    }

    .page-heading p {
        font-size: 12px;
        line-height: 1.45;
    }

    .page-icon {
        width: 39px;
        height: 39px;
        border-radius: 11px;
    }

    .table-wrap table,
    .merchant-status-table table {
        min-width: 680px;
        font-size: 12px;
    }

    th,
    td {
        padding: 10px 9px;
    }

    th {
        font-size: 10px;
    }

    td .actions {
        flex-wrap: nowrap;
    }

    .merchant-status-hero,
    .activation-heading,
    .attendance-today,
    .merchant-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .merchant-hero {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .merchant-hero > .share-card {
        grid-column: 1 / -1;
    }

    .merchant-status-grid,
    .metric-grid,
    .stat-cards,
    .settings-health,
    .midtrans-diagnostic,
    .curation-grid,
    .duration-discount-grid,
    .carrier-availability,
    .courier-checks {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .admin-plan-grid,
    .merchant-plan-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .settings-index {
        position: static;
        display: flex;
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .settings-index::-webkit-scrollbar {
        display: none;
    }

    .settings-index a {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .settings-savebar {
        position: static;
        flex-direction: column;
        align-items: stretch;
    }

    .settings-savebar .btn {
        width: 100%;
    }

    .report-filter {
        align-items: stretch;
    }

    .report-filter > div {
        width: 100%;
        min-width: 0;
    }

    .product-gallery-main {
        height: clamp(260px, 78vw, 360px);
    }

    .product-thumbs {
        max-width: 100%;
        overflow-x: auto;
    }

    .product-slider {
        gap: 12px;
        padding-bottom: 10px;
    }

    .product-slide-card {
        flex-basis: min(82vw, 290px) !important;
    }

    .category-card-row {
        gap: 9px;
    }

    .category-card {
        flex-basis: 104px !important;
        min-height: 98px !important;
        padding: 11px;
        border-radius: 14px;
    }

    .category-icon {
        width: 42px;
        height: 42px;
        font-size: 19px;
    }

    .footer {
        margin-top: 28px;
        padding: 26px 0;
    }

    .footer-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 18px;
    }

    .footer p {
        line-height: 1.5;
        margin: 8px 0;
    }

    .footer-brand-box img {
        height: 46px;
        max-width: 170px;
    }

    .onboarding-pic-section {
        padding: 24px 0;
    }

    .onboarding-pic-card {
        padding: 18px;
        border-radius: 18px;
    }

    .onboarding-pic-hero {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 12px;
    }

    .onboarding-pic-hero img {
        width: 64px;
        height: 54px;
    }

    .pic-upload-box {
        min-height: 190px;
    }

    .app-modal {
        padding: 10px;
    }

    .app-modal-card {
        max-height: calc(100vh - 20px);
        padding: 15px;
        border-radius: 16px;
    }

    .checkout-summary-card,
    .pos-cart,
    .admin-promo-layout aside {
        position: static !important;
    }
}

@media (max-width: 560px) {
    .container {
        width: calc(100% - 20px) !important;
        max-width: calc(100% - 20px) !important;
    }

    .topbar .container {
        width: calc(100% - 16px) !important;
        max-width: calc(100% - 16px) !important;
    }

    .grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .card-body {
        padding: 11px;
    }

    .product-img {
        height: 122px;
    }

    .title {
        font-size: 14px;
        line-height: 1.3;
    }

    .price {
        font-size: 16px;
    }

    .merchant,
    .hint {
        font-size: 11px;
    }

    .actions {
        gap: 7px;
    }

    .actions > .btn:not(.sm),
    .merchant-status-hero-actions .btn {
        flex: 1 1 150px;
    }

    .shipping-option {
        grid-template-columns: auto minmax(0, 1fr) !important;
        gap: 9px;
        padding: 11px;
    }

    .shipping-option > strong:last-child {
        grid-column: 2;
    }

    .receipt {
        padding: 17px;
        border-radius: 14px;
    }

    .receipt-row {
        font-size: 12px;
    }

    .report-row {
        gap: 10px;
        font-size: 12px;
    }

    .report-row > *:first-child {
        min-width: 0;
    }

    .merchant-avatar {
        width: 66px;
        height: 66px;
        border-radius: 17px;
        font-size: 20px;
    }

    .plan-management-card,
    .merchant-plan-card {
        padding: 16px;
        border-radius: 16px;
    }

    .activation-payment {
        min-width: 0;
        width: 100%;
    }

    .legal-check-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .product-image-editor,
    .image-preview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .qrbox[style*="grid-template-columns"] {
        grid-template-columns: minmax(0, 1fr) !important;
        text-align: center;
    }

    .qrbox img {
        margin-inline: auto;
    }

    .error-page {
        margin: 22px auto;
        padding: 22px 15px;
        border-radius: 17px;
    }

    .error-code {
        font-size: 54px;
    }
}

@media (max-width: 430px) {
    .navin {
        gap: 6px !important;
    }

    .brand-image-lockup {
        max-width: calc(100vw - 176px) !important;
        gap: 5px !important;
    }

    .brand-mark-img {
        width: 33px !important;
        height: 23px !important;
        max-width: 33px !important;
        max-height: 23px !important;
        flex-basis: 33px !important;
    }

    .brand-wordmark {
        font-size: 17px !important;
        max-width: 112px !important;
    }

    .brand-wordmark > small {
        display: block !important;
        max-width: 112px !important;
        font-size: 6.2px !important;
        letter-spacing: 0 !important;
    }

    .nav-utilities {
        gap: 4px;
    }

    .nav-utilities .theme-toggle,
    .nav-utilities .mobile-nav-toggle {
        width: 35px;
        height: 35px;
        border-radius: 9px;
    }

    .nav-cart {
        width: 36px !important;
        height: 35px !important;
    }

    .metric-grid,
    .stat-cards,
    .settings-health,
    .midtrans-diagnostic,
    .merchant-status-grid,
    .curation-grid,
    .duration-discount-grid,
    .carrier-availability,
    .courier-checks {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .home-banner-slide {
        height: 250px !important;
    }

    .home-banner-overlay .kicker {
        font-size: 10px;
        padding: 5px 8px;
    }

    .home-banner-overlay h1 {
        font-size: 27px !important;
    }

    .home-banner-overlay .btn {
        padding: 9px 12px;
        font-size: 12px;
    }

    .onboarding-pic-hero {
        grid-template-columns: minmax(0, 1fr);
        text-align: center;
    }

    .onboarding-pic-hero img {
        margin: auto;
    }

    .pic-verification-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .pic-verification-card > div {
        min-width: 0;
    }
}


/* =========================================================
   ViaShop v1.7.4 — Mobile Workspace Sidebar Drawer
   Merchant + Super Admin menu remains fully accessible on phone.
   ========================================================= */
.workspace-menu-toggle,
.workspace-nav-backdrop,
.workspace-sidebar-close {
    display: none;
}

@media (max-width: 900px) {
    .workspace-menu-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        min-height: 48px;
        padding: 11px 14px;
        border: 1px solid var(--line);
        border-radius: 14px;
        background: #fff;
        color: var(--ink);
        font: inherit;
        font-size: 13px;
        font-weight: 850;
        text-align: left;
        box-shadow: 0 8px 24px rgba(23, 18, 28, .06);
        cursor: pointer;
        position: relative;
        z-index: 2;
    }

    .workspace-menu-toggle > span {
        display: inline-flex;
        align-items: center;
        gap: 9px;
        min-width: 0;
    }

    .workspace-menu-toggle > span > i:first-child {
        width: 30px;
        height: 30px;
        display: grid;
        place-items: center;
        flex: 0 0 auto;
        border-radius: 9px;
        background: rgba(109, 40, 217, .09);
        color: var(--brand);
        font-size: 17px;
    }

    .workspace-menu-chevron {
        color: var(--muted);
        font-size: 14px;
        flex: 0 0 auto;
    }

    .workspace-nav-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 119;
        background: rgba(14, 11, 18, .48);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .2s ease, visibility .2s ease;
        backdrop-filter: blur(2px);
    }

    .workspace-nav-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .side-pro.workspace-sidebar {
        display: block !important;
        position: fixed !important;
        inset: 0 auto 0 0;
        z-index: 120;
        width: min(86vw, 330px) !important;
        max-width: 330px !important;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        padding: 14px;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        border: 0;
        border-right: 1px solid var(--line);
        border-radius: 0 18px 18px 0;
        background: #fff;
        box-shadow: 24px 0 60px rgba(18, 14, 22, .18);
        transform: translate3d(-105%, 0, 0);
        transition: transform .23s ease;
        visibility: hidden;
    }

    .side-pro.workspace-sidebar.is-open {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }

    .workspace-sidebar-close {
        display: grid;
        place-items: center;
        position: absolute;
        top: 12px;
        right: 12px;
        z-index: 6;
        width: 36px;
        height: 36px;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: #fff;
        color: var(--ink);
        font-size: 17px;
        cursor: pointer;
    }

    .side-pro.workspace-sidebar .side-store {
        display: flex !important;
        position: sticky;
        top: -14px;
        z-index: 3;
        margin: -14px -14px 9px;
        padding: 15px 54px 13px 14px;
        background: #fff;
        border-bottom: 1px solid var(--line);
    }

    .side-pro.workspace-sidebar .side-store strong {
        max-width: 190px;
    }

    .side-pro.workspace-sidebar .side-menu {
        display: grid !important;
        width: 100%;
        max-width: 100%;
        gap: 3px;
        overflow: visible !important;
        padding: 0 0 8px;
    }

    .side-pro.workspace-sidebar .side-section-label {
        display: block !important;
        width: 100%;
        padding: 13px 8px 5px;
        white-space: normal;
    }

    .side-pro.workspace-sidebar .side-menu a,
    .side-pro.workspace-sidebar .side-bottom a {
        display: flex !important;
        width: 100%;
        min-height: 44px;
        flex: none;
        align-items: center;
        gap: 10px;
        padding: 9px 10px;
        white-space: normal !important;
        line-height: 1.25;
    }

    .side-pro.workspace-sidebar .side-menu a > span:not(.menu-icon),
    .side-pro.workspace-sidebar .side-bottom a > span:not(.menu-icon) {
        min-width: 0;
        flex: 1 1 auto;
    }

    .side-pro.workspace-sidebar .side-menu .badge {
        display: inline-flex !important;
        margin-left: auto;
        flex: 0 0 auto;
    }

    .side-pro.workspace-sidebar .side-bottom {
        display: block !important;
        margin-top: 6px;
        padding-top: 8px;
    }

    body.workspace-nav-open {
        overflow: hidden !important;
    }

    html[data-theme="dark"] .workspace-menu-toggle,
    html[data-theme="dark"] .workspace-sidebar-close,
    html[data-theme="dark"] .side-pro.workspace-sidebar,
    html[data-theme="dark"] .side-pro.workspace-sidebar .side-store {
        background: #211e24;
        color: var(--ink);
        border-color: var(--line);
    }

    html[data-theme="dark"] .workspace-menu-toggle > span > i:first-child {
        background: #30283d;
        color: #c4b5fd;
    }
}

@media (max-width: 430px) {
    .side-pro.workspace-sidebar {
        width: min(90vw, 320px) !important;
    }

    .workspace-menu-toggle {
        min-height: 46px;
        padding: 9px 11px;
        border-radius: 12px;
    }
}

/* ViaShop v1.7.4 — verified buyer account + Google auth */
.google-auth-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:48px;border:1px solid var(--border,#e7e3ea);border-radius:12px;background:var(--surface,#fff);color:var(--ink,#24212a);font-weight:750;text-decoration:none;box-shadow:0 2px 8px rgba(24,20,30,.05);transition:.2s ease}
.google-auth-btn:hover{transform:translateY(-1px);border-color:#cfc7dc;box-shadow:0 6px 16px rgba(24,20,30,.08)}
.google-g{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:18px;font-weight:900;color:#4285f4;background:#fff;border:1px solid #e4e4e4}
.login-card-v174{max-width:470px}
.login-brand-mini{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#f4effc;color:#6d28d9;font-size:23px;margin-bottom:14px}
.login-lead{line-height:1.6;margin-top:-4px}
.login-safe-note{display:flex;align-items:center;gap:7px;margin:12px 0 2px;padding:10px 12px;border-radius:10px;background:#f7f5fa;color:#655d6c;font-size:12px}
.login-safe-note i,.verified-field + .hint i{color:#6d28d9}
.login-divider{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--muted,#77717e);font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--border,#e7e3ea);flex:1}
.verified-field{background:var(--soft,#f5f4f7)!important;color:var(--ink,#24212a)!important}
.buyer-account-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.buyer-profile-card{text-align:center;position:sticky;top:90px}
.buyer-avatar{width:76px;height:76px;border-radius:50%;overflow:hidden;margin:0 auto 12px;display:grid;place-items:center;background:#f1ebfb;color:#6d28d9;font-size:30px;border:3px solid #fff;box-shadow:0 0 0 1px var(--border,#e7e3ea)}
.buyer-avatar img{width:100%;height:100%;object-fit:cover}
.buyer-verified{display:inline-flex!important;align-items:center;gap:6px;background:#f2ecfb!important;color:#6d28d9!important}
.buyer-profile-line{margin:16px 0 0;font-size:13px}.section-title-row{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}.section-title-row h2{margin:0}.section-title-row p{margin:4px 0 0}
html[data-theme="dark"] .google-g{color:#4285f4;background:#fff}html[data-theme="dark"] .login-safe-note{background:#26222c}html[data-theme="dark"] .buyer-avatar{border-color:#201d24;background:#2b2533}
@media(max-width:820px){.buyer-account-grid{grid-template-columns:1fr}.buyer-profile-card{position:static}.section-title-row{align-items:flex-start;flex-direction:column}.section-title-row .btn{width:100%}.login-card-v174{margin-inline:auto}}
@media(min-width:821px){.footer-grid{grid-template-columns:1.45fr 1fr 1fr 1fr}}
