

.competition-card,
.competition-card .card-body,
.competition-card .card-title {
    min-width: 0;
}

.competition-card {
    position: relative;
    z-index: 0;
    display: flex;
    min-height: 260px;
    height: 100%;
    flex-direction: column;
    gap: 0;
    padding: 22px;
    border: 1px solid var(--ws-line);
    border-radius: var(--ws-radius-lg);
    background: var(--ws-surface);
    box-shadow: var(--ws-shadow-md);
    color: var(--ws-fg);
    cursor: pointer;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
    text-align: left;
    font-family: var(--ws-font-sans);
}

.competition-card:hover {
    transform: translateY(-2px);
    border-color: var(--ws-line-strong);
    box-shadow: var(--ws-shadow-lg);
}

.competition-card .card-top-row,
.competition-card .card-bottom-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.competition-card .card-top-row {
    align-items: center;
    min-height: 40px;
}

.competition-card .card-context {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.competition-card .company-name {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: var(--ws-fg);
    font: 800 15px/1.35 var(--ws-font-heading);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.competition-card .separator,
.competition-card .feed-card-category {
    flex: 0 0 auto;
    color: var(--ws-fg-muted);
    font: 750 12px/1 var(--ws-font-sans);
}

.competition-card .feed-card-category {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.competition-card .card-body {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    min-height: 88px;
    padding: 18px 0 12px;
}

.competition-card .card-title {
    display: block;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--ws-fg);
    font: 850 clamp(19px, 1.8vw, 24px)/1.25 var(--ws-font-heading);
    letter-spacing: 0;
}

.competition-card .card-title .text-marquee {
    font: inherit;
    color: inherit;
}

.competition-card .card-bottom-row {
    align-items: flex-end;
    min-height: 50px;
    margin-top: 14px;
}

.competition-card .feed-card-reward,
.competition-card .feed-card-deadline {
    display: grid;
    gap: 6px;
}

.competition-card .feed-card-reward span,
.competition-card .feed-card-deadline span {
    color: var(--ws-fg-soft);
    font: 800 10px/1 var(--ws-font-sans);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.competition-card .feed-card-reward strong {
    color: var(--ws-accent-emerald);
    font: 900 clamp(22px, 2vw, 28px)/1 var(--ws-font-heading);
    letter-spacing: 0;
}

.competition-card .feed-card-deadline {
    justify-items: end;
}

.competition-card .feed-card-deadline strong {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    border: 1px solid var(--ws-line);
    border-radius: var(--ws-radius-md);
    background: var(--ws-surface-soft);
    color: var(--ws-fg);
    font: 850 13px/1 var(--ws-font-sans);
    white-space: nowrap;
}

.competition-card .competition-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 32px;
    align-items: center;
}

.competition-card .type-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid var(--ws-line);
    border-radius: var(--ws-radius-sm);
    background: var(--ws-surface-soft);
    color: var(--ws-fg-muted);
    font: 800 12px/1 var(--ws-font-sans);
    white-space: nowrap;
}

.competition-card--urgent {
    border-color: color-mix(in srgb, var(--cdb-red, var(--ws-error)) 42%, var(--ws-line));
     
    animation: bilox-urgent-shadow 1.9s ease-in-out infinite;
    will-change: box-shadow, border-color;
}
.competition-card--urgent:hover {
     
    border-color: color-mix(in srgb, var(--cdb-red, var(--ws-error)) 62%, var(--ws-line));
}

@keyframes bilox-urgent-shadow {
    0%, 100% {
        box-shadow: 0 0 0 1px color-mix(in srgb, var(--cdb-red, var(--ws-error)) 18%, transparent),
            0 0 18px color-mix(in srgb, var(--cdb-amber, var(--ws-accent-gold)) 14%, transparent),
            var(--ws-shadow-md);
    }
    50% {
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--cdb-red, var(--ws-error)) 44%, transparent),
            0 0 34px color-mix(in srgb, var(--cdb-amber, var(--ws-accent-gold)) 38%, transparent),
            0 0 60px color-mix(in srgb, var(--cdb-red, var(--ws-error)) 18%, transparent),
            var(--ws-shadow-lg);
    }
}

.competition-card--urgent::before {
    content: "";
    position: absolute;
    inset: -10px;
    z-index: -1;
    border-radius: calc(var(--ws-radius-lg) + 10px);
    background: radial-gradient(circle at 16% 0%, color-mix(in srgb, var(--cdb-amber, var(--ws-accent-gold)) 40%, transparent), transparent 30%),
        radial-gradient(circle at 86% 100%, color-mix(in srgb, var(--cdb-red, var(--ws-error)) 30%, transparent), transparent 30%),
        linear-gradient(135deg, transparent 10%, color-mix(in srgb, var(--cdb-amber, var(--ws-accent-gold)) 22%, transparent) 42%, transparent 72%);
    filter: blur(9px);
    pointer-events: none;
     
    animation: bilox-urgent-glow 1.9s ease-in-out infinite;
    will-change: opacity, transform;
}

