/* Plant Paradise alignment layer
   Loaded after site.css so these rules deliberately normalize the shop/admin UI
   to the public Plant Paradise website style. */
:root {
    --pp-bg: #001c17;
    --pp-bg-soft: #042b23;
    --pp-card: #06382d;
    --pp-card-light: #145c3d;
    --pp-green: #185f42;
    --pp-green-dark: #003328;
    --pp-gold: #e4bf57;
    --pp-gold-muted: #9f9447;
    --pp-text: #ffffff;
    --pp-text-muted: rgba(255,255,255,.76);
    --pp-border: rgba(228,191,87,.22);
    --pp-radius: 22px;
    --pp-shell: min(1450px, calc(100vw - 48px));
}

html { overflow-x: hidden; }
body.plant-body {
    background: var(--pp-bg) !important;
    color: var(--pp-text);
    font-size: 14px;
}
body.plant-body::after {
    background:
        linear-gradient(180deg, rgba(0, 24, 18, .18) 0%, rgba(0, 24, 18, .68) 34%, rgba(0, 12, 10, .96) 82%, rgba(0, 12, 10, 1) 100%),
        linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.08) 48%, rgba(0,0,0,.55)) !important;
}

/*.skip-to-content {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 10000;
    padding: .6rem 1rem;
    border-radius: 999px;
    color: #061814;
    background: var(--pp-gold);
    transform: translateY(-150%);
    transition: transform .15s ease;
}
.skip-to-content:focus { transform: translateY(0); }*/

.plant-nav {
    padding: 18px clamp(18px, 4vw, 64px) !important;
    background: linear-gradient(180deg, rgba(0, 20, 15, .82), rgba(0, 20, 15, .34) 66%, transparent) !important;
    backdrop-filter: none;
}
.plant-nav-inner {
    max-width: 1660px !important;
    gap: clamp(14px, 1.7vw, 30px) !important;
}
.plant-logo { flex: 0 0 auto; }
.plant-logo-img {
    width: clamp(190px, 14vw, 300px) !important;
    max-width: 28vw !important;
    max-height: 108px !important;
}
.plant-logo-fallback { display: none; color: #fff; font-weight: 900; }
.plant-menu {
    flex: 1 1 auto;
    justify-content: flex-end;
    gap: clamp(.72rem, 1.2vw, 1.35rem) !important;
    flex-wrap: nowrap !important;
    min-width: 0;
}
.plant-menu a,
.plant-admin-menu-toggle {
    position: relative;
    color: #fff !important;
    font-size: clamp(.78rem, .76vw, .98rem) !important;
    font-weight: 700 !important;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
    text-shadow: 0 2px 12px rgba(0,0,0,.65);
}
.plant-menu a::after,
.plant-admin-menu-toggle::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -.42rem;
    height: 2px;
    background: var(--pp-gold);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .18s ease;
}
.plant-menu a:hover::after,
.plant-menu a.active::after,
.plant-admin-menu-toggle:hover::after { transform: scaleX(1); }
.plant-menu a:hover,
.plant-menu a.active,
.plant-admin-menu-toggle:hover { color: var(--pp-gold) !important; }

.nav-cart-icon { width: 18px; height: 18px; object-fit: contain; }
.nav-cart-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.45rem;
    height: 1.45rem;
    margin-left: .25rem;
    padding: 0 .35rem;
    border-radius: 999px;
    color: #061814;
    background: var(--pp-gold);
    font-size: .72rem;
    font-weight: 900;
}

.plant-account-nav { gap: .5rem; flex: 0 0 auto; }
.plant-account-label {
    max-width: 210px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--pp-text-muted);
    font-size: .82rem;
}
.btn-nav-account { padding: .42rem .8rem !important; font-size: .78rem !important; }
.plant-admin-menu-toggle {
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    padding: .48rem .8rem;
}
.plant-admin-dropdown {
    border: 1px solid var(--pp-border) !important;
    border-radius: 18px !important;
    padding: .5rem !important;
    background: rgba(0, 34, 27, .96) !important;
    box-shadow: 0 20px 55px rgba(0,0,0,.45);
}
.plant-admin-dropdown .dropdown-item {
    border-radius: 12px;
    color: #fff !important;
    font-weight: 700;
}
.plant-admin-dropdown .dropdown-item:hover { background: var(--pp-green); color: #fff !important; }

.mobile-menu-button {
    display: none;
    align-items: center;
    gap: .42rem;
    border: 1px solid var(--pp-border);
    border-radius: 999px;
    color: #fff;
    background: rgba(0, 36, 29, .7);
    padding: .55rem .85rem;
    font-weight: 800;
}
.mobile-menu-button span {
    display: block;
    width: 16px;
    height: 2px;
    border-radius: 99px;
    background: currentColor;
}
.mobile-menu-button b { font-size: .82rem; }
.mobile-menu-button.is-open span:nth-child(1) { transform: rotate(45deg) translate(5px, 4px); }
.mobile-menu-button.is-open span:nth-child(2) { opacity: 0; }
.mobile-menu-button.is-open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -4px); }

.plant-mobile-menu {
    width: min(520px, calc(100vw - 24px));
    margin: 10px auto 0;
    padding: .75rem;
    border: 1px solid var(--pp-border);
    border-radius: 22px;
    background: rgba(0, 31, 25, .96);
    box-shadow: 0 24px 70px rgba(0,0,0,.45);
}
.plant-mobile-menu a {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .78rem .9rem;
    border-radius: 14px;
    color: #fff;
    text-decoration: none;
    font-weight: 800;
}
.plant-mobile-menu a:hover { background: rgba(255,255,255,.08); color: var(--pp-gold); }

.plant-main { min-height: 72vh; }
.shop-section {
    width: var(--pp-shell) !important;
    height: auto !important;
    min-height: calc(100vh - 220px) !important;
    margin: 0 auto 80px !important;
    padding: clamp(128px, 14vh, 170px) clamp(18px, 3vw, 44px) clamp(34px, 5vh, 70px) !important;
    border: 1px solid rgba(228,191,87,.14) !important;
    border-radius: clamp(24px, 2vw, 34px) !important;
    background: linear-gradient(180deg, rgba(0, 31, 25, .64), rgba(0, 14, 12, .94)) !important;
    box-shadow: 0 30px 90px rgba(0,0,0,.34);
    overflow: visible !important;
}
.shop-section-heading {
    align-items: center !important;
    margin-bottom: clamp(1rem, 2vh, 1.8rem) !important;
}
.shop-section-heading h2 {
    font-family: "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: clamp(2.55rem, 4.4vw, 5rem) !important;
    font-weight: 400 !important;
    line-height: 1.05 !important;
    letter-spacing: -.045em !important;
    text-shadow: 0 3px 18px rgba(0,0,0,.5);
}
.shop-muted { color: var(--pp-text-muted) !important; }
.shop-page-logo,
.logo-left { max-height: 72px !important; width: auto !important; }
.compact-logo-header { margin-bottom: .5rem !important; }

