/* ==========================================================================
   PLUSH74 — DIRECTION A SKIN: COLLECTIONS / SHARES / SHORTLISTS
   File: assets/css/p74-skin-collections.css
   Created: 2026-08-07 (stub by group "traps") · filled: 2026-08-07, group "collections".

   WHAT THIS FILE IS FOR
   ---------------------
   The collections surfaces are styled by 8 sheets under
   wp-content/mu-plugins/plush74-collections-2026/ (collections-2026.css is the
   shared kit; the other 7 are per-surface). Those were locked to Direction A in
   the same pass. THIS file only holds the two things that cannot live there:

     A) DEFENSIVE TOKEN ALIASES for collection nodes that the browser may end up
        rendering OUTSIDE a `.p74c` scope (body-appended select2 dropdowns,
        datepicker popups, bootstrap modals some plugins reparent to <body>).
        Every surface root verified today carries `.p74c` on the same element
        (`p74c p74cs-root`, `p74c p74co-root`, `p74c p74ce-root`,
        `swwidget_collection p74c p74cp-root`; `.p74cr-root` and `.p74-srl` are
        nested inside `<div class="p74c p74c-reset">`), so this is belt-and-
        braces, not a live fix.

     B) LEGACY BLEED that originates OUTSIDE files this group owns — the theme's
        rounded lime pill buttons and Bootstrap's shadow chrome leaking into the
        collection views. Killing them at the source would mean editing
        yordy.css / custom.css, which belong to the "traps" and "dashboard"
        groups, so they are neutralised here, SCOPED to collection roots only.

   LOAD ORDER (verified on the rendered page, 2026-08-07)
   ------------------------------------------------------
     p74-system-2026.css  ->  custom.css  ->  THIS FILE  ->  collections-2026.css
     ->  the 7 per-surface collection sheets
   So this file wins over the THEME (custom.css et al.) on source order, but the
   collections mu-plugin sheets are enqueued at wp_enqueue_scripts priority 20
   and therefore land AFTER it. That is deliberate: the per-surface sheets stay
   the source of truth for their own surface, and this file only has to out-rank
   the LEGACY theme/Bootstrap rules — which it does on order alone, plus
   !important where the legacy rule itself carries !important.
   Consequence for section A: the kit re-declares the same aliases on `.p74c`
   (equal specificity, later in source), so the KIT wins wherever a `.p74c`
   ancestor exists and section A only fills in for nodes that lost that scope.

   RULES THIS FILE OBEYS
   ---------------------
   - Tokens from p74-system-2026.css (:root, loaded first).
   - NO box-shadow / text-shadow. 0 radius on panels/cards/inputs/chips;
     var(--r) = 6px on BUTTONS ONLY. No pills.
   - Buttons: primary = var(--yellow) fill / var(--ink) text / 1px solid ink /
     6px / uppercase 13px / .05em. Secondary = var(--paper) fill, same geometry.
     Hover inverts to ink fill + WHITE text.
   - NEVER yellow/lime as a TEXT colour. NEVER dark fill + yellow text.
   - Fonts per text selector only — never a blanket font-family override
     (it kills FontAwesome / ionicons / icomoon / pe-icon-7-stroke).
   - No new hues. danger/warning = ink hairline + var(--hatch).
   - The client address / real-name masking logic is PHP-side and is NOT touched
     by anything here. No selector in this file reveals a hidden node.
   ========================================================================== */


/* ==========================================================================
   A. DEFENSIVE TOKEN ALIASES
   The kit defines every --p74c-* alias on `.p74c`. Repeat the handful that the
   Direction A pass newly depends on (--p74c-r, --p74c-hatch) on the surface
   roots and on the body-appended artefacts, so a node that loses its `.p74c`
   ancestor still resolves them instead of dropping the declaration.
   ========================================================================== */