@keyframes bilox-urgent-glow {
    0%, 100% { opacity: 0.30; transform: scale(0.98); }
    50%      { opacity: 0.95; transform: scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
    .competition-card--urgent { animation: none; }
    .competition-card--urgent::before { animation: none; opacity: 0.55; }
}

.competition-card .feed-company-link {
    display: inline-flex;
    min-width: 0;
    max-width: min(270px, 36vw);
    align-items: center;
    gap: 9px;
    padding: 0;
    border: 0;
    appearance: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.competition-card .feed-company-avatar {
    display: inline-flex;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: var(--ws-radius-sm);
     
    background: var(--ws-primary);
    color: var(--ws-primary-fg);
    font: 850 16px/1 var(--ws-font-heading);
}

.competition-card .feed-company-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.competition-card .feed-company-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.competition-card .company-name--clickable {
    cursor: pointer;
}

.competition-card button.type-badge {
    appearance: none;
    cursor: pointer;
}

.competition-card button.type-badge:hover {
    transform: translateY(-1px);
    border-color: var(--ws-line-strong);
}

.competition-card .type-badge svg,
.competition-card .type-badge i[data-lucide] {
    width: 15px;
    height: 15px;
    stroke-width: 2.2;
}

.competition-card .type-badge--guaranteed {
    background: color-mix(in srgb, var(--bilox-booster-guarantee, #7db7ff) 18%, transparent);
    color: color-mix(in srgb, var(--bilox-booster-guarantee, #7db7ff) 72%, var(--ws-fg));
}

.competition-card .type-badge--revision {
    background: color-mix(in srgb, var(--bilox-booster-revision, #b9a7ff) 18%, transparent);
    color: color-mix(in srgb, var(--bilox-booster-revision, #b9a7ff) 72%, var(--ws-fg));
}

.competition-card .type-badge--review {
    background: color-mix(in srgb, var(--cdb-blue, var(--ws-primary)) 10%, transparent);
    color: var(--cdb-blue, var(--ws-primary));
}

.competition-card .type-badge--hackathon {
    background: color-mix(in srgb, var(--ws-accent-emerald, #10b981) 16%, transparent);
    color: color-mix(in srgb, var(--ws-accent-emerald, #10b981) 78%, var(--ws-fg));
}

.feed-booster-modal-content {
    position: relative;
    width: min(100%, 440px);
    padding: 30px;
    overflow: visible;
    text-align: center;
}

.feed-booster-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
}

.feed-booster-modal-icon {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    border-radius: var(--ws-radius-md);
    background: var(--ws-surface-soft);
    color: var(--cdb-blue, var(--ws-primary));
}

.feed-booster-modal-icon i[data-lucide] {
    width: 22px;
    height: 22px;
}

.feed-booster-modal-content h3 {
    margin: 0 0 10px;
    color: var(--ws-fg);
    font: 850 22px/1.15 var(--ws-font-heading);
}

.feed-booster-modal-content p {
    margin: 0;
    color: var(--ws-fg-muted);
    font: 500 14px/1.55 var(--ws-font-sans);
}

@media (max-width: 599px) {
     
    .competition-card {
        min-height: 260px;
        padding: 20px 18px 22px;
    }

    .competition-card .card-body {
        min-height: 104px;
        padding: 16px 0 14px;
    }

    .competition-card .card-bottom-row {
        min-height: 56px;
        margin-top: 16px;
    }

    .competition-card .card-title {
        font-size: clamp(18px, 5.2vw, 22px);
        line-height: 1.2;
    }

    .competition-card .card-title .text-marquee,
    .competition-card .card-title .text-marquee__track,
    .competition-card .card-title .text-marquee__text {
        display: block;
        min-width: 0;
        max-width: 100%;
        animation: none;
        transform: none;
        white-space: normal;
        overflow: hidden;
    }

    .competition-card .card-title .text-marquee__text {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        text-overflow: ellipsis;
    }
}

body.theme-dark .competition-card .type-badge--guaranteed,
body.theme-dark .competition-card .type-badge--revision,
body.theme-dark .competition-card .type-badge--urgent,
body.theme-dark .competition-card .type-badge--hackathon {
    --badge-tint: var(--bilox-booster-guarantee, var(--ws-verified, #7ebcf6));
    border: 1px solid color-mix(in srgb, var(--badge-tint) 34%, transparent);
    background: color-mix(in srgb, var(--badge-tint) 20%, transparent);
    color: var(--badge-tint);
}
body.theme-dark .competition-card .type-badge--revision { --badge-tint: var(--bilox-booster-revision, var(--ws-canon-rank-pro, #c1adfe)); }
body.theme-dark .competition-card .type-badge--urgent { --badge-tint: var(--bilox-victory, var(--ws-accent-gold, #e0cb96)); }
body.theme-dark .competition-card .type-badge--hackathon { --badge-tint: var(--ws-accent-emerald, #75d5a0); }

.competition-card .feed-card-reward--none strong {
    color: var(--ws-fg-muted) !important;
}

.competition-card .feed-card-reward--hackathon {
    display: flex;
    align-items: flex-end;
}

.competition-card .feed-card-reward--hackathon .type-badge {
    min-height: 34px;
    padding: 0 12px;
    border-radius: var(--ws-radius-md);
    font: 850 13px/1 var(--ws-font-sans);
}

@supports (text-box: trim-both cap alphabetic) {
    .competition-card .type-badge--hackathon,
    .competition-card .feed-card-reward--hackathon .type-badge {
        display: inline-block;
        min-height: 0;
        text-box: trim-both cap alphabetic;
    }

    .competition-card .type-badge--hackathon { padding: 9.5px 11px; }
    .competition-card .feed-card-reward--hackathon .type-badge { padding: 11.5px 12px; }
}