.btn-gold,
.btn-outline-gold:hover,
.admin-command-link.active,
.status-pill.paid {
    color: #061814 !important;
    background: var(--pp-gold) !important;
    border-color: var(--pp-gold) !important;
}
.btn-outline-gold {
    color: var(--pp-gold) !important;
    border-color: rgba(228,191,87,.7) !important;
    background: transparent !important;
}
.btn-ghost-dark,
.btn-ghost {
    color: #fff !important;
    border-color: rgba(255,255,255,.28) !important;
    background: rgba(255,255,255,.04) !important;
}
.btn-gold,
.btn-outline-gold,
.btn-ghost-dark,
.btn-cart,
.admin-command-link,
.admin-tool-link {
    border-radius: 999px !important;
    font-weight: 800 !important;
}
.btn-gold:hover { filter: brightness(1.06); }
.btn[disabled], .btn.disabled, a.disabled { pointer-events: none; opacity: .58; }

.shop-toolbar,
.category-panel,
.cart-row,
.cart-summary,
.checkout-card,
.payment-card,
.admin-detail-card,
.admin-summary-card,
.photo-upload-accordion,
.signed-in-checkout-card,
.empty-cart-card,
.shop-empty-card,
.admin-note-card,
.admin-safe-panel {
    border: 1px solid rgba(228,191,87,.14) !important;
    background: rgba(0, 44, 35, .78) !important;
    box-shadow: 0 18px 55px rgba(0,0,0,.25) !important;
    backdrop-filter: blur(12px);
}
.product-card,
.service-card {
    background: linear-gradient(145deg, rgba(20, 92, 61, .95), rgba(0, 49, 40, .94)) !important;
    border: 1px solid rgba(228,191,87,.14) !important;
}
.product-image-wrap { background: radial-gradient(circle at 70% 70%, rgba(228,191,87,.13), transparent 38%), rgba(255,255,255,.055) !important; }
.product-content h3 { font-size: clamp(1.05rem, 1.2vw, 1.4rem) !important; min-height: 0 !important; }
.product-price { color: var(--pp-gold) !important; font-size: clamp(1.2rem, 1.35vw, 1.55rem) !important; }
.stock-pill.in-stock { background: var(--pp-gold) !important; color: #061814 !important; }

.shop-layout { align-items: stretch !important; }
.product-area,
.admin-order-detail-scroll {
    min-height: 0;
}
.admin-order-detail-scroll {
    max-height: calc(100vh - 300px);
    overflow: auto;
    padding-right: .25rem;
}
.admin-orders-table-wrap,
.admin-order-table-wrap,
.admin-detail-lines-wrap {
    width: 100%;
    overflow: auto !important;
    border-radius: 20px;
    max-height: none !important;
}
.admin-orders-table,
.admin-order-table {
    min-width: 980px;
}
.admin-orders-table thead th,
.admin-order-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: rgba(0, 34, 27, .98);
}
.payment-warning-row { outline: 1px solid rgba(228,191,87,.42); outline-offset: -1px; }
.payment-warning-reason { display: block; color: var(--pp-gold); font-size: .78rem; margin-top: .25rem; }
.inline-search-strip {
    position: relative;
    z-index: 4;
    flex-wrap: wrap;
    border: 1px solid rgba(228,191,87,.14);
    border-radius: 20px;
    background: rgba(0, 33, 27, .65);
    padding: .75rem;
}
.inline-search-box { min-width: min(420px, 100%); flex: 1 1 420px; }
.inline-search-box .form-control,
.shop-search-form .form-control,
.checkout-card .form-control,
.payment-card .form-control,
.form-control {
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.55) !important;
    background: rgba(255,255,255,.095) !important;
}
.form-control::placeholder { color: rgba(255,255,255,.58) !important; }
select.form-control option { color: #061814; }

.admin-command-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: 0 0 1rem;
    padding: .55rem;
    border: 1px solid rgba(228,191,87,.14);
    border-radius: 22px;
    background: rgba(0, 28, 23, .58);
}
.admin-command-link {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: .5rem .85rem;
    color: #fff;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.055);
    text-decoration: none;
}
.admin-command-link:hover { color: #061814; background: #fff; }

.pp-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 22, 18, .74);
    backdrop-filter: blur(5px);
}
.pp-loading-overlay.hidden { display: none !important; }
.pp-loading-card {
    display: grid;
    justify-items: center;
    gap: .75rem;
    min-width: 220px;
    padding: 1.35rem 1.6rem;
    border: 1px solid rgba(228,191,87,.22);
    border-radius: 24px;
    color: #fff;
    background: rgba(0, 40, 32, .92);
    box-shadow: 0 24px 80px rgba(0,0,0,.5);
}
.pp-loading-card span { color: var(--pp-text-muted); font-size: .9rem; }
.spinner,
.btn-spinner {
    display: inline-block;
    border-radius: 999px;
    border: 3px solid rgba(255,255,255,.25);
    border-top-color: var(--pp-gold);
    animation: pp-spin .72s linear infinite;
}
.spinner { width: 52px; height: 52px; }
.btn-spinner { width: 1em; height: 1em; margin-right: .45rem; vertical-align: -.15em; }
.is-loading-button { display: inline-flex !important; align-items: center; justify-content: center; gap: .35rem; }
@keyframes pp-spin { to { transform: rotate(360deg); } }

.shop-toast {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 9998;
    transform: translateY(16px);
    opacity: 0;
    pointer-events: none;
    padding: .85rem 1rem;
    border: 1px solid rgba(228,191,87,.26);
    border-radius: 16px;
    color: #fff;
    background: rgba(0, 45, 36, .96);
    box-shadow: 0 18px 55px rgba(0,0,0,.36);
    transition: opacity .18s ease, transform .18s ease;
}
.shop-toast.is-visible { opacity: 1; transform: translateY(0); }

.plant-site-footer {
    position: relative;
    z-index: 1;
    border-top: 1px solid rgba(228,191,87,.12);
    background: rgba(10, 67, 45, .92);
}
.plant-footer-inner {
    width: var(--pp-shell);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr repeat(4, 1fr);
    gap: clamp(1.2rem, 3vw, 3rem);
    padding: 2.2rem 0;
}
.plant-footer-brand img { width: min(220px, 100%); height: auto; margin-bottom: .7rem; }
.plant-footer-brand span,
.plant-site-footer p { color: rgba(255,255,255,.82); margin: 0; }
.plant-site-footer h3 { color: #fff; margin: 0 0 .75rem; font-size: 1rem; }
.plant-site-footer a {
    display: block;
    color: #fff;
    text-decoration: none;
    margin: .38rem 0;
}
.plant-site-footer a:hover { color: var(--pp-gold); }
.plant-footer-bottom {
    padding: .75rem 1rem;
    text-align: center;
    color: #061814;
    background: var(--pp-gold);
    font-size: .85rem;
}

@media print {
    .plant-nav,
    .plant-site-footer,
    .pp-loading-overlay,
    .shop-heading-actions,
    .admin-command-strip { display: none !important; }
    .shop-section { width: 100% !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important; color: #000 !important; }
}

@media (max-width: 1380px) {
    .plant-account-label { display: none; }
    .plant-menu { gap: .78rem !important; }
    .plant-logo-img { width: clamp(170px, 13vw, 245px) !important; }
}
@media (max-width: 1180px) {
    .plant-menu { display: none !important; }
    .mobile-menu-button { display: inline-flex; }
    .plant-nav-inner { justify-content: space-between; }
    .plant-account-nav { margin-left: auto; }
    .shop-section { padding-top: 122px !important; }
}
@media (max-width: 900px) {
    :root { --pp-shell: min(100vw - 20px, 720px); }
    .plant-nav { padding: 12px 10px !important; }
    .plant-logo-img { width: min(54vw, 230px) !important; max-width: 54vw !important; max-height: 78px !important; }
    .plant-account-nav { display: none !important; }
    .shop-section {
        margin-bottom: 32px !important;
        padding: 104px 12px 26px !important;
        border-radius: 22px !important;
    }
    .shop-section-heading,
    .stock-heading-row,
    .checkout-layout,
    .payment-layout,
    .cart-layout,
    .admin-order-detail-grid,
    .admin-order-summary-grid,
    .admin-summary-grid-5 {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .shop-heading-actions,
    .compact-actions { width: 100%; display: flex; flex-wrap: wrap; }
    .shop-heading-actions .btn,
    .compact-actions .btn { flex: 1 1 160px; }
    .shop-layout { grid-template-columns: 1fr !important; }
    .category-panel { position: static !important; max-height: 260px !important; }
    .product-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)) !important; }
    .cart-row { grid-template-columns: 1fr !important; }
    .cart-row-image { width: 100% !important; height: 180px !important; }
    .admin-order-detail-scroll { max-height: none !important; overflow: visible !important; }
    .plant-footer-inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
    :root { --pp-shell: calc(100vw - 10px); }
    body.plant-body { font-size: 13px; }
    .mobile-menu-button b { display: none; }
    .shop-section-heading h2 { font-size: clamp(2.15rem, 11vw, 3.35rem) !important; }
    .shop-page-logo { max-height: 56px !important; }
    .product-grid { grid-template-columns: 1fr !important; }
    .inline-search-strip { display: grid !important; grid-template-columns: 1fr; }
    .plant-footer-inner { grid-template-columns: 1fr; padding: 1.4rem 0; }
}

