/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* =============================================================
   MainLayout — Frosted glass spine + content pages
   ============================================================= */

.tome[b-8qsmqmqmh8] {
    display: flex;
    min-height: 100vh;
    position: relative;
    z-index: 1;
}

/* --- Sidebar: frosted glass over forest background --- */
.tome-spine[b-8qsmqmqmh8] {
    width: 250px;
    background:
        rgba(7, 14, 20, 0.75);
    backdrop-filter: blur(20px) saturate(1.2);
    -webkit-backdrop-filter: blur(20px) saturate(1.2);
    border-right: 1px solid rgba(188, 206, 198, 0.06);
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    flex-shrink: 0;
}

/* Subtle contour-map motif in the sidebar background */
.tome-spine[b-8qsmqmqmh8]::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.012;
    pointer-events: none;
    background-image:
        repeating-radial-gradient(circle at 20% 30%, transparent 0, transparent 38px, rgba(61,138,85,0.5) 39px, transparent 40px),
        repeating-radial-gradient(circle at 70% 60%, transparent 0, transparent 52px, rgba(58,128,168,0.4) 53px, transparent 54px),
        repeating-radial-gradient(circle at 45% 80%, transparent 0, transparent 44px, rgba(61,138,85,0.3) 45px, transparent 46px);
}

/* Glass edge highlight */
.tome-spine[b-8qsmqmqmh8]::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 1px;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(188, 206, 198, 0.08) 20%,
        rgba(61, 138, 85, 0.06) 50%,
        rgba(188, 206, 198, 0.08) 80%,
        transparent 100%
    );
}

/* --- Main content area --- */
.tome-pages[b-8qsmqmqmh8] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Top header bar — also frosted */
.pages-header[b-8qsmqmqmh8] {
    height: 52px;
    padding: 0 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(188, 206, 198, 0.05);
    background: rgba(15, 32, 40, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    position: sticky;
    top: 0;
    z-index: 10;
}

.pages-content[b-8qsmqmqmh8] {
    padding: 2rem;
    flex: 1;
    position: relative;
}

/* --- Blazor error UI --- */
#blazor-error-ui[b-8qsmqmqmh8] {
    background: rgba(15, 32, 40, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 2px solid var(--rw-blood);
    color: var(--rw-text);
    bottom: 0;
    box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.4);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-family: var(--rw-font-ui);
}

    #blazor-error-ui .dismiss[b-8qsmqmqmh8] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
        color: var(--rw-text-faint);
    }

    #blazor-error-ui .reload[b-8qsmqmqmh8] {
        color: var(--rw-verdant-bright);
    }

/* --- Responsive --- */
@media (max-width: 768px) {
    .tome-spine[b-8qsmqmqmh8] {
        display: none;
    }

    .pages-content[b-8qsmqmqmh8] {
        padding: 1.25rem;
    }

    .pages-header[b-8qsmqmqmh8] {
        padding: 0 1.25rem;
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* =============================================================
   NavMenu — Frosted glass sidebar, full-width anchored nav
   ============================================================= */

/* --- Mobile toggle --- */
.navbar-toggler[b-r5ahfaddrw] {
    appearance: none;
    cursor: pointer;
    width: 3rem;
    height: 2.25rem;
    color: white;
    position: absolute;
    top: 0.6rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28188, 206, 198, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.5rem rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 20;
}

.navbar-toggler:checked[b-r5ahfaddrw] {
    background-color: rgba(61, 138, 85, 0.08);
}

/* --- Brand --- */
.spine-brand[b-r5ahfaddrw] {
    padding: 1.5rem 1.125rem 1.25rem;
}

.spine-brand a[b-r5ahfaddrw] {
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.spine-brand-mark[b-r5ahfaddrw] {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.2);
    border-radius: 10px;
    flex-shrink: 0;
    transition: all 0.2s ease;
    overflow: hidden;
}

.spine-brand-mark img[b-r5ahfaddrw] {
    width: 28px;
    height: 28px;
    object-fit: contain;
    filter: drop-shadow(0 0 6px rgba(0, 200, 180, 0.3));
}

.spine-brand a:hover .spine-brand-mark[b-r5ahfaddrw] {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(61, 138, 85, 0.35);
    box-shadow: 0 0 16px rgba(61, 138, 85, 0.1);
}

.spine-brand-text[b-r5ahfaddrw] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
    letter-spacing: 0.02em;
}

/* --- Sections --- */
.spine-section[b-r5ahfaddrw] {
    padding: 0.35rem 0.625rem;
}

.spine-section:first-child[b-r5ahfaddrw] {
    padding-top: 0.5rem;
}

/* Section group container */
.spine-section-group[b-r5ahfaddrw] {
    background: rgba(188, 206, 198, 0.02);
    border: 1px solid rgba(188, 206, 198, 0.04);
    border-radius: 10px;
    padding: 0.25rem;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

/* Section label */
.spine-section-label[b-r5ahfaddrw] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    padding: 0.5rem 0.625rem 0.4rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.spine-section-line[b-r5ahfaddrw] {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, rgba(188, 206, 198, 0.06), transparent);
}

.spine-section-label .spine-section-line:first-child[b-r5ahfaddrw] {
    background: linear-gradient(90deg, transparent, rgba(188, 206, 198, 0.06));
}

/* --- Nav items — full-width, always-visible --- */
/* ::deep is required because NavLink renders its own <a> tag
   which doesn't receive the Blazor CSS isolation attribute */
[b-r5ahfaddrw] .spine-nav-item {
    display: flex;
    text-decoration: none;
    padding: 0.5rem 0.625rem;
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    color: var(--rw-text-dim);
    align-items: center;
    gap: 0.6rem;
    transition: all 0.15s ease;
    position: relative;
    border-radius: 8px;
    background: rgba(188, 206, 198, 0.025);
    border: 1px solid rgba(188, 206, 198, 0.03);
}

[b-r5ahfaddrw] .spine-nav-item:hover {
    color: var(--rw-text-bright);
    background: rgba(188, 206, 198, 0.065);
    border-color: rgba(188, 206, 198, 0.06);
}

[b-r5ahfaddrw] .spine-nav-item:hover .spine-nav-icon {
    background: rgba(61, 138, 85, 0.15);
    border-color: rgba(61, 138, 85, 0.2);
    color: var(--rw-verdant-bright);
}

/* Active state — filled pill with left accent bar */
[b-r5ahfaddrw] .spine-nav-item.active {
    color: var(--rw-text-bright);
    background: rgba(61, 138, 85, 0.1);
    border-color: rgba(61, 138, 85, 0.15);
}

[b-r5ahfaddrw] .spine-nav-item.active::before {
    content: '';
    position: absolute;
    left: -1px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 18px;
    background: var(--rw-verdant-bright);
    border-radius: 0 3px 3px 0;
    box-shadow: 0 0 8px rgba(61, 138, 85, 0.3);
}

[b-r5ahfaddrw] .spine-nav-item.active .spine-nav-icon {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(61, 138, 85, 0.25);
    color: var(--rw-verdant-bright);
    box-shadow: 0 0 10px rgba(61, 138, 85, 0.1);
}

/* --- Icon containers — visible at rest --- */
[b-r5ahfaddrw] .spine-nav-icon {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: rgba(188, 206, 198, 0.05);
    border: 1px solid rgba(188, 206, 198, 0.05);
    color: var(--rw-text-dim);
    flex-shrink: 0;
    transition: all 0.15s ease;
}

[b-r5ahfaddrw] .spine-nav-icon svg {
    width: 15px;
    height: 15px;
}

[b-r5ahfaddrw] .spine-nav-text {
    font-weight: 500;
    line-height: 1;
}

/* --- Search button (footer) --- */
.spine-footer[b-r5ahfaddrw] {
    margin-top: auto;
    padding: 0.75rem 0.625rem 1.25rem;
}

.spine-version[b-r5ahfaddrw] {
    display: block;
    text-align: center;
    font-size: 0.625rem;
    color: rgba(255, 255, 255, 0.25);
    margin-top: 0.5rem;
    letter-spacing: 0.05em;
    user-select: text;
}

.spine-search-btn[b-r5ahfaddrw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.625rem;
    border: 1px solid rgba(188, 206, 198, 0.06);
    border-radius: 8px;
    background: rgba(188, 206, 198, 0.025);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: left;
}

.spine-search-btn:hover[b-r5ahfaddrw] {
    border-color: rgba(61, 138, 85, 0.2);
    background: rgba(61, 138, 85, 0.06);
    color: var(--rw-text-dim);
}

.spine-search-btn svg[b-r5ahfaddrw] {
    opacity: 0.4;
    flex-shrink: 0;
}

.spine-search-btn span[b-r5ahfaddrw] {
    flex: 1;
}

.spine-search-btn kbd[b-r5ahfaddrw] {
    display: inline-block;
    padding: 2px 6px;
    font-size: 0.6rem;
    font-family: var(--rw-font-ui);
    background: rgba(188, 206, 198, 0.06);
    border: 1px solid rgba(188, 206, 198, 0.08);
    border-radius: 4px;
    color: var(--rw-text-faint);
    line-height: 1.3;
}

/* --- Live session section — blood-red urgency --- */
.spine-section-group--live[b-r5ahfaddrw] {
    border-color: rgba(184, 58, 26, 0.12);
    background: rgba(184, 58, 26, 0.03);
}

[b-r5ahfaddrw] .spine-nav-item--live {
    background: rgba(184, 58, 26, 0.04);
    border-color: rgba(184, 58, 26, 0.08);
}

[b-r5ahfaddrw] .spine-nav-item--live:hover {
    background: rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.14);
}

[b-r5ahfaddrw] .spine-nav-item--live.active {
    background: rgba(184, 58, 26, 0.1);
    border-color: rgba(184, 58, 26, 0.18);
}

[b-r5ahfaddrw] .spine-nav-item--live.active::before {
    background: var(--rw-blood-bright);
    box-shadow: 0 0 8px rgba(184, 58, 26, 0.4);
}

[b-r5ahfaddrw] .spine-nav-icon--live {
    background: rgba(184, 58, 26, 0.1);
    border-color: rgba(184, 58, 26, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
}

[b-r5ahfaddrw] .spine-nav-item--live:hover .spine-nav-icon--live {
    background: rgba(184, 58, 26, 0.18);
    border-color: rgba(184, 58, 26, 0.25);
}

.live-pulse-dot[b-r5ahfaddrw] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rw-blood-bright);
    animation: live-pulse-b-r5ahfaddrw 2s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes live-pulse-b-r5ahfaddrw {
    0%, 100% { box-shadow: 0 0 0 0 rgba(184, 58, 26, 0.5); }
    50% { box-shadow: 0 0 0 5px rgba(184, 58, 26, 0); }
}

[b-r5ahfaddrw] .live-campaign-name {
    display: block;
    font-weight: 500;
    font-size: 0.84rem;
    line-height: 1.2;
    color: var(--rw-text);
}

[b-r5ahfaddrw] .live-session-label {
    display: block;
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    line-height: 1.2;
    margin-top: 1px;
}

/* --- Admin section — gold-tinged authority --- */
.spine-section-group--admin[b-r5ahfaddrw] {
    border-color: rgba(196, 160, 64, 0.08);
    background: rgba(196, 160, 64, 0.02);
}

[b-r5ahfaddrw] .spine-nav-icon--admin {
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item:hover .spine-nav-icon--admin {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item:hover {
    background: rgba(196, 160, 64, 0.06);
    border-color: rgba(196, 160, 64, 0.08);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item.active {
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.12);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item.active::before {
    background: var(--rw-gold);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.3);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item.active .spine-nav-icon--admin {
    background: rgba(196, 160, 64, 0.18);
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.1);
}

/* --- Mobile --- */
.nav-scrollable[b-r5ahfaddrw] {
    display: none;
    flex-direction: column;
}

.navbar-toggler:checked ~ .nav-scrollable[b-r5ahfaddrw] {
    display: flex;
}

@media (min-width: 769px) {
    .navbar-toggler[b-r5ahfaddrw] {
        display: none;
    }

    .nav-scrollable[b-r5ahfaddrw] {
        display: flex;
        flex-direction: column;
        flex: 1;
        overflow-y: auto;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-4cvmsfaepq],
.components-reconnect-repeated-attempt-visible[b-4cvmsfaepq],
.components-reconnect-failed-visible[b-4cvmsfaepq],
.components-pause-visible[b-4cvmsfaepq],
.components-resume-failed-visible[b-4cvmsfaepq],
.components-rejoining-animation[b-4cvmsfaepq] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-retrying[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-failed[b-4cvmsfaepq],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-4cvmsfaepq] {
    display: block;
}

#components-reconnect-modal[b-4cvmsfaepq] {
    background-color: var(--rw-bg-panel);
    border: 1px solid var(--rw-border-gold);
    color: var(--rw-text);
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: var(--rw-radius-lg);
    box-shadow: var(--rw-shadow-deep);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-4cvmsfaepq 0.5s both;
    &[open] {
        animation: components-reconnect-modal-slideUp-b-4cvmsfaepq 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s,
                   components-reconnect-modal-fadeInOpacity-b-4cvmsfaepq 0.5s ease-in-out 0.3s;
        animation-fill-mode: both;
    }
}

#components-reconnect-modal[b-4cvmsfaepq]::backdrop {
    background-color: rgba(0, 0, 0, 0.6);
    animation: components-reconnect-modal-fadeInOpacity-b-4cvmsfaepq 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-4cvmsfaepq {
    0% { transform: translateY(30px) scale(0.95); }
    100% { transform: translateY(0); }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-4cvmsfaepq {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-4cvmsfaepq {
    0% { opacity: 1; }
    100% { opacity: 0; }
}

.components-reconnect-container[b-4cvmsfaepq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-4cvmsfaepq] {
    margin: 0;
    text-align: center;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-dim);
}

#components-reconnect-modal button[b-4cvmsfaepq] {
    border: 0;
    background: var(--rw-verdant);
    color: #fff;
    font-weight: 600;
    padding: 6px 24px;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    cursor: pointer;
    transition: all 0.2s ease;
}

#components-reconnect-modal button:hover[b-4cvmsfaepq] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 16px var(--rw-verdant-glow);
}

.components-rejoining-animation[b-4cvmsfaepq] {
    position: relative;
    width: 80px;
    height: 80px;
}

.components-rejoining-animation div[b-4cvmsfaepq] {
    position: absolute;
    border: 3px solid var(--rw-verdant-bright);
    opacity: 1;
    border-radius: 50%;
    animation: components-rejoining-animation-b-4cvmsfaepq 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}

.components-rejoining-animation div:nth-child(2)[b-4cvmsfaepq] {
    animation-delay: -0.5s;
}

@keyframes components-rejoining-animation-b-4cvmsfaepq {
    0% { top: 40px; left: 40px; width: 0; height: 0; opacity: 0; }
    4.9% { top: 40px; left: 40px; width: 0; height: 0; opacity: 0; }
    5% { top: 40px; left: 40px; width: 0; height: 0; opacity: 1; }
    100% { top: 0; left: 0; width: 80px; height: 80px; opacity: 0; }
}
/* /Components/Pages/Account/Account.razor.rz.scp.css */
/* =============================================================
   Account Page — Tabbed account settings
   ============================================================= */

.rw-account-page[b-ki5tcq5jwq] {
    max-width: 720px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

/* --- Header with decorative flourish --- */
.rw-account-header[b-ki5tcq5jwq] {
    position: relative;
    margin-bottom: 0.5rem;
}

.rw-account-header h1[b-ki5tcq5jwq] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.8rem;
    margin-bottom: 0.25rem;
}

.rw-account-subtitle[b-ki5tcq5jwq] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    margin-bottom: 1.75rem;
}

/* Decorative rule under header */
.rw-account-header[b-ki5tcq5jwq]::after {
    content: '';
    display: block;
    width: 80px;
    height: 1px;
    background: linear-gradient(90deg, var(--rw-gold) 0%, transparent 100%);
    margin-top: 0.5rem;
    opacity: 0.4;
}

/* --- Tab bar --- */
.rw-account-tabs[b-ki5tcq5jwq] {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid var(--rw-border);
    margin-bottom: 2rem;
    position: relative;
}

/* Subtle glow line along tab bar bottom */
.rw-account-tabs[b-ki5tcq5jwq]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(61, 138, 85, 0.12) 30%,
        rgba(61, 138, 85, 0.06) 70%,
        transparent 100%
    );
}

.rw-account-tab[b-ki5tcq5jwq] {
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--rw-text-dim);
    text-decoration: none;
    padding: 0.65rem 1.1rem;
    border: none;
    border-bottom: 2px solid transparent;
    background: none;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    transition: all var(--rw-transition);
    position: relative;
    bottom: -1px;
}

.rw-account-tab svg[b-ki5tcq5jwq] {
    opacity: 0.5;
    transition: opacity var(--rw-transition);
}

.rw-account-tab:hover[b-ki5tcq5jwq] {
    color: var(--rw-text-bright);
    border-bottom-color: var(--rw-verdant-deep);
}

.rw-account-tab:hover svg[b-ki5tcq5jwq] {
    opacity: 0.7;
}

.rw-account-tab.active[b-ki5tcq5jwq] {
    color: var(--rw-verdant-bright);
    border-bottom-color: var(--rw-verdant-bright);
}

.rw-account-tab.active svg[b-ki5tcq5jwq] {
    opacity: 1;
    color: var(--rw-verdant-bright);
}

/* Active tab glow */
.rw-account-tab.active[b-ki5tcq5jwq]::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 20%;
    right: 20%;
    height: 6px;
    background: radial-gradient(ellipse at center, rgba(61, 138, 85, 0.3) 0%, transparent 80%);
    pointer-events: none;
}

/* --- Content area --- */
.rw-account-content[b-ki5tcq5jwq] {
    animation: rw-fade-in-up 0.3s ease-out;
}
/* /Components/Pages/Account/AccountPreferences.razor.rz.scp.css */
/* =============================================================
   Account Preferences — Sub-tabbed settings (Dice, Audio)
   ============================================================= */

.rw-prefs-section[b-yxcfei5izx] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* --- Sub-tab bar (segmented control) --- */
.rw-prefs-subtabs[b-yxcfei5izx] {
    display: flex;
    gap: 0.25rem;
    background: rgba(188, 206, 198, 0.03);
    border: 1px solid rgba(188, 206, 198, 0.06);
    border-radius: var(--rw-radius-md);
    padding: 0.25rem;
}

.rw-prefs-subtab[b-yxcfei5izx] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--rw-text-dim);
    text-decoration: none;
    padding: 0.4rem 0.85rem;
    border-radius: var(--rw-radius-sm);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    transition: all var(--rw-transition);
}

.rw-prefs-subtab svg[b-yxcfei5izx] {
    opacity: 0.4;
    transition: opacity var(--rw-transition);
}

.rw-prefs-subtab:hover[b-yxcfei5izx] {
    color: var(--rw-text-bright);
    background: rgba(188, 206, 198, 0.06);
}

.rw-prefs-subtab:hover svg[b-yxcfei5izx] {
    opacity: 0.6;
}

.rw-prefs-subtab.active[b-yxcfei5izx] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.15);
}

.rw-prefs-subtab.active svg[b-yxcfei5izx] {
    opacity: 1;
    color: var(--rw-verdant-bright);
}

/* --- Card styles --- */
.rw-prefs-card[b-yxcfei5izx] {
    margin-bottom: 0;
}

.rw-prefs-card .card-header[b-yxcfei5izx] {
    position: relative;
    padding-left: 1.25rem;
}

/* Decorative left accent on card headers */
.rw-prefs-card .card-header[b-yxcfei5izx]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 25%;
    bottom: 25%;
    width: 3px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--rw-arcane-cyan), rgba(72, 176, 192, 0.2));
}

.rw-prefs-card .card-header h5[b-yxcfei5izx] {
    font-family: var(--rw-font-sc);
    color: var(--rw-sage-cream);
    font-size: 1rem;
}

.rw-prefs-field[b-yxcfei5izx] {
    padding: 1rem 0;
    border-bottom: 1px solid var(--rw-border);
}

.rw-prefs-field:last-child[b-yxcfei5izx] {
    border-bottom: none;
}

.rw-prefs-label[b-yxcfei5izx] {
    font-family: var(--rw-font-sc);
    color: var(--rw-sage-cream);
    font-size: 0.92rem;
    font-weight: 500;
    display: block;
}

.rw-prefs-hint[b-yxcfei5izx] {
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.4;
}

.rw-prefs-footer[b-yxcfei5izx] {
    background: var(--rw-bg-moss);
    border-top: 1px solid var(--rw-border);
}

.rw-prefs-save-msg[b-yxcfei5izx] {
    font-size: 0.85rem;
    animation: rw-fade-in-up 0.3s ease-out;
}

.rw-prefs-card .form-select:disabled[b-yxcfei5izx],
.rw-prefs-card .form-control:disabled[b-yxcfei5izx] {
    opacity: 0.4;
}

.rw-prefs-card .form-check-input[b-yxcfei5izx] {
    width: 2.5em;
    height: 1.25em;
}

/* --- Audio cue grid --- */
.rw-prefs-cue-grid[b-yxcfei5izx] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rw-prefs-cue-label[b-yxcfei5izx] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text);
}

.rw-prefs-volume-label[b-yxcfei5izx] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

/* --- Range slider (volume) --- */
.rw-prefs-section :deep(.form-range)[b-yxcfei5izx] {
    accent-color: var(--rw-verdant);
}

.rw-prefs-section :deep(.form-range::-webkit-slider-runnable-track)[b-yxcfei5izx] {
    background: var(--rw-bg-bark);
    border-radius: 3px;
    height: 4px;
}

.rw-prefs-section :deep(.form-range::-webkit-slider-thumb)[b-yxcfei5izx] {
    background: var(--rw-verdant-bright);
    border: 2px solid var(--rw-bg-panel);
    box-shadow: 0 0 6px rgba(61, 138, 85, 0.3);
}

/* --- Staggered entrance for form fields --- */
.rw-prefs-field:nth-child(1)[b-yxcfei5izx] {
    animation: rw-fade-in-up 0.3s ease-out 0.05s both;
}

.rw-prefs-field:nth-child(2)[b-yxcfei5izx] {
    animation: rw-fade-in-up 0.3s ease-out 0.1s both;
}

.rw-prefs-field:nth-child(3)[b-yxcfei5izx] {
    animation: rw-fade-in-up 0.3s ease-out 0.15s both;
}

.rw-prefs-field:nth-child(4)[b-yxcfei5izx] {
    animation: rw-fade-in-up 0.3s ease-out 0.2s both;
}
/* /Components/Pages/Account/AccountProfile.razor.rz.scp.css */
/* =============================================================
   Account Profile — Identity & settings
   ============================================================= */

.rw-profile-section[b-6ami18nte0] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.rw-profile-card[b-6ami18nte0] {
    overflow: visible;
}

.rw-profile-card .card-header h5[b-6ami18nte0] {
    font-family: var(--rw-font-sc);
    color: var(--rw-sage-cream);
    font-size: 1rem;
}

/* --- Avatar & Identity block — hero banner style --- */
.rw-profile-identity[b-6ami18nte0] {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 0.5rem 0;
    position: relative;
}

/* Subtle atmospheric gradient behind the identity card */
.rw-profile-card:first-child .card-body[b-6ami18nte0] {
    position: relative;
    overflow: hidden;
}

.rw-profile-card:first-child .card-body[b-6ami18nte0]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at 15% 50%,
        rgba(61, 138, 85, 0.06) 0%,
        transparent 60%
    );
    pointer-events: none;
}

.rw-profile-avatar-area[b-6ami18nte0] {
    position: relative;
    flex-shrink: 0;
}

.rw-profile-avatar[b-6ami18nte0] {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(61, 138, 85, 0.1);
    border: 2px solid rgba(61, 138, 85, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-display);
    font-size: 2rem;
    color: var(--rw-verdant-bright);
    transition: all 0.2s ease;
    position: relative;
    z-index: 1;
}

/* Decorative outer ring */
.rw-profile-avatar-area[b-6ami18nte0]::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid rgba(61, 138, 85, 0.12);
    pointer-events: none;
}

/* Soft bioluminescent glow behind avatar */
.rw-profile-avatar-area[b-6ami18nte0]::after {
    content: '';
    position: absolute;
    inset: -12px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(61, 138, 85, 0.08) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.rw-profile-avatar-overlay[b-6ami18nte0] {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(7, 14, 20, 0.75);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    opacity: 0;
    transition: opacity 0.2s ease;
    cursor: default;
    z-index: 2;
}

.rw-profile-avatar-overlay svg[b-6ami18nte0] {
    color: var(--rw-text-dim);
}

.rw-profile-avatar-overlay span[b-6ami18nte0] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.rw-profile-avatar-area:hover .rw-profile-avatar-overlay[b-6ami18nte0] {
    opacity: 1;
}

.rw-profile-identity-info[b-6ami18nte0] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    position: relative;
    z-index: 1;
}

.rw-profile-name[b-6ami18nte0] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.01em;
}

.rw-profile-email[b-6ami18nte0] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text-faint);
}

/* --- Profile Details card --- */

/* Decorative left accent on the card header */
.rw-profile-card .card-header[b-6ami18nte0] {
    position: relative;
    padding-left: 1.25rem;
}

.rw-profile-card .card-header[b-6ami18nte0]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 25%;
    bottom: 25%;
    width: 3px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--rw-arcane-cyan), rgba(72, 176, 192, 0.2));
}

/* --- Form fields with visual hierarchy --- */
.rw-profile-section :deep(.rw-prefs-field)[b-6ami18nte0] {
    padding: 1rem 0;
    border-bottom: 1px solid var(--rw-border);
}

.rw-profile-section :deep(.rw-prefs-field:last-child)[b-6ami18nte0] {
    border-bottom: none;
}

.rw-profile-section :deep(.rw-prefs-label)[b-6ami18nte0] {
    font-family: var(--rw-font-sc);
    color: var(--rw-sage-cream);
    font-size: 0.92rem;
    font-weight: 500;
    display: block;
}

.rw-profile-section :deep(.rw-prefs-hint)[b-6ami18nte0] {
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.4;
}

/* Editable fields get a subtle verdant left border */
.rw-profile-section :deep(.form-control:not(:disabled))[b-6ami18nte0] {
    border-left: 2px solid rgba(61, 138, 85, 0.3);
}

.rw-profile-section :deep(.form-control:not(:disabled):focus)[b-6ami18nte0] {
    border-left-color: var(--rw-verdant-bright);
}

.rw-profile-section :deep(.rw-prefs-footer)[b-6ami18nte0] {
    background: var(--rw-bg-moss);
    border-top: 1px solid var(--rw-border);
}

.rw-profile-section :deep(.rw-prefs-save-msg)[b-6ami18nte0] {
    font-size: 0.85rem;
    animation: rw-fade-in-up 0.3s ease-out;
}

/* --- Staggered entrance for form fields --- */
.rw-profile-section :deep(.rw-prefs-field:nth-child(1))[b-6ami18nte0] {
    animation: rw-fade-in-up 0.3s ease-out 0.05s both;
}

.rw-profile-section :deep(.rw-prefs-field:nth-child(2))[b-6ami18nte0] {
    animation: rw-fade-in-up 0.3s ease-out 0.1s both;
}

.rw-profile-section :deep(.rw-prefs-field:nth-child(3))[b-6ami18nte0] {
    animation: rw-fade-in-up 0.3s ease-out 0.15s both;
}
/* /Components/Pages/Account/AccountSubscription.razor.rz.scp.css */
/* =============================================================
   Account Subscription — Placeholder with atmosphere
   ============================================================= */

.rw-subscription-section[b-ak530t5tbu] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.rw-subscription-card[b-ak530t5tbu] {
    border-color: var(--rw-border-gold);
    position: relative;
    overflow: hidden;
}

/* Atmospheric radial glow behind content */
.rw-subscription-card[b-ak530t5tbu]::before {
    content: '';
    position: absolute;
    top: -40%;
    left: 50%;
    transform: translateX(-50%);
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(196, 160, 64, 0.06) 0%, transparent 70%);
    pointer-events: none;
}

/* Subtle shimmer line across top border */
.rw-subscription-card[b-ak530t5tbu]::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(196, 160, 64, 0.25) 30%,
        rgba(196, 160, 64, 0.4) 50%,
        rgba(196, 160, 64, 0.25) 70%,
        transparent 100%
    );
}

.rw-subscription-coming-soon[b-ak530t5tbu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1.5rem;
    position: relative;
    z-index: 1;
}

.rw-subscription-icon[b-ak530t5tbu] {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-gold);
    margin-bottom: 1.25rem;
    position: relative;
}

/* Decorative outer ring on icon */
.rw-subscription-icon[b-ak530t5tbu]::before {
    content: '';
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.08);
}

/* Soft pulsing glow */
.rw-subscription-icon[b-ak530t5tbu]::after {
    content: '';
    position: absolute;
    inset: -14px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 160, 64, 0.06) 0%, transparent 70%);
    animation: rw-sub-pulse-b-ak530t5tbu 4s ease-in-out infinite;
}

@keyframes rw-sub-pulse-b-ak530t5tbu {
    0%, 100% { opacity: 0.4; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.08); }
}

.rw-subscription-title[b-ak530t5tbu] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    color: var(--rw-gold-light);
    margin-bottom: 0.75rem;
}

.rw-subscription-desc[b-ak530t5tbu] {
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-text-dim);
    max-width: 420px;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

.rw-subscription-badge[b-ak530t5tbu] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-pill);
    padding: 0.35rem 1rem;
    position: relative;
    overflow: hidden;
}

/* Shimmer sweep across the badge */
.rw-subscription-badge[b-ak530t5tbu]::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(196, 160, 64, 0.15) 50%,
        transparent 100%
    );
    animation: rw-badge-shimmer-b-ak530t5tbu 4s ease-in-out infinite;
}

@keyframes rw-badge-shimmer-b-ak530t5tbu {
    0%, 80%, 100% { left: -100%; }
    40% { left: 100%; }
}
/* /Components/Pages/Admin/UserManagement.razor.rz.scp.css */
/* =============================================================
   Admin User Management — Gold-accented authority panel
   ============================================================= */

/* --- Header --- */
.admin-header[b-53t0qxvsua] {
    margin-bottom: 1.5rem;
}

.admin-title[b-53t0qxvsua] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-53t0qxvsua] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Toolbar --- */
.admin-toolbar[b-53t0qxvsua] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-53t0qxvsua] {
    position: relative;
    flex: 1;
    max-width: 360px;
}

.admin-search-icon[b-53t0qxvsua] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-53t0qxvsua] {
    padding-left: 2.25rem !important;
}

.admin-toolbar-meta[b-53t0qxvsua] {
    margin-left: auto;
}

.admin-count[b-53t0qxvsua] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

/* --- Table card wrapper --- */
.admin-table-card[b-53t0qxvsua] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    overflow: hidden;
}

/* --- User cell --- */
.admin-user-cell[b-53t0qxvsua] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.admin-user-avatar[b-53t0qxvsua] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.2);
    color: var(--rw-verdant-bright);
}

.admin-user-avatar--admin[b-53t0qxvsua] {
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
}

.admin-user-name[b-53t0qxvsua] {
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    color: var(--rw-sage-cream);
    line-height: 1.2;
}

.admin-user-email[b-53t0qxvsua] {
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    line-height: 1.2;
}

/* --- Role badges --- */
.admin-role-badges[b-53t0qxvsua] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

/* --- Date --- */
.admin-date[b-53t0qxvsua] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

/* --- Disabled row --- */
.admin-row-disabled[b-53t0qxvsua] {
    opacity: 0.5;
}

/* --- Actions --- */
.admin-actions[b-53t0qxvsua] {
    display: flex;
    gap: 0.35rem;
}

.admin-actions .btn[b-53t0qxvsua] {
    font-size: 0.72rem;
    padding: 0.25rem 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.btn-outline-danger[b-53t0qxvsua] {
    color: var(--rw-blood-bright);
    border-color: var(--rw-blood);
}

.btn-outline-danger:hover[b-53t0qxvsua] {
    background: var(--rw-blood);
    border-color: var(--rw-blood);
    color: #fff;
}

.admin-you-badge[b-53t0qxvsua] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.06em;
    padding: 0.2rem 0.6rem;
    border: 1px solid rgba(188, 206, 198, 0.08);
    border-radius: 4px;
    background: rgba(188, 206, 198, 0.03);
}

/* --- Pagination --- */
.admin-pagination[b-53t0qxvsua] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Alert --- */
.admin-alert[b-53t0qxvsua] {
    animation: adminAlertIn-b-53t0qxvsua 0.25s ease;
}

@keyframes adminAlertIn-b-53t0qxvsua {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-53t0qxvsua] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Skeleton loading --- */
.skeleton-bone[b-53t0qxvsua] {
    background: linear-gradient(90deg,
        var(--rw-bg-moss) 25%,
        var(--rw-bg-moonlit) 50%,
        var(--rw-bg-moss) 75%);
    background-size: 200% 100%;
    animation: rw-shimmer-b-53t0qxvsua 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-53t0qxvsua {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* =============================================================
   Role Editor Modal
   ============================================================= */
.admin-modal-backdrop[b-53t0qxvsua] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgba(7, 14, 20, 0.8);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: modalBackdropIn-b-53t0qxvsua 0.2s ease;
}

@keyframes modalBackdropIn-b-53t0qxvsua {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-53t0qxvsua] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-lg);
    box-shadow: var(--rw-shadow-deep), var(--rw-glow-candle);
    width: 100%;
    max-width: 440px;
    animation: modalSlideIn-b-53t0qxvsua 0.25s ease;
}

@keyframes modalSlideIn-b-53t0qxvsua {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-53t0qxvsua] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--rw-border);
}

.admin-modal-header h4[b-53t0qxvsua] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-53t0qxvsua] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-size: 1.3rem;
    cursor: pointer;
    padding: 0;
    line-height: 1;
    transition: color 0.15s ease;
}

.admin-modal-close:hover[b-53t0qxvsua] {
    color: var(--rw-text);
}

.admin-modal-body[b-53t0qxvsua] {
    padding: 1.25rem;
}

.admin-modal-user[b-53t0qxvsua] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--rw-border);
}

.admin-modal-footer[b-53t0qxvsua] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

/* --- Role toggles --- */
.admin-role-toggles[b-53t0qxvsua] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.admin-role-toggle[b-53t0qxvsua] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-border);
    background: var(--rw-bg-bark);
    cursor: pointer;
    transition: all 0.15s ease;
}

.admin-role-toggle:hover[b-53t0qxvsua] {
    border-color: rgba(188, 206, 198, 0.12);
    background: var(--rw-bg-moss);
}

.admin-role-toggle--active[b-53t0qxvsua] {
    border-color: rgba(61, 138, 85, 0.2);
    background: rgba(61, 138, 85, 0.05);
}

.admin-role-toggle input[type="checkbox"][b-53t0qxvsua] {
    display: none;
}

.admin-role-toggle-indicator[b-53t0qxvsua] {
    width: 18px;
    height: 18px;
    border-radius: 4px;
    border: 1.5px solid var(--rw-border);
    background: var(--rw-bg-void);
    flex-shrink: 0;
    position: relative;
    transition: all 0.15s ease;
}

.admin-role-toggle--active .admin-role-toggle-indicator[b-53t0qxvsua] {
    background: var(--rw-verdant);
    border-color: var(--rw-verdant);
}

.admin-role-toggle--active .admin-role-toggle-indicator[b-53t0qxvsua]::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 5px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.admin-role-toggle-label[b-53t0qxvsua] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.admin-role-desc[b-53t0qxvsua] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}
/* /Components/Pages/Characters/CharacterList.razor.rz.scp.css */
.char-hp-bar[b-2qc542a4yb] {
    height: 3px;
    background: var(--rw-bg-moss);
    border-radius: 2px;
    margin-top: 0.35rem;
    overflow: hidden;
}

.char-hp-fill[b-2qc542a4yb] {
    height: 100%;
    border-radius: 2px;
    transition: width 0.3s ease;
}

.char-inactive[b-2qc542a4yb] {
    opacity: 0.5;
}

.empty-roster[b-2qc542a4yb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 3rem 1rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    text-align: center;
}

.empty-roster-icon[b-2qc542a4yb] {
    width: 64px;
    height: 64px;
    opacity: 0.3;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}
/* /Components/Pages/Planning/PlanningDashboard.razor.rz.scp.css */
/* ============================================================
   PlanningDashboard — Campaign planning orchestrator page
   ============================================================ */

.rw-planning[b-82fnft7ojz] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

.rw-planning__header[b-82fnft7ojz] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.rw-planning__title[b-82fnft7ojz] {
    font-family: var(--rw-font-display);
    font-size: 1.8rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.15rem 0;
    letter-spacing: 0.02em;
}

.rw-planning__subtitle[b-82fnft7ojz] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
}

/* Create menu */
.rw-planning__create-menu[b-82fnft7ojz] {
    position: relative;
}

.rw-planning__create-dropdown[b-82fnft7ojz] {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 4px;
    min-width: 180px;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow-deep);
    z-index: 100;
    padding: 0.3rem;
    animation: rw-menu-drop-b-82fnft7ojz 0.15s ease;
}

@keyframes rw-menu-drop-b-82fnft7ojz {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-planning__create-option[b-82fnft7ojz] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.7rem;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    cursor: pointer;
    text-align: left;
    transition: all var(--rw-transition);
}

.rw-planning__create-option:hover[b-82fnft7ojz] {
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-text-bright);
}

.rw-planning__create-overlay[b-82fnft7ojz] {
    position: fixed;
    inset: 0;
    z-index: 99;
}

@media (max-width: 640px) {
    .rw-planning__header[b-82fnft7ojz] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .rw-planning__title[b-82fnft7ojz] {
        font-size: 1.4rem;
    }
}
/* /Components/Pages/Planning/Storyboard.razor.rz.scp.css */
/* ============================================================
   Storyboard — Full-page canvas layout
   ============================================================ */

.rw-storyboard[b-l71bme89zv] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 60px);
    padding: 0 0.75rem 0.75rem;
    overflow: hidden;
}

.rw-storyboard__top-bar[b-l71bme89zv] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.5rem 0.25rem;
    flex-shrink: 0;
}

.rw-storyboard__title[b-l71bme89zv] {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    color: var(--rw-text-bright);
    margin: 0;
}

.rw-storyboard__campaign-name[b-l71bme89zv] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-storyboard__canvas-wrap[b-l71bme89zv] {
    flex: 1;
    position: relative;
    min-height: 0;
    margin-top: 0.5rem;
}

@media (max-width: 768px) {
    .rw-storyboard[b-l71bme89zv] {
        height: calc(100vh - 50px);
        padding: 0 0.5rem 0.5rem;
    }

    .rw-storyboard__top-bar[b-l71bme89zv] {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .rw-storyboard__campaign-name[b-l71bme89zv] {
        display: none;
    }
}
/* /Components/Pages/Sessions/LiveSession.razor.rz.scp.css */
/* ============================================================
   LiveSession — Session Header, Role Identity & Overlays
   Wraps the GM/Player dashboards with role-specific theming.
   ============================================================ */

/* === SESSION ROOT === */
.rw-session[b-3ltwauspga] {
    position: relative;
    height: calc(100dvh - 52px - 4rem);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--rw-radius-lg);
}

/* === ROLE VIGNETTE — Ambient background per role === */
.rw-role-vignette[b-3ltwauspga] {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    transition: background 0.6s ease;
}

.rw-role-gm .rw-role-vignette[b-3ltwauspga] {
    background: radial-gradient(ellipse at 50% 0%, rgba(196, 160, 64, 0.06) 0%, transparent 60%),
                radial-gradient(ellipse at 0% 50%, rgba(196, 160, 64, 0.03) 0%, transparent 50%),
                radial-gradient(ellipse at 100% 50%, rgba(196, 160, 64, 0.03) 0%, transparent 50%);
}

.rw-role-player .rw-role-vignette[b-3ltwauspga] {
    background: radial-gradient(ellipse at 50% 0%, rgba(80, 176, 104, 0.06) 0%, transparent 60%),
                radial-gradient(ellipse at 0% 50%, rgba(80, 176, 104, 0.03) 0%, transparent 50%),
                radial-gradient(ellipse at 100% 50%, rgba(80, 176, 104, 0.03) 0%, transparent 50%);
}

/* === SESSION HEADER BAR === */
.rw-session-header[b-3ltwauspga] {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    background: rgba(11, 24, 32, 0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    margin-bottom: 0;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

/* Role-scoped header accent */
.rw-role-gm .rw-session-header[b-3ltwauspga] {
    border-bottom-color: var(--rw-role-gm-border);
    box-shadow: 0 2px 20px rgba(196, 160, 64, 0.08), var(--rw-shadow);
}

.rw-role-player .rw-session-header[b-3ltwauspga] {
    border-bottom-color: var(--rw-role-player-border);
    box-shadow: 0 2px 20px rgba(80, 176, 104, 0.06), var(--rw-shadow);
}

/* Back arrow */
.rw-back-arrow[b-3ltwauspga] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    text-decoration: none;
    font-size: 1.1rem;
    transition: color var(--rw-transition), background var(--rw-transition);
    flex-shrink: 0;
}

.rw-back-arrow:hover[b-3ltwauspga] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.05);
}

/* Header info block */
.rw-header-info[b-3ltwauspga] {
    flex-shrink: 1;
    min-width: 0;
}

.rw-session-header h1[b-3ltwauspga] {
    font-size: 1rem;
    font-family: var(--rw-font-display);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-header-meta[b-3ltwauspga] {
    color: var(--rw-text);
    font-size: 0.75rem;
    font-family: var(--rw-font-ui);
    margin: 0;
    line-height: 1.2;
    opacity: 0.75;
}

/* LIVE badge */
.rw-live-badge[b-3ltwauspga] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgba(220, 38, 38, 0.2);
    border: 1px solid rgba(220, 38, 38, 0.4);
    color: #f87171;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    animation: rw-live-pulse-b-3ltwauspga 2s ease-in-out infinite;
}

@keyframes rw-live-pulse-b-3ltwauspga {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* === ROLE BADGE === */
.rw-role-badge[b-3ltwauspga] {
    flex-shrink: 0;
}

.rw-role-emblem[b-3ltwauspga] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: box-shadow 0.3s ease;
}

.rw-role-emblem span[b-3ltwauspga] {
    display: none;
}

.rw-role-emblem--gm[b-3ltwauspga] {
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
    animation: rw-emblem-shimmer-b-3ltwauspga 4s ease-in-out infinite;
}

@keyframes rw-emblem-shimmer-b-3ltwauspga {
    0%, 100% { box-shadow: 0 0 12px rgba(196, 160, 64, 0.1); }
    50% { box-shadow: 0 0 20px rgba(196, 160, 64, 0.22), 0 0 4px rgba(196, 160, 64, 0.3); }
}

.rw-role-emblem--gm svg[b-3ltwauspga] {
    color: var(--rw-gold);
}

.rw-role-emblem--player[b-3ltwauspga] {
    background: rgba(80, 176, 104, 0.12);
    border: 1px solid rgba(80, 176, 104, 0.3);
    color: var(--rw-verdant-bright);
    box-shadow: 0 0 12px rgba(80, 176, 104, 0.08);
    animation: rw-emblem-shimmer-player-b-3ltwauspga 4s ease-in-out infinite;
}

@keyframes rw-emblem-shimmer-player-b-3ltwauspga {
    0%, 100% { box-shadow: 0 0 12px rgba(80, 176, 104, 0.08); }
    50% { box-shadow: 0 0 20px rgba(80, 176, 104, 0.18), 0 0 4px rgba(80, 176, 104, 0.25); }
}

.rw-role-emblem--player svg[b-3ltwauspga] {
    color: var(--rw-verdant-bright);
}

/* Session control button */
.rw-session-control[b-3ltwauspga] {
    flex-shrink: 0;
    margin-left: auto;
}

/* === TURN NOTIFICATION TOAST === */
.rw-turn-toast[b-3ltwauspga] {
    position: fixed;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1050;
    animation: rw-turn-slide-in-b-3ltwauspga 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes rw-turn-slide-in-b-3ltwauspga {
    0% { transform: translateX(-50%) translateY(-20px); opacity: 0; }
    100% { transform: translateX(-50%) translateY(0); opacity: 1; }
}

/* === RESPONSIVE BREAKPOINTS === */

/* Tablet landscape */
@media (max-width: 1024px) {
    .rw-session-header h1[b-3ltwauspga] {
        font-size: 0.9rem;
    }
}

/* Tablet portrait / mobile */
@media (max-width: 768px) {
    .rw-session-header[b-3ltwauspga] {
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0.4rem 0.75rem;
    }

    .rw-header-info[b-3ltwauspga] {
        order: 1;
        flex: 1;
    }

    .rw-back-arrow[b-3ltwauspga] {
        order: 0;
    }

    .rw-role-badge[b-3ltwauspga] {
        order: 2;
    }

    .rw-session-control[b-3ltwauspga] {
        order: 3;
        margin-left: auto;
    }
}
/* /Components/Planning/ArtifactCard.razor.rz.scp.css */
/* ============================================================
   ArtifactCard — Planning artifact card
   ============================================================ */

.rw-artifact-card[b-o8riii7wsg] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.85rem 1rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
    overflow: hidden;
}

/* Left accent stripe by type */
.rw-artifact-card[b-o8riii7wsg]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 3px;
    transition: opacity var(--rw-transition);
}

.rw-artifact-card--quest[b-o8riii7wsg]::before   { background: var(--rw-gold); }
.rw-artifact-card--location[b-o8riii7wsg]::before { background: var(--rw-verdant); }
.rw-artifact-card--npc[b-o8riii7wsg]::before     { background: var(--rw-gold-light); }
.rw-artifact-card--session[b-o8riii7wsg]::before  { background: var(--rw-arcane-blue); }
.rw-artifact-card--encounter[b-o8riii7wsg]::before { background: var(--rw-blood-bright); }

.rw-artifact-card:hover[b-o8riii7wsg] {
    border-color: rgba(196, 160, 64, 0.2);
    transform: translateY(-2px);
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.3),
        0 0 30px rgba(196, 160, 64, 0.04);
}

/* Header row */
.rw-artifact-card__header[b-o8riii7wsg] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-artifact-card__type-icon[b-o8riii7wsg] {
    font-size: 0.9rem;
    line-height: 1;
}

.rw-artifact-card__type-label[b-o8riii7wsg] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    flex: 1;
}

/* Title */
.rw-artifact-card__title[b-o8riii7wsg] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    font-weight: 400;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Subtitle */
.rw-artifact-card__subtitle[b-o8riii7wsg] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    margin: 0;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Detail pills */
.rw-artifact-card__details[b-o8riii7wsg] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.15rem;
}

.rw-artifact-card__detail[b-o8riii7wsg] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.4rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--rw-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.04);
}

/* Footer */
.rw-artifact-card__footer[b-o8riii7wsg] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-top: auto;
    padding-top: 0.25rem;
}

.rw-artifact-card__date[b-o8riii7wsg] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
}
/* /Components/Planning/ArtifactFilterBar.razor.rz.scp.css */
/* ============================================================
   ArtifactFilterBar — Tab bar for filtering planning artifacts
   ============================================================ */

.rw-filter-bar[b-jxlkxnzcth] {
    margin-bottom: 1.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.rw-filter-bar[b-jxlkxnzcth]::-webkit-scrollbar { display: none; }

.rw-filter-bar__tabs[b-jxlkxnzcth] {
    display: flex;
    gap: 2px;
    padding: 3px;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.rw-filter-bar__tab[b-jxlkxnzcth] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.85rem;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: all var(--rw-transition);
    position: relative;
}

.rw-filter-bar__tab:hover[b-jxlkxnzcth] {
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.03);
}

.rw-filter-bar__tab--active[b-jxlkxnzcth] {
    color: var(--rw-gold-light);
    background: var(--rw-bg-panel);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.rw-filter-bar__tab--active[b-jxlkxnzcth]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 25%;
    right: 25%;
    height: 2px;
    background: var(--rw-gold);
    border-radius: 1px 1px 0 0;
}

.rw-filter-bar__tab-icon[b-jxlkxnzcth] {
    font-size: 0.85rem;
    line-height: 1;
}

.rw-filter-bar__tab-label[b-jxlkxnzcth] {
    line-height: 1;
}

.rw-filter-bar__tab-count[b-jxlkxnzcth] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    font-size: 0.62rem;
    font-family: var(--rw-font-ui);
    letter-spacing: 0;
    text-transform: none;
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold);
}

.rw-filter-bar__tab--active .rw-filter-bar__tab-count[b-jxlkxnzcth] {
    background: rgba(196, 160, 64, 0.18);
    color: var(--rw-gold-light);
}

@media (max-width: 640px) {
    .rw-filter-bar__tab[b-jxlkxnzcth] {
        padding: 0.4rem 0.6rem;
    }
    .rw-filter-bar__tab-label[b-jxlkxnzcth] {
        display: none;
    }
    .rw-filter-bar__tab-icon[b-jxlkxnzcth] {
        font-size: 1rem;
    }
}
/* /Components/Planning/ArtifactGrid.razor.rz.scp.css */
/* ============================================================
   ArtifactGrid — Card grid layout for planning artifacts
   ============================================================ */

.rw-artifact-grid__cards[b-z87ktnhq3r] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.75rem;
}

.rw-artifact-grid__empty[b-z87ktnhq3r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1.5rem;
    text-align: center;
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-lg);
    background: rgba(0, 0, 0, 0.08);
}

.rw-artifact-grid__empty-icon[b-z87ktnhq3r] {
    font-size: 2rem;
    color: var(--rw-text-faint);
    opacity: 0.4;
    margin-bottom: 0.5rem;
}

.rw-artifact-grid__empty-text[b-z87ktnhq3r] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-text-dim);
    margin: 0 0 0.25rem 0;
}

.rw-artifact-grid__empty-hint[b-z87ktnhq3r] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    margin: 0;
}

@media (max-width: 640px) {
    .rw-artifact-grid__cards[b-z87ktnhq3r] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Planning/Canvas/CanvasToolbar.razor.rz.scp.css */
/* ============================================================
   CanvasToolbar — Storyboard canvas toolbar
   ============================================================ */

.rw-canvas-toolbar[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.6rem;
    background: var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.rw-canvas-toolbar__group[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    gap: 2px;
}

.rw-canvas-toolbar__divider[b-scw2qtq53h] {
    width: 1px;
    height: 20px;
    background: var(--rw-border);
    margin: 0 0.2rem;
}

.rw-canvas-toolbar__spacer[b-scw2qtq53h] {
    flex: 1;
}

.rw-canvas-toolbar__btn[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    padding: 0;
    transition: all var(--rw-transition);
}

.rw-canvas-toolbar__btn:hover[b-scw2qtq53h] {
    background: rgba(255, 255, 255, 0.06);
    color: var(--rw-text);
}

/* Filter buttons */
.rw-canvas-toolbar__filters[b-scw2qtq53h] {
    gap: 1px;
}

.rw-canvas-toolbar__filter-btn[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    cursor: pointer;
    padding: 0;
    transition: all var(--rw-transition);
}

.rw-canvas-toolbar__filter-btn:hover[b-scw2qtq53h] {
    background: rgba(255, 255, 255, 0.05);
    color: var(--rw-text-dim);
}

.rw-canvas-toolbar__filter-btn--active[b-scw2qtq53h] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
}

/* Search */
.rw-canvas-toolbar__search[b-scw2qtq53h] {
    width: 160px;
    padding: 0.25rem 0.5rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: var(--rw-bg-void);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    outline: none;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.rw-canvas-toolbar__search:focus[b-scw2qtq53h] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 2px var(--rw-verdant-glow);
}

.rw-canvas-toolbar__search[b-scw2qtq53h]::placeholder {
    color: var(--rw-text-faint);
}

@media (max-width: 768px) {
    .rw-canvas-toolbar__search[b-scw2qtq53h] { width: 100px; }
    .rw-canvas-toolbar__filters[b-scw2qtq53h] { display: none; }
}
/* /Components/Planning/Canvas/EdgeEditorPopover.razor.rz.scp.css */
/* ============================================================
   EdgeEditorPopover — Edge property editor
   ============================================================ */

.rw-edge-editor[b-94dgf87rpl] {
    position: absolute;
    bottom: 1rem;
    left: 50%;
    transform: translateX(-50%);
    width: 280px;
    background: var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur-strong);
    -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow-deep);
    z-index: 350;
    animation: rw-edge-pop-b-94dgf87rpl 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes rw-edge-pop-b-94dgf87rpl {
    from { opacity: 0; transform: translateX(-50%) translateY(10px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.rw-edge-editor__header[b-94dgf87rpl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--rw-border);
}

.rw-edge-editor__title[b-94dgf87rpl] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin: 0;
}

.rw-edge-editor__close[b-94dgf87rpl] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0;
    transition: all var(--rw-transition);
}

.rw-edge-editor__close:hover[b-94dgf87rpl] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.06);
}

.rw-edge-editor__body[b-94dgf87rpl] {
    padding: 0.6rem 0.75rem;
}

.rw-edge-editor__actions[b-94dgf87rpl] {
    display: flex;
    justify-content: flex-end;
    padding: 0.4rem 0.75rem;
    border-top: 1px solid var(--rw-border);
}
/* /Components/Planning/Canvas/NodeContextMenu.razor.rz.scp.css */
/* ============================================================
   NodeContextMenu — Right-click context menu
   ============================================================ */

.rw-context-menu[b-y2sjulxr4t] {
    position: fixed;
    z-index: 400;
    min-width: 170px;
    padding: 0.3rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow-deep);
    animation: rw-ctx-appear-b-y2sjulxr4t 0.12s ease;
}

@keyframes rw-ctx-appear-b-y2sjulxr4t {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
}

.rw-context-menu__section-label[b-y2sjulxr4t] {
    padding: 0.3rem 0.6rem 0.15rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-context-menu__item[b-y2sjulxr4t] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.35rem 0.6rem;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    text-align: left;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-context-menu__item:hover[b-y2sjulxr4t] {
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-text-bright);
}

.rw-context-menu__item--danger:hover[b-y2sjulxr4t] {
    background: rgba(184, 58, 26, 0.1);
    color: var(--rw-blood-bright);
}

.rw-context-menu__icon[b-y2sjulxr4t] {
    width: 16px;
    text-align: center;
    font-size: 0.85rem;
    line-height: 1;
}

.rw-context-menu__divider[b-y2sjulxr4t] {
    height: 1px;
    background: var(--rw-border);
    margin: 0.2rem 0.3rem;
}

.rw-context-menu__overlay[b-y2sjulxr4t] {
    position: fixed;
    inset: 0;
    z-index: 399;
}
/* /Components/Planning/Canvas/StoryboardCanvas.razor.rz.scp.css */
/* ============================================================
   StoryboardCanvas — Cytoscape.js container
   ============================================================ */

.rw-storyboard-canvas[b-84wj3i82oc] {
    width: 100%;
    height: 100%;
    min-height: 400px;
    background:
        radial-gradient(circle at 50% 50%, rgba(15, 32, 40, 0.95) 0%, rgba(7, 14, 20, 1) 100%);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    position: relative;
    overflow: hidden;
}

/* Subtle grid pattern on canvas */
.rw-storyboard-canvas[b-84wj3i82oc]::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(26, 52, 48, 0.15) 1px, transparent 1px),
        linear-gradient(90deg, rgba(26, 52, 48, 0.15) 1px, transparent 1px);
    background-size: 40px 40px;
    z-index: 0;
}
/* /Components/Planning/DifficultyGauge.razor.rz.scp.css */
/* ============================================================
   DifficultyGauge — Encounter difficulty XP bar
   Shows Easy → Medium → Hard → Deadly thresholds with a
   marker indicating where this encounter falls.
   ============================================================ */

.rw-difficulty-gauge[b-487up3hp2m] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.6rem 0.75rem;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md);
    margin: 0.5rem 0;
}

.rw-difficulty-gauge--unknown[b-487up3hp2m] {
    padding: 0.75rem;
    text-align: center;
    font-size: 0.78rem;
}

.rw-difficulty-gauge__header[b-487up3hp2m] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.rw-difficulty-gauge__badge[b-487up3hp2m] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.15rem 0.5rem;
    border-radius: var(--rw-radius-pill);
}

.rw-difficulty-gauge__badge--trivial[b-487up3hp2m] {
    background: rgba(100, 100, 100, 0.2);
    color: #888;
}

.rw-difficulty-gauge__badge--easy[b-487up3hp2m] {
    background: rgba(61, 163, 90, 0.15);
    color: var(--rw-verdant);
    border: 1px solid rgba(61, 163, 90, 0.3);
}

.rw-difficulty-gauge__badge--medium[b-487up3hp2m] {
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold);
    border: 1px solid rgba(196, 160, 64, 0.3);
}

.rw-difficulty-gauge__badge--hard[b-487up3hp2m] {
    background: rgba(200, 120, 40, 0.15);
    color: #e8943a;
    border: 1px solid rgba(200, 120, 40, 0.3);
}

.rw-difficulty-gauge__badge--deadly[b-487up3hp2m] {
    background: rgba(220, 60, 60, 0.15);
    color: var(--rw-blood-bright);
    border: 1px solid rgba(220, 60, 60, 0.3);
}

.rw-difficulty-gauge__xp[b-487up3hp2m] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
}

/* XP threshold bar */
.rw-difficulty-gauge__bar[b-487up3hp2m] {
    position: relative;
    display: flex;
    height: 8px;
    border-radius: 4px;
    overflow: visible;
    background: rgba(255, 255, 255, 0.05);
}

.rw-difficulty-gauge__segment[b-487up3hp2m] {
    height: 100%;
    transition: width 0.3s ease;
}

.rw-difficulty-gauge__segment--easy[b-487up3hp2m] {
    background: var(--rw-verdant);
    border-radius: 4px 0 0 4px;
    opacity: 0.6;
}

.rw-difficulty-gauge__segment--medium[b-487up3hp2m] {
    background: var(--rw-gold);
    opacity: 0.6;
}

.rw-difficulty-gauge__segment--hard[b-487up3hp2m] {
    background: #e8943a;
    opacity: 0.6;
}

.rw-difficulty-gauge__segment--deadly[b-487up3hp2m] {
    background: var(--rw-blood-bright);
    border-radius: 0 4px 4px 0;
    opacity: 0.6;
}

.rw-difficulty-gauge__marker[b-487up3hp2m] {
    position: absolute;
    top: -3px;
    width: 3px;
    height: 14px;
    background: #fff;
    border-radius: 2px;
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.5);
    transition: left 0.3s ease;
    z-index: 1;
}

.rw-difficulty-gauge__labels[b-487up3hp2m] {
    display: flex;
    justify-content: space-between;
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.rw-difficulty-gauge__details[b-487up3hp2m] {
    display: flex;
    justify-content: space-between;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    padding-top: 0.15rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}
/* /Components/Sessions/Gm/AddCombatantPanel.razor.rz.scp.css */
/* ============================================================
   AddCombatantPanel — Collapsible Deploy Panel
   Tabbed interface for adding party members or monsters.
   ============================================================ */

/* === TOGGLE BAR (collapsed state) === */
.rw-deploy-panel__toggle[b-9xklrpmj0s] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.6rem 1rem;
    min-height: 52px;
    border: 1px dashed rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius-xl);
    background: rgba(196, 160, 64, 0.04);
    color: var(--rw-gold-light);
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.rw-deploy-panel__toggle:hover[b-9xklrpmj0s] {
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.08);
}

.rw-deploy-panel__toggle:active[b-9xklrpmj0s] {
    transform: scale(0.98);
    transition-duration: 0.08s;
}

.rw-deploy-panel__toggle-icon[b-9xklrpmj0s] {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    opacity: 0.8;
}

.rw-deploy-panel__toggle-text[b-9xklrpmj0s] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.rw-deploy-panel__chevron[b-9xklrpmj0s] {
    width: 16px;
    height: 16px;
    opacity: 0.5;
}

/* === EXPANDED PANEL === */
.rw-deploy-panel__expanded[b-9xklrpmj0s] {
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    overflow: hidden;
    animation: deploy-panel-enter-b-9xklrpmj0s 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes deploy-panel-enter-b-9xklrpmj0s {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* === TAB BAR === */
.rw-deploy-panel__tabs[b-9xklrpmj0s] {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid var(--rw-border);
    padding: 0;
}

.rw-deploy-tab[b-9xklrpmj0s] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex: 1;
    justify-content: center;
    padding: 0.65rem 0.75rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    border-bottom: 2px solid transparent;
    transition: all var(--rw-transition);
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.rw-deploy-tab:hover[b-9xklrpmj0s] {
    color: var(--rw-text);
    background: rgba(196, 160, 64, 0.04);
}

.rw-deploy-tab--active[b-9xklrpmj0s] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.06);
}

.rw-deploy-tab__icon[b-9xklrpmj0s] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.rw-deploy-panel__close[b-9xklrpmj0s] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.75rem;
    color: var(--rw-text-faint);
    transition: color var(--rw-transition);
    min-width: 44px;
    min-height: 44px;
}

.rw-deploy-panel__close:hover[b-9xklrpmj0s] {
    color: var(--rw-text);
}

/* === TAB CONTENT === */
.rw-deploy-panel__content[b-9xklrpmj0s] {
    padding: 0.75rem;
    max-height: 320px;
    overflow-y: auto;
}

.rw-deploy-panel__empty[b-9xklrpmj0s] {
    text-align: center;
    padding: 1.5rem 1rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
}

/* === PARTY ROSTER GRID === */
.rw-deploy-roster[b-9xklrpmj0s] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 0.75rem;
    justify-items: center;
}

/* Character deploy card */
.rw-deploy-char[b-9xklrpmj0s] {
    all: unset;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 0.4rem;
    border-radius: var(--rw-radius-md);
    border: 1px solid transparent;
    transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    min-width: 80px;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.rw-deploy-char:hover:not(:disabled)[b-9xklrpmj0s] {
    background: rgba(61, 138, 85, 0.08);
    border-color: rgba(61, 138, 85, 0.3);
    box-shadow: 0 0 12px rgba(61, 138, 85, 0.1);
}

.rw-deploy-char:active:not(:disabled)[b-9xklrpmj0s] {
    transform: scale(0.93);
    transition-duration: 0.08s;
}

.rw-deploy-char--added[b-9xklrpmj0s] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* Portrait */
.rw-deploy-char__portrait[b-9xklrpmj0s] {
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--rw-verdant);
    box-shadow: 0 0 10px rgba(61, 138, 85, 0.15);
    flex-shrink: 0;
}

.rw-deploy-char__portrait img[b-9xklrpmj0s] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Checkmark overlay for added characters */
.rw-deploy-char__check[b-9xklrpmj0s] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(61, 138, 85, 0.5);
    color: #fff;
    border-radius: 50%;
}

/* Name */
.rw-deploy-char__name[b-9xklrpmj0s] {
    font-family: var(--rw-font-display);
    font-size: 0.82rem;
    color: var(--rw-text-bright);
    text-align: center;
    line-height: 1.2;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* === RESPONSIVE === */
@media (max-width: 480px) {
    .rw-deploy-roster[b-9xklrpmj0s] {
        grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
        gap: 0.5rem;
    }

    .rw-deploy-char__portrait[b-9xklrpmj0s] {
        width: 52px;
        height: 52px;
    }

    .rw-deploy-char__name[b-9xklrpmj0s] {
        font-size: 0.72rem;
    }
}
/* /Components/Sessions/Gm/AttackResolutionPanel.razor.rz.scp.css */
/* ============================================================
   AttackResolutionPanel — Arcane Targeting Sequence
   A compact 4-step state machine: Select → Roll → Damage → Done.
   Runic progression, crosshair targeting, dramatic impact.
   ============================================================ */

.rw-arp[b-tev1l344of] {
    padding: 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

/* === STEP INDICATOR — Runic Progression === */

.rw-arp__steps[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding-bottom: 0.3rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.08);
}

.rw-arp__step-track[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0;
    position: relative;
}

/* Connecting line behind runes */
.rw-arp__step-track[b-tev1l344of]::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 4px;
    right: 4px;
    height: 1px;
    background: var(--rw-border);
    transform: translateY(-50%);
    z-index: 0;
}

.rw-arp__step-rune[b-tev1l344of] {
    width: 10px;
    height: 10px;
    border: 1.5px solid var(--rw-border);
    background: rgba(0, 0, 0, 0.4);
    transform: rotate(45deg);
    transition: all 0.25s ease;
    flex-shrink: 0;
    margin: 0 3px;
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.rw-arp__step-rune--active[b-tev1l344of] {
    border-color: var(--rw-gold);
    background: var(--rw-gold);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.5), 0 0 12px rgba(196, 160, 64, 0.2);
    animation: rw-arp-rune-pulse-b-tev1l344of 1.5s ease-in-out infinite;
}

@keyframes rw-arp-rune-pulse-b-tev1l344of {
    0%, 100% { box-shadow: 0 0 6px rgba(196, 160, 64, 0.5); }
    50% { box-shadow: 0 0 10px rgba(196, 160, 64, 0.7), 0 0 16px rgba(196, 160, 64, 0.3); }
}

.rw-arp__step-rune--done[b-tev1l344of] {
    border-color: var(--rw-verdant-bright);
    background: var(--rw-verdant-bright);
}

.rw-arp__rune-check[b-tev1l344of] {
    font-size: 0.35rem;
    font-weight: 700;
    color: rgba(0, 0, 0, 0.7);
    transform: rotate(-45deg);
    line-height: 1;
}

.rw-arp__step-label[b-tev1l344of] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin-left: 0.25rem;
}

.rw-arp__close[b-tev1l344of] {
    all: unset;
    cursor: pointer;
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    padding: 0 0.15rem;
    border-radius: 2px;
    transition: color var(--rw-transition);
    flex-shrink: 0;
}

.rw-arp__close:hover[b-tev1l344of] {
    color: var(--rw-blood-bright);
}

/* === TARGET SELECTION — Crosshair Toggles === */

.rw-arp__targets[b-tev1l344of] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-arp__target[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.45rem;
    min-height: 44px;
    border: 1px solid var(--rw-border);
    border-left: 3px solid transparent;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.2);
    cursor: pointer;
    transition: all 0.15s ease;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    position: relative;
    animation: rw-arp-target-in-b-tev1l344of 0.2s ease-out backwards;
}

/* Stagger target rows */
.rw-arp__target:nth-child(2)[b-tev1l344of] { animation-delay: 0.04s; }
.rw-arp__target:nth-child(3)[b-tev1l344of] { animation-delay: 0.08s; }
.rw-arp__target:nth-child(4)[b-tev1l344of] { animation-delay: 0.12s; }
.rw-arp__target:nth-child(5)[b-tev1l344of] { animation-delay: 0.16s; }

@keyframes rw-arp-target-in-b-tev1l344of {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: translateX(0); }
}

.rw-arp__target:hover[b-tev1l344of] {
    border-color: rgba(196, 160, 64, 0.2);
    border-left-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.03);
}

.rw-arp__target--selected[b-tev1l344of] {
    border-color: rgba(184, 58, 26, 0.4);
    border-left-color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.06);
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.1);
}

/* Hide native checkbox */
.rw-arp__target input[type="checkbox"][b-tev1l344of] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/* Custom crosshair toggle */
.rw-arp__crosshair[b-tev1l344of] {
    width: 16px;
    height: 16px;
    border: 1.5px solid var(--rw-border);
    border-radius: 50%;
    flex-shrink: 0;
    position: relative;
    transition: all 0.15s ease;
}

/* Cross lines */
.rw-arp__crosshair[b-tev1l344of]::before,
.rw-arp__crosshair[b-tev1l344of]::after {
    content: '';
    position: absolute;
    background: var(--rw-border);
    transition: all 0.15s ease;
}

.rw-arp__crosshair[b-tev1l344of]::before {
    width: 1px;
    height: 6px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.rw-arp__crosshair[b-tev1l344of]::after {
    width: 6px;
    height: 1px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

/* Selected crosshair — locked on */
.rw-arp__target--selected .rw-arp__crosshair[b-tev1l344of] {
    border-color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.3);
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.4);
    animation: rw-arp-lock-on-b-tev1l344of 0.8s ease-in-out infinite;
}

.rw-arp__target--selected .rw-arp__crosshair[b-tev1l344of]::before,
.rw-arp__target--selected .rw-arp__crosshair[b-tev1l344of]::after {
    background: var(--rw-blood-bright);
}

@keyframes rw-arp-lock-on-b-tev1l344of {
    0%, 100% { box-shadow: 0 0 4px rgba(184, 58, 26, 0.3); }
    50% { box-shadow: 0 0 8px rgba(184, 58, 26, 0.6); }
}

.rw-arp__target-name[b-tev1l344of] {
    font-weight: 600;
    color: var(--rw-text-bright);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-arp__target-ac[b-tev1l344of] {
    color: var(--rw-arcane-cyan);
    font-size: 0.58rem;
    flex-shrink: 0;
}

.rw-arp__target-hp[b-tev1l344of] {
    color: var(--rw-text-dim);
    font-size: 0.55rem;
    flex-shrink: 0;
}

.rw-arp__empty[b-tev1l344of] {
    text-align: center;
    padding: 0.5rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-style: italic;
}

/* === ACTION BUTTONS === */

.rw-arp__actions[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding-top: 0.3rem;
}

.rw-arp__btn[b-tev1l344of] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.35rem 0.7rem;
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.rw-arp__btn:disabled[b-tev1l344of] {
    opacity: 0.35;
    cursor: not-allowed;
}

.rw-arp__btn--primary[b-tev1l344of] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2) 0%, rgba(196, 160, 64, 0.08) 100%);
    border: 1px solid var(--rw-gold);
    color: var(--rw-gold-light);
}

.rw-arp__btn--primary:not(:disabled):hover[b-tev1l344of] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.3) 0%, rgba(196, 160, 64, 0.12) 100%);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.2);
}

.rw-arp__btn--secondary[b-tev1l344of] {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
}

.rw-arp__btn--secondary:hover[b-tev1l344of] {
    border-color: var(--rw-text-faint);
    color: var(--rw-text);
}

.rw-arp__btn--undo[b-tev1l344of] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.06);
}

.rw-arp__btn--undo:hover[b-tev1l344of] {
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
}

.rw-arp__btn-count[b-tev1l344of] {
    font-size: 0.5rem;
    opacity: 0.7;
}

.rw-arp__all-miss[b-tev1l344of] {
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* === RESULT ROWS (shared between attack & save) === */

.rw-arp__results[b-tev1l344of],
.rw-arp__save-results[b-tev1l344of] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-arp__result-row[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    border: 1px solid transparent;
    animation: rw-arp-row-in-b-tev1l344of 0.3s ease-out backwards;
}

/* Stagger result rows */
.rw-arp__result-row:nth-child(1)[b-tev1l344of] { animation-delay: 0s; }
.rw-arp__result-row:nth-child(2)[b-tev1l344of] { animation-delay: 0.08s; }
.rw-arp__result-row:nth-child(3)[b-tev1l344of] { animation-delay: 0.16s; }
.rw-arp__result-row:nth-child(4)[b-tev1l344of] { animation-delay: 0.24s; }

@keyframes rw-arp-row-in-b-tev1l344of {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: translateX(0); }
}

.rw-arp__result-row--hit[b-tev1l344of] {
    background: rgba(196, 160, 64, 0.05);
    border-color: rgba(196, 160, 64, 0.15);
}

.rw-arp__result-row--crit[b-tev1l344of] {
    background: rgba(196, 160, 64, 0.1);
    border-color: var(--rw-gold);
    animation: rw-arp-row-in-b-tev1l344of 0.3s ease-out backwards, rw-arp-crit-flash-b-tev1l344of 0.6s ease-out;
    position: relative;
}

/* Crit ember glow */
.rw-arp__result-row--crit[b-tev1l344of]::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    box-shadow:
        0 0 8px rgba(196, 160, 64, 0.4),
        0 0 16px rgba(196, 160, 64, 0.2);
    opacity: 0;
    animation: rw-arp-ember-glow-b-tev1l344of 2s ease-in-out infinite;
    pointer-events: none;
}

@keyframes rw-arp-crit-flash-b-tev1l344of {
    0% { box-shadow: 0 0 16px rgba(196, 160, 64, 0.7); background: rgba(196, 160, 64, 0.2); }
    100% { box-shadow: none; }
}

@keyframes rw-arp-ember-glow-b-tev1l344of {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 0.7; }
}

.rw-arp__result-row--miss[b-tev1l344of] {
    background: rgba(0, 0, 0, 0.1);
    opacity: 0.5;
}

.rw-arp__result-name[b-tev1l344of] {
    font-weight: 600;
    color: var(--rw-text-bright);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex-shrink: 1;
}

.rw-arp__result-roll[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    margin-left: auto;
    flex-shrink: 0;
}

.rw-arp__adv-badge[b-tev1l344of] {
    font-size: 0.42rem;
    font-weight: 700;
    padding: 0.02rem 0.15rem;
    border-radius: 2px;
    letter-spacing: 0.05em;
}

.rw-arp__adv-badge--adv[b-tev1l344of] {
    background: rgba(80, 176, 104, 0.15);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(80, 176, 104, 0.25);
}

.rw-arp__adv-badge--dis[b-tev1l344of] {
    background: rgba(184, 58, 26, 0.1);
    color: var(--rw-blood-bright);
    border: 1px solid rgba(184, 58, 26, 0.2);
}

.rw-arp__d20[b-tev1l344of] {
    font-weight: 700;
    color: var(--rw-text-bright);
    min-width: 1rem;
    text-align: right;
}

.rw-arp__total[b-tev1l344of] {
    color: var(--rw-gold-light);
    font-weight: 600;
}

.rw-arp__vs[b-tev1l344of] {
    color: var(--rw-text-faint);
    font-size: 0.52rem;
}

.rw-arp__result-verdict[b-tev1l344of] {
    flex-shrink: 0;
}

.rw-arp__verdict[b-tev1l344of] {
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 0.05rem 0.25rem;
    border-radius: 2px;
}

.rw-arp__verdict--hit[b-tev1l344of] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
}

.rw-arp__verdict--crit[b-tev1l344of] {
    color: #ffe066;
    background: rgba(196, 160, 64, 0.2);
    text-shadow: 0 0 8px rgba(196, 160, 64, 0.6);
    animation: rw-arp-crit-text-b-tev1l344of 1.5s ease-in-out infinite;
}

@keyframes rw-arp-crit-text-b-tev1l344of {
    0%, 100% { text-shadow: 0 0 6px rgba(196, 160, 64, 0.5); }
    50% { text-shadow: 0 0 12px rgba(196, 160, 64, 0.8), 0 0 4px rgba(255, 224, 102, 0.4); }
}

.rw-arp__verdict--critfail[b-tev1l344of] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.15);
}

.rw-arp__verdict--miss[b-tev1l344of] {
    color: var(--rw-text-faint);
    background: rgba(0, 0, 0, 0.2);
}

.rw-arp__adv-reason[b-tev1l344of] {
    font-size: 0.5rem;
    cursor: help;
    flex-shrink: 0;
}

.rw-arp__auto-fail[b-tev1l344of] {
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    color: var(--rw-blood-bright);
    letter-spacing: 0.08em;
}

.rw-arp__dmg-applied[b-tev1l344of] {
    font-size: 0.52rem;
    color: var(--rw-blood-bright);
    font-weight: 600;
    flex-shrink: 0;
}

/* === SAVE SENT STATE === */

.rw-arp__save-sent[b-tev1l344of] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem;
}

.rw-arp__save-icon[b-tev1l344of] {
    font-size: 1.2rem;
    animation: rw-arp-save-pulse-b-tev1l344of 1.5s ease-in-out infinite;
}

@keyframes rw-arp-save-pulse-b-tev1l344of {
    0%, 100% { opacity: 0.7; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.1); }
}

.rw-arp__save-text[b-tev1l344of] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-text);
    text-align: center;
    margin: 0;
}

.rw-arp__save-detail[b-tev1l344of] {
    color: var(--rw-text-dim);
    font-size: 0.55rem;
}

/* === DAMAGE SUMMARY — Dramatic Impact === */

.rw-arp__damage[b-tev1l344of] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-arp__dmg-info[b-tev1l344of] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-faint);
    font-style: italic;
    text-align: center;
    padding: 0.15rem 0.35rem;
}

.rw-arp__dmg-row[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid rgba(184, 58, 26, 0.12);
    background: rgba(184, 58, 26, 0.03);
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    flex-wrap: wrap;
    animation: rw-arp-dmg-in-b-tev1l344of 0.25s ease-out backwards;
}

.rw-arp__dmg-row:nth-child(2)[b-tev1l344of] { animation-delay: 0.05s; }
.rw-arp__dmg-row:nth-child(3)[b-tev1l344of] { animation-delay: 0.1s; }
.rw-arp__dmg-row:nth-child(4)[b-tev1l344of] { animation-delay: 0.15s; }

@keyframes rw-arp-dmg-in-b-tev1l344of {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Crit damage — gold ember border with animated glow */
.rw-arp__dmg-row--crit[b-tev1l344of] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.04);
    position: relative;
    animation: rw-arp-dmg-in-b-tev1l344of 0.25s ease-out backwards, rw-arp-crit-ember-b-tev1l344of 2.5s ease-in-out infinite;
}

@keyframes rw-arp-crit-ember-b-tev1l344of {
    0%, 100% {
        box-shadow: 0 0 4px rgba(196, 160, 64, 0.1);
    }
    33% {
        box-shadow: 0 0 8px rgba(196, 160, 64, 0.2), 2px 0 4px rgba(255, 160, 0, 0.1);
    }
    66% {
        box-shadow: 0 0 6px rgba(196, 160, 64, 0.15), -2px 0 4px rgba(255, 160, 0, 0.08);
    }
}

.rw-arp__dmg-name[b-tev1l344of] {
    font-weight: 600;
    color: var(--rw-text-bright);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-arp__dmg-detail[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    margin-left: auto;
}

.rw-arp__dmg-rolled[b-tev1l344of] {
    color: var(--rw-text);
    font-weight: 600;
}

.rw-arp__dmg-arrow[b-tev1l344of] {
    color: var(--rw-text-faint);
    font-size: 0.5rem;
}

.rw-arp__dmg-final[b-tev1l344of] {
    font-weight: 700;
}

.rw-arp__dmg-final--immune[b-tev1l344of] {
    color: var(--rw-arcane-cyan);
    text-decoration: line-through;
}

.rw-arp__dmg-final--resist[b-tev1l344of] {
    color: var(--rw-iron-light);
}

.rw-arp__dmg-final--vuln[b-tev1l344of] {
    color: var(--rw-blood-bright);
    text-shadow: 0 0 6px rgba(184, 58, 26, 0.4);
    animation: rw-arp-vuln-pulse-b-tev1l344of 1.5s ease-in-out infinite;
}

@keyframes rw-arp-vuln-pulse-b-tev1l344of {
    0%, 100% { text-shadow: 0 0 4px rgba(184, 58, 26, 0.3); }
    50% { text-shadow: 0 0 10px rgba(184, 58, 26, 0.6); }
}

.rw-arp__dmg-type[b-tev1l344of] {
    font-size: 0.5rem;
    color: var(--rw-text-dim);
    text-transform: lowercase;
}

.rw-arp__dmg-note[b-tev1l344of] {
    font-size: 0.5rem;
    color: var(--rw-text-faint);
    font-style: italic;
    width: 100%;
    padding-left: 0.35rem;
}

.rw-arp__dmg-crit-badge[b-tev1l344of] {
    font-family: var(--rw-font-sc);
    font-size: 0.42rem;
    color: #ffe066;
    background: rgba(196, 160, 64, 0.15);
    padding: 0 0.2rem;
    border-radius: 2px;
    letter-spacing: 0.08em;
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.2);
}

.rw-arp__conc-badge[b-tev1l344of] {
    font-size: 0.48rem;
    color: var(--rw-arcane-cyan);
    background: rgba(58, 128, 168, 0.1);
    padding: 0 0.2rem;
    border-radius: 2px;
}

/* Dramatic slash divider above total */
.rw-arp__dmg-total[b-tev1l344of] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--rw-blood-bright);
    text-align: right;
    padding: 0.25rem 0.35rem 0.1rem;
    letter-spacing: 0.05em;
    position: relative;
    margin-top: 0.1rem;
}

.rw-arp__dmg-total[b-tev1l344of]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(184, 58, 26, 0.3) 20%,
        rgba(184, 58, 26, 0.5) 50%,
        rgba(184, 58, 26, 0.3) 80%,
        transparent 100%);
}

/* === CONFIRMATION STATE === */

.rw-arp__applied[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem;
    justify-content: center;
}

.rw-arp__applied-icon[b-tev1l344of] {
    color: var(--rw-verdant-bright);
    font-size: 0.8rem;
}

.rw-arp__applied-text[b-tev1l344of] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    color: var(--rw-verdant-bright);
    letter-spacing: 0.05em;
}

.rw-arp__applied-icon--undo[b-tev1l344of] {
    color: var(--rw-gold-light);
}

.rw-arp__applied-text--undo[b-tev1l344of] {
    color: var(--rw-gold-light);
}

/* === WAITING SPINNER === */

.rw-arp__waiting[b-tev1l344of] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.5rem;
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    color: var(--rw-text-dim);
}

.rw-arp__spinner[b-tev1l344of] {
    width: 12px;
    height: 12px;
    border: 2px solid var(--rw-border);
    border-top-color: var(--rw-gold);
    border-radius: 50%;
    animation: rw-spin-b-tev1l344of 0.8s linear infinite;
}

@keyframes rw-spin-b-tev1l344of {
    to { transform: rotate(360deg); }
}
/* /Components/Sessions/Gm/CombatantDetailPanel.razor.rz.scp.css */
/* ============================================================
   CombatantDetailPanel — Full detail view for selected combatant
   Right panel of the split-panel war table layout.
   Touch-friendly with 44px+ tap targets.
   ============================================================ */

/* === EMPTY STATE === */
.rw-detail-panel__empty[b-w6efaqbrxh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    height: 100%;
    min-height: 200px;
    padding: 2rem;
    color: var(--rw-text-faint);
}

.rw-detail-panel__empty-icon[b-w6efaqbrxh] {
    width: 56px;
    height: 56px;
    object-fit: contain;
    opacity: 0.25;
    filter: sepia(0.3) hue-rotate(15deg);
    animation: detail-empty-float-b-w6efaqbrxh 4s ease-in-out infinite;
}

@keyframes detail-empty-float-b-w6efaqbrxh {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.rw-detail-panel__empty-text[b-w6efaqbrxh] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* === DETAIL PANEL === */
.rw-detail-panel[b-w6efaqbrxh] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    position: relative;
    animation: detail-panel-enter-b-w6efaqbrxh 0.25s ease-out;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
}

@keyframes detail-panel-enter-b-w6efaqbrxh {
    from { opacity: 0; transform: translateX(8px); }
    to { opacity: 1; transform: translateX(0); }
}

/* --- Bloodied state --- */
.rw-detail-panel--bloodied[b-w6efaqbrxh] {
    animation: detail-bloodied-pulse-b-w6efaqbrxh 2.5s ease-in-out infinite;
}

@keyframes detail-bloodied-pulse-b-w6efaqbrxh {
    0%, 100% { background: transparent; }
    50% { background: rgba(218, 170, 50, 0.04); }
}

/* --- Dead state --- */
.rw-detail-panel--dead[b-w6efaqbrxh] {
    filter: grayscale(0.5) brightness(0.7);
}

/* === HEADER === */
.rw-detail-panel__header[b-w6efaqbrxh] {
    position: relative;
}

/* --- Banner: Portrait + Identity --- */
.rw-detail-panel__banner[b-w6efaqbrxh] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* --- Portrait (Brass Frame) --- */
.rw-detail-panel__portrait[b-w6efaqbrxh] {
    width: 96px;
    height: 96px;
    border-radius: var(--rw-radius-xl);
    overflow: hidden;
    flex-shrink: 0;
    border: 3px solid var(--rw-gold);
    box-shadow:
        0 0 16px rgba(196, 160, 64, 0.2),
        0 4px 20px rgba(0, 0, 0, 0.5),
        inset 0 0 8px rgba(0, 0, 0, 0.4);
    position: relative;
}

.rw-detail-panel__portrait img[b-w6efaqbrxh] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- Identity --- */
.rw-detail-panel__identity[b-w6efaqbrxh] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
    gap: 0.2rem;
}

.rw-detail-panel__active-label[b-w6efaqbrxh] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-gold);
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-detail-panel__active-label[b-w6efaqbrxh]::before,
.rw-detail-panel__active-label[b-w6efaqbrxh]::after {
    content: '';
    height: 1px;
    width: 1.2rem;
    background: linear-gradient(90deg, var(--rw-gold), transparent);
    flex-shrink: 0;
}

.rw-detail-panel__active-label[b-w6efaqbrxh]::after {
    background: linear-gradient(270deg, var(--rw-gold), transparent);
}

.rw-detail-panel__name[b-w6efaqbrxh] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-text-bright);
    line-height: 1.15;
    letter-spacing: 0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-detail-panel__inst-label[b-w6efaqbrxh] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    margin-left: 0.3rem;
    font-weight: 400;
}

.rw-detail-panel__concentration[b-w6efaqbrxh] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-arcane-cyan);
    opacity: 0.9;
}

/* --- Filigree Divider --- */
.rw-filigree-divider[b-w6efaqbrxh] {
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(196, 160, 64, 0.3) 20%,
        rgba(218, 184, 85, 0.5) 50%,
        rgba(196, 160, 64, 0.3) 80%,
        transparent 100%);
    margin: 0.1rem 0;
}

/* --- Stat Strip (below header) --- */
.rw-detail-panel__stat-strip[b-w6efaqbrxh] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rw-detail-stat-box[b-w6efaqbrxh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.4rem 0.65rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    background: rgba(196, 160, 64, 0.05);
    min-width: 58px;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.rw-detail-stat-box:hover[b-w6efaqbrxh] {
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.1);
}

.rw-detail-stat-box__label[b-w6efaqbrxh] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    line-height: 1;
    white-space: nowrap;
}

.rw-detail-stat-box__val[b-w6efaqbrxh] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    font-weight: 700;
    line-height: 1.2;
}

/* Stat box icon glyphs */
.rw-detail-stat-box--ac .rw-detail-stat-box__val[b-w6efaqbrxh]::before {
    content: '\1F6E1\FE0F ';
    font-size: 0.75rem;
}

.rw-detail-stat-box--speed .rw-detail-stat-box__val[b-w6efaqbrxh]::before {
    content: '\1F3C3 ';
    font-size: 0.75rem;
}

.rw-detail-stat-box--perception .rw-detail-stat-box__val[b-w6efaqbrxh]::before {
    content: '\1F441\FE0F ';
    font-size: 0.75rem;
}

/* Stat box color variants */
.rw-detail-stat-box--ac[b-w6efaqbrxh] {
    border-color: rgba(58, 128, 168, 0.3);
    background: rgba(58, 128, 168, 0.06);
}

.rw-detail-stat-box--ac .rw-detail-stat-box__val[b-w6efaqbrxh] {
    color: var(--rw-arcane-cyan);
}

.rw-detail-stat-box--perception[b-w6efaqbrxh] {
    border-color: rgba(61, 138, 85, 0.25);
    background: rgba(61, 138, 85, 0.05);
}

.rw-detail-stat-box--perception .rw-detail-stat-box__val[b-w6efaqbrxh] {
    color: var(--rw-verdant-bright);
}

/* --- Compendium Button --- */
.rw-detail-panel__compendium[b-w6efaqbrxh] {
    all: unset;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 34px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-gold);
    border-radius: var(--rw-radius-md);
    border: 1px solid rgba(196, 160, 64, 0.15);
    background: rgba(196, 160, 64, 0.04);
    transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    opacity: 0.75;
}

.rw-detail-panel__compendium-icon[b-w6efaqbrxh] {
    width: 16px;
    height: 16px;
    transition: transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.rw-detail-panel__compendium:hover[b-w6efaqbrxh] {
    opacity: 1;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.35);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15),
                inset 0 0 8px rgba(196, 160, 64, 0.06);
    transform: translateY(-1px);
}

.rw-detail-panel__compendium:hover .rw-detail-panel__compendium-icon[b-w6efaqbrxh] {
    transform: scale(1.08);
}

.rw-detail-panel__compendium:active[b-w6efaqbrxh] {
    transform: scale(0.94);
    transition-duration: 0.08s;
}

/* --- Remove Button --- */
.rw-detail-panel__remove[b-w6efaqbrxh] {
    all: unset;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: var(--rw-text-faint);
    border-radius: 50%;
    transition: all var(--rw-transition);
}

.rw-detail-panel__remove:hover[b-w6efaqbrxh] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.12);
}

/* === HP ROW === */
.rw-detail-panel__hp-row[b-w6efaqbrxh] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.rw-detail-panel__hp-bar-wrap[b-w6efaqbrxh] {
    flex: 1;
    min-width: 0;
    position: relative;
}

.rw-detail-panel__bloodied-warn[b-w6efaqbrxh] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-gold);
    opacity: 0.7;
    display: block;
    margin-top: 0.15rem;
}

/* --- HP Controls (touch-friendly: 44px+ targets) --- */
.rw-detail-panel__hp-controls[b-w6efaqbrxh] {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.3);
    overflow: hidden;
    flex-shrink: 0;
}

.rw-detail-hp-btn[b-w6efaqbrxh] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    font-size: 1.2rem;
    font-weight: 700;
    transition: all var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.rw-detail-hp-btn--damage[b-w6efaqbrxh] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
}

.rw-detail-hp-btn--damage:hover[b-w6efaqbrxh] {
    background: rgba(184, 58, 26, 0.2);
}

.rw-detail-hp-btn--damage:active[b-w6efaqbrxh] {
    background: rgba(184, 58, 26, 0.35);
}

.rw-detail-hp-btn--heal[b-w6efaqbrxh] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.08);
}

.rw-detail-hp-btn--heal:hover[b-w6efaqbrxh] {
    background: rgba(80, 176, 104, 0.2);
}

.rw-detail-hp-btn--heal:active[b-w6efaqbrxh] {
    background: rgba(80, 176, 104, 0.35);
}

.rw-detail-hp-input[b-w6efaqbrxh] {
    width: 52px;
    height: 44px;
    border: none;
    border-left: 1px solid var(--rw-border);
    border-right: 1px solid var(--rw-border);
    background: rgba(0, 0, 0, 0.2);
    color: var(--rw-text-bright);
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
    font-weight: 600;
    outline: none;
    -moz-appearance: textfield;
}

.rw-detail-hp-input[b-w6efaqbrxh]::-webkit-inner-spin-button,
.rw-detail-hp-input[b-w6efaqbrxh]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.rw-detail-hp-input:focus[b-w6efaqbrxh] {
    background: rgba(0, 0, 0, 0.4);
    box-shadow: inset 0 0 8px rgba(196, 160, 64, 0.1);
}

.rw-detail-hp-input[b-w6efaqbrxh]::placeholder {
    color: var(--rw-text-faint);
}

/* === SECTIONS === */

.rw-detail-panel__conditions[b-w6efaqbrxh] {
    padding: 0.25rem 0;
}

/* --- Defenses (Warded Sigils) --- */
.rw-detail-panel__defenses[b-w6efaqbrxh] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.6rem 0.75rem;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.1) 100%);
    border-radius: 0 var(--rw-radius-md) var(--rw-radius-md) 0;
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-left: 3px solid var(--rw-border);
}

.rw-defense-row[b-w6efaqbrxh] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.rw-defense-label[b-w6efaqbrxh] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    flex-shrink: 0;
    font-weight: 700;
}

.rw-defense-tag[b-w6efaqbrxh] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    padding: 0.08rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    white-space: nowrap;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

/* Immune -- steel blue with diamond icon */
.rw-defense-label.rw-defense--immune[b-w6efaqbrxh]::before { content: '\2756 '; font-size: 0.55rem; }
.rw-defense--immune[b-w6efaqbrxh] {
    background: rgba(58, 128, 168, 0.18);
    border: 1px solid rgba(58, 128, 168, 0.35);
    color: var(--rw-arcane-cyan);
}

/* Resist -- iron green with half-circle icon */
.rw-defense-label.rw-defense--resist[b-w6efaqbrxh]::before { content: '\25D0 '; font-size: 0.55rem; }
.rw-defense--resist[b-w6efaqbrxh] {
    background: rgba(74, 96, 88, 0.22);
    border: 1px solid rgba(74, 96, 88, 0.4);
    color: var(--rw-sage-tan, #8aaa98);
}

/* Vulnerable -- blood red with skull icon */
.rw-defense-label.rw-defense--vuln[b-w6efaqbrxh]::before { content: '\2620 '; font-size: 0.55rem; }
.rw-defense--vuln[b-w6efaqbrxh] {
    background: rgba(184, 58, 26, 0.15);
    border: 1px solid rgba(184, 58, 26, 0.35);
    color: var(--rw-blood-bright);
}

/* Condition immune -- arcane purple with sparkles icon */
.rw-defense-label.rw-defense--cond-immune[b-w6efaqbrxh]::before { content: '\2728 '; font-size: 0.55rem; }
.rw-defense--cond-immune[b-w6efaqbrxh] {
    background: rgba(106, 74, 138, 0.15);
    border: 1px solid rgba(106, 74, 138, 0.35);
    color: #9a7abe;
}

/* --- Command Strip (Legendary + Lair merged) --- */
.rw-detail-panel__command-strip[b-w6efaqbrxh] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.6rem;
    background: rgba(196, 160, 64, 0.04);
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-md);
}

.rw-command-strip__spacer[b-w6efaqbrxh] {
    flex: 1;
}

.rw-legendary-label[b-w6efaqbrxh] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    flex-shrink: 0;
    font-weight: 600;
}

.rw-legendary-pips[b-w6efaqbrxh] {
    display: flex;
    gap: 0.2rem;
}

.rw-legendary-pip[b-w6efaqbrxh] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1.5px solid var(--rw-gold);
    background: transparent;
    transition: all var(--rw-transition);
}

.rw-legendary-pip--filled[b-w6efaqbrxh] {
    background: var(--rw-gold);
    box-shadow: 0 0 5px rgba(196, 160, 64, 0.5);
}

.rw-legendary-count[b-w6efaqbrxh] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-dim);
}

.rw-lair-check[b-w6efaqbrxh] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(210, 130, 40, 0.7);
    flex-shrink: 0;
}

.rw-lair-check input[type="checkbox"][b-w6efaqbrxh] {
    accent-color: rgba(210, 130, 40, 0.8);
    width: 13px;
    height: 13px;
    cursor: pointer;
}

.rw-detail-panel__actions[b-w6efaqbrxh] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

/* Section labels with gold ornament lines */
.rw-actions-label[b-w6efaqbrxh] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
    font-weight: 600;
}

.rw-actions-label[b-w6efaqbrxh]::before,
.rw-actions-label[b-w6efaqbrxh]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg,
        rgba(58, 128, 168, 0.4),
        transparent);
}

.rw-actions-label[b-w6efaqbrxh]::after {
    background: linear-gradient(270deg,
        rgba(58, 128, 168, 0.4),
        transparent);
}

.rw-actions-label--legendary[b-w6efaqbrxh] {
    color: var(--rw-gold);
}

.rw-actions-label--legendary[b-w6efaqbrxh]::before {
    background: linear-gradient(90deg,
        rgba(196, 160, 64, 0.4),
        transparent);
}

.rw-actions-label--legendary[b-w6efaqbrxh]::after {
    background: linear-gradient(270deg,
        rgba(196, 160, 64, 0.4),
        transparent);
}

.rw-actions-list[b-w6efaqbrxh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-detail-panel__resources[b-w6efaqbrxh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.5rem;
    background: rgba(0, 0, 0, 0.12);
    border-radius: var(--rw-radius-md);
    border: 1px solid rgba(255, 255, 255, 0.04);
}

.rw-detail-panel__death-saves[b-w6efaqbrxh] {
    padding: 0.35rem 0;
}

/* === RESPONSIVE === */

@container detail-pane (max-width: 480px) {
    .rw-detail-panel__portrait[b-w6efaqbrxh] {
        width: 64px;
        height: 64px;
    }

    .rw-detail-panel__name[b-w6efaqbrxh] {
        font-size: 1.2rem;
    }

    .rw-detail-panel__banner[b-w6efaqbrxh] {
        gap: 0.65rem;
    }
}

@media (max-width: 900px) {
    .rw-detail-panel__portrait[b-w6efaqbrxh] {
        width: 64px;
        height: 64px;
    }

    .rw-detail-panel__name[b-w6efaqbrxh] {
        font-size: 1.2rem;
    }

    .rw-detail-panel__banner[b-w6efaqbrxh] {
        gap: 0.65rem;
    }
}
/* /Components/Sessions/Gm/DraftEncountersPanel.razor.rz.scp.css */
/* ============================================================
   DraftEncountersPanel — Arsenal Briefing Board
   Pre-built encounters waiting to be unleashed. Each card is
   a sealed battle plan with a crimson wax-seal launch button.
   ============================================================ */

.rw-draft-encounters[b-lvgxkl90fi] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.5rem;
    overflow-y: auto;
    max-height: 100%;
}

/* === Loading State === */

.rw-draft-encounters__loading[b-lvgxkl90fi] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: var(--rw-parchment-muted, rgba(210, 190, 160, 0.5));
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    font-style: italic;
}

.rw-draft-encounters__loading-sigil[b-lvgxkl90fi] {
    width: 28px;
    height: 28px;
    border: 2px solid rgba(196, 160, 64, 0.15);
    border-top-color: var(--rw-gold);
    border-radius: 50%;
    animation: rw-draft-spin-b-lvgxkl90fi 0.9s linear infinite;
}

@keyframes rw-draft-spin-b-lvgxkl90fi {
    to { transform: rotate(360deg); }
}

/* === Empty State === */

.rw-draft-encounters__empty[b-lvgxkl90fi] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 1.5rem;
    gap: 0.4rem;
}

.rw-draft-encounters__empty-icon[b-lvgxkl90fi] {
    font-size: 2rem;
    opacity: 0.3;
    filter: grayscale(0.8);
    margin-bottom: 0.25rem;
}

.rw-draft-encounters__empty-title[b-lvgxkl90fi] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-parchment-muted, rgba(210, 190, 160, 0.5));
    margin: 0;
}

.rw-draft-encounters__empty-hint[b-lvgxkl90fi] {
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    color: rgba(210, 190, 160, 0.35);
    margin: 0;
    line-height: 1.5;
    max-width: 280px;
}

.rw-draft-encounters__empty-hint strong[b-lvgxkl90fi] {
    color: var(--rw-gold);
    opacity: 0.7;
}

/* === Card List === */

.rw-draft-encounters__list[b-lvgxkl90fi] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

/* === Individual Card === */

.rw-draft-encounters__card[b-lvgxkl90fi] {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.rw-draft-encounters__card:hover[b-lvgxkl90fi] {
    border-color: rgba(196, 160, 64, 0.2);
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3),
                0 0 12px rgba(196, 160, 64, 0.06);
}

.rw-draft-encounters__card--confirming[b-lvgxkl90fi] {
    border-color: rgba(220, 60, 60, 0.35) !important;
    box-shadow: 0 0 20px rgba(220, 60, 60, 0.1),
                0 4px 20px rgba(0, 0, 0, 0.3) !important;
}

/* Top accent — dormant crimson line */
.rw-draft-encounters__card-accent[b-lvgxkl90fi] {
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-blood, #8b2020) 25%,
        var(--rw-blood-bright, #dc3c3c) 50%,
        var(--rw-blood, #8b2020) 75%,
        transparent 100%);
    opacity: 0.45;
    transition: opacity 0.3s ease;
}

.rw-draft-encounters__card:hover .rw-draft-encounters__card-accent[b-lvgxkl90fi] {
    opacity: 0.75;
}

.rw-draft-encounters__card--confirming .rw-draft-encounters__card-accent[b-lvgxkl90fi] {
    opacity: 1;
    animation: rw-draft-pulse-accent-b-lvgxkl90fi 1.5s ease-in-out infinite;
}

@keyframes rw-draft-pulse-accent-b-lvgxkl90fi {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}

/* Card Body */
.rw-draft-encounters__card-body[b-lvgxkl90fi] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.625rem 0.75rem 0.25rem;
}

.rw-draft-encounters__card-header[b-lvgxkl90fi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-draft-encounters__card-name[b-lvgxkl90fi] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--rw-parchment, #d2bea0);
    margin: 0;
    line-height: 1.2;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-draft-encounters__combatant-badge[b-lvgxkl90fi] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rw-blood-bright, #dc3c3c);
    background: rgba(220, 60, 60, 0.1);
    border: 1px solid rgba(220, 60, 60, 0.2);
    padding: 0.15rem 0.45rem;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
    flex-shrink: 0;
}

.rw-draft-encounters__location[b-lvgxkl90fi] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-verdant, #3da35a);
    opacity: 0.75;
}

.rw-draft-encounters__description[b-lvgxkl90fi] {
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    color: rgba(210, 190, 160, 0.45);
    line-height: 1.45;
    margin: 0;
}

/* Card Footer */
.rw-draft-encounters__card-footer[b-lvgxkl90fi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 0.75rem 0.5rem;
}

.rw-draft-encounters__date[b-lvgxkl90fi] {
    font-family: var(--rw-font-body);
    font-size: 0.68rem;
    color: rgba(210, 190, 160, 0.3);
    font-style: italic;
}

.rw-draft-encounters__confirm-label[b-lvgxkl90fi] {
    font-family: var(--rw-font-display);
    font-size: 0.78rem;
    color: var(--rw-blood-bright, #dc3c3c);
    animation: rw-draft-fade-in-b-lvgxkl90fi 0.2s ease;
}

.rw-draft-encounters__confirm-actions[b-lvgxkl90fi] {
    display: flex;
    gap: 0.4rem;
    animation: rw-draft-fade-in-b-lvgxkl90fi 0.2s ease;
}

@keyframes rw-draft-fade-in-b-lvgxkl90fi {
    from { opacity: 0; transform: translateY(2px); }
    to { opacity: 1; transform: translateY(0); }
}

/* === Buttons === */

.rw-draft-encounters__btn[b-lvgxkl90fi] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.3rem 0.65rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid transparent;
    cursor: pointer;
    transition: all 0.2s ease;
    line-height: 1.3;
}

.rw-draft-encounters__btn--launch[b-lvgxkl90fi] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold);
}

.rw-draft-encounters__btn--launch:hover[b-lvgxkl90fi] {
    background: rgba(196, 160, 64, 0.2);
    border-color: var(--rw-gold);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.15);
}

.rw-draft-encounters__btn--confirm[b-lvgxkl90fi] {
    background: rgba(220, 60, 60, 0.15);
    border-color: rgba(220, 60, 60, 0.5);
    color: #ff6b6b;
}

.rw-draft-encounters__btn--confirm:hover[b-lvgxkl90fi] {
    background: rgba(220, 60, 60, 0.3);
    border-color: var(--rw-blood-bright, #dc3c3c);
    box-shadow: 0 0 14px rgba(220, 60, 60, 0.2);
}

.rw-draft-encounters__btn--cancel[b-lvgxkl90fi] {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.1);
    color: rgba(210, 190, 160, 0.5);
}

.rw-draft-encounters__btn--cancel:hover[b-lvgxkl90fi] {
    background: rgba(255, 255, 255, 0.05);
    color: var(--rw-parchment, #d2bea0);
}
/* /Components/Sessions/Gm/EncounterControls.razor.rz.scp.css */
/* ============================================================
   EncounterControls — Gamified Action Bar
   MMO-style icon-driven buttons for encounter lifecycle.
   ============================================================ */

.rw-encounter-controls[b-rlxxqvw4z6] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0;
}

/* === NEW ENCOUNTER CREATION === */

.rw-encounter-create[b-rlxxqvw4z6] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex: 1;
}

.rw-encounter-input[b-rlxxqvw4z6] {
    flex: 1;
    height: 30px;
    padding: 0 0.5rem;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    outline: none;
    transition: border-color var(--rw-transition);
}

.rw-encounter-input[b-rlxxqvw4z6]::placeholder {
    color: var(--rw-text-faint);
}

.rw-encounter-input:focus[b-rlxxqvw4z6] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.15);
}

/* === SHARED BUTTON STYLE (create mode) === */

.rw-encounter-btn[b-rlxxqvw4z6] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.3rem 0.65rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: all var(--rw-transition);
    border: 1px solid transparent;
}

.rw-encounter-btn:disabled[b-rlxxqvw4z6] {
    opacity: 0.35;
    cursor: not-allowed;
}

.rw-encounter-btn--create[b-rlxxqvw4z6] {
    background: rgba(196, 160, 64, 0.12);
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
}

.rw-encounter-btn--create:hover:not(:disabled)[b-rlxxqvw4z6] {
    background: rgba(196, 160, 64, 0.22);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}

/* === HERO MODE — Narrative encounter creation === */

.rw-encounter-create--hero[b-rlxxqvw4z6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 0;
    text-align: center;
}

.rw-encounter-create__icon[b-rlxxqvw4z6] {
    font-size: 2rem;
    line-height: 1;
    filter: grayscale(0.2);
    animation: encounter-icon-float-b-rlxxqvw4z6 4s ease-in-out infinite;
}

@keyframes encounter-icon-float-b-rlxxqvw4z6 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

.rw-encounter-create__heading[b-rlxxqvw4z6] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    margin: 0;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 8px rgba(196, 160, 64, 0.15);
}

.rw-encounter-create__form[b-rlxxqvw4z6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    max-width: 420px;
}

.rw-encounter-input--hero[b-rlxxqvw4z6] {
    flex: 1;
    height: 40px;
    font-size: 0.85rem;
    text-align: center;
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(0, 0, 0, 0.4);
    border-radius: var(--rw-radius-xl);
}

.rw-encounter-input--hero[b-rlxxqvw4z6]::placeholder {
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-encounter-input--hero:focus[b-rlxxqvw4z6] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.2);
}

.rw-encounter-btn--hero[b-rlxxqvw4z6] {
    padding: 0.5rem 1rem;
    font-size: 0.72rem;
    min-height: 40px;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2) 0%, rgba(196, 160, 64, 0.1) 100%);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.rw-encounter-btn--hero:hover:not(:disabled)[b-rlxxqvw4z6] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.35) 0%, rgba(196, 160, 64, 0.2) 100%);
    box-shadow: 0 0 22px rgba(196, 160, 64, 0.3);
    transform: scale(1.03);
}

.rw-encounter-btn--hero:active:not(:disabled)[b-rlxxqvw4z6] {
    transform: scale(0.97);
    transition-duration: 0.08s;
}

/* ============================================================
   GAMIFIED ACTION BAR — MMO-style encounter controls
   ============================================================ */

.rw-action-bar[b-rlxxqvw4z6] {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
}

/* --- Action Button --- */
.rw-action-btn[b-rlxxqvw4z6] {
    all: unset;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.6rem 1rem;
    min-width: 80px;
    min-height: 80px;
    border-radius: var(--rw-radius-xl);
    border: 1px solid transparent;
    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.rw-action-btn:active:not(:disabled)[b-rlxxqvw4z6] {
    transform: scale(0.9);
    transition-duration: 0.08s;
}

/* --- Icon Wrapper (circular frame around icon) --- */
.rw-action-btn__icon-wrap[b-rlxxqvw4z6] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 2px solid transparent;
    transition: all 0.2s ease;
    position: relative;
}

.rw-action-btn__icon[b-rlxxqvw4z6] {
    width: 30px;
    height: 30px;
    object-fit: contain;
    filter: brightness(1.1) saturate(1.1);
    transition: filter 0.2s ease;
}

/* --- Label --- */
.rw-action-btn__label[b-rlxxqvw4z6] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
}

/* ============================================================
   COLOR VARIANTS
   ============================================================ */

/* --- Cyan: Roll Initiative --- */
.rw-action-btn--roll[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.06);
    border-color: rgba(72, 176, 192, 0.2);
    color: var(--rw-arcane-cyan);
}

.rw-action-btn--roll:hover[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.12);
    border-color: rgba(72, 176, 192, 0.35);
    box-shadow: 0 0 18px rgba(72, 176, 192, 0.12);
}

.rw-action-btn__icon-wrap--cyan[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.08);
    border-color: rgba(72, 176, 192, 0.3);
}

.rw-action-btn--roll:hover .rw-action-btn__icon-wrap--cyan[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.15);
    box-shadow: 0 0 12px rgba(72, 176, 192, 0.2);
}

/* --- Blood-tinted: Roll Monsters Only --- */
.rw-action-btn--roll-monsters[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.06);
    border-color: rgba(139, 37, 0, 0.2);
    color: var(--rw-blood-bright);
}

.rw-action-btn--roll-monsters:hover[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.14);
    border-color: rgba(139, 37, 0, 0.4);
    box-shadow: 0 0 16px rgba(184, 58, 26, 0.12);
}

.rw-action-btn--roll-monsters:hover .rw-action-btn__icon-wrap--blood[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.18);
    box-shadow: 0 0 10px rgba(184, 58, 26, 0.2);
}

/* --- Gold: Next Turn (primary, largest) --- */
.rw-action-btn--next[b-rlxxqvw4z6] {
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
}

.rw-action-btn--primary[b-rlxxqvw4z6] {
    min-width: 96px;
    min-height: 88px;
    animation: action-btn-idle-pulse-b-rlxxqvw4z6 3s ease-in-out infinite;
}

@keyframes action-btn-idle-pulse-b-rlxxqvw4z6 {
    0%, 100% {
        border-color: rgba(196, 160, 64, 0.25);
        box-shadow: 0 0 8px rgba(196, 160, 64, 0.06);
    }
    50% {
        border-color: rgba(196, 160, 64, 0.45);
        box-shadow: 0 0 20px rgba(196, 160, 64, 0.12),
                    0 0 4px rgba(196, 160, 64, 0.08);
    }
}

.rw-action-btn--next:hover[b-rlxxqvw4z6] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 24px rgba(196, 160, 64, 0.18);
    animation: none;
}

.rw-action-btn__icon-wrap--gold[b-rlxxqvw4z6] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.35);
}

.rw-action-btn--next:hover .rw-action-btn__icon-wrap--gold[b-rlxxqvw4z6] {
    background: rgba(196, 160, 64, 0.2);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.25);
}

.rw-action-btn--primary .rw-action-btn__icon[b-rlxxqvw4z6] {
    width: 34px;
    height: 34px;
}

.rw-action-btn--primary .rw-action-btn__label[b-rlxxqvw4z6] {
    font-size: 0.8rem;
    font-weight: 600;
}

/* --- Blood: End Battle --- */
.rw-action-btn--end[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.06);
    border-color: rgba(139, 37, 0, 0.2);
    color: var(--rw-blood-bright);
}

.rw-action-btn--end:hover[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.14);
    border-color: rgba(139, 37, 0, 0.4);
    box-shadow: 0 0 16px rgba(184, 58, 26, 0.12);
}

.rw-action-btn__icon-wrap--blood[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.08);
    border-color: rgba(139, 37, 0, 0.3);
}

.rw-action-btn--end:hover .rw-action-btn__icon-wrap--blood[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.18);
    box-shadow: 0 0 10px rgba(184, 58, 26, 0.2);
}

/* --- Confirm state (double-tap End Battle) --- */
.rw-action-btn--confirm[b-rlxxqvw4z6] {
    border-color: var(--rw-blood-bright);
    animation: action-btn-confirm-pulse-b-rlxxqvw4z6 1s ease-in-out infinite;
}

@keyframes action-btn-confirm-pulse-b-rlxxqvw4z6 {
    0%, 100% {
        background: rgba(184, 58, 26, 0.1);
        box-shadow: 0 0 8px rgba(184, 58, 26, 0.15);
    }
    50% {
        background: rgba(184, 58, 26, 0.22);
        box-shadow: 0 0 20px rgba(184, 58, 26, 0.3);
    }
}

.rw-action-btn--confirm .rw-action-btn__label[b-rlxxqvw4z6] {
    color: #fff;
    font-weight: 700;
}

/* ============================================================
   FIRED (GLOW RING) STATES — triggered on click
   ============================================================ */

.rw-action-btn--fired-gold[b-rlxxqvw4z6] {
    animation: rw-btn-glow-gold 0.5s ease-out !important;
}

.rw-action-btn--fired-cyan[b-rlxxqvw4z6] {
    animation: rw-btn-glow-cyan 0.5s ease-out !important;
}

.rw-action-btn--fired-blood[b-rlxxqvw4z6] {
    animation: rw-btn-glow-blood 0.5s ease-out !important;
}

/* ============================================================
   INLINE MODE — Compact icon-only buttons for TurnStrip
   ============================================================ */

.rw-action-bar--inline[b-rlxxqvw4z6] {
    gap: 0.35rem;
    padding: 0;
}

.rw-action-bar--inline .rw-action-btn[b-rlxxqvw4z6] {
    min-width: 44px;
    min-height: 44px;
    max-width: 44px;
    max-height: 44px;
    padding: 0.25rem;
    border-radius: 10px;
}

.rw-action-bar--inline .rw-action-btn__icon-wrap[b-rlxxqvw4z6] {
    width: 32px;
    height: 32px;
}

.rw-action-bar--inline .rw-action-btn__icon[b-rlxxqvw4z6] {
    width: 20px;
    height: 20px;
}

.rw-action-bar--inline .rw-action-btn__label[b-rlxxqvw4z6] {
    display: none;
}

/* Remove oversize from primary button in inline mode */
.rw-action-bar--inline .rw-action-btn--primary[b-rlxxqvw4z6],
.rw-action-bar--inline .rw-action-btn--next[b-rlxxqvw4z6] {
    min-width: 44px;
    min-height: 44px;
    max-width: 44px;
    max-height: 44px;
    animation: none;
}

.rw-action-bar--inline .rw-action-btn--primary .rw-action-btn__icon[b-rlxxqvw4z6],
.rw-action-bar--inline .rw-action-btn--next .rw-action-btn__icon[b-rlxxqvw4z6] {
    width: 20px;
    height: 20px;
}

/* Idle pulse for inline Next Turn — subtler */
.rw-action-bar--inline .rw-action-btn--next[b-rlxxqvw4z6] {
    animation: action-btn-inline-pulse-b-rlxxqvw4z6 3s ease-in-out infinite;
}

@keyframes action-btn-inline-pulse-b-rlxxqvw4z6 {
    0%, 100% {
        border-color: rgba(196, 160, 64, 0.25);
        box-shadow: none;
    }
    50% {
        border-color: rgba(196, 160, 64, 0.5);
        box-shadow: 0 0 8px rgba(196, 160, 64, 0.12);
    }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 480px) {
    .rw-action-bar[b-rlxxqvw4z6] {
        gap: 0.5rem;
    }

    .rw-action-btn[b-rlxxqvw4z6] {
        min-width: 68px;
        min-height: 68px;
        padding: 0.5rem 0.6rem;
    }

    .rw-action-btn--primary[b-rlxxqvw4z6] {
        min-width: 80px;
        min-height: 76px;
    }

    .rw-action-btn__label[b-rlxxqvw4z6] {
        font-size: 0.62rem;
    }

    .rw-action-btn--primary .rw-action-btn__label[b-rlxxqvw4z6] {
        font-size: 0.68rem;
    }
}
/* /Components/Sessions/Gm/EncounterSummaryCard.razor.rz.scp.css */
/* ============================================================
   EncounterSummaryCard — After-Action Report
   A brass-framed parchment-textured post-battle debrief.
   XP awards, per-combatant stats, kill counts.
   ============================================================ */

.rw-enc-summary[b-7y9p1ejm5b] {
    background: linear-gradient(170deg,
        rgba(14, 30, 38, 0.97) 0%,
        rgba(10, 22, 30, 0.95) 100%);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    box-shadow:
        0 0 16px rgba(196, 160, 64, 0.08),
        var(--rw-shadow-deep);
    animation: rw-summary-enter-b-7y9p1ejm5b 0.4s ease-out;
}

@keyframes rw-summary-enter-b-7y9p1ejm5b {
    from { opacity: 0; transform: scale(0.97) translateY(8px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

/* Decorative top bar */
.rw-enc-summary[b-7y9p1ejm5b]::before {
    content: '';
    display: block;
    height: 3px;
    background: linear-gradient(90deg,
        var(--rw-gold) 0%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 100%);
}

/* === HEADER === */

.rw-enc-summary__header[b-7y9p1ejm5b] {
    display: flex;
    align-items: flex-start;
    padding: 0.6rem 0.6rem 0.3rem;
}

.rw-enc-summary__title-block[b-7y9p1ejm5b] {
    flex: 1;
}

.rw-enc-summary__badge[b-7y9p1ejm5b] {
    font-family: var(--rw-font-sc);
    font-size: 0.45rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.2);
    padding: 0.05rem 0.35rem;
    border-radius: 2px;
    display: inline-block;
    margin-bottom: 0.2rem;
}

.rw-enc-summary__name[b-7y9p1ejm5b] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.2;
}

.rw-enc-summary__close[b-7y9p1ejm5b] {
    all: unset;
    cursor: pointer;
    font-size: 0.9rem;
    color: var(--rw-text-faint);
    padding: 0 0.2rem;
    transition: color var(--rw-transition);
}

.rw-enc-summary__close:hover[b-7y9p1ejm5b] {
    color: var(--rw-blood-bright);
}

/* === STAT BOXES === */

.rw-enc-summary__stats[b-7y9p1ejm5b] {
    display: flex;
    gap: 0.35rem;
    padding: 0.4rem 0.6rem;
    flex-wrap: wrap;
}

.rw-enc-summary__stat[b-7y9p1ejm5b] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.3rem 0.5rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    min-width: 50px;
    flex: 1;
}

.rw-enc-summary__stat-val[b-7y9p1ejm5b] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
    color: var(--rw-text-bright);
    line-height: 1;
}

.rw-enc-summary__stat-label[b-7y9p1ejm5b] {
    font-family: var(--rw-font-sc);
    font-size: 0.42rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    margin-top: 0.1rem;
}

.rw-enc-summary__stat--xp[b-7y9p1ejm5b] {
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-enc-summary__stat--xp .rw-enc-summary__stat-val[b-7y9p1ejm5b] {
    color: var(--rw-gold-light);
}

.rw-enc-summary__stat--xp-each[b-7y9p1ejm5b] {
    border-color: rgba(196, 160, 64, 0.2);
}

.rw-enc-summary__stat--xp-each .rw-enc-summary__stat-val[b-7y9p1ejm5b] {
    color: var(--rw-gold);
}

/* === TABLE === */

.rw-enc-summary__table-wrap[b-7y9p1ejm5b] {
    padding: 0 0.4rem;
    overflow-x: auto;
}

.rw-enc-summary__table[b-7y9p1ejm5b] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
}

.rw-enc-summary__th[b-7y9p1ejm5b] {
    text-align: left;
    padding: 0.25rem 0.3rem;
    font-family: var(--rw-font-sc);
    font-size: 0.45rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    border-bottom: 1px solid var(--rw-border);
    white-space: nowrap;
}

.rw-enc-summary__th--num[b-7y9p1ejm5b] {
    text-align: right;
    width: 3rem;
}

.rw-enc-summary__row[b-7y9p1ejm5b] {
    transition: background var(--rw-transition);
}

.rw-enc-summary__row:hover[b-7y9p1ejm5b] {
    background: rgba(196, 160, 64, 0.02);
}

.rw-enc-summary__row--pc[b-7y9p1ejm5b] {
    border-left: 2px solid rgba(80, 176, 104, 0.4);
}

.rw-enc-summary__row--monster[b-7y9p1ejm5b] {
    border-left: 2px solid rgba(184, 58, 26, 0.3);
}

.rw-enc-summary__row--defeated[b-7y9p1ejm5b] {
    opacity: 0.55;
}

.rw-enc-summary__td[b-7y9p1ejm5b] {
    padding: 0.2rem 0.3rem;
    border-bottom: 1px solid rgba(74, 96, 88, 0.1);
    color: var(--rw-text);
}

.rw-enc-summary__td--name[b-7y9p1ejm5b] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    font-weight: 600;
    color: var(--rw-text-bright);
}

.rw-enc-summary__td--num[b-7y9p1ejm5b] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--rw-text-dim);
}

.rw-enc-summary__td--highlight[b-7y9p1ejm5b] {
    color: var(--rw-gold-light);
    font-weight: 600;
}

.rw-enc-summary__td--damage[b-7y9p1ejm5b] {
    color: var(--rw-blood-bright);
}

.rw-enc-summary__td--heal[b-7y9p1ejm5b] {
    color: var(--rw-verdant-bright);
}

.rw-enc-summary__td--kills[b-7y9p1ejm5b] {
    color: var(--rw-gold);
    font-weight: 700;
}

.rw-enc-summary__skull[b-7y9p1ejm5b] {
    font-size: 0.55rem;
}

.rw-enc-summary__defeated-name[b-7y9p1ejm5b] {
    text-decoration: line-through;
    opacity: 0.7;
}

/* === FOOTER === */

/* === CONDITIONS SECTION === */

.rw-enc-summary__conditions[b-7y9p1ejm5b] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    border-top: 1px solid var(--rw-border);
}

.rw-enc-summary__condition-stat[b-7y9p1ejm5b] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-text-dim);
}

.rw-enc-summary__condition-val[b-7y9p1ejm5b] {
    font-weight: 700;
    color: rgba(106, 74, 138, 0.9);
}

.rw-enc-summary__condition-stat--conc .rw-enc-summary__condition-val[b-7y9p1ejm5b] {
    color: var(--rw-arcane-cyan);
}

.rw-enc-summary__footer[b-7y9p1ejm5b] {
    padding: 0.4rem 0.6rem;
    border-top: 1px solid var(--rw-border);
    display: flex;
    justify-content: flex-end;
}

.rw-enc-summary__share[b-7y9p1ejm5b] {
    all: unset;
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.05em;
    color: var(--rw-gold-light);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.12) 0%, rgba(196, 160, 64, 0.04) 100%);
    border: 1px solid rgba(196, 160, 64, 0.3);
    padding: 0.25rem 0.6rem;
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-enc-summary__share:hover[b-7y9p1ejm5b] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2) 0%, rgba(196, 160, 64, 0.08) 100%);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}
/* /Components/Sessions/Gm/EndOfTurnChecklist.razor.rz.scp.css */
/* ============================================================
   EndOfTurnChecklist — Field Medic's Dispatch Board
   A compact checklist card that surfaces pending end-of-turn
   items: ongoing damage, condition saves, concentration, etc.
   ============================================================ */

.rw-eot[b-8kl1aqkal3] {
    background: linear-gradient(170deg,
        rgba(12, 28, 36, 0.96) 0%,
        rgba(8, 20, 28, 0.94) 100%);
    border: 1px solid rgba(218, 170, 50, 0.25);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    animation: rw-eot-enter-b-8kl1aqkal3 0.3s ease-out;
}

@keyframes rw-eot-enter-b-8kl1aqkal3 {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.rw-eot[b-8kl1aqkal3]::before {
    content: '';
    display: block;
    height: 2px;
    background: linear-gradient(90deg,
        transparent,
        rgba(218, 170, 50, 0.6) 20%,
        rgba(218, 170, 50, 0.9) 50%,
        rgba(218, 170, 50, 0.6) 80%,
        transparent);
}

.rw-eot--empty[b-8kl1aqkal3] {
    border-color: var(--rw-border);
}

.rw-eot--empty[b-8kl1aqkal3]::before {
    background: linear-gradient(90deg, transparent, var(--rw-border), transparent);
}

/* === HEADER === */

.rw-eot__header[b-8kl1aqkal3] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.08);
}

.rw-eot__title[b-8kl1aqkal3] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-eot__count[b-8kl1aqkal3] {
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    color: var(--rw-text-dim);
    margin-left: auto;
}

.rw-eot__dismiss-all[b-8kl1aqkal3] {
    all: unset;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    padding: 0 0.15rem;
    transition: color var(--rw-transition);
}

.rw-eot__dismiss-all:hover[b-8kl1aqkal3] {
    color: var(--rw-blood-bright);
}

/* === LIST === */

.rw-eot__list[b-8kl1aqkal3] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 0.25rem;
}

.rw-eot__item[b-8kl1aqkal3] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid transparent;
    transition: all var(--rw-transition);
    animation: rw-eot-item-in-b-8kl1aqkal3 0.25s ease-out;
}

@keyframes rw-eot-item-in-b-8kl1aqkal3 {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: translateX(0); }
}

.rw-eot__item--resolved[b-8kl1aqkal3] {
    opacity: 0.4;
    background: rgba(80, 176, 104, 0.03);
}

/* Type-specific left border accents */
.rw-eot__item--ongoing_damage[b-8kl1aqkal3] { border-left: 2px solid rgba(220, 80, 30, 0.6); }
.rw-eot__item--condition_save[b-8kl1aqkal3] { border-left: 2px solid rgba(58, 128, 168, 0.6); }
.rw-eot__item--concentration[b-8kl1aqkal3] { border-left: 2px solid rgba(106, 74, 138, 0.6); }
.rw-eot__item--readied_action[b-8kl1aqkal3] { border-left: 2px solid rgba(196, 160, 64, 0.5); }
.rw-eot__item--legendary_reset[b-8kl1aqkal3] { border-left: 2px solid rgba(196, 160, 64, 0.7); }

.rw-eot__icon[b-8kl1aqkal3] {
    font-size: 0.75rem;
    flex-shrink: 0;
    width: 1.1rem;
    text-align: center;
}

.rw-eot__body[b-8kl1aqkal3] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
}

.rw-eot__name[b-8kl1aqkal3] {
    font-family: var(--rw-font-body);
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-eot__desc[b-8kl1aqkal3] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-dim);
}

.rw-eot__dice[b-8kl1aqkal3] {
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    color: var(--rw-arcane-cyan);
    font-weight: 600;
}

/* === ACTION BUTTONS === */

.rw-eot__actions[b-8kl1aqkal3] {
    display: flex;
    gap: 0.15rem;
    flex-shrink: 0;
}

.rw-eot__btn[b-8kl1aqkal3] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: var(--rw-radius-sm);
    font-size: 0.6rem;
    transition: all var(--rw-transition);
}

.rw-eot__btn--resolve[b-8kl1aqkal3] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.08);
    border: 1px solid rgba(80, 176, 104, 0.2);
}

.rw-eot__btn--resolve:hover[b-8kl1aqkal3] {
    background: rgba(80, 176, 104, 0.2);
    box-shadow: 0 0 4px rgba(80, 176, 104, 0.3);
}

.rw-eot__btn--skip[b-8kl1aqkal3] {
    color: var(--rw-text-faint);
    background: rgba(0, 0, 0, 0.15);
    border: 1px solid var(--rw-border);
}

.rw-eot__btn--skip:hover[b-8kl1aqkal3] {
    color: var(--rw-text);
    border-color: var(--rw-text-faint);
}

.rw-eot__resolved[b-8kl1aqkal3] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
}

.rw-eot__done-mark[b-8kl1aqkal3] {
    font-size: 0.55rem;
    color: var(--rw-verdant-bright);
    flex-shrink: 0;
}

.rw-eot__result[b-8kl1aqkal3] {
    font-family: var(--rw-font-ui);
    font-size: 0.5rem;
    color: var(--rw-arcane-cyan);
    font-weight: 500;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-eot__clear[b-8kl1aqkal3] {
    padding: 0.4rem 0.5rem;
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-faint);
    font-style: italic;
}
/* /Components/Sessions/Gm/GmBattlefield.razor.rz.scp.css */
/* ============================================================
   GM Battlefield — Full-screen encounter hero area
   ============================================================ */

.gm-battlefield[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    position: relative;
    overflow: hidden;
    background: radial-gradient(
        ellipse 120% 80% at 50% 0%,
        #17334a 0%,
        #0c1722 45%,
        #071018 100%
    );
}

/* === EMPTY STATE === */
.gm-battlefield__empty[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    gap: 1rem;
    padding: 2rem;
    color: var(--rw-text-dim);
}

.gm-battlefield__empty-icon[b-zsb8suiwi6] {
    opacity: 0.4;
}

.gm-battlefield__empty-text[b-zsb8suiwi6] {
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    margin: 0;
}

/* === CONTROL BAR — Round counter + encounter actions === */
.gm-battlefield__control-bar[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.25rem;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
}

/* === WAR TABLE — Split-panel layout === */
.gm-battlefield__war-table[b-zsb8suiwi6] {
    display: flex;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* --- Left: Roster Panel --- */
.gm-battlefield__roster[b-zsb8suiwi6] {
    flex: 0 0 55%;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    overflow-y: auto;
    padding: 0.75rem;
    min-height: 0;
}

/* --- Right: Detail Panel --- */
.gm-battlefield__detail[b-zsb8suiwi6] {
    flex: 0 0 45%;
    overflow-y: auto;
    min-height: 0;
    border-left: 1px solid var(--rw-border);
    container-type: inline-size;
    container-name: detail-pane;
    background: linear-gradient(
        to bottom,
        rgba(15, 32, 40, 0.4) 0%,
        rgba(11, 24, 32, 0.2) 100%
    );
}

.gm-battlefield__no-combatants[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
}

/* Compact roster card grid */
.gm-battlefield__grid[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.5rem;
    align-items: start;
}

/* Staggered card entrance animation */
.gm-battlefield__grid > *[b-zsb8suiwi6] {
    animation: gm-card-enter-b-zsb8suiwi6 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.gm-battlefield__grid > *:nth-child(1)[b-zsb8suiwi6] { animation-delay: 0s; }
.gm-battlefield__grid > *:nth-child(2)[b-zsb8suiwi6] { animation-delay: 0.04s; }
.gm-battlefield__grid > *:nth-child(3)[b-zsb8suiwi6] { animation-delay: 0.08s; }
.gm-battlefield__grid > *:nth-child(4)[b-zsb8suiwi6] { animation-delay: 0.12s; }
.gm-battlefield__grid > *:nth-child(5)[b-zsb8suiwi6] { animation-delay: 0.16s; }
.gm-battlefield__grid > *:nth-child(6)[b-zsb8suiwi6] { animation-delay: 0.2s; }
.gm-battlefield__grid > *:nth-child(n+7)[b-zsb8suiwi6] { animation-delay: 0.24s; }

@keyframes gm-card-enter-b-zsb8suiwi6 {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* === DEPLOY COMBATANT PANEL (inside scrollable arena) === */

/* === CONTEXTUAL OVERLAYS === */
.gm-battlefield__overlay[b-zsb8suiwi6] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 60;
    width: min(90%, 480px);
    animation: gm-overlay-enter-b-zsb8suiwi6 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes gm-overlay-enter-b-zsb8suiwi6 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
    100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* ============================================================
   NARRATIVE MODE — No-encounter party overview
   ============================================================ */

.gm-battlefield__narrative[b-zsb8suiwi6] {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-bottom: 1rem;
    min-height: 0;
    max-height: 100%;
}

/* --- Scene Banner --- */
.gm-narrative__banner[b-zsb8suiwi6] {
    position: relative;
    width: 100%;
    height: 180px;
    overflow: hidden;
    flex-shrink: 0;
}

.gm-narrative__banner-img[b-zsb8suiwi6] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.5) saturate(0.8);
    transform: scale(1.1);
    transition: transform 0.6s ease;
}

.gm-narrative__banner:hover .gm-narrative__banner-img[b-zsb8suiwi6] {
    transform: scale(1.15);
}

.gm-narrative__banner-overlay[b-zsb8suiwi6] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        to bottom,
        rgba(11, 24, 32, 0.3) 0%,
        rgba(11, 24, 32, 0.85) 100%
    );
    text-align: center;
    padding: 1rem;
}

.gm-narrative__title[b-zsb8suiwi6] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-gold-light);
    margin: 0;
    text-shadow: 0 2px 12px rgba(196, 160, 64, 0.3);
    letter-spacing: 0.02em;
    animation: gm-narrative-title-glow-b-zsb8suiwi6 3s ease-in-out infinite;
}

@keyframes gm-narrative-title-glow-b-zsb8suiwi6 {
    0%, 100% { text-shadow: 0 2px 12px rgba(196, 160, 64, 0.3); }
    50% { text-shadow: 0 2px 20px rgba(196, 160, 64, 0.5), 0 0 40px rgba(196, 160, 64, 0.15); }
}

.gm-narrative__subtitle[b-zsb8suiwi6] {
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    color: var(--rw-text);
    margin: 0.25rem 0 0;
    opacity: 0.85;
}

/* --- Section Titles --- */
.gm-narrative__section-title[b-zsb8suiwi6] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0 0 0.5rem;
    padding-bottom: 0.3rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.15);
}

/* --- Party Characters Grid --- */
.gm-narrative__party[b-zsb8suiwi6] {
    padding: 0 1rem;
}

.gm-narrative__party-grid[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
}

.gm-narrative__char-card[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.75rem;
    background: linear-gradient(
        135deg,
        rgba(15, 32, 40, 0.85) 0%,
        rgba(20, 40, 50, 0.7) 100%
    );
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    animation: gm-narrative-card-in-b-zsb8suiwi6 0.4s ease-out both,
               gm-narrative-card-float-b-zsb8suiwi6 6s ease-in-out infinite;
}

.gm-narrative__char-card:nth-child(1)[b-zsb8suiwi6] { animation-delay: 0.05s, 0s; }
.gm-narrative__char-card:nth-child(2)[b-zsb8suiwi6] { animation-delay: 0.1s, 1.5s; }
.gm-narrative__char-card:nth-child(3)[b-zsb8suiwi6] { animation-delay: 0.15s, 3s; }
.gm-narrative__char-card:nth-child(4)[b-zsb8suiwi6] { animation-delay: 0.2s, 4.5s; }
.gm-narrative__char-card:nth-child(5)[b-zsb8suiwi6] { animation-delay: 0.25s, 1s; }
.gm-narrative__char-card:nth-child(6)[b-zsb8suiwi6] { animation-delay: 0.3s, 2.5s; }

@keyframes gm-narrative-card-in-b-zsb8suiwi6 {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes gm-narrative-card-float-b-zsb8suiwi6 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

.gm-narrative__char-card:hover[b-zsb8suiwi6] {
    border-color: rgba(80, 176, 104, 0.35);
    background: linear-gradient(
        135deg,
        rgba(20, 40, 48, 0.9) 0%,
        rgba(25, 50, 55, 0.8) 100%
    );
    box-shadow: 0 0 12px rgba(80, 176, 104, 0.08);
    transform: translateY(-2px);
}

.gm-narrative__char-portrait[b-zsb8suiwi6] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--rw-verdant);
    flex-shrink: 0;
    box-shadow: 0 0 10px rgba(61, 138, 85, 0.15);
}

.gm-narrative__char-portrait img[b-zsb8suiwi6] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gm-narrative__char-info[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.gm-narrative__char-name[b-zsb8suiwi6] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-text-bright);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gm-narrative__char-detail[b-zsb8suiwi6] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    line-height: 1.3;
}

/* --- Quick Actions --- */
.gm-narrative__actions[b-zsb8suiwi6] {
    padding: 0 1rem;
}

/* Hero encounter creation wrapper */
.gm-narrative__encounter-hero[b-zsb8suiwi6] {
    padding: 1.25rem 1rem;
    margin-bottom: 1rem;
    background: linear-gradient(
        135deg,
        rgba(196, 160, 64, 0.06) 0%,
        rgba(196, 160, 64, 0.02) 100%
    );
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-lg);
    box-shadow: 0 0 30px rgba(196, 160, 64, 0.06),
                inset 0 1px 0 rgba(196, 160, 64, 0.08);
    animation: encounter-hero-pulse-b-zsb8suiwi6 3s ease-in-out infinite;
}

@keyframes encounter-hero-pulse-b-zsb8suiwi6 {
    0%, 100% {
        border-color: rgba(196, 160, 64, 0.2);
        box-shadow: 0 0 30px rgba(196, 160, 64, 0.06),
                    inset 0 1px 0 rgba(196, 160, 64, 0.08);
    }
    50% {
        border-color: rgba(196, 160, 64, 0.4);
        box-shadow: 0 0 40px rgba(196, 160, 64, 0.12),
                    0 0 8px rgba(196, 160, 64, 0.08),
                    inset 0 1px 0 rgba(196, 160, 64, 0.12);
    }
}

.gm-narrative__placeholder-actions[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.5rem;
}

.gm-narrative__action-btn[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(15, 32, 40, 0.6);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    font-weight: 600;
    cursor: not-allowed;
    transition: all 0.2s ease;
    min-height: 52px;
    opacity: 0.55;
}

.gm-narrative__action-btn:not(:disabled):hover[b-zsb8suiwi6] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-text);
    opacity: 1;
}

.gm-narrative__action-icon[b-zsb8suiwi6] {
    width: 28px;
    height: 28px;
    object-fit: contain;
    filter: brightness(0.9) sepia(0.2) hue-rotate(15deg);
    flex-shrink: 0;
}

/* === RESPONSIVE === */

/* Below 900px: Detail panel becomes bottom sheet */
@media (max-width: 900px) {
    .gm-battlefield__war-table[b-zsb8suiwi6] {
        flex-direction: column;
        position: relative;
    }

    .gm-battlefield__roster[b-zsb8suiwi6] {
        flex: 1;
        width: 100%;
    }

    .gm-battlefield__detail[b-zsb8suiwi6] {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        max-height: 55vh;
        flex: none;
        border-left: none;
        border-top: 1px solid var(--rw-border-gold);
        border-radius: 20px 20px 0 0;
        background: rgba(11, 24, 32, 0.96);
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
        box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.5),
                    0 0 60px rgba(196, 160, 64, 0.04);
        z-index: 50;
        transform: translateY(0);
        transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        overflow-y: auto;
    }

    .gm-battlefield__grid[b-zsb8suiwi6] {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}

/* Mobile: single column */
@media (max-width: 600px) {
    .gm-battlefield__grid[b-zsb8suiwi6] {
        grid-template-columns: 1fr;
    }

    .gm-battlefield__detail[b-zsb8suiwi6] {
        max-height: 80vh;
    }

    .gm-narrative__banner[b-zsb8suiwi6] {
        height: 140px;
    }

    .gm-narrative__title[b-zsb8suiwi6] {
        font-size: 1.2rem;
    }

    .gm-narrative__party-grid[b-zsb8suiwi6] {
        grid-template-columns: 1fr;
    }

    .gm-narrative__placeholder-actions[b-zsb8suiwi6] {
        grid-template-columns: 1fr 1fr;
    }
}
/* /Components/Sessions/Gm/GmDashboard.razor.rz.scp.css */
/* ============================================================
   GM Dashboard — War Table Layout
   Flex column: Battlefield (hero) + Hotbar (fixed bottom)
   ============================================================ */

.gm-dashboard[b-kngcrhe5ux] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    position: relative;
    overflow: hidden;
    padding-bottom: 62px;
}

/* === NOTES DRAWER CONTENT === */
.gm-notes-content[b-kngcrhe5ux] {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 0.35rem;
}

.gm-notes-textarea[b-kngcrhe5ux] {
    flex: 1;
    width: 100%;
    resize: none;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    padding: 0.75rem;
    line-height: 1.5;
    min-height: 120px;
}

.gm-notes-textarea:focus[b-kngcrhe5ux] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.4);
}

.gm-notes-status[b-kngcrhe5ux] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
}

/* === LOG DRAWER CONTENT === */
.gm-log-content[b-kngcrhe5ux] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.gm-log-toolbar[b-kngcrhe5ux] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.5rem;
}

.gm-log-entry[b-kngcrhe5ux] {
    display: flex;
    gap: 0.5rem;
    padding: 0.2rem 0;
    font-size: 0.8rem;
    border-bottom: 1px solid rgba(26, 52, 48, 0.4);
}

.gm-log-time[b-kngcrhe5ux] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    flex-shrink: 0;
    font-size: 0.7rem;
    padding-top: 0.1rem;
}

.gm-log-message[b-kngcrhe5ux] {
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .gm-dashboard[b-kngcrhe5ux] {
        padding-bottom: 58px;
    }
}
/* /Components/Sessions/Gm/GmDrawer.razor.rz.scp.css */
/* ============================================================
   GM Drawer — Floating modal card above hotbar
   Appears as a centered panel within the battlefield region.
   ============================================================ */

/* Backdrop — scoped to dashboard container */
.gm-drawer-backdrop[b-sppp244mq9] {
    position: absolute;
    inset: 0;
    bottom: 0;
    z-index: 200;
    background: rgba(7, 14, 20, 0);
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
    pointer-events: none;
    transition: background 0.3s ease,
                backdrop-filter 0.3s ease,
                -webkit-backdrop-filter 0.3s ease;
}

.gm-drawer-backdrop--visible[b-sppp244mq9] {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    pointer-events: auto;
}

/* Drawer — floating modal card */
.gm-drawer[b-sppp244mq9] {
    position: absolute;
    left: 50%;
    bottom: 62px;
    z-index: 210;
    display: flex;
    flex-direction: column;
    width: min(92%, 620px);
    background: var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur-strong);
    -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-2xl);
    box-shadow:
        0 8px 50px rgba(0, 0, 0, 0.6),
        0 0 80px rgba(196, 160, 64, 0.04),
        inset 0 1px 0 rgba(196, 160, 64, 0.06);
    transform: translate(-50%, 20px) scale(0.96);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
                opacity 0.25s ease;
    overflow: hidden;
}

.gm-drawer--open[b-sppp244mq9] {
    transform: translate(-50%, 0) scale(1);
    opacity: 1;
    pointer-events: auto;
}

/* Top accent line on open drawer */
.gm-drawer--open[b-sppp244mq9]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-gold) 30%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 70%,
        transparent 100%);
    opacity: 0.6;
    z-index: 1;
}

/* Height variants */
.gm-drawer--tall[b-sppp244mq9] {
    height: min(55vh, calc(100% - 80px));
    max-height: min(55vh, calc(100% - 80px));
}

.gm-drawer--medium[b-sppp244mq9] {
    height: min(40vh, calc(100% - 80px));
    max-height: min(40vh, calc(100% - 80px));
}

/* Touch handle */
.gm-drawer-handle[b-sppp244mq9] {
    display: flex;
    justify-content: center;
    padding: 0.5rem 0 0.25rem;
    cursor: grab;
    flex-shrink: 0;
}

.gm-drawer-handle-pill[b-sppp244mq9] {
    width: 36px;
    height: 4px;
    border-radius: 2px;
    background: var(--rw-sage-muted);
    opacity: 0.4;
    transition: opacity var(--rw-transition), width var(--rw-transition);
}

.gm-drawer-handle:hover .gm-drawer-handle-pill[b-sppp244mq9] {
    opacity: 0.7;
    width: 48px;
}

/* Header */
.gm-drawer-header[b-sppp244mq9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.35rem 1rem 0.5rem;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.gm-drawer-title[b-sppp244mq9] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin: 0;
}

.gm-drawer-close[b-sppp244mq9] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: color var(--rw-transition), background var(--rw-transition);
}

.gm-drawer-close:hover[b-sppp244mq9] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.06);
}

/* Body — scrollable content area */
.gm-drawer-body[b-sppp244mq9] {
    flex: 1;
    overflow-y: auto;
    padding: 0.75rem 1rem;
    min-height: 0;
}

/* === RESPONSIVE === */

/* Tablet adjustments */
@media (max-width: 1024px) {
    .gm-drawer--tall[b-sppp244mq9] {
        height: min(58vh, calc(100% - 80px));
        max-height: min(58vh, calc(100% - 80px));
    }

    .gm-drawer--medium[b-sppp244mq9] {
        height: min(48vh, calc(100% - 80px));
        max-height: min(48vh, calc(100% - 80px));
    }
}

/* Mobile: wider and taller */
@media (max-width: 480px) {
    .gm-drawer[b-sppp244mq9] {
        width: min(96%, 620px);
        bottom: 58px;
    }

    .gm-drawer--tall[b-sppp244mq9],
    .gm-drawer--medium[b-sppp244mq9] {
        height: min(70vh, calc(100% - 70px));
        max-height: min(70vh, calc(100% - 70px));
    }
}
/* /Components/Sessions/Gm/GmHotbar.razor.rz.scp.css */
/* ============================================================
   GM Hotbar — Fixed bottom toolbar for drawer access
   ============================================================ */

.gm-hotbar[b-79oncpzl35] {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.35rem 0.75rem;
    background: rgba(11, 24, 32, 0.85);
    backdrop-filter: var(--rw-glass-blur-strong);
    -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    border-top: 1px solid var(--rw-glass-border);
    flex-shrink: 0;
    z-index: 220;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    animation: gm-hotbar-rise-b-79oncpzl35 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes gm-hotbar-rise-b-79oncpzl35 {
    from { opacity: 0; transform: translateY(100%); }
    to { opacity: 1; transform: translateY(0); }
}

/* Individual hotbar button */
.gm-hotbar-btn[b-79oncpzl35] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.5rem 1.25rem;
    min-width: 72px;
    min-height: 52px;
    border: 1px solid transparent;
    border-radius: var(--rw-radius-md);
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: color var(--rw-transition),
                background var(--rw-transition),
                border-color var(--rw-transition),
                box-shadow var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.gm-hotbar-btn:hover[b-79oncpzl35] {
    color: var(--rw-text);
    background: rgba(196, 160, 64, 0.06);
    border-color: rgba(196, 160, 64, 0.1);
}

.gm-hotbar-btn:active[b-79oncpzl35] {
    transform: scale(0.92);
    transition-duration: 0.08s;
}

/* Active state — drawer is open */
.gm-hotbar-btn--active[b-79oncpzl35] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.25);
    box-shadow: 0 -2px 12px rgba(196, 160, 64, 0.12);
    animation: rw-hotbar-toggle-glow 0.4s ease-out;
}

.gm-hotbar-btn--active[b-79oncpzl35]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 25%;
    right: 25%;
    height: 2px;
    background: var(--rw-gold);
    border-radius: 2px;
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.4);
}

/* Icon */
.gm-hotbar-icon[b-79oncpzl35] {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Label */
.gm-hotbar-label[b-79oncpzl35] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1;
}

/* Notification badge */
.gm-hotbar-badge[b-79oncpzl35] {
    position: absolute;
    top: 4px;
    right: 8px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--rw-blood-bright);
    color: #fff;
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.4);
}

/* Tablet: larger targets */
@media (max-width: 1024px) {
    .gm-hotbar-btn[b-79oncpzl35] {
        padding: 0.6rem 1rem;
        min-height: 56px;
    }

    .gm-hotbar-icon[b-79oncpzl35] {
        width: 24px;
        height: 24px;
    }
}

/* Mobile: hide labels, icon-only */
@media (max-width: 480px) {
    .gm-hotbar-label[b-79oncpzl35] {
        display: none;
    }

    .gm-hotbar-btn[b-79oncpzl35] {
        min-width: 56px;
        padding: 0.6rem 0.75rem;
    }
}
/* /Components/Sessions/Gm/GmInitiativePanel.razor.rz.scp.css */
/* ============================================================
   GmInitiativePanel — The Battle Map
   Composes TurnStrip, EncounterControls, and combatant card
   grid into the primary GM combat interface.
   ============================================================ */

.rw-gm-initiative[b-6bkra4ndsj] {
    overflow: hidden;
}

.rw-gm-initiative__header[b-6bkra4ndsj] {
    flex-shrink: 0;
}

.rw-gm-initiative__body[b-6bkra4ndsj] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.5rem;
    overflow-y: auto;
    min-height: 0;
}

/* === EMPTY STATE === */

.rw-gm-initiative__empty[b-6bkra4ndsj] {
    padding: 1.5rem 1rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-style: italic;
}

/* === CARD GRID === */

.rw-gm-initiative__cards[b-6bkra4ndsj] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* === ADD COMBATANT === */

.rw-gm-initiative__add[b-6bkra4ndsj] {
    margin-top: auto;
    padding-top: 0.35rem;
    border-top: 1px solid var(--rw-border);
}

.rw-add-trigger[b-6bkra4ndsj] {
    all: unset;
    cursor: pointer;
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-sage-muted);
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-add-trigger:hover[b-6bkra4ndsj] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.04);
}

/* === ADD COMBATANT FORM === */

.rw-add-combatant-form[b-6bkra4ndsj] {
    display: flex;
    align-items: flex-end;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.rw-add-field[b-6bkra4ndsj] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.rw-add-field--check[b-6bkra4ndsj] {
    justify-content: flex-end;
    padding-bottom: 0.15rem;
}

.rw-add-label[b-6bkra4ndsj] {
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-add-input[b-6bkra4ndsj] {
    height: 28px;
    padding: 0 0.4rem;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    outline: none;
    transition: border-color var(--rw-transition);
}

.rw-add-input:focus[b-6bkra4ndsj] {
    border-color: var(--rw-gold);
}

.rw-add-input--name[b-6bkra4ndsj] {
    width: 120px;
}

.rw-add-input--num[b-6bkra4ndsj] {
    width: 50px;
    text-align: center;
    -moz-appearance: textfield;
}

.rw-add-input--num[b-6bkra4ndsj]::-webkit-outer-spin-button,
.rw-add-input--num[b-6bkra4ndsj]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

.rw-add-checkbox[b-6bkra4ndsj] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text);
    display: flex;
    align-items: center;
    gap: 0.2rem;
    cursor: pointer;
}

.rw-add-btn[b-6bkra4ndsj] {
    all: unset;
    cursor: pointer;
    height: 28px;
    padding: 0 0.6rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: all var(--rw-transition);
    border: 1px solid transparent;
}

.rw-add-btn:disabled[b-6bkra4ndsj] {
    opacity: 0.35;
    cursor: not-allowed;
}

.rw-add-btn--submit[b-6bkra4ndsj] {
    background: rgba(196, 160, 64, 0.12);
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
}

.rw-add-btn--submit:hover:not(:disabled)[b-6bkra4ndsj] {
    background: rgba(196, 160, 64, 0.22);
}

.rw-add-btn--cancel[b-6bkra4ndsj] {
    color: var(--rw-text-dim);
}

.rw-add-btn--cancel:hover[b-6bkra4ndsj] {
    color: var(--rw-text);
}

/* === ROSTER SECTION === */

.rw-roster-section[b-6bkra4ndsj] {
    margin-top: 0.35rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.rw-roster-label[b-6bkra4ndsj] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    flex-shrink: 0;
}

.rw-roster-buttons[b-6bkra4ndsj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
}

.rw-roster-btn[b-6bkra4ndsj] {
    all: unset;
    cursor: pointer;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-verdant-bright);
    border: 1px solid var(--rw-border-verdant);
    background: rgba(61, 138, 85, 0.06);
    transition: all var(--rw-transition);
}

.rw-roster-btn:hover:not(:disabled)[b-6bkra4ndsj] {
    background: rgba(61, 138, 85, 0.15);
    border-color: var(--rw-verdant);
}

.rw-roster-btn--added[b-6bkra4ndsj],
.rw-roster-btn:disabled[b-6bkra4ndsj] {
    opacity: 0.35;
    cursor: not-allowed;
    color: var(--rw-text-faint);
    border-color: var(--rw-border);
}
/* /Components/Sessions/Gm/GmMonsterCard.razor.rz.scp.css */
/* ============================================================
   GmMonsterCard — Bestiary War-Plate
   A dense, information-rich card modeled after a brass-framed
   field dossier pinned to the war table. Each monster is an
   intelligence brief: stats, defenses, actions at a glance.
   ============================================================ */

.rw-monster-card[b-6l6mr3aawr] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                padding 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow: hidden;
}

/* Top decorative accent line */
.rw-monster-card[b-6l6mr3aawr]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-blood) 20%,
        var(--rw-blood-bright) 50%,
        var(--rw-blood) 80%,
        transparent 100%);
    opacity: 0.6;
    border-radius: var(--rw-radius-xl) var(--rw-radius-xl) 0 0;
}

/* === SPOTLIGHT MODE === */

.rw-monster-card--spotlight[b-6l6mr3aawr] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow:
        0 0 20px rgba(196, 160, 64, 0.2),
        0 0 50px rgba(196, 160, 64, 0.08),
        0 8px 32px rgba(0, 0, 0, 0.4);
    outline: 1px solid rgba(196, 160, 64, 0.15);
    outline-offset: 2px;
    z-index: 2;
}

.rw-monster-card--spotlight[b-6l6mr3aawr]::before {
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-gold) 20%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 80%,
        transparent 100%);
    opacity: 1;
    height: 3px;
}

.rw-monster-card:hover:not(.rw-monster-card--dead):not(.rw-monster-card--spotlight)[b-6l6mr3aawr] {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 12px rgba(196, 160, 64, 0.06);
}

.rw-monster-card--dim[b-6l6mr3aawr] {
    opacity: 0.55;
    transform: scale(0.99);
}

.rw-monster-card--dim:hover[b-6l6mr3aawr] {
    opacity: 0.85;
}

/* === BLOODIED — Amber pulse border === */

.rw-monster-card--bloodied[b-6l6mr3aawr] {
    border-color: rgba(218, 170, 50, 0.5);
    animation: rw-card-bloodied-pulse-b-6l6mr3aawr 2.5s ease-in-out infinite;
}

@keyframes rw-card-bloodied-pulse-b-6l6mr3aawr {
    0%, 100% { box-shadow: var(--rw-shadow), 0 0 8px rgba(218, 170, 50, 0.1); }
    50% { box-shadow: var(--rw-shadow), 0 0 16px rgba(218, 170, 50, 0.25); }
}

/* === DEATH — Grayscale shrink === */

.rw-monster-card--dead[b-6l6mr3aawr] {
    filter: grayscale(0.7) brightness(0.6);
    transform: scale(0.96);
    opacity: 0.5;
    border-color: rgba(64, 92, 80, 0.3);
}

.rw-monster-card--dead[b-6l6mr3aawr]::before {
    opacity: 0;
}

/* === HEADER === */

.rw-monster-card__header[b-6l6mr3aawr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Portrait thumbnail */
.rw-monster-card__portrait[b-6l6mr3aawr] {
    position: relative;
    width: 48px;
    height: 48px;
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    border: 2px solid var(--rw-blood);
    flex-shrink: 0;
    box-shadow: 0 0 12px rgba(139, 37, 0, 0.25);
}

.rw-monster-card__portrait img[b-6l6mr3aawr] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-monster-card__portrait[b-6l6mr3aawr]  .rw-combatant-state {
    position: absolute;
    bottom: -2px;
    right: -2px;
    z-index: 1;
}

.rw-monster-card__identity[b-6l6mr3aawr] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.rw-monster-card__name[b-6l6mr3aawr] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
    color: var(--rw-text-bright);
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Compendium / stat block button */
.rw-monster-card__compendium-btn[b-6l6mr3aawr] {
    all: unset;
    cursor: pointer;
    font-size: 0.9rem;
    padding: 0.2rem;
    border-radius: var(--rw-radius-sm);
    transition: all 0.15s ease;
    flex-shrink: 0;
    opacity: 0.6;
    align-self: center;
}

.rw-monster-card__compendium-btn:hover[b-6l6mr3aawr] {
    opacity: 1;
    transform: scale(1.1);
    filter: drop-shadow(0 0 4px rgba(196, 160, 64, 0.3));
}

.rw-monster-card__label[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-dim);
    margin-left: 0.3rem;
}

.rw-monster-card__concentration[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-arcane-cyan);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-monster-card__remove[b-6l6mr3aawr] {
    all: unset;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    padding: 0 0.2rem;
    border-radius: var(--rw-radius-sm);
    transition: color var(--rw-transition);
    flex-shrink: 0;
}

.rw-monster-card__remove:hover[b-6l6mr3aawr] {
    color: var(--rw-blood-bright);
}

/* === HP ROW === */

.rw-monster-card__hp-row[b-6l6mr3aawr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-monster-card__hp-bar-wrap[b-6l6mr3aawr] {
    flex: 1;
    min-width: 0;
}

.rw-monster-card__hp-controls[b-6l6mr3aawr] {
    flex-shrink: 0;
}

.rw-hp-input-group[b-6l6mr3aawr] {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
    background: rgba(0, 0, 0, 0.3);
}

.rw-hp-btn[b-6l6mr3aawr] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    font-size: 0.75rem;
    font-weight: 700;
    transition: all var(--rw-transition);
}

.rw-hp-btn--damage[b-6l6mr3aawr] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
}

.rw-hp-btn--damage:hover[b-6l6mr3aawr] {
    background: rgba(184, 58, 26, 0.25);
    color: #ff6b4a;
}

.rw-hp-btn--heal[b-6l6mr3aawr] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.08);
}

.rw-hp-btn--heal:hover[b-6l6mr3aawr] {
    background: rgba(80, 176, 104, 0.25);
    color: #7dff9e;
}

.rw-hp-input[b-6l6mr3aawr] {
    width: 34px;
    height: 22px;
    border: none;
    border-left: 1px solid var(--rw-border);
    border-right: 1px solid var(--rw-border);
    background: rgba(0, 0, 0, 0.2);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-align: center;
    outline: none;
    -moz-appearance: textfield;
}

.rw-hp-input[b-6l6mr3aawr]::-webkit-outer-spin-button,
.rw-hp-input[b-6l6mr3aawr]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* === STAT BADGES === */

.rw-monster-card__stats[b-6l6mr3aawr] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.rw-stat-badge[b-6l6mr3aawr] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.5rem;
    border-radius: var(--rw-radius-xl);
    border: 1px solid var(--rw-border);
    background: rgba(0, 0, 0, 0.25);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text);
}

.rw-stat-badge__icon[b-6l6mr3aawr] {
    font-size: 0.7rem;
    line-height: 1;
}

.rw-stat-badge__val[b-6l6mr3aawr] {
    font-weight: 700;
}

.rw-stat-badge--ac[b-6l6mr3aawr] {
    border-color: rgba(58, 128, 168, 0.3);
    background: rgba(58, 128, 168, 0.08);
    color: var(--rw-arcane-cyan);
}

.rw-stat-badge--init[b-6l6mr3aawr] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-gold-light);
}

/* === DEFENSES === */

.rw-monster-card__defenses[b-6l6mr3aawr] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-defense-row[b-6l6mr3aawr] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    flex-wrap: wrap;
}

.rw-defense-label[b-6l6mr3aawr] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 0.05rem 0.3rem;
    border-radius: 2px;
    flex-shrink: 0;
    color: var(--rw-text);
    font-weight: 600;
}

.rw-defense-tag[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    padding: 0.02rem 0.25rem;
    border-radius: 2px;
    white-space: nowrap;
}

/* Immune — steel blue */
.rw-defense--immune[b-6l6mr3aawr] {
    background: rgba(58, 128, 168, 0.15);
    border: 1px solid rgba(58, 128, 168, 0.3);
    color: var(--rw-arcane-cyan);
}

/* Resist — iron green */
.rw-defense--resist[b-6l6mr3aawr] {
    background: rgba(74, 96, 88, 0.2);
    border: 1px solid rgba(74, 96, 88, 0.35);
    color: var(--rw-iron-light);
}

/* Vulnerable — blood red */
.rw-defense--vuln[b-6l6mr3aawr] {
    background: rgba(184, 58, 26, 0.12);
    border: 1px solid rgba(184, 58, 26, 0.3);
    color: var(--rw-blood-bright);
}

/* Condition immune — arcane purple */
.rw-defense--cond-immune[b-6l6mr3aawr] {
    background: rgba(106, 74, 138, 0.12);
    border: 1px solid rgba(106, 74, 138, 0.3);
    color: #9a7abe;
}

/* === CONDITIONS === */

.rw-monster-card__conditions[b-6l6mr3aawr] {
    min-height: 0;
}

/* === LEGENDARY PIPS === */

.rw-monster-card__legendary[b-6l6mr3aawr] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0;
    border-top: 1px solid var(--rw-border);
}

.rw-legendary-label[b-6l6mr3aawr] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    flex-shrink: 0;
    font-weight: 600;
}

.rw-legendary-pips[b-6l6mr3aawr] {
    display: flex;
    gap: 0.2rem;
}

.rw-legendary-pip[b-6l6mr3aawr] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1.5px solid var(--rw-gold);
    background: transparent;
    transition: all var(--rw-transition);
}

.rw-legendary-pip--filled[b-6l6mr3aawr] {
    background: var(--rw-gold);
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.5);
}

.rw-legendary-count[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-dim);
    margin-left: auto;
}

/* === QUICK ACTIONS === */

.rw-monster-card__actions[b-6l6mr3aawr] {
    border-top: 1px solid var(--rw-border);
    padding-top: 0.35rem;
}

.rw-actions-label[b-6l6mr3aawr] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
    margin-bottom: 0.3rem;
    font-weight: 600;
}

.rw-actions-label--legendary[b-6l6mr3aawr] {
    color: var(--rw-gold);
}

.rw-actions-list[b-6l6mr3aawr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.rw-action-chip[b-6l6mr3aawr] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    cursor: pointer;
    transition: all var(--rw-transition);
    flex-wrap: wrap;
}

.rw-action-chip:hover[b-6l6mr3aawr] {
    background: rgba(196, 160, 64, 0.06);
    border-color: var(--rw-border-gold);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.1);
}

.rw-action-chip__name[b-6l6mr3aawr] {
    font-family: var(--rw-font-body);
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--rw-text-bright);
}

.rw-action-chip__bonus[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-weight: 700;
    color: var(--rw-gold-light);
}

.rw-action-chip__dice[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-arcane-cyan);
}

.rw-action-chip__type[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    color: var(--rw-text-dim);
    text-transform: lowercase;
}

.rw-action-chip__save[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    font-weight: 600;
    color: var(--rw-arcane-purple);
    background: rgba(106, 74, 138, 0.1);
    padding: 0 0.2rem;
    border-radius: 2px;
}

.rw-action-chip__recharge[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 0.5rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* === Lair Actions Toggle === */

.rw-monster-card__lair-toggle[b-6l6mr3aawr] {
    padding: 0.15rem 0;
}

.rw-lair-check[b-6l6mr3aawr] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(210, 130, 40, 0.7);
}

.rw-lair-check input[type="checkbox"][b-6l6mr3aawr] {
    accent-color: rgba(210, 130, 40, 0.8);
    width: 12px;
    height: 12px;
    cursor: pointer;
}

/* ============================================================
   HERO MODE — Active combatant expanded layout
   When IsHero is true, the card spans the full grid width
   with enlarged portrait, stat boxes, and prominent actions.
   ============================================================ */

.rw-monster-card--spotlight[b-6l6mr3aawr] {
    grid-column: 1 / -1;
    padding: 1.25rem;
}

.rw-monster-card--spotlight .rw-monster-card__header[b-6l6mr3aawr] {
    gap: 0.75rem;
    align-items: flex-start;
}

.rw-monster-card--spotlight .rw-monster-card__identity[b-6l6mr3aawr] {
    padding-top: 0.15rem;
}

.rw-monster-card--spotlight .rw-monster-card__hero-stats[b-6l6mr3aawr] {
    align-self: center;
}

/* Hero portrait — larger rounded square */
.rw-monster-card--spotlight .rw-monster-card__portrait[b-6l6mr3aawr] {
    width: 80px;
    height: 80px;
    border-radius: var(--rw-radius-xl);
    border-width: 3px;
}

/* Hero name — large display */
.rw-monster-card--spotlight .rw-monster-card__name[b-6l6mr3aawr] {
    font-size: 1.6rem;
    white-space: normal;
    line-height: 1.15;
}

/* Hero label — small-caps marker */
.rw-monster-card__hero-label[b-6l6mr3aawr] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rw-gold);
    line-height: 1;
    margin-bottom: 0.1rem;
}

/* Hero badges row — conditions inline with identity */
.rw-monster-card__hero-badges[b-6l6mr3aawr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.35rem;
}

/* Hero stat boxes — AC, Speed as rounded panels */
.rw-monster-card__hero-stats[b-6l6mr3aawr] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    margin-left: auto;
}

.rw-hero-stat-box[b-6l6mr3aawr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.5rem 0.75rem;
    min-width: 72px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
}

.rw-hero-stat-box__label[b-6l6mr3aawr] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    line-height: 1;
}

.rw-hero-stat-box__val[b-6l6mr3aawr] {
    font-family: var(--rw-font-ui);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--rw-arcane-cyan);
    line-height: 1;
}

.rw-hero-stat-box--init[b-6l6mr3aawr] {
    border-color: rgba(196, 160, 64, 0.25);
}

.rw-hero-stat-box--init .rw-hero-stat-box__val[b-6l6mr3aawr] {
    color: var(--rw-gold-light);
}

/* Hero HP row — taller bar, larger controls */
.rw-monster-card--spotlight .rw-monster-card__hp-row[b-6l6mr3aawr] {
    gap: 0.6rem;
}

.rw-monster-card--spotlight[b-6l6mr3aawr]  .rw-hp-bar {
    height: 26px;
}

.rw-monster-card--spotlight .rw-hp-input-group[b-6l6mr3aawr] {
    border-radius: var(--rw-radius-md);
}

.rw-monster-card--spotlight .rw-hp-btn[b-6l6mr3aawr] {
    width: 30px;
    height: 30px;
    font-size: 0.9rem;
}

.rw-monster-card--spotlight .rw-hp-input[b-6l6mr3aawr] {
    width: 48px;
    height: 30px;
    font-size: 0.8rem;
}

/* Bloodied threshold warning */
.rw-monster-card__bloodied-warn[b-6l6mr3aawr] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin-top: 0.2rem;
    animation: rw-bloodied-warn-pulse-b-6l6mr3aawr 2s ease-in-out infinite;
}

@keyframes rw-bloodied-warn-pulse-b-6l6mr3aawr {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* Hero actions — wider grid layout */
.rw-monster-card--spotlight .rw-actions-list[b-6l6mr3aawr] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.5rem;
}

/* Hero legendary pips — larger */
.rw-monster-card--spotlight .rw-legendary-pip[b-6l6mr3aawr] {
    width: 14px;
    height: 14px;
}

.rw-monster-card--spotlight .rw-legendary-label[b-6l6mr3aawr] {
    font-size: 0.65rem;
}

/* === NON-ACTIVE COMPACT MODE === */

.rw-monster-card--dim .rw-monster-card__defenses[b-6l6mr3aawr],
.rw-monster-card--dim .rw-monster-card__actions[b-6l6mr3aawr],
.rw-monster-card--dim .rw-monster-card__legendary[b-6l6mr3aawr],
.rw-monster-card--dim .rw-monster-card__lair-toggle[b-6l6mr3aawr] {
    display: none;
}
/* /Components/Sessions/Gm/GmPcCard.razor.rz.scp.css */
/* ============================================================
   GmPcCard — Player Character Field Dossier
   Cleaner than the monster card — a hero's brief pinned
   with a verdant wax seal rather than a blood-red one.
   ============================================================ */

.rw-pc-card[b-fbp9lmfdx4] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                padding 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow: hidden;
}

.rw-pc-card:hover[b-fbp9lmfdx4] {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 12px rgba(80, 176, 104, 0.06);
}

/* Top accent — verdant instead of blood */
.rw-pc-card[b-fbp9lmfdx4]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-verdant) 20%,
        var(--rw-verdant-bright) 50%,
        var(--rw-verdant) 80%,
        transparent 100%);
    opacity: 0.6;
    border-radius: var(--rw-radius-xl) var(--rw-radius-xl) 0 0;
}

/* === SPOTLIGHT === */

.rw-pc-card--spotlight[b-fbp9lmfdx4] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow:
        0 0 20px rgba(196, 160, 64, 0.2),
        0 0 50px rgba(196, 160, 64, 0.08),
        0 8px 32px rgba(0, 0, 0, 0.4);
    outline: 1px solid rgba(196, 160, 64, 0.15);
    outline-offset: 2px;
    z-index: 2;
}

.rw-pc-card--spotlight[b-fbp9lmfdx4]::before {
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-gold) 20%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 80%,
        transparent 100%);
    opacity: 1;
    height: 3px;
}

.rw-pc-card--dim[b-fbp9lmfdx4] {
    opacity: 0.55;
    transform: scale(0.99);
}

.rw-pc-card--dim:hover[b-fbp9lmfdx4] {
    opacity: 0.85;
}

/* === BLOODIED === */

.rw-pc-card--bloodied[b-fbp9lmfdx4] {
    border-color: rgba(218, 170, 50, 0.5);
    animation: rw-pc-bloodied-pulse-b-fbp9lmfdx4 2.5s ease-in-out infinite;
}

@keyframes rw-pc-bloodied-pulse-b-fbp9lmfdx4 {
    0%, 100% { box-shadow: var(--rw-shadow), 0 0 8px rgba(218, 170, 50, 0.1); }
    50% { box-shadow: var(--rw-shadow), 0 0 16px rgba(218, 170, 50, 0.25); }
}

/* === DEATH === */

.rw-pc-card--dead[b-fbp9lmfdx4] {
    filter: grayscale(0.7) brightness(0.6);
    transform: scale(0.96);
    opacity: 0.5;
    border-color: rgba(64, 92, 80, 0.3);
}

.rw-pc-card--dead[b-fbp9lmfdx4]::before {
    opacity: 0;
}

/* === HEADER === */

.rw-pc-card__header[b-fbp9lmfdx4] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Portrait thumbnail */
.rw-pc-card__portrait[b-fbp9lmfdx4] {
    position: relative;
    width: 48px;
    height: 48px;
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    border: 2px solid var(--rw-verdant);
    flex-shrink: 0;
    box-shadow: 0 0 12px rgba(61, 138, 85, 0.25);
}

.rw-pc-card__portrait img[b-fbp9lmfdx4] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-pc-card__portrait[b-fbp9lmfdx4]  .rw-combatant-state {
    position: absolute;
    bottom: -2px;
    right: -2px;
    z-index: 1;
}

.rw-pc-card__identity[b-fbp9lmfdx4] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.rw-pc-card__name[b-fbp9lmfdx4] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
    color: var(--rw-verdant-bright);
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-pc-card__concentration[b-fbp9lmfdx4] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-arcane-cyan);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Compendium / stat block button */
.rw-pc-card__compendium-btn[b-fbp9lmfdx4] {
    all: unset;
    cursor: pointer;
    font-size: 0.9rem;
    padding: 0.2rem;
    border-radius: var(--rw-radius-sm);
    transition: all 0.15s ease;
    flex-shrink: 0;
    opacity: 0.6;
    align-self: center;
}

.rw-pc-card__compendium-btn:hover[b-fbp9lmfdx4] {
    opacity: 1;
    transform: scale(1.1);
    filter: drop-shadow(0 0 4px rgba(196, 160, 64, 0.3));
}

.rw-pc-card__remove[b-fbp9lmfdx4] {
    all: unset;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    padding: 0 0.2rem;
    border-radius: var(--rw-radius-sm);
    transition: color var(--rw-transition);
    flex-shrink: 0;
}

.rw-pc-card__remove:hover[b-fbp9lmfdx4] {
    color: var(--rw-blood-bright);
}

/* === HP ROW — reuse monster card HP styles === */

.rw-pc-card__hp-row[b-fbp9lmfdx4] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-pc-card__hp-bar-wrap[b-fbp9lmfdx4] {
    flex: 1;
    min-width: 0;
}

.rw-pc-card__hp-controls[b-fbp9lmfdx4] {
    flex-shrink: 0;
}

/* Reuse the .rw-hp-input-group / .rw-hp-btn / .rw-hp-input
   from GmMonsterCard. They share the same unscoped class names
   because Blazor CSS isolation applies to the owning component.
   Duplicate them here so the PC card is self-contained. */

.rw-hp-input-group[b-fbp9lmfdx4] {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
    background: rgba(0, 0, 0, 0.3);
}

.rw-hp-btn[b-fbp9lmfdx4] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    font-size: 0.75rem;
    font-weight: 700;
    transition: all var(--rw-transition);
}

.rw-hp-btn--damage[b-fbp9lmfdx4] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
}

.rw-hp-btn--damage:hover[b-fbp9lmfdx4] {
    background: rgba(184, 58, 26, 0.25);
}

.rw-hp-btn--heal[b-fbp9lmfdx4] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.08);
}

.rw-hp-btn--heal:hover[b-fbp9lmfdx4] {
    background: rgba(80, 176, 104, 0.25);
}

.rw-hp-input[b-fbp9lmfdx4] {
    width: 34px;
    height: 22px;
    border: none;
    border-left: 1px solid var(--rw-border);
    border-right: 1px solid var(--rw-border);
    background: rgba(0, 0, 0, 0.2);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-align: center;
    outline: none;
    -moz-appearance: textfield;
}

.rw-hp-input[b-fbp9lmfdx4]::-webkit-outer-spin-button,
.rw-hp-input[b-fbp9lmfdx4]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* === STAT BADGES === */

.rw-pc-card__stats[b-fbp9lmfdx4] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.rw-stat-badge[b-fbp9lmfdx4] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.5rem;
    border-radius: var(--rw-radius-xl);
    border: 1px solid var(--rw-border);
    background: rgba(0, 0, 0, 0.25);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text);
}

.rw-stat-badge__icon[b-fbp9lmfdx4] {
    font-size: 0.7rem;
    line-height: 1;
}

.rw-stat-badge__val[b-fbp9lmfdx4] {
    font-weight: 700;
}

.rw-stat-badge--ac[b-fbp9lmfdx4] {
    border-color: rgba(58, 128, 168, 0.3);
    background: rgba(58, 128, 168, 0.08);
    color: var(--rw-arcane-cyan);
}

.rw-stat-badge--init[b-fbp9lmfdx4] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-gold-light);
}

/* === CONDITIONS === */

.rw-pc-card__conditions[b-fbp9lmfdx4] {
    min-height: 0;
}

/* === DEATH SAVES === */

.rw-pc-card__death-saves[b-fbp9lmfdx4] {
    border-top: 1px solid var(--rw-border);
    padding-top: 0.3rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-death-label[b-fbp9lmfdx4] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    flex-shrink: 0;
}

.rw-death-pips[b-fbp9lmfdx4] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rw-death-row[b-fbp9lmfdx4] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
}

.rw-death-row-label[b-fbp9lmfdx4] {
    font-size: 0.6rem;
    width: 12px;
    text-align: center;
    flex-shrink: 0;
}

.rw-death-row-label--success[b-fbp9lmfdx4] {
    color: var(--rw-verdant-bright);
}

.rw-death-row-label--failure[b-fbp9lmfdx4] {
    color: var(--rw-blood-bright);
}

.rw-death-pip[b-fbp9lmfdx4] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1.5px solid var(--rw-border);
    background: transparent;
    transition: all var(--rw-transition);
}

.rw-death-pip--success[b-fbp9lmfdx4] {
    background: var(--rw-verdant-bright);
    border-color: var(--rw-verdant-bright);
    box-shadow: 0 0 4px rgba(80, 176, 104, 0.4);
}

.rw-death-pip--failure[b-fbp9lmfdx4] {
    background: var(--rw-blood-bright);
    border-color: var(--rw-blood-bright);
    box-shadow: 0 0 4px rgba(184, 58, 26, 0.4);
}

/* === RESOURCES (read-only) === */

.rw-pc-card__resources[b-fbp9lmfdx4] {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    padding: 0.2rem 0;
    border-top: 1px solid var(--rw-border);
}

/* ============================================================
   HERO MODE — Active PC expanded layout
   Mirrors the monster card hero treatment with verdant accent.
   ============================================================ */

.rw-pc-card--spotlight[b-fbp9lmfdx4] {
    grid-column: 1 / -1;
    padding: 1.25rem;
}

.rw-pc-card--spotlight:hover[b-fbp9lmfdx4] {
    transform: none;
}

.rw-pc-card--spotlight .rw-pc-card__header[b-fbp9lmfdx4] {
    gap: 0.75rem;
    align-items: flex-start;
}

.rw-pc-card--spotlight .rw-pc-card__identity[b-fbp9lmfdx4] {
    padding-top: 0.15rem;
}

.rw-pc-card--spotlight .rw-pc-card__hero-stats[b-fbp9lmfdx4] {
    align-self: center;
}

/* Hero portrait — larger */
.rw-pc-card--spotlight .rw-pc-card__portrait[b-fbp9lmfdx4] {
    width: 80px;
    height: 80px;
    border-radius: var(--rw-radius-xl);
    border-width: 3px;
}

/* Hero name — large display */
.rw-pc-card--spotlight .rw-pc-card__name[b-fbp9lmfdx4] {
    font-size: 1.6rem;
    white-space: normal;
    line-height: 1.15;
}

/* Hero label */
.rw-pc-card__hero-label[b-fbp9lmfdx4] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rw-gold);
    line-height: 1;
    margin-bottom: 0.1rem;
}

/* Hero badges row */
.rw-pc-card__hero-badges[b-fbp9lmfdx4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.35rem;
}

/* Hero stat boxes */
.rw-pc-card__hero-stats[b-fbp9lmfdx4] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    margin-left: auto;
}

.rw-hero-stat-box[b-fbp9lmfdx4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.5rem 0.75rem;
    min-width: 72px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
}

.rw-hero-stat-box__label[b-fbp9lmfdx4] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    line-height: 1;
}

.rw-hero-stat-box__val[b-fbp9lmfdx4] {
    font-family: var(--rw-font-ui);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--rw-arcane-cyan);
    line-height: 1;
}

.rw-hero-stat-box--init[b-fbp9lmfdx4] {
    border-color: rgba(196, 160, 64, 0.25);
}

.rw-hero-stat-box--init .rw-hero-stat-box__val[b-fbp9lmfdx4] {
    color: var(--rw-gold-light);
}

/* Hero HP — taller bar, larger controls */
.rw-pc-card--spotlight .rw-pc-card__hp-row[b-fbp9lmfdx4] {
    gap: 0.6rem;
}

.rw-pc-card--spotlight[b-fbp9lmfdx4]  .rw-hp-bar {
    height: 26px;
}

.rw-pc-card--spotlight .rw-hp-input-group[b-fbp9lmfdx4] {
    border-radius: var(--rw-radius-md);
}

.rw-pc-card--spotlight .rw-hp-btn[b-fbp9lmfdx4] {
    width: 30px;
    height: 30px;
    font-size: 0.9rem;
}

.rw-pc-card--spotlight .rw-hp-input[b-fbp9lmfdx4] {
    width: 48px;
    height: 30px;
    font-size: 0.8rem;
}

/* Bloodied threshold warning */
.rw-pc-card__bloodied-warn[b-fbp9lmfdx4] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin-top: 0.2rem;
    animation: rw-pc-bloodied-warn-pulse-b-fbp9lmfdx4 2s ease-in-out infinite;
}

@keyframes rw-pc-bloodied-warn-pulse-b-fbp9lmfdx4 {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* Hero death saves — larger */
.rw-pc-card--spotlight .rw-death-pip[b-fbp9lmfdx4] {
    width: 14px;
    height: 14px;
}

/* === NON-ACTIVE COMPACT MODE === */

.rw-pc-card--dim .rw-pc-card__resources[b-fbp9lmfdx4] {
    display: none;
}
/* /Components/Sessions/Gm/GmRosterCard.razor.rz.scp.css */
/* ============================================================
   GmRosterCard — Ultra-compact combatant card for roster panel
   Target height: ~56-64px. Entire card is the tap target.
   ============================================================ */

.rw-roster-card[b-642kbxm11b] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    min-height: 56px;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md);
    background: linear-gradient(
        135deg,
        rgba(15, 32, 40, 0.7) 0%,
        rgba(11, 24, 32, 0.5) 100%
    );
    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    box-sizing: border-box;
    width: 100%;
    text-align: left;
}

.rw-roster-card:hover[b-642kbxm11b] {
    background: linear-gradient(
        135deg,
        rgba(20, 40, 48, 0.85) 0%,
        rgba(15, 30, 38, 0.7) 100%
    );
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

.rw-roster-card:active[b-642kbxm11b] {
    transform: scale(0.98);
    transition-duration: 0.08s;
}

/* --- Active Turn indicator --- */
.rw-roster-card--active[b-642kbxm11b] {
    border-left: 3px solid var(--rw-gold);
    background: linear-gradient(
        135deg,
        rgba(196, 160, 64, 0.08) 0%,
        rgba(15, 32, 40, 0.7) 100%
    );
}

/* --- Selected (shown in detail panel) --- */
.rw-roster-card--selected[b-642kbxm11b] {
    border-color: var(--rw-gold);
    background: linear-gradient(
        135deg,
        rgba(196, 160, 64, 0.12) 0%,
        rgba(196, 160, 64, 0.04) 100%
    );
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.12),
                inset 0 0 0 1px rgba(196, 160, 64, 0.08);
    animation: roster-select-pulse-b-642kbxm11b 0.4s ease-out;
}

@keyframes roster-select-pulse-b-642kbxm11b {
    0% { box-shadow: 0 0 0 0 rgba(196, 160, 64, 0.35); }
    60% { box-shadow: 0 0 18px 4px rgba(196, 160, 64, 0.15); }
    100% { box-shadow: 0 0 14px rgba(196, 160, 64, 0.12),
                       inset 0 0 0 1px rgba(196, 160, 64, 0.08); }
}

/* --- Bloodied --- */
.rw-roster-card--bloodied[b-642kbxm11b] {
    border-color: rgba(218, 170, 50, 0.4);
}

/* --- Dead --- */
.rw-roster-card--dead[b-642kbxm11b] {
    opacity: 0.45;
    filter: grayscale(0.6) brightness(0.7);
}

.rw-roster-card--dead:hover[b-642kbxm11b] {
    opacity: 0.6;
}

/* --- Portrait --- */
.rw-roster-card__portrait[b-642kbxm11b] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid var(--rw-border);
    position: relative;
}

.rw-roster-card--active .rw-roster-card__portrait[b-642kbxm11b] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.2);
}

.rw-roster-card__portrait img[b-642kbxm11b] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- Info (name + concentration) --- */
.rw-roster-card__info[b-642kbxm11b] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
    gap: 0.1rem;
}

.rw-roster-card__name[b-642kbxm11b] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
}

.rw-roster-card__label[b-642kbxm11b] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    margin-left: 0.25rem;
    font-weight: 400;
}

.rw-roster-card__concentration[b-642kbxm11b] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-arcane-cyan);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0.85;
}

/* --- Thin HP Bar --- */
.rw-roster-card__hp[b-642kbxm11b] {
    width: 60px;
    flex-shrink: 0;
}

/* Override HpBar height for roster compact mode */
.rw-roster-card__hp[b-642kbxm11b]  .rw-hp-bar {
    height: 8px;
    border-radius: 4px;
}

.rw-roster-card__hp[b-642kbxm11b]  .rw-hp-bar__label {
    display: none;
}

/* --- AC Badge --- */
.rw-roster-card__ac[b-642kbxm11b] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-text-dim);
    flex-shrink: 0;
    white-space: nowrap;
    padding: 0.15rem 0.35rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

/* --- Initiative Badge --- */
.rw-roster-card__init[b-642kbxm11b] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-gold-light);
    flex-shrink: 0;
    white-space: nowrap;
    padding: 0.15rem 0.35rem;
    border-radius: 999px;
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

/* --- Reroll Initiative --- */
.rw-roster-card__reroll[b-642kbxm11b] {
    all: unset;
    cursor: pointer;
    font-size: 0.7rem;
    padding: 0.15rem;
    border-radius: var(--rw-radius-sm);
    opacity: 0;
    transition: opacity 0.15s ease, transform 0.15s ease;
    flex-shrink: 0;
    line-height: 1;
}

.rw-roster-card:hover .rw-roster-card__reroll[b-642kbxm11b] {
    opacity: 0.6;
}

.rw-roster-card__reroll:hover[b-642kbxm11b] {
    opacity: 1 !important;
    transform: rotate(15deg);
}

/* --- Condition Dots --- */
.rw-roster-card__cond-dots[b-642kbxm11b] {
    display: flex;
    gap: 3px;
    flex-shrink: 0;
    align-items: center;
}

.rw-roster-card__cond-dot[b-642kbxm11b] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rw-gold);
    opacity: 0.7;
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.3);
}

.rw-roster-card__cond-more[b-642kbxm11b] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-faint);
}

/* === RESPONSIVE === */

@media (max-width: 768px) {
    .rw-roster-card[b-642kbxm11b] {
        min-height: 52px;
        padding: 0.35rem 0.5rem;
        gap: 0.4rem;
    }

    .rw-roster-card__portrait[b-642kbxm11b] {
        width: 32px;
        height: 32px;
    }

    .rw-roster-card__hp[b-642kbxm11b] {
        width: 48px;
    }
}
/* /Components/Sessions/Gm/IdentificationApprovalCard.razor.rz.scp.css */
/* ============================================================
   IdentificationApprovalCard — Divination Request
   Compact inline card for GM approval of creature identification.
   Teal/cyan accent evokes arcane divination magic.
   ============================================================ */

.rw-id-approval[b-0w48s3p404] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 0.85rem;
    border-radius: 6px;
    background: var(--rw-bg-panel);
    border: 1px solid rgba(72, 176, 192, 0.35);
    border-left: 3px solid rgba(72, 176, 192, 0.6);
    box-shadow: 0 0 12px rgba(72, 176, 192, 0.08),
                inset 0 0 20px rgba(72, 176, 192, 0.03);
    font-family: var(--rw-font-ui);
    transition: opacity 0.3s ease, transform 0.3s ease;
    animation: rw-id-slide-in-b-0w48s3p404 0.25s ease-out;
}

.rw-id-approval--resolving[b-0w48s3p404] {
    opacity: 0.5;
    pointer-events: none;
}

/* Sigil — decorative magnifying glass icon */
.rw-id-approval__sigil[b-0w48s3p404] {
    position: absolute;
    top: 0.5rem;
    right: 0.65rem;
    font-size: 1rem;
    opacity: 0.2;
    filter: grayscale(0.3);
}

/* Header row */
.rw-id-approval__header[b-0w48s3p404] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
}

.rw-id-approval__title[b-0w48s3p404] {
    font-family: var(--rw-font-display);
    font-size: 0.75rem;
    color: rgba(72, 176, 192, 0.85);
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.rw-id-approval__player[b-0w48s3p404] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* Creature name display */
.rw-id-approval__creature[b-0w48s3p404] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.rw-id-approval__creature-label[b-0w48s3p404] {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
}

.rw-id-approval__creature-name[b-0w48s3p404] {
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    color: var(--rw-text-bright);
}

/* Skill + DC fields */
.rw-id-approval__fields[b-0w48s3p404] {
    display: flex;
    gap: 0.5rem;
}

.rw-id-approval__field[b-0w48s3p404] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1;
}

.rw-id-approval__label[b-0w48s3p404] {
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
}

.rw-id-approval__select[b-0w48s3p404],
.rw-id-approval__input[b-0w48s3p404] {
    padding: 0.25rem 0.4rem;
    border-radius: 4px;
    border: 1px solid var(--rw-border);
    background: var(--rw-bg-deep);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    transition: border-color 0.15s ease;
}

.rw-id-approval__select:focus[b-0w48s3p404],
.rw-id-approval__input:focus[b-0w48s3p404] {
    outline: none;
    border-color: rgba(72, 176, 192, 0.5);
    box-shadow: 0 0 6px rgba(72, 176, 192, 0.15);
}

.rw-id-approval__input[b-0w48s3p404] {
    width: 60px;
    text-align: center;
}

/* Action buttons */
.rw-id-approval__actions[b-0w48s3p404] {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.15rem;
}

.rw-id-approval__btn[b-0w48s3p404] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.3rem 0.65rem;
    border-radius: 4px;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all 0.15s ease;
    flex: 1;
    text-align: center;
}

.rw-id-approval__btn:disabled[b-0w48s3p404] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-id-approval__btn--approve[b-0w48s3p404] {
    background: rgba(72, 176, 192, 0.15);
    color: rgba(72, 176, 192, 0.9);
    border: 1px solid rgba(72, 176, 192, 0.3);
}

.rw-id-approval__btn--approve:hover:not(:disabled)[b-0w48s3p404] {
    background: rgba(72, 176, 192, 0.25);
    border-color: rgba(72, 176, 192, 0.5);
    box-shadow: 0 0 8px rgba(72, 176, 192, 0.2);
}

.rw-id-approval__btn--deny[b-0w48s3p404] {
    background: rgba(184, 58, 26, 0.1);
    color: var(--rw-blood-bright);
    border: 1px solid rgba(184, 58, 26, 0.25);
}

.rw-id-approval__btn--deny:hover:not(:disabled)[b-0w48s3p404] {
    background: rgba(184, 58, 26, 0.2);
    border-color: rgba(184, 58, 26, 0.4);
}

@keyframes rw-id-slide-in-b-0w48s3p404 {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Components/Sessions/Gm/LairActionPromptCard.razor.rz.scp.css */
/* ============================================================
   LairActionPromptCard — Subterranean Menace
   High-priority GM card for lair actions at round start.
   Deep obsidian ground with molten amber veins — volcanic,
   primal, unmistakably different from teal identification cards.
   ============================================================ */

.rw-lair-prompt[b-5i4jcdu649] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 0.85rem;
    border-radius: 6px;
    background:
        radial-gradient(ellipse at 20% 80%, rgba(180, 90, 20, 0.06) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(210, 130, 40, 0.04) 0%, transparent 50%),
        var(--rw-bg-deep, #1a1a1a);
    border: 1px solid rgba(210, 130, 40, 0.3);
    border-left: 3px solid rgba(210, 130, 40, 0.55);
    box-shadow:
        0 0 16px rgba(180, 90, 20, 0.1),
        0 0 4px rgba(210, 130, 40, 0.06),
        inset 0 0 30px rgba(180, 90, 20, 0.03);
    font-family: var(--rw-font-ui);
    animation: rw-lair-emerge-b-5i4jcdu649 0.35s ease-out;
    overflow: hidden;
}

/* Ember particle — subtle decorative glow in corner */
.rw-lair-prompt__ember[b-5i4jcdu649] {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(210, 130, 40, 0.15) 0%, transparent 70%);
    animation: rw-ember-pulse-b-5i4jcdu649 2.5s ease-in-out infinite;
    pointer-events: none;
}

/* === HEADER === */

.rw-lair-prompt__header[b-5i4jcdu649] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-lair-prompt__sigil[b-5i4jcdu649] {
    font-size: 0.95rem;
    filter: saturate(0.7) brightness(0.9);
    flex-shrink: 0;
}

.rw-lair-prompt__title-group[b-5i4jcdu649] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    flex: 1;
}

.rw-lair-prompt__title[b-5i4jcdu649] {
    font-family: var(--rw-font-display);
    font-size: 0.8rem;
    color: rgba(210, 150, 60, 0.9);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.rw-lair-prompt__round[b-5i4jcdu649] {
    font-family: var(--rw-font-body);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-lair-prompt__dismiss-all[b-5i4jcdu649] {
    all: unset;
    cursor: pointer;
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    opacity: 0.5;
    transition: opacity 0.15s ease;
    padding: 0.1rem;
}

.rw-lair-prompt__dismiss-all:hover[b-5i4jcdu649] {
    opacity: 1;
    color: var(--rw-blood-bright);
}

/* === OPTIONS === */

.rw-lair-prompt__options[b-5i4jcdu649] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-lair-option[b-5i4jcdu649] {
    padding: 0.5rem;
    border-radius: 4px;
    background: rgba(210, 130, 40, 0.04);
    border: 1px solid rgba(210, 130, 40, 0.12);
    transition: opacity 0.3s ease, filter 0.3s ease;
}

.rw-lair-option--executed[b-5i4jcdu649] {
    opacity: 0.4;
    filter: grayscale(0.5);
    pointer-events: none;
}

/* Boss identity */
.rw-lair-option__boss[b-5i4jcdu649] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-bottom: 0.35rem;
}

.rw-lair-option__boss-icon[b-5i4jcdu649] {
    font-size: 0.75rem;
    filter: saturate(0.6);
}

.rw-lair-option__boss-name[b-5i4jcdu649] {
    font-family: var(--rw-font-display);
    font-size: 0.78rem;
    color: var(--rw-text-bright);
}

/* Action entries */
.rw-lair-option__actions[b-5i4jcdu649] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-lair-action-entry[b-5i4jcdu649] {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    padding: 0.25rem 0;
    border-bottom: 1px solid rgba(210, 130, 40, 0.06);
}

.rw-lair-action-entry:last-child[b-5i4jcdu649] {
    border-bottom: none;
}

.rw-lair-action-entry__marker[b-5i4jcdu649] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(210, 130, 40, 0.5);
    box-shadow: 0 0 4px rgba(210, 130, 40, 0.3);
    flex-shrink: 0;
    margin-top: 0.35rem;
}

.rw-lair-action-entry__text[b-5i4jcdu649] {
    flex: 1;
    font-family: var(--rw-font-body);
    font-size: 0.68rem;
    color: var(--rw-text);
    line-height: 1.4;
}

.rw-lair-action-entry__execute[b-5i4jcdu649] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(210, 130, 40, 0.15);
    color: rgba(210, 150, 60, 0.9);
    border: 1px solid rgba(210, 130, 40, 0.3);
    transition: all 0.15s ease;
    flex-shrink: 0;
    white-space: nowrap;
}

.rw-lair-action-entry__execute:hover:not(:disabled)[b-5i4jcdu649] {
    background: rgba(210, 130, 40, 0.28);
    border-color: rgba(210, 130, 40, 0.5);
    box-shadow: 0 0 8px rgba(210, 130, 40, 0.2);
}

.rw-lair-action-entry__execute:disabled[b-5i4jcdu649] {
    opacity: 0.3;
    cursor: not-allowed;
}

/* No-data fallback */
.rw-lair-option__no-data[b-5i4jcdu649] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.3rem;
    font-family: var(--rw-font-body);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    font-style: italic;
    padding: 0.2rem 0;
}

/* Option footer */
.rw-lair-option__footer[b-5i4jcdu649] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.2rem;
}

.rw-lair-option__skip[b-5i4jcdu649] {
    all: unset;
    cursor: pointer;
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    opacity: 0.6;
    transition: opacity 0.15s ease;
    padding: 0.15rem 0.3rem;
}

.rw-lair-option__skip:hover:not(:disabled)[b-5i4jcdu649] {
    opacity: 1;
}

.rw-lair-option__skip:disabled[b-5i4jcdu649] {
    opacity: 0.2;
    cursor: not-allowed;
}

/* Done button */
.rw-lair-prompt__done[b-5i4jcdu649] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.3rem 0.65rem;
    border-radius: 4px;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(210, 130, 40, 0.12);
    color: rgba(210, 150, 60, 0.85);
    border: 1px solid rgba(210, 130, 40, 0.25);
    transition: all 0.15s ease;
    margin-top: 0.15rem;
}

.rw-lair-prompt__done:hover[b-5i4jcdu649] {
    background: rgba(210, 130, 40, 0.22);
    border-color: rgba(210, 130, 40, 0.4);
}

/* === ANIMATIONS === */

@keyframes rw-lair-emerge-b-5i4jcdu649 {
    from {
        opacity: 0;
        transform: translateY(-8px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes rw-ember-pulse-b-5i4jcdu649 {
    0%, 100% {
        opacity: 0.6;
        transform: scale(1);
    }
    50% {
        opacity: 1;
        transform: scale(1.15);
    }
}
/* /Components/Sessions/Gm/LootModeOverlay.razor.rz.scp.css */
/* ============================================================
   LootModeOverlay — Quartermaster's Distribution Board
   Source (defeated monsters) → Target (PCs) loot flow.
   ============================================================ */

.rw-loot-mode[b-cihe76qy5j] {
    background: linear-gradient(170deg,
        rgba(12, 28, 36, 0.97) 0%,
        rgba(8, 20, 28, 0.95) 100%);
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    animation: rw-loot-enter-b-cihe76qy5j 0.3s ease-out;
}

@keyframes rw-loot-enter-b-cihe76qy5j {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.rw-loot-mode[b-cihe76qy5j]::before {
    content: '';
    display: block;
    height: 2px;
    background: linear-gradient(90deg,
        transparent,
        var(--rw-gold) 30%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 70%,
        transparent);
}

/* === HEADER === */

.rw-loot-mode__header[b-cihe76qy5j] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.08);
}

.rw-loot-mode__title[b-cihe76qy5j] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    color: var(--rw-gold);
}

.rw-loot-mode__tabs[b-cihe76qy5j] {
    display: flex;
    gap: 0.15rem;
    flex: 1;
    margin-left: 0.3rem;
}

.rw-loot-mode__tab[b-cihe76qy5j] {
    all: unset;
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.42rem;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.35rem;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all var(--rw-transition);
}

.rw-loot-mode__tab:hover[b-cihe76qy5j] {
    color: var(--rw-text);
}

.rw-loot-mode__tab--active[b-cihe76qy5j] {
    color: var(--rw-gold);
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.06);
}

.rw-loot-mode__close[b-cihe76qy5j] {
    all: unset;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    transition: color var(--rw-transition);
}

.rw-loot-mode__close:hover[b-cihe76qy5j] {
    color: var(--rw-blood-bright);
}

/* === BODY: Source → Target === */

.rw-loot-mode__body[b-cihe76qy5j] {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    padding: 0.4rem;
}

.rw-loot-mode__sources[b-cihe76qy5j],
.rw-loot-mode__targets[b-cihe76qy5j] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-loot-mode__section-label[b-cihe76qy5j] {
    font-family: var(--rw-font-sc);
    font-size: 0.45rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    margin-bottom: 0.1rem;
}

.rw-loot-mode__source-list[b-cihe76qy5j],
.rw-loot-mode__target-list[b-cihe76qy5j] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rw-loot-mode__source[b-cihe76qy5j],
.rw-loot-mode__target[b-cihe76qy5j] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.2rem 0.35rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.2);
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    color: var(--rw-text);
    transition: all var(--rw-transition);
}

.rw-loot-mode__source:hover[b-cihe76qy5j],
.rw-loot-mode__target:hover[b-cihe76qy5j] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.03);
}

.rw-loot-mode__source--selected[b-cihe76qy5j] {
    border-color: var(--rw-blood);
    background: rgba(184, 58, 26, 0.06);
    color: var(--rw-text-bright);
}

.rw-loot-mode__target--selected[b-cihe76qy5j] {
    border-color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.06);
    color: var(--rw-text-bright);
}

.rw-loot-mode__source:disabled[b-cihe76qy5j],
.rw-loot-mode__target:disabled[b-cihe76qy5j] {
    opacity: 0.35;
    cursor: not-allowed;
}

.rw-loot-mode__skull[b-cihe76qy5j] {
    font-size: 0.55rem;
}

.rw-loot-mode__arrow[b-cihe76qy5j] {
    font-size: 1rem;
    color: var(--rw-gold);
    align-self: center;
    padding-top: 1rem;
    flex-shrink: 0;
}

.rw-loot-mode__empty[b-cihe76qy5j] {
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    color: var(--rw-text-faint);
    font-style: italic;
    padding: 0.3rem;
}

/* === LOOT FORM === */

.rw-loot-mode__form[b-cihe76qy5j] {
    padding: 0.4rem;
    border-top: 1px solid rgba(196, 160, 64, 0.1);
    animation: rw-loot-form-in-b-cihe76qy5j 0.2s ease-out;
}

@keyframes rw-loot-form-in-b-cihe76qy5j {
    from { opacity: 0; }
    to { opacity: 1; }
}

.rw-loot-mode__form-header[b-cihe76qy5j] {
    font-family: var(--rw-font-body);
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--rw-gold-light);
    margin-bottom: 0.3rem;
}

.rw-loot-mode__form-fields[b-cihe76qy5j] {
    display: flex;
    gap: 0.3rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.rw-loot-mode__field[b-cihe76qy5j] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.rw-loot-mode__label[b-cihe76qy5j] {
    font-family: var(--rw-font-sc);
    font-size: 0.42rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-loot-mode__input[b-cihe76qy5j] {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    padding: 0.2rem 0.35rem;
    outline: none;
    transition: border-color var(--rw-transition);
}

.rw-loot-mode__input:focus[b-cihe76qy5j] {
    border-color: var(--rw-gold);
}

.rw-loot-mode__input--name[b-cihe76qy5j] {
    flex: 1;
    min-width: 100px;
}

.rw-loot-mode__input--num[b-cihe76qy5j] {
    width: 45px;
    text-align: center;
    -moz-appearance: textfield;
}

.rw-loot-mode__input--num[b-cihe76qy5j]::-webkit-outer-spin-button,
.rw-loot-mode__input--num[b-cihe76qy5j]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

.rw-loot-mode__give[b-cihe76qy5j] {
    all: unset;
    cursor: pointer;
    margin-top: 0.3rem;
    width: 100%;
    text-align: center;
    padding: 0.25rem 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.05em;
    color: var(--rw-gold-light);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15) 0%, rgba(196, 160, 64, 0.05) 100%);
    border: 1px solid rgba(196, 160, 64, 0.35);
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-loot-mode__give:not(:disabled):hover[b-cihe76qy5j] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.25) 0%, rgba(196, 160, 64, 0.1) 100%);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}

.rw-loot-mode__give:disabled[b-cihe76qy5j] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* === SOURCE NAME (flex text) === */

.rw-loot-mode__source-name[b-cihe76qy5j] {
    flex: 1;
}

/* === LOOT TABLE INDICATOR === */

.rw-loot-mode__loot-indicator[b-cihe76qy5j] {
    font-size: 0.45rem;
    opacity: 0.6;
}

/* === ASSIGNMENT STATUS TAGS === */

.rw-loot-mode__status-tag[b-cihe76qy5j] {
    font-family: var(--rw-font-ui);
    font-size: 0.4rem;
    padding: 0.02rem 0.2rem;
    border-radius: 999px;
    white-space: nowrap;
}

.rw-loot-mode__status-tag--pending[b-cihe76qy5j] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.rw-loot-mode__status-tag--searched[b-cihe76qy5j] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.08);
    border: 1px solid rgba(72, 176, 192, 0.2);
}

.rw-loot-mode__status-tag--collected[b-cihe76qy5j] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.08);
    border: 1px solid rgba(80, 176, 104, 0.2);
}

/* === SOURCE STATE MODIFIERS === */

.rw-loot-mode__source--assigned[b-cihe76qy5j] {
    border-color: rgba(196, 160, 64, 0.2);
}

.rw-loot-mode__source--searched[b-cihe76qy5j] {
    border-color: rgba(72, 176, 192, 0.2);
}

.rw-loot-mode__source--collected[b-cihe76qy5j] {
    opacity: 0.45;
    border-color: rgba(80, 176, 104, 0.15);
}

/* === ASSIGN / UNASSIGN BAR === */

.rw-loot-mode__assign-bar[b-cihe76qy5j] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.5rem;
    border-top: 1px solid rgba(196, 160, 64, 0.1);
    animation: rw-loot-form-in-b-cihe76qy5j 0.2s ease-out;
}

.rw-loot-mode__assign-label[b-cihe76qy5j] {
    font-family: var(--rw-font-body);
    font-size: 0.55rem;
    font-weight: 600;
    color: var(--rw-gold-light);
    flex: 1;
}

.rw-loot-mode__assign-btn[b-cihe76qy5j] {
    all: unset;
    cursor: pointer;
    padding: 0.2rem 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    letter-spacing: 0.04em;
    color: var(--rw-verdant-bright);
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.15) 0%, rgba(61, 138, 85, 0.05) 100%);
    border: 1px solid rgba(61, 138, 85, 0.35);
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-loot-mode__assign-btn:hover[b-cihe76qy5j] {
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.25) 0%, rgba(61, 138, 85, 0.1) 100%);
    box-shadow: 0 0 8px rgba(61, 138, 85, 0.15);
}

.rw-loot-mode__unassign-btn[b-cihe76qy5j] {
    all: unset;
    cursor: pointer;
    padding: 0.2rem 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    letter-spacing: 0.04em;
    color: var(--rw-blood-bright);
    background: linear-gradient(135deg, rgba(139, 37, 0, 0.12) 0%, rgba(139, 37, 0, 0.04) 100%);
    border: 1px solid rgba(184, 58, 26, 0.3);
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-loot-mode__unassign-btn:hover[b-cihe76qy5j] {
    background: linear-gradient(135deg, rgba(139, 37, 0, 0.2) 0%, rgba(139, 37, 0, 0.08) 100%);
    box-shadow: 0 0 8px rgba(184, 58, 26, 0.12);
}
/* /Components/Sessions/Gm/MonsterSearchPanel.razor.rz.scp.css */
/* ============================================================
   MonsterSearchPanel — Bestiary Quick-Deploy (Card Layout)
   Card-based monster search with type icons and deploy buttons.
   ============================================================ */

.rw-msearch[b-8ro80sw3oh] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-msearch__header[b-8ro80sw3oh] {
    padding: 0.2rem 0;
}

.rw-msearch__title[b-8ro80sw3oh] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
}

/* === INPUT === */

.rw-msearch__input-wrap[b-8ro80sw3oh] {
    position: relative;
}

.rw-msearch__input[b-8ro80sw3oh] {
    width: 100%;
    padding: 0.6rem 0.75rem;
    padding-right: 2.2rem;
    min-height: 48px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-xl);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.95rem;
    outline: none;
    transition: border-color var(--rw-transition);
    box-sizing: border-box;
}

.rw-msearch__input:focus[b-8ro80sw3oh] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.12);
}

.rw-msearch__input[b-8ro80sw3oh]::placeholder {
    color: var(--rw-text-dim);
}

.rw-msearch__spinner[b-8ro80sw3oh] {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    border: 2px solid var(--rw-border);
    border-top-color: var(--rw-gold);
    border-radius: 50%;
    animation: rw-spin-b-8ro80sw3oh 0.6s linear infinite;
}

@keyframes rw-spin-b-8ro80sw3oh {
    to { transform: translateY(-50%) rotate(360deg); }
}

/* === RESULTS (card-based) === */

.rw-msearch__results[b-8ro80sw3oh] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 360px;
    overflow-y: auto;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
    background: rgba(0, 0, 0, 0.15);
}

/* --- Monster Card --- */
.rw-msearch__card[b-8ro80sw3oh] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.75rem;
    min-height: 56px;
    background: rgba(0, 0, 0, 0.08);
    transition: all var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.rw-msearch__card:hover[b-8ro80sw3oh] {
    background: rgba(196, 160, 64, 0.06);
    box-shadow: inset 0 0 12px rgba(196, 160, 64, 0.04);
}

.rw-msearch__card:active[b-8ro80sw3oh] {
    transform: scale(0.99);
    transition-duration: 0.08s;
}

/* Type icon */
.rw-msearch__card-icon[b-8ro80sw3oh] {
    width: 36px;
    height: 36px;
    object-fit: contain;
    filter: brightness(0.9) sepia(0.2) hue-rotate(15deg);
    flex-shrink: 0;
    border-radius: var(--rw-radius-sm);
}

/* Info (name + stats) */
.rw-msearch__card-info[b-8ro80sw3oh] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rw-msearch__card-name[b-8ro80sw3oh] {
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-msearch__card-stats[b-8ro80sw3oh] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rw-msearch__stat[b-8ro80sw3oh] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    line-height: 1;
}

.rw-msearch__stat--cr[b-8ro80sw3oh] {
    color: var(--rw-gold);
    font-weight: 600;
}

.rw-msearch__stat--type[b-8ro80sw3oh] {
    color: var(--rw-text-dim);
    text-transform: capitalize;
}

.rw-msearch__stat--hp[b-8ro80sw3oh] {
    color: var(--rw-blood-bright);
}

.rw-msearch__stat--ac[b-8ro80sw3oh] {
    color: var(--rw-arcane-cyan);
}

/* Deploy button */
.rw-msearch__card-deploy[b-8ro80sw3oh] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
    font-size: 1.2rem;
    font-weight: 300;
    flex-shrink: 0;
    transition: all 0.2s ease;
}

.rw-msearch__card:hover .rw-msearch__card-deploy[b-8ro80sw3oh] {
    background: rgba(196, 160, 64, 0.18);
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.15);
}

/* Empty state */
.rw-msearch__empty[b-8ro80sw3oh] {
    padding: 1rem;
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    font-style: italic;
}
/* /Components/Sessions/Gm/QuickActionCard.razor.rz.scp.css */
/* ============================================================
   QuickActionCard — Arcane Manuscript Action Strip
   Tactile combat orders pulled from a grimoire. Each card
   feels like an enchanted manuscript with runic borders.
   ============================================================ */

.rw-qac[b-hgq4p6taw8] {
    position: relative;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0.07) 0%,
        rgba(255, 255, 255, 0.02) 100%);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow: hidden;
}

/* Parchment noise texture overlay */
.rw-qac[b-hgq4p6taw8]::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    pointer-events: none;
    mix-blend-mode: overlay;
}

.rw-qac:hover[b-hgq4p6taw8] {
    border-color: rgba(196, 160, 64, 0.35);
    background: linear-gradient(180deg,
        rgba(196, 160, 64, 0.1) 0%,
        rgba(196, 160, 64, 0.04) 100%);
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.3),
        0 0 10px rgba(196, 160, 64, 0.08),
        0 6px 16px -2px rgba(196, 160, 64, 0.06);
    transform: translateY(-1px);
}

.rw-qac--expanded[b-hgq4p6taw8] {
    border-color: var(--rw-gold);
    background: rgba(8, 18, 24, 0.92);
    backdrop-filter: var(--rw-glass-blur-strong);
    -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    box-shadow:
        0 4px 30px rgba(0, 0, 0, 0.4),
        0 0 12px rgba(196, 160, 64, 0.15),
        inset 0 1px 0 rgba(196, 160, 64, 0.08);
    flex-basis: 100%;
    animation: rw-qac-targeting-b-hgq4p6taw8 2.5s ease-in-out infinite;
}

@keyframes rw-qac-targeting-b-hgq4p6taw8 {
    0%, 100% {
        border-color: var(--rw-gold);
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.4), 0 0 12px rgba(196, 160, 64, 0.15);
    }
    50% {
        border-color: var(--rw-gold-light);
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.4), 0 0 18px rgba(196, 160, 64, 0.25);
    }
}

/* Top shimmer line */
.rw-qac--expanded[b-hgq4p6taw8]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-gold) 30%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 70%,
        transparent 100%);
}

/* === ACTION TYPE ACCENT BARS — Decorative double-line + inner glow === */

.rw-qac--melee[b-hgq4p6taw8] {
    border-left: 3px solid var(--rw-gold);
    box-shadow: inset 3px 0 8px -3px rgba(196, 160, 64, 0.15);
}

.rw-qac--melee:hover[b-hgq4p6taw8] {
    box-shadow:
        inset 3px 0 12px -3px rgba(196, 160, 64, 0.25),
        0 4px 20px rgba(0, 0, 0, 0.3),
        0 0 10px rgba(196, 160, 64, 0.08);
}

.rw-qac--ranged[b-hgq4p6taw8] {
    border-left: 3px solid var(--rw-arcane-cyan);
    box-shadow: inset 3px 0 8px -3px rgba(58, 128, 168, 0.15);
}

.rw-qac--ranged:hover[b-hgq4p6taw8] {
    box-shadow:
        inset 3px 0 12px -3px rgba(58, 128, 168, 0.25),
        0 4px 20px rgba(0, 0, 0, 0.3),
        0 0 10px rgba(58, 128, 168, 0.08);
}

.rw-qac--save[b-hgq4p6taw8] {
    border-left: 3px solid #9a7abe;
    box-shadow: inset 3px 0 8px -3px rgba(154, 122, 190, 0.15);
}

.rw-qac--save:hover[b-hgq4p6taw8] {
    box-shadow:
        inset 3px 0 12px -3px rgba(154, 122, 190, 0.25),
        0 4px 20px rgba(0, 0, 0, 0.3),
        0 0 10px rgba(154, 122, 190, 0.08);
}

.rw-qac--utility[b-hgq4p6taw8] {
    border-left: 3px solid var(--rw-sage-muted, #5a7868);
    box-shadow: inset 3px 0 8px -3px rgba(90, 120, 104, 0.15);
}

/* === ACTION STRIP (button face) === */

.rw-qac__strip[b-hgq4p6taw8] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.55rem;
    cursor: pointer;
    user-select: none;
    min-height: 42px;
}

/* Runic chevron arrow via CSS */
.rw-qac__chevron[b-hgq4p6taw8] {
    width: 0.55rem;
    height: 0.55rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s ease, opacity 0.15s ease;
    position: relative;
    opacity: 0.7;
}

.rw-qac__chevron[b-hgq4p6taw8]::before {
    content: '';
    width: 5px;
    height: 5px;
    border-right: 1.5px solid var(--rw-gold);
    border-bottom: 1.5px solid var(--rw-gold);
    transform: rotate(-45deg);
    display: block;
}

.rw-qac--expanded .rw-qac__chevron[b-hgq4p6taw8] {
    opacity: 1;
    transform: rotate(90deg);
}

.rw-qac--expanded .rw-qac__chevron[b-hgq4p6taw8]::before {
    border-color: var(--rw-gold-light);
    box-shadow: 1px 1px 3px rgba(196, 160, 64, 0.3);
}

.rw-qac__name[b-hgq4p6taw8] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

/* === TAGS — Beveled/inset treatment === */

.rw-qac__tags[b-hgq4p6taw8] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    margin-left: auto;
    flex-shrink: 0;
}

.rw-qac__tag[b-hgq4p6taw8] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    padding: 0.12rem 0.4rem;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
    line-height: 1.4;
    font-weight: 600;
    position: relative;
}

.rw-qac__tag--atk[b-hgq4p6taw8] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.2);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(196, 160, 64, 0.06);
}

.rw-qac__tag--dice[b-hgq4p6taw8] {
    color: var(--rw-arcane-cyan);
    background: rgba(58, 128, 168, 0.1);
    border: 1px solid rgba(58, 128, 168, 0.15);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(58, 128, 168, 0.06);
}

.rw-qac__tag--type[b-hgq4p6taw8] {
    color: var(--rw-text);
    font-size: 0.55rem;
    text-transform: lowercase;
    font-weight: 500;
    opacity: 0.7;
}

.rw-qac__tag--save[b-hgq4p6taw8] {
    font-weight: 600;
    color: #b08ad8;
    background: rgba(106, 74, 138, 0.12);
    border: 1px solid rgba(106, 74, 138, 0.25);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(106, 74, 138, 0.06);
}

.rw-qac__tag--recharge[b-hgq4p6taw8] {
    color: var(--rw-text);
    font-style: italic;
    font-size: 0.55rem;
    opacity: 0.7;
}

.rw-qac__tag--ranged[b-hgq4p6taw8] {
    font-size: 0.65rem;
    line-height: 1;
}

.rw-qac__tag--legendary[b-hgq4p6taw8] {
    font-weight: 700;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.18);
    border: 1px solid rgba(196, 160, 64, 0.35);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15), 0 0 6px rgba(196, 160, 64, 0.1);
}

.rw-qac--disabled[b-hgq4p6taw8] {
    opacity: 0.3;
    pointer-events: none;
    cursor: not-allowed;
}

/* === PANEL WRAP (expanded resolution) — Scroll unfurl === */

.rw-qac__panel-wrap[b-hgq4p6taw8] {
    border-top: 1px solid rgba(196, 160, 64, 0.15);
    padding: 0.5rem;
    animation: rw-qac-unfurl-b-hgq4p6taw8 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transform-origin: top center;
}

@keyframes rw-qac-unfurl-b-hgq4p6taw8 {
    from {
        opacity: 0;
        max-height: 0;
        clip-path: inset(0 10% 100% 10%);
    }
    to {
        opacity: 1;
        max-height: 500px;
        clip-path: inset(0 0 0 0);
    }
}
/* /Components/Sessions/Gm/SessionPresencePanel.razor.rz.scp.css */
/* ============================================================
   SessionPresencePanel — Live Player Status
   Frosted glass panel showing connected players and their state.
   ============================================================ */

.rw-presence[b-ghjpo2bijf] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    margin-top: 1rem;
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-xl);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
}

.rw-presence__header[b-ghjpo2bijf] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.rw-presence__label[b-ghjpo2bijf] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
}

.rw-presence__subtitle[b-ghjpo2bijf] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-dim);
}

.rw-presence__empty[b-ghjpo2bijf] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    font-style: italic;
    padding: 0.5rem 0;
    text-align: center;
}

.rw-presence__list[b-ghjpo2bijf] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-presence__row[b-ghjpo2bijf] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0;
}

.rw-presence__dot[b-ghjpo2bijf] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.rw-presence__dot--active[b-ghjpo2bijf] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 6px rgba(80, 176, 104, 0.5);
}

.rw-presence__dot--idle[b-ghjpo2bijf] {
    background: var(--rw-gold);
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.3);
}

.rw-presence__name[b-ghjpo2bijf] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-presence__role[b-ghjpo2bijf] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    padding: 0.05rem 0.3rem;
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius-pill);
    flex-shrink: 0;
}

.rw-presence__status[b-ghjpo2bijf] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    flex-shrink: 0;
}
/* /Components/Sessions/Gm/StatBlockPanel.razor.rz.scp.css */
/* ============================================================
   StatBlockPanel — Compendium Reference Drawer
   Slide-in tome with illuminated-manuscript stat block.
   ============================================================ */

.rw-stat-panel[b-qp951q8cxt] {
    position: fixed;
    inset: 0;
    z-index: 500;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.rw-stat-panel--open[b-qp951q8cxt] {
    pointer-events: auto;
    opacity: 1;
}

/* Backdrop — dark vignette with subtle warmth */
.rw-stat-panel__backdrop[b-qp951q8cxt] {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 120% 100% at 80% 50%,
        rgba(0, 0, 0, 0.25) 0%,
        rgba(0, 0, 0, 0.6) 100%
    );
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    transition: backdrop-filter 0.4s ease;
}

/* Drawer — the tome itself */
.rw-stat-panel__drawer[b-qp951q8cxt] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(440px, 92vw);
    background:
        linear-gradient(
            180deg,
            rgba(14, 26, 34, 0.97) 0%,
            rgba(10, 20, 28, 0.99) 40%,
            rgba(8, 16, 22, 1) 100%
        );
    border-left: 1px solid rgba(196, 160, 64, 0.12);
    box-shadow:
        -6px 0 40px rgba(0, 0, 0, 0.5),
        -1px 0 0 rgba(196, 160, 64, 0.08),
        inset 1px 0 0 rgba(255, 255, 255, 0.03);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.rw-stat-panel--open .rw-stat-panel__drawer[b-qp951q8cxt] {
    transform: translateX(0);
}

/* Header — tome title bar */
.rw-stat-panel__header[b-qp951q8cxt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.65rem 1rem;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
    background: linear-gradient(
        90deg,
        rgba(196, 160, 64, 0.03) 0%,
        transparent 60%
    );
    position: relative;
}

/* Gold filigree accent under header */
.rw-stat-panel__header[b-qp951q8cxt]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(
        90deg,
        rgba(196, 160, 64, 0.35) 0%,
        rgba(196, 160, 64, 0.12) 50%,
        transparent 100%
    );
}

.rw-stat-panel__title[b-qp951q8cxt] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rw-gold);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-stat-panel__title[b-qp951q8cxt]::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 12px;
    background: var(--rw-gold);
    border-radius: 1px;
    opacity: 0.6;
}

.rw-stat-panel__close[b-qp951q8cxt] {
    all: unset;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--rw-text-faint);
    border-radius: var(--rw-radius-sm);
    transition: all 0.2s ease;
}

.rw-stat-panel__close:hover[b-qp951q8cxt] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
}

/* Content area — scrollable tome pages */
.rw-stat-panel__content[b-qp951q8cxt] {
    flex: 1;
    overflow-y: auto;
    padding: 1.1rem 1.2rem;
    scroll-behavior: smooth;
}

/* Loading state */
.rw-stat-panel__loading[b-qp951q8cxt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 2rem;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    color: var(--rw-text-dim);
    animation: rw-stat-loading-fade-b-qp951q8cxt 1.5s ease-in-out infinite;
}

@keyframes rw-stat-loading-fade-b-qp951q8cxt {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

.rw-stat-panel__spinner[b-qp951q8cxt] {
    width: 20px;
    height: 20px;
    border: 2px solid rgba(196, 160, 64, 0.15);
    border-top-color: var(--rw-gold);
    border-radius: 50%;
    animation: rw-stat-spin-b-qp951q8cxt 0.9s cubic-bezier(0.4, 0.15, 0.6, 0.85) infinite;
}

@keyframes rw-stat-spin-b-qp951q8cxt {
    to { transform: rotate(360deg); }
}

.rw-stat-panel__empty[b-qp951q8cxt] {
    text-align: center;
    padding: 3rem 2rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    font-style: italic;
    letter-spacing: 0.06em;
}


/* ============================================================
   STAT BLOCK — Illuminated-manuscript creature reference
   ============================================================ */

.rw-sb[b-qp951q8cxt] {
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    color: var(--rw-text);
    line-height: 1.55;
    animation: rw-sb-reveal-b-qp951q8cxt 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes rw-sb-reveal-b-qp951q8cxt {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Creature name — large display heading */
.rw-sb__name[b-qp951q8cxt] {
    font-family: var(--rw-font-display);
    font-size: 1.45rem;
    color: var(--rw-blood-bright);
    margin: 0 0 0.1rem;
    line-height: 1.15;
    letter-spacing: 0.01em;
    text-shadow: 0 1px 8px rgba(184, 58, 26, 0.15);
}

/* Meta line — size, type, alignment */
.rw-sb__meta[b-qp951q8cxt] {
    font-family: var(--rw-font-body);
    font-style: italic;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    margin: 0 0 0.4rem;
    line-height: 1.4;
}

/* Separator — blood-red gradient bar (classic 5e feel) */
.rw-sb__sep[b-qp951q8cxt] {
    height: 2px;
    background: linear-gradient(
        90deg,
        var(--rw-blood-bright) 0%,
        rgba(184, 58, 26, 0.35) 40%,
        rgba(184, 58, 26, 0.08) 80%,
        transparent 100%
    );
    margin: 0.5rem 0;
    border: none;
    border-radius: 1px;
}

/* Stat lines — AC, HP, Speed, etc. */
.rw-sb__stat[b-qp951q8cxt] {
    margin: 0.2rem 0;
    font-size: 0.74rem;
    line-height: 1.5;
}

.rw-sb__stat strong[b-qp951q8cxt] {
    color: var(--rw-text-bright);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.rw-sb__stat--compact[b-qp951q8cxt] {
    font-size: 0.68rem;
    margin: 0.12rem 0;
    padding-left: 0.6rem;
    color: var(--rw-text-dim);
    position: relative;
}

.rw-sb__stat--compact[b-qp951q8cxt]::before {
    content: '\2022';
    position: absolute;
    left: 0;
    color: var(--rw-text-faint);
    font-size: 0.5rem;
    top: 0.15rem;
}

/* === ABILITY SCORES — 6-column grid with card treatment === */
.rw-sb__abilities[b-qp951q8cxt] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.35rem;
    text-align: center;
    padding: 0.45rem 0;
}

.rw-sb__ability[b-qp951q8cxt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.3rem 0.15rem;
    border: 1px solid rgba(184, 58, 26, 0.12);
    border-radius: var(--rw-radius-sm);
    background: rgba(184, 58, 26, 0.03);
    transition: border-color 0.2s ease, background 0.2s ease;
}

.rw-sb__ability:hover[b-qp951q8cxt] {
    border-color: rgba(184, 58, 26, 0.25);
    background: rgba(184, 58, 26, 0.06);
}

.rw-sb__ability-label[b-qp951q8cxt] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.18em;
    color: var(--rw-blood-bright);
    font-weight: 700;
    line-height: 1;
    opacity: 0.8;
}

.rw-sb__ability span:last-child[b-qp951q8cxt] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-bright);
    font-weight: 600;
    line-height: 1.2;
}

/* === SECTION TITLES — Actions, Legendary, etc. === */
.rw-sb__section-title[b-qp951q8cxt] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-blood-bright);
    margin: 0.6rem 0 0.2rem;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

/* === FEATURES — Individual abilities/actions === */
.rw-sb__feature[b-qp951q8cxt] {
    margin: 0.35rem 0;
    font-size: 0.72rem;
    line-height: 1.5;
    padding: 0.3rem 0;
    border-bottom: 1px solid rgba(26, 52, 48, 0.25);
}

.rw-sb__feature:last-child[b-qp951q8cxt] {
    border-bottom: none;
}

.rw-sb__feature-name[b-qp951q8cxt] {
    font-style: italic;
    color: var(--rw-text-bright);
    font-weight: 600;
}

/* === SPELL LEVELS === */
.rw-sb__spell-level[b-qp951q8cxt] {
    margin: 0.25rem 0;
    font-size: 0.7rem;
    padding: 0.2rem 0;
    display: flex;
    gap: 0.4rem;
    align-items: baseline;
}

.rw-sb__spell-level-label[b-qp951q8cxt] {
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
    flex-shrink: 0;
    font-weight: 700;
    padding: 0.1rem 0.35rem;
    border: 1px solid rgba(72, 176, 192, 0.15);
    border-radius: var(--rw-radius-sm);
    background: rgba(72, 176, 192, 0.04);
    line-height: 1;
}

.rw-sb__spell-list[b-qp951q8cxt] {
    color: var(--rw-text);
    font-style: italic;
    font-size: 0.68rem;
}

/* === CUSTOM SCROLLBAR === */
.rw-stat-panel__content[b-qp951q8cxt]::-webkit-scrollbar {
    width: 5px;
}

.rw-stat-panel__content[b-qp951q8cxt]::-webkit-scrollbar-track {
    background: transparent;
    margin: 4px 0;
}

.rw-stat-panel__content[b-qp951q8cxt]::-webkit-scrollbar-thumb {
    background: rgba(196, 160, 64, 0.18);
    border-radius: 3px;
    transition: background 0.2s ease;
}

.rw-stat-panel__content[b-qp951q8cxt]::-webkit-scrollbar-thumb:hover {
    background: rgba(196, 160, 64, 0.35);
}

/* === RESPONSIVE === */
@media (max-width: 480px) {
    .rw-stat-panel__drawer[b-qp951q8cxt] {
        width: 100vw;
    }

    .rw-sb__abilities[b-qp951q8cxt] {
        grid-template-columns: repeat(3, 1fr);
    }

    .rw-stat-panel__content[b-qp951q8cxt] {
        padding: 0.85rem 1rem;
    }
}
/* /Components/Sessions/Player/ActiveTurnPanel.razor.rz.scp.css */
/* ============================================================
   ActiveTurnPanel — The Spotlight Moment
   When it's YOUR turn, this panel blazes to life with
   gold-edged action economy toggles.
   ============================================================ */

.rw-active-turn[b-m1bfea2vmy] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.6rem;
    background: linear-gradient(
        170deg,
        rgba(196, 160, 64, 0.06) 0%,
        rgba(15, 32, 40, 0.95) 40%,
        rgba(11, 24, 32, 0.95) 100%
    );
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-md);
    box-shadow:
        0 0 15px rgba(196, 160, 64, 0.12),
        var(--rw-shadow);
    position: relative;
    overflow: hidden;
}

/* Gold accent bar */
.rw-active-turn[b-m1bfea2vmy]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-gold) 20%,
        var(--rw-gold-glow) 50%,
        var(--rw-gold) 80%,
        transparent 100%);
}

/* === HEADER === */

.rw-active-turn__header[b-m1bfea2vmy] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
}

.rw-active-turn__title[b-m1bfea2vmy] {
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    color: var(--rw-gold-glow);
    text-shadow: 0 0 6px rgba(196, 160, 64, 0.3);
}

.rw-active-turn__subtitle[b-m1bfea2vmy] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* === ACTION TOGGLES === */

.rw-active-turn__actions[b-m1bfea2vmy] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.3rem;
}

.rw-action-toggle[b-m1bfea2vmy] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.35rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.05);
    transition: all 0.2s ease;
}

.rw-action-toggle:hover[b-m1bfea2vmy] {
    background: rgba(196, 160, 64, 0.1);
    border-color: var(--rw-gold);
}

.rw-action-toggle--used[b-m1bfea2vmy] {
    border-color: var(--rw-border);
    background: rgba(0, 0, 0, 0.3);
    opacity: 0.5;
}

.rw-action-toggle--used:hover[b-m1bfea2vmy] {
    opacity: 0.7;
    background: rgba(0, 0, 0, 0.2);
    border-color: var(--rw-border);
}

.rw-action-toggle__icon[b-m1bfea2vmy] {
    font-size: 0.8rem;
    line-height: 1;
    flex-shrink: 0;
}

.rw-action-toggle__label[b-m1bfea2vmy] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text);
    flex: 1;
}

.rw-action-toggle--used .rw-action-toggle__label[b-m1bfea2vmy] {
    text-decoration: line-through;
    color: var(--rw-text-faint);
}

.rw-action-toggle__state[b-m1bfea2vmy] {
    font-family: var(--rw-font-ui);
    font-size: 0.5rem;
    color: var(--rw-gold-light);
    flex-shrink: 0;
}

.rw-action-toggle--used .rw-action-toggle__state[b-m1bfea2vmy] {
    color: var(--rw-text-faint);
}

/* === MOVEMENT TRACKER === */

.rw-movement-tracker[b-m1bfea2vmy] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.35rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.05);
    grid-column: 1 / -1;
}

.rw-movement-tracker--depleted[b-m1bfea2vmy] {
    border-color: var(--rw-border);
    background: rgba(0, 0, 0, 0.3);
    opacity: 0.5;
}

.rw-movement-tracker__icon[b-m1bfea2vmy] {
    font-size: 0.8rem;
    line-height: 1;
    flex-shrink: 0;
}

.rw-movement-tracker__label[b-m1bfea2vmy] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text);
}

.rw-movement-tracker__controls[b-m1bfea2vmy] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: auto;
}

.rw-movement-tracker__btn[b-m1bfea2vmy] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    font-weight: 600;
    color: var(--rw-gold-light);
    border: 1px solid var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.08);
    transition: all 0.15s ease;
}

.rw-movement-tracker__btn:hover:not(:disabled)[b-m1bfea2vmy] {
    background: rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-glow);
}

.rw-movement-tracker__btn:disabled[b-m1bfea2vmy] {
    opacity: 0.3;
    cursor: default;
}

.rw-movement-tracker__value[b-m1bfea2vmy] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--rw-gold-light);
    min-width: 32px;
    text-align: center;
}

.rw-movement-tracker--depleted .rw-movement-tracker__value[b-m1bfea2vmy] {
    color: var(--rw-text-faint);
}

/* === END TURN BUTTON === */

.rw-active-turn__end-btn[b-m1bfea2vmy] {
    all: unset;
    cursor: pointer;
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.45rem;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    transition: all 0.2s ease;
}

.rw-active-turn__end-btn:hover[b-m1bfea2vmy] {
    background: rgba(196, 160, 64, 0.22);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-glow);
}
/* /Components/Sessions/Player/ClassResourceCounter.razor.rz.scp.css */
/* ============================================================
   ClassResourceCounter — Earthen War Token
   Compact counter for class resources (Rage, Ki, etc.).
   Warm brass/earth tones — martial and grounded.
   ============================================================ */

.rw-resource-counter[b-ddvznln5fl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    padding: 0.2rem 0;
}

.rw-resource-counter__info[b-ddvznln5fl] {
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
    min-width: 0;
}

.rw-resource-counter__name[b-ddvznln5fl] {
    font-family: var(--rw-font-body);
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--rw-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-resource-counter__recharge[b-ddvznln5fl] {
    font-family: var(--rw-font-ui);
    font-size: 0.45rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(180, 150, 90, 0.6);
    padding: 0.05rem 0.2rem;
    border-radius: 2px;
    border: 1px solid rgba(180, 150, 90, 0.2);
    flex-shrink: 0;
}

.rw-resource-counter__controls[b-ddvznln5fl] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    flex-shrink: 0;
}

.rw-resource-counter__btn[b-ddvznln5fl] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 3px;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
    transition: all 0.15s ease;
}

.rw-resource-counter__btn--minus[b-ddvznln5fl] {
    background: rgba(180, 150, 90, 0.1);
    color: rgba(180, 150, 90, 0.7);
    border: 1px solid rgba(180, 150, 90, 0.2);
}

.rw-resource-counter__btn--minus:hover:not(:disabled)[b-ddvznln5fl] {
    background: rgba(180, 150, 90, 0.2);
    border-color: rgba(180, 150, 90, 0.4);
}

.rw-resource-counter__btn--plus[b-ddvznln5fl] {
    background: rgba(80, 150, 100, 0.1);
    color: rgba(80, 150, 100, 0.7);
    border: 1px solid rgba(80, 150, 100, 0.2);
}

.rw-resource-counter__btn--plus:hover:not(:disabled)[b-ddvznln5fl] {
    background: rgba(80, 150, 100, 0.2);
    border-color: rgba(80, 150, 100, 0.4);
}

.rw-resource-counter__btn:disabled[b-ddvznln5fl] {
    opacity: 0.25;
    cursor: not-allowed;
}

.rw-resource-counter__value[b-ddvznln5fl] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--rw-text);
    min-width: 2rem;
    text-align: center;
}

.rw-resource-counter__sep[b-ddvznln5fl] {
    color: var(--rw-text-faint);
    padding: 0 0.05rem;
}

.rw-resource-counter__value--depleted[b-ddvznln5fl] {
    color: var(--rw-blood-bright);
}

/* === CUSTOM RESOURCE DISTINCTION === */

.rw-resource-counter--custom[b-ddvznln5fl] {
    border-left: 2px solid rgba(106, 74, 138, 0.4);
    padding-left: 0.35rem;
}

.rw-resource-counter__custom-tag[b-ddvznln5fl] {
    font-family: var(--rw-font-ui);
    font-size: 0.4rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(106, 74, 138, 0.7);
    padding: 0.02rem 0.15rem;
    border-radius: 2px;
    border: 1px solid rgba(106, 74, 138, 0.25);
    background: rgba(106, 74, 138, 0.06);
    flex-shrink: 0;
}
/* /Components/Sessions/Player/DeathSavePanel.razor.rz.scp.css */
/* ============================================================
   DeathSavePanel — The Veil Between
   A stark, solemn interface for the most critical rolls.
   Dark void background with blood-red and verdant accents.
   ============================================================ */

.rw-death-save[b-p6elvifxox] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.7rem;
    background: linear-gradient(
        170deg,
        rgba(139, 37, 0, 0.06) 0%,
        rgba(7, 14, 20, 0.98) 30%,
        rgba(7, 14, 20, 0.98) 100%
    );
    border: 1px solid rgba(139, 37, 0, 0.35);
    border-radius: var(--rw-radius-md);
    box-shadow:
        0 0 15px rgba(139, 37, 0, 0.1),
        var(--rw-shadow-deep);
    position: relative;
    overflow: hidden;
}

/* Blood accent */
.rw-death-save[b-p6elvifxox]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-blood) 30%,
        var(--rw-blood-bright) 50%,
        var(--rw-blood) 70%,
        transparent 100%);
    animation: rw-death-accent-pulse-b-p6elvifxox 3s ease-in-out infinite;
}

@keyframes rw-death-accent-pulse-b-p6elvifxox {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

/* === HEADER === */

.rw-death-save__header[b-p6elvifxox] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.rw-death-save__icon[b-p6elvifxox] {
    font-size: 1rem;
}

.rw-death-save__title[b-p6elvifxox] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
    color: var(--rw-blood-bright);
    text-shadow: 0 0 6px rgba(184, 58, 26, 0.3);
}

/* === STATUS MESSAGES === */

.rw-death-save__status[b-p6elvifxox] {
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    font-style: italic;
    padding: 0.3rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    text-align: center;
}

.rw-death-status--dead[b-p6elvifxox] {
    color: var(--rw-blood-bright);
    background: rgba(139, 37, 0, 0.15);
    border: 1px solid rgba(139, 37, 0, 0.3);
}

.rw-death-status--stable[b-p6elvifxox] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.25);
}

.rw-death-status--crit-fail[b-p6elvifxox] {
    color: #ff6b4a;
    background: rgba(184, 58, 26, 0.15);
    border: 1px solid rgba(184, 58, 26, 0.35);
    animation: rw-death-crit-fail-flash-b-p6elvifxox 0.5s ease-out;
}

@keyframes rw-death-crit-fail-flash-b-p6elvifxox {
    0% { box-shadow: 0 0 20px rgba(184, 58, 26, 0.6); }
    100% { box-shadow: 0 0 0 rgba(184, 58, 26, 0); }
}

/* === PIP DISPLAY === */

.rw-death-save__pips[b-p6elvifxox] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-death-pip-row[b-p6elvifxox] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-death-pip-label[b-p6elvifxox] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    width: 60px;
    flex-shrink: 0;
}

.rw-death-pip-label--success[b-p6elvifxox] {
    color: var(--rw-verdant);
}

.rw-death-pip-label--failure[b-p6elvifxox] {
    color: var(--rw-blood);
}

.rw-death-pip-group[b-p6elvifxox] {
    display: flex;
    gap: 0.3rem;
}

.rw-death-pip[b-p6elvifxox] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--rw-border);
    background: transparent;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.rw-death-pip--success[b-p6elvifxox] {
    background: var(--rw-verdant-bright);
    border-color: var(--rw-verdant-bright);
    box-shadow: 0 0 6px rgba(80, 176, 104, 0.5);
    animation: rw-death-pip-fill-b-p6elvifxox 0.3s ease-out;
}

.rw-death-pip--failure[b-p6elvifxox] {
    background: var(--rw-blood-bright);
    border-color: var(--rw-blood-bright);
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.5);
    animation: rw-death-pip-fill-b-p6elvifxox 0.3s ease-out;
}

@keyframes rw-death-pip-fill-b-p6elvifxox {
    from { transform: scale(0.5); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

/* === ROLL BUTTON === */

.rw-death-save__roll-btn[b-p6elvifxox] {
    all: unset;
    cursor: pointer;
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-bright);
    background: rgba(139, 37, 0, 0.15);
    border: 1px solid rgba(139, 37, 0, 0.4);
    border-radius: var(--rw-radius-sm);
    transition: all 0.2s ease;
}

.rw-death-save__roll-btn:hover:not(:disabled)[b-p6elvifxox] {
    background: rgba(139, 37, 0, 0.3);
    border-color: var(--rw-blood-bright);
    box-shadow: 0 0 12px rgba(184, 58, 26, 0.2);
    color: #ff8a6a;
}

.rw-death-save__roll-btn:disabled[b-p6elvifxox] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* === LAST ROLL === */

.rw-death-save__last-roll[b-p6elvifxox] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.3rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.3);
}

.rw-last-roll-value[b-p6elvifxox] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
}

.rw-last-roll-label[b-p6elvifxox] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
}

.rw-last-roll--nat20 .rw-last-roll-value[b-p6elvifxox] {
    color: var(--rw-gold-glow);
    text-shadow: 0 0 12px rgba(196, 160, 64, 0.5);
}

.rw-last-roll--nat20 .rw-last-roll-label[b-p6elvifxox] {
    color: var(--rw-gold-light);
}

.rw-last-roll--nat1 .rw-last-roll-value[b-p6elvifxox] {
    color: #ff6b4a;
    text-shadow: 0 0 12px rgba(184, 58, 26, 0.5);
}

.rw-last-roll--nat1 .rw-last-roll-label[b-p6elvifxox] {
    color: var(--rw-blood-bright);
}

.rw-last-roll--success .rw-last-roll-value[b-p6elvifxox] {
    color: var(--rw-verdant-bright);
}

.rw-last-roll--success .rw-last-roll-label[b-p6elvifxox] {
    color: var(--rw-verdant);
}

.rw-last-roll--failure .rw-last-roll-value[b-p6elvifxox] {
    color: var(--rw-blood-bright);
}

.rw-last-roll--failure .rw-last-roll-label[b-p6elvifxox] {
    color: var(--rw-blood);
}
/* /Components/Sessions/Player/LootPromptCard.razor.rz.scp.css */
/* ============================================================
   LootPromptCard — Treasure Manifest
   Multi-phase loot interaction: Search → Results → Collect.
   Dark parchment aesthetic with gold treasure accents.
   ============================================================ */

.rw-loot-prompt[b-dbhl866iti] {
    position: relative;
    background: linear-gradient(170deg,
        rgba(20, 32, 28, 0.97) 0%,
        rgba(10, 18, 16, 0.95) 100%);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    animation: rw-loot-materialize-b-dbhl866iti 0.4s ease-out;
}

@keyframes rw-loot-materialize-b-dbhl866iti {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* === STATE MODIFIERS === */

.rw-loot-prompt--pending[b-dbhl866iti] {
    border-color: rgba(196, 160, 64, 0.25);
}

.rw-loot-prompt--searched[b-dbhl866iti] {
    border-color: rgba(58, 128, 168, 0.3);
}

.rw-loot-prompt--collected-state[b-dbhl866iti] {
    border-color: rgba(61, 138, 85, 0.25);
    opacity: 0.75;
}

/* === ACCENT SHIMMER === */

.rw-loot-prompt__accent[b-dbhl866iti] {
    height: 2px;
    background: linear-gradient(90deg,
        transparent,
        var(--rw-gold) 20%,
        var(--rw-gold-glow) 50%,
        var(--rw-gold) 80%,
        transparent);
    animation: rw-loot-shimmer-b-dbhl866iti 3s ease-in-out infinite;
}

@keyframes rw-loot-shimmer-b-dbhl866iti {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

.rw-loot-prompt--collected-state .rw-loot-prompt__accent[b-dbhl866iti] {
    background: linear-gradient(90deg,
        transparent,
        var(--rw-verdant) 20%,
        var(--rw-verdant-bright) 50%,
        var(--rw-verdant) 80%,
        transparent);
}

/* === HEADER === */

.rw-loot-prompt__header[b-dbhl866iti] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.5rem 0.2rem;
}

.rw-loot-prompt__skull[b-dbhl866iti] {
    font-size: 0.85rem;
    filter: grayscale(0.3);
}

.rw-loot-prompt__identity[b-dbhl866iti] {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.rw-loot-prompt__type-label[b-dbhl866iti] {
    font-family: var(--rw-font-sc);
    font-size: 0.42rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-loot-prompt__monster-name[b-dbhl866iti] {
    font-family: var(--rw-font-display);
    font-size: 0.75rem;
    color: var(--rw-text-bright);
    line-height: 1.2;
}

/* === FLAVOR TEXT === */

.rw-loot-prompt__flavor[b-dbhl866iti] {
    font-family: var(--rw-font-body);
    font-size: 0.6rem;
    font-style: italic;
    color: var(--rw-sage-tan);
    padding: 0 0.5rem 0.3rem;
    margin: 0;
    line-height: 1.4;
}

/* === ACTIONS === */

.rw-loot-prompt__actions[b-dbhl866iti] {
    padding: 0.3rem 0.5rem 0.4rem;
    display: flex;
    gap: 0.3rem;
}

.rw-loot-prompt__btn[b-dbhl866iti] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    width: 100%;
    text-align: center;
    padding: 0.3rem 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.04em;
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-loot-prompt__btn--search[b-dbhl866iti] {
    color: var(--rw-gold-light);
    background: linear-gradient(135deg,
        rgba(196, 160, 64, 0.18) 0%,
        rgba(196, 160, 64, 0.06) 100%);
    border: 1px solid rgba(196, 160, 64, 0.35);
}

.rw-loot-prompt__btn--search:not(:disabled):hover[b-dbhl866iti] {
    background: linear-gradient(135deg,
        rgba(196, 160, 64, 0.28) 0%,
        rgba(196, 160, 64, 0.1) 100%);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
}

.rw-loot-prompt__btn--collect[b-dbhl866iti] {
    color: var(--rw-verdant-bright);
    background: linear-gradient(135deg,
        rgba(61, 138, 85, 0.18) 0%,
        rgba(61, 138, 85, 0.06) 100%);
    border: 1px solid rgba(61, 138, 85, 0.35);
}

.rw-loot-prompt__btn--collect:not(:disabled):hover[b-dbhl866iti] {
    background: linear-gradient(135deg,
        rgba(61, 138, 85, 0.28) 0%,
        rgba(61, 138, 85, 0.1) 100%);
    box-shadow: 0 0 12px rgba(61, 138, 85, 0.15);
}

.rw-loot-prompt__btn:disabled[b-dbhl866iti] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* Spinner for loading states */
.rw-loot-prompt__spinner[b-dbhl866iti] {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: rw-loot-spin-b-dbhl866iti 0.6s linear infinite;
}

@keyframes rw-loot-spin-b-dbhl866iti {
    to { transform: rotate(360deg); }
}

/* === RESULTS === */

.rw-loot-prompt__results[b-dbhl866iti] {
    padding: 0 0.5rem;
}

.rw-loot-prompt__results-flavor[b-dbhl866iti] {
    font-family: var(--rw-font-body);
    font-size: 0.55rem;
    color: var(--rw-sage-tan);
    margin: 0 0 0.25rem;
    line-height: 1.3;
}

.rw-loot-prompt__item-list[b-dbhl866iti] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.2rem 0;
}

.rw-loot-prompt__item[b-dbhl866iti] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.3rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    animation: rw-loot-item-reveal-b-dbhl866iti 0.25s ease-out both;
}

.rw-loot-prompt__item:nth-child(1)[b-dbhl866iti] { animation-delay: 0.05s; }
.rw-loot-prompt__item:nth-child(2)[b-dbhl866iti] { animation-delay: 0.1s; }
.rw-loot-prompt__item:nth-child(3)[b-dbhl866iti] { animation-delay: 0.15s; }
.rw-loot-prompt__item:nth-child(4)[b-dbhl866iti] { animation-delay: 0.2s; }
.rw-loot-prompt__item:nth-child(5)[b-dbhl866iti] { animation-delay: 0.25s; }

@keyframes rw-loot-item-reveal-b-dbhl866iti {
    from {
        opacity: 0;
        transform: translateX(-6px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.rw-loot-prompt__item-badge[b-dbhl866iti] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    font-size: 0.55rem;
    border-radius: var(--rw-radius-sm);
    flex-shrink: 0;
}

.rw-loot-prompt__item-badge--equipment[b-dbhl866iti] {
    background: rgba(139, 37, 0, 0.15);
    border: 1px solid rgba(184, 58, 26, 0.25);
}

.rw-loot-prompt__item-badge--magicitem[b-dbhl866iti] {
    background: rgba(106, 74, 138, 0.15);
    border: 1px solid rgba(106, 74, 138, 0.3);
}

.rw-loot-prompt__item-badge--component[b-dbhl866iti] {
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.25);
}

.rw-loot-prompt__item-badge--junk[b-dbhl866iti] {
    background: rgba(74, 96, 88, 0.15);
    border: 1px solid rgba(106, 136, 120, 0.2);
}

.rw-loot-prompt__item-badge--custom[b-dbhl866iti] {
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.15);
}

.rw-loot-prompt__item-name[b-dbhl866iti] {
    font-family: var(--rw-font-body);
    font-size: 0.58rem;
    color: var(--rw-text-bright);
    flex: 1;
}

.rw-loot-prompt__item-qty[b-dbhl866iti] {
    font-family: var(--rw-font-ui);
    font-size: 0.5rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    padding: 0.05rem 0.2rem;
    border-radius: 999px;
}

/* === CURRENCY === */

.rw-loot-prompt__currency[b-dbhl866iti] {
    display: flex;
    gap: 0.3rem;
    padding: 0.1rem 0.3rem 0.15rem 1.6rem;
}

.rw-loot-prompt__coin[b-dbhl866iti] {
    font-family: var(--rw-font-ui);
    font-size: 0.48rem;
    font-weight: 600;
}

.rw-loot-prompt__coin--pp[b-dbhl866iti] { color: #c0c8d8; }
.rw-loot-prompt__coin--gp[b-dbhl866iti] { color: var(--rw-gold-light); }
.rw-loot-prompt__coin--ep[b-dbhl866iti] { color: #8aa0b0; }
.rw-loot-prompt__coin--sp[b-dbhl866iti] { color: #a0b0b8; }
.rw-loot-prompt__coin--cp[b-dbhl866iti] { color: #b08060; }

/* === EMPTY RESULT === */

.rw-loot-prompt__empty-result[b-dbhl866iti] {
    font-family: var(--rw-font-body);
    font-size: 0.55rem;
    font-style: italic;
    color: var(--rw-text-faint);
    text-align: center;
    padding: 0.4rem 0;
    margin: 0;
}

/* === COLLECTED STATE === */

.rw-loot-prompt__collected[b-dbhl866iti] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    padding: 0.4rem 0.5rem;
}

.rw-loot-prompt__collected-icon[b-dbhl866iti] {
    font-size: 0.7rem;
    color: var(--rw-verdant-bright);
    animation: rw-loot-check-b-dbhl866iti 0.3s ease-out;
}

@keyframes rw-loot-check-b-dbhl866iti {
    from { transform: scale(0); }
    50% { transform: scale(1.3); }
    to { transform: scale(1); }
}

.rw-loot-prompt__collected-text[b-dbhl866iti] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.04em;
    color: var(--rw-verdant-bright);
}

/* === UTILITY === */

.rw-fade-in[b-dbhl866iti] {
    animation: rw-loot-fade-in-b-dbhl866iti 0.25s ease-out;
}

@keyframes rw-loot-fade-in-b-dbhl866iti {
    from { opacity: 0; }
    to { opacity: 1; }
}
/* /Components/Sessions/Player/PlayerActionBar.razor.rz.scp.css */
/* ============================================================
   Player Action Bar — Slides in below hero card on turn
   ============================================================ */

.action-bar[b-e25g7629ww] {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.action-bar--visible[b-e25g7629ww] {
    max-height: 200px;
}

.action-bar__inner[b-e25g7629ww] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 0;
}

/* Turn label */
.action-bar__turn-label[b-e25g7629ww] {
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.06em;
}

/* Action toggles row */
.action-bar__toggles[b-e25g7629ww] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    justify-content: center;
}

/* Individual action button */
.action-btn[b-e25g7629ww] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.5rem 0.7rem;
    min-width: 68px;
    min-height: 56px;
    border: 1px solid rgba(80, 176, 104, 0.25);
    border-radius: var(--rw-radius-md);
    background: rgba(80, 176, 104, 0.06);
    color: var(--rw-verdant-bright);
    cursor: pointer;
    transition: all var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.action-btn:hover:not(.action-btn--used)[b-e25g7629ww] {
    background: rgba(80, 176, 104, 0.12);
    border-color: rgba(80, 176, 104, 0.4);
}

.action-btn:active[b-e25g7629ww] {
    transform: scale(0.96);
}

/* Used state */
.action-btn--used[b-e25g7629ww] {
    border-color: var(--rw-border);
    background: rgba(15, 32, 40, 0.3);
    color: var(--rw-text-faint);
    opacity: 0.6;
}

.action-btn--used .action-btn__icon[b-e25g7629ww] {
    opacity: 0.3;
}

.action-btn__icon[b-e25g7629ww] {
    flex-shrink: 0;
    transition: opacity var(--rw-transition);
}

.action-btn__label[b-e25g7629ww] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
}

.action-btn__state[b-e25g7629ww] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    color: var(--rw-text-faint);
    min-height: 0.7em;
}

/* Movement controls */
.action-btn--movement[b-e25g7629ww] {
    cursor: default;
}

.action-btn__movement-controls[b-e25g7629ww] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
}

.movement-step[b-e25g7629ww] {
    width: 24px;
    height: 20px;
    border: 1px solid var(--rw-border);
    border-radius: 3px;
    background: rgba(15, 32, 40, 0.5);
    color: var(--rw-text-dim);
    font-size: 0.6rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--rw-transition);
    padding: 0;
}

.movement-step:hover:not(:disabled)[b-e25g7629ww] {
    border-color: var(--rw-verdant);
    color: var(--rw-text);
}

.movement-step:disabled[b-e25g7629ww] {
    opacity: 0.3;
    cursor: not-allowed;
}

.movement-value[b-e25g7629ww] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--rw-text);
    min-width: 32px;
    text-align: center;
}

/* End Turn button */
.action-bar__end-btn[b-e25g7629ww] {
    padding: 0.5rem 2rem;
    min-height: 44px;
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-md);
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.action-bar__end-btn:hover[b-e25g7629ww] {
    background: rgba(196, 160, 64, 0.18);
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.12);
}

.action-bar__end-btn:active[b-e25g7629ww] {
    transform: scale(0.97);
}

/* === RESPONSIVE === */
@media (max-width: 480px) {
    .action-bar__toggles[b-e25g7629ww] {
        gap: 0.3rem;
    }

    .action-btn[b-e25g7629ww] {
        min-width: 60px;
        padding: 0.4rem 0.5rem;
    }
}
/* /Components/Sessions/Player/PlayerDashboard.razor.rz.scp.css */
/* ============================================================
   Player Dashboard — Hero's Lens Layout
   Centered flex column: Turn strip + Hero card + Tools
   ============================================================ */

.player-dashboard[b-icrv8lvnc9] {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 52px - 48px);
    gap: 0.5rem;
}

/* === TURN STRIP (compact ambient header) === */
.player-dashboard__strip[b-icrv8lvnc9] {
    flex-shrink: 0;
    border-bottom: 1px solid var(--rw-border);
    background: rgba(11, 24, 32, 0.4);
    border-radius: var(--rw-radius-md);
}

/* === HERO SECTION (centered character card + action bar) === */
.player-dashboard__hero[b-icrv8lvnc9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem 0.75rem;
    flex-shrink: 0;
    animation: player-hero-appear-b-icrv8lvnc9 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes player-hero-appear-b-icrv8lvnc9 {
    from { opacity: 0; transform: translateY(16px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.player-dashboard__no-character[b-icrv8lvnc9] {
    text-align: center;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    padding: 2rem;
}

/* === LOOT PROMPTS === */
.player-dashboard__loot-prompt[b-icrv8lvnc9] {
    padding: 0 0.75rem;
}

/* === ENCOUNTER RECAP === */
.player-dashboard__recap[b-icrv8lvnc9] {
    background: rgba(15, 32, 40, 0.6);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    margin: 0 0.75rem;
}

/* === SECONDARY TOOLS (tabbed: dice / log / loot) === */
.player-dashboard__tools[b-icrv8lvnc9] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 200px;
    background: rgba(15, 32, 40, 0.3);
    border-top: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md) var(--rw-radius-md) 0 0;
    animation: player-tools-slide-b-icrv8lvnc9 0.5s 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@keyframes player-tools-slide-b-icrv8lvnc9 {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Tab bar */
.player-tools__tabs[b-icrv8lvnc9] {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.player-tools__tab[b-icrv8lvnc9] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 1rem;
    min-height: 44px;
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.player-tools__tab:hover[b-icrv8lvnc9] {
    color: var(--rw-text);
    background: rgba(80, 176, 104, 0.04);
}

.player-tools__tab--active[b-icrv8lvnc9] {
    color: var(--rw-verdant-bright);
    border-bottom-color: var(--rw-verdant-bright);
}

/* Tab content */
.player-tools__content[b-icrv8lvnc9] {
    flex: 1;
    overflow-y: auto;
    padding: 0.5rem 0.75rem;
    min-height: 0;
}

/* Session log entries */
.player-log[b-icrv8lvnc9] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.player-log__entry[b-icrv8lvnc9] {
    display: flex;
    gap: 0.5rem;
    padding: 0.2rem 0;
    font-size: 0.8rem;
    border-bottom: 1px solid rgba(26, 52, 48, 0.3);
}

.player-log__time[b-icrv8lvnc9] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    flex-shrink: 0;
    font-size: 0.7rem;
    padding-top: 0.1rem;
}

.player-log__message[b-icrv8lvnc9] {
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .player-dashboard[b-icrv8lvnc9] {
        min-height: calc(100vh - 48px);
    }

    .player-dashboard__hero[b-icrv8lvnc9] {
        padding: 0.75rem 0.5rem;
    }
}
/* /Components/Sessions/Player/PlayerHeroCard.razor.rz.scp.css */
/* ============================================================
   Player Hero Card — Character-centric focal element
   ============================================================ */

.hero-card[b-3iqqwbymjm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 1.25rem;
    background: rgba(15, 32, 40, 0.7);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
    transition: border-color 0.4s ease,
                box-shadow 0.4s ease,
                transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* === ACTIVE TURN — Gold glow + slight scale === */
.hero-card--active-turn[b-3iqqwbymjm] {
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 30px rgba(196, 160, 64, 0.15),
                0 0 60px rgba(196, 160, 64, 0.08),
                var(--rw-shadow);
    transform: scale(1.02);
    animation: hero-turn-pulse-b-3iqqwbymjm 3s ease-in-out infinite;
}

@keyframes hero-turn-pulse-b-3iqqwbymjm {
    0%, 100% { box-shadow: 0 0 30px rgba(196, 160, 64, 0.15), 0 0 60px rgba(196, 160, 64, 0.08), var(--rw-shadow); }
    50% { box-shadow: 0 0 40px rgba(196, 160, 64, 0.22), 0 0 80px rgba(196, 160, 64, 0.1), var(--rw-shadow); }
}

/* HP State borders */
.hero-card--bloodied[b-3iqqwbymjm] {
    border-color: rgba(196, 160, 64, 0.3);
}

.hero-card--critical[b-3iqqwbymjm] {
    border-color: rgba(184, 58, 26, 0.4);
    animation: hero-critical-pulse-b-3iqqwbymjm 1.5s ease-in-out infinite;
}

@keyframes hero-critical-pulse-b-3iqqwbymjm {
    0%, 100% { border-color: rgba(184, 58, 26, 0.4); }
    50% { border-color: rgba(184, 58, 26, 0.7); }
}

.hero-card--down[b-3iqqwbymjm] {
    border-color: rgba(184, 58, 26, 0.3);
    opacity: 0.9;
}

.hero-card--dead[b-3iqqwbymjm] {
    border-color: var(--rw-border);
    opacity: 0.5;
    filter: grayscale(0.6);
}

/* === EMPTY STATE === */
.hero-card__empty[b-3iqqwbymjm] {
    text-align: center;
    color: var(--rw-text-dim);
    padding: 2rem;
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
}

/* === PORTRAIT + HP ARC === */
.hero-card__portrait-ring[b-3iqqwbymjm] {
    position: relative;
    width: 160px;
    height: 160px;
    flex-shrink: 0;
}

.hero-card__hp-arc[b-3iqqwbymjm] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero-card__hp-fill[b-3iqqwbymjm] {
    transition: stroke-dashoffset 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                stroke 0.3s ease;
}

.hero-card__portrait[b-3iqqwbymjm] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--rw-bg-moss);
    border: 2px solid var(--rw-border);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    animation: hero-portrait-breathe-b-3iqqwbymjm 4s ease-in-out infinite;
}

@keyframes hero-portrait-breathe-b-3iqqwbymjm {
    0%, 100% { box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4); }
    50% { box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4), 0 0 15px rgba(80, 176, 104, 0.1); }
}

.hero-card__portrait img[b-3iqqwbymjm] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* === CHARACTER NAME === */
.hero-card__name[b-3iqqwbymjm] {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    color: var(--rw-text-bright);
    margin: 0;
    text-align: center;
    line-height: 1.2;
}

/* === HP DISPLAY === */
.hero-card__hp-display[b-3iqqwbymjm] {
    display: flex;
    align-items: baseline;
    gap: 0.15rem;
    font-family: var(--rw-font-ui);
}

.hero-card__hp-current[b-3iqqwbymjm] {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--rw-text-bright);
    line-height: 1;
}

.hero-card__hp-separator[b-3iqqwbymjm] {
    font-size: 1.1rem;
    color: var(--rw-text-faint);
}

.hero-card__hp-max[b-3iqqwbymjm] {
    font-size: 1.1rem;
    color: var(--rw-text-dim);
}

.hero-card__hp-label[b-3iqqwbymjm] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    margin-left: 0.3rem;
    font-weight: 600;
}

.hero-card__temp-hp[b-3iqqwbymjm] {
    font-size: 0.7rem;
    color: var(--rw-arcane-cyan);
    margin-left: 0.4rem;
}

/* === BLOODIED INDICATOR === */
.hero-card__bloodied[b-3iqqwbymjm] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-gold);
    padding: 0.15rem 0.5rem;
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: 999px;
    background: rgba(196, 160, 64, 0.08);
}

/* === DEATH SAVES (integrated) === */
.hero-card__death-saves[b-3iqqwbymjm] {
    width: 100%;
    padding: 0.5rem 0;
    border-top: 1px solid var(--rw-border);
    border-bottom: 1px solid var(--rw-border);
}

/* === STAT BADGES === */
.hero-card__stats[b-3iqqwbymjm] {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

.hero-stat[b-3iqqwbymjm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.4rem 0.6rem;
    background: rgba(15, 32, 40, 0.5);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    min-width: 56px;
}

.hero-stat__icon[b-3iqqwbymjm] {
    color: var(--rw-text-faint);
    opacity: 0.7;
}

.hero-stat__value[b-3iqqwbymjm] {
    font-family: var(--rw-font-ui);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rw-text-bright);
    line-height: 1;
}

.hero-stat__label[b-3iqqwbymjm] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    font-weight: 600;
}

/* === CONCENTRATION === */
.hero-card__concentration[b-3iqqwbymjm] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.6rem;
    background: rgba(106, 74, 138, 0.1);
    border: 1px solid rgba(106, 74, 138, 0.25);
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text);
    width: 100%;
    animation: concentration-glow-b-3iqqwbymjm 2s ease-in-out infinite;
}

@keyframes concentration-glow-b-3iqqwbymjm {
    0%, 100% { box-shadow: none; }
    50% { box-shadow: 0 0 12px rgba(106, 74, 138, 0.15); }
}

.hero-card__concentration-icon[b-3iqqwbymjm] {
    font-size: 1rem;
}

/* === CONDITIONS === */
.hero-card__conditions[b-3iqqwbymjm] {
    width: 100%;
}

/* === RESOURCES (collapsible) === */
.hero-card__resources[b-3iqqwbymjm] {
    width: 100%;
    border-top: 1px solid var(--rw-border);
    padding-top: 0.4rem;
}

.hero-card__resource-toggle[b-3iqqwbymjm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.35rem 0.25rem;
    background: none;
    border: none;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--rw-transition);
    min-height: 36px;
}

.hero-card__resource-toggle:hover[b-3iqqwbymjm] {
    color: var(--rw-text);
}

.hero-card__chevron[b-3iqqwbymjm] {
    font-size: 0.55rem;
    transition: transform var(--rw-transition);
}

.hero-card__chevron--open[b-3iqqwbymjm] {
    transform: rotate(180deg);
}

.hero-card__resource-content[b-3iqqwbymjm] {
    padding: 0.25rem 0;
}

/* === RESPONSIVE === */
@media (max-width: 480px) {
    .hero-card[b-3iqqwbymjm] {
        padding: 1rem;
        max-width: 100%;
    }

    .hero-card__portrait-ring[b-3iqqwbymjm] {
        width: 130px;
        height: 130px;
    }

    .hero-card__portrait[b-3iqqwbymjm] {
        width: 96px;
        height: 96px;
    }

    .hero-card__portrait-initial[b-3iqqwbymjm] {
        font-size: 2rem;
    }

    .hero-card__name[b-3iqqwbymjm] {
        font-size: 1.1rem;
    }
}
/* /Components/Sessions/Player/PlayerInitiativePanel.razor.rz.scp.css */
/* ============================================================
   PlayerInitiativePanel — The Fog Glass
   A veiled view into the battlefield. The player sees through
   enchanted mist — shapes moving, but details hidden.
   ============================================================ */

.rw-player-init[b-xxnn6sjk5x] {
    overflow: hidden;
}

.rw-player-init__header[b-xxnn6sjk5x] {
    flex-shrink: 0;
}

.rw-player-init__body[b-xxnn6sjk5x] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.5rem;
    overflow-y: auto;
    min-height: 0;
}

.rw-player-init__empty[b-xxnn6sjk5x] {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    font-style: italic;
}

.rw-player-init__status[b-xxnn6sjk5x] {
    padding: 0.3rem 0;
}

/* === YOUR TURN — gold pulse beacon === */

.rw-player-init__your-turn[b-xxnn6sjk5x] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    background: radial-gradient(
        ellipse at center,
        rgba(196, 160, 64, 0.12) 0%,
        rgba(15, 32, 40, 0.4) 100%
    );
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-md);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.15);
    animation: rw-your-turn-beacon-b-xxnn6sjk5x 2s ease-in-out infinite;
}

.rw-your-turn-icon[b-xxnn6sjk5x] {
    font-size: 1.2rem;
    animation: rw-your-turn-sway-b-xxnn6sjk5x 1.5s ease-in-out infinite;
}

.rw-your-turn-text[b-xxnn6sjk5x] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-gold-glow);
    text-shadow: 0 0 8px rgba(196, 160, 64, 0.4);
    letter-spacing: 0.03em;
}

@keyframes rw-your-turn-beacon-b-xxnn6sjk5x {
    0%, 100% { box-shadow: 0 0 20px rgba(196, 160, 64, 0.15); }
    50% { box-shadow: 0 0 30px rgba(196, 160, 64, 0.3); }
}

@keyframes rw-your-turn-sway-b-xxnn6sjk5x {
    0%, 100% { transform: rotate(-3deg); }
    50% { transform: rotate(3deg); }
}

/* === WAITING STATE === */

.rw-player-init__waiting[b-xxnn6sjk5x] {
    text-align: center;
    padding: 0.4rem 0.8rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.2);
}

.rw-waiting-text[b-xxnn6sjk5x] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
}

.rw-waiting-text strong[b-xxnn6sjk5x] {
    color: var(--rw-text);
}
/* /Components/Sessions/Player/PlayerPromptOverlay.razor.rz.scp.css */
/* ============================================================
   Player Prompt Overlay — Dramatic overlay for incoming prompts
   ============================================================ */

.prompt-overlay[b-4vhyj1g1ii] {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: prompt-overlay-enter-b-4vhyj1g1ii 0.3s ease;
}

@keyframes prompt-overlay-enter-b-4vhyj1g1ii {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

.prompt-overlay__backdrop[b-4vhyj1g1ii] {
    position: absolute;
    inset: 0;
    background: rgba(7, 14, 20, 0.7);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.prompt-overlay__content[b-4vhyj1g1ii] {
    position: relative;
    z-index: 1;
    width: min(92%, 440px);
    max-height: 80vh;
    overflow-y: auto;
    animation: prompt-slide-up-b-4vhyj1g1ii 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);

    /* Role-accent border glow */
    border-radius: var(--rw-radius-lg);
    box-shadow: 0 0 40px rgba(80, 176, 104, 0.12),
                0 8px 40px rgba(0, 0, 0, 0.5);
}

@keyframes prompt-slide-up-b-4vhyj1g1ii {
    0% { opacity: 0; transform: translateY(30px) scale(0.97); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* === RESPONSIVE === */
@media (max-width: 480px) {
    .prompt-overlay__content[b-4vhyj1g1ii] {
        width: 96%;
        max-height: 85vh;
    }
}
/* /Components/Sessions/Player/PlayerPromptRegion.razor.rz.scp.css */
/* ============================================================
   PlayerPromptRegion — Arcane Summons
   Prompt cards that materialize like enchanted missives —
   urgent, glowing, demanding immediate attention.
   ============================================================ */

.rw-prompt-card[b-7ngyrk1iz9] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.6rem;
    background: linear-gradient(
        170deg,
        rgba(106, 74, 138, 0.08) 0%,
        rgba(15, 32, 40, 0.95) 30%,
        rgba(11, 24, 32, 0.95) 100%
    );
    border: 1px solid rgba(106, 74, 138, 0.4);
    border-radius: var(--rw-radius-md);
    box-shadow:
        0 0 12px rgba(106, 74, 138, 0.15),
        var(--rw-shadow);
    position: relative;
    overflow: hidden;
    animation: rw-prompt-materialize-b-7ngyrk1iz9 0.3s ease-out;
}

/* Arcane accent bar */
.rw-prompt-card[b-7ngyrk1iz9]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-arcane-purple) 25%,
        var(--rw-arcane-cyan) 50%,
        var(--rw-arcane-purple) 75%,
        transparent 100%);
    animation: rw-prompt-shimmer-b-7ngyrk1iz9 2s ease-in-out infinite;
}

@keyframes rw-prompt-materialize-b-7ngyrk1iz9 {
    from {
        opacity: 0;
        transform: translateY(6px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes rw-prompt-shimmer-b-7ngyrk1iz9 {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* === HEADER === */

.rw-prompt-card__header[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-prompt-card__icon[b-7ngyrk1iz9] {
    font-size: 1rem;
    flex-shrink: 0;
}

.rw-prompt-card__titles[b-7ngyrk1iz9] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.rw-prompt-card__type[b-7ngyrk1iz9] {
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-arcane-purple);
}

.rw-prompt-card__title[b-7ngyrk1iz9] {
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    color: var(--rw-text-bright);
    line-height: 1.2;
}

.rw-prompt-card__queue-badge[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(106, 74, 138, 0.3);
    border: 1px solid rgba(106, 74, 138, 0.5);
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    font-weight: 700;
    color: var(--rw-text);
    flex-shrink: 0;
}

/* === DESCRIPTION === */

.rw-prompt-card__desc[b-7ngyrk1iz9] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-text);
    line-height: 1.4;
    margin: 0;
}

/* === INFO TAGS === */

.rw-prompt-card__info[b-7ngyrk1iz9] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.rw-prompt-info-tag[b-7ngyrk1iz9] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-weight: 600;
}

.rw-prompt-info--dice[b-7ngyrk1iz9] {
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.25);
    color: var(--rw-arcane-cyan);
}

.rw-prompt-info--dc[b-7ngyrk1iz9] {
    background: rgba(184, 58, 26, 0.08);
    border: 1px solid rgba(184, 58, 26, 0.25);
    color: var(--rw-blood-bright);
}

/* === ACTION BUTTONS === */

.rw-prompt-card__actions[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.rw-prompt-btn[b-7ngyrk1iz9] {
    all: unset;
    cursor: pointer;
    padding: 0.3rem 0.65rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: all 0.15s ease;
    border: 1px solid transparent;
    white-space: nowrap;
}

.rw-prompt-btn:disabled[b-7ngyrk1iz9] {
    opacity: 0.35;
    cursor: not-allowed;
}

.rw-prompt-btn--roll[b-7ngyrk1iz9] {
    background: rgba(72, 176, 192, 0.12);
    border-color: var(--rw-arcane-cyan);
    color: var(--rw-arcane-cyan);
}

.rw-prompt-btn--roll:hover[b-7ngyrk1iz9] {
    background: rgba(72, 176, 192, 0.25);
    box-shadow: 0 0 8px rgba(72, 176, 192, 0.2);
}

.rw-prompt-btn--submit[b-7ngyrk1iz9],
.rw-prompt-btn--manual[b-7ngyrk1iz9] {
    background: rgba(196, 160, 64, 0.12);
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
}

.rw-prompt-btn--submit:hover[b-7ngyrk1iz9],
.rw-prompt-btn--manual:hover:not(:disabled)[b-7ngyrk1iz9] {
    background: rgba(196, 160, 64, 0.22);
}

.rw-prompt-btn--accept[b-7ngyrk1iz9] {
    background: rgba(80, 176, 104, 0.12);
    border-color: var(--rw-border-verdant);
    color: var(--rw-verdant-bright);
}

.rw-prompt-btn--accept:hover[b-7ngyrk1iz9] {
    background: rgba(80, 176, 104, 0.22);
}

.rw-prompt-btn--decline[b-7ngyrk1iz9] {
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
}

.rw-prompt-btn--decline:hover[b-7ngyrk1iz9] {
    color: var(--rw-text);
    border-color: var(--rw-sage-muted);
}

/* === STRUCTURED REACTION CHOICES === */

.rw-prompt-reactions[b-7ngyrk1iz9] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    width: 100%;
}

.rw-prompt-reaction-btn[b-7ngyrk1iz9] {
    flex-direction: column;
    align-items: flex-start;
    padding: 0.25rem 0.4rem;
}

.rw-prompt-reaction-desc[b-7ngyrk1iz9] {
    font-family: var(--rw-font-ui);
    font-size: 0.45rem;
    font-weight: 400;
    letter-spacing: 0;
    opacity: 0.75;
    margin-top: 0.05rem;
}

/* === ROLL RESULT === */

.rw-prompt-roll-result[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-prompt-roll-value[b-7ngyrk1iz9] {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--rw-gold-glow);
    text-shadow: 0 0 8px rgba(196, 160, 64, 0.3);
    min-width: 30px;
    text-align: center;
}

/* === MANUAL INPUT === */

.rw-prompt-manual[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    margin-left: auto;
}

.rw-prompt-manual-input[b-7ngyrk1iz9] {
    width: 48px;
    height: 26px;
    padding: 0 0.3rem;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-align: center;
    outline: none;
    -moz-appearance: textfield;
}

.rw-prompt-manual-input[b-7ngyrk1iz9]::-webkit-outer-spin-button,
.rw-prompt-manual-input[b-7ngyrk1iz9]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

.rw-prompt-manual-input:focus[b-7ngyrk1iz9] {
    border-color: var(--rw-arcane-cyan);
}

.rw-prompt-manual-input[b-7ngyrk1iz9]::placeholder {
    color: var(--rw-text-faint);
    font-size: 0.55rem;
}

/* ============================================================
   Countdown Timer — Hourglass Drain
   A thin arcane filament at the card base that drains away,
   shifting through the War Table palette as urgency rises.
   ============================================================ */

.rw-prompt-countdown[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.15rem;
}

.rw-prompt-countdown__track[b-7ngyrk1iz9] {
    flex: 1;
    height: 3px;
    border-radius: 2px;
    background: rgba(0, 0, 0, 0.35);
    position: relative;
    overflow: hidden;
}

/* The draining fill bar */
.rw-prompt-countdown__fill[b-7ngyrk1iz9] {
    position: absolute;
    inset: 0;
    border-radius: 2px;
    transform-origin: left center;
    animation: rw-countdown-drain-b-7ngyrk1iz9 linear forwards;
}

.rw-prompt-countdown__fill.rw-countdown--safe[b-7ngyrk1iz9] {
    background: linear-gradient(90deg, var(--rw-arcane-cyan), rgba(72, 176, 192, 0.7));
}

.rw-prompt-countdown__fill.rw-countdown--warning[b-7ngyrk1iz9] {
    background: linear-gradient(90deg, var(--rw-gold-light), rgba(196, 160, 64, 0.8));
}

.rw-prompt-countdown__fill.rw-countdown--critical[b-7ngyrk1iz9] {
    background: linear-gradient(90deg, var(--rw-blood-bright), rgba(184, 58, 26, 0.9));
}

/* Ethereal glow layer — rides atop the fill */
.rw-prompt-countdown__glow[b-7ngyrk1iz9] {
    position: absolute;
    inset: -1px 0;
    border-radius: 2px;
    filter: blur(3px);
    opacity: 0.5;
    transform-origin: left center;
    animation: rw-countdown-drain-b-7ngyrk1iz9 linear forwards;
    pointer-events: none;
}

.rw-prompt-countdown__glow.rw-countdown--safe[b-7ngyrk1iz9] {
    background: var(--rw-arcane-cyan);
}

.rw-prompt-countdown__glow.rw-countdown--warning[b-7ngyrk1iz9] {
    background: var(--rw-gold-glow);
    opacity: 0.6;
}

.rw-prompt-countdown__glow.rw-countdown--critical[b-7ngyrk1iz9] {
    background: var(--rw-blood-bright);
    opacity: 0.7;
    animation: rw-countdown-drain-b-7ngyrk1iz9 linear forwards, rw-countdown-pulse-b-7ngyrk1iz9 0.6s ease-in-out infinite;
}

@keyframes rw-countdown-drain-b-7ngyrk1iz9 {
    from { transform: scaleX(1); }
    to   { transform: scaleX(0); }
}

@keyframes rw-countdown-pulse-b-7ngyrk1iz9 {
    0%, 100% { opacity: 0.5; }
    50%      { opacity: 0.9; }
}

/* Seconds label */
.rw-prompt-countdown__label[b-7ngyrk1iz9] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    min-width: 22px;
    text-align: right;
    transition: color 0.3s ease;
}

.rw-prompt-countdown__unit[b-7ngyrk1iz9] {
    font-weight: 400;
    opacity: 0.6;
    margin-left: 1px;
}

.rw-prompt-countdown__label.rw-countdown--safe[b-7ngyrk1iz9] {
    color: var(--rw-arcane-cyan);
}

.rw-prompt-countdown__label.rw-countdown--warning[b-7ngyrk1iz9] {
    color: var(--rw-gold-light);
}

.rw-prompt-countdown__label.rw-countdown--critical[b-7ngyrk1iz9] {
    color: var(--rw-blood-bright);
    animation: rw-countdown-label-pulse-b-7ngyrk1iz9 0.6s ease-in-out infinite;
}

@keyframes rw-countdown-label-pulse-b-7ngyrk1iz9 {
    0%, 100% { opacity: 0.7; }
    50%      { opacity: 1; }
}

/* ============================================================
   Timeout Overlay — Vanishing Ink
   Ethereal inscription fades in over the expired prompt.
   ============================================================ */

.rw-prompt-card--expired[b-7ngyrk1iz9] {
    opacity: 0.5;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

.rw-prompt-timeout-overlay[b-7ngyrk1iz9] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    background: radial-gradient(
        ellipse at center,
        rgba(11, 24, 32, 0.85) 0%,
        rgba(11, 24, 32, 0.4) 70%,
        transparent 100%
    );
    animation: rw-timeout-veil-b-7ngyrk1iz9 0.5s ease-out;
    border-radius: var(--rw-radius-md);
}

.rw-prompt-timeout-text[b-7ngyrk1iz9] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-blood-bright);
    text-shadow:
        0 0 12px rgba(184, 58, 26, 0.5),
        0 0 30px rgba(184, 58, 26, 0.15);
    animation: rw-timeout-inscription-b-7ngyrk1iz9 0.6s ease-out;
}

@keyframes rw-timeout-veil-b-7ngyrk1iz9 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes rw-timeout-inscription-b-7ngyrk1iz9 {
    0% {
        opacity: 0;
        transform: scale(0.85);
        letter-spacing: 0.3em;
    }
    60% {
        opacity: 1;
        transform: scale(1.02);
    }
    100% {
        opacity: 1;
        transform: scale(1);
        letter-spacing: 0.12em;
    }
}
/* /Components/Sessions/Player/PlayerSelfInfoPanel.razor.rz.scp.css */
/* ============================================================
   PlayerSelfInfoPanel — The Hero's Mirror
   A personal character summary that glows with the warmth of
   hearthfire — your identity amidst the fog of battle.
   ============================================================ */

.rw-self-info[b-x5u4fin8sc] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.6rem;
    background: linear-gradient(
        175deg,
        rgba(15, 32, 40, 0.95) 0%,
        rgba(20, 42, 50, 0.9) 100%
    );
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    position: relative;
    overflow: hidden;
}

/* Verdant accent line — hero's seal */
.rw-self-info[b-x5u4fin8sc]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-verdant) 25%,
        var(--rw-verdant-bright) 50%,
        var(--rw-verdant) 75%,
        transparent 100%);
    opacity: 0.7;
}

.rw-self-info__empty[b-x5u4fin8sc] {
    padding: 1rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    font-style: italic;
}

/* === IDENTITY === */

.rw-self-info__identity[b-x5u4fin8sc] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-self-info__name[b-x5u4fin8sc] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-verdant-bright);
    line-height: 1.2;
    text-shadow: 0 0 8px rgba(80, 176, 104, 0.15);
}

/* === HP === */

.rw-self-info__hp[b-x5u4fin8sc] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-self-info__hp > :first-child[b-x5u4fin8sc] {
    flex: 1;
}

.rw-self-info__temp-hp[b-x5u4fin8sc] {
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.1);
    padding: 0.1rem 0.3rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid rgba(72, 176, 192, 0.2);
    white-space: nowrap;
    flex-shrink: 0;
}

/* === STAT ROW === */

.rw-self-info__stats[b-x5u4fin8sc] {
    display: flex;
    gap: 0.4rem;
}

.rw-self-stat[b-x5u4fin8sc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: 0.25rem 0.45rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    min-width: 42px;
}

.rw-self-stat__icon[b-x5u4fin8sc] {
    font-size: 0.65rem;
    line-height: 1;
}

.rw-self-stat__label[b-x5u4fin8sc] {
    font-family: var(--rw-font-sc);
    font-size: 0.42rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    line-height: 1;
}

.rw-self-stat__value[b-x5u4fin8sc] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--rw-text-bright);
    line-height: 1.1;
}

/* === BLOODIED INDICATOR === */

.rw-self-info__bloodied[b-x5u4fin8sc] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.4rem;
    background: rgba(218, 170, 50, 0.08);
    border: 1px solid rgba(218, 170, 50, 0.35);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    animation: rw-bloodied-pulse-b-x5u4fin8sc 2.5s ease-in-out infinite;
}

@keyframes rw-bloodied-pulse-b-x5u4fin8sc {
    0%, 100% { border-color: rgba(218, 170, 50, 0.35); box-shadow: none; }
    50% { border-color: rgba(218, 170, 50, 0.6); box-shadow: 0 0 8px rgba(218, 170, 50, 0.15); }
}

/* === CONCENTRATION === */

.rw-self-info__concentration[b-x5u4fin8sc] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.4rem;
    background: rgba(72, 176, 192, 0.06);
    border: 1px solid rgba(72, 176, 192, 0.15);
    border-radius: var(--rw-radius-sm);
    animation: rw-concentration-pulse-b-x5u4fin8sc 3s ease-in-out infinite;
}

@keyframes rw-concentration-pulse-b-x5u4fin8sc {
    0%, 100% { border-color: rgba(72, 176, 192, 0.15); }
    50% { border-color: rgba(72, 176, 192, 0.4); box-shadow: 0 0 6px rgba(72, 176, 192, 0.1); }
}

/* Urgent concentration — save pending */
.rw-concentration--urgent[b-x5u4fin8sc] {
    animation: rw-concentration-urgent-b-x5u4fin8sc 1s ease-in-out infinite;
    border-color: rgba(184, 58, 26, 0.4);
    background: rgba(184, 58, 26, 0.06);
}

@keyframes rw-concentration-urgent-b-x5u4fin8sc {
    0%, 100% { border-color: rgba(184, 58, 26, 0.4); box-shadow: none; }
    50% { border-color: rgba(184, 58, 26, 0.7); box-shadow: 0 0 10px rgba(184, 58, 26, 0.2); }
}

.rw-concentration-icon[b-x5u4fin8sc] {
    font-size: 0.7rem;
}

.rw-concentration-label[b-x5u4fin8sc] {
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-concentration-spell[b-x5u4fin8sc] {
    font-family: var(--rw-font-body);
    font-size: 0.68rem;
    font-style: italic;
    color: var(--rw-arcane-cyan);
}

/* === CONDITIONS === */

.rw-self-info__conditions[b-x5u4fin8sc] {
    padding-top: 0.15rem;
}

/* === RESOURCES === */

.rw-self-info__resources[b-x5u4fin8sc] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding-top: 0.2rem;
    border-top: 1px solid var(--rw-border);
}

.rw-self-info__section-label[b-x5u4fin8sc] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    margin-bottom: 0.05rem;
}
/* /Components/Sessions/Player/SessionLootLog.razor.rz.scp.css */
/* ============================================================
   SessionLootLog — Adventurer's Satchel
   Collapsible session loot summary grouped by source monster.
   ============================================================ */

.rw-loot-log[b-rt3faassqb] {
    background: rgba(10, 18, 16, 0.6);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
}

/* === TOGGLE HEADER === */

.rw-loot-log__toggle[b-rt3faassqb] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    width: 100%;
    padding: 0.3rem 0.5rem;
    transition: background var(--rw-transition);
}

.rw-loot-log__toggle:hover[b-rt3faassqb] {
    background: rgba(196, 160, 64, 0.03);
}

.rw-loot-log__toggle-icon[b-rt3faassqb] {
    font-size: 0.5rem;
    color: var(--rw-text-faint);
    width: 0.6rem;
}

.rw-loot-log__toggle-label[b-rt3faassqb] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.08em;
    color: var(--rw-gold);
    flex: 1;
}

.rw-loot-log__toggle-count[b-rt3faassqb] {
    font-family: var(--rw-font-ui);
    font-size: 0.45rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    padding: 0.05rem 0.25rem;
    border-radius: 999px;
    min-width: 1rem;
    text-align: center;
}

/* === BODY === */

.rw-loot-log__body[b-rt3faassqb] {
    border-top: 1px solid rgba(196, 160, 64, 0.08);
    padding: 0.2rem 0;
}

/* === GROUP === */

.rw-loot-log__group[b-rt3faassqb] {
    padding: 0.15rem 0.5rem;
}

.rw-loot-log__group + .rw-loot-log__group[b-rt3faassqb] {
    border-top: 1px solid rgba(26, 52, 48, 0.5);
}

.rw-loot-log__group-header[b-rt3faassqb] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    padding-bottom: 0.1rem;
}

.rw-loot-log__group-skull[b-rt3faassqb] {
    font-size: 0.45rem;
    filter: grayscale(0.5);
}

.rw-loot-log__group-name[b-rt3faassqb] {
    font-family: var(--rw-font-body);
    font-size: 0.55rem;
    font-weight: 600;
    color: var(--rw-text);
}

/* === ITEMS === */

.rw-loot-log__group-items[b-rt3faassqb] {
    padding-left: 0.65rem;
}

.rw-loot-log__item[b-rt3faassqb] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.05rem 0;
}

.rw-loot-log__item-name[b-rt3faassqb] {
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    color: var(--rw-sage-cream);
}

.rw-loot-log__item-qty[b-rt3faassqb] {
    font-family: var(--rw-font-ui);
    font-size: 0.45rem;
    color: var(--rw-gold);
}

/* === CURRENCY === */

.rw-loot-log__currency[b-rt3faassqb] {
    display: flex;
    gap: 0.25rem;
    padding: 0.05rem 0 0.1rem;
}

.rw-loot-log__coin[b-rt3faassqb] {
    font-family: var(--rw-font-ui);
    font-size: 0.45rem;
    font-weight: 600;
}

.rw-loot-log__coin--pp[b-rt3faassqb] { color: #c0c8d8; }
.rw-loot-log__coin--gp[b-rt3faassqb] { color: var(--rw-gold-light); }
.rw-loot-log__coin--ep[b-rt3faassqb] { color: #8aa0b0; }
.rw-loot-log__coin--sp[b-rt3faassqb] { color: #a0b0b8; }
.rw-loot-log__coin--cp[b-rt3faassqb] { color: #b08060; }

/* === UTILITY === */

.rw-fade-in[b-rt3faassqb] {
    animation: rw-log-fade-in-b-rt3faassqb 0.2s ease-out;
}

@keyframes rw-log-fade-in-b-rt3faassqb {
    from { opacity: 0; }
    to { opacity: 1; }
}
/* /Components/Sessions/Player/SpellSlotPips.razor.rz.scp.css */
/* ============================================================
   SpellSlotPips — Arcane Rune Pips
   Compact pip row for a single spell level. Filled pips glow
   with indigo arcane energy; spent pips are dark hollows.
   ============================================================ */

.rw-slot-row[b-w0x1y82pfr] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.1rem 0;
}

.rw-slot-row__label[b-w0x1y82pfr] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.08em;
    color: rgba(130, 110, 180, 0.7);
    width: 1.6rem;
    text-align: right;
    flex-shrink: 0;
}

.rw-slot-row__pips[b-w0x1y82pfr] {
    display: flex;
    gap: 0.2rem;
    flex-wrap: nowrap;
}

.rw-slot-row__count[b-w0x1y82pfr] {
    font-family: var(--rw-font-ui);
    font-size: 0.5rem;
    color: var(--rw-text-faint);
    margin-left: 0.15rem;
    flex-shrink: 0;
}

/* === PIP BASE === */

.rw-slot-pip[b-w0x1y82pfr] {
    all: unset;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    transition: all 0.2s ease;
    position: relative;
}

/* Filled — arcane glow */
.rw-slot-pip--filled[b-w0x1y82pfr] {
    background: rgba(110, 80, 180, 0.7);
    box-shadow:
        0 0 4px rgba(110, 80, 180, 0.4),
        inset 0 0 2px rgba(160, 140, 220, 0.3);
    border: 1px solid rgba(130, 100, 200, 0.5);
}

/* Spent — dark hollow */
.rw-slot-pip--spent[b-w0x1y82pfr] {
    background: rgba(40, 35, 55, 0.5);
    border: 1px solid rgba(110, 80, 180, 0.15);
    box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
}

/* Interactive hover states */
.rw-slot-pip--interactive[b-w0x1y82pfr] {
    cursor: pointer;
}

.rw-slot-pip--interactive.rw-slot-pip--filled:hover[b-w0x1y82pfr] {
    background: rgba(130, 100, 200, 0.85);
    box-shadow:
        0 0 8px rgba(110, 80, 180, 0.6),
        0 0 2px rgba(160, 140, 220, 0.5);
    transform: scale(1.15);
}

.rw-slot-pip--interactive.rw-slot-pip--spent:hover[b-w0x1y82pfr] {
    background: rgba(110, 80, 180, 0.2);
    border-color: rgba(110, 80, 180, 0.35);
    transform: scale(1.1);
}
/* /Components/Sessions/Shared/CombatantBadge.razor.rz.scp.css */
/* ============================================================
   CombatantBadge — Turn Order Sigil
   A compact pill for the turn strip showing name, HP dot,
   state icon, and initiative score.
   ============================================================ */

.rw-combatant-badge[b-ryravtsumo] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text);
    white-space: nowrap;
    transition: all var(--rw-transition);
    flex-shrink: 0;
    cursor: default;
}

.rw-combatant-badge:hover[b-ryravtsumo] {
    border-color: var(--rw-sage-muted);
    background: var(--rw-bg-moss);
}

/* Active combatant — gold spotlight */
.rw-combatant-badge--active[b-ryravtsumo] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.1);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.25),
                0 0 20px rgba(196, 160, 64, 0.08);
    color: var(--rw-text-bright);
}

/* Fallen combatant — desaturated */
.rw-combatant-badge--fallen[b-ryravtsumo] {
    opacity: 0.5;
    filter: grayscale(0.4);
}

/* === HP DOT === */

.rw-combatant-badge__hp-dot[b-ryravtsumo] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    transition: background-color var(--rw-transition);
}

.rw-hp-dot--healthy[b-ryravtsumo] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 4px rgba(80, 176, 104, 0.4);
}

.rw-hp-dot--bloodied[b-ryravtsumo] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 4px rgba(218, 170, 50, 0.4);
}

.rw-hp-dot--critical[b-ryravtsumo] {
    background: var(--rw-blood-bright);
    box-shadow: 0 0 4px rgba(184, 58, 26, 0.5);
    animation: rw-dot-pulse-red-b-ryravtsumo 1.2s ease-in-out infinite;
}

.rw-hp-dot--dead[b-ryravtsumo] {
    background: var(--rw-text-faint);
    box-shadow: none;
}

/* === NAME === */

.rw-combatant-badge__name[b-ryravtsumo] {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
}

/* === INITIATIVE SCORE === */

.rw-combatant-badge__init[b-ryravtsumo] {
    font-size: 0.6rem;
    font-weight: 700;
    color: var(--rw-sage-muted);
    padding-left: 0.2rem;
    border-left: 1px solid var(--rw-border);
    margin-left: 0.1rem;
    padding-left: 0.35rem;
}

.rw-combatant-badge--active .rw-combatant-badge__init[b-ryravtsumo] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.25);
}

@keyframes rw-dot-pulse-red-b-ryravtsumo {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* === Identification States === */

.rw-hp-dot--unknown[b-ryravtsumo] {
    background: var(--rw-text-faint);
}

.rw-combatant-badge--id-partial[b-ryravtsumo] {
    border-color: rgba(72, 176, 192, 0.35);
}

.rw-combatant-badge--id-full[b-ryravtsumo] {
    border-color: rgba(80, 176, 104, 0.4);
}

/* === Identify Button === */

.rw-combatant-badge__identify[b-ryravtsumo] {
    all: unset;
    cursor: pointer;
    font-size: 0.55rem;
    padding: 0 0.15rem;
    margin-left: 0.1rem;
    opacity: 0.5;
    transition: opacity 0.15s ease;
}

.rw-combatant-badge__identify:hover[b-ryravtsumo] {
    opacity: 1;
}

/* === Legendary Pips (Turn Strip) === */

.rw-combatant-badge__legendary-pips[b-ryravtsumo] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-left: 0.15rem;
    padding-left: 0.3rem;
    border-left: 1px solid var(--rw-border);
}

.rw-badge-pip[b-ryravtsumo] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.5);
    background: transparent;
    transition: all 0.2s ease;
}

.rw-badge-pip--filled[b-ryravtsumo] {
    background: var(--rw-gold);
    border-color: var(--rw-gold);
    box-shadow: 0 0 3px rgba(196, 160, 64, 0.4);
}
/* /Components/Sessions/Shared/CombatantStateIndicator.razor.rz.scp.css */
/* ============================================================
   CombatantStateIndicator — Turn State Sigil
   ============================================================ */

.rw-state-indicator[b-9z2ceqiewa] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    font-size: 0.7rem;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    flex-shrink: 0;
    transition: all var(--rw-transition);
}

/* Active — gold glow, pulsing */
.rw-state--active[b-9z2ceqiewa] {
    background: rgba(196, 160, 64, 0.2);
    border-color: var(--rw-gold);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.4);
    animation: rw-state-active-pulse-b-9z2ceqiewa 1.8s ease-in-out infinite;
}

/* Done — sage check */
.rw-state--done[b-9z2ceqiewa] {
    background: rgba(61, 138, 85, 0.15);
    border-color: var(--rw-sage-muted);
    color: var(--rw-sage-tan);
    opacity: 0.6;
}

/* Delayed — amber hourglass */
.rw-state--delayed[b-9z2ceqiewa] {
    background: rgba(218, 170, 50, 0.12);
    border-color: rgba(218, 170, 50, 0.35);
    color: var(--rw-gold-light);
}

/* Readied — electric flash */
.rw-state--readied[b-9z2ceqiewa] {
    background: rgba(72, 176, 192, 0.15);
    border-color: var(--rw-arcane-cyan);
    color: var(--rw-arcane-cyan);
    box-shadow: 0 0 6px rgba(72, 176, 192, 0.25);
}

/* Surprised — muted shock */
.rw-state--surprised[b-9z2ceqiewa] {
    background: rgba(106, 74, 138, 0.15);
    border-color: var(--rw-arcane-purple);
    color: var(--rw-arcane-purple);
}

/* Unconscious — dim zzz */
.rw-state--unconscious[b-9z2ceqiewa] {
    background: rgba(64, 92, 80, 0.2);
    border-color: var(--rw-text-faint);
    color: var(--rw-text-dim);
    opacity: 0.7;
}

/* Dead — desaturated skull */
.rw-state--dead[b-9z2ceqiewa] {
    background: rgba(139, 37, 0, 0.15);
    border-color: rgba(139, 37, 0, 0.3);
    color: var(--rw-blood);
    filter: grayscale(0.3);
    opacity: 0.6;
}

/* Waiting — neutral */
.rw-state--waiting[b-9z2ceqiewa] {
    color: var(--rw-text-faint);
    opacity: 0.5;
}

@keyframes rw-state-active-pulse-b-9z2ceqiewa {
    0%, 100% { box-shadow: 0 0 8px rgba(196, 160, 64, 0.4); }
    50% { box-shadow: 0 0 14px rgba(196, 160, 64, 0.6); }
}
/* /Components/Sessions/Shared/ConditionBadgeRow.razor.rz.scp.css */
/* ============================================================
   ConditionBadgeRow — Affliction Sigils
   Toggleable condition badges with arcane styling.
   ============================================================ */

.rw-condition-row[b-hpuhnoq891] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

/* === INDIVIDUAL BADGE === */

.rw-condition-badge[b-hpuhnoq891] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    line-height: 1.3;
    white-space: nowrap;
    border: 1px solid rgba(106, 74, 138, 0.3);
    background: rgba(106, 74, 138, 0.1);
    color: var(--rw-text);
    transition: all var(--rw-transition);
}

.rw-condition-badge[b-hpuhnoq891] {
    position: relative;
}

.rw-condition--active[b-hpuhnoq891] {
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.35);
    color: var(--rw-gold-light);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.15);
}

/* === STYLED TOOLTIP === */

.rw-condition-tooltip[b-hpuhnoq891] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    max-width: 260px;
    padding: 0.4rem 0.6rem;
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    line-height: 1.45;
    color: var(--rw-text);
    background: var(--rw-bg-panel);
    border: 1px solid rgba(106, 74, 138, 0.4);
    border-radius: var(--rw-radius-sm);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5), 0 0 6px rgba(106, 74, 138, 0.15);
    z-index: 100;
    pointer-events: none;
    animation: rw-tooltip-in-b-hpuhnoq891 0.12s ease-out;
    white-space: normal;
}

.rw-condition-tooltip[b-hpuhnoq891]::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: rgba(106, 74, 138, 0.4);
}

@keyframes rw-tooltip-in-b-hpuhnoq891 {
    from { opacity: 0; transform: translateX(-50%) translateY(3px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.rw-condition-badge__icon[b-hpuhnoq891] {
    font-size: 0.7rem;
    line-height: 1;
}

.rw-condition-badge__name[b-hpuhnoq891] {
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 0.6rem;
}

.rw-condition-badge__duration[b-hpuhnoq891] {
    font-size: 0.55rem;
    color: var(--rw-text-dim);
    padding-left: 0.15rem;
    opacity: 0.8;
}

/* Remove button on badge */
.rw-condition-badge__remove[b-hpuhnoq891] {
    all: unset;
    cursor: pointer;
    font-size: 0.7rem;
    line-height: 1;
    color: var(--rw-text-dim);
    margin-left: 0.15rem;
    padding: 0 0.1rem;
    border-radius: 50%;
    transition: color var(--rw-transition);
}

.rw-condition-badge__remove:hover[b-hpuhnoq891] {
    color: var(--rw-blood-bright);
}

/* === ADD BUTTON (Sigil Summoning) === */

.rw-condition-add-btn[b-hpuhnoq891] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    height: 26px;
    padding: 0 0.6rem;
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #9a7abe;
    border: 1px dashed rgba(106, 74, 138, 0.4);
    background: transparent;
    transition: all var(--rw-transition);
}

.rw-condition-add-btn__icon[b-hpuhnoq891] {
    font-size: 0.72rem;
    line-height: 1;
}

.rw-condition-add-btn:hover[b-hpuhnoq891] {
    color: #b08ad8;
    border-style: solid;
    border-color: rgba(106, 74, 138, 0.6);
    background: rgba(106, 74, 138, 0.12);
    box-shadow: 0 0 8px rgba(106, 74, 138, 0.15);
}

/* === ADD MENU (Sigil Grid) === */

.rw-condition-add-menu[b-hpuhnoq891] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.3rem;
    padding: 0.5rem;
    background: var(--rw-bg-panel);
    border: 1px solid rgba(106, 74, 138, 0.35);
    border-radius: var(--rw-radius-lg);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 12px rgba(106, 74, 138, 0.1);
    max-width: 380px;
    animation: rw-condition-menu-in-b-hpuhnoq891 0.15s ease-out;
}

.rw-condition-add-option[b-hpuhnoq891] {
    all: unset;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.35rem 0.2rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    color: var(--rw-text-dim);
    border: 1px solid transparent;
    background: transparent;
    transition: all var(--rw-transition);
    text-align: center;
}

.rw-condition-add-option__icon[b-hpuhnoq891] {
    font-size: 1.1rem;
    line-height: 1;
}

.rw-condition-add-option__name[b-hpuhnoq891] {
    font-size: 0.52rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.rw-condition-add-option:hover[b-hpuhnoq891] {
    color: var(--rw-text);
    border-color: rgba(106, 74, 138, 0.4);
    background: rgba(106, 74, 138, 0.12);
    box-shadow: 0 0 6px rgba(106, 74, 138, 0.1);
}

.rw-condition-add-close[b-hpuhnoq891] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    border-radius: 50%;
    transition: color var(--rw-transition);
}

.rw-condition-add-close:hover[b-hpuhnoq891] {
    color: var(--rw-blood-bright);
}

@keyframes rw-condition-menu-in-b-hpuhnoq891 {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}
/* /Components/Sessions/Shared/FloatingDamageNumber.razor.rz.scp.css */
/* ============================================================
   FloatingDamageNumber — Arcane Combat Feedback
   Numbers float upward and dissolve like dissipating magic.
   ============================================================ */

.rw-float-num[b-bw33jhqvbd] {
    position: absolute;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    font-weight: 700;
    pointer-events: none;
    z-index: 10;
    white-space: nowrap;
    animation: rw-float-rise-b-bw33jhqvbd 0.85s cubic-bezier(0.2, 0.6, 0.3, 1) forwards;
}

.rw-float-num--damage[b-bw33jhqvbd] {
    color: var(--rw-blood-bright);
    text-shadow:
        0 0 6px rgba(184, 58, 26, 0.6),
        0 1px 2px rgba(0, 0, 0, 0.8);
}

.rw-float-num--heal[b-bw33jhqvbd] {
    color: var(--rw-verdant-bright);
    text-shadow:
        0 0 6px rgba(80, 176, 104, 0.5),
        0 1px 2px rgba(0, 0, 0, 0.8);
}

@keyframes rw-float-rise-b-bw33jhqvbd {
    0% {
        opacity: 1;
        transform: translateX(-50%) translateY(0) scale(0.8);
    }
    30% {
        opacity: 1;
        transform: translateX(-50%) translateY(-14px) scale(1.1);
    }
    100% {
        opacity: 0;
        transform: translateX(-50%) translateY(-32px) scale(0.9);
    }
}
/* /Components/Sessions/Shared/HpBar.razor.rz.scp.css */
/* ============================================================
   HpBar — Blood & Vitality Gauge
   Animated HP bar with threshold colors and damage/heal flash.
   ============================================================ */

.rw-hp-bar[b-0zbk1x0l16] {
    position: relative;
    height: 20px;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-pill);
    overflow: hidden;
    font-size: 0;
    box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.5);
}

.rw-hp-bar__fill[b-0zbk1x0l16] {
    height: 100%;
    border-radius: var(--rw-radius-pill);
    transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                background-color 0.4s ease;
    position: relative;
    min-width: 0;
}

/* === THRESHOLD COLORS === */

.rw-hp--healthy[b-0zbk1x0l16] {
    background: linear-gradient(90deg,
        #34d399 0%,
        #6ee7a0 40%,
        #fbbf24 75%,
        #f97316 100%);
    box-shadow: 0 0 8px rgba(52, 211, 153, 0.3);
}

.rw-hp--bloodied[b-0zbk1x0l16] {
    background: linear-gradient(180deg,
        rgba(218, 170, 50, 0.9) 0%,
        rgba(196, 160, 64, 0.8) 100%);
    box-shadow: 0 0 6px rgba(218, 170, 50, 0.35);
    animation: rw-hp-pulse-amber-b-0zbk1x0l16 2s ease-in-out infinite;
}

.rw-hp--critical[b-0zbk1x0l16] {
    background: linear-gradient(180deg,
        rgba(184, 58, 26, 0.95) 0%,
        rgba(139, 37, 0, 0.9) 100%);
    box-shadow: 0 0 8px rgba(184, 58, 26, 0.4);
    animation: rw-hp-pulse-red-b-0zbk1x0l16 1.2s ease-in-out infinite;
}

.rw-hp--dead[b-0zbk1x0l16] {
    background: rgba(64, 92, 80, 0.3);
    box-shadow: none;
}

/* === LABEL === */

.rw-hp-bar__label[b-0zbk1x0l16] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
    letter-spacing: 0.04em;
    pointer-events: none;
    z-index: 1;
}

/* === DAMAGE / HEAL FLASH === */

.rw-hp-flash--damage[b-0zbk1x0l16] {
    animation: rw-hp-damage-flash-b-0zbk1x0l16 0.4s ease-out;
}

.rw-hp-flash--heal[b-0zbk1x0l16] {
    animation: rw-hp-heal-flash-b-0zbk1x0l16 0.4s ease-out;
}

@keyframes rw-hp-damage-flash-b-0zbk1x0l16 {
    0% { box-shadow: inset 0 0 0 2px rgba(184, 58, 26, 0.9), 0 0 12px rgba(184, 58, 26, 0.5); }
    100% { box-shadow: inset 0 0 0 0px rgba(184, 58, 26, 0), 0 0 0px rgba(184, 58, 26, 0); }
}

@keyframes rw-hp-heal-flash-b-0zbk1x0l16 {
    0% { box-shadow: inset 0 0 0 2px rgba(80, 176, 104, 0.9), 0 0 12px rgba(80, 176, 104, 0.5); }
    100% { box-shadow: inset 0 0 0 0px rgba(80, 176, 104, 0), 0 0 0px rgba(80, 176, 104, 0); }
}

/* === BLOODIED / CRITICAL PULSE === */

@keyframes rw-hp-pulse-amber-b-0zbk1x0l16 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.82; }
}

@keyframes rw-hp-pulse-red-b-0zbk1x0l16 {
    0%, 100% { opacity: 1; box-shadow: 0 0 8px rgba(184, 58, 26, 0.4); }
    50% { opacity: 0.85; box-shadow: 0 0 14px rgba(184, 58, 26, 0.6); }
}
/* /Components/Sessions/Shared/ImmersionOverlay.razor.rz.scp.css */
/* ============================================================
   ImmersionOverlay — Critical Hit / Fumble Flash
   Full-screen dramatic overlay. Nat 20 = gold sunburst.
   Nat 1 = dark red blood pulse. Auto-dismisses.
   ============================================================ */

.rw-immersion[b-4xvuwngvpq] {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
    cursor: pointer;
    animation: rw-immersion-life-b-4xvuwngvpq 1.2s ease-out forwards;
}

@keyframes rw-immersion-life-b-4xvuwngvpq {
    0% { opacity: 1; }
    70% { opacity: 1; }
    100% { opacity: 0; pointer-events: none; }
}

/* === NAT 20 — Gold Sunburst === */

.rw-immersion--nat20[b-4xvuwngvpq] {
    background: radial-gradient(circle at center,
        rgba(255, 224, 102, 0.15) 0%,
        rgba(196, 160, 64, 0.08) 40%,
        rgba(0, 0, 0, 0.3) 100%);
}

.rw-immersion--nat20 .rw-immersion__burst[b-4xvuwngvpq] {
    position: absolute;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    background: radial-gradient(circle,
        rgba(255, 224, 102, 0.4) 0%,
        rgba(196, 160, 64, 0.15) 40%,
        transparent 70%);
    animation: rw-crit-burst-b-4xvuwngvpq 0.8s ease-out;
}

@keyframes rw-crit-burst-b-4xvuwngvpq {
    0% {
        transform: scale(0.2);
        opacity: 1;
    }
    100% {
        transform: scale(3);
        opacity: 0;
    }
}

.rw-immersion--nat20 .rw-immersion__text[b-4xvuwngvpq] {
    font-family: var(--rw-font-display);
    font-size: 2.5rem;
    color: #ffe066;
    text-shadow:
        0 0 20px rgba(255, 224, 102, 0.8),
        0 0 60px rgba(196, 160, 64, 0.4),
        0 2px 4px rgba(0, 0, 0, 0.5);
    animation: rw-crit-text-b-4xvuwngvpq 0.6s ease-out;
    position: relative;
    z-index: 1;
}

@keyframes rw-crit-text-b-4xvuwngvpq {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }
    50% {
        transform: scale(1.15);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* === NAT 1 — Blood Red Pulse === */

.rw-immersion--nat1[b-4xvuwngvpq] {
    background: radial-gradient(circle at center,
        rgba(184, 58, 26, 0.12) 0%,
        rgba(80, 20, 10, 0.08) 40%,
        rgba(0, 0, 0, 0.35) 100%);
}

.rw-immersion--nat1 .rw-immersion__burst[b-4xvuwngvpq] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center,
        rgba(184, 58, 26, 0.25) 0%,
        transparent 60%);
    animation: rw-fumble-pulse-b-4xvuwngvpq 0.4s ease-out;
}

@keyframes rw-fumble-pulse-b-4xvuwngvpq {
    0% { opacity: 0; transform: scale(0.8); }
    30% { opacity: 1; transform: scale(1.1); }
    100% { opacity: 0.3; transform: scale(1); }
}

.rw-immersion--nat1 .rw-immersion__text[b-4xvuwngvpq] {
    font-family: var(--rw-font-display);
    font-size: 2.2rem;
    color: #ff4a2e;
    text-shadow:
        0 0 16px rgba(184, 58, 26, 0.8),
        0 0 40px rgba(120, 30, 10, 0.4),
        0 2px 4px rgba(0, 0, 0, 0.6);
    animation: rw-fumble-text-b-4xvuwngvpq 0.5s ease-out;
    position: relative;
    z-index: 1;
}

@keyframes rw-fumble-text-b-4xvuwngvpq {
    0% {
        transform: translateY(20px) scale(0.8);
        opacity: 0;
    }
    50% {
        transform: translateY(-5px) scale(1.05);
    }
    100% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}
/* /Components/Sessions/Shared/RoundCounter.razor.rz.scp.css */
/* ============================================================
   RoundCounter — Tactical Round Marker
   A commanding round number display, styled like an engraved
   brass instrument dial on the war table.
   ============================================================ */

.rw-round-counter[b-14pvgasax5] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-width: 52px;
    padding: 0.25rem 0.5rem;
    background: radial-gradient(
        ellipse at center,
        rgba(196, 160, 64, 0.08) 0%,
        rgba(15, 32, 40, 0.6) 100%
    );
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-glow-candle);
    flex-shrink: 0;
}

.rw-round-counter__label[b-14pvgasax5] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-sage-muted);
    line-height: 1;
}

.rw-round-counter__value[b-14pvgasax5] {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--rw-gold-light);
    line-height: 1.1;
    text-shadow: 0 0 10px rgba(196, 160, 64, 0.25);
}
/* /Components/Sessions/Shared/TurnStrip.razor.rz.scp.css */
/* ============================================================
   TurnStrip — Tactical Command Rail
   Horizontal scrollable strip of combatant badges showing
   turn order. The war table's primary navigation instrument.
   ============================================================ */

.rw-turn-strip[b-db6vmy1zig] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.75rem;
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur-strong);
    -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    border: 1px solid var(--rw-glass-border-cyan);
    border-bottom: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-xl);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3),
                var(--rw-groove);
    overflow: hidden;
}

.rw-turn-strip__rail[b-db6vmy1zig] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    overflow-x: auto;
    overflow-y: hidden;
    flex: 1;
    min-width: 0;
    padding: 0.15rem 0;
    scroll-behavior: smooth;

    /* Thin custom scrollbar for the rail */
    scrollbar-width: thin;
    scrollbar-color: var(--rw-sage-dark) transparent;
}

.rw-turn-strip__rail[b-db6vmy1zig]::-webkit-scrollbar {
    height: 3px;
}

.rw-turn-strip__rail[b-db6vmy1zig]::-webkit-scrollbar-track {
    background: transparent;
}

.rw-turn-strip__rail[b-db6vmy1zig]::-webkit-scrollbar-thumb {
    background: var(--rw-sage-dark);
    border-radius: 2px;
}

/* --- Trailing action buttons slot --- */
.rw-turn-strip__actions[b-db6vmy1zig] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    padding-left: 0.5rem;
    margin-left: auto;
    border-left: 1px solid rgba(196, 160, 64, 0.18);
}

.rw-turn-strip__empty[b-db6vmy1zig] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    font-style: italic;
    padding: 0.2rem 0.5rem;
}
/* /Components/Shared/ImageUpload.razor.rz.scp.css */
/* ============================================================
   ImageUpload — File picker with preview and validation
   ============================================================ */

.rw-image-upload__label[b-56zpn9zb75] {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 500;
}

/* Drop zone */
.rw-image-upload__dropzone[b-56zpn9zb75] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    border: 2px dashed var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-image-upload__dropzone:hover[b-56zpn9zb75] {
    border-color: var(--rw-verdant);
    background: rgba(61, 138, 85, 0.04);
}

.rw-image-upload__dropzone--active[b-56zpn9zb75] {
    border-color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.08);
    box-shadow: inset 0 0 20px rgba(61, 138, 85, 0.06);
}

.rw-image-upload__dropzone-content[b-56zpn9zb75] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
}

.rw-image-upload__icon[b-56zpn9zb75] {
    color: var(--rw-text-faint);
    opacity: 0.6;
}

.rw-image-upload__text[b-56zpn9zb75] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-image-upload__hint[b-56zpn9zb75] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

/* Preview */
.rw-image-upload__preview[b-56zpn9zb75] {
    position: relative;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    background: var(--rw-bg-void);
}

.rw-image-upload__img[b-56zpn9zb75] {
    display: block;
    width: 100%;
    max-height: 240px;
    object-fit: cover;
}

.rw-image-upload__preview-actions[b-56zpn9zb75] {
    display: flex;
    gap: 0.4rem;
    padding: 0.5rem;
    background: linear-gradient(0deg, rgba(7,14,20,0.85) 0%, rgba(7,14,20,0) 100%);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    justify-content: flex-end;
}

.rw-image-upload__change-btn[b-56zpn9zb75],
.rw-image-upload__remove-btn[b-56zpn9zb75] {
    padding: 0.25rem 0.6rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--rw-radius-sm);
    background: rgba(15, 25, 35, 0.6);
    backdrop-filter: blur(8px);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-image-upload__change-btn:hover[b-56zpn9zb75] {
    border-color: var(--rw-verdant);
    color: var(--rw-verdant-bright);
}

.rw-image-upload__remove-btn:hover[b-56zpn9zb75] {
    border-color: var(--rw-blood-bright);
    color: var(--rw-blood-bright);
}

/* Progress bar */
.rw-image-upload__progress[b-56zpn9zb75] {
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-image-upload__progress-bar[b-56zpn9zb75] {
    flex: 1;
    height: 4px;
    background: var(--rw-bg-void);
    border-radius: 2px;
    overflow: hidden;
}

.rw-image-upload__progress-fill[b-56zpn9zb75] {
    height: 100%;
    background: linear-gradient(90deg, var(--rw-verdant), var(--rw-verdant-bright));
    border-radius: 2px;
    transition: width 0.3s ease;
    box-shadow: 0 0 8px rgba(61, 138, 85, 0.3);
}

.rw-image-upload__progress-text[b-56zpn9zb75] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    white-space: nowrap;
}

/* Error */
.rw-image-upload__error[b-56zpn9zb75] {
    margin-top: 0.35rem;
    padding: 0.3rem 0.5rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
    border-radius: var(--rw-radius-sm);
    border-left: 2px solid var(--rw-blood-bright);
}
/* /Components/Shared/MarkdownEditor.razor.rz.scp.css */
/* ============================================================
   MarkdownEditor — Write/Preview markdown
   ============================================================ */

.rw-md-editor__label[b-zz1ggk2jdd] {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 500;
}

.rw-md-editor__toolbar[b-zz1ggk2jdd] {
    display: flex;
    gap: 0;
    border: 1px solid var(--rw-border);
    border-bottom: none;
    border-radius: var(--rw-radius-sm) var(--rw-radius-sm) 0 0;
    overflow: hidden;
    background: var(--rw-bg-bark);
}

.rw-md-editor__tab[b-zz1ggk2jdd] {
    flex: 1;
    padding: 0.4rem 0.75rem;
    border: none;
    background: transparent;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all var(--rw-transition);
    position: relative;
}

.rw-md-editor__tab:hover[b-zz1ggk2jdd] {
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.02);
}

.rw-md-editor__tab--active[b-zz1ggk2jdd] {
    color: var(--rw-gold-light);
    background: var(--rw-bg-void);
}

.rw-md-editor__tab--active[b-zz1ggk2jdd]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 20%;
    right: 20%;
    height: 2px;
    background: var(--rw-gold);
    border-radius: 1px 1px 0 0;
}

.rw-md-editor__textarea[b-zz1ggk2jdd] {
    display: block;
    width: 100%;
    padding: 0.65rem 0.75rem;
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: 0 0 var(--rw-radius-sm) var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    line-height: 1.6;
    resize: vertical;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.rw-md-editor__textarea:focus[b-zz1ggk2jdd] {
    outline: none;
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 2px var(--rw-verdant-glow);
}

.rw-md-editor__textarea[b-zz1ggk2jdd]::placeholder {
    color: var(--rw-text-faint);
}

/* Preview pane */
.rw-md-editor__preview[b-zz1ggk2jdd] {
    padding: 0.75rem;
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: 0 0 var(--rw-radius-sm) var(--rw-radius-sm);
    min-height: 120px;
    max-height: 400px;
    overflow-y: auto;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    line-height: 1.65;
}

.rw-md-editor__preview h1[b-zz1ggk2jdd],
.rw-md-editor__preview h2[b-zz1ggk2jdd],
.rw-md-editor__preview h3[b-zz1ggk2jdd],
.rw-md-editor__preview h4[b-zz1ggk2jdd] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    margin-top: 1rem;
    margin-bottom: 0.4rem;
}

.rw-md-editor__preview h1[b-zz1ggk2jdd] { font-size: 1.4rem; }
.rw-md-editor__preview h2[b-zz1ggk2jdd] { font-size: 1.2rem; }
.rw-md-editor__preview h3[b-zz1ggk2jdd] { font-size: 1.05rem; }

.rw-md-editor__preview p[b-zz1ggk2jdd] {
    margin-bottom: 0.6rem;
}

.rw-md-editor__preview ul[b-zz1ggk2jdd],
.rw-md-editor__preview ol[b-zz1ggk2jdd] {
    padding-left: 1.5rem;
    margin-bottom: 0.6rem;
}

.rw-md-editor__preview blockquote[b-zz1ggk2jdd] {
    border-left: 3px solid var(--rw-gold);
    padding-left: 0.75rem;
    margin: 0.5rem 0;
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-md-editor__preview code[b-zz1ggk2jdd] {
    background: rgba(255, 255, 255, 0.05);
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    font-size: 0.85em;
    color: var(--rw-arcane-cyan);
}

.rw-md-editor__preview pre[b-zz1ggk2jdd] {
    background: rgba(0, 0, 0, 0.3);
    padding: 0.75rem;
    border-radius: var(--rw-radius-sm);
    overflow-x: auto;
}

.rw-md-editor__preview pre code[b-zz1ggk2jdd] {
    background: none;
    padding: 0;
}

.rw-md-editor__empty[b-zz1ggk2jdd] {
    color: var(--rw-text-faint);
    font-style: italic;
    margin: 0;
}

.rw-md-editor__help[b-zz1ggk2jdd] {
    margin-top: 0.3rem;
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
}
/* /Components/Shared/OrderedListEditor.razor.rz.scp.css */
/* ============================================================
   OrderedListEditor — Sortable list with add/remove/reorder
   ============================================================ */

.rw-ordered-list__label[b-m5o4wi0x1k] {
    display: block;
    margin-bottom: 0.4rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 500;
}

.rw-ordered-list__empty[b-m5o4wi0x1k] {
    padding: 1rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-style: italic;
    font-size: 0.88rem;
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.1);
}

.rw-ordered-list__items[b-m5o4wi0x1k] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.rw-ordered-list__item[b-m5o4wi0x1k] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.5rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-ordered-list__item:hover[b-m5o4wi0x1k] {
    border-color: rgba(196, 160, 64, 0.15);
    background: var(--rw-bg-panel);
}

/* Reorder buttons */
.rw-ordered-list__reorder[b-m5o4wi0x1k] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex-shrink: 0;
}

.rw-ordered-list__btn[b-m5o4wi0x1k] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 16px;
    border: none;
    border-radius: 2px;
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0;
    transition: all var(--rw-transition);
}

.rw-ordered-list__btn:not(:disabled):hover[b-m5o4wi0x1k] {
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light);
}

.rw-ordered-list__btn:disabled[b-m5o4wi0x1k] {
    opacity: 0.2;
    cursor: default;
}

/* Content area */
.rw-ordered-list__content[b-m5o4wi0x1k] {
    flex: 1;
    min-width: 0;
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    color: var(--rw-text);
}

/* Remove button */
.rw-ordered-list__remove[b-m5o4wi0x1k] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    transition: all var(--rw-transition);
}

.rw-ordered-list__remove:hover[b-m5o4wi0x1k] {
    background: rgba(184, 58, 26, 0.12);
    color: var(--rw-blood-bright);
}

/* Add button / area */
.rw-ordered-list__add-area[b-m5o4wi0x1k] {
    margin-top: 0.4rem;
}

.rw-ordered-list__add-btn[b-m5o4wi0x1k] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    padding: 0.45rem 0.65rem;
    margin-top: 0.4rem;
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-ordered-list__add-btn:hover[b-m5o4wi0x1k] {
    border-color: var(--rw-verdant);
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.06);
}
/* /Components/Shared/ReferencePicker.razor.rz.scp.css */
/* ============================================================
   ReferencePicker — Searchable dropdown for linking artifacts
   ============================================================ */

.rw-ref-picker[b-92vdpjmggu] {
    position: relative;
}

.rw-ref-picker__label[b-92vdpjmggu] {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 500;
}

.rw-ref-picker__control[b-92vdpjmggu] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.65rem;
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
    min-height: 38px;
}

.rw-ref-picker--open .rw-ref-picker__control[b-92vdpjmggu] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 2px var(--rw-verdant-glow);
}

.rw-ref-picker__selected[b-92vdpjmggu] {
    flex: 1;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-ref-picker__placeholder[b-92vdpjmggu] {
    flex: 1;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
}

.rw-ref-picker__clear[b-92vdpjmggu] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0;
    transition: all var(--rw-transition);
}

.rw-ref-picker__clear:hover[b-92vdpjmggu] {
    background: rgba(184, 58, 26, 0.12);
    color: var(--rw-blood-bright);
}

.rw-ref-picker__chevron[b-92vdpjmggu] {
    flex-shrink: 0;
    color: var(--rw-text-faint);
    transition: transform var(--rw-transition);
}

.rw-ref-picker--open .rw-ref-picker__chevron[b-92vdpjmggu] {
    transform: rotate(180deg);
}

/* Dropdown */
.rw-ref-picker__dropdown[b-92vdpjmggu] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 4px;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    box-shadow: var(--rw-shadow-deep);
    z-index: 200;
    overflow: hidden;
    animation: rw-picker-drop-b-92vdpjmggu 0.15s ease;
}

@keyframes rw-picker-drop-b-92vdpjmggu {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-ref-picker__search[b-92vdpjmggu] {
    display: block;
    width: 100%;
    padding: 0.5rem 0.65rem;
    background: var(--rw-bg-void);
    border: none;
    border-bottom: 1px solid var(--rw-border);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    outline: none;
}

.rw-ref-picker__search[b-92vdpjmggu]::placeholder {
    color: var(--rw-text-faint);
}

.rw-ref-picker__list[b-92vdpjmggu] {
    max-height: 200px;
    overflow-y: auto;
    padding: 0.25rem;
}

.rw-ref-picker__option[b-92vdpjmggu] {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.4rem 0.6rem;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-ref-picker__option:hover[b-92vdpjmggu] {
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-text-bright);
}

.rw-ref-picker__option--selected[b-92vdpjmggu] {
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
}

.rw-ref-picker__empty[b-92vdpjmggu] {
    padding: 0.75rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-style: italic;
    font-size: 0.85rem;
}

/* Invisible overlay to close on outside click */
.rw-ref-picker__overlay[b-92vdpjmggu] {
    position: fixed;
    inset: 0;
    z-index: 199;
}

/* Scrollbar */
.rw-ref-picker__list[b-92vdpjmggu]::-webkit-scrollbar { width: 5px; }
.rw-ref-picker__list[b-92vdpjmggu]::-webkit-scrollbar-track { background: transparent; }
.rw-ref-picker__list[b-92vdpjmggu]::-webkit-scrollbar-thumb { background: var(--rw-sage-muted); border-radius: 3px; }
/* /Components/Shared/SlidePanel.razor.rz.scp.css */
/* ============================================================
   SlidePanel — Right-docking detail panel
   Adapted from GmDrawer pattern, slides from right edge.
   ============================================================ */

.rw-slide-backdrop[b-p61a2b9ghw] {
    position: fixed;
    inset: 0;
    z-index: 300;
    background: rgba(7, 14, 20, 0);
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
    pointer-events: none;
    transition: background 0.3s ease,
                backdrop-filter 0.3s ease;
}

.rw-slide-backdrop--visible[b-p61a2b9ghw] {
    background: rgba(7, 14, 20, 0.4);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    pointer-events: auto;
}

/* Panel shell */
.rw-slide-panel[b-p61a2b9ghw] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 310;
    display: flex;
    flex-direction: column;
    background: var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur-strong);
    -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    border-left: 1px solid rgba(196, 160, 64, 0.15);
    box-shadow:
        -8px 0 50px rgba(0, 0, 0, 0.5),
        -2px 0 30px rgba(0, 0, 0, 0.3),
        inset 1px 0 0 rgba(196, 160, 64, 0.06);
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
                opacity 0.25s ease;
    overflow: hidden;
}

.rw-slide-panel--open[b-p61a2b9ghw] {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}

/* Left accent line */
.rw-slide-panel--open[b-p61a2b9ghw]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg,
        transparent 0%,
        var(--rw-gold) 20%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 80%,
        transparent 100%);
    opacity: 0.5;
    z-index: 1;
}

/* Width variants */
.rw-slide-panel--narrow[b-p61a2b9ghw] { width: min(400px, 90vw); }
.rw-slide-panel--medium[b-p61a2b9ghw] { width: min(520px, 92vw); }
.rw-slide-panel--wide[b-p61a2b9ghw]   { width: min(640px, 94vw); }

/* Header */
.rw-slide-panel__header[b-p61a2b9ghw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.rw-slide-panel__title-row[b-p61a2b9ghw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.rw-slide-panel__icon[b-p61a2b9ghw] {
    font-size: 1.1rem;
    line-height: 1;
    flex-shrink: 0;
}

.rw-slide-panel__title[b-p61a2b9ghw] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-slide-panel__close[b-p61a2b9ghw] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    flex-shrink: 0;
    transition: color var(--rw-transition), background var(--rw-transition);
}

.rw-slide-panel__close:hover[b-p61a2b9ghw] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.06);
}

/* Body — scrollable content */
.rw-slide-panel__body[b-p61a2b9ghw] {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.25rem;
    min-height: 0;
}

/* Footer — sticky actions */
.rw-slide-panel__footer[b-p61a2b9ghw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
    background: rgba(7, 14, 20, 0.4);
    flex-shrink: 0;
}

/* Scrollbar */
.rw-slide-panel__body[b-p61a2b9ghw]::-webkit-scrollbar {
    width: 6px;
}

.rw-slide-panel__body[b-p61a2b9ghw]::-webkit-scrollbar-track {
    background: transparent;
}

.rw-slide-panel__body[b-p61a2b9ghw]::-webkit-scrollbar-thumb {
    background: var(--rw-sage-muted);
    border-radius: 3px;
}

.rw-slide-panel__body[b-p61a2b9ghw]::-webkit-scrollbar-thumb:hover {
    background: var(--rw-sage-tan);
}

/* Responsive */
@media (max-width: 768px) {
    .rw-slide-panel--narrow[b-p61a2b9ghw],
    .rw-slide-panel--medium[b-p61a2b9ghw],
    .rw-slide-panel--wide[b-p61a2b9ghw] {
        width: 100vw;
    }
}
/* /Components/Shared/StatusBadge.razor.rz.scp.css */
/* ============================================================
   StatusBadge — Colored pill for artifact statuses
   ============================================================ */

.rw-status-badge[b-g5n2rh267u] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.6rem;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1.4;
    border-radius: var(--rw-radius-pill);
    border: 1px solid transparent;
    white-space: nowrap;
    transition: all var(--rw-transition);
}

.rw-status-badge__icon[b-g5n2rh267u] {
    font-size: 0.65rem;
    line-height: 1;
}

/* --- Status variants --- */

.rw-status-badge--active[b-g5n2rh267u] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.12);
    border-color: rgba(61, 138, 85, 0.3);
    box-shadow: 0 0 8px rgba(61, 138, 85, 0.08);
}

.rw-status-badge--completed[b-g5n2rh267u] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.25);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.06);
}

.rw-status-badge--failed[b-g5n2rh267u] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
    border-color: rgba(184, 58, 26, 0.25);
    box-shadow: 0 0 8px rgba(184, 58, 26, 0.06);
}

.rw-status-badge--abandoned[b-g5n2rh267u] {
    color: var(--rw-text-faint);
    background: rgba(90, 120, 104, 0.08);
    border-color: rgba(90, 120, 104, 0.2);
}

.rw-status-badge--draft[b-g5n2rh267u] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.08);
    border-color: rgba(72, 176, 192, 0.2);
    box-shadow: 0 0 8px rgba(72, 176, 192, 0.05);
}

.rw-status-badge--neutral[b-g5n2rh267u] {
    color: var(--rw-text-dim);
    background: rgba(138, 170, 152, 0.08);
    border-color: rgba(138, 170, 152, 0.15);
}
/* /Components/Shared/TagInput.razor.rz.scp.css */
/* ============================================================
   TagInput — Pill-style tag input
   ============================================================ */

.rw-tag-input__label[b-1pu3flm4xy] {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 500;
}

.rw-tag-input__container[b-1pu3flm4xy] {
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.35rem 0.5rem;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
    cursor: text;
}

.rw-tag-input__container:focus-within[b-1pu3flm4xy] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 2px var(--rw-verdant-glow);
}

.rw-tag-input__pills[b-1pu3flm4xy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
}

/* Individual pill */
.rw-tag-input__pill[b-1pu3flm4xy] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.15rem 0.1rem 0.5rem;
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.25);
    border-radius: var(--rw-radius-pill);
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.3;
    animation: rw-tag-pop-b-1pu3flm4xy 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes rw-tag-pop-b-1pu3flm4xy {
    from { transform: scale(0.8); opacity: 0; }
    to   { transform: scale(1);   opacity: 1; }
}

.rw-tag-input__pill-text[b-1pu3flm4xy] {
    white-space: nowrap;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-tag-input__pill-remove[b-1pu3flm4xy] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--rw-verdant);
    cursor: pointer;
    transition: all var(--rw-transition);
    padding: 0;
}

.rw-tag-input__pill-remove:hover[b-1pu3flm4xy] {
    background: rgba(184, 58, 26, 0.15);
    color: var(--rw-blood-bright);
}

/* Inline text input */
.rw-tag-input__field[b-1pu3flm4xy] {
    flex: 1;
    min-width: 80px;
    border: none;
    background: transparent;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    padding: 0.15rem 0.25rem;
    outline: none;
}

.rw-tag-input__field[b-1pu3flm4xy]::placeholder {
    color: var(--rw-text-faint);
}
