/**
 * /assets/css/character-companions.css
 *
 * Purpose:  Styling fuer das Begleiter-System
 *           Companion-Cards, Owner-Info, Role-Badges, HP-Bars
 * Deps:     app.css (Variablen), character.css
 * Load:     index.php
 * Version:  1.0.0
 */

/* ============================================================================
   COMPANION GRID
   ============================================================================ */
.companion-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

@media (min-width: 720px) {
    .companion-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1100px) {
    .companion-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ============================================================================
   COMPANION CARD (Hero-View: Begleiter-Karten)
   ============================================================================ */
.companion-card {
    position: relative;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--text, #e6edf3);
    border: 1px solid rgba(255, 255, 255, .10);
    border-left: 3px solid rgba(93, 214, 201, .4);
    border-radius: 12px;
    overflow: hidden;
    backdrop-filter: blur(12px) saturate(1.3);
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    background: rgba(255, 255, 255, .03);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.companion-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, .04), transparent);
    pointer-events: none;
    border-radius: inherit;
}

@media (hover: hover) {
    .companion-card:hover {
        border-color: rgba(93, 214, 201, .5);
        box-shadow: 0 8px 24px rgba(0, 0, 0, .35), 0 0 12px rgba(93, 214, 201, .1);
        color: var(--text, #e6edf3);
    }
}

/* ============================================================================
   CARD IMAGE
   ============================================================================ */
.companion-card__img {
    width: 100%;
    aspect-ratio: 2 / 3;
    object-fit: cover;
    display: block;
}

/* ============================================================================
   ROLE BADGE (oben rechts auf der Karte)
   ============================================================================ */
.companion-card__role-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background: rgba(0, 0, 0, .45);
    border: 2px solid var(--role-color, rgba(93, 214, 201, .5));
    box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
    font-size: 14px;
    color: var(--role-color, #5dd6c9);
}

/* ============================================================================
   CARD BODY
   ============================================================================ */
.companion-card__body {
    padding: 10px 12px;
    flex: 1;
}

.companion-card__name {
    font-weight: 700;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.companion-card__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 11px;
    margin-top: 2px;
    opacity: .75;
}

.companion-card__role {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.companion-card__level {
    font-weight: 600;
}

/* ============================================================================
   HP BAR (Mini-Version)
   ============================================================================ */
.companion-card__hp {
    margin-top: 6px;
    position: relative;
}

.companion-card__hp-bg {
    height: 6px;
    background: rgba(255, 255, 255, .08);
    border-radius: 999px;
    overflow: hidden;
}

.companion-card__hp-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #ff6b6b, #ff9a6b, #5dd6c9, #4da3ff, #5dd6c9);
    background-size: 200% 100%;
    transition: width .5s cubic-bezier(.34, 1.56, .64, 1);
}

.companion-card__hp-label {
    display: block;
    text-align: right;
    font-size: 10px;
    font-weight: 700;
    margin-top: 2px;
    opacity: .7;
}

/* ============================================================================
   STATUS OVERLAYS (Dead / KO)
   ============================================================================ */
.companion-card--dead {
    opacity: .65;
    border-left-color: rgba(255, 107, 107, .5);
}

.companion-card--dead .companion-card__img {
    filter: grayscale(1) brightness(.6);
}

.companion-card--ko {
    opacity: .75;
    border-left-color: rgba(255, 193, 7, .5);
}

.companion-card--ko .companion-card__img {
    filter: grayscale(.5) brightness(.7);
}

.companion-card__status {
    margin-top: 4px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.companion-card__status--dead {
    color: #ff6b6b;
}

.companion-card__status--ko {
    color: #ffc107;
}

/* ============================================================================
   NOTES (Unter der Card)
   ============================================================================ */
.companion-card__notes {
    padding: 4px 12px 8px;
    font-size: 11px;
    color: rgba(255, 255, 255, .5);
    border-top: 1px solid rgba(255, 255, 255, .06);
}

/* ============================================================================
   OWNER CARD (Begleiter-Ansicht: Wem gehoere ich?)
   ============================================================================ */
.companion-owner-card {
    border-left: 3px solid rgba(255, 211, 107, .4);
    padding: 16px;
}

.companion-owner-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 12px;
}

.companion-owner-info {
    display: flex;
    align-items: center;
}

.companion-owner-link {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--text, #e6edf3);
    transition: opacity .15s ease;
}

.companion-owner-link:hover {
    opacity: .85;
    color: var(--text, #e6edf3);
}

.companion-owner-img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, .15);
}

.companion-owner-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
    opacity: .6;
}

.companion-owner-name {
    font-size: 16px;
    font-weight: 800;
}

.companion-notes {
    padding: 8px 12px;
    background: rgba(255, 255, 255, .03);
    border-radius: 8px;
    border-left: 2px solid rgba(255, 255, 255, .1);
}

/* ============================================================================
   EDIT & REASSIGN CARDS
   ============================================================================ */
.companion-edit-card,
.companion-reassign-card {
    padding: 16px;
    border-left: 3px solid rgba(77, 163, 255, .35);
}

.companion-edit-card .section-label,
.companion-reassign-card .section-label {
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 10px;
}

/* ============================================================================
   EMPTY STATE
   ============================================================================ */
.companion-empty-card {
    border-left: 3px solid rgba(139, 148, 158, .3);
    padding: 24px;
}

/* ============================================================================
   CONVERT MODAL (in section_members.php)
   ============================================================================ */
.companion-role-select {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.companion-role-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 6px;
    border: 2px solid rgba(255, 255, 255, .10);
    border-radius: 10px;
    background: rgba(255, 255, 255, .03);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
    text-align: center;
}

.companion-role-option:hover {
    background: rgba(255, 255, 255, .06);
}

.companion-role-option.active {
    border-color: var(--role-color, rgba(93, 214, 201, .5));
    background: rgba(255, 255, 255, .06);
}

.companion-role-option i {
    font-size: 20px;
}

.companion-role-option span {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .02em;
}

@media (max-width: 480px) {
    .companion-role-select {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================================================
   MEMBER CARD: Companion Badge Overlay (in Members Grid)
   ============================================================================ */
.member-card__companion-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 12px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background: rgba(0, 0, 0, .5);
    border: 1px solid var(--role-color, rgba(93, 214, 201, .4));
    font-size: 10px;
    font-weight: 600;
    color: var(--role-color, #5dd6c9);
}

/* ============================================================================
   ACCESSIBILITY
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
    .companion-card,
    .companion-card__hp-fill,
    .companion-card__img {
        transition: none;
        animation: none;
    }
}

/* ============================================================================
   LIGHT THEME
   ============================================================================ */
[data-bs-theme="light"] .companion-card {
    background: rgba(255, 255, 255, .6);
    border-color: rgba(0, 0, 0, .08);
}

[data-bs-theme="light"] .companion-card__role-badge {
    background: rgba(255, 255, 255, .8);
}

[data-bs-theme="light"] .companion-owner-card,
[data-bs-theme="light"] .companion-edit-card,
[data-bs-theme="light"] .companion-reassign-card,
[data-bs-theme="light"] .companion-empty-card {
    background: rgba(255, 255, 255, .6);
}