/* ==========================================================
   RESPONSIVE REPAIR
   Fixes the fixed-height desktop/tablet shell that breaks when
   browser zoom, screen width, or admin controls change.
   ========================================================== */
html,
body.plant-body {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 100% !important;
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

.plant-main {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
}

.shop-section,
.shop-stock-shell,
.checkout-scroll-shell,
.cart-scroll-shell,
.admin-orders-shell,
.photo-admin-shell {
    width: min(1360px, calc(100vw - clamp(16px, 5vw, 72px))) !important;
    max-width: 1360px !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    min-height: calc(100dvh - clamp(24px, 5vh, 56px)) !important;
    margin: clamp(12px, 3vh, 32px) auto clamp(26px, 5vh, 56px) !important;
    padding: clamp(12px, 1.8vw, 24px) !important;
    overflow: visible !important;
    display: block !important;
}

.shop-stock-display,
.shop-stock-display:not([hidden]),
.shop-stock-display > .shop-layout.right-category-layout,
.shop-stock-display .product-area,
.admin-order-detail-scroll,
.admin-orders-table-wrap,
.admin-order-table-wrap,
.admin-detail-lines-wrap {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
}

.admin-orders-table-wrap,
.admin-order-table-wrap,
.admin-detail-lines-wrap {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.shop-stock-display {
    display: block !important;
}

.shop-stock-display > .shop-layout.right-category-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px) !important;
    gap: clamp(12px, 1.5vw, 20px) !important;
    align-items: start !important;
}

.shop-section-heading.compact-heading,
.stock-heading-row,
body.shop-admin-mode .shop-section-heading.compact-heading {
    position: relative !important;
    top: auto !important;
    z-index: 20 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(260px, auto) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: clamp(10px, 1.6vw, 22px) !important;
    padding: clamp(10px, 1.4vw, 18px) !important;
    margin: 0 0 clamp(12px, 2vh, 20px) !important;
    border: 1px solid rgba(228,191,87,.12) !important;
    border-radius: clamp(16px, 1.5vw, 24px) !important;
    background: rgba(0, 42, 33, .82) !important;
    overflow: visible !important;
}

.stock-brand-left {
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: clamp(10px, 1.4vw, 20px) !important;
}

.shop-page-logo.logo-left,
.stock-brand-left .shop-page-logo,
body.shop-admin-mode .stock-brand-left .shop-page-logo.logo-left {
    flex: 0 0 auto !important;
    width: clamp(118px, 11vw, 178px) !important;
    max-width: 24vw !important;
    height: auto !important;
    max-height: clamp(54px, 7vw, 86px) !important;
    object-fit: contain !important;
}

.stock-brand-left h2,
.shop-section-heading.compact-heading h2,
body.shop-admin-mode .shop-section-heading.compact-heading h2 {
    font-size: clamp(2rem, 4vw, 3.8rem) !important;
    line-height: .98 !important;
    margin: 0 !important;
    letter-spacing: -.04em !important;
    overflow-wrap: anywhere;
}

.stock-brand-left .shop-muted,
.shop-page-subtitle {
    display: block !important;
    max-width: 420px !important;
    font-size: clamp(.78rem, .9vw, .95rem) !important;
    line-height: 1.35 !important;
}

.shop-heading-actions,
.local-shop-nav,
body.shop-admin-mode .local-shop-nav {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(6px, .8vw, 10px) !important;
    overflow: visible !important;
}

.shop-heading-actions > *,
.local-shop-nav > * {
    max-width: 100% !important;
    min-width: 0 !important;
}

.shop-heading-actions .btn,
.shop-cart-link,
.mode-switch-btn,
.admin-tools-summary,
body.shop-admin-mode .shop-heading-actions .btn,
body.shop-admin-mode .shop-cart-link,
body.shop-admin-mode .mode-switch-btn {
    min-height: 38px !important;
    padding: .48rem .78rem !important;
    font-size: clamp(.72rem, .78vw, .86rem) !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
}

.customer-context-pill,
body.shop-admin-mode .customer-context-pill,
.shop-context-pill {
    max-width: min(260px, 100%) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    min-height: 38px !important;
}

.compact-mode-switch,
.shop-mode-switch {
    display: inline-flex !important;
    flex: 0 1 auto !important;
    max-width: 100% !important;
}

.shop-admin-tools-menu {
    flex: 0 1 auto !important;
    max-width: 100% !important;
}

.admin-tools-menu-panel {
    right: 0 !important;
    left: auto !important;
    max-width: min(320px, calc(100vw - 32px)) !important;
}

.shop-toolbar {
    width: 100% !important;
    max-width: 100% !important;
    padding: clamp(10px, 1.2vw, 16px) !important;
    overflow: visible !important;
}

.shop-search-form,
.shop-stock-display > .shop-toolbar .shop-search-form {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(220px, 1fr) auto auto !important;
    gap: clamp(8px, 1vw, 12px) !important;
    align-items: center !important;
}

.inline-search-wrap,
.shop-inline-search {
    min-width: 0 !important;
    width: 100% !important;
}

.shop-search-form .form-control,
.shop-search-form input#search {
    min-width: 0 !important;
    width: 100% !important;
}

.shop-filter-hint {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

.admin-safe-panel,
.admin-bulk-online-panel,
.admin-bulk-photo-panel {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
}

.admin-safe-panel .admin-safe-panel-head,
.admin-safe-panel.admin-bulk-online-panel .admin-safe-panel-head,
.admin-safe-panel.admin-bulk-photo-panel .admin-safe-panel-head {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(160px, .9fr) minmax(220px, 1.3fr) auto !important;
    align-items: center !important;
    gap: clamp(8px, 1.2vw, 16px) !important;
    min-height: 52px !important;
    text-align: left !important;
}

.admin-safe-panel-head .admin-collapsible-title,
.admin-safe-panel-head .admin-collapsible-hint {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}

.product-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)) !important;
}