.p74cs-root,          /* client share / review          */
.p74cr-root,          /* client requests + checkout     */
.p74co-root,          /* collections overview           */
.p74ce-root,          /* collection editor              */
.p74cp-root,          /* favourites popup (site-wide)   */
.p74-srl,             /* member shortlist-response      */
.p74c-s2,             /* body-appended select2 dropdown */
.p74cmd__chatpanel {  /* editor request-chat slide-over */
    --p74c-r:var(--r,6px);
    --p74c-hatch:var(--hatch,repeating-linear-gradient(45deg,#0a0a0a 0 1px,transparent 1px 6px));
    --p74c-ink:var(--ink,#0a0a0a);
    --p74c-paper:var(--paper,#fff);
    --p74c-lime:var(--yellow,#E9FF75);
    --p74c-soft:var(--wash,#fafaf7);
    --p74c-line-2:var(--line-2,#e2e2e2);
}


/* ==========================================================================
   B1. THE ROUNDED LIME PILL — the single worst Direction A violation reaching
   these views from outside. yordy.css / custom.css give .btn-custom,
   .btn-primary and .btn-custom-primary a ~30px radius (a true pill). The
   collection sheets already square the instances they know by name, but the
   legacy SW_Win views emit these classes from PHP in places no per-surface
   selector covers (modal footers, inline "add" buttons, ajax-rendered rows).
   Force the system geometry for ANY of them inside a collection root: 6px, the
   system's only radius, on the system's button metrics.
   Those theme rules carry !important, so these must too.
   ========================================================================== */
.p74cs-root .btn-custom,
.p74cs-root .btn-custom-primary,
.p74cs-root .btn-custom-secondary,
.p74cs-root .btn.btn-primary,
.p74cr-root .btn-custom,
.p74cr-root .btn-custom-primary,
.p74cr-root .btn-custom-secondary,
.p74cr-root .btn.btn-primary,
.p74co-root .btn-custom,
.p74co-root .btn-custom-primary,
.p74co-root .btn-custom-secondary,
.p74co-root .btn.btn-primary,
.p74ce-root .btn-custom,
.p74ce-root .btn-custom-primary,
.p74ce-root .btn-custom-secondary,
.p74ce-root .btn.btn-primary,
.p74-srl .btn-custom,
.p74-srl .btn-custom-primary,
.p74-srl .btn-custom-secondary,
.p74-srl .btn.btn-primary {
    border-radius:var(--p74c-r,6px) !important;   /* was a ~30px pill */
    box-shadow:none !important;
    text-shadow:none !important;
    text-transform:uppercase;
    font-size:13px;
    font-weight:600;
    letter-spacing:.05em;
    line-height:1;
}


/* ==========================================================================
   B2. BOOTSTRAP SHADOW CHROME
   The bundled Bootstrap gives .panel / .well / .modal-content / .dropdown-menu /
   .thumbnail / .form-control(:focus) / .btn(:active) a drop or inset shadow.
   Direction A has no shadow at all: depth is the 1px ink edge against paper.
   Named classes only — no wildcard, so nothing outside these views is touched.
   ========================================================================== */
.p74cs-root .panel, .p74cs-root .well, .p74cs-root .modal-content,
.p74cs-root .dropdown-menu, .p74cs-root .thumbnail, .p74cs-root .form-control,
.p74cs-root .form-control:focus, .p74cs-root .btn, .p74cs-root .btn:active,
.p74cs-root .btn:focus, .p74cs-root .input-group-addon,
.p74cr-root .panel, .p74cr-root .well, .p74cr-root .modal-content,
.p74cr-root .dropdown-menu, .p74cr-root .thumbnail, .p74cr-root .form-control,
.p74cr-root .form-control:focus, .p74cr-root .btn, .p74cr-root .btn:active,
.p74cr-root .btn:focus, .p74cr-root .input-group-addon,
.p74co-root .panel, .p74co-root .well, .p74co-root .modal-content,
.p74co-root .dropdown-menu, .p74co-root .thumbnail, .p74co-root .form-control,
.p74co-root .form-control:focus, .p74co-root .btn, .p74co-root .btn:active,
.p74co-root .btn:focus, .p74co-root .input-group-addon,
.p74ce-root .panel, .p74ce-root .well, .p74ce-root .modal-content,
.p74ce-root .dropdown-menu, .p74ce-root .thumbnail, .p74ce-root .form-control,
.p74ce-root .form-control:focus, .p74ce-root .btn, .p74ce-root .btn:active,
.p74ce-root .btn:focus, .p74ce-root .input-group-addon,
.p74cp-root .form-control, .p74cp-root .form-control:focus, .p74cp-root .btn,
.p74-srl .panel, .p74-srl .well, .p74-srl .form-control,
.p74-srl .form-control:focus, .p74-srl .btn {
    box-shadow:none !important;
    text-shadow:none !important;
}

/* Panels/inputs/dropdowns are 0-radius (the 6px is buttons only, handled in B1).
   `.btn` is deliberately EXCLUDED from this list. */
.p74cs-root .panel, .p74cs-root .well, .p74cs-root .modal-content,
.p74cs-root .dropdown-menu, .p74cs-root .thumbnail, .p74cs-root .form-control,
.p74cr-root .panel, .p74cr-root .well, .p74cr-root .modal-content,
.p74cr-root .dropdown-menu, .p74cr-root .thumbnail, .p74cr-root .form-control,
.p74co-root .panel, .p74co-root .well, .p74co-root .modal-content,
.p74co-root .dropdown-menu, .p74co-root .thumbnail, .p74co-root .form-control,
.p74ce-root .panel, .p74ce-root .well, .p74ce-root .modal-content,
.p74ce-root .dropdown-menu, .p74ce-root .thumbnail, .p74ce-root .form-control,
.p74cp-root .form-control,
.p74-srl .panel, .p74-srl .well, .p74-srl .form-control {
    border-radius:0 !important;
}


/* ==========================================================================
   B3. BOOTSTRAP SEMANTIC HUES (btn-success green / btn-danger red /
   btn-info blue / label-* / alert-*) leaking into ajax-rendered collection
   rows. Direction A adds NO hue: every one of these is the white secondary
   button, and "danger" is marked by the §9 hatched square, not by red.
   The per-surface sheets already convert the instances they enumerate; this
   catches the ajax-rendered ones they cannot name.
   ========================================================================== */
.p74cs-root .btn-success, .p74cs-root .btn-danger, .p74cs-root .btn-info,
.p74cs-root .btn-warning,
.p74cr-root .btn-success, .p74cr-root .btn-danger, .p74cr-root .btn-info,
.p74cr-root .btn-warning,
.p74co-root .btn-success, .p74co-root .btn-danger, .p74co-root .btn-info,
.p74co-root .btn-warning,
.p74ce-root .btn-success, .p74ce-root .btn-danger, .p74ce-root .btn-info,
.p74ce-root .btn-warning,
.p74-srl .btn-success, .p74-srl .btn-danger, .p74-srl .btn-info,
.p74-srl .btn-warning {
    background-color:var(--p74c-paper,#fff) !important;
    background-image:none !important;
    border-color:var(--p74c-ink,#0a0a0a) !important;
    color:var(--p74c-ink,#0a0a0a) !important;
}
.p74cs-root .btn-success:hover, .p74cs-root .btn-danger:hover,
.p74cs-root .btn-info:hover, .p74cs-root .btn-warning:hover,
.p74cr-root .btn-success:hover, .p74cr-root .btn-danger:hover,
.p74cr-root .btn-info:hover, .p74cr-root .btn-warning:hover,
.p74co-root .btn-success:hover, .p74co-root .btn-danger:hover,
.p74co-root .btn-info:hover, .p74co-root .btn-warning:hover,
.p74ce-root .btn-success:hover, .p74ce-root .btn-danger:hover,
.p74ce-root .btn-info:hover, .p74ce-root .btn-warning:hover,
.p74-srl .btn-success:hover, .p74-srl .btn-danger:hover,
.p74-srl .btn-info:hover, .p74-srl .btn-warning:hover {
    /* the one sanctioned hover: invert to ink fill + WHITE text */
    background-color:var(--p74c-ink,#0a0a0a) !important;
    color:var(--p74c-paper,#fff) !important;
}

/* Bootstrap alert / label hues -> paper + ink hairline. `alert-success` keeps
   the yellow FILL with INK text (the system's "good" state, the allowed combo);
   the rest go quiet and are marked by the §9 hatched square instead. */
.p74cs-root .alert, .p74cr-root .alert, .p74co-root .alert,
.p74ce-root .alert, .p74-srl .alert {
    background-color:var(--p74c-soft,#fafaf7);
    border:1px solid var(--p74c-line-2,#e2e2e2);
    border-left:5px solid var(--p74c-ink,#0a0a0a);
    border-radius:0;
    color:var(--p74c-ink,#0a0a0a);
    box-shadow:none;
    text-shadow:none;
}
.p74cs-root .alert-success, .p74cr-root .alert-success, .p74co-root .alert-success,
.p74ce-root .alert-success, .p74-srl .alert-success {
    background-color:var(--p74c-lime,#E9FF75);
    color:var(--p74c-ink,#0a0a0a);
}
.p74cs-root .alert-danger, .p74cs-root .alert-warning,
.p74cr-root .alert-danger, .p74cr-root .alert-warning,
.p74co-root .alert-danger, .p74co-root .alert-warning,
.p74ce-root .alert-danger, .p74ce-root .alert-warning,
.p74-srl .alert-danger, .p74-srl .alert-warning {
    background-color:var(--p74c-paper,#fff);
    color:var(--p74c-ink,#0a0a0a);
}


/* ==========================================================================
   B4. CIRCLES. Direction A permits exactly one circle (the radio dot) and one
   avatar disc. Anything else that arrives as a pill/circle inside a collection
   view — bootstrap .badge, .img-circle, the theme's round icon buttons — is
   squared off. Status marks are 0-radius squares (system.css §9).
   ========================================================================== */
.p74cs-root .badge, .p74cr-root .badge, .p74co-root .badge,
.p74ce-root .badge, .p74cp-root .badge, .p74-srl .badge {
    border-radius:0;
    background-color:var(--p74c-lime,#E9FF75);
    color:var(--p74c-ink,#0a0a0a);
    border:1px solid var(--p74c-ink,#0a0a0a);
    text-shadow:none;
    box-shadow:none;
    font-weight:600;
}
.p74cs-root .img-circle, .p74cr-root .img-circle, .p74co-root .img-circle,
.p74ce-root .img-circle, .p74-srl .img-circle {
    border-radius:0;
}


/* ==========================================================================
   B5. FONTS — per text selector only, never a blanket override.
   'MaisonNeue-Book' / 'MaisonNeue-Extended' are NOT registered @font-face
   families (custom.css:17-30 registers exactly two: 'Maison Neue' = the
   Extended-Medium display cut, and 'Maison Neue Book' = the body cut). Legacy
   collection markup that spells the unregistered names silently fell through
   to the display face for BODY copy. These selectors name TEXT nodes only —
   no icon element (.fa/.glyphicon/.ion/.icon-/.pe-7s-) is ever matched.
   ========================================================================== */
.p74cs-root p, .p74cs-root li, .p74cs-root td, .p74cs-root label,
.p74cr-root p, .p74cr-root li, .p74cr-root td, .p74cr-root label,
.p74co-root p, .p74co-root li, .p74co-root td, .p74co-root label,
.p74-srl p, .p74-srl li, .p74-srl td, .p74-srl label {
    font-family:var(--text,'Maison Neue Book','Maison Neue','Helvetica Neue',Arial,sans-serif);
}
.p74cs-root h1, .p74cs-root h2, .p74cs-root h3, .p74cs-root h4,
.p74cr-root h1, .p74cr-root h2, .p74cr-root h3, .p74cr-root h4,
.p74co-root h1, .p74co-root h2, .p74co-root h3, .p74co-root h4,
.p74-srl h1, .p74-srl h2, .p74-srl h3, .p74-srl h4 {
    font-family:var(--disp,'Maison Neue','Helvetica Neue',Arial,sans-serif);
    text-transform:uppercase;
    font-weight:600;
}
