:root {
    --bg: #f5f8f6;
    --surface: #ffffff;
    --text: #142b3d;
    --muted: #65747b;
    --border: #dce8e1;
    --primary: #009b55;
    --primary-hover: #007b45;
    --accent: #f02f3d;
    --ink-soft: #315064;
    --deep-ink: #142b3d;
    --mint: #e9f7ef;
    --blush: #fff0f2;
}

html {
    font-size: 15px;
    direction: rtl;
    min-height: 100%;
}

body {
    background: radial-gradient(circle at 10% 0%, #e4f6eb 0, transparent 32%), var(--bg);
    color: var(--text);
    font-family:
        Vazirmatn,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    direction: rtl;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    text-align: right;
}

a {
    text-decoration: none;
}

.top-bar {
    background: #ffffff;
    border-bottom: 3px solid var(--primary);
    box-shadow: 0 8px 24px rgba(85, 45, 48, .1);
    backdrop-filter: blur(14px);
}

.top-bar-content {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 560px) minmax(0, 1fr);
    margin: 0 auto;
    max-width: 1320px;
    padding: .75rem 1rem;
}

.top-bar-logo { display: inline-flex; grid-column: 1; justify-self: start; }
.top-bar-search { display: flex; grid-column: 2; position: relative; width: 100%; }
.top-bar-search input { background: #f7faf8; border: 1px solid var(--border); border-radius: 999px; min-height: 40px; padding: .45rem 1rem .45rem 2.7rem; width: 100%; }
.top-bar-search button { align-items: center; background: var(--primary); border: 0; border-radius: 50%; color: white; display: inline-flex; height: 30px; justify-content: center; left: .35rem; position: absolute; top: 50%; transform: translateY(-50%); width: 30px; }
.top-bar-basket { align-items: center; color: var(--ink-soft); display: inline-flex; font-size: 1.25rem; justify-content: center; min-height: 38px; min-width: 38px; position: relative; }
.top-bar-basket:hover { color: var(--primary); }
.top-bar-actions { align-items: center; direction: ltr; display: flex; gap: .4rem; grid-column: 3; justify-self: end; }

body.portal-shell .site-footer-modern { margin-top: auto; }

.brand-mark {
    align-items: center;
    color: var(--text);
    display: inline-flex;
    font-size: 1.2rem;
    font-weight: 800;
    gap: .55rem;
}

    .basket-page-heading {
        align-items: flex-start;
        display: flex;
        justify-content: flex-start;
        margin-bottom: 1.5rem;
        position: relative;
    }
    .basket-page-heading > div { text-align: start; }
    .basket-back-button { align-items: center; background: linear-gradient(135deg, var(--primary), #38c982); border: 0; border-radius: 999px; box-shadow: 0 7px 16px rgba(0, 155, 85, .2); color: white; display: inline-flex; font-size: .78rem; gap: .4rem; padding: .5rem .75rem; position: absolute; inset-inline-end: 0; top: 0; transition: box-shadow .2s ease, transform .2s ease; white-space: nowrap; }
    .basket-back-button:hover { box-shadow: 0 10px 20px rgba(0, 155, 85, .3); color: white; transform: translateY(-1px); }
    .basket-groups {
        display: grid;
        gap: 1rem;
    }
    .basket-supplier-group {
        background: var(--surface);
        border: 1px solid var(--border);
        border-radius: 18px;
        overflow: hidden;
    }
    .basket-supplier-group > header {
        align-items: center;
        background: #f8fafc;
        border-bottom: 1px solid var(--border);
        display: flex;
        justify-content: space-between;
        padding: 1rem 1.25rem;
    }
    .basket-supplier-group h2 {
        font-size: 1rem;
        margin: 0;
    }
    .basket-supplier-group .eyebrow {
        font-size: .72rem;
        margin-bottom: .2rem;
    }
    .basket-group-total {
        color: var(--primary);
        font-size: .9rem;
        font-weight: 700;
    }
    .basket-items {
        padding: 0 1.25rem;
    }
    .basket-item {
        align-items: center;
        border-bottom: 1px solid #eef2f3;
        display: grid;
        gap: .8rem;
        grid-template-areas: "icon info price quantity";
        grid-template-columns: 42px minmax(0, 1fr) minmax(95px, auto) 92px;
        padding: 1rem 0;
    }
    .basket-item:last-child {
        border-bottom: 0;
    }
    .basket-item-icon {
        align-items: center;
        background: #ecfdf5;
        border-radius: 10px;
        color: var(--primary);
        display: inline-flex;
        height: 42px;
        justify-content: center;
        width: 42px;
    }
    .basket-item-icon { grid-area: icon; }
    .basket-item-icon img { border-radius: inherit; height: 100%; object-fit: cover; width: 100%; }
    .basket-item-info {
        flex: 1;
        grid-area: info;
        min-width: 0;
    }
    .basket-item-info strong,
    .basket-item-info small {
        display: block;
    }
    .basket-item-info strong { font-size: .88rem; }
    .basket-item-info small { color: var(--muted); font-size: .72rem; margin-top: .25rem; }
    .basket-quantity { color: var(--muted); font-size: .78rem; }
    .basket-price { font-size: .76rem; grid-area: price; white-space: nowrap; }
    .basket-item-action { flex: 0 0 auto; margin-inline-start: auto; white-space: nowrap; }
    .supplier-checkout-form {
        border-top: 1px solid var(--border);
        display: flex;
        justify-content: flex-start;
        padding: 1rem 1.25rem;
    }
.brand-mark:hover {
    color: var(--primary);
}

.brand-logo {
    display: block;
    height: 38px;
    max-width: 150px;
    object-fit: contain;
    width: auto;
}

.page-title {
    font-size: 2rem;
    font-weight: 700;
}

.page-subtitle {
    color: var(--muted);
    margin-top: 6px;
}

.orders-page-header {
    align-items: end;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.order-stats {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 1.5rem;
}

.order-stat {
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    display: flex;
    gap: .8rem;
    padding: 1.1rem 1.25rem;
}

.order-stat-icon {
    align-items: center;
    border-radius: 12px;
    display: inline-flex;
    font-size: 1.3rem;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.order-stat-icon.teal { background: #ccfbf1; color: #0f766e; }
.order-stat-icon.amber { background: #fef3c7; color: #b45309; }
.order-stat-icon.green { background: #dcfce7; color: #15803d; }

.order-stat small,
.order-stat strong {
    display: block;
}

.order-stat small {
    color: var(--muted);
    font-size: .78rem;
}

.order-stat strong {
    font-size: 1.45rem;
    margin-top: .15rem;
}

.orders-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow: hidden;
}

.orders-toolbar {
    align-items: center;
    border-bottom: 1px solid var(--border);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.25rem 1.4rem;
}

.orders-toolbar h2 {
    font-size: 1.05rem;
    margin: 0;
}

.orders-toolbar > div > span {
    color: var(--muted);
    display: block;
    font-size: .78rem;
    margin-top: .3rem;
}

.orders-filter {
    align-items: center;
    display: flex;
    gap: .55rem;
}

.orders-search {
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 9px;
    color: var(--muted);
    display: flex;
    gap: .45rem;
    padding: 0 .75rem;
}

.orders-search input {
    background: transparent;
    border: 0;
    min-height: 40px;
    outline: 0;
    width: 190px;
}

.orders-filter select {
    background: white;
    border: 1px solid var(--border);
    border-radius: 9px;
    min-height: 42px;
    padding: 0 .65rem;
}

.orders-empty {
    align-items: center;
    display: flex;
    flex-direction: column;
    padding: 4.5rem 1.5rem;
    text-align: center;
}

.orders-empty-icon {
    align-items: center;
    background: #e0f2fe;
    border-radius: 50%;
    color: #0369a1;
    display: flex;
    font-size: 2rem;
    height: 78px;
    justify-content: center;
    margin-bottom: 1.2rem;
    width: 78px;
}

.orders-empty h3 {
    font-size: 1.2rem;
    margin-bottom: .45rem;
}

.orders-empty p {
    color: var(--muted);
    margin-bottom: 1.4rem;
}

.eyebrow {
    align-items: center;
    color: var(--primary);
    display: inline-flex;
    font-size: .84rem;
    font-weight: 700;
    gap: .4rem;
    letter-spacing: 0;
    margin-bottom: .7rem;
}

.hero-section {
    align-items: center;
    background: linear-gradient(135deg, #0f766e 0%, #155e75 100%);
    border-radius: 24px;
    color: white;
    display: grid;
    gap: 3rem;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr);
    margin-bottom: 1.5rem;
    min-height: 430px;
    overflow: hidden;
    padding: clamp(2rem, 6vw, 5rem);
    position: relative;
}

.hero-copy {
    position: relative;
    z-index: 1;
}

.hero-copy .eyebrow {
    color: #fde68a;
}

.hero-copy h1 {
    font-size: clamp(2.4rem, 5vw, 4.6rem);
    font-weight: 500;
    line-height: 1.25;
    margin: 0 0 1rem;
}

.hero-copy h1 strong {
    color: #fcd34d;
    font-weight: 800;
}

.hero-copy p {
    color: rgba(255, 255, 255, .82);
    font-size: 1.05rem;
    line-height: 2;
    max-width: 540px;
}

.hero-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.8rem;
}

.hero-actions .btn-primary {
    background: #fbbf24;
    border-color: #fbbf24;
    color: #172554;
}

.hero-note {
    color: rgba(255, 255, 255, .8);
    font-size: .88rem;
}

.hero-note i {
    color: #a7f3d0;
    margin-left: .3rem;
}

.hero-visual {
    min-height: 300px;
    position: relative;
}

.hero-visual img {
    border: 8px solid rgba(255, 255, 255, .2);
    border-radius: 22px;
    box-shadow: 0 24px 48px rgba(2, 44, 34, .24);
    height: 300px;
    object-fit: cover;
    position: absolute;
    transform: rotate(3deg);
    width: 100%;
    z-index: 1;
}

.hero-orbit {
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 50%;
    height: 360px;
    position: absolute;
    right: -30px;
    top: -30px;
    width: 360px;
}

.orbit-two {
    height: 250px;
    right: 45px;
    top: 35px;
    width: 250px;
}

.hero-badge {
    align-items: center;
    background: white;
    border-radius: 13px;
    bottom: 6px;
    color: var(--text);
    display: flex;
    gap: .65rem;
    padding: .75rem 1rem;
    position: absolute;
    right: -18px;
    z-index: 2;
}

.hero-badge i {
    color: var(--primary);
    font-size: 1.4rem;
}

.hero-badge span {
    font-size: .76rem;
}

.hero-badge strong {
    display: block;
    font-size: 1rem;
}

.feature-strip {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 3.5rem;
    overflow: hidden;
}

.feature-item {
    align-items: center;
    display: flex;
    gap: .8rem;
    padding: 1.15rem 1.35rem;
}

.feature-item + .feature-item {
    border-right: 1px solid var(--border);
}

.feature-item > span {
    align-items: center;
    background: #ecfdf5;
    border-radius: 10px;
    color: var(--primary);
    display: inline-flex;
    font-size: 1.2rem;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.feature-item strong,
.feature-item small {
    display: block;
}

.feature-item strong {
    font-size: .9rem;
}

.feature-item small {
    color: var(--muted);
    font-size: .75rem;
    margin-top: .2rem;
}

/* Cards */

.card {
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: none;
}

.product-card {
    height: 100%;
    background: var(--surface);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 35px rgba(15, 23, 42, .1);
}

.product-image-wrap {
    overflow: hidden;
    position: relative;
}

.product-image {
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform .3s ease;
    border-radius: 12px 12px 0 0;
}

.product-card:hover .product-image {
    transform: scale(1.05);
}

.product-card-link {
    color: inherit;
    display: block;
}

.product-card-title {
    color: var(--text);
    display: block;
}

.product-card-title:hover {
    color: var(--primary);
}

.product-details-page {
    margin: 0 auto;
    max-width: 1120px;
}

.product-details-layout {
    align-items: start;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
    margin-top: 1.25rem;
}

.product-gallery-panel,
.product-details-copy {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 1.25rem;
}

.product-carousel {
    background: var(--mint);
    border-radius: 12px;
    overflow: hidden;
}

.product-carousel .carousel-item {
    transition: transform .28s ease-in-out;
}

.product-detail-image {
    aspect-ratio: 1.15;
    display: block;
    object-fit: contain;
    width: 100%;
}

.product-gallery-thumbnails {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: .85rem;
}

.product-gallery-thumbnail {
    background: var(--surface);
    border: 2px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    height: 64px;
    overflow: hidden;
    padding: 0;
    width: 64px;
}

.product-gallery-thumbnail.active {
    border-color: var(--primary);
}

.product-gallery-thumbnail img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.product-details-copy .page-title {
    margin-top: .65rem;
}

.product-details-meta {
    border-bottom: 1px solid var(--border);
    border-top: 1px solid var(--border);
    color: var(--muted);
    display: flex;
    flex-wrap: wrap;
    gap: .8rem 1.25rem;
    margin: 1.25rem 0;
    padding: .85rem 0;
}

.product-details-meta span {
    font-size: .78rem;
}

.product-details-meta i {
    color: var(--primary);
    margin-left: .25rem;
}

.product-details-price {
    color: var(--text);
    font-size: 2rem;
    font-weight: 800;
}

.product-details-price small {
    color: var(--muted);
    font-size: .82rem;
    font-weight: 500;
}

.product-details-stock {
    align-items: center;
    display: flex;
    font-size: .82rem;
    gap: .4rem;
    margin: 1rem 0 1.4rem;
}

.product-details-stock.available { color: #08783e; }
.product-details-stock.unavailable { color: #c52231; }
.product-details-action { margin-bottom: 1rem; }
.product-details-back { color: var(--muted); font-size: .8rem; }
.product-details-back:hover { color: var(--primary); }

.product-tag {
    background: #fef3c7;
    border-radius: 999px;
    color: #92400e;
    font-size: .72rem;
    font-weight: 700;
    padding: .35rem .6rem;
    position: absolute;
    right: .8rem;
    top: .8rem;
}

.catalog-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: 235px minmax(0, 1fr); }
.category-sidebar { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 1rem; position: sticky; top: 90px; }
.category-sidebar-heading { align-items: start; border-bottom: none; display: flex; justify-content: space-between; margin-bottom: 0; padding-bottom: 0; }
.category-sidebar-heading .eyebrow { margin-bottom: 0; }
.category-sidebar-heading > a { color: var(--primary); font-size: .72rem; margin-top: 0; }
.category-menu-toggle { align-items: center; background: transparent; border: 0; color: inherit; display: flex; gap: .35rem; padding: 0; }
.category-menu-toggle { direction: rtl; justify-content: flex-start; }
.category-menu-toggle .eyebrow { margin-bottom: 0; }
.category-menu-chevron { color: var(--primary); display: none; font-size: .75rem; transition: transform .2s ease; }
.category-menu-toggle[aria-expanded="true"] .category-menu-chevron { transform: rotate(180deg); }
.category-menu-content { display: block; }
.category-tree { font-size: .82rem; }
.category-node { margin: .15rem 0; }
.category-node-header { align-items: center; display: flex; }
.category-link { align-items: center; border-radius: 8px; color: var(--ink-soft); display: flex; flex: 1; gap: .5rem; min-width: 0; padding: .5rem .55rem; }
.category-link:hover, .category-link.selected { background: #ecfdf5; color: var(--primary); font-weight: 700; }
.category-link i { color: #94a3b8; font-size: .85rem; }
.category-link.selected i { color: var(--primary); }
.category-branch-toggle { align-items: center; background: transparent; border: 0; border-radius: 6px; color: #94a3b8; display: flex; font-size: .7rem; justify-content: center; margin-right: .15rem; padding: .4rem; transition: color .2s ease, transform .2s ease; }
.category-branch-toggle:hover { background: #ecfdf5; color: var(--primary); }
.category-branch-toggle[aria-expanded="true"] { transform: rotate(180deg); }
.category-children { border-right: 1px solid #dbe5e5; margin-right: .8rem; padding-right: .45rem; }
.catalog-content { min-width: 0; }
.catalog-breadcrumb { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.catalog-breadcrumb a { color: var(--muted); font-size: .78rem; }
.catalog-breadcrumb a:hover, .catalog-breadcrumb a.active { color: var(--primary); font-weight: 700; }
.catalog-breadcrumb i { color: #94a3b8; font-size: .65rem; }

.product-name {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 6px;
}

.product-supplier {
    color: var(--muted);
    font-size: .88rem;
}

.product-price {
    font-weight: 700;
    font-size: 1.1rem;
}

.product-price small {
    color: var(--muted);
    font-size: .7rem;
    font-weight: 500;
}

/* Buttons */

.btn {
    border-radius: 9px;
    font-weight: 500;
}

.btn-primary {
    background: var(--primary);
    border-color: var(--primary);
}

.btn-primary:hover {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
}

.add-button {
    align-items: center;
    display: inline-flex;
    height: 40px;
    justify-content: center;
    width: 40px;
}

/* Forms */

.form-control,
.form-select {
    border-radius: 9px;
    border-color: var(--border);
    min-height: 42px;
}

.form-control:focus,
.form-select:focus {
    border-color: #93c5fd;
    box-shadow: 0 0 0 .2rem rgba(15,118,110,.12);
}

.search-button {
    align-items: center;
    display: inline-flex;
    gap: .4rem;
    justify-content: center;
}

.empty-state {
    align-items: center;
    background: var(--surface);
    border: 1px dashed #b6c9c7;
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    margin: 2rem auto;
    max-width: 620px;
    padding: 4rem 2rem;
    text-align: center;
}

.empty-icon {
    align-items: center;
    background: #ccfbf1;
    border-radius: 50%;
    color: var(--primary);
    display: flex;
    font-size: 2rem;
    height: 76px;
    justify-content: center;
    margin-bottom: 1.2rem;
    width: 76px;
}

.empty-state h1 {
    font-size: 1.8rem;
    margin-bottom: .5rem;
}

.empty-state p {
    color: var(--muted);
    margin-bottom: 1.5rem;
}

.page-shell {
    flex: 1 0 auto;
    width: 100%;
}

.supplier-nav-link {
    color: var(--primary) !important;
    font-weight: 700;
}

.supplier-welcome {
    align-items: center;
    background: linear-gradient(135deg, #155e75, #0f766e);
    border-radius: 22px;
    color: white;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    padding: 2.2rem 2.5rem;
}

.supplier-welcome .eyebrow,
.supplier-welcome p {
    color: rgba(255, 255, 255, .8);
}

.supplier-welcome .page-title { color: white; }
.supplier-welcome p { margin: 0; }
.supplier-welcome .btn-primary { background: #fbbf24; border-color: #fbbf24; color: #172554; }

.supplier-stat-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 1.5rem;
}

.supplier-stat {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1.2rem;
}

.supplier-stat-icon {
    align-items: center;
    border-radius: 11px;
    display: inline-flex;
    font-size: 1.2rem;
    height: 42px;
    justify-content: center;
    margin-bottom: .75rem;
    width: 42px;
}

.supplier-stat-icon.teal { background: #ccfbf1; color: #0f766e; }
.supplier-stat-icon.green { background: #dcfce7; color: #15803d; }
.supplier-stat-icon.amber { background: #fef3c7; color: #b45309; }
.supplier-stat-icon.blue { background: #dbeafe; color: #1d4ed8; }
.supplier-stat small, .supplier-stat strong, .supplier-stat > span:last-child { display: block; }
.supplier-stat small { color: var(--muted); font-size: .8rem; }
.supplier-stat strong { font-size: 1.5rem; margin: .1rem 0; }
.supplier-stat > span:last-child { color: var(--muted); font-size: .73rem; }

.supplier-quick-links {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow: hidden;
}

.supplier-form-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    margin: 0 auto;
    max-width: 720px;
    overflow: hidden;
}

.form-panel-heading {
    background: #f0fdfa;
    border-bottom: 1px solid var(--border);
    padding: 1.7rem 2rem;
}

.supplier-product-form {
    display: grid;
    gap: 1rem;
    padding: 2rem;
}

.supplier-product-form label {
    color: var(--ink-soft);
    font-size: .86rem;
    font-weight: 600;
}

.supplier-product-form input { margin-top: .45rem; }

.form-panel-actions {
    display: flex;
    gap: .65rem;
    justify-content: flex-start;
    margin-top: .5rem;
}

.onboarding-shell {
    margin: 0 auto;
    max-width: 820px;
}

.onboarding-header {
    margin-bottom: 1.5rem;
    text-align: center;
}

.onboarding-header h1 {
    font-size: clamp(1.7rem, 4vw, 2.4rem);
    margin-bottom: .6rem;
}

.onboarding-header p {
    color: var(--muted);
}

.onboarding-steps {
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    color: var(--muted);
    display: flex;
    gap: .85rem;
    justify-content: center;
    margin-bottom: 1rem;
    padding: .85rem;
}

.onboarding-steps span {
    align-items: center;
    display: inline-flex;
    font-size: .8rem;
    gap: .4rem;
    white-space: nowrap;
}

.onboarding-steps b {
    align-items: center;
    background: #e2e8f0;
    border-radius: 50%;
    display: inline-flex;
    height: 25px;
    justify-content: center;
    width: 25px;
}

.onboarding-steps .current { color: var(--primary); font-weight: 700; }
.onboarding-steps .current b { background: var(--primary); color: white; }

.onboarding-form,
.onboarding-message {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: clamp(1.4rem, 4vw, 2.4rem);
}

.onboarding-form h2 { font-size: 1.25rem; margin-bottom: .4rem; }
.form-help { color: var(--muted); font-size: .85rem; margin-bottom: 1.5rem; }
.onboarding-form label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: 1rem; }
.onboarding-form label .form-control { margin-top: .4rem; }
.field-validation-error { color: #b91c1c; display: block; font-size: .75rem; font-weight: 500; margin-top: .35rem; }

.onboarding-actions {
    display: flex;
    gap: .6rem;
    justify-content: flex-start;
    margin-top: 1.5rem;
}

.review-grid {
    background: #f8fafc;
    border: 1px solid var(--border);
    border-radius: 12px;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, 1fr);
    padding: 1rem;
}

.review-grid span { color: var(--muted); font-size: .78rem; }
.review-grid strong { color: var(--text); display: block; font-size: .9rem; margin-top: .25rem; }
.review-grid .full { grid-column: 1 / -1; }

.onboarding-message {
    align-items: center;
    display: flex;
    gap: 1rem;
}

.onboarding-message > i { font-size: 2rem; }
.onboarding-message strong { display: block; }
.onboarding-message p { color: var(--muted); font-size: .85rem; margin: .35rem 0 0; }
.onboarding-message .btn { margin-right: auto; white-space: nowrap; }
.onboarding-message.pending > i { color: #b45309; }
.onboarding-message.approved > i { color: #15803d; }
.onboarding-message.rejected > i { color: #b91c1c; }

.admin-nav-link {
    color: var(--primary) !important;
    font-weight: 700;
}

.admin-menu {
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 16px 35px rgba(15, 23, 42, .12);
    min-width: 190px;
    padding: .45rem;
}

.admin-menu .dropdown-item {
    border-radius: 8px;
    padding: .55rem .7rem;
}

.admin-menu .dropdown-item:hover {
    background: #ecfdf5;
    color: var(--primary);
}

.admin-welcome {
    align-items: center;
    background: linear-gradient(135deg, #0f766e, #155e75);
    border-radius: 22px;
    color: white;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    overflow: hidden;
    padding: 2.2rem 2.5rem;
    position: relative;
}

.admin-welcome::after {
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    content: "";
    height: 260px;
    position: absolute;
    left: -40px;
    top: -130px;
    width: 260px;
}

.admin-welcome .eyebrow,
.admin-welcome p {
    color: rgba(255, 255, 255, .78);
}

.admin-welcome .page-title {
    color: white;
}

.admin-welcome p {
    margin: 0;
}

.admin-welcome-icon {
    align-items: center;
    background: rgba(255, 255, 255, .15);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 18px;
    display: flex;
    font-size: 2.3rem;
    height: 82px;
    justify-content: center;
    width: 82px;
}

.admin-stat-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 1.5rem;
}

.admin-stat-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1.2rem;
}

.admin-stat-icon,
.summary-icon {
    align-items: center;
    border-radius: 11px;
    display: inline-flex;
    font-size: 1.2rem;
    height: 42px;
    justify-content: center;
    margin-bottom: .75rem;
    width: 42px;
}

.admin-stat-icon.teal, .summary-icon.teal { background: #ccfbf1; color: #0f766e; }
.admin-stat-icon.blue, .summary-icon.blue { background: #dbeafe; color: #1d4ed8; }
.admin-stat-icon.amber, .summary-icon.amber { background: #fef3c7; color: #b45309; }
.admin-stat-icon.purple { background: #ede9fe; color: #7c3aed; }
.summary-icon.green { background: #dcfce7; color: #15803d; }

.admin-stat-card small,
.admin-stat-card strong,
.admin-stat-card > span:last-child {
    display: block;
}

.admin-stat-card small {
    color: var(--muted);
    font-size: .8rem;
}

.admin-stat-card strong {
    font-size: 1.65rem;
    margin: .1rem 0;
}

.admin-stat-card > span:last-child {
    color: var(--muted);
    font-size: .73rem;
}

.admin-quick-links,
.admin-table-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow: hidden;
    padding: 10px;
}

.admin-section-title,
.admin-table-toolbar {
    align-items: center;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    padding: 1.25rem 1.4rem;
}

.admin-section-title h2,
.admin-table-toolbar h2 {
    font-size: 1.05rem;
    margin: 0;
}

.admin-section-title span,
.admin-table-toolbar span {
    color: var(--muted);
    display: block;
    font-size: .78rem;
    margin-top: .3rem;
}

.admin-link-grid {
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(2, 1fr);
}

.category-tree {
    list-style: none;
    margin: 0;
    padding: .55rem 1.1rem .7rem;
}

.category-tree-node {
    list-style: none;
    margin: 0;
    padding: 0;
}

.category-tree-row {
    align-items: center;
    border-bottom: 1px solid #eef2f3;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    min-height: 50px;
    padding: .65rem .75rem;
}

.category-tree-node:last-child > .category-tree-row {
    border-bottom: 0;
}

.category-tree-name {
    align-items: center;
    color: var(--text);
    display: inline-flex;
    font-size: .86rem;
    font-weight: 600;
    gap: .55rem;
    min-width: 0;
}

.category-tree-name i {
    color: var(--primary);
    flex: 0 0 auto;
    font-size: .95rem;
}

.category-tree-delete {
    flex: 0 0 auto;
    margin: 0;
}

.category-tree-delete button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 32px;
    min-width: 32px;
    padding: .25rem;
}

.category-tree-children {
    border-right: 1px solid #cbd5e1;
    list-style: none;
    margin: 0 1.35rem 0 0;
    padding: 0 .9rem 0 0;
}

.category-tree-children .category-tree-row {
    background: #fbfdfd;
}

.admin-link-card {
    align-items: center;
    border-bottom: 1px solid var(--border);
    display: flex;
    gap: .85rem;
    padding: 1.2rem 1.4rem;
    transition: background .2s ease;
}

.admin-link-card:hover {
    background: #f0fdfa;
}

.admin-link-card > i:first-child {
    align-items: center;
    background: #ecfdf5;
    border-radius: 11px;
    color: var(--primary);
    display: inline-flex;
    font-size: 1.2rem;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.admin-link-card span {
    flex: 1;
}

.admin-link-card strong,
.admin-link-card small {
    display: block;
}

.admin-link-card strong { color: var(--text); font-size: .9rem; }
.admin-link-card small { color: var(--muted); font-size: .74rem; margin-top: .25rem; }
.admin-link-card > i:last-child { color: var(--muted); }

.admin-page-heading {
    align-items: end;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.admin-order-summary {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 1.5rem;
}

.admin-order-summary > div {
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 15px;
    display: flex;
    gap: .75rem;
    padding: 1rem;
}

.admin-order-summary small,
.admin-order-summary strong { display: block; }
.admin-order-summary small { color: var(--muted); font-size: .75rem; }
.admin-order-summary strong { font-size: 1.35rem; margin-top: .15rem; }

.admin-table-toolbar {
    gap: 1rem;
}

.admin-order-filters {
    align-items: center;
    display: flex;
    gap: .55rem;
}

.admin-order-filters select {
    background: white;
    border: 1px solid var(--border);
    border-radius: 9px;
    min-height: 42px;
    padding: 0 .65rem;
}

.admin-empty-table {
    align-items: center;
    display: flex;
    flex-direction: column;
    padding: 4rem 1.5rem;
    text-align: center;
}

.admin-empty-table h3 { font-size: 1.1rem; margin-bottom: .45rem; }
.admin-empty-table p { color: var(--muted); margin-bottom: 1.3rem; }

.admin-data-table-wrap {
    overflow-x: auto;
}

.admin-data-table {
    margin: 0;
    min-width: 760px;
}

.admin-data-table th {
    background: #f8fafc;
    border-bottom: 1px solid var(--border);
    color: var(--muted);
    font-size: .78rem;
    font-weight: 600;
    padding: 1rem 1.2rem;
    white-space: nowrap;
}

.checkout-shell { margin: 0 auto; max-width: 980px; }
.checkout-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 1.5rem; }
.checkout-progress { align-items: center; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; color: var(--muted); display: flex; font-size: .72rem; gap: .55rem; padding: .55rem .75rem; }
.checkout-progress span { align-items: center; display: inline-flex; gap: .3rem; white-space: nowrap; }
.checkout-progress b { align-items: center; background: #e2e8f0; border-radius: 50%; display: inline-flex; height: 21px; justify-content: center; width: 21px; }
.checkout-progress .done, .checkout-progress .active { color: var(--primary); font-weight: 700; }
.checkout-progress .done i { background: #dcfce7; border-radius: 50%; color: #15803d; padding: .15rem; }
.checkout-progress .active b { background: var(--primary); color: white; }
.checkout-layout { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .8fr); }
.checkout-card { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; }
.checkout-card-heading { align-items: center; background: #f8fafc; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; padding: 1.1rem 1.25rem; }
.checkout-card-heading h2 { font-size: 1rem; margin: 0; }
.checkout-card-heading .eyebrow { font-size: .7rem; margin-bottom: .2rem; }
.supplier-badge { background: #ccfbf1; border-radius: 999px; color: #0f766e; font-size: .72rem; font-weight: 700; padding: .4rem .65rem; }
.checkout-item { align-items: center; border-bottom: 1px solid #eef2f3; display: flex; gap: .75rem; padding: 1rem 1.25rem; }
.checkout-item:last-child { border-bottom: 0; }
.checkout-item-icon { align-items: center; background: #ecfdf5; border-radius: 10px; color: var(--primary); display: inline-flex; height: 40px; justify-content: center; width: 40px; }
.checkout-item-name { flex: 1; }
.checkout-item-name strong, .checkout-item-name small { display: block; }
.checkout-item-name strong { font-size: .86rem; }
.checkout-item-name small { color: var(--muted); font-size: .72rem; margin-top: .2rem; }
.checkout-item > strong { font-size: .83rem; white-space: nowrap; }
.checkout-item > strong small { color: var(--muted); font-size: .68rem; font-weight: 500; }
.checkout-item-quantity { background: #f1f5f9; border-radius: 7px; color: var(--ink-soft); font-size: .75rem; padding: .35rem .5rem; }
.checkout-item-count { background: #f8fafc; border-top: 1px solid var(--border); color: var(--muted); font-size: .75rem; padding: .85rem 1.25rem; }
.checkout-item-count i { color: var(--primary); margin-left: .3rem; }
.checkout-total-card { padding: 1.5rem; }
.checkout-no-payment { align-items: center; background: #ecfdf5; border: 1px solid #bbf7d0; border-radius: 11px; color: #15803d; display: flex; gap: .55rem; margin-bottom: 1.5rem; padding: .7rem; }
.checkout-no-payment > i { font-size: 1.3rem; }
.checkout-no-payment strong, .checkout-no-payment small { display: block; }
.checkout-no-payment strong { font-size: .78rem; }
.checkout-no-payment small { color: #166534; font-size: .68rem; margin-top: .15rem; }
.checkout-total-label { color: var(--muted); font-size: .82rem; }
.checkout-total-amount { display: block; font-size: 1.9rem; margin: .35rem 0 1rem; }
.checkout-total-amount small { color: var(--muted); font-size: .8rem; font-weight: 500; }
.checkout-divider { border-top: 1px solid var(--border); margin: 1rem 0; }
.checkout-total-card p { color: var(--muted); font-size: .78rem; line-height: 1.8; }
.checkout-submit { box-shadow: 0 8px 18px rgba(15, 118, 110, .18); }
.checkout-back-link { color: var(--muted); display: block; font-size: .8rem; margin-top: .9rem; text-align: center; }
.checkout-back-link:hover { color: var(--primary); }
.checkout-success { align-items: center; background: var(--surface); border: 1px solid var(--border); border-radius: 22px; display: flex; flex-direction: column; margin: 2rem auto; max-width: 620px; padding: 4rem 2rem; text-align: center; }
.checkout-success-icon { align-items: center; background: #dcfce7; border-radius: 50%; color: #15803d; display: flex; font-size: 2.3rem; height: 82px; justify-content: center; margin-bottom: 1.25rem; width: 82px; }
.checkout-success h1 { font-size: 1.8rem; margin-bottom: .6rem; }
.checkout-success p { color: var(--muted); line-height: 1.9; margin-bottom: .75rem; }
.checkout-success small { color: var(--muted); }
.checkout-success-actions { display: flex; gap: .6rem; margin-top: 1.5rem; }

.admin-data-table td {
    border-bottom: 1px solid #eef2f3;
    color: var(--ink-soft);
    padding: 1rem 1.2rem;
    vertical-align: middle;
    white-space: nowrap;
}

.admin-data-table tbody tr:last-child td {
    border-bottom: 0;
}

.admin-data-table td strong,
.admin-data-table td small {
    display: block;
}

.admin-data-table td strong {
    color: var(--text);
    font-size: .86rem;
}

.admin-data-table td small {
    color: var(--muted);
    font-size: .7rem;
    margin-top: .25rem;
}

.admin-status {
    background: #f1f5f9;
    border-radius: 999px;
    color: #475569;
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    padding: .35rem .65rem;
}

.admin-status.active,
.admin-status.delivered {
    background: #dcfce7;
    color: #15803d;
}

.admin-status.inactive,
.admin-status.cancelled {
    background: #fee2e2;
    color: #b91c1c;
}

.admin-status.pending {
    background: #fef3c7;
    color: #b45309;
}

.admin-status.processing,
.admin-status.shipped {
    background: #dbeafe;
    color: #1d4ed8;
}

.stock-empty {
    color: #b91c1c;
    font-weight: 700;
}

.status-form {
    align-items: center;
    display: flex;
    gap: .4rem;
}

.status-form select {
    background: white;
    border: 1px solid var(--border);
    border-radius: 7px;
    font-size: .75rem;
    min-height: 34px;
    padding: 0 .45rem;
}

/* Tables */

.table-container {
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
}

.table {
    margin-bottom: 0;
}

.table thead th {
    background: #fafafa;
    border-bottom: 1px solid var(--border);
    color: #52525b;
    font-size: .85rem;
    font-weight: 600;
    padding: 14px 16px;
}

.table tbody td {
    padding: 15px 16px;
    vertical-align: middle;
}

/* Dashboard */

.stat-card {
    padding: 22px;
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
}

.stat-card .label {
    color: var(--muted);
    font-size: .9rem;
}

.stat-card .value {
    font-size: 1.8rem;
    font-weight: 700;
    margin-top: 5px;
}

/* Status */

.status {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
}

.status-pending {
    background: #fff7ed;
    color: #c2410c;
}

.status-processing {
    background: #eff6ff;
    color: #1d4ed8;
}

.status-shipped {
    background: #eef2ff;
    color: #4338ca;
}

.status-delivered {
    background: #ecfdf5;
    color: #047857;
}

.status-cancelled {
    background: #fef2f2;
    color: #b91c1c;
}

/* Search toolbar */

.toolbar {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-bottom: 22px;
}

.toolbar .search {
    max-width: 420px;
    flex: 1;
}

/* Mobile */

@media (max-width: 768px) {
    .catalog-layout {
        grid-template-columns: 1fr;
    }

    .product-details-layout {
        grid-template-columns: 1fr;
    }

    .category-sidebar {
        position: static;
    }

    .category-menu-toggle {
        cursor: pointer;
        flex: 1;
        justify-content: flex-start;
        text-align: right;
    }

    .category-menu-chevron {
        display: inline-block;
    }

    .category-menu-content:not(.show) {
        display: none;
    }

    .checkout-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }

    .checkout-progress {
        justify-content: center;
    }

    .checkout-layout {
        grid-template-columns: 1fr;
    }

    .checkout-success-actions {
        flex-direction: column;
        width: 100%;
    }

    .basket-page-heading {
        display: block;
        min-height: 92px;
    }

    .basket-page-heading > div { max-width: calc(100% - 96px); }

    .basket-item {
        display: grid;
        gap: .45rem .7rem;
        grid-template-areas:
            "icon info quantity"
            "icon price quantity";
        grid-template-columns: 42px minmax(0, 1fr) auto;
    }

    .basket-item-icon { grid-area: icon; }
    .basket-item-info {
        grid-area: info;
        min-width: 0;
    }

    .quantity-editor { grid-area: quantity; }

    .quantity-editor {
        align-self: center;
        grid-area: quantity;
        margin: 0;
    }

    .basket-price {
        grid-area: price;
        margin: 0;
    }

    .onboarding-steps {
        align-items: stretch;
        flex-direction: column;
    }

    .onboarding-steps i {
        display: none;
    }

    .onboarding-message {
        align-items: stretch;
        flex-direction: column;
    }

    .onboarding-message .btn {
        margin-right: 0;
    }

    .review-grid {
        grid-template-columns: 1fr;
    }

    .review-grid .full {
        grid-column: auto;
    }

    .supplier-welcome {
        align-items: stretch;
        flex-direction: column;
        gap: 1.2rem;
        padding: 1.7rem 1.35rem;
    }

    .supplier-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-welcome,
    .admin-page-heading,
    .admin-table-toolbar {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }

    .admin-welcome {
        padding: 1.7rem 1.35rem;
    }

    .admin-welcome-icon {
        display: none;
    }

    .admin-stat-grid,
    .admin-order-summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-link-grid {
        grid-template-columns: 1fr;
    }

    .admin-order-filters {
        flex-wrap: wrap;
    }

    .admin-order-filters .orders-search {
        flex: 1 1 100%;
    }

    .orders-page-header,
    .orders-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .order-stats {
        grid-template-columns: 1fr;
    }

    .orders-filter {
        flex-wrap: wrap;
    }

    .orders-search {
        flex: 1 1 100%;
    }

    .orders-search input {
        width: 100%;
    }

    .hero-section {
        gap: 1.5rem;
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 2rem 1.4rem 1.4rem;
    }

    .hero-copy h1 {
        font-size: 2.6rem;
    }

    .hero-visual {
        min-height: 230px;
    }

    .hero-visual img {
        height: 230px;
    }

    .hero-badge {
        bottom: -4px;
        right: 10px;
    }

    .feature-strip {
        grid-template-columns: 1fr;
    }

    .feature-item + .feature-item {
        border-right: 0;
        border-top: 1px solid var(--border);
    }

    .toolbar {
        flex-direction: column;
    }

    .toolbar .search {
        max-width: none;
    }

    main.container {
        padding-top: 25px !important;
    }

}

.review-actions {
    display: flex;
    gap: .35rem;
}

.basket-nav-link {
    align-items: center;
    color: var(--ink-soft);
    display: inline-flex;
    font-size: 1.25rem;
    justify-content: center;
    line-height: 1;
    min-height: 38px;
    min-width: 38px;
    position: relative;
}

.basket-count {
    align-items: center;
    background: var(--accent);
    border: 2px solid white;
    border-radius: 999px;
    color: #172554;
    display: inline-flex;
    font-size: .62rem;
    font-weight: 800;
    height: 20px;
    justify-content: center;
    min-width: 20px;
    padding: 0 .25rem;
    position: absolute;
    right: -3px;
    top: -2px;
}

.mobile-bottom-nav {
    display: none;
}

.mobile-bottom-nav > * {
    flex: 1 1 0;
    min-width: 0;
}

@media (max-width: 991.98px) {
    body {
        padding-bottom: 82px;
    }

    body.portal-shell {
        padding-bottom: 0;
    }

    .top-bar { display: none; }
    .top-bar.top-bar-search-only { display: block; }
    .top-bar-search-only .top-bar-content { display: block; padding: .6rem .75rem; }
    .top-bar-search-only .top-bar-logo,
    .top-bar-search-only .top-bar-actions { display: none; }
    .top-bar-search-only .top-bar-search { display: flex; max-width: none; width: 100%; }

    .mobile-bottom-nav {
        align-items: stretch;
        background: #ffffff;
        border: 1px solid var(--border);
        border-radius: 22px 22px 0 0;
        bottom: 0;
        box-shadow: 0 -12px 34px rgba(20, 43, 61, .15);
        display: flex !important;
        justify-content: space-around;
        left: 0;
        padding: .5rem .4rem calc(.5rem + env(safe-area-inset-bottom));
        position: fixed;
        right: 0;
        z-index: 1100;
    }

    .mobile-bottom-nav-item {
        align-items: center;
        background: transparent;
        border: 0;
        border-radius: 15px;
        color: var(--muted);
        display: inline-flex;
        flex: 1 1 0;
        flex-direction: column;
        font-size: .74rem;
        font-weight: 600;
        gap: .2rem;
        justify-content: center;
        min-height: 58px;
        padding: .3rem .15rem;
        position: relative;
        text-align: center;
    }

    .mobile-bottom-nav-item i {
        font-size: 1.5rem;
        line-height: 1;
    }

    .mobile-home-logo {
        border-radius: 50%;
        display: block;
        height: 28px;
        object-fit: contain;
        width: 28px;
    }

    .mobile-bottom-nav-home {
        font-size: .78rem;
        font-weight: 800;
    }

    .mobile-bottom-nav-item.active {
        background: transparent;
        color: var(--primary);
        font-weight: 800;
    }

    .mobile-bottom-nav-item.active i {
        transform: translateY(-1px);
    }

    .mobile-bottom-nav-icon {
        position: relative;
    }

    .mobile-bottom-nav-count {
        align-items: center;
        background: var(--accent);
        border: 2px solid white;
        border-radius: 999px;
        color: white;
        display: inline-flex;
        font-size: .58rem;
        height: 18px;
        justify-content: center;
        min-width: 18px;
        padding: 0 .2rem;
        position: absolute;
        right: -12px;
        top: -9px;
    }
}

.quantity-editor {
    align-items: center;
    background: linear-gradient(135deg, #f3fbf6, #e5f6ed);
    border: 1px solid #b8dfc8;
    border-radius: 999px;
    display: flex;
    gap: .2rem;
    padding: .2rem;
}

.quantity-editor label {
    color: var(--muted);
    font-size: .7rem;
}

.quantity-editor input {
    border: 1px solid var(--border);
    border-radius: 7px;
    min-height: 34px;
    text-align: center;
    width: 58px;
}

.basket-quantity-button {
    align-items: center;
    background: var(--surface);
    border: 0;
    border-radius: 50%;
    color: var(--primary);
    display: inline-flex;
    height: 27px;
    justify-content: center;
    padding: 0;
    width: 27px;
}

.basket-quantity-button:hover { background: var(--mint); }
.basket-quantity-button:disabled { cursor: wait; opacity: .55; }
.basket-quantity-button.is-delete { border-color: #f3b5bd; color: #c52231; }
.basket-quantity-button.is-delete { background: #fff0f2; }
.basket-quantity-value { color: var(--deep-ink); font-size: .82rem; font-weight: 800; min-width: 1.25rem; text-align: center; }

.product-image-upload {
    align-items: center;
    display: flex;
    gap: .35rem;
}

.product-image-upload input[type="file"] {
    font-size: .7rem;
    max-width: 180px;
}

.product-image-gallery {
    border-top: 1px solid var(--border);
    margin: 1.25rem 1.25rem 0;
    padding: 1.25rem 0 1.5rem;
}

.product-image-gallery h2 {
    color: var(--text);
    margin-bottom: .75rem;
}

.product-thumbnail-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    padding: .25rem;
}

.product-thumbnail {
    background: var(--mint);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}

.product-thumbnail img {
    aspect-ratio: 1;
    display: block;
    object-fit: cover;
    width: 100%;
}

.product-thumbnail form {
    bottom: .4rem;
    left: .4rem;
    position: absolute;
}

.product-thumbnail form button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 30px;
    min-width: 30px;
    padding: .2rem;
}

/* Bazaaryab brand theme: emerald supply network with a signal-red accent. */
.top-bar {
    background: #ffffff;
    border-bottom-color: rgba(0, 155, 85, .16);
}

.btn-primary,
.btn-primary:focus {
    background: var(--primary);
    border-color: var(--primary);
}

.btn-primary:hover,
.btn-primary:active {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
}

.btn-outline-dark:hover {
    background: var(--deep-ink);
    border-color: var(--deep-ink);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 .2rem rgba(0, 155, 85, .14);
}

.hero-section,
.admin-welcome,
.supplier-welcome {
    background: linear-gradient(135deg, #007b45 0%, #0b5b56 58%, #142b3d 100%);
}

.hero-copy .eyebrow,
.hero-note i {
    color: #9cf0bc;
}

.hero-copy h1 strong {
    color: #ff6570;
}

.hero-actions .btn-primary,
.supplier-welcome .btn-primary {
    background: var(--accent);
    border-color: var(--accent);
    color: white;
}

.hero-actions .btn-primary:hover,
.supplier-welcome .btn-primary:hover {
    background: #d92332;
    border-color: #d92332;
}

.hero-badge,
.basket-count {
    background: var(--accent);
    color: white;
}

.hero-badge strong {
    color: white;
}

.admin-menu .dropdown-item:hover,
.category-link:hover,
.category-link.selected,
.admin-link-card:hover {
    background: var(--mint);
    color: var(--primary);
}

.empty-icon,
.basket-item-icon,
.category-tree-children .category-tree-row {
    background: var(--mint);
}

.form-panel-heading {
    background: var(--mint);
}

.admin-stat-icon.teal,
.summary-icon.teal,
.supplier-stat-icon.teal,
.supplier-stat-icon.green {
    background: #d8f4e3;
    color: var(--primary);
}

.admin-stat-icon.amber,
.summary-icon.amber,
.supplier-stat-icon.amber {
    background: #fff2d6;
    color: #a96a00;
}

.admin-stat-icon.blue,
.summary-icon.blue,
.supplier-stat-icon.blue {
    background: #e1f0ef;
    color: #0b6f6a;
}

.admin-stat-icon.purple {
    background: #e8eef3;
    color: var(--deep-ink);
}

.admin-status.active,
.admin-status.delivered,
.status-delivered {
    background: #d8f4e3;
    color: #08783e;
}

.admin-status.pending,
.status-pending {
    background: #fff2d6;
    color: #a96a00;
}

.admin-status.inactive,
.admin-status.cancelled,
.status-cancelled {
    background: var(--blush);
    color: #c52231;
}

.admin-status.processing,
.admin-status.shipped,
.status-processing,
.status-shipped {
    background: #e1f0ef;
    color: #0b6f6a;
}

.order-stat-icon.teal,
.supplier-badge,
.checkout-item-icon {
    background: #d8f4e3;
    color: var(--primary);
}

.checkout-no-payment {
    background: var(--mint);
    border-color: #b8e6c8;
    color: #08783e;
}

.checkout-no-payment small {
    color: #08783e;
}

.onboarding-message.approved > i {
    color: var(--primary);
}

.category-tree-children {
    border-right-color: #b8d8c4;
}

/* Modern footer */
.site-footer-modern { background: #102b3a; color: #d8e7e4; margin-top: 3rem; padding: 2.5rem max(1rem, calc((100% - 1120px) / 2)) 1rem; }
.site-footer-inner { align-items: start; display: grid; gap: 2rem; grid-template-columns: minmax(230px, 1.6fr) repeat(2, minmax(130px, 1fr)) minmax(210px, 1.2fr); }
.site-footer-brand { max-width: 285px; }
.site-footer-logo { align-items: center; color: #fff; display: inline-flex; font-size: 1.25rem; font-weight: 800; gap: .5rem; }
.site-footer-logo:hover { color: #8ff0b5; }
.site-footer-logo > span { align-items: center; background: #0a9b58; border-radius: 10px; color: #fff; display: inline-flex; font-size: 1rem; height: 31px; justify-content: center; width: 31px; }
.site-footer-brand p { color: #9db8b8; font-size: .76rem; line-height: 1.9; margin: .8rem 0; }
.site-footer-trust { align-items: center; color: #8ff0b5; display: inline-flex; font-size: .7rem; gap: .35rem; }
.site-footer-column { display: grid; gap: .55rem; }
.site-footer-column h2 { color: #fff; font-size: .82rem; margin: .15rem 0 .35rem; }
.site-footer-column a, .site-footer-column span { color: #9db8b8; font-size: .74rem; }
.site-footer-column a:hover { color: #8ff0b5; }
.site-footer-contact { align-items: center; background: rgba(255, 255, 255, .06); border: 1px solid rgba(196, 233, 218, .15); border-radius: 14px; display: flex; gap: .7rem; padding: .85rem; }
.site-footer-contact-icon { align-items: center; background: #d8f4e3; border-radius: 10px; color: #08783e; display: inline-flex; flex: 0 0 auto; font-size: 1.2rem; height: 40px; justify-content: center; width: 40px; }
.site-footer-contact small, .site-footer-contact strong { display: block; }
.site-footer-contact small { color: #9db8b8; font-size: .67rem; }
.site-footer-contact strong { color: #fff; font-size: .78rem; margin-top: .2rem; }
.site-footer-bottom { align-items: center; border-top: 1px solid rgba(196, 233, 218, .13); color: #8ba7a9; display: flex; font-size: .68rem; justify-content: space-between; margin-top: 2rem; padding-top: 1rem; }
.site-footer-bottom i { color: #f77c8a; margin-left: .25rem; }

.product-price { display: flex; flex-direction: column; line-height: 1.25; }
.product-price strong { font-size: 1rem; }
.product-price del { color: var(--muted); font-size: .68rem; }
.product-price small { color: var(--muted); font-size: .65rem; }
.product-minimum { color: var(--muted); font-size: .68rem; margin-top: -.7rem; }
.product-discount-note { align-items: center; color: #c52231; display: flex; font-size: .75rem; gap: .3rem; margin-top: .35rem; }
.product-order-rule { align-items: center; background: #f1f8f3; border-radius: 8px; color: var(--ink-soft); display: inline-flex; font-size: .72rem; gap: .35rem; margin-top: .65rem; padding: .4rem .55rem; }
.product-quantity-input { align-items: center; color: var(--muted); display: inline-flex; font-size: .75rem; gap: .4rem; }
.product-quantity-input input { border: 1px solid var(--border); border-radius: 8px; min-height: 42px; padding: .3rem; text-align: center; width: 72px; }
.product-details-price { align-items: baseline; display: flex; flex-wrap: wrap; gap: .4rem; }
.product-details-price del { color: var(--muted); font-size: .9rem; }
.product-details-price strong { color: var(--primary); }
.basket-item-info del, .checkout-product-copy del { color: var(--muted); display: block; font-size: .65rem; }
.basket-item-info em { color: #c52231; display: block; font-size: .65rem; font-style: normal; }

@media (max-width: 767.98px) {
    .site-footer-modern { margin-top: 2rem; padding: 2rem 1rem 1rem; }
    .site-footer-inner { gap: 1.5rem 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .site-footer-brand, .site-footer-contact { grid-column: 1 / -1; max-width: none; }
    .site-footer-bottom { align-items: flex-start; flex-direction: column; gap: .45rem; }
}

/* Checkout page */
.checkout-page { margin: 0 auto; max-width: 1120px; }
.checkout-page-heading { align-items: end; display: flex; gap: 1.5rem; justify-content: space-between; margin-bottom: 1.5rem; }
.checkout-page-title h1 { font-size: clamp(1.55rem, 3vw, 2.15rem); margin: .35rem 0 .25rem; }
.checkout-page-title p { color: var(--muted); font-size: .82rem; margin: 0; }
.checkout-page-progress { align-items: center; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; color: var(--muted); display: flex; flex-shrink: 0; font-size: .72rem; gap: .55rem; padding: .6rem .75rem; }
.checkout-page-progress span { align-items: center; display: inline-flex; gap: .3rem; white-space: nowrap; }
.checkout-page-progress b { align-items: center; background: #e6eef0; border-radius: 50%; display: inline-flex; height: 22px; justify-content: center; width: 22px; }
.checkout-page-progress .is-done, .checkout-page-progress .is-active { color: var(--primary); font-weight: 700; }
.checkout-page-progress .is-done b { background: #d8f4e3; }
.checkout-page-progress .is-active b { background: var(--primary); color: #fff; }
.checkout-page-grid { align-items: start; display: grid; gap: 1.25rem; grid-template-columns: minmax(300px, .78fr) minmax(0, 1.35fr); }
.checkout-summary-panel { background: linear-gradient(155deg, #ffffff, #f0faf4); border: 1px solid #c9e5d4; border-radius: 20px; box-shadow: 0 14px 32px rgba(20, 43, 61, .08); grid-column: 1; padding: 1.35rem; position: sticky; top: 96px; }
.checkout-order-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 20px; box-shadow: 0 10px 28px rgba(20, 43, 61, .06); grid-column: 2; overflow: hidden; }
.checkout-order-header { align-items: center; background: linear-gradient(90deg, #f8fcfa, #edf8f1); border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; padding: 1.15rem 1.3rem; }
.checkout-order-header h2 { font-size: 1rem; margin: .15rem 0 0; }
.checkout-order-header .eyebrow { font-size: .68rem; margin: 0; }
.checkout-supplier-chip { background: #d8f4e3; border-radius: 999px; color: #08783e; font-size: .72rem; font-weight: 700; padding: .4rem .65rem; }
.checkout-order-line { align-items: center; border-bottom: 1px solid #edf2f1; display: grid; gap: .8rem; grid-template-columns: 46px minmax(0, 1fr) auto minmax(100px, auto); padding: 1rem 1.3rem; }
.checkout-order-line:last-child { border-bottom: 0; }
.checkout-product-image { align-items: center; background: #e5f6ed; border-radius: 12px; color: var(--primary); display: inline-flex; height: 46px; justify-content: center; overflow: hidden; width: 46px; }
.checkout-product-image img { height: 100%; object-fit: cover; width: 100%; }
.checkout-product-copy { min-width: 0; }
.checkout-product-copy strong, .checkout-product-copy small { display: block; }
.checkout-product-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.checkout-product-copy small { color: var(--muted); font-size: .7rem; margin-top: .2rem; }
.checkout-product-quantity { background: #f1f6f3; border-radius: 8px; color: var(--ink-soft); font-size: .75rem; padding: .35rem .5rem; white-space: nowrap; }
.checkout-product-total { font-size: .8rem; white-space: nowrap; }
.checkout-product-total small { color: var(--muted); font-size: .68rem; font-weight: 500; }
.checkout-order-count { align-items: center; background: #f8fbf9; border-top: 1px solid var(--border); color: var(--ink-soft); display: flex; font-size: .76rem; gap: .35rem; padding: .85rem 1.3rem; }
.checkout-order-count i { color: var(--primary); }
.checkout-order-count small { color: var(--muted); }
.checkout-summary-badge { align-items: center; background: #e5f7ed; border: 1px solid #bde5c9; border-radius: 12px; color: #08783e; display: flex; gap: .55rem; margin-bottom: 1.3rem; padding: .7rem; }
.checkout-summary-badge > i { font-size: 1.35rem; }
.checkout-summary-badge strong, .checkout-summary-badge small { display: block; }
.checkout-summary-badge strong { font-size: .76rem; }
.checkout-summary-badge small { color: #28734a; font-size: .67rem; margin-top: .15rem; }
.checkout-summary-heading { align-items: center; color: var(--deep-ink); display: flex; font-size: .95rem; font-weight: 800; justify-content: space-between; margin-bottom: 1.1rem; }
.checkout-summary-heading i { color: var(--primary); }
.checkout-summary-row { align-items: center; color: var(--muted); display: flex; font-size: .78rem; justify-content: space-between; margin-bottom: .7rem; }
.checkout-summary-row strong { color: var(--ink-soft); }
.checkout-summary-total { align-items: end; border-top: 1px dashed #b8d8c4; display: flex; justify-content: space-between; margin-top: 1.05rem; padding-top: 1rem; }
.checkout-summary-total span { color: var(--muted); font-size: .8rem; }
.checkout-summary-total strong { color: var(--primary); font-size: 1.65rem; letter-spacing: -.03em; }
.checkout-summary-total small { color: var(--muted); font-size: .7rem; font-weight: 500; }
.checkout-summary-note { color: var(--muted); font-size: .72rem; line-height: 1.8; margin: 1rem 0 1.1rem; }
.checkout-confirm-button { align-items: center; background: linear-gradient(110deg, var(--primary), #30c77c); border: 0; border-radius: 12px; box-shadow: 0 8px 18px rgba(0, 155, 85, .22); color: #fff; display: flex; font: inherit; font-size: .82rem; font-weight: 700; justify-content: space-between; padding: .8rem 1rem; transition: transform .2s ease, box-shadow .2s ease; width: 100%; }
.checkout-confirm-button:hover { box-shadow: 0 11px 24px rgba(0, 155, 85, .3); color: #fff; transform: translateY(-1px); }
.checkout-edit-link { color: var(--muted); display: block; font-size: .75rem; margin-top: .9rem; text-align: center; }
.checkout-edit-link:hover { color: var(--primary); }

@media (max-width: 991.98px) {
    .checkout-page-heading { align-items: stretch; flex-direction: column; gap: 1rem; }
    .checkout-page-progress { justify-content: space-between; overflow-x: auto; }
    .checkout-page-grid { display: flex; flex-direction: column; }
    .checkout-order-panel, .checkout-summary-panel { width: 100%; }
    .checkout-summary-panel { position: static; }
}

@media (max-width: 575.98px) {
    .checkout-page-heading { margin-bottom: 1rem; }
    .checkout-page-title h1 { font-size: 1.45rem; }
    .checkout-page-progress { font-size: .67rem; gap: .35rem; padding: .5rem; }
    .checkout-order-header { padding: 1rem; }
    .checkout-order-line { gap: .55rem; grid-template-columns: 38px minmax(0, 1fr) auto; padding: .85rem 1rem; }
    .checkout-product-image { height: 38px; width: 38px; }
    .checkout-product-total { grid-column: 2 / -1; grid-row: 2; justify-self: end; }
    .checkout-order-count { padding: .75rem 1rem; }
    .checkout-summary-panel { border-radius: 16px; padding: 1rem; }
}

/* Checkout success */
.checkout-success-page { background: linear-gradient(155deg, #ffffff, #f0faf4); border: 1px solid #c9e5d4; border-radius: 24px; box-shadow: 0 16px 36px rgba(20, 43, 61, .08); margin: 1.5rem auto; max-width: 640px; overflow: hidden; padding: 3.5rem 2rem 2rem; position: relative; text-align: center; }
.checkout-success-page::before { background: rgba(0, 155, 85, .08); border-radius: 50%; content: ""; height: 240px; position: absolute; right: -110px; top: -120px; width: 240px; }
.checkout-success-page > * { position: relative; z-index: 1; }
.checkout-success-orbit { align-items: center; background: #d8f4e3; border: 10px solid #eefaf2; border-radius: 50%; box-shadow: 0 0 0 1px #b8dfc8, 0 12px 24px rgba(0, 155, 85, .15); color: var(--primary); display: flex; font-size: 2.1rem; height: 92px; justify-content: center; margin: 0 auto 1.35rem; width: 92px; }
.checkout-success-kicker { align-items: center; color: #08783e; display: inline-flex; font-size: .75rem; font-weight: 700; gap: .3rem; }
.checkout-success-page h1 { font-size: clamp(1.5rem, 4vw, 2rem); margin: .55rem 0 .65rem; }
.checkout-success-page > p { color: var(--muted); font-size: .82rem; line-height: 1.9; margin: 0 auto 1.25rem; max-width: 430px; }
.checkout-success-reference { align-items: center; background: rgba(255, 255, 255, .75); border: 1px dashed #b8d8c4; border-radius: 10px; display: inline-flex; font-size: .75rem; gap: .65rem; padding: .55rem .8rem; }
.checkout-success-reference span { color: var(--muted); }
.checkout-success-reference strong { color: var(--deep-ink); letter-spacing: .04em; }
.checkout-success-actions { display: grid; gap: .65rem; margin: 1.7rem auto 0; max-width: 390px; }
.checkout-success-primary { align-items: center; background: linear-gradient(110deg, var(--primary), #30c77c); border-radius: 12px; box-shadow: 0 8px 18px rgba(0, 155, 85, .22); color: white; display: flex; font-size: .82rem; font-weight: 700; justify-content: space-between; padding: .8rem 1rem; }
.checkout-success-primary:hover { box-shadow: 0 11px 24px rgba(0, 155, 85, .3); color: white; transform: translateY(-1px); }
.checkout-success-secondary { color: var(--muted); font-size: .78rem; padding: .35rem; }
.checkout-success-secondary:hover { color: var(--primary); }

@media (max-width: 575.98px) {
    .checkout-success-page { border-radius: 18px; margin: .5rem auto; padding: 2.5rem 1.1rem 1.35rem; }
    .checkout-success-orbit { height: 78px; width: 78px; }
}

/* Orders page */
.orders-screen { margin: 0 auto; max-width: 1120px; }
.orders-screen-hero { align-items: center; background: linear-gradient(115deg, #f0fbf5, #ffffff 58%, #eef8f4); border: 1px solid #cfe8d8; border-radius: 22px; box-shadow: 0 12px 28px rgba(20, 43, 61, .06); display: flex; justify-content: space-between; margin-bottom: 1rem; overflow: hidden; padding: 1.3rem 1.5rem; position: relative; }
.orders-screen-hero::after { background: rgba(0, 155, 85, .08); border-radius: 50%; content: ""; height: 170px; left: -75px; position: absolute; top: -100px; width: 170px; }
.orders-screen-hero > * { position: relative; z-index: 1; }
.orders-screen-hero h1 { font-size: clamp(1.5rem, 3vw, 2rem); margin: .3rem 0 .25rem; }
.orders-screen-hero p { color: var(--muted); font-size: .8rem; margin: 0; }
.orders-new-button { align-items: center; background: var(--primary); border-radius: 11px; box-shadow: 0 7px 16px rgba(0, 155, 85, .2); color: #fff; display: inline-flex; font-size: .78rem; font-weight: 700; gap: .4rem; padding: .65rem .85rem; white-space: nowrap; }
.orders-new-button:hover { background: var(--primary-hover); color: #fff; transform: translateY(-1px); }
.orders-metrics { display: grid; gap: .8rem; grid-template-columns: repeat(3, 1fr); margin-bottom: 1rem; }
.orders-metric { align-items: center; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; display: flex; gap: .65rem; padding: .8rem 1rem; }
.orders-metric-icon { align-items: center; border-radius: 10px; display: inline-flex; flex: 0 0 auto; font-size: 1.1rem; height: 38px; justify-content: center; width: 38px; }
.orders-metric-icon.teal { background: #d9f7ef; color: #087c6d; }
.orders-metric-icon.amber { background: #fff1d4; color: #a96a00; }
.orders-metric-icon.green { background: #d8f4e3; color: #08783e; }
.orders-metric small, .orders-metric strong { display: block; }
.orders-metric small { color: var(--muted); font-size: .7rem; }
.orders-metric strong { color: var(--deep-ink); font-size: 1.2rem; margin-top: .1rem; }
.orders-list-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 20px; box-shadow: 0 10px 26px rgba(20, 43, 61, .05); overflow: hidden; }
.orders-list-heading { align-items: center; border-bottom: 1px solid var(--border); display: flex; gap: 1rem; justify-content: space-between; padding: 1.15rem 1.3rem; }
.orders-list-heading h2 { font-size: 1rem; margin: 0 0 .2rem; }
.orders-list-heading > div > span { color: var(--muted); font-size: .72rem; }
.orders-filter-bar { align-items: center; display: flex; gap: .45rem; }
.orders-search-field { align-items: center; background: #f7faf8; border: 1px solid var(--border); border-radius: 9px; color: var(--muted); display: flex; gap: .35rem; padding: .15rem .55rem; }
.orders-search-field input { background: transparent; border: 0; min-height: 32px; outline: 0; width: 175px; }
.orders-sort-field { align-items: center; border: 1px solid var(--border); border-radius: 9px; display: flex; gap: .35rem; padding: 0 .5rem; }
.orders-sort-field span { color: var(--muted); font-size: .68rem; white-space: nowrap; }
.orders-sort-field select { background: transparent; border: 0; color: var(--ink-soft); font: inherit; font-size: .72rem; min-height: 34px; outline: 0; }
.orders-filter-button { align-items: center; background: var(--deep-ink); border: 0; border-radius: 9px; color: #fff; display: inline-flex; font: inherit; font-size: .72rem; gap: .3rem; min-height: 36px; padding: 0 .7rem; }
.orders-filter-button:hover { background: #24445a; }
.orders-card-list { display: grid; }
.order-card { align-items: center; border-bottom: 1px solid #edf2f1; display: grid; gap: 1rem; grid-template-columns: minmax(210px, 1.45fr) minmax(150px, 1fr) minmax(130px, .8fr) auto; padding: 1rem 1.3rem; }
.order-card:last-child { border-bottom: 0; }
.order-card-identity { align-items: center; display: flex; gap: .65rem; min-width: 0; }
.order-card-icon { align-items: center; background: #e5f6ed; border-radius: 11px; color: var(--primary); display: inline-flex; flex: 0 0 auto; height: 40px; justify-content: center; width: 40px; }
.order-card-identity div, .order-card-detail { min-width: 0; }
.order-card-identity small, .order-card-identity strong, .order-card-identity time, .order-card-detail small, .order-card-detail strong { display: block; }
.order-card-identity small, .order-card-detail small { color: var(--muted); font-size: .67rem; }
.order-card-identity strong { font-size: .82rem; margin: .15rem 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.order-card-identity time { color: var(--muted); font-size: .68rem; }
.order-card-detail strong { color: var(--ink-soft); font-size: .78rem; margin-top: .2rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.order-card-detail em { color: var(--muted); font-size: .65rem; font-style: normal; font-weight: 500; }
.order-card-status { justify-self: start; white-space: nowrap; }

@media (max-width: 991.98px) {
    .orders-screen-hero { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .orders-new-button { align-self: stretch; justify-content: center; }
    .orders-list-heading { align-items: stretch; flex-direction: column; }
    .orders-filter-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; }
    .orders-search-field input { width: 100%; }
    .orders-search-field { min-width: 0; }
}

@media (max-width: 575.98px) {
    .orders-screen-hero { border-radius: 16px; padding: 1.1rem; }
    .orders-screen-hero p { line-height: 1.7; }
    .orders-metrics { gap: .45rem; }
    .orders-metric { align-items: flex-start; flex-direction: column; gap: .35rem; padding: .65rem; }
    .orders-metric-icon { height: 32px; width: 32px; }
    .orders-metric strong { font-size: 1rem; }
    .orders-list-panel { border-radius: 16px; }
    .orders-list-heading { padding: 1rem; }
    .orders-filter-bar { grid-template-columns: 1fr 1fr; }
    .orders-search-field { grid-column: 1 / -1; }
    .orders-filter-button { justify-content: center; }
    .order-card { align-items: start; gap: .7rem; grid-template-columns: minmax(0, 1fr) auto; padding: .9rem 1rem; }
    .order-card-identity { grid-column: 1; }
    .order-card-status { grid-column: 2; grid-row: 1; }
    .order-card-detail { grid-column: 1 / -1; }
    .order-card-detail + .order-card-detail { border-top: 1px dashed #e5ece8; padding-top: .6rem; }
}

/* Responsive list cards */
.admin-table-toolbar > div,
.admin-order-filters {
    min-width: 0;
}

@media (max-width: 767.98px) {
    .page-shell {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }

    .admin-page-heading .btn {
        align-self: stretch;
        justify-content: center;
    }

    .admin-table-panel,
    .admin-quick-links,
    .supplier-quick-links {
        border-radius: 14px;
        padding: .4rem;
    }

    .admin-table-toolbar,
    .admin-section-title {
        padding: .9rem .7rem;
    }

    .admin-order-filters {
        align-items: stretch;
        display: grid;
        gap: .5rem;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        width: 100%;
    }

    .admin-order-filters .orders-search {
        grid-column: 1 / -1;
        min-width: 0;
        width: 100%;
    }

    .admin-order-filters select,
    .admin-order-filters button {
        min-width: 0;
        width: 100%;
    }

    .orders-search input {
        min-width: 0;
        width: 100%;
    }

    .admin-data-table-wrap {
        overflow: visible;
    }

    .admin-data-table {
        display: block;
        min-width: 0;
        width: 100%;
    }

    .admin-data-table thead {
        display: none;
    }

    .admin-data-table tbody,
    .admin-data-table tr,
    .admin-data-table td {
        display: block;
        width: 100%;
    }

    .admin-data-table tr {
        background: var(--surface);
        border: 1px solid #e5ece8;
        border-radius: 12px;
        margin-bottom: .65rem;
        padding: .3rem .7rem;
    }

    .admin-data-table tr:last-child {
        margin-bottom: 0;
    }

    .admin-data-table td {
        align-items: start;
        border-bottom: 1px solid #eef2f3;
        display: grid;
        gap: .7rem;
        grid-template-columns: minmax(5rem, 32%) minmax(0, 1fr);
        min-width: 0;
        overflow-wrap: anywhere;
        padding: .65rem 0;
        text-align: start;
        white-space: normal;
    }

    .admin-data-table td:last-child {
        border-bottom: 0;
    }

    .admin-data-table td::before {
        color: var(--muted);
        content: attr(data-label);
        font-size: .7rem;
        font-weight: 700;
        line-height: 1.7;
    }

    .admin-data-table td > * {
        grid-column: 2;
        min-width: 0;
    }

    .admin-data-table td > form,
    .admin-data-table td > div {
        width: 100%;
    }

    .status-form,
    .review-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .status-form select {
        flex: 1 1 10rem;
        max-width: 100%;
        min-width: 0;
    }

    .admin-empty-table {
        padding: 3rem .8rem;
    }

    .category-tree {
        padding-left: .35rem;
        padding-right: .35rem;
    }

    .category-tree-row {
        align-items: flex-start;
        gap: .5rem;
    }

    .category-tree-name {
        overflow-wrap: anywhere;
    }
}

@media (max-width: 575.98px) {
    .supplier-stat-grid,
    .admin-stat-grid,
    .admin-order-summary {
        grid-template-columns: 1fr;
    }

    .supplier-welcome,
    .admin-welcome {
        border-radius: 16px;
    }

    .admin-data-table td {
        grid-template-columns: minmax(4.5rem, 30%) minmax(0, 1fr);
    }

    .form-panel-heading,
    .supplier-product-form {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}