@media (max-width: 1280px) {
    .shop-section-heading.compact-heading,
    .stock-heading-row,
    body.shop-admin-mode .shop-section-heading.compact-heading {
        grid-template-columns: 1fr !important;
        align-items: start !important;
    }

    .shop-heading-actions,
    .local-shop-nav,
    body.shop-admin-mode .local-shop-nav {
        justify-content: flex-start !important;
    }
}

@media (max-width: 980px) {
    .shop-section,
    .shop-stock-shell,
    .checkout-scroll-shell,
    .cart-scroll-shell,
    .admin-orders-shell,
    .photo-admin-shell {
        width: calc(100vw - 18px) !important;
        margin-top: 9px !important;
        padding: 10px !important;
        border-radius: 18px !important;
    }

    .shop-stock-display > .shop-layout.right-category-layout {
        grid-template-columns: 1fr !important;
    }

    .category-panel,
    .right-category-panel {
        position: static !important;
        max-height: none !important;
    }

    .shop-search-form,
    .shop-stock-display > .shop-toolbar .shop-search-form {
        grid-template-columns: 1fr 1fr !important;
    }

    .inline-search-wrap,
    .shop-inline-search,
    .shop-search-form .shop-filter-hint {
        grid-column: 1 / -1 !important;
    }

    .available-filter-check {
        width: 100% !important;
        justify-content: center !important;
    }

    .admin-safe-panel .admin-safe-panel-head,
    .admin-safe-panel.admin-bulk-online-panel .admin-safe-panel-head,
    .admin-safe-panel.admin-bulk-photo-panel .admin-safe-panel-head {
        grid-template-columns: 1fr auto !important;
    }

    .admin-safe-panel-head .admin-collapsible-hint {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 640px) {
    .shop-section-heading.compact-heading,
    .stock-heading-row,
    body.shop-admin-mode .shop-section-heading.compact-heading {
        padding: 10px !important;
    }

    .stock-brand-left {
        align-items: flex-start !important;
    }

    .shop-page-logo.logo-left,
    .stock-brand-left .shop-page-logo,
    body.shop-admin-mode .stock-brand-left .shop-page-logo.logo-left {
        width: clamp(88px, 28vw, 118px) !important;
        max-width: 30vw !important;
    }

    .stock-brand-left h2,
    .shop-section-heading.compact-heading h2,
    body.shop-admin-mode .shop-section-heading.compact-heading h2 {
        font-size: clamp(1.55rem, 9vw, 2.4rem) !important;
    }

    .stock-brand-left .shop-muted,
    .shop-page-subtitle {
        font-size: .78rem !important;
    }

    .shop-heading-actions,
    .local-shop-nav {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .shop-heading-actions > *,
    .local-shop-nav > *,
    .shop-heading-actions .btn,
    .shop-cart-link,
    .shop-mode-switch,
    .shop-admin-tools-menu,
    .inline-logout-form,
    .inline-logout-form button,
    .customer-context-pill {
        width: 100% !important;
        max-width: 100% !important;
    }

    .shop-mode-switch {
        grid-column: 1 / -1 !important;
    }

    .shop-mode-switch .mode-switch-btn {
        flex: 1 1 0 !important;
        text-align: center !important;
    }

    .shop-admin-tools-menu {
        grid-column: 1 / -1 !important;
    }

    .shop-search-form,
    .shop-stock-display > .shop-toolbar .shop-search-form {
        grid-template-columns: 1fr !important;
    }

    .product-grid {
        grid-template-columns: 1fr !important;
    }

    .admin-safe-panel .admin-safe-panel-head,
    .admin-safe-panel.admin-bulk-online-panel .admin-safe-panel-head,
    .admin-safe-panel.admin-bulk-photo-panel .admin-safe-panel-head {
        grid-template-columns: 1fr !important;
        text-align: left !important;
    }

    .admin-safe-panel-head b {
        justify-self: start !important;
    }
}

/* One page scroll only. No product-area/background double scroll.
   Shop/manage header wraps instead of overflowing.
   Admin Tools dropdown stays above search/filter panels.
   Product/category layout adapts cleanly to desktop, tablet, phone and browser zoom.
   ========================================================= */

html,
body.plant-body {
    min-height: 100% !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

body.plant-body {
    display: block !important;
    background-color: #001c17 !important;
}

.plant-main {
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
    position: relative !important;
    z-index: 1 !important;
}

.plant-site-footer {
    position: relative !important;
    clear: both !important;
    z-index: 1 !important;
    margin-top: clamp(28px, 5vw, 72px) !important;
}


.shop-section,
.shop-stock-shell,
.checkout-scroll-shell,
.cart-scroll-shell,
.admin-orders-shell,
.photo-admin-shell {
    width: min(1500px, calc(100vw - clamp(18px, 4vw, 72px))) !important;
    max-width: 1500px !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
    display: block !important;
}

.shop-stock-shell {
    margin-top: clamp(18px, 4vw, 54px) !important;
    margin-bottom: 0 !important;
    padding: clamp(12px, 1.6vw, 22px) !important;
}

.shop-stock-display,
.shop-stock-display:not([hidden]),
.shop-stock-display > .shop-layout.right-category-layout,
.shop-stock-display .product-area,
.shop-stock-display .right-category-panel,
.admin-online-list,
.product-grid,
.photo-admin-shell,
.admin-orders-shell,
.cart-scroll-shell,
.checkout-scroll-shell {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

.shop-stock-display:not([hidden]) {
    display: block !important;
}

.shop-stock-display > .shop-layout.right-category-layout,
.shop-layout.right-category-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) clamp(230px, 18vw, 310px) !important;
    gap: clamp(12px, 1.5vw, 22px) !important;
    align-items: start !important;
    width: 100% !important;
}

.product-area {
    min-width: 0 !important;
    width: 100% !important;
    padding-right: 0 !important;
}


.shop-stock-display .shop-result-strip,
.shop-result-strip {
    position: relative !important;
    top: auto !important;
    z-index: 2 !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.category-panel,
.right-category-panel,
.shop-stock-display .right-category-panel {
    position: sticky !important;
    top: 16px !important;
    align-self: start !important;
    max-height: none !important;
    overflow: visible !important;
    z-index: 2 !important;
}

.category-panel-list,
.category-item {
    max-height: none !important;
    overflow: visible !important;
}

.shop-section-heading.compact-heading,
.stock-heading-row,
body.shop-admin-mode .shop-section-heading.compact-heading {
    position: relative !important;
    top: auto !important;
    z-index: 5000 !important;
    overflow: visible !important;
    display: grid !important;
    grid-template-columns: minmax(300px, .85fr) minmax(360px, 1.15fr) !important;
    gap: clamp(10px, 1.4vw, 22px) !important;
    align-items: center !important;
    width: 100% !important;
}

.stock-brand-left {
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: clamp(12px, 1.5vw, 24px) !important;
}

.shop-page-logo.logo-left,
.stock-brand-left .shop-page-logo,
body.shop-admin-mode .stock-brand-left .shop-page-logo.logo-left {
    width: clamp(128px, 13vw, 210px) !important;
    max-width: 32vw !important;
    height: auto !important;
    max-height: 92px !important;
    object-fit: contain !important;
}

.stock-brand-left h2,
.shop-section-heading.compact-heading h2,
body.shop-admin-mode .shop-section-heading.compact-heading h2 {
    font-size: clamp(2rem, 4.3vw, 4.4rem) !important;
    line-height: .95 !important;
    margin: 0 !important;
    white-space: normal !important;
}

.shop-heading-actions,
.local-shop-nav,
body.shop-admin-mode .local-shop-nav {
    position: relative !important;
    z-index: 6000 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    min-width: 0 !important;
    width: 100% !important;
    overflow: visible !important;
}

.shop-heading-actions .btn,
.shop-cart-link,
.mode-switch-btn,
.admin-tools-summary,
.inline-logout-form button,
.customer-context-pill,
.shop-context-pill {
    min-height: 38px !important;
    padding: .48rem .82rem !important;
    font-size: clamp(.72rem, .82vw, .9rem) !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
}

.customer-context-pill,
.shop-context-pill {
    max-width: min(240px, 100%) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.compact-mode-switch,
.shop-mode-switch {
    display: inline-flex !important;
    flex: 0 1 auto !important;
    min-width: fit-content !important;
}

.shop-admin-tools-menu {
    position: relative !important;
    z-index: 7000 !important;
    overflow: visible !important;
}

.admin-tools-menu-panel,
.shop-section-heading.compact-heading .admin-tools-menu-panel {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    z-index: 9000 !important;
    min-width: 230px !important;
    max-width: min(340px, calc(100vw - 32px)) !important;
    overflow: visible !important;
}

.shop-toolbar,
.shop-stock-display > .shop-toolbar,
.shop-stock-display > .admin-bulk-online-panel,
.shop-stock-display > .admin-bulk-photo-panel {
    position: relative !important;
    z-index: 5 !important;
    overflow: visible !important;
}

.shop-toolbar {
    padding: clamp(10px, 1.2vw, 16px) !important;
}

.shop-search-form,
.shop-stock-display > .shop-toolbar .shop-search-form {
    display: grid !important;
    grid-template-columns: minmax(260px, 1fr) max-content max-content !important;
    gap: 10px !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
}

.inline-search-wrap,
.shop-inline-search,
.shop-search-form .form-control,
.shop-search-form input#search {
    min-width: 0 !important;
    width: 100% !important;
}

.shop-filter-hint {
    grid-column: 1 / -1 !important;
}

/* Product grid and cards: fit more naturally on desktop and zoomed screens. */
.product-grid,
.product-grid.takealot-grid {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(clamp(180px, 15vw, 230px), 1fr)) !important;
    gap: clamp(12px, 1.25vw, 18px) !important;
    align-items: stretch !important;
    margin-bottom: 0 !important;
}

.product-card {
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    background: rgba(7, 63, 45, .96) !important;
    border-color: rgba(255,255,255,.16) !important;
}

.product-image-wrap {
    height: clamp(150px, 17vw, 205px) !important;
    min-height: 0 !important;
    flex: 0 0 auto !important;
}

.product-image,
.product-image-placeholder {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
}

.product-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    flex: 1 1 auto !important;
    color: #fff !important;
}

.product-content h3,
.product-meta,
.product-meta strong,
.product-price {
    color: #fff !important;
}

.product-content h3 {
    font-size: clamp(.92rem, 1vw, 1.08rem) !important;
    line-height: 1.12 !important;
    min-height: 0 !important;
}

.product-meta {
    opacity: .82 !important;
}

.product-price {
    margin-top: auto !important;
    font-size: clamp(1.05rem, 1.3vw, 1.32rem) !important;
}

.add-cart-form {
    display: grid !important;
    grid-template-columns: minmax(72px, 96px) minmax(42px, 52px) !important;
    gap: 8px !important;
    align-items: center !important;
    margin-top: 6px !important;
}

.qty-label {
    display: none !important;
}

.btn-cart-icon,
.btn-cart {
    min-width: 42px !important;
    width: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.btn-cart .cart-button-text,
.btn-cart-icon .cart-button-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
}

.shop-pager,
.shop-pager-bottom {
    margin-top: clamp(14px, 2vw, 24px) !important;
}

/* Admin/manage rows must use the same page scroll. */
.admin-online-list-form,
.admin-online-list,
.admin-online-row,
.admin-online-list-head,
.admin-online-list-foot {
    overflow: visible !important;
    max-height: none !important;
}

.admin-online-row {
    grid-template-columns: auto minmax(160px, 1fr) minmax(95px, .45fr) minmax(95px, .45fr) minmax(180px, .75fr) !important;
    gap: 10px !important;
}

/* Tablet / small desktop */
@media (max-width: 1180px) {
    .shop-section-heading.compact-heading,
    .stock-heading-row,
    body.shop-admin-mode .shop-section-heading.compact-heading {
        grid-template-columns: 1fr !important;
        align-items: start !important;
    }

    .shop-heading-actions,
    .local-shop-nav,
    body.shop-admin-mode .local-shop-nav {
        justify-content: flex-start !important;
    }

    .shop-stock-display > .shop-layout.right-category-layout,
    .shop-layout.right-category-layout {
        grid-template-columns: 1fr !important;
    }

    .category-panel,
    .right-category-panel,
    .shop-stock-display .right-category-panel {
        position: relative !important;
        top: auto !important;
        order: -1 !important;
        width: 100% !important;
    }

    .product-grid,
    .product-grid.takealot-grid {
        grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)) !important;
    }

    .admin-online-row {
        grid-template-columns: auto minmax(160px, 1fr) minmax(130px, .6fr) !important;
    }
}

