/* BuyerFirst Global Hover + Focus Interaction Layer
   Purpose: make clickable buttons, links, cards, and navigation beacons feel interactive.
   Safe scope: targets BuyerFirst component classes only.
*/

:where([class^="bf-"], [class*=" bf-"]) :is(a[href], button, input[type="submit"], input[type="button"]),
:is(a[href], button, input[type="submit"], input[type="button"])[class^="bf-"],
:is(a[href], button, input[type="submit"], input[type="button"])[class*=" bf-"] {
    cursor: pointer;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background-color .16s ease,
        border-color .16s ease,
        color .16s ease,
        opacity .16s ease,
        filter .16s ease;
    -webkit-tap-highlight-color: transparent;
}

:where([class^="bf-"], [class*=" bf-"]) :is(a[href], button, input[type="submit"], input[type="button"]):hover,
:is(a[href], button, input[type="submit"], input[type="button"])[class^="bf-"]:hover,
:is(a[href], button, input[type="submit"], input[type="button"])[class*=" bf-"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .16);
    filter: brightness(1.045);
}

:where([class^="bf-"], [class*=" bf-"]) :is(a[href], button, input[type="submit"], input[type="button"]):active,
:is(a[href], button, input[type="submit"], input[type="button"])[class^="bf-"]:active,
:is(a[href], button, input[type="submit"], input[type="button"])[class*=" bf-"]:active {
    transform: translateY(0) scale(.985);
    box-shadow: 0 6px 16px rgba(15, 23, 42, .12);
}

:where([class^="bf-"], [class*=" bf-"]) :is(a[href], button, input[type="submit"], input[type="button"]):focus-visible,
:is(a[href], button, input[type="submit"], input[type="button"])[class^="bf-"]:focus-visible,
:is(a[href], button, input[type="submit"], input[type="button"])[class*=" bf-"]:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .34);
    outline-offset: 3px;
}

/* Primary BuyerFirst buttons */
.bf-btn:hover,
.bf-btn-primary:hover,
.bf-btn-secondary:hover,
.bf-btn-success:hover,
.bf-btn-warning:hover,
.bf-btn-danger:hover,
.bf-logout-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .18);
    filter: brightness(1.06);
}

/* Sidebar / vertical navigation */
.bf-nav a:hover,
.bf-sidebar a:hover {
    transform: translateX(4px);
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .24);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
}

.bf-nav a:focus-visible,
.bf-sidebar a:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .38);
    outline-offset: 3px;
}

/* Public entry / path-selection cards */
a.bf-card:hover,
button.bf-card:hover,
.bf-card[role="button"]:hover,
.bf-path-card:hover,
.bf-choice-card:hover,
.bf-entry-card:hover,
.bf-action-card:hover,
.bf-clickable:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
    border-color: rgba(18, 61, 111, .30);
}

/* Utility for any future clickable tile */
.bf-clickable,
.bf-card[role="button"],
.bf-path-card,
.bf-choice-card,
.bf-entry-card,
.bf-action-card {
    cursor: pointer;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        border-color .16s ease,
        background-color .16s ease,
        filter .16s ease;
}

/* Disabled states should not lift */
:where([class^="bf-"], [class*=" bf-"]) :is(button, input[type="submit"], input[type="button"]):disabled,
:where([class^="bf-"], [class*=" bf-"]) :is(button, input[type="submit"], input[type="button"])[aria-disabled="true"],
:is(a, button, input)[class^="bf-"][aria-disabled="true"],
:is(a, button, input)[class*=" bf-"][aria-disabled="true"] {
    cursor: not-allowed;
    opacity: .55;
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
}

/* Keep motion respectful for users who reduce animation */
@media (prefers-reduced-motion: reduce) {
    :where([class^="bf-"], [class*=" bf-"]) *,
    :is(a[href], button, input[type="submit"], input[type="button"])[class^="bf-"],
    :is(a[href], button, input[type="submit"], input[type="button"])[class*=" bf-"] {
        transition: none !important;
    }

    :where([class^="bf-"], [class*=" bf-"]) :is(a[href], button, input[type="submit"], input[type="button"]):hover,
    :is(a[href], button, input[type="submit"], input[type="button"])[class^="bf-"]:hover,
    :is(a[href], button, input[type="submit"], input[type="button"])[class*=" bf-"]:hover,
    .bf-card[role="button"]:hover,
    .bf-path-card:hover,
    .bf-choice-card:hover,
    .bf-entry-card:hover,
    .bf-action-card:hover,
    .bf-clickable:hover {
        transform: none !important;
    }
}
