/* cs-fixes.css - fleet fix pack cut from canonical bs2-bs5-bridge.css 2026-10-16.130 (mkfixes.py, 2026-10-16).
   Released templates that are not on the canonical bridge get these blocks verbatim; template-specific blocks follow. */

/* =====================================================================
   CS-PATCH: cart-count-badge-desktop  2026-10-16 (rev .125, Tim on GliseStore/Furniture: the desktop basket showed a
   number only on mouse-over; "that number should always show ... make that a thing for all templates with carts")
   cs-mobile-generic.js puts span.cs-cart-badge-d inside the cart's icon link (a.cs-badge-host) whenever the cart holds
   1 or more. Shown from 768 up on the icon's top-right corner; the donor's own hover-only count bubble inside the same
   link is hidden while the badge shows (no double count). Phones keep the chip badge (cart-count-badge).
   ===================================================================== */
.cs-cart-badge-d { display: none; }
@media (min-width: 768px) {
    .vmCartModule a.cs-badge-host { position: relative !important; overflow: visible !important; }
    .vmCartModule a.cs-badge-host > .cs-cart-badge-d {
        display: flex; position: absolute; top: -8px; right: -10px; z-index: 5;
        min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box;
        align-items: center; justify-content: center;
        border-radius: 10px; background: #d32f2f; color: #fff;
        font: 700 12px/1 Arial, Helvetica, sans-serif; text-indent: 0; letter-spacing: 0; text-transform: none;
        box-shadow: 0 0 0 2px #fff; pointer-events: none;
    }
    .vmCartModule a.cs-badge-host.cs-has-n .products-number { display: none !important; }
}
/* /CS-PATCH: cart-count-badge-desktop */

/* =====================================================================
   CS-PATCH: password-toggle-inline  2026-10-16 (rev .126; found on GliseStore at Tim's grad test, then measured on
   Furniture, HyperShop, FlatStore, Flexo, Serenity, SparkStore: all wrapped)
   Joomla's login/registration password field is a BS5 .input-group (input + .input-password-toggle eye). Donor input
   rules (width:100%) made the group wrap, so the eye dropped onto its own line under the field. Keep them on one line.
   ===================================================================== */
.input-group:has(> .input-password-toggle) { flex-wrap: nowrap !important; }
.input-group:has(> .input-password-toggle) > input.form-control,
.input-group:has(> .input-password-toggle) > input { flex: 1 1 auto !important; width: 1% !important; min-width: 0 !important; max-width: none !important; }
.input-group:has(> .input-password-toggle) > .input-password-toggle { flex: 0 0 auto !important; width: auto !important; }
/* /CS-PATCH: password-toggle-inline */

/* =====================================================================
   CS-PATCH: article-pager-ends  2026-10-16 (rev .128; Tim's FlatStore grad test: "the previous and next buttons on
   articles are squished together ... next should be to the far right")
   Joomla 5's core pager is `nav.pagenavigation > span.pagination > a.previous + a.next`. Cassiopeia spreads it; the
   donors never had that CSS, so both buttons sat at the left edge 4px apart. MEASURED with pager.py @1400: FlatStore
   live + stage Next 59-73px from the left of an 848-870px column; Serenity the same. Same on the phone.
   Next takes margin-left:auto so it also goes right when it is the only button (first article).
   ===================================================================== */
.pagenavigation .pagination { display: flex !important; flex-wrap: wrap; justify-content: space-between; align-items: center; width: 100%; gap: 8px; }
.pagenavigation .pagination > .next { margin-left: auto !important; }
/* /CS-PATCH: article-pager-ends */

/* =====================================================================
   CS-PATCH: adopted-cart-panel-ink  2026-10-16 (rev .127; Tim's HyperShop grad test: "clicking on the cart button brings
   up an empty box ... when something is in the cart it just has the name of the product")
   The phone utility row paints every chip `color: var(--cs-accent-ink)` (white), the adopted cart included, and the
   cart module's own drop-down panel lives INSIDE that chip. A donor panel with no colour of its own inherited the white:
   quantity, price, "1 product", "Total" and "0 products" at 1.00:1 on the white panel - only the product-name link
   (its own colour) showed. The 2026-09-12 Flexi fix stopped the glyph rule reaching in, but not plain inheritance.
   MEASURED with cartink.py @375: HyperShop stage, Furniture, Avant - invisible; 25 other VMT demos clean.
   :where() keeps this at (0,1,0) and it carries no !important, so any donor rule that colours its panel still wins;
   it only replaces the inherited chip ink.
   ===================================================================== */
@media (max-width: 767px) {
    /* .130: OUTERMOST panel only, at zero specificity. .127 also matched the .cartpanel INSIDE FlatStore's dark .panel2,
       whose donor colour (rgb 147 on rgb 54) it then overrode with #333 - "Cart empty" at 1.05:1. Any donor rule now wins,
       and an inner panel inherits from its outer one as the donor intended. */
    :where(#cs-utility-row > .cs-adopted-cart) :where(.panel1, .panel2, .cartpanel:not(:is(.panel1, .panel2) *)) { color: var(--cs-panel-ink, #333); }
}
/* /CS-PATCH: adopted-cart-panel-ink */