@media (max-width: 820px) {
    .shop-section,
    .shop-stock-shell,
    .checkout-scroll-shell,
    .cart-scroll-shell,
    .admin-orders-shell,
    .photo-admin-shell {
        width: calc(100vw - 18px) !important;
        padding: 10px !important;
        border-radius: 18px !important;
    }

    .stock-brand-left {
        align-items: flex-start !important;
    }

    .shop-search-form,
    .shop-stock-display > .shop-toolbar .shop-search-form {
        grid-template-columns: 1fr 1fr !important;
    }

    .inline-search-wrap,
    .shop-inline-search,
    .shop-filter-hint {
        grid-column: 1 / -1 !important;
    }

    .available-filter-check {
        width: 100% !important;
        justify-content: center !important;
    }

    .product-grid,
    .product-grid.takealot-grid {
        grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)) !important;
    }

    .product-image-wrap {
        height: 150px !important;
    }
}

@media (max-width: 560px) {
    .stock-brand-left {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .shop-page-logo.logo-left,
    .stock-brand-left .shop-page-logo,
    body.shop-admin-mode .stock-brand-left .shop-page-logo.logo-left {
        width: clamp(88px, 28vw, 116px) !important;
        max-width: 32vw !important;
    }

    .stock-brand-left h2,
    .shop-section-heading.compact-heading h2,
    body.shop-admin-mode .shop-section-heading.compact-heading h2 {
        font-size: clamp(1.55rem, 9vw, 2.25rem) !important;
    }

    .shop-heading-actions,
    .local-shop-nav {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .shop-heading-actions > *,
    .local-shop-nav > *,
    .shop-heading-actions .btn,
    .shop-cart-link,
    .shop-mode-switch,
    .shop-admin-tools-menu,
    .inline-logout-form,
    .inline-logout-form button,
    .customer-context-pill,
    .shop-context-pill {
        width: 100% !important;
        max-width: 100% !important;
    }

    .shop-mode-switch,
    .shop-admin-tools-menu,
    .customer-context-pill,
    .inline-logout-form {
        grid-column: 1 / -1 !important;
    }

    .shop-mode-switch .mode-switch-btn {
        flex: 1 1 0 !important;
        text-align: center !important;
    }

    .admin-tools-menu-panel,
    .shop-section-heading.compact-heading .admin-tools-menu-panel {
        left: 0 !important;
        right: auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .shop-search-form,
    .shop-stock-display > .shop-toolbar .shop-search-form {
        grid-template-columns: 1fr !important;
    }

    .product-grid,
    .product-grid.takealot-grid {
        grid-template-columns: 1fr !important;
    }

    .product-image-wrap {
        height: 180px !important;
    }

    .admin-online-row {
        grid-template-columns: 1fr !important;
    }
}


:root {
    --plant-muted: rgba(255,255,255,.78) !important;
    --shop-muted: rgba(255,255,255,.78) !important;
}

body.plant-body,
body.plant-body .shop-section,
body.plant-body .shop-stock-shell,
body.plant-body .admin-orders-shell,
body.plant-body .photo-admin-shell {
    color: #fff !important;
}

body.plant-body .form-control,
body.plant-body input.form-control,
body.plant-body textarea.form-control,
body.plant-body select.form-control,
body.plant-body .shop-search-form .form-control,
body.plant-body .inline-search-box .form-control,
body.plant-body .inline-search-wrap .form-control,
body.plant-body .shop-inline-search .form-control {
    color: #fff !important;
    caret-color: #fff !important;
    background: rgba(255,255,255,.13) !important;
    border-color: rgba(255,255,255,.68) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.06) !important;
}

body.plant-body .form-control::placeholder,
body.plant-body input.form-control::placeholder,
body.plant-body textarea.form-control::placeholder,
body.plant-body .shop-search-form .form-control::placeholder,
body.plant-body .inline-search-box .form-control::placeholder,
body.plant-body .inline-search-wrap .form-control::placeholder,
body.plant-body .shop-inline-search .form-control::placeholder {
    color: rgba(255,255,255,.64) !important;
    opacity: 1 !important;
}

body.plant-body .inline-search-icon {
    color: var(--pp-gold) !important;
    opacity: 1 !important;
}

body.plant-body .small-muted,
body.plant-body .shop-muted,
body.plant-body .product-meta,
body.plant-body .admin-orders-table td span,
body.plant-body .admin-order-table td small,
body.plant-body .payment-safe-note span {
    color: rgba(255,255,255,.78) !important;
}


body.plant-body .product-card,
body.plant-body .product-card *:not(input):not(button):not(select):not(option):not(.stock-pill):not(.btn):not(.btn-cart):not(.cart-button-text) {
    color: #fff !important;
}

body.plant-body .product-card .product-price,
body.plant-body .product-card .product-price *,
body.plant-body .cart-summary strong,
body.plant-body .checkout-summary strong,
body.plant-body .admin-summary-card strong,
body.plant-body .admin-orders-table th,
body.plant-body .admin-order-table th {
    color: var(--pp-gold) !important;
}

body.plant-body .product-card .product-meta,
body.plant-body .product-card .product-meta * {
    color: rgba(255,255,255,.74) !important;
}

body.plant-body .qty-input,
body.plant-body .product-card input[type="number"] {
    color: #061814 !important;
    background: #fff !important;
}


body.plant-body .shop-filter-hint {
    display: none !important;
}


.cart-layout {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px) !important;
    align-items: start !important;
}

.cart-layout .cart-list {
    max-height: min(68vh, 760px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 8px !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin;
}

.cart-layout .cart-summary,
.checkout-layout .checkout-summary {
    position: sticky !important;
    top: 18px !important;
}


.checkout-mini-list,
[data-checkout-mini-list] {
    display: none !important;
}


.admin-orders-shell,
.photo-admin-shell,
.product-photo-admin-shell,
body.plant-body .admin-orders-shell,
body.plant-body .photo-admin-shell,
body.plant-body .product-photo-admin-shell {
    width: min(1720px, calc(100vw - clamp(14px, 3vw, 48px))) !important;
    max-width: 1720px !important;
}

.admin-orders-table-wrap,
.admin-order-table-wrap,
.photo-order-form,
.permission-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
}

.admin-orders-table,
.admin-order-table,
.admin-trn-orders-table,
.admin-trn-detail-table,
.product-photo-admin-shell .admin-order-table,
.users-table,
.permission-table-clean {
    width: 100% !important;
    min-width: 1180px !important;
    table-layout: auto !important;
}

.admin-trn-orders-table th,
.admin-trn-orders-table td {
    padding-left: clamp(10px, 1vw, 18px) !important;
    padding-right: clamp(10px, 1vw, 18px) !important;
}

.admin-trn-orders-table th:nth-child(1),
.admin-trn-orders-table td:nth-child(1) { width: 18%; }
.admin-trn-orders-table th:nth-child(2),
.admin-trn-orders-table td:nth-child(2) { width: 13%; }
.admin-trn-orders-table th:nth-child(3),
.admin-trn-orders-table td:nth-child(3) { width: 13%; }
.admin-trn-orders-table th:nth-child(5),
.admin-trn-orders-table td:nth-child(5) { width: 10%; }
.admin-trn-orders-table th.actions,
.admin-trn-orders-table td.actions { width: 90px; }


#order-details .admin-order-detail-scroll,
#order-details [data-detail-scroll] {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    padding-right: 0 !important;
}

#order-details .admin-order-detail-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(220px, 1fr)) !important;
    gap: clamp(12px, 1.2vw, 18px) !important;
    width: 100% !important;
}

#order-details .admin-detail-lines-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
}

#order-details .admin-trn-detail-table {
    width: 100% !important;
    min-width: 1050px !important;
}

#order-details .admin-trn-detail-table th:nth-child(3),
#order-details .admin-trn-detail-table td:nth-child(3) {
    width: 42% !important;
}


.product-photo-admin-shell .inline-search-strip,
.admin-orders-shell .inline-search-strip,
.product-photo-admin-shell form.inline-search-strip,
.admin-orders-shell form.inline-search-strip {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(280px, 1fr) auto auto auto !important;
    gap: 10px !important;
    align-items: center !important;
}

.product-photo-admin-shell .inline-search-box,
.admin-orders-shell .inline-search-box {
    width: 100% !important;
    min-width: 0 !important;
}

.product-photo-admin-shell .photo-order-form .admin-order-table,
.product-photo-admin-shell .admin-order-table,
.admin-orders-shell .admin-order-table {
    width: 100% !important;
    min-width: 1080px !important;
}


.admin-orders-table-wrap::-webkit-scrollbar,
.admin-order-table-wrap::-webkit-scrollbar,
.cart-layout .cart-list::-webkit-scrollbar {
    height: 10px;
    width: 10px;
}

.admin-orders-table-wrap::-webkit-scrollbar-thumb,
.admin-order-table-wrap::-webkit-scrollbar-thumb,
.cart-layout .cart-list::-webkit-scrollbar-thumb {
    background: rgba(228,191,87,.55);
    border-radius: 999px;
}

.admin-orders-table-wrap::-webkit-scrollbar-track,
.admin-order-table-wrap::-webkit-scrollbar-track,
.cart-layout .cart-list::-webkit-scrollbar-track {
    background: rgba(255,255,255,.08);
    border-radius: 999px;
}

@media (max-width: 1180px) {
    #order-details .admin-order-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .product-photo-admin-shell .inline-search-strip,
    .admin-orders-shell .inline-search-strip,
    .product-photo-admin-shell form.inline-search-strip,
    .admin-orders-shell form.inline-search-strip {
        grid-template-columns: 1fr auto auto !important;
    }

    .product-photo-admin-shell .inline-search-box,
    .admin-orders-shell .inline-search-box {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 900px) {
    .cart-layout {
        grid-template-columns: 1fr !important;
    }

    .cart-layout .cart-list {
        max-height: min(62vh, 620px) !important;
    }

    .cart-layout .cart-summary,
    .checkout-layout .checkout-summary {
        position: relative !important;
        top: auto !important;
    }

    .admin-orders-table,
    .admin-order-table,
    .admin-trn-orders-table,
    .admin-trn-detail-table,
    .product-photo-admin-shell .admin-order-table,
    .permission-table-clean {
        min-width: 920px !important;
    }
}

@media (max-width: 640px) {
    #order-details .admin-order-detail-grid {
        grid-template-columns: 1fr !important;
    }

    .product-photo-admin-shell .inline-search-strip,
    .admin-orders-shell .inline-search-strip,
    .product-photo-admin-shell form.inline-search-strip,
    .admin-orders-shell form.inline-search-strip {
        grid-template-columns: 1fr !important;
    }

    .product-photo-admin-shell .inline-search-box,
    .admin-orders-shell .inline-search-box,
    .product-photo-admin-shell .btn,
    .admin-orders-shell .btn,
    .product-photo-admin-shell .small-muted,
    .admin-orders-shell .small-muted {
        width: 100% !important;
    }
}

:root {
    --scroll-dim: .34;
}

body.plant-body::after {
    background:
        linear-gradient(180deg,
            rgba(0,0,0, calc(var(--scroll-dim, .34) * .48)) 0%,
            rgba(0,22,17, calc(var(--scroll-dim, .34) * .96)) 35%,
            rgba(0,0,0, calc(var(--scroll-dim, .34) + .24)) 72%,
            rgba(0,0,0, calc(var(--scroll-dim, .34) + .42)) 100%),
        linear-gradient(90deg,
            rgba(0,0,0, calc(var(--scroll-dim, .34) + .18)),
            rgba(0,0,0,.18) 48%,
            rgba(0,0,0, calc(var(--scroll-dim, .34) + .22))) !important;
}

/* Add-to-cart feedback: spinner only, no text overflow. */
.btn-cart.is-loading-button,
.btn-cart-icon.is-loading-button {
    width: 54px !important;
    min-width: 54px !important;
    height: 54px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.btn-cart.is-loading-button .btn-spinner,
.btn-cart-icon.is-loading-button .btn-spinner {
    margin: 0 !important;
}


.shop-toast {
    pointer-events: none;
}


.product-image-wrap,
.admin-list-image {
    background: rgba(244,250,246,.94) !important;
}

.product-image-wrap {
    padding: 0 !important;
}

.product-image-wrap img,
.product-image,
.admin-list-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
}

.product-card .product-image-wrap {
    min-height: clamp(190px, 15vw, 260px) !important;
}


.stock-client-filtering .product-grid,
.stock-client-filtering .admin-online-list {
    opacity: .72;
    transition: opacity 120ms linear;
}

.stock-client-filtering .shop-result-strip::after {
    content: "Filtering...";
    margin-left: auto;
    color: var(--pp-gold);
    font-weight: 900;
    font-size: .85rem;
}

/* Admin/manage plant list: group field now sits next to Show Online. */
.admin-online-row {
    grid-template-columns: auto minmax(118px, .28fr) minmax(170px, .48fr) minmax(230px, 1fr) minmax(105px, .32fr) minmax(105px, .32fr) !important;
    align-items: center !important;
}

.admin-list-group {
    min-width: 160px !important;
}

.admin-list-group input.form-control-sm {
    width: 100% !important;
}

/* Admin pages should use the right-hand space on desktop. */
.admin-orders-shell,
.photo-admin-shell,
.product-photo-admin-shell,
body.plant-body .admin-orders-shell,
body.plant-body .photo-admin-shell,
body.plant-body .product-photo-admin-shell {
    width: min(1760px, calc(100vw - clamp(10px, 2vw, 44px))) !important;
    max-width: 1760px !important;
}

.admin-orders-table-wrap,
.admin-order-table-wrap,
.photo-order-form,
.permission-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
}

.admin-orders-table,
.admin-order-table,
.users-table,
.permission-table-clean {
    width: 100% !important;
}


.admin-command-strip {
    margin-bottom: clamp(12px, 1.6vw, 22px) !important;
    z-index: 20 !important;
}


.product-photo-admin-shell .photo-order-form .admin-order-table th,
.product-photo-admin-shell .photo-order-form .admin-order-table td {
    padding-left: clamp(12px, 1.2vw, 22px) !important;
    padding-right: clamp(12px, 1.2vw, 22px) !important;
}


.inline-search-box input,
.shop-inline-search input,
.inline-search-strip input,
.shop-search-form input[type="text"],
.shop-search-form .form-control {
    color: #ffffff !important;
    caret-color: var(--pp-gold) !important;
}

.inline-search-box input::placeholder,
.shop-inline-search input::placeholder,
.inline-search-strip input::placeholder,
.shop-search-form .form-control::placeholder {
    color: rgba(255,255,255,.68) !important;
    opacity: 1 !important;
}


#order-details .admin-order-detail-scroll,
#order-details .admin-detail-lines-wrap {
    max-height: none !important;
    height: auto !important;
    overflow-y: visible !important;
}

@media (max-width: 980px) {
    .admin-online-row {
        grid-template-columns: 82px 1fr 1fr !important;
    }

    .admin-list-main,
    .admin-list-stock,
    .admin-list-price {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 680px) {
    .admin-online-row {
        grid-template-columns: 1fr !important;
    }

    .admin-list-group,
    .admin-display-check {
        width: 100% !important;
    }
}


.product-photo-admin-shell .photo-thumb-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    background: transparent !important;
}

.product-photo-admin-shell .photo-admin-thumb {
    width: 78px !important;
    height: 78px !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 14px !important;
}

.product-photo-admin-shell .image-preview-frame img,
.product-photo-admin-shell .image-preview-frame .photo-admin-thumb {
    max-width: 100% !important;
    max-height: 100% !important;
}


.plant-site-footer,
.plant-footer-inner,
.plant-footer-bottom {
    display: none !important;
}


.plant-mobile-menu a.active,
.plant-mobile-menu a[aria-current="page"] {
    background: rgba(228, 191, 87, .14);
    color: var(--pp-gold);
}

.mobile-account-label,
.mobile-menu-section-label {
    display: block;
    margin: .3rem .2rem .45rem;
    padding: .55rem .8rem;
    border-radius: 14px;
    color: rgba(255, 255, 255, .72);
    background: rgba(255, 255, 255, .045);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.mobile-account-label {
    color: #fff;
    text-transform: none;
    letter-spacing: 0;
}

.plant-mobile-logout-form {
    margin: .35rem 0 0;
}

.plant-mobile-logout-form button {
    width: 100%;
    padding: .78rem .9rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 14px;
    color: #fff;
    background: rgba(255, 255, 255, .055);
    font-weight: 900;
    text-align: left;
}

.plant-mobile-logout-form button:hover,
.plant-mobile-logout-form button:focus-visible {
    color: var(--pp-gold);
    background: rgba(255, 255, 255, .09);
}

.back-to-top-button {
    position: fixed;
    right: clamp(14px, 2vw, 28px);
    bottom: clamp(14px, 2vw, 28px);
    z-index: 18;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(228, 191, 87, .38);
    border-radius: 999px;
    color: #061814;
    background: var(--pp-gold);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .36);
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .18s ease, transform .18s ease, background .18s ease;
}

.back-to-top-button.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.back-to-top-button:hover,
.back-to-top-button:focus-visible {
    background: #fff;
}

.btn.is-loading-button,
button.is-loading-button {
    pointer-events: none;
    opacity: .78;
}

.btn-spinner {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    margin-right: .45rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    vertical-align: -0.16em;
    animation: ppButtonSpin .65s linear infinite;
}

@keyframes ppButtonSpin {
    to { transform: rotate(360deg); }
}

.final-polish-card {
    border: 1px solid rgba(228, 191, 87, .18);
    background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
}

.polished-payment-actions {
    gap: .75rem;
}

.polished-payment-actions form {
    width: 100%;
}

.error-help-card {
    align-items: flex-start;
    min-height: 220px;
    padding: clamp(1.1rem, 3vw, 2rem);
    text-align: left;
}

.error-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1rem;
}

.error-action-row .btn {
    min-width: 150px;
}

.form-control::placeholder,
textarea.form-control::placeholder {
    color: rgba(255, 255, 255, .56) !important;
}

.form-control:disabled,
.form-control[readonly] {
    opacity: .76;
    cursor: not-allowed;
}

.text-danger,
.field-validation-error,
.validation-summary-errors {
    color: #ffb8a8 !important;
    font-weight: 800;
}

.validation-summary-errors ul {
    margin-bottom: 0;
    padding-left: 1.1rem;
}

@media (max-width: 760px) {
    .back-to-top-button {
        width: 42px;
        height: 42px;
        right: 12px;
        bottom: 12px;
    }

    .plant-mobile-menu {
        max-height: calc(100vh - 104px);
        overflow: auto;
    }

    .error-action-row,
    .error-action-row .btn {
        width: 100%;
    }
}


.admin-bulk-online-panel .admin-safe-panel-head,
.admin-safe-panel.admin-bulk-online-panel .admin-safe-panel-head {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 4px 12px !important;
    overflow: hidden !important;
    padding: 10px 14px !important;
}

.admin-bulk-online-panel .admin-collapsible-title,
.admin-safe-panel.admin-bulk-online-panel .admin-collapsible-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    font-size: clamp(0.78rem, 1vw, 0.95rem) !important;
    line-height: 1.15 !important;
}

.admin-bulk-online-panel .admin-collapsible-hint,
.admin-safe-panel.admin-bulk-online-panel .admin-collapsible-hint {
    grid-column: 1 !important;
    grid-row: 2 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: clamp(0.62rem, 0.82vw, 0.78rem) !important;
    line-height: 1.15 !important;
}

.admin-bulk-online-panel .admin-safe-panel-head b,
.admin-safe-panel.admin-bulk-online-panel .admin-safe-panel-head b {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    align-self: center !important;
    justify-self: end !important;
    flex: 0 0 auto !important;
}

@media (max-width: 520px) {
    .admin-bulk-online-panel .admin-safe-panel-head,
    .admin-safe-panel.admin-bulk-online-panel .admin-safe-panel-head {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .admin-bulk-online-panel .admin-safe-panel-head b,
    .admin-safe-panel.admin-bulk-online-panel .admin-safe-panel-head b {
        grid-column: 1 !important;
        grid-row: 3 !important;
        justify-self: start !important;
        margin-top: 3px !important;
    }
}


.admin-category-picker {
    position: relative !important;
    width: 100% !important;
}

.admin-category-picker-button {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 34px !important;
    text-align: left !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    background: rgba(255, 255, 255, 0.96) !important;
    color: #062d1f !important;
}

.admin-category-picker-button:disabled {
    cursor: not-allowed !important;
    opacity: 0.72 !important;
}

.admin-category-picker-button span {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.admin-category-picker-button b {
    flex: 0 0 auto !important;
    font-size: 0.9rem !important;
    line-height: 1 !important;
}

.admin-category-picker-menu {
    position: absolute !important;
    z-index: 80 !important;
    top: calc(100% + 4px) !important;
    left: 0 !important;
    right: 0 !important;
    max-height: 240px !important;
    overflow-y: auto !important;
    padding: 5px !important;
    border: 1px solid rgba(239, 200, 91, 0.7) !important;
    border-radius: 10px !important;
    background: #073b29 !important;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.32) !important;
}

.admin-category-picker-menu[hidden],
.admin-category-new-input[hidden] {
    display: none !important;
}

.admin-category-picker-option {
    display: block !important;
    width: 100% !important;
    padding: 8px 9px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: #ffffff !important;
    text-align: left !important;
    text-transform: uppercase !important;
    font-weight: 800 !important;
    font-size: 0.78rem !important;
    line-height: 1.15 !important;
    cursor: pointer !important;
}

.admin-category-picker-option:hover,
.admin-category-picker-option:focus {
    background: rgba(239, 200, 91, 0.95) !important;
    color: #061814 !important;
    outline: none !important;
}

.admin-category-picker-option.new-category-option {
    margin-top: 5px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
    color: #efc85b !important;
}

.admin-category-picker-option.new-category-option:hover,
.admin-category-picker-option.new-category-option:focus {
    color: #061814 !important;
}

.admin-category-new-input {
    margin-top: 6px !important;
    text-transform: uppercase !important;
}


.admin-category-select-picker {
    display: grid !important;
    gap: 6px !important;
    width: 100% !important;
}

.admin-category-select {
    width: 100% !important;
    min-height: 38px !important;
    padding: 0.48rem 2.35rem 0.48rem 0.75rem !important;
    border: 1px solid rgba(239, 200, 91, 0.72) !important;
    border-radius: 999px !important;
    background-color: rgba(7, 59, 41, 0.96) !important;
    color: #fff9df !important;
    font-weight: 900 !important;
    letter-spacing: 0.045em !important;
    text-transform: uppercase !important;
    line-height: 1.1 !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), 0 8px 18px rgba(0, 0, 0, 0.18) !important;
    cursor: pointer !important;
    appearance: auto !important;
}

.admin-category-select:hover,
.admin-category-select:focus {
    border-color: rgba(239, 200, 91, 1) !important;
    background-color: rgba(5, 48, 34, 0.98) !important;
    color: #ffffff !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(239, 200, 91, 0.18), 0 10px 22px rgba(0, 0, 0, 0.2) !important;
}

.admin-category-select:disabled {
    cursor: not-allowed !important;
    opacity: 0.72 !important;
}

.admin-category-select option {
    background: #073b29 !important;
    color: #ffffff !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
}

.admin-category-new-input {
    width: 100% !important;
    min-height: 36px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(239, 200, 91, 0.75) !important;
    background: rgba(255, 255, 255, 0.96) !important;
    color: #062d1f !important;
    font-weight: 900 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

.admin-category-new-input:focus {
    border-color: rgba(239, 200, 91, 1) !important;
    box-shadow: 0 0 0 3px rgba(239, 200, 91, 0.2) !important;
}
