/* /Components/Campaigns/CampaignPreferencesPanel.razor.rz.scp.css */
/* =============================================================
   Campaign Preferences Panel — GM settings for campaign behavior
   ============================================================= */

.cp-panel[b-znenmcorqy] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* --- Sub-tab bar --- */
.cp-subtabs[b-znenmcorqy] {
    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;
    flex-wrap: wrap;
}

.cp-subtab[b-znenmcorqy] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--rw-text-dim);
    background: transparent;
    border: 1px solid transparent;
    padding: 0.4rem 0.7rem;
    border-radius: var(--rw-radius-sm);
    display: flex;
    align-items: center;
    gap: 0.3rem;
    cursor: pointer;
    transition: all var(--rw-transition);
    white-space: nowrap;
}

.cp-subtab svg[b-znenmcorqy] {
    opacity: 0.4;
    transition: opacity var(--rw-transition);
}

.cp-subtab:hover[b-znenmcorqy] {
    color: var(--rw-text-bright);
    background: rgba(188, 206, 198, 0.06);
}

.cp-subtab:hover svg[b-znenmcorqy] {
    opacity: 0.6;
}

.cp-subtab--active[b-znenmcorqy] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    border-color: rgba(61, 138, 85, 0.15);
}

.cp-subtab--active svg[b-znenmcorqy] {
    opacity: 1;
    color: var(--rw-verdant-bright);
}

/* --- Card --- */
.cp-card[b-znenmcorqy] {
    margin-bottom: 0;
}

.cp-card :deep(.card-header)[b-znenmcorqy] {
    position: relative;
    padding-left: 1.25rem;
}

.cp-card :deep(.card-header)[b-znenmcorqy]::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));
}

.cp-card__title[b-znenmcorqy] {
    font-family: var(--rw-font-sc);
    color: var(--rw-sage-cream);
    font-size: 1rem;
}

.cp-card__icon[b-znenmcorqy] {
    margin-right: 0.5rem;
    vertical-align: -3px;
    color: var(--rw-arcane-cyan);
}

.cp-card__scope[b-znenmcorqy] {
    display: block;
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    margin-top: 0.15rem;
    font-family: var(--rw-font-body);
}

/* --- Field rows --- */
.cp-field[b-znenmcorqy] {
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--rw-border);
}

.cp-field:last-child[b-znenmcorqy] {
    border-bottom: none;
}

.cp-field__row[b-znenmcorqy] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.cp-field__text[b-znenmcorqy] {
    flex: 1;
    min-width: 0;
}

.cp-field__label[b-znenmcorqy] {
    font-family: var(--rw-font-sc);
    color: var(--rw-sage-cream);
    font-size: 0.9rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cp-field__hint[b-znenmcorqy] {
    color: var(--rw-text-dim);
    font-size: 0.8rem;
    line-height: 1.4;
    margin-top: 0.1rem;
}

.cp-field__scope-badge[b-znenmcorqy] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.2);
    border-radius: 3px;
    padding: 0.1rem 0.4rem;
}

/* --- Number inputs --- */
.cp-field__input-group[b-znenmcorqy] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.cp-number-input[b-znenmcorqy] {
    width: 5rem;
    text-align: center;
}

.cp-field__unit[b-znenmcorqy] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    min-width: 1.8rem;
}

/* --- Toggle switches --- */
.cp-panel :deep(.form-check-input)[b-znenmcorqy] {
    width: 2.5em;
    height: 1.25em;
    flex-shrink: 0;
}

/* --- Audio cue grid --- */
.cp-cue-grid[b-znenmcorqy] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.cp-cue-row[b-znenmcorqy] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.35rem 0;
}

.cp-cue-row__label[b-znenmcorqy] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text);
}

/* --- Display panel toggles --- */
.cp-panel-toggles[b-znenmcorqy] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.cp-inline-toggle[b-znenmcorqy] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.35rem 0;
}

.cp-inline-toggle__label[b-znenmcorqy] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text);
}

/* --- Footer --- */
.cp-footer[b-znenmcorqy] {
    background: var(--rw-bg-moss);
    border-top: 1px solid var(--rw-border);
}

.cp-save-msg[b-znenmcorqy] {
    font-size: 0.85rem;
    animation: rw-fade-in-up 0.3s ease-out;
}

/* --- Disabled state --- */
.cp-panel :deep(.form-select:disabled)[b-znenmcorqy],
.cp-panel :deep(.form-control:disabled)[b-znenmcorqy] {
    opacity: 0.4;
}

/* --- Staggered entrance --- */
.cp-field:nth-child(1)[b-znenmcorqy] { animation: rw-fade-in-up 0.3s ease-out 0.05s both; }
.cp-field:nth-child(2)[b-znenmcorqy] { animation: rw-fade-in-up 0.3s ease-out 0.1s both; }
.cp-field:nth-child(3)[b-znenmcorqy] { animation: rw-fade-in-up 0.3s ease-out 0.15s both; }
.cp-field:nth-child(4)[b-znenmcorqy] { animation: rw-fade-in-up 0.3s ease-out 0.2s both; }
.cp-field:nth-child(5)[b-znenmcorqy] { animation: rw-fade-in-up 0.3s ease-out 0.25s both; }
.cp-field:nth-child(6)[b-znenmcorqy] { animation: rw-fade-in-up 0.3s ease-out 0.3s both; }
.cp-field:nth-child(7)[b-znenmcorqy] { animation: rw-fade-in-up 0.3s ease-out 0.35s both; }

/* --- Responsive --- */
@media (max-width: 768px) {
    .cp-subtabs[b-znenmcorqy] {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .cp-subtab[b-znenmcorqy] {
        font-size: 0.72rem;
        padding: 0.35rem 0.55rem;
    }

    .cp-subtab svg[b-znenmcorqy] {
        display: none;
    }

    .cp-field__row[b-znenmcorqy] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .cp-field__input-group[b-znenmcorqy] {
        align-self: flex-end;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* =============================================================
   MainLayout — Frosted glass spine + content pages
   ============================================================= */

.tome[b-8qsmqmqmh8] {
    display: flex;
    height: 100dvh;
    height: 100vh; /* fallback */
    position: relative;
    z-index: 1;
}

/* --- Sidebar: frosted glass over forest background --- */
.tome-spine[b-8qsmqmqmh8] {
    width: var(--rw-spine-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: 100dvh;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    scrollbar-width: none;          /* Firefox */
    -ms-overflow-style: none;       /* IE/Edge */
    flex-shrink: 0;
}

.tome-spine[b-8qsmqmqmh8]::-webkit-scrollbar {
    display: none;                  /* Chrome/Safari */
}

/* 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;
    min-height: 0;
    display: flex;
    flex-direction: column;
    max-height: 100dvh;
    max-height: 100vh; /* fallback */
    overflow: hidden;
    position: relative;
}

.pages-content[b-8qsmqmqmh8] {
    padding: var(--rw-content-padding, 2rem);
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    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);
    }

/* --- Collapse / Expand Toggle (desktop) --- */
.spine-collapse-toggle[b-8qsmqmqmh8] {
    display: none;
}

.spine-collapse-text[b-8qsmqmqmh8] {
    display: none;
}

/* --- Mobile Navigation --- */
.nav-drawer-toggle[b-8qsmqmqmh8] {
    display: none;
}

.nav-drawer-backdrop[b-8qsmqmqmh8] {
    display: none;
}

.nav-drawer-fab[b-8qsmqmqmh8] {
    display: none;
}

/* =============================================================
   DESKTOP — Collapsible sidebar
   ============================================================= */
@media (min-width: 769px) {
    /* Collapse toggle — inline button at bottom of spine */
    .spine-collapse-toggle[b-8qsmqmqmh8] {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.5rem 0.625rem;
        margin: 0 0.625rem 0.75rem;
        border: 1px solid rgba(188, 206, 198, 0.06);
        border-radius: 6px;
        background: rgba(188, 206, 198, 0.03);
        color: var(--rw-text-faint);
        cursor: pointer;
        transition: all 0.2s ease;
        font-family: var(--rw-font-ui);
        font-size: 0.82rem;
        flex-shrink: 0;
    }

    .spine-collapse-toggle:hover[b-8qsmqmqmh8] {
        background: rgba(188, 206, 198, 0.07);
        border-color: rgba(188, 206, 198, 0.12);
        color: var(--rw-text-dim);
    }

    .spine-collapse-text[b-8qsmqmqmh8] {
        display: inline;
        font-weight: 500;
        transition: opacity 0.15s ease, width 0.15s ease;
    }

    .spine-collapse-chevron[b-8qsmqmqmh8] {
        flex-shrink: 0;
        transition: transform 0.3s ease;
    }

    /* Animate spine width */
    .tome-spine[b-8qsmqmqmh8] {
        transition: width 0.3s cubic-bezier(0.23, 1, 0.32, 1);
        will-change: width;
        position: relative;
    }

    /* --- Collapsed state --- */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8] {
        width: var(--rw-spine-collapsed-width, 60px);
    }

    /* Rotate chevron when collapsed */
    .nav-drawer-toggle:checked ~ .tome-spine .spine-collapse-chevron[b-8qsmqmqmh8] {
        transform: rotate(180deg);
    }

    /* Toggle compact when collapsed */
    .nav-drawer-toggle:checked ~ .tome-spine .spine-collapse-toggle[b-8qsmqmqmh8] {
        justify-content: center;
        padding: 0.5rem;
        margin-left: 0.35rem;
        margin-right: 0.35rem;
    }

    .nav-drawer-toggle:checked ~ .tome-spine .spine-collapse-text[b-8qsmqmqmh8] {
        opacity: 0;
        width: 0;
        overflow: hidden;
        display: none;
    }

    /* Hide text labels with smooth fade */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-brand-text,
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-section-label,
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-version,
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-legal-row {
        opacity: 0;
        max-height: 0;
        overflow: hidden;
        margin: 0;
        padding: 0;
        transition: opacity 0.15s ease, max-height 0.2s ease;
    }

    /* Nav text fades inline */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-nav-text {
        opacity: 0;
        width: 0;
        overflow: hidden;
        white-space: nowrap;
        transition: opacity 0.15s ease, width 0.15s ease;
    }

    /* Hide search bar entirely when collapsed */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-search-btn {
        display: none;
    }

    /* Auth: show avatar only */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .header-display-name,
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .header-chevron,
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .header-notify-btn {
        opacity: 0;
        width: 0;
        overflow: hidden;
        transition: opacity 0.15s ease, width 0.15s ease;
    }

    /* Center nav items when collapsed */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-nav-item {
        justify-content: center;
        padding: 0.5rem 0;
    }

    /* Consistent icon size for symmetry */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-nav-icon {
        width: 36px;
        height: 36px;
    }

    /* Center sections */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-section {
        padding-left: 0.35rem;
        padding-right: 0.35rem;
    }

    /* Center brand mark */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-brand {
        padding: 0.5rem 0.35rem;
    }

    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-brand a {
        justify-content: center;
    }

    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-brand-mark {
        width: 36px;
        height: 36px;
    }

    /* Bottom section compact */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .spine-bottom {
        padding-left: 0.35rem;
        padding-right: 0.35rem;
        align-items: center;
    }

    /* Auth trigger compact — just avatar */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .header-account-trigger {
        justify-content: center;
        padding: 0.3rem;
    }

    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .header-auth {
        justify-content: center;
    }

    /* Not-authorized buttons compact */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .header-action-btn {
        padding: 0.3rem;
        justify-content: center;
        font-size: 0;
    }

    /* Live session text hidden */
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .live-campaign-name,
    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8]  .live-session-label {
        opacity: 0;
        width: 0;
        overflow: hidden;
        transition: opacity 0.15s ease, width 0.15s ease;
    }
}

/* =============================================================
   MOBILE — Slide-out drawer + FAB
   ============================================================= */
@media (max-width: 768px) {
    /* Backdrop overlay */
    .nav-drawer-backdrop[b-8qsmqmqmh8] {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(7, 14, 20, 0.65);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        z-index: 999;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
    }

    /* Sidebar becomes slide-out drawer */
    .tome-spine[b-8qsmqmqmh8] {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(280px, 85vw);
        z-index: 1000;
        transform: translateX(-100%);
        transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
        height: 100dvh;
        height: 100vh; /* fallback */
    }

    /* Drawer open state */
    .nav-drawer-toggle:checked ~ .nav-drawer-backdrop[b-8qsmqmqmh8] {
        opacity: 1;
        pointer-events: auto;
    }

    .nav-drawer-toggle:checked ~ .tome-spine[b-8qsmqmqmh8] {
        transform: translateX(0);
    }

    /* Content adjustments */
    .pages-content[b-8qsmqmqmh8] {
        --rw-content-padding: 1.25rem;
        padding: var(--rw-content-padding);
    }

    /* Floating action button — hamburger replacement */
    .nav-drawer-fab[b-8qsmqmqmh8] {
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        bottom: max(1rem, env(safe-area-inset-bottom, 0px));
        left: 1rem;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        background: rgba(7, 14, 20, 0.85);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border: 1px solid rgba(188, 206, 198, 0.12);
        color: var(--rw-text-dim);
        z-index: 100;
        cursor: pointer;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
        transition: all 0.2s ease;
        -webkit-tap-highlight-color: transparent;
    }

    .nav-drawer-fab:active[b-8qsmqmqmh8] {
        transform: scale(0.92);
        background: rgba(7, 14, 20, 0.95);
        border-color: rgba(61, 138, 85, 0.25);
        color: var(--rw-verdant-bright);
    }

    /* Hide FAB when drawer is open */
    .nav-drawer-toggle:checked ~ .tome-pages .nav-drawer-fab[b-8qsmqmqmh8] {
        opacity: 0;
        pointer-events: none;
        transform: scale(0.8);
    }

    /* Hide desktop collapse toggle on mobile */
    .spine-collapse-toggle[b-8qsmqmqmh8] {
        display: none !important;
    }
}

@media (max-width: 480px) {
    .pages-content[b-8qsmqmqmh8] {
        --rw-content-padding: 0.75rem;
        padding: var(--rw-content-padding);
        padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
    }

    .nav-drawer-fab[b-8qsmqmqmh8] {
        bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
        left: 0.75rem;
    }
}

/* --- Error Boundary Fallback --- */
.rw-error-fallback[b-8qsmqmqmh8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 4rem 2rem;
    min-height: 40vh;
    color: var(--rw-text, #bcbcbc);
}

.rw-error-fallback-icon[b-8qsmqmqmh8] {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.6;
}

.rw-error-fallback h2[b-8qsmqmqmh8] {
    font-family: 'MedievalSharp', cursive;
    color: var(--rw-gold, #c9a84c);
    margin-bottom: 0.5rem;
}

.rw-error-fallback p[b-8qsmqmqmh8] {
    max-width: 420px;
    margin-bottom: 1.5rem;
    opacity: 0.8;
}

.rw-error-fallback-actions[b-8qsmqmqmh8] {
    display: flex;
    gap: 0.75rem;
}
/* /Components/Layout/NavigationLoadingBar.razor.rz.scp.css */
.rw-nav-loading[b-26j58om9to] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.rw-nav-loading.active[b-26j58om9to] {
    opacity: 1;
}

.rw-nav-loading-bar[b-26j58om9to] {
    height: 100%;
    width: 40%;
    background: linear-gradient(90deg, var(--rw-verdant-bright, #50b068), var(--rw-gold, #c4a040), var(--rw-verdant-bright, #50b068));
    animation: rw-nav-slide-b-26j58om9to 1.5s ease-in-out infinite;
    box-shadow: 0 0 8px rgba(80, 176, 104, 0.4);
}

@keyframes rw-nav-slide-b-26j58om9to {
    0%   { transform: translateX(-100%); }
    100% { transform: translateX(350%); }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* =============================================================
   NavMenu — Fantasy RPG game menu with enchanted forest theming
   ============================================================= */

/* --- Brand --- */
.spine-brand[b-r5ahfaddrw] {
    padding: 0.75rem;
    display: flex;
    justify-content: center;
}

.spine-brand a[b-r5ahfaddrw] {
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.spine-brand-mark[b-r5ahfaddrw] {
    width: 100%;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
    overflow: hidden;
}

.spine-brand-mark img[b-r5ahfaddrw] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 0 20px rgba(0, 200, 180, 0.25)) drop-shadow(0 0 60px rgba(61, 138, 85, 0.15));
    -webkit-mask-image:
        linear-gradient(to bottom, transparent 0%, #000 6%, #000 90%, transparent 100%),
        linear-gradient(to right,  transparent 0%, #000 5%, #000 95%, transparent 100%);
    mask-image:
        linear-gradient(to bottom, transparent 0%, #000 6%, #000 90%, transparent 100%),
        linear-gradient(to right,  transparent 0%, #000 5%, #000 95%, transparent 100%);
    -webkit-mask-composite: destination-in;
    mask-composite: intersect;
}

.spine-brand a:hover .spine-brand-mark img[b-r5ahfaddrw] {
    filter: drop-shadow(0 0 28px rgba(0, 200, 180, 0.35)) drop-shadow(0 0 70px rgba(61, 138, 85, 0.25));
}

/* --- Sections --- */
.spine-section[b-r5ahfaddrw] {
    padding: 0.25rem 0.625rem;
}

.spine-section:first-child[b-r5ahfaddrw] {
    padding-top: 0;
}

.spine-section + .spine-section[b-r5ahfaddrw] {
    padding-top: 0.35rem;
}

/* Section group — no card container, just layout */
.spine-section-group[b-r5ahfaddrw] {
    padding: 0.15rem 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* --- Section labels — ornamental filigree --- */
.spine-section-label[b-r5ahfaddrw] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    color: var(--rw-gold);
    opacity: 0.75;
    padding: 0.35rem 0.625rem 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-shadow: 0 0 10px rgba(196, 160, 64, 0.2);
}

.spine-section-label-text[b-r5ahfaddrw] {
    flex-shrink: 0;
    white-space: nowrap;
}

/* Filigree lines with diamond ornaments */
.spine-section-line[b-r5ahfaddrw] {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(196, 160, 64, 0.12) 30%, rgba(196, 160, 64, 0.18) 50%, rgba(196, 160, 64, 0.12) 70%, transparent);
    position: relative;
}

.spine-section-label .spine-section-line:first-child[b-r5ahfaddrw] {
    background: linear-gradient(90deg, transparent, rgba(196, 160, 64, 0.12) 30%, rgba(196, 160, 64, 0.18));
}

.spine-section-label .spine-section-line:last-child[b-r5ahfaddrw] {
    background: linear-gradient(90deg, rgba(196, 160, 64, 0.18), rgba(196, 160, 64, 0.12) 70%, transparent);
}

/* Diamond ornaments at inner ends */
.spine-section-line[b-r5ahfaddrw]::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 4px;
    height: 4px;
    background: rgba(196, 160, 64, 0.3);
    transform: translateY(-50%) rotate(45deg);
}

.spine-section-label .spine-section-line:first-child[b-r5ahfaddrw]::after {
    right: -1px;
}

.spine-section-label .spine-section-line:last-child[b-r5ahfaddrw]::after {
    left: -1px;
}

/* --- Nav items — transparent at rest, magical on interaction --- */
[b-r5ahfaddrw] .spine-nav-item {
    display: flex;
    text-decoration: none;
    padding: 0.5rem 0.625rem;
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-text-dim);
    align-items: center;
    gap: 0.65rem;
    transition: all 0.2s ease;
    position: relative;
    border-radius: 6px;
    background: transparent;
    border: 1px solid transparent;
    animation: rw-fade-in-up 0.4s ease-out backwards;
}

/* Staggered entrance */
[b-r5ahfaddrw] .spine-nav-item:nth-child(1) { animation-delay: 0.05s; }
[b-r5ahfaddrw] .spine-nav-item:nth-child(2) { animation-delay: 0.1s; }
[b-r5ahfaddrw] .spine-nav-item:nth-child(3) { animation-delay: 0.15s; }
[b-r5ahfaddrw] .spine-nav-item:nth-child(4) { animation-delay: 0.2s; }

/* Hover shimmer sweep */
[b-r5ahfaddrw] .spine-nav-item::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 6px;
    background: linear-gradient(105deg, transparent 40%, rgba(188, 206, 198, 0.04) 45%, rgba(188, 206, 198, 0.08) 50%, rgba(188, 206, 198, 0.04) 55%, transparent 60%);
    background-size: 300% 100%;
    background-position: 100% 0;
    transition: background-position 0.5s ease;
    pointer-events: none;
}

[b-r5ahfaddrw] .spine-nav-item:hover::after {
    background-position: 0 0;
}

[b-r5ahfaddrw] .spine-nav-item:hover {
    color: var(--rw-text-bright);
    background: rgba(188, 206, 198, 0.05);
    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.25);
    color: var(--rw-verdant-bright);
    box-shadow: 0 0 8px rgba(61, 138, 85, 0.15);
}

/* Active state — magical aura glow */
[b-r5ahfaddrw] .spine-nav-item.active {
    color: var(--rw-text-bright);
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.1) 0%, rgba(61, 138, 85, 0.04) 100%);
    border-color: rgba(61, 138, 85, 0.18);
    animation: nav-active-glow-b-r5ahfaddrw 3s ease-in-out infinite;
}

[b-r5ahfaddrw] .spine-nav-item.active::after {
    display: none;
}

[b-r5ahfaddrw] .spine-nav-item.active .spine-nav-icon {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(61, 138, 85, 0.35);
    color: var(--rw-verdant-bright);
    box-shadow: 0 0 12px rgba(61, 138, 85, 0.2), 0 0 4px rgba(61, 138, 85, 0.3);
}

@keyframes nav-active-glow-b-r5ahfaddrw {
    0%, 100% {
        box-shadow: 0 0 12px rgba(61, 138, 85, 0.08), inset 0 0 12px rgba(61, 138, 85, 0.04);
        border-color: rgba(61, 138, 85, 0.15);
    }
    50% {
        box-shadow: 0 0 20px rgba(61, 138, 85, 0.14), inset 0 0 18px rgba(61, 138, 85, 0.06);
        border-color: rgba(61, 138, 85, 0.25);
    }
}

/* --- Icon containers — circular medallions --- */
[b-r5ahfaddrw] .spine-nav-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(188, 206, 198, 0.06) 0%, rgba(188, 206, 198, 0.02) 100%);
    border: 1px solid rgba(188, 206, 198, 0.08);
    color: var(--rw-text-dim);
    flex-shrink: 0;
    transition: all 0.25s ease;
}

[b-r5ahfaddrw] .spine-nav-icon svg {
    width: 18px;
    height: 18px;
    filter: drop-shadow(0 0 2px currentColor);
    transition: filter 0.3s ease;
}

[b-r5ahfaddrw] .spine-nav-item:hover .spine-nav-icon svg {
    filter: drop-shadow(0 0 5px currentColor);
}

[b-r5ahfaddrw] .spine-nav-text {
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.02em;
}

/* =============================================================
   Live session section — battle urgency
   ============================================================= */

.spine-section--live .spine-section-label[b-r5ahfaddrw] {
    color: var(--rw-blood-bright);
    text-shadow: 0 0 12px rgba(184, 58, 26, 0.3);
    animation: live-label-pulse-b-r5ahfaddrw 2s ease-in-out infinite;
}

.spine-section--live .spine-section-line[b-r5ahfaddrw] {
    background: linear-gradient(90deg, transparent, rgba(184, 58, 26, 0.15) 30%, rgba(184, 58, 26, 0.25) 50%, rgba(184, 58, 26, 0.15) 70%, transparent) !important;
}

.spine-section--live .spine-section-line[b-r5ahfaddrw]::after {
    background: rgba(184, 58, 26, 0.4);
}

@keyframes live-label-pulse-b-r5ahfaddrw {
    0%, 100% { text-shadow: 0 0 10px rgba(184, 58, 26, 0.2); }
    50% { text-shadow: 0 0 18px rgba(184, 58, 26, 0.45); }
}

[b-r5ahfaddrw] .spine-nav-item--live {
    background: rgba(184, 58, 26, 0.03);
    border: 1px solid rgba(184, 58, 26, 0.1);
    animation: live-item-ember-b-r5ahfaddrw 3s ease-in-out infinite;
}

[b-r5ahfaddrw] .spine-nav-item--live:hover {
    background: rgba(184, 58, 26, 0.07);
    border-color: rgba(184, 58, 26, 0.18);
}

[b-r5ahfaddrw] .spine-nav-item--live.active {
    background: linear-gradient(135deg, rgba(184, 58, 26, 0.1) 0%, rgba(184, 58, 26, 0.04) 100%);
    border-color: rgba(184, 58, 26, 0.2);
    animation: live-active-glow-b-r5ahfaddrw 3s ease-in-out infinite;
}

@keyframes live-item-ember-b-r5ahfaddrw {
    0%, 100% {
        border-color: rgba(184, 58, 26, 0.08);
        box-shadow: 0 0 6px rgba(184, 58, 26, 0.04);
    }
    50% {
        border-color: rgba(184, 58, 26, 0.18);
        box-shadow: 0 0 14px rgba(184, 58, 26, 0.08);
    }
}

@keyframes live-active-glow-b-r5ahfaddrw {
    0%, 100% {
        box-shadow: 0 0 12px rgba(184, 58, 26, 0.1), inset 0 0 12px rgba(184, 58, 26, 0.04);
        border-color: rgba(184, 58, 26, 0.18);
    }
    50% {
        box-shadow: 0 0 22px rgba(184, 58, 26, 0.18), inset 0 0 18px rgba(184, 58, 26, 0.06);
        border-color: rgba(184, 58, 26, 0.3);
    }
}

[b-r5ahfaddrw] .spine-nav-icon--live {
    background: rgba(184, 58, 26, 0.1);
    border-color: rgba(184, 58, 26, 0.18);
    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.3);
    box-shadow: 0 0 8px rgba(184, 58, 26, 0.15);
}

[b-r5ahfaddrw] .spine-nav-item--live.active .spine-nav-icon--live {
    background: rgba(184, 58, 26, 0.2);
    border-color: rgba(184, 58, 26, 0.35);
    box-shadow: 0 0 12px rgba(184, 58, 26, 0.2), 0 0 4px rgba(184, 58, 26, 0.3);
}

/* Pulse dot with expanding ring */
.live-pulse-dot[b-r5ahfaddrw] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rw-blood-bright);
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.6);
    animation: live-pulse-b-r5ahfaddrw 1.5s ease-in-out infinite;
    flex-shrink: 0;
    position: relative;
}

.live-pulse-dot[b-r5ahfaddrw]::after {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    border: 1px solid rgba(184, 58, 26, 0.4);
    animation: live-ring-expand-b-r5ahfaddrw 1.5s ease-out infinite;
}

@keyframes live-pulse-b-r5ahfaddrw {
    0%, 100% {
        box-shadow: 0 0 4px rgba(184, 58, 26, 0.5);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 10px rgba(184, 58, 26, 0.7), 0 0 20px rgba(184, 58, 26, 0.3);
        transform: scale(1.15);
    }
}

@keyframes live-ring-expand-b-r5ahfaddrw {
    0% { transform: scale(1); opacity: 0.6; }
    100% { transform: scale(2.2); opacity: 0; }
}

[b-r5ahfaddrw] .live-campaign-name {
    display: block;
    font-family: var(--rw-font-body);
    font-weight: 700;
    font-size: 0.86rem;
    line-height: 1.2;
    color: var(--rw-text-bright);
}

[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 — arcane gold authority
   ============================================================= */

.spine-section--admin .spine-section-label[b-r5ahfaddrw] {
    color: var(--rw-gold-light);
    text-shadow: 0 0 10px rgba(196, 160, 64, 0.2);
}

[b-r5ahfaddrw] .spine-nav-icon--admin {
    background: radial-gradient(circle, rgba(196, 160, 64, 0.1) 0%, rgba(196, 160, 64, 0.04) 100%);
    border-color: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item:hover .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 8px rgba(196, 160, 64, 0.15);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item:hover {
    background: rgba(196, 160, 64, 0.05);
    border-color: rgba(196, 160, 64, 0.08);
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item.active {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08) 0%, rgba(196, 160, 64, 0.03) 100%);
    border-color: rgba(196, 160, 64, 0.15);
    animation: nav-admin-glow-b-r5ahfaddrw 3s ease-in-out infinite;
}

[b-r5ahfaddrw] .spine-section-group--admin .spine-nav-item.active .spine-nav-icon--admin {
    background: rgba(196, 160, 64, 0.2);
    border-color: rgba(196, 160, 64, 0.35);
    color: var(--rw-gold-light);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.2), 0 0 4px rgba(196, 160, 64, 0.3);
}

@keyframes nav-admin-glow-b-r5ahfaddrw {
    0%, 100% {
        box-shadow: 0 0 12px rgba(196, 160, 64, 0.06), inset 0 0 12px rgba(196, 160, 64, 0.03);
        border-color: rgba(196, 160, 64, 0.12);
    }
    50% {
        box-shadow: 0 0 20px rgba(196, 160, 64, 0.12), inset 0 0 18px rgba(196, 160, 64, 0.05);
        border-color: rgba(196, 160, 64, 0.22);
    }
}

/* =============================================================
   Bottom section — search, auth, legal pinned below scroll
   ============================================================= */

.spine-bottom[b-r5ahfaddrw] {
    flex-shrink: 0;
    padding: 0.5rem 0.625rem 0.75rem;
    border-top: 1px solid rgba(188, 206, 198, 0.06);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.spine-auth[b-r5ahfaddrw] {
    padding: 0;
}

/* --- Search button — warm gold quest log feel --- */
.spine-search-btn[b-r5ahfaddrw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.625rem;
    border: 1px solid rgba(196, 160, 64, 0.1);
    border-radius: 6px;
    background: rgba(196, 160, 64, 0.03);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: left;
}

.spine-search-btn:hover[b-r5ahfaddrw] {
    border-color: rgba(196, 160, 64, 0.2);
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-text-dim);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.06);
}

.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(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: 4px;
    color: var(--rw-text-faint);
    line-height: 1.3;
}

/* --- Legal row — compact single line with version --- */
.spine-legal-row[b-r5ahfaddrw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    font-size: 0.58rem;
    color: var(--rw-text-faint);
    opacity: 0.6;
    line-height: 1;
}

.spine-legal-row a[b-r5ahfaddrw] {
    color: var(--rw-text-faint);
    text-decoration: none;
    transition: color 0.2s;
}

.spine-legal-row a:hover[b-r5ahfaddrw] {
    color: var(--rw-gold);
    opacity: 1;
}

.spine-legal-sep[b-r5ahfaddrw] {
    margin: 0 0.3rem;
    opacity: 0.35;
}

.spine-version[b-r5ahfaddrw] {
    color: rgba(255, 255, 255, 0.2);
    letter-spacing: 0.05em;
    user-select: text;
}

/* --- Layout --- */
.nav-scrollable[b-r5ahfaddrw] {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.nav-scrollable[b-r5ahfaddrw]::-webkit-scrollbar {
    display: none;
}

/* --- Mobile touch targets --- */
@media (max-width: 768px) {
    [b-r5ahfaddrw] .spine-nav-item {
        padding: 0.7rem 0.75rem;
        min-height: 44px;
    }

    [b-r5ahfaddrw] .spine-nav-icon {
        width: 36px;
        height: 36px;
    }

    .spine-search-btn[b-r5ahfaddrw] {
        min-height: 44px;
        padding: 0.65rem 0.75rem;
    }
}
/* /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 0.4s cubic-bezier(.05, .89, .25, 1.02),
                   components-reconnect-modal-fadeInOpacity-b-4cvmsfaepq 0.3s ease-in-out;
        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;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .rw-account-page[b-ki5tcq5jwq] {
        padding: 1.25rem 0.75rem;
    }

    .rw-account-tabs[b-ki5tcq5jwq] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 0;
    }

    .rw-account-tabs[b-ki5tcq5jwq]::-webkit-scrollbar {
        display: none;
    }

    .rw-account-tab[b-ki5tcq5jwq] {
        padding: 0.55rem 0.85rem;
        font-size: 0.8rem;
        white-space: nowrap;
        flex-shrink: 0;
    }
}

@media (max-width: 480px) {
    .rw-account-page[b-ki5tcq5jwq] {
        padding: 1rem 0.5rem;
    }

    .rw-account-header h1[b-ki5tcq5jwq] {
        font-size: 1.4rem;
    }

    .rw-account-tab[b-ki5tcq5jwq] {
        padding: 0.5rem 0.65rem;
        font-size: 0.75rem;
    }

    .rw-account-tab svg[b-ki5tcq5jwq] {
        display: none;
    }
}
/* /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;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .rw-prefs-subtabs[b-yxcfei5izx] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        flex-wrap: nowrap;
    }

    .rw-prefs-subtabs[b-yxcfei5izx]::-webkit-scrollbar {
        display: none;
    }

    .rw-prefs-subtab[b-yxcfei5izx] {
        white-space: nowrap;
        flex-shrink: 0;
    }

    .rw-prefs-card .form-check-input[b-yxcfei5izx] {
        width: 2.75em;
        height: 1.4em;
    }
}

@media (max-width: 480px) {
    .rw-prefs-subtab[b-yxcfei5izx] {
        padding: 0.35rem 0.65rem;
        font-size: 0.75rem;
    }

    .rw-prefs-subtab svg[b-yxcfei5izx] {
        display: none;
    }

    .rw-prefs-field[b-yxcfei5izx] {
        padding: 0.75rem 0;
    }
}
/* /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;
}

/* --- Mobile --- */
@media (max-width: 480px) {
    .rw-profile-identity[b-6ami18nte0] {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 1rem;
    }

    .rw-profile-avatar[b-6ami18nte0] {
        width: 64px;
        height: 64px;
        font-size: 1.6rem;
    }

    .rw-profile-name[b-6ami18nte0] {
        font-size: 1.2rem;
    }
}
/* /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%; }
}

/* --- Mobile --- */
@media (max-width: 480px) {
    .rw-subscription-coming-soon[b-ak530t5tbu] {
        padding: 1.5rem 1rem;
    }

    .rw-subscription-icon[b-ak530t5tbu] {
        width: 64px;
        height: 64px;
    }

    .rw-subscription-title[b-ak530t5tbu] {
        font-size: 1.15rem;
    }

    .rw-subscription-desc[b-ak530t5tbu] {
        font-size: 0.85rem;
    }
}
/* /Components/Pages/Account/EmailUnsubscribe.razor.rz.scp.css */
.rw-unsub-container[b-dg6gcwpat1] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 2rem 1rem;
    background-color: var(--rw-bg-primary, #070e14);
}

.rw-unsub-card[b-dg6gcwpat1] {
    max-width: 480px;
    width: 100%;
    background: var(--rw-panel-bg, #0f2028);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: 12px;
    padding: 2rem;
}

.rw-unsub-header[b-dg6gcwpat1] {
    text-align: center;
    margin-bottom: 1.5rem;
}

.rw-unsub-logo[b-dg6gcwpat1] {
    width: 140px;
    height: auto;
    margin-bottom: 1rem;
}

.rw-unsub-header h1[b-dg6gcwpat1] {
    font-family: 'MedievalSharp', 'Palatino Linotype', serif;
    font-size: 1.5rem;
    color: var(--rw-gold, #ecd06a);
    margin: 0;
}

.rw-unsub-email[b-dg6gcwpat1] {
    text-align: center;
    color: var(--rw-text-secondary, #8aab9e);
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

.rw-unsub-email strong[b-dg6gcwpat1] {
    color: var(--rw-text-primary, #bccec6);
}

.rw-unsub-options[b-dg6gcwpat1] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.rw-unsub-option[b-dg6gcwpat1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: 8px;
}

.rw-unsub-option-label[b-dg6gcwpat1] {
    font-weight: 600;
    color: var(--rw-text-primary, #bccec6);
    font-size: 0.9rem;
}

.rw-unsub-option-hint[b-dg6gcwpat1] {
    color: var(--rw-text-secondary, #8aab9e);
    font-size: 0.78rem;
    margin-top: 2px;
}

.rw-unsub-save[b-dg6gcwpat1] {
    width: 100%;
    padding: 0.65rem;
}

.rw-unsub-error[b-dg6gcwpat1],
.rw-unsub-success[b-dg6gcwpat1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.rw-unsub-error[b-dg6gcwpat1] {
    background: rgba(220, 53, 69, 0.12);
    border: 1px solid rgba(220, 53, 69, 0.3);
    color: #f0a0a8;
}

.rw-unsub-success[b-dg6gcwpat1] {
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.3);
    color: #8acea0;
}

.rw-unsub-footer[b-dg6gcwpat1] {
    text-align: center;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rw-border, #1a3430);
}

.rw-unsub-footer a[b-dg6gcwpat1] {
    color: var(--rw-verdant, #3d8a55);
    text-decoration: none;
    font-size: 0.85rem;
}

.rw-unsub-footer a:hover[b-dg6gcwpat1] {
    text-decoration: underline;
}
/* /Components/Pages/Admin/AdminDashboard.razor.rz.scp.css */
/* =============================================================
   Admin Dashboard — Realm command center
   ============================================================= */

.admin-header[b-m8ave2qbzf] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
}

.admin-title[b-m8ave2qbzf] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-m8ave2qbzf] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Card grid --- */
.admin-grid[b-m8ave2qbzf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1rem;
}

/* --- Quick-link cards --- */
.admin-card[b-m8ave2qbzf] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.35rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
}

.admin-card:hover[b-m8ave2qbzf] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.04);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.06);
    transform: translateY(-1px);
}

/* --- Icon --- */
.admin-card-icon[b-m8ave2qbzf] {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--rw-radius-md);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.12), rgba(196, 160, 64, 0.05));
    border: 1px solid rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
    transition: all 0.2s ease;
}

.admin-card:hover .admin-card-icon[b-m8ave2qbzf] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.1));
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-bright);
}

/* --- Body --- */
.admin-card-body[b-m8ave2qbzf] {
    flex: 1;
    min-width: 0;
}

.admin-card-title[b-m8ave2qbzf] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.2rem;
    transition: color 0.2s ease;
}

.admin-card:hover .admin-card-title[b-m8ave2qbzf] {
    color: var(--rw-gold-light);
}

.admin-card-desc[b-m8ave2qbzf] {
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    margin: 0;
    line-height: 1.4;
}

/* --- Arrow --- */
.admin-card-arrow[b-m8ave2qbzf] {
    flex-shrink: 0;
    color: var(--rw-text-faint);
    opacity: 0;
    transform: translateX(-4px);
    transition: all 0.2s ease;
}

.admin-card:hover .admin-card-arrow[b-m8ave2qbzf] {
    opacity: 0.6;
    transform: translateX(0);
    color: var(--rw-gold-light);
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-grid[b-m8ave2qbzf] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Admin/AiGenerationLog.razor.rz.scp.css */
/* =============================================================
   Admin AI Generation Log — Audit trail of image conjurations
   ============================================================= */

/* --- Header (shared admin pattern) --- */
.admin-header[b-164no6u5rj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-title[b-164no6u5rj] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-164no6u5rj] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Toolbar --- */
.admin-toolbar[b-164no6u5rj] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-164no6u5rj] {
    position: relative;
    flex: 1;
    max-width: 320px;
}

.admin-search-icon[b-164no6u5rj] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-164no6u5rj] {
    padding-left: 2.25rem !important;
}

.genlog-filter-group[b-164no6u5rj] {
    display: flex;
    gap: 0.5rem;
}

.genlog-filter-select[b-164no6u5rj] {
    font-size: 0.82rem;
    padding: 0.35rem 0.6rem;
    min-width: 140px;
    background: var(--rw-bg-panel);
    border-color: var(--rw-border);
    color: var(--rw-text);
}

.genlog-filter-select:focus[b-164no6u5rj] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 0.15rem rgba(61, 138, 85, 0.15);
}

.admin-toolbar-meta[b-164no6u5rj] {
    margin-left: auto;
}

.admin-count[b-164no6u5rj] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

/* --- Log card list --- */
.genlog-list[b-164no6u5rj] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.genlog-card[b-164no6u5rj] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    overflow: hidden;
    transition: border-color 0.2s ease;
}

.genlog-card:hover[b-164no6u5rj] {
    border-color: rgba(196, 160, 64, 0.25);
}

.genlog-card-failed[b-164no6u5rj] {
    border-left: 3px solid var(--rw-ember-red);
}

/* --- Card header --- */
.genlog-card-header[b-164no6u5rj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    flex-wrap: wrap;
    gap: 0.5rem;
}

.genlog-card-identity[b-164no6u5rj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.genlog-content-name[b-164no6u5rj] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-sage-cream);
}

.genlog-type-badge[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    background: rgba(188, 206, 198, 0.08);
    color: var(--rw-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.genlog-style-badge[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    letter-spacing: 0.02em;
}

.genlog-style-token[b-164no6u5rj] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
}

.genlog-style-item[b-164no6u5rj] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
}

.genlog-style-portrait[b-164no6u5rj] {
    background: rgba(100, 149, 237, 0.12);
    color: #7ab3f7;
}

.genlog-card-meta[b-164no6u5rj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.genlog-bg-badge[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    padding: 0.1rem 0.4rem;
    border-radius: 9999px;
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-verdant-bright);
}

.genlog-timestamp[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

/* --- Card body --- */
.genlog-card-body[b-164no6u5rj] {
    padding: 0.75rem 1rem;
}

.genlog-provider-row[b-164no6u5rj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.genlog-provider-label[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.genlog-provider-value[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    margin-right: 0.75rem;
}

/* --- Prompt toggle --- */
.genlog-prompt-section[b-164no6u5rj] {
    margin-top: 0.25rem;
}

.genlog-prompt-toggle[b-164no6u5rj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: none;
    border: none;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    padding: 0.25rem 0;
    cursor: pointer;
    opacity: 0.8;
    transition: opacity 0.15s ease;
}

.genlog-prompt-toggle:hover[b-164no6u5rj] {
    opacity: 1;
}

.genlog-prompt-chevron[b-164no6u5rj] {
    transition: transform 0.2s ease;
}

.genlog-chevron-open[b-164no6u5rj] {
    transform: rotate(90deg);
}

.genlog-prompt-text[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    line-height: 1.55;
    padding: 0.6rem 0.75rem;
    margin-top: 0.35rem;
    background: rgba(0, 0, 0, 0.15);
    border-radius: var(--rw-radius-sm);
    border-left: 2px solid rgba(196, 160, 64, 0.3);
    white-space: pre-wrap;
    word-break: break-word;
}

/* --- Error section --- */
.genlog-error-section[b-164no6u5rj] {
    display: flex;
    gap: 0.35rem;
    margin-top: 0.35rem;
    padding: 0.5rem 0.75rem;
    background: rgba(220, 53, 69, 0.06);
    border-radius: var(--rw-radius-sm);
    border-left: 2px solid var(--rw-ember-red);
}

.genlog-error-label[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-ember-red);
    font-weight: 600;
    flex-shrink: 0;
}

.genlog-error-text[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    word-break: break-word;
}

/* --- Image preview --- */
.genlog-card-preview[b-164no6u5rj] {
    padding: 0 1rem 0.75rem;
    display: flex;
}

.genlog-card-preview img[b-164no6u5rj] {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

/* --- Empty state --- */
.genlog-empty-state[b-164no6u5rj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    gap: 0.75rem;
    color: var(--rw-text-faint);
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.genlog-empty-text[b-164no6u5rj] {
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    margin: 0;
}

/* --- Skeleton loading --- */
.skeleton-bone[b-164no6u5rj] {
    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-164no6u5rj 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-164no6u5rj {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Pagination --- */
.admin-pagination[b-164no6u5rj] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-header[b-164no6u5rj] {
        flex-direction: column;
    }

    .admin-toolbar[b-164no6u5rj] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-search-wrap[b-164no6u5rj] {
        max-width: 100%;
    }

    .genlog-filter-group[b-164no6u5rj] {
        flex-direction: column;
    }

    .genlog-filter-select[b-164no6u5rj] {
        min-width: 100%;
    }

    .admin-toolbar-meta[b-164no6u5rj] {
        margin-left: 0;
    }

    .genlog-card-header[b-164no6u5rj] {
        flex-direction: column;
        align-items: flex-start;
    }

    .genlog-card-meta[b-164no6u5rj] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/Admin/AiServices.razor.rz.scp.css */
/* =============================================================
   AI Services Admin — Arcane Workshop
   ============================================================= */

/* --- Tab bar --- */
.ai-tab-bar[b-8kivopin6n] {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--rw-border);
    padding-bottom: 0;
    overflow-x: auto;
}

.ai-tab[b-8kivopin6n] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--rw-text-faint);
    font-size: 0.88rem;
    font-family: var(--rw-font-display);
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    position: relative;
}

.ai-tab:hover[b-8kivopin6n] {
    color: var(--rw-text-bright);
    background: rgba(196, 160, 64, 0.04);
}

.ai-tab--active[b-8kivopin6n] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold-light);
}

.ai-tab-icon[b-8kivopin6n] {
    display: flex;
    align-items: center;
    opacity: 0.7;
}

.ai-tab--active .ai-tab-icon[b-8kivopin6n] {
    opacity: 1;
}

.ai-tab-badge[b-8kivopin6n] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    margin-left: 0.15rem;
}

.ai-tab-badge--active[b-8kivopin6n] {
    background: #4ade80;
    box-shadow: 0 0 6px rgba(74, 222, 128, 0.5);
}

/* --- Config panel --- */
.ai-config-panel[b-8kivopin6n] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.75rem;
}

/* --- Loading state --- */
.ai-loading[b-8kivopin6n] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 3rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.ai-loading-sigil[b-8kivopin6n] {
    width: 32px;
    height: 32px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: ai-spin-b-8kivopin6n 0.8s linear infinite;
}

/* --- Form --- */
.ai-config-form[b-8kivopin6n] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 640px;
}

.ai-form-row[b-8kivopin6n] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ai-form-row--toggle[b-8kivopin6n] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.ai-label[b-8kivopin6n] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ai-label-hint[b-8kivopin6n] {
    font-weight: 400;
    text-transform: none;
    color: var(--rw-text-faint);
    font-size: 0.78rem;
}

.ai-input[b-8kivopin6n],
.ai-select[b-8kivopin6n] {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.6rem 0.85rem;
    color: var(--rw-text-bright);
    font-size: 0.88rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    outline: none;
}

.ai-input:focus[b-8kivopin6n],
.ai-select:focus[b-8kivopin6n] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.08);
}

.ai-input[b-8kivopin6n]::placeholder {
    color: var(--rw-text-faint);
    opacity: 0.6;
}

.ai-select option[b-8kivopin6n] {
    background: #1a1e2a;
    color: var(--rw-text-bright);
}

/* --- Key group --- */
.ai-key-group[b-8kivopin6n] {
    display: flex;
    gap: 0.35rem;
}

.ai-input--key[b-8kivopin6n] {
    flex: 1;
    font-family: 'Courier New', monospace;
    letter-spacing: 0.05em;
}

/* --- Toggle switch --- */
.ai-toggle[b-8kivopin6n] {
    position: relative;
    cursor: pointer;
}

.ai-toggle input[b-8kivopin6n] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.ai-toggle-track[b-8kivopin6n] {
    display: block;
    width: 44px;
    height: 24px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid var(--rw-border);
    border-radius: 12px;
    position: relative;
    transition: all 0.25s ease;
}

.ai-toggle input:checked + .ai-toggle-track[b-8kivopin6n] {
    background: rgba(74, 222, 128, 0.15);
    border-color: rgba(74, 222, 128, 0.4);
}

.ai-toggle-thumb[b-8kivopin6n] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    transition: all 0.25s ease;
}

.ai-toggle input:checked + .ai-toggle-track .ai-toggle-thumb[b-8kivopin6n] {
    left: 22px;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.4);
}

/* --- Test result banner --- */
.ai-test-result[b-8kivopin6n] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.82rem;
}

.ai-test-result--ok[b-8kivopin6n] {
    background: rgba(74, 222, 128, 0.08);
    border: 1px solid rgba(74, 222, 128, 0.2);
    color: #4ade80;
}

.ai-test-result--fail[b-8kivopin6n] {
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.2);
    color: #ef4444;
}

.ai-test-icon[b-8kivopin6n] {
    font-size: 1rem;
    font-weight: 700;
}

.ai-test-time[b-8kivopin6n] {
    margin-left: auto;
    color: var(--rw-text-faint);
    font-size: 0.75rem;
}

/* --- Buttons --- */
.ai-btn[b-8kivopin6n] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.55rem 1.1rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    font-size: 0.84rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    background: transparent;
    color: var(--rw-text-bright);
}

.ai-btn:disabled[b-8kivopin6n] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ai-btn--icon[b-8kivopin6n] {
    padding: 0.55rem;
    min-width: 36px;
    color: var(--rw-text-faint);
}

.ai-btn--icon:hover[b-8kivopin6n] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.3);
}

.ai-btn--primary[b-8kivopin6n] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.1));
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
}

.ai-btn--primary:hover:not(:disabled)[b-8kivopin6n] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.3), rgba(196, 160, 64, 0.15));
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.1);
}

.ai-btn--secondary[b-8kivopin6n] {
    color: var(--rw-text-faint);
}

.ai-btn--secondary:hover:not(:disabled)[b-8kivopin6n] {
    color: var(--rw-text-bright);
    border-color: rgba(255, 255, 255, 0.15);
}

.ai-btn--gold[b-8kivopin6n] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.05));
    border-color: rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-display);
}

.ai-btn--gold:hover:not(:disabled)[b-8kivopin6n] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.1));
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.08);
}

.ai-btn--tiny[b-8kivopin6n] {
    padding: 0.3rem 0.6rem;
    font-size: 0.75rem;
    border-radius: 4px;
}

.ai-btn--generate[b-8kivopin6n] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
}

.ai-btn--generate:hover:not(:disabled)[b-8kivopin6n] {
    background: rgba(196, 160, 64, 0.2);
}

.ai-btn--regen[b-8kivopin6n] {
    color: var(--rw-text-faint);
}

.ai-btn--regen:hover:not(:disabled)[b-8kivopin6n] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.3);
}

.ai-form-actions[b-8kivopin6n] {
    display: flex;
    gap: 0.75rem;
    padding-top: 0.5rem;
}

/* --- Audio section --- */
.ai-audio-section[b-8kivopin6n] {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--rw-border);
}

.ai-audio-header[b-8kivopin6n] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.ai-section-title[b-8kivopin6n] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    margin: 0;
}

/* --- Cue categories --- */
.ai-cue-category[b-8kivopin6n] {
    margin-bottom: 1.5rem;
}

.ai-cue-category-title[b-8kivopin6n] {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    margin-bottom: 0.5rem;
    padding-left: 0.25rem;
}

.ai-cue-table[b-8kivopin6n] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
}

.ai-cue-row[b-8kivopin6n] {
    display: grid;
    grid-template-columns: 140px 1fr auto auto;
    align-items: center;
    gap: 1rem;
    padding: 0.65rem 0.85rem;
    background: rgba(0, 0, 0, 0.15);
    transition: background 0.15s ease;
}

.ai-cue-row:hover[b-8kivopin6n] {
    background: rgba(196, 160, 64, 0.03);
}

.ai-cue-name[b-8kivopin6n] {
    font-family: 'Courier New', monospace;
    font-size: 0.82rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
}

.ai-cue-prompt[b-8kivopin6n] {
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    line-height: 1.4;
    overflow: hidden;
    min-width: 0;
}

.ai-prompt-text[b-8kivopin6n] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    padding: 0.15rem 0.3rem;
    border-radius: 3px;
    transition: background 0.15s ease;
}

.ai-prompt-text:hover[b-8kivopin6n] {
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-text-bright);
}

.ai-prompt-text--custom[b-8kivopin6n] {
    color: var(--rw-gold-light);
}

.ai-prompt-custom-badge[b-8kivopin6n] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light);
    opacity: 0.6;
    margin-left: 0.35rem;
}

.ai-prompt-edit[b-8kivopin6n] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ai-input--prompt[b-8kivopin6n] {
    font-size: 0.8rem;
    padding: 0.4rem 0.6rem;
}

.ai-prompt-edit-hint[b-8kivopin6n] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ai-prompt-default[b-8kivopin6n] {
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    opacity: 0.6;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-btn--reset[b-8kivopin6n] {
    color: var(--rw-text-faint);
    font-size: 0.68rem;
    padding: 0.15rem 0.4rem;
    flex-shrink: 0;
}

.ai-btn--reset:hover[b-8kivopin6n] {
    color: #ef4444;
    border-color: rgba(239, 68, 68, 0.3);
}

.ai-cue-row--editing[b-8kivopin6n] {
    background: rgba(196, 160, 64, 0.04);
}

.ai-cue-status[b-8kivopin6n] {
    display: flex;
    align-items: center;
}

.ai-cue-badge[b-8kivopin6n] {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.55rem;
    border-radius: 10px;
    white-space: nowrap;
}

.ai-cue-badge--generated[b-8kivopin6n] {
    background: rgba(74, 222, 128, 0.1);
    color: #4ade80;
    border: 1px solid rgba(74, 222, 128, 0.2);
}

.ai-cue-badge--missing[b-8kivopin6n] {
    background: rgba(239, 68, 68, 0.08);
    color: #ef4444;
    border: 1px solid rgba(239, 68, 68, 0.15);
}

.ai-cue-actions[b-8kivopin6n] {
    display: flex;
    gap: 0.3rem;
    align-items: center;
}

/* --- Image section --- */
.ai-image-section[b-8kivopin6n] {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--rw-border);
}

.ai-image-header[b-8kivopin6n] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.ai-image-controls[b-8kivopin6n] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.ai-toggle-inline[b-8kivopin6n] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    position: relative;
}

.ai-toggle-inline input[b-8kivopin6n] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.ai-toggle-inline input:checked + .ai-toggle-track[b-8kivopin6n] {
    background: rgba(74, 222, 128, 0.15);
    border-color: rgba(74, 222, 128, 0.4);
}

.ai-toggle-inline input:checked + .ai-toggle-track .ai-toggle-thumb[b-8kivopin6n] {
    left: 22px;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.4);
}

.ai-toggle-label[b-8kivopin6n] {
    font-size: 0.8rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
}

.ai-toggle-label--disabled[b-8kivopin6n] {
    color: var(--rw-text-faint);
    opacity: 0.5;
}

.ai-toggle-hint[b-8kivopin6n] {
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    opacity: 0.6;
}

.ai-icon-thumb[b-8kivopin6n] {
    width: 32px;
    height: 32px;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--rw-border);
    background: repeating-conic-gradient(rgba(255,255,255,0.04) 0% 25%, transparent 0% 50%) 50% / 8px 8px;
    flex-shrink: 0;
}

.ai-icon-thumb img[b-8kivopin6n] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* --- Spinner --- */
.ai-spinner[b-8kivopin6n] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: ai-spin-b-8kivopin6n 0.7s linear infinite;
}

.ai-spinner--sm[b-8kivopin6n] {
    width: 10px;
    height: 10px;
    border-width: 1.5px;
}

@keyframes ai-spin-b-8kivopin6n {
    to { transform: rotate(360deg); }
}

/* --- Toast --- */
.ai-toast[b-8kivopin6n] {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    padding: 0.75rem 1.25rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.85rem;
    font-weight: 500;
    z-index: 1000;
    animation: ai-toast-in-b-8kivopin6n 0.3s ease;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

.ai-toast--success[b-8kivopin6n] {
    background: rgba(74, 222, 128, 0.12);
    border: 1px solid rgba(74, 222, 128, 0.3);
    color: #4ade80;
}

.ai-toast--error[b-8kivopin6n] {
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #ef4444;
}

@keyframes ai-toast-in-b-8kivopin6n {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .ai-tab-bar[b-8kivopin6n] {
        gap: 0;
    }

    .ai-tab[b-8kivopin6n] {
        padding: 0.6rem 0.75rem;
        font-size: 0.8rem;
    }

    .ai-tab-label[b-8kivopin6n] {
        display: none;
    }

    .ai-config-panel[b-8kivopin6n] {
        padding: 1.25rem;
    }

    .ai-cue-row[b-8kivopin6n] {
        grid-template-columns: 1fr auto auto;
    }

    .ai-cue-prompt[b-8kivopin6n] {
        display: none;
    }

    .ai-form-actions[b-8kivopin6n] {
        flex-direction: column;
    }

    .ai-audio-header[b-8kivopin6n],
    .ai-image-header[b-8kivopin6n] {
        flex-direction: column;
        gap: 0.75rem;
        align-items: flex-start;
    }

    .ai-image-controls[b-8kivopin6n] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/Admin/ContentEditor.razor.rz.scp.css */
/* =============================================================
   Admin Content Editor — Adaptive item editor page
   ============================================================= */

/* --- Breadcrumb --- */
.editor-breadcrumb[b-g0e1bi8x3i] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.editor-breadcrumb-link[b-g0e1bi8x3i] {
    color: var(--rw-gold-light);
    text-decoration: none;
    transition: color 0.15s ease;
}

.editor-breadcrumb-link:hover[b-g0e1bi8x3i] {
    color: var(--rw-gold-bright);
    text-decoration: underline;
}

.editor-breadcrumb-sep[b-g0e1bi8x3i] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.editor-breadcrumb-current[b-g0e1bi8x3i] {
    color: var(--rw-text-dim);
}

/* --- Header --- */
.editor-header[b-g0e1bi8x3i] {
    margin-bottom: 1.5rem;
}

.editor-title[b-g0e1bi8x3i] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.5rem;
    margin-bottom: 0.3rem;
}

.editor-meta[b-g0e1bi8x3i] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.editor-slug[b-g0e1bi8x3i] {
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    background: rgba(255, 255, 255, 0.04);
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
}

.editor-date[b-g0e1bi8x3i] {
    font-size: 0.75rem;
    color: var(--rw-text-faint);
}

/* --- Sections --- */
.editor-section[b-g0e1bi8x3i] {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.25rem;
}

.editor-section-title[b-g0e1bi8x3i] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.editor-subsection-title[b-g0e1bi8x3i] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--rw-text-dim);
    margin-top: 1.25rem;
    margin-bottom: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* --- Fields --- */
.editor-field[b-g0e1bi8x3i] {
    margin-bottom: 0.75rem;
}

.editor-field--centered[b-g0e1bi8x3i] {
    text-align: center;
}

.editor-label[b-g0e1bi8x3i] {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rw-text-dim);
    margin-bottom: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.editor-required[b-g0e1bi8x3i] {
    color: var(--rw-danger);
}

.editor-hint[b-g0e1bi8x3i] {
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    margin-top: 0.2rem;
}

/* --- Grid layouts --- */
.editor-grid-2[b-g0e1bi8x3i] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.editor-grid-3[b-g0e1bi8x3i] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.75rem;
}

.editor-grid-4[b-g0e1bi8x3i] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
}

.editor-grid-5[b-g0e1bi8x3i] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.75rem;
}

.editor-grid-6[b-g0e1bi8x3i] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.5rem;
}

/* --- General + Image sidebar layout --- */
.editor-general-with-image[b-g0e1bi8x3i] {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}

.editor-general-fields[b-g0e1bi8x3i] {
    flex: 1;
    min-width: 0;
}

.editor-image-compact[b-g0e1bi8x3i] {
    flex: 0 0 160px;
    width: 160px;
}

[b-g0e1bi8x3i] .editor-image-compact .rw-image-upload__img {
    max-height: 140px;
    width: 140px;
    object-fit: cover;
}

[b-g0e1bi8x3i] .editor-image-compact .rw-image-upload__dropzone {
    padding: 0.75rem;
}

[b-g0e1bi8x3i] .editor-image-compact .rw-image-upload__text {
    font-size: 0.7rem;
}

[b-g0e1bi8x3i] .editor-image-compact .rw-image-upload__hint {
    display: none;
}

/* --- AI Image Generation Button --- */
.editor-ai-gen-btn[b-g0e1bi8x3i] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.4rem 0.6rem;
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: 6px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.editor-ai-gen-btn:hover:not(:disabled)[b-g0e1bi8x3i] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.35);
    color: var(--rw-gold-bright);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.1);
}

.editor-ai-gen-btn:disabled[b-g0e1bi8x3i] {
    opacity: 0.6;
    cursor: not-allowed;
}

.editor-ai-gen-spinner[b-g0e1bi8x3i] {
    width: 12px;
    height: 12px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: editor-spin-b-g0e1bi8x3i 0.8s linear infinite;
}

@keyframes editor-spin-b-g0e1bi8x3i {
    to { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .editor-grid-2[b-g0e1bi8x3i],
    .editor-grid-3[b-g0e1bi8x3i],
    .editor-grid-4[b-g0e1bi8x3i],
    .editor-grid-5[b-g0e1bi8x3i] {
        grid-template-columns: 1fr 1fr;
    }

    .editor-grid-6[b-g0e1bi8x3i] {
        grid-template-columns: repeat(3, 1fr);
    }

    .editor-general-with-image[b-g0e1bi8x3i] {
        flex-direction: column;
    }

    .editor-image-compact[b-g0e1bi8x3i] {
        flex: none;
        width: 100%;
        max-width: 200px;
    }
}

@media (max-width: 480px) {
    .editor-grid-2[b-g0e1bi8x3i],
    .editor-grid-3[b-g0e1bi8x3i],
    .editor-grid-4[b-g0e1bi8x3i],
    .editor-grid-5[b-g0e1bi8x3i],
    .editor-grid-6[b-g0e1bi8x3i] {
        grid-template-columns: 1fr;
    }
}

/* --- Checkboxes --- */
.editor-checkboxes[b-g0e1bi8x3i] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0.75rem 0;
}

.editor-checkbox[b-g0e1bi8x3i] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: var(--rw-text-main);
    cursor: pointer;
}

.editor-checkbox input[type="checkbox"][b-g0e1bi8x3i] {
    accent-color: var(--rw-gold-light);
    width: 16px;
    height: 16px;
}

/* --- Action Bar --- */
.editor-actions[b-g0e1bi8x3i] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    margin-top: 0.5rem;
}

.editor-btn-save[b-g0e1bi8x3i] {
    background: var(--rw-gold-light);
    color: var(--rw-bg-deep, #0f0f1a);
    font-weight: 600;
    border: none;
    padding: 0.5rem 1.5rem;
    border-radius: 6px;
    transition: all 0.15s ease;
}

.editor-btn-save:hover:not(:disabled)[b-g0e1bi8x3i] {
    background: var(--rw-gold-bright);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(var(--rw-gold-rgb, 212, 175, 55), 0.25);
}

.editor-btn-save:disabled[b-g0e1bi8x3i] {
    opacity: 0.5;
    cursor: not-allowed;
}

.editor-btn-cancel[b-g0e1bi8x3i] {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--rw-text-dim);
    padding: 0.5rem 1.25rem;
    border-radius: 6px;
    transition: all 0.15s ease;
}

.editor-btn-cancel:hover[b-g0e1bi8x3i] {
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--rw-text-main);
}

.editor-btn-delete[b-g0e1bi8x3i] {
    margin-left: auto;
    background: none;
    border: 1px solid rgba(var(--rw-danger-rgb, 220, 53, 69), 0.3);
    color: var(--rw-danger);
    padding: 0.5rem 1.25rem;
    border-radius: 6px;
    transition: all 0.15s ease;
}

.editor-btn-delete:hover:not(:disabled)[b-g0e1bi8x3i] {
    background: rgba(var(--rw-danger-rgb, 220, 53, 69), 0.1);
    border-color: var(--rw-danger);
}

.editor-btn-delete:disabled[b-g0e1bi8x3i] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* --- Delete Modal --- */
.editor-modal-backdrop[b-g0e1bi8x3i] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    backdrop-filter: blur(4px);
}

.editor-modal[b-g0e1bi8x3i] {
    background: var(--rw-bg-surface, #1e1e2e);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 1.5rem;
    max-width: 420px;
    width: 90%;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
}

.editor-modal-title[b-g0e1bi8x3i] {
    font-family: var(--rw-font-display);
    color: var(--rw-danger);
    font-size: 1.1rem;
    margin-bottom: 0.75rem;
}

.editor-modal p[b-g0e1bi8x3i] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    margin-bottom: 1.25rem;
}

.editor-modal-actions[b-g0e1bi8x3i] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

/* --- Validation --- */
.editor-field--error .form-control[b-g0e1bi8x3i],
.editor-field--error .form-select[b-g0e1bi8x3i] {
    border-color: var(--rw-danger, #dc3545);
    box-shadow: 0 0 0 1px rgba(220, 53, 69, 0.25);
}

.editor-validation-msg[b-g0e1bi8x3i] {
    display: block;
    font-size: 0.75rem;
    color: var(--rw-danger, #dc3545);
    margin-top: 0.2rem;
}

/* --- States --- */
.editor-skeleton[b-g0e1bi8x3i] {
    padding: 2rem 0;
}

.editor-empty[b-g0e1bi8x3i] {
    text-align: center;
    padding: 3rem 0;
    color: var(--rw-text-faint);
}

.editor-empty p[b-g0e1bi8x3i] {
    margin-bottom: 1rem;
}
/* /Components/Pages/Admin/ContentSourceDetail.razor.rz.scp.css */
/* =============================================================
   Admin Content Source Detail — Visual card grid browser
   ============================================================= */

/* --- Breadcrumb --- */
.admin-breadcrumb[b-pi1m3fudic] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.admin-breadcrumb-link[b-pi1m3fudic] {
    color: var(--rw-gold-light);
    text-decoration: none;
    transition: color 0.15s ease;
}

.admin-breadcrumb-link:hover[b-pi1m3fudic] {
    color: var(--rw-gold-bright);
    text-decoration: underline;
}

.admin-breadcrumb-sep[b-pi1m3fudic] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.admin-breadcrumb-current[b-pi1m3fudic] {
    color: var(--rw-text-dim);
}

/* --- Header --- */
.admin-header[b-pi1m3fudic] {
    margin-bottom: 1.25rem;
}

.admin-title[b-pi1m3fudic] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.4rem;
}

.admin-header-meta[b-pi1m3fudic] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.admin-header-desc[b-pi1m3fudic] {
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    line-height: 1.45;
    margin: 0.35rem 0 0;
    max-width: 600px;
}

.admin-meta-tag[b-pi1m3fudic] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.45rem;
    background: rgba(188, 206, 198, 0.04);
    border: 1px solid rgba(188, 206, 198, 0.06);
    border-radius: 3px;
}

.admin-source-type-badge[b-pi1m3fudic] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.15rem 0.55rem;
    border-radius: 3px;
}

.admin-badge--srd[b-pi1m3fudic] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.admin-badge--official[b-pi1m3fudic] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

/* --- Counts bar --- */
.admin-counts-bar[b-pi1m3fudic] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(188, 206, 198, 0.06);
}

.admin-count-chip[b-pi1m3fudic] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    padding: 0.3rem 0.65rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.admin-count-chip:hover[b-pi1m3fudic] {
    border-color: rgba(196, 160, 64, 0.2);
    background: rgba(196, 160, 64, 0.04);
    color: var(--rw-text);
}

.admin-count-chip--active[b-pi1m3fudic] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light);
}

.admin-count-chip--clear[b-pi1m3fudic] {
    border-style: dashed;
    color: var(--rw-text-faint);
    font-size: 0.72rem;
}

.admin-count-chip--clear:hover[b-pi1m3fudic] {
    border-color: var(--rw-border);
    color: var(--rw-text-dim);
    background: var(--rw-bg-moss);
}

.admin-count-chip-value[b-pi1m3fudic] {
    font-weight: 600;
    color: var(--rw-gold-light);
}

.admin-count-chip--active .admin-count-chip-value[b-pi1m3fudic] {
    color: var(--rw-gold-bright);
}

.admin-count-chip-label[b-pi1m3fudic] {
    opacity: 0.9;
}

/* --- Toolbar --- */
.admin-toolbar[b-pi1m3fudic] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-pi1m3fudic] {
    position: relative;
    flex: 1;
    max-width: 360px;
}

.admin-search-icon[b-pi1m3fudic] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-pi1m3fudic] {
    padding-left: 2.25rem !important;
}

.admin-toolbar-right[b-pi1m3fudic] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.admin-count-text[b-pi1m3fudic] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.admin-sort-wrap[b-pi1m3fudic] {
    display: flex;
    gap: 0.25rem;
}

.admin-sort-btn[b-pi1m3fudic] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    padding: 0.25rem 0.55rem;
    background: none;
    border: 1px solid var(--rw-border);
    border-radius: 4px;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all 0.15s ease;
}

.admin-sort-btn:hover[b-pi1m3fudic] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.2);
}

.admin-sort-arrow[b-pi1m3fudic] {
    font-size: 0.65rem;
    margin-left: 0.15rem;
    color: var(--rw-gold-light);
}

/* --- Card Grid --- */
.admin-content-card-grid[b-pi1m3fudic] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 0.75rem;
}

.admin-content-card[b-pi1m3fudic] {
    display: flex;
    align-items: stretch;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    cursor: pointer;
    transition: background 0.2s ease,
                border-color 0.2s ease,
                box-shadow 0.2s ease;
}

.admin-content-card:hover[b-pi1m3fudic] {
    background: var(--rw-bg-moonlit);
    border-color: rgba(196, 160, 64, 0.25);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35),
                0 0 12px rgba(196, 160, 64, 0.06);
}

/* --- Card Image --- */
.admin-content-card-img[b-pi1m3fudic] {
    width: 80px;
    min-height: 80px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(20, 42, 50, 0.6);
    border-right: 1px solid var(--rw-border);
    position: relative;
    overflow: hidden;
    transition: background 0.2s ease;
}

.admin-content-card:hover .admin-content-card-img[b-pi1m3fudic] {
    background: rgba(20, 42, 50, 0.9);
}

.admin-content-card-img img[b-pi1m3fudic] {
    width: 56px;
    height: 56px;
    object-fit: contain;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3));
    transition: transform 0.25s ease, filter 0.25s ease;
}

.admin-content-card:hover .admin-content-card-img img[b-pi1m3fudic] {
    transform: scale(1.1);
    filter: drop-shadow(0 0 10px rgba(196, 160, 64, 0.3))
           drop-shadow(0 2px 4px rgba(0, 0, 0, 0.4));
}

.admin-content-placeholder[b-pi1m3fudic] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-text-faint);
}

/* --- Generation overlay --- */
.admin-gen-overlay[b-pi1m3fudic] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 15, 26, 0.7);
    backdrop-filter: blur(2px);
}

.admin-gen-spinner[b-pi1m3fudic] {
    width: 24px;
    height: 24px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: admin-spin-b-pi1m3fudic 0.8s linear infinite;
}

@keyframes admin-spin-b-pi1m3fudic {
    to { transform: rotate(360deg); }
}

/* --- Card Body --- */
.admin-content-card-body[b-pi1m3fudic] {
    flex: 1;
    padding: 0.65rem 0.9rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.3rem;
    min-width: 0;
}

.admin-content-card-name[b-pi1m3fudic] {
    font-family: var(--rw-font-sc);
    font-size: 0.92rem;
    color: var(--rw-sage-cream);
    transition: color 0.2s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-content-card:hover .admin-content-card-name[b-pi1m3fudic] {
    color: var(--rw-gold-light);
}

.admin-content-card-props[b-pi1m3fudic] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.admin-content-type-badge[b-pi1m3fudic] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    padding: 0.1rem 0.4rem;
    background: rgba(188, 206, 198, 0.04);
    border: 1px solid rgba(188, 206, 198, 0.08);
    border-radius: 3px;
}

.admin-content-card-date[b-pi1m3fudic] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.admin-gen-error[b-pi1m3fudic] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-ember-red);
    cursor: help;
}

.admin-gen-warning[b-pi1m3fudic] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-gold-light);
    cursor: help;
}

/* --- Card Actions --- */
.admin-content-card-actions[b-pi1m3fudic] {
    display: flex;
    align-items: center;
    padding: 0 0.5rem;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.admin-content-card:hover .admin-content-card-actions[b-pi1m3fudic] {
    opacity: 1;
}

.admin-gen-btn[b-pi1m3fudic] {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: 6px;
    color: var(--rw-gold-light);
    cursor: pointer;
    transition: all 0.15s ease;
}

.admin-gen-btn:hover:not(:disabled)[b-pi1m3fudic] {
    background: rgba(196, 160, 64, 0.2);
    border-color: rgba(196, 160, 64, 0.4);
    color: var(--rw-gold-bright);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}

.admin-gen-btn:disabled[b-pi1m3fudic] {
    opacity: 0.5;
    cursor: not-allowed;
}

.admin-gen-btn-spinner[b-pi1m3fudic] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: admin-spin-b-pi1m3fudic 0.8s linear infinite;
}

/* --- New Item Menu --- */
.admin-new-item-wrap[b-pi1m3fudic] {
    position: relative;
}

.admin-btn-new[b-pi1m3fudic] {
    background: var(--rw-gold-light);
    color: var(--rw-bg-deep, #0f0f1a);
    font-weight: 600;
    border: none;
    padding: 0.35rem 0.9rem;
    border-radius: 5px;
    font-size: 0.8rem;
    transition: all 0.15s ease;
}

.admin-btn-new:hover[b-pi1m3fudic] {
    background: var(--rw-gold-bright);
}

.admin-new-item-menu[b-pi1m3fudic] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 100;
    margin-top: 4px;
    background: var(--rw-bg-surface, #1e1e2e);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    min-width: 160px;
    overflow: hidden;
}

.admin-new-item-option[b-pi1m3fudic] {
    display: block;
    width: 100%;
    padding: 0.5rem 0.85rem;
    background: none;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    color: var(--rw-text-main);
    font-size: 0.85rem;
    text-align: left;
    cursor: pointer;
    transition: background 0.1s ease;
}

.admin-new-item-option:last-child[b-pi1m3fudic] {
    border-bottom: none;
}

.admin-new-item-option:hover[b-pi1m3fudic] {
    background: rgba(255, 255, 255, 0.06);
    color: var(--rw-gold-light);
}

/* --- Pagination --- */
.admin-pagination[b-pi1m3fudic] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Empty state --- */
.admin-empty-state[b-pi1m3fudic] {
    text-align: center;
    padding: 3rem 1rem;
}

.admin-empty-text[b-pi1m3fudic] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
}

/* --- Skeleton loading --- */
.skeleton-bone[b-pi1m3fudic] {
    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-pi1m3fudic 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-pi1m3fudic {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-search-wrap[b-pi1m3fudic] {
        max-width: 100%;
    }

    .admin-content-card-actions[b-pi1m3fudic] {
        opacity: 1;
    }
}

@media (max-width: 480px) {
    .admin-search-wrap[b-pi1m3fudic] {
        flex: unset;
        width: 100%;
    }

    .admin-content-card-grid[b-pi1m3fudic] {
        grid-template-columns: 1fr;
    }

    .admin-content-card-img[b-pi1m3fudic] {
        width: 64px;
        min-height: 64px;
    }
}
/* /Components/Pages/Admin/EmailManagement.razor.rz.scp.css */
/* =============================================================
   Admin Email Management — Audit log & test sender
   ============================================================= */

/* --- Header --- */
.admin-header[b-hvligqcgkx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-title[b-hvligqcgkx] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-hvligqcgkx] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

.admin-btn-gold[b-hvligqcgkx] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.08);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.15s ease;
}

.admin-btn-gold:hover[b-hvligqcgkx] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-bright);
}

/* --- Toolbar --- */
.admin-toolbar[b-hvligqcgkx] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-hvligqcgkx] {
    position: relative;
    flex: 1;
    max-width: 320px;
}

.admin-search-icon[b-hvligqcgkx] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-hvligqcgkx] {
    padding-left: 2.25rem !important;
}

.email-filter-group[b-hvligqcgkx] {
    display: flex;
    gap: 0.5rem;
}

.email-filter-select[b-hvligqcgkx] {
    font-size: 0.82rem;
    padding: 0.35rem 0.6rem;
    min-width: 140px;
    background: var(--rw-bg-panel);
    border-color: var(--rw-border);
    color: var(--rw-text);
}

.email-filter-select:focus[b-hvligqcgkx] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 0.15rem rgba(61, 138, 85, 0.15);
}

.admin-toolbar-meta[b-hvligqcgkx] {
    margin-left: auto;
}

.admin-count[b-hvligqcgkx] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

/* --- Table card wrapper --- */
.admin-table-card[b-hvligqcgkx] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    overflow: hidden;
}

/* --- Email cells --- */
.email-recipient[b-hvligqcgkx] {
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    color: var(--rw-sage-cream);
}

.email-subject[b-hvligqcgkx] {
    font-size: 0.82rem;
    color: var(--rw-text-dim);
}

.email-from[b-hvligqcgkx] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

/* --- Type badges --- */
.email-badge-welcome[b-hvligqcgkx] {
    background: rgba(61, 138, 85, 0.15);
    color: var(--rw-verdant-bright);
    font-size: 0.7rem;
}

.email-badge-reset[b-hvligqcgkx] {
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
    font-size: 0.7rem;
}

.email-badge-invite[b-hvligqcgkx] {
    background: rgba(100, 180, 220, 0.15);
    color: #7ec8e3;
    font-size: 0.7rem;
}

.email-badge-notification[b-hvligqcgkx] {
    background: rgba(188, 206, 198, 0.1);
    color: var(--rw-text-dim);
    font-size: 0.7rem;
}

.email-badge-marketing[b-hvligqcgkx] {
    background: rgba(180, 100, 200, 0.15);
    color: #c8a0d8;
    font-size: 0.7rem;
}

/* --- Failed row --- */
.email-row-failed[b-hvligqcgkx] {
    background: rgba(220, 53, 69, 0.03);
}

/* --- Error expand button --- */
.email-expand-btn[b-hvligqcgkx] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0.15rem 0.3rem;
    margin-left: 0.3rem;
    border-radius: 3px;
    transition: all 0.15s ease;
    vertical-align: middle;
}

.email-expand-btn:hover[b-hvligqcgkx] {
    color: var(--rw-text);
    background: rgba(188, 206, 198, 0.08);
}

/* --- Error details row --- */
.email-error-row td[b-hvligqcgkx] {
    padding: 0 !important;
    border-top: none !important;
}

.email-error-details[b-hvligqcgkx] {
    padding: 0.75rem 1rem;
    background: rgba(220, 53, 69, 0.04);
    border-top: 1px solid rgba(220, 53, 69, 0.1);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-blood-bright);
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}

/* --- Date --- */
.admin-date[b-hvligqcgkx] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

/* --- Pagination --- */
.admin-pagination[b-hvligqcgkx] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Alert --- */
.admin-alert[b-hvligqcgkx] {
    animation: adminAlertIn-b-hvligqcgkx 0.25s ease;
}

@keyframes adminAlertIn-b-hvligqcgkx {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-hvligqcgkx] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Skeleton loading --- */
.skeleton-bone[b-hvligqcgkx] {
    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-hvligqcgkx 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-hvligqcgkx {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Empty state --- */
.email-empty-state[b-hvligqcgkx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    gap: 0.75rem;
    color: var(--rw-text-faint);
}

.email-empty-text[b-hvligqcgkx] {
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    margin: 0;
}

/* =============================================================
   Send Test Email Modal
   ============================================================= */
.admin-modal-backdrop[b-hvligqcgkx] {
    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-hvligqcgkx 0.2s ease;
}

@keyframes modalBackdropIn-b-hvligqcgkx {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-hvligqcgkx] {
    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-hvligqcgkx 0.25s ease;
}

@keyframes modalSlideIn-b-hvligqcgkx {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-hvligqcgkx] {
    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-hvligqcgkx] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-hvligqcgkx] {
    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-hvligqcgkx] {
    color: var(--rw-text);
}

.admin-modal-body[b-hvligqcgkx] {
    padding: 1.25rem;
}

.admin-modal-footer[b-hvligqcgkx] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

.email-test-desc[b-hvligqcgkx] {
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    margin: 0 0 1rem 0;
    line-height: 1.5;
}

.admin-form-group[b-hvligqcgkx] {
    margin-bottom: 0.5rem;
}

.admin-label[b-hvligqcgkx] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    margin-bottom: 0.35rem;
    letter-spacing: 0.03em;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-header[b-hvligqcgkx] {
        flex-direction: column;
    }

    .admin-toolbar[b-hvligqcgkx] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-search-wrap[b-hvligqcgkx] {
        max-width: 100%;
    }

    .email-filter-group[b-hvligqcgkx] {
        flex-direction: column;
    }

    .email-filter-select[b-hvligqcgkx] {
        min-width: 100%;
    }

    .admin-toolbar-meta[b-hvligqcgkx] {
        margin-left: 0;
    }

    .admin-modal[b-hvligqcgkx] {
        max-width: 95vw;
        margin: 0.5rem;
    }
}

@media (max-width: 480px) {
    .admin-modal[b-hvligqcgkx] {
        max-width: 100%;
    }

    .admin-modal-backdrop[b-hvligqcgkx] {
        padding: 0.5rem;
    }
}
/* /Components/Pages/Admin/RulesetDetail.razor.rz.scp.css */
/* =============================================================
   Admin Ruleset Detail — Content source drill-down
   ============================================================= */

/* --- Breadcrumb --- */
.admin-breadcrumb[b-vkggy0d2o3] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.admin-breadcrumb-link[b-vkggy0d2o3] {
    color: var(--rw-gold-light);
    text-decoration: none;
    transition: color 0.15s ease;
}

.admin-breadcrumb-link:hover[b-vkggy0d2o3] {
    color: var(--rw-gold-bright);
    text-decoration: underline;
}

.admin-breadcrumb-sep[b-vkggy0d2o3] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.admin-breadcrumb-current[b-vkggy0d2o3] {
    color: var(--rw-text-dim);
}

/* --- Header --- */
.admin-header[b-vkggy0d2o3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    gap: 1rem;
}

.admin-title[b-vkggy0d2o3] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.4rem;
}

.admin-header-meta[b-vkggy0d2o3] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
}

.admin-header-desc[b-vkggy0d2o3] {
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    line-height: 1.45;
    margin: 0.35rem 0 0;
    max-width: 600px;
}

.admin-meta-tag[b-vkggy0d2o3] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.45rem;
    background: rgba(188, 206, 198, 0.04);
    border: 1px solid rgba(188, 206, 198, 0.06);
    border-radius: 3px;
}

.admin-btn-gold[b-vkggy0d2o3] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    padding: 0.45rem 1rem;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.08));
    border: 1px solid rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
    border-radius: var(--rw-radius-md);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.2s ease;
    cursor: pointer;
    white-space: nowrap;
}

.admin-btn-gold:hover[b-vkggy0d2o3] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.15));
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-bright);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

/* --- Card grid --- */
.admin-card-grid[b-vkggy0d2o3] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}

/* --- Source cards --- */
.admin-source-card[b-vkggy0d2o3] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 1.25rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.admin-source-card:hover[b-vkggy0d2o3] {
    border-color: rgba(61, 138, 85, 0.25);
    box-shadow: var(--rw-shadow), 0 0 16px rgba(61, 138, 85, 0.06);
    transform: translateY(-1px);
}

.admin-source-card--skeleton[b-vkggy0d2o3] {
    cursor: default;
    pointer-events: none;
}

.admin-source-card-header[b-vkggy0d2o3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.65rem;
}

.admin-source-type-badge[b-vkggy0d2o3] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.15rem 0.55rem;
    border-radius: 3px;
}

.admin-badge--system[b-vkggy0d2o3] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.admin-badge--community[b-vkggy0d2o3] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.admin-badge--campaign[b-vkggy0d2o3] {
    background: rgba(100, 149, 237, 0.12);
    color: #93b8f0;
    border: 1px solid rgba(100, 149, 237, 0.2);
}

.admin-badge--srd[b-vkggy0d2o3] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.admin-badge--official[b-vkggy0d2o3] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.admin-source-actions[b-vkggy0d2o3] {
    display: flex;
    gap: 0.25rem;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.admin-source-card:hover .admin-source-actions[b-vkggy0d2o3] {
    opacity: 1;
}

.admin-btn-icon[b-vkggy0d2o3] {
    background: none;
    border: 1px solid transparent;
    color: var(--rw-text-dim);
    padding: 0.3rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-btn-icon:hover[b-vkggy0d2o3] {
    background: rgba(188, 206, 198, 0.06);
    border-color: var(--rw-border);
    color: var(--rw-text);
}

.admin-btn-icon--danger:hover[b-vkggy0d2o3] {
    background: rgba(180, 60, 60, 0.1);
    border-color: rgba(180, 60, 60, 0.2);
    color: var(--rw-blood-bright);
}

.admin-source-name[b-vkggy0d2o3] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.35rem;
}

.admin-source-desc[b-vkggy0d2o3] {
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    line-height: 1.45;
    margin: 0 0 0.65rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.admin-source-count[b-vkggy0d2o3] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(188, 206, 198, 0.06);
}

.admin-source-count-value[b-vkggy0d2o3] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-gold-light);
}

.admin-source-count-label[b-vkggy0d2o3] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

/* --- Ruleset type badge (in header) --- */
.admin-ruleset-type-badge[b-vkggy0d2o3] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.15rem 0.55rem;
    border-radius: 3px;
}

/* --- Empty state --- */
.admin-empty-state[b-vkggy0d2o3] {
    text-align: center;
    padding: 3rem 1rem;
}

.admin-empty-icon[b-vkggy0d2o3] {
    color: var(--rw-text-faint);
    opacity: 0.4;
    margin-bottom: 1rem;
}

.admin-empty-text[b-vkggy0d2o3] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
}

/* --- Alert --- */
.admin-alert[b-vkggy0d2o3] {
    animation: adminAlertIn-b-vkggy0d2o3 0.25s ease;
    margin-bottom: 1rem;
}

@keyframes adminAlertIn-b-vkggy0d2o3 {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-vkggy0d2o3] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Skeleton loading --- */
.skeleton-bone[b-vkggy0d2o3] {
    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-vkggy0d2o3 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-vkggy0d2o3 {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Confirm text --- */
.admin-confirm-text[b-vkggy0d2o3] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 0;
}

.admin-confirm-text strong[b-vkggy0d2o3] {
    color: var(--rw-sage-cream);
}

/* --- Form --- */
.admin-form-group[b-vkggy0d2o3] {
    margin-bottom: 1rem;
}

.admin-label[b-vkggy0d2o3] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}

/* =============================================================
   Modal
   ============================================================= */
.admin-modal-backdrop[b-vkggy0d2o3] {
    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-vkggy0d2o3 0.2s ease;
}

@keyframes modalBackdropIn-b-vkggy0d2o3 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-vkggy0d2o3] {
    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: 480px;
    animation: modalSlideIn-b-vkggy0d2o3 0.25s ease;
}

.admin-modal--sm[b-vkggy0d2o3] {
    max-width: 400px;
}

@keyframes modalSlideIn-b-vkggy0d2o3 {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-vkggy0d2o3] {
    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-vkggy0d2o3] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-vkggy0d2o3] {
    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-vkggy0d2o3] {
    color: var(--rw-text);
}

.admin-modal-body[b-vkggy0d2o3] {
    padding: 1.25rem;
}

.admin-modal-footer[b-vkggy0d2o3] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-modal[b-vkggy0d2o3] {
        max-width: 95vw;
        margin: 0.5rem;
    }
}

@media (max-width: 480px) {
    .admin-modal[b-vkggy0d2o3] {
        max-width: 100%;
    }

    .admin-modal-backdrop[b-vkggy0d2o3] {
        padding: 0.5rem;
    }
}
/* /Components/Pages/Admin/RulesetManagement.razor.rz.scp.css */
/* =============================================================
   Admin Ruleset Management — Hierarchy root view
   ============================================================= */

.admin-header[b-m0ty37bx1k] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    gap: 1rem;
}

.admin-title[b-m0ty37bx1k] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-m0ty37bx1k] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

.admin-btn-gold[b-m0ty37bx1k] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    padding: 0.45rem 1rem;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.08));
    border: 1px solid rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
    border-radius: var(--rw-radius-md);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.2s ease;
    cursor: pointer;
    white-space: nowrap;
}

.admin-btn-gold:hover[b-m0ty37bx1k] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.15));
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-bright);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

/* --- Card grid --- */
.admin-card-grid[b-m0ty37bx1k] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1rem;
}

/* --- Ruleset cards --- */
.admin-ruleset-card[b-m0ty37bx1k] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 1.25rem;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
}

.admin-ruleset-card:hover[b-m0ty37bx1k] {
    border-color: rgba(196, 160, 64, 0.25);
    box-shadow: var(--rw-shadow), 0 0 16px rgba(196, 160, 64, 0.06);
    transform: translateY(-1px);
}

.admin-ruleset-card--system[b-m0ty37bx1k] {
    border-color: rgba(196, 160, 64, 0.15);
}

.admin-ruleset-card--skeleton[b-m0ty37bx1k] {
    cursor: default;
    pointer-events: none;
}

.admin-ruleset-card-header[b-m0ty37bx1k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.admin-ruleset-type-badge[b-m0ty37bx1k] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.15rem 0.55rem;
    border-radius: 3px;
}

.admin-badge--system[b-m0ty37bx1k] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.admin-badge--community[b-m0ty37bx1k] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.admin-badge--campaign[b-m0ty37bx1k] {
    background: rgba(100, 149, 237, 0.12);
    color: #93b8f0;
    border: 1px solid rgba(100, 149, 237, 0.2);
}

.admin-ruleset-actions[b-m0ty37bx1k] {
    display: flex;
    gap: 0.25rem;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.admin-ruleset-card:hover .admin-ruleset-actions[b-m0ty37bx1k] {
    opacity: 1;
}

.admin-btn-icon[b-m0ty37bx1k] {
    background: none;
    border: 1px solid transparent;
    color: var(--rw-text-dim);
    padding: 0.3rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-btn-icon:hover[b-m0ty37bx1k] {
    background: rgba(188, 206, 198, 0.06);
    border-color: var(--rw-border);
    color: var(--rw-text);
}

.admin-btn-icon--danger:hover[b-m0ty37bx1k] {
    background: rgba(180, 60, 60, 0.1);
    border-color: rgba(180, 60, 60, 0.2);
    color: var(--rw-blood-bright);
}

.admin-ruleset-name[b-m0ty37bx1k] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.35rem;
    line-height: 1.3;
}

.admin-ruleset-meta[b-m0ty37bx1k] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.admin-ruleset-version[b-m0ty37bx1k],
.admin-ruleset-engine[b-m0ty37bx1k],
.admin-ruleset-parent[b-m0ty37bx1k] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.45rem;
    background: rgba(188, 206, 198, 0.04);
    border: 1px solid rgba(188, 206, 198, 0.06);
    border-radius: 3px;
}

.admin-ruleset-desc[b-m0ty37bx1k] {
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    line-height: 1.45;
    margin: 0 0 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.admin-ruleset-stats[b-m0ty37bx1k] {
    display: flex;
    gap: 1.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(188, 206, 198, 0.06);
}

.admin-ruleset-stat[b-m0ty37bx1k] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.admin-ruleset-stat-value[b-m0ty37bx1k] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-gold-light);
}

.admin-ruleset-stat-label[b-m0ty37bx1k] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    text-transform: lowercase;
}

/* --- Empty state --- */
.admin-empty-state[b-m0ty37bx1k] {
    text-align: center;
    padding: 3rem 1rem;
}

.admin-empty-icon[b-m0ty37bx1k] {
    color: var(--rw-text-faint);
    opacity: 0.4;
    margin-bottom: 1rem;
}

.admin-empty-text[b-m0ty37bx1k] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
}

/* --- Alert --- */
.admin-alert[b-m0ty37bx1k] {
    animation: adminAlertIn-b-m0ty37bx1k 0.25s ease;
    margin-bottom: 1rem;
}

@keyframes adminAlertIn-b-m0ty37bx1k {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-m0ty37bx1k] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Skeleton loading --- */
.skeleton-bone[b-m0ty37bx1k] {
    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-m0ty37bx1k 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-m0ty37bx1k {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Confirm text --- */
.admin-confirm-text[b-m0ty37bx1k] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 0;
}

.admin-confirm-text strong[b-m0ty37bx1k] {
    color: var(--rw-sage-cream);
}

/* --- Form --- */
.admin-form-group[b-m0ty37bx1k] {
    margin-bottom: 1rem;
}

.admin-form-row[b-m0ty37bx1k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.admin-label[b-m0ty37bx1k] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}

/* =============================================================
   Modal (shared pattern)
   ============================================================= */
.admin-modal-backdrop[b-m0ty37bx1k] {
    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-m0ty37bx1k 0.2s ease;
}

@keyframes modalBackdropIn-b-m0ty37bx1k {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-m0ty37bx1k] {
    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: 500px;
    animation: modalSlideIn-b-m0ty37bx1k 0.25s ease;
}

.admin-modal--sm[b-m0ty37bx1k] {
    max-width: 400px;
}

@keyframes modalSlideIn-b-m0ty37bx1k {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-m0ty37bx1k] {
    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-m0ty37bx1k] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-m0ty37bx1k] {
    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-m0ty37bx1k] {
    color: var(--rw-text);
}

.admin-modal-body[b-m0ty37bx1k] {
    padding: 1.25rem;
}

.admin-modal-footer[b-m0ty37bx1k] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-card-grid[b-m0ty37bx1k] {
        grid-template-columns: 1fr;
    }

    .admin-modal[b-m0ty37bx1k] {
        max-width: 95vw;
        margin: 0.5rem;
    }

    .admin-modal-header[b-m0ty37bx1k] {
        padding: 0.75rem 1rem;
    }

    .admin-modal-body[b-m0ty37bx1k] {
        padding: 1rem;
    }
}

@media (max-width: 480px) {
    .admin-modal[b-m0ty37bx1k] {
        max-width: 100%;
        border-radius: var(--rw-radius-md);
    }

    .admin-modal-backdrop[b-m0ty37bx1k] {
        padding: 0.5rem;
    }
}
/* /Components/Pages/Admin/SignInLogs.razor.rz.scp.css */
/* =============================================================
   Admin Sign-In Logs — Authentication activity monitor
   ============================================================= */

/* --- Header --- */
.admin-header[b-7zq1s0657y] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-title[b-7zq1s0657y] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-7zq1s0657y] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Toolbar --- */
.admin-toolbar[b-7zq1s0657y] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-7zq1s0657y] {
    position: relative;
    flex: 1;
    max-width: 320px;
}

.admin-search-icon[b-7zq1s0657y] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-7zq1s0657y] {
    padding-left: 2.25rem !important;
}

.signin-filter-group[b-7zq1s0657y] {
    display: flex;
    gap: 0.5rem;
}

.signin-filter-select[b-7zq1s0657y] {
    font-size: 0.82rem;
    padding: 0.35rem 0.6rem;
    min-width: 140px;
    background: var(--rw-bg-panel);
    border-color: var(--rw-border);
    color: var(--rw-text);
}

.signin-filter-select:focus[b-7zq1s0657y] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 0.15rem rgba(61, 138, 85, 0.15);
}

.admin-toolbar-meta[b-7zq1s0657y] {
    margin-left: auto;
}

.admin-count[b-7zq1s0657y] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

/* --- Table card wrapper --- */
.admin-table-card[b-7zq1s0657y] {
    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 (matching UserManagement pattern) --- */
.admin-user-cell[b-7zq1s0657y] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.admin-user-avatar[b-7zq1s0657y] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(61, 138, 85, 0.15);
    color: var(--rw-verdant-bright);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-display);
    font-size: 0.8rem;
    flex-shrink: 0;
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.admin-user-name[b-7zq1s0657y] {
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    color: var(--rw-sage-cream);
    line-height: 1.3;
}

.admin-user-email[b-7zq1s0657y] {
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    line-height: 1.3;
}

/* --- Method badges --- */
.signin-badge-password[b-7zq1s0657y] {
    background: rgba(188, 206, 198, 0.12);
    color: var(--rw-text-dim);
    font-size: 0.7rem;
}

.signin-badge-google[b-7zq1s0657y] {
    background: rgba(66, 133, 244, 0.12);
    color: #7ab3f7;
    font-size: 0.7rem;
}

.signin-badge-microsoft[b-7zq1s0657y] {
    background: rgba(0, 164, 239, 0.12);
    color: #5cc3f0;
    font-size: 0.7rem;
}

.signin-badge-mobile[b-7zq1s0657y] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    font-size: 0.7rem;
}

/* --- IP address cell --- */
.signin-ip[b-7zq1s0657y] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.01em;
}

/* --- Failed row --- */
.signin-row-failed[b-7zq1s0657y] {
    background: rgba(220, 53, 69, 0.03);
}

/* --- Failure reason --- */
.signin-failure-reason[b-7zq1s0657y] {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    margin-top: 0.15rem;
}

/* --- Date --- */
.admin-date[b-7zq1s0657y] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

/* --- Pagination --- */
.admin-pagination[b-7zq1s0657y] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Skeleton loading --- */
.skeleton-bone[b-7zq1s0657y] {
    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-7zq1s0657y 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-7zq1s0657y {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Empty state --- */
.signin-empty-state[b-7zq1s0657y] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    gap: 0.75rem;
    color: var(--rw-text-faint);
}

.signin-empty-text[b-7zq1s0657y] {
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    margin: 0;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-header[b-7zq1s0657y] {
        flex-direction: column;
    }

    .admin-toolbar[b-7zq1s0657y] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-search-wrap[b-7zq1s0657y] {
        max-width: 100%;
    }

    .signin-filter-group[b-7zq1s0657y] {
        flex-direction: column;
    }

    .signin-filter-select[b-7zq1s0657y] {
        min-width: 100%;
    }

    .admin-toolbar-meta[b-7zq1s0657y] {
        margin-left: 0;
    }
}
/* /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);
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-modal[b-53t0qxvsua] {
        max-width: 95vw;
        margin: 0.5rem;
    }

    .admin-actions .btn[b-53t0qxvsua] {
        font-size: 0.75rem;
        padding: 0.35rem 0.6rem;
        min-height: 36px;
    }
}

@media (max-width: 480px) {
    .admin-modal[b-53t0qxvsua] {
        max-width: 100%;
    }

    .admin-modal-backdrop[b-53t0qxvsua] {
        padding: 0.5rem;
    }

    .admin-actions[b-53t0qxvsua] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/Campaigns/CampaignDashboard.razor.rz.scp.css */
/* ============================================================
   CampaignDashboard — "Campaign Sanctum" Scoped Styles
   Full UX overhaul: themed components, quest tracker,
   stats bar, card grids, editors, empty states
   ============================================================ */

/* === SANCTUM HEADER === */
.sanctum-header[b-4etd00vj0z] {
    position: relative;
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    margin-bottom: 0.5rem;
    border: 1px solid var(--rw-border-narrative);
    box-shadow: var(--rw-glow-narrative);
}

.sanctum-header__bg[b-4etd00vj0z] {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    filter: brightness(0.45) saturate(0.8);
    transition: filter 0.6s ease;
}

.sanctum-header:hover .sanctum-header__bg[b-4etd00vj0z] {
    filter: brightness(0.55) saturate(0.9);
}

.sanctum-header__overlay[b-4etd00vj0z] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding: 1.5rem 2rem;
    background: linear-gradient(180deg, rgba(7, 14, 20, 0.1) 0%, rgba(7, 14, 20, 0.85) 100%);
}

.sanctum-header__editor[b-4etd00vj0z] {
    width: 100%;
}

.sanctum-header__content[b-4etd00vj0z] {
    flex: 1;
    min-width: 0;
}

.sanctum-header__title-row[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.sanctum-header__name[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 2rem;
    color: var(--rw-gold-light);
    text-shadow: 0 0 40px rgba(196, 160, 64, 0.25), 0 2px 4px rgba(0, 0, 0, 0.6);
    margin: 0;
    line-height: 1.2;
}

.sanctum-header__edit-btn[b-4etd00vj0z] {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    font-size: 0.85rem;
    transition: all var(--rw-transition);
}

.sanctum-header__edit-btn:hover[b-4etd00vj0z] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.1);
}

.sanctum-header__meta[b-4etd00vj0z] {
    color: var(--rw-sage-tan);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    margin: 0.25rem 0 0;
}

.sanctum-header__desc[b-4etd00vj0z] {
    color: var(--rw-text-dim);
    font-style: italic;
    font-size: 0.9rem;
    margin: 0.35rem 0 0;
    max-width: 500px;
}

.sanctum-header__invite[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
    gap: 0.15rem;
}

.sanctum-header__invite-label[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.sanctum-header__invite-code[b-4etd00vj0z] {
    font-size: 1.1rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    padding: 0.15rem 0.6rem;
    font-family: var(--rw-font-ui);
    letter-spacing: 0.08em;
}

/* === QUICK STATS BAR === */
.sanctum-stats[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 0.75rem 1.5rem;
    margin-bottom: 1.25rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.sanctum-stats__item[b-4etd00vj0z] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
}

.sanctum-stats__value[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    color: var(--rw-text-bright);
    line-height: 1;
}

.sanctum-stats__label[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.sanctum-stats__divider[b-4etd00vj0z] {
    width: 1px;
    height: 1.25rem;
    background: var(--rw-border);
}

.sanctum-stats__item--live .sanctum-stats__value[b-4etd00vj0z] {
    color: #f87171;
    text-shadow: 0 0 8px rgba(220, 38, 38, 0.4);
}

.sanctum-stats__item--live .sanctum-stats__label[b-4etd00vj0z] {
    color: #f87171;
}

.sanctum-stats__item--link[b-4etd00vj0z] {
    background: none;
    border: none;
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease;
    text-decoration: none;
    color: inherit;
}

.sanctum-stats__item--link:hover[b-4etd00vj0z] {
    background: rgba(255, 255, 255, 0.06);
    transform: translateY(-1px);
}

.sanctum-stats__item--link:active[b-4etd00vj0z] {
    transform: translateY(0);
}

/* Settings header with Done button */
.sanctum-settings-header[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--rw-border);
}

.sanctum-settings-header__title[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
    margin: 0;
}

.sanctum-settings-header__done[b-4etd00vj0z] {
    font-size: 0.8rem;
    padding: 0.3rem 0.9rem;
}

/* === LIVE SESSION BANNER (enhanced) === */
.sanctum-live-banner[b-4etd00vj0z] {
    position: relative;
    margin-bottom: 1.25rem;
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(220, 38, 38, 0.14) 0%, transparent 70%),
        radial-gradient(ellipse at 80% 100%, rgba(220, 38, 38, 0.06) 0%, transparent 50%),
        var(--rw-glass-bg-dense);
    border: 1px solid rgba(220, 38, 38, 0.3);
    box-shadow: 0 0 30px rgba(220, 38, 38, 0.06);
    animation: sanctum-live-glow-b-4etd00vj0z 3s ease-in-out infinite;
}

.sanctum-live-fog[b-4etd00vj0z] {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(220, 38, 38, 0.05) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 50%, rgba(180, 20, 20, 0.04) 0%, transparent 60%);
    animation: sanctum-fog-drift-b-4etd00vj0z 8s ease-in-out infinite alternate;
    pointer-events: none;
}

@keyframes sanctum-fog-drift-b-4etd00vj0z {
    0% { transform: translateX(-5px); opacity: 0.6; }
    100% { transform: translateX(5px); opacity: 1; }
}

@keyframes sanctum-live-glow-b-4etd00vj0z {
    0%, 100% { box-shadow: 0 0 30px rgba(220, 38, 38, 0.06); }
    50% { box-shadow: 0 0 40px rgba(220, 38, 38, 0.12), 0 0 15px rgba(220, 38, 38, 0.08); }
}

.sanctum-live-banner__inner[b-4etd00vj0z] {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.5rem;
    z-index: 1;
}

.sanctum-live-banner__info[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
}

.sanctum-live-banner__pulse[b-4etd00vj0z] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #f87171;
    box-shadow: 0 0 8px rgba(220, 38, 38, 0.6);
    animation: rw-live-pulse-b-4etd00vj0z 2s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes rw-live-pulse-b-4etd00vj0z {
    0%, 100% { opacity: 1; box-shadow: 0 0 8px rgba(220, 38, 38, 0.6); }
    50% { opacity: 0.5; box-shadow: 0 0 16px rgba(220, 38, 38, 0.8); }
}

.sanctum-live-banner__text[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.sanctum-live-banner__text strong[b-4etd00vj0z] {
    font-size: 0.95rem;
}

.sanctum-live-banner__sub[b-4etd00vj0z] {
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-style: italic;
}

.sanctum-live-banner__action[b-4etd00vj0z] {
    font-size: 0.78rem;
    padding: 0.4rem 1.2rem;
    text-decoration: none;
    flex-shrink: 0;
}

/* === QUEST TRACKER ONBOARDING === */
.sanctum-quest[b-4etd00vj0z] {
    background:
        radial-gradient(ellipse at 50% 0%, rgba(196, 160, 64, 0.04) 0%, transparent 70%),
        var(--rw-glass-bg-warm);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-lg);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    backdrop-filter: var(--rw-glass-blur);
    box-shadow: var(--rw-glow-candle);
}

.sanctum-quest__header[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.sanctum-quest__title[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    margin: 0;
    text-shadow: 0 0 20px rgba(196, 160, 64, 0.15);
}

.sanctum-quest__progress[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-pill);
    padding: 0.2rem 0.6rem;
}

.sanctum-quest__track[b-4etd00vj0z] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sanctum-quest__line[b-4etd00vj0z] {
    position: absolute;
    left: 14px;
    top: 18px;
    bottom: 18px;
    width: 3px;
    background: var(--rw-border);
    border-radius: 2px;
    overflow: hidden;
}

.sanctum-quest__line-fill[b-4etd00vj0z] {
    height: 100%;
    background: var(--rw-gold);
    border-radius: 2px;
    transition: width 0.6s ease;
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.3);
}

.sanctum-quest__step[b-4etd00vj0z] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    position: relative;
    z-index: 1;
}

.sanctum-quest__node[b-4etd00vj0z] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--rw-bg-panel);
    border: 2px solid var(--rw-border);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.sanctum-quest__step--done .sanctum-quest__node[b-4etd00vj0z] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.12);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.2);
}

.sanctum-quest__check[b-4etd00vj0z] {
    color: var(--rw-gold-light);
    font-size: 0.85rem;
    font-weight: 700;
}

.sanctum-quest__number[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.sanctum-quest__step-info[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding-top: 0.25rem;
}

.sanctum-quest__step-name[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--rw-text-bright);
}

.sanctum-quest__step--done .sanctum-quest__step-name[b-4etd00vj0z] {
    color: var(--rw-gold-light);
}

.sanctum-quest__step-hint[b-4etd00vj0z] {
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
}

.sanctum-quest__step-hint a[b-4etd00vj0z] {
    color: var(--rw-gold);
    text-decoration: none;
}

.sanctum-quest__step-hint a:hover[b-4etd00vj0z] {
    color: var(--rw-gold-glow);
    text-decoration: underline;
}

.sanctum-quest__code[b-4etd00vj0z] {
    font-size: 0.8rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    padding: 0.05rem 0.4rem;
    font-family: var(--rw-font-ui);
    letter-spacing: 0.06em;
}

.sanctum-quest__link[b-4etd00vj0z] {
    background: none;
    border: none;
    padding: 0;
    color: var(--rw-gold);
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    cursor: pointer;
    text-decoration: none;
}

.sanctum-quest__link:hover[b-4etd00vj0z] {
    color: var(--rw-gold-glow);
    text-decoration: underline;
}

.sanctum-quest__complete[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rw-border-gold);
}

.sanctum-quest__complete-text[b-4etd00vj0z] {
    font-family: var(--rw-font-body);
    font-style: italic;
    color: var(--rw-gold-light);
    font-size: 0.85rem;
}

.sanctum-quest__dismiss[b-4etd00vj0z] {
    font-size: 0.68rem;
    padding: 0.25rem 0.75rem;
}

/* === TAB NAVIGATION === */
.sanctum-tabs[b-4etd00vj0z] {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--rw-border);
    margin-bottom: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.sanctum-tabs[b-4etd00vj0z]::-webkit-scrollbar {
    display: none;
}

.sanctum-tab[b-4etd00vj0z] {
    position: relative;
    background: none;
    border: none;
    padding: 0.65rem 1.1rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    cursor: pointer;
    white-space: nowrap;
    transition: color var(--rw-transition), background var(--rw-transition);
    text-decoration: none;
}

.sanctum-tab:hover[b-4etd00vj0z] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.03);
}

.sanctum-tab--active[b-4etd00vj0z] {
    color: var(--rw-gold-light);
}

.sanctum-tab--active[b-4etd00vj0z]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0.5rem;
    right: 0.5rem;
    height: 2px;
    background: var(--rw-gold);
    border-radius: 2px 2px 0 0;
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.3);
}

.sanctum-tab__count[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    margin-left: 0.3rem;
}

.sanctum-tab--active .sanctum-tab__count[b-4etd00vj0z] {
    color: var(--rw-gold);
}

/* === TAB CONTENT CONTAINER === */
.sanctum-content[b-4etd00vj0z] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-top: none;
    border-radius: 0 0 var(--rw-radius-lg) var(--rw-radius-lg);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    animation: sanctum-content-in-b-4etd00vj0z 0.25s ease-out;
}

@keyframes sanctum-content-in-b-4etd00vj0z {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* === TOOLBAR === */
.sanctum-toolbar[b-4etd00vj0z] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

/* === MEMBERS === */
.sanctum-member-list[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sanctum-member[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    position: relative;
    overflow: hidden;
    transition: all var(--rw-transition);
}

.sanctum-member[b-4etd00vj0z]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--rw-verdant);
}

.sanctum-member:hover[b-4etd00vj0z] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border-gold);
}

.sanctum-member__avatar[b-4etd00vj0z] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--rw-bg-moss-2), var(--rw-bg-moonlit));
    border: 2px solid var(--rw-border);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: border-color var(--rw-transition);
}

.sanctum-member:hover .sanctum-member__avatar[b-4etd00vj0z] {
    border-color: var(--rw-gold);
}

.sanctum-member__initial[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
}

.sanctum-member__info[b-4etd00vj0z] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.sanctum-member__name[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-text-bright);
}

.sanctum-member__joined[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

.sanctum-member__role[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.2rem 0.6rem;
    border-radius: var(--rw-radius-pill);
    flex-shrink: 0;
}

.sanctum-member__role--dungeonmaster[b-4etd00vj0z] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid var(--rw-border-gold);
}

.sanctum-member__role--player[b-4etd00vj0z] {
    color: var(--rw-sage-tan);
    background: rgba(138, 170, 152, 0.08);
    border: 1px solid rgba(138, 170, 152, 0.15);
}

.sanctum-member__remove[b-4etd00vj0z] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    font-size: 0.75rem;
    padding: 0.25rem;
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
    opacity: 0;
}

.sanctum-member:hover .sanctum-member__remove[b-4etd00vj0z] {
    opacity: 1;
}

.sanctum-member__remove:hover[b-4etd00vj0z] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
}

/* === CHARACTER GRID === */
.sanctum-character-grid[b-4etd00vj0z] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.sanctum-character-card[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    text-decoration: none;
    color: var(--rw-text);
    transition: all var(--rw-transition);
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.sanctum-character-card[b-4etd00vj0z]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--rw-verdant);
    transition: width var(--rw-transition), box-shadow var(--rw-transition);
}

.sanctum-character-card--bloodied[b-4etd00vj0z]::before {
    background: var(--rw-gold);
}

.sanctum-character-card--critical[b-4etd00vj0z]::before {
    background: var(--rw-blood-bright);
    box-shadow: 0 0 8px rgba(184, 58, 26, 0.4);
}

.sanctum-character-card:hover[b-4etd00vj0z] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border-gold);
    box-shadow: var(--rw-glow-candle);
}

.sanctum-character-card__portrait[b-4etd00vj0z] {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid var(--rw-border);
    transition: border-color var(--rw-transition);
}

.sanctum-character-card:hover .sanctum-character-card__portrait[b-4etd00vj0z] {
    border-color: var(--rw-gold);
}

.sanctum-character-card__portrait img[b-4etd00vj0z] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sanctum-character-card__info[b-4etd00vj0z] {
    flex: 1;
    min-width: 0;
}

.sanctum-character-card__name[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.15rem;
    line-height: 1.2;
}

.sanctum-character-card__remove[b-4etd00vj0z] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
    opacity: 0;
}

.sanctum-character-card:hover .sanctum-character-card__remove[b-4etd00vj0z] {
    opacity: 1;
}

.sanctum-character-card__remove:hover[b-4etd00vj0z] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
}

.sanctum-character-card__class[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    margin: 0 0 0.5rem;
}

.sanctum-character-card__hp-bar[b-4etd00vj0z] {
    height: 4px;
    background: var(--rw-bg-bark);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 0.25rem;
}

.sanctum-character-card__hp-fill[b-4etd00vj0z] {
    height: 100%;
    border-radius: 2px;
    transition: width 0.6s ease;
}

.sanctum-character-card__hp-fill--healthy[b-4etd00vj0z] {
    background: var(--rw-verdant);
    box-shadow: 0 0 4px var(--rw-verdant-glow);
}

.sanctum-character-card__hp-fill--bloodied[b-4etd00vj0z] {
    background: var(--rw-gold);
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.3);
}

.sanctum-character-card__hp-fill--critical[b-4etd00vj0z] {
    background: var(--rw-blood-bright);
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.4);
    animation: hp-critical-pulse-b-4etd00vj0z 1.5s ease-in-out infinite;
}

@keyframes hp-critical-pulse-b-4etd00vj0z {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

.sanctum-character-card__hp-text[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

/* === THEMED EMPTY STATES === */
.sanctum-empty[b-4etd00vj0z] {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    text-align: center;
}

.sanctum-empty--compact[b-4etd00vj0z] {
    padding: 1.5rem 1rem;
}

.sanctum-empty__scene[b-4etd00vj0z] {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.sanctum-empty__scene-img[b-4etd00vj0z] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    filter: brightness(0.7);
}

.sanctum-empty__scene-overlay[b-4etd00vj0z] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, var(--rw-bg-void, #0a0f0d) 100%);
}

.sanctum-empty__body[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 1.5rem 1.5rem;
    margin-top: -1.5rem;
    position: relative;
    z-index: 1;
}

.sanctum-empty__icon[b-4etd00vj0z] {
    width: 56px;
    height: 56px;
    opacity: 0.35;
    margin-bottom: 1rem;
    filter: saturate(0.5);
}

.sanctum-empty__title[b-4etd00vj0z] {
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 1rem;
    color: var(--rw-text-dim);
    margin: 0;
}

.sanctum-empty__hint[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    margin: 0;
}

.sanctum-empty__hint a[b-4etd00vj0z] {
    color: var(--rw-gold);
    text-decoration: none;
}

.sanctum-empty__hint a:hover[b-4etd00vj0z] {
    text-decoration: underline;
}

/* === NOTES === */
.sanctum-note-list[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sanctum-note[b-4etd00vj0z] {
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.85rem 1rem;
    transition: all var(--rw-transition);
}

.sanctum-note:hover[b-4etd00vj0z] {
    border-color: var(--rw-border-gold);
    background: var(--rw-bg-moss);
}

.sanctum-note__header[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.35rem;
}

.sanctum-note__title-row[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sanctum-note__title[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
    margin: 0;
}

.sanctum-note__meta[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.sanctum-note__actions[b-4etd00vj0z] {
    display: flex;
    gap: 0.35rem;
    margin-top: 0.5rem;
}

.sanctum-note__body[b-4etd00vj0z] {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rw-border);
}

.sanctum-note__body p[b-4etd00vj0z] {
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    color: var(--rw-text);
    line-height: 1.6;
    margin: 0;
    white-space: pre-wrap;
}

/* === SESSION LIST === */
.sanctum-session-list[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sanctum-session-item[b-4etd00vj0z] {
    position: relative;
    padding: 0.85rem 1rem 0.85rem 1.25rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    transition: all var(--rw-transition);
}

.sanctum-session-item[b-4etd00vj0z]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    border-radius: 3px 0 0 3px;
}

.sanctum-session-item--live[b-4etd00vj0z]::before {
    background: #f87171;
    box-shadow: 0 0 8px rgba(220, 38, 38, 0.4);
}

.sanctum-session-item--upcoming[b-4etd00vj0z]::before {
    background: var(--rw-arcane-blue);
    box-shadow: 0 0 6px var(--rw-arcane-glow);
}

.sanctum-session-item--past[b-4etd00vj0z]::before {
    background: var(--rw-sage-dark);
}

.sanctum-session-item:hover[b-4etd00vj0z] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border-gold);
}

.sanctum-session-item__row[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sanctum-session-item__info[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.sanctum-session-item__actions[b-4etd00vj0z] {
    display: flex;
    gap: 0.35rem;
    flex-shrink: 0;
}

.sanctum-session-item__number[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    color: var(--rw-text-dim);
}

.sanctum-session-item__title[b-4etd00vj0z] {
    color: var(--rw-text-bright);
}

.sanctum-session-item__summary[b-4etd00vj0z] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0.5rem 0 0;
}

.sanctum-session-item__links[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.4rem;
    flex-wrap: wrap;
}

.sanctum-session-item__links-label[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.sanctum-session-item__editor[b-4etd00vj0z] {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rw-border);
}

.sanctum-session-badge[b-4etd00vj0z] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-left: 0.25rem;
}

.sanctum-session-badge--live[b-4etd00vj0z] {
    background: rgba(220, 38, 38, 0.15);
    border: 1px solid rgba(220, 38, 38, 0.3);
    color: #f87171;
    animation: rw-live-pulse-b-4etd00vj0z 2s ease-in-out infinite;
}

.sanctum-session-badge--past[b-4etd00vj0z] {
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
    color: var(--rw-verdant-bright);
}

.sanctum-session-badge--upcoming[b-4etd00vj0z] {
    background: var(--rw-arcane-glow);
    border: 1px solid rgba(58, 128, 168, 0.25);
    color: var(--rw-arcane-cyan);
}

/* === NPC CARD GRID === */
.sanctum-npc-grid[b-4etd00vj0z] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.sanctum-npc-card[b-4etd00vj0z] {
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 1rem;
    transition: all var(--rw-transition);
    position: relative;
    overflow: hidden;
}

.sanctum-npc-card[b-4etd00vj0z]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--rw-verdant);
}

.sanctum-npc-card--dead[b-4etd00vj0z] {
    opacity: 0.55;
    filter: saturate(0.4);
}

.sanctum-npc-card--dead[b-4etd00vj0z]::before {
    background: var(--rw-sage-dark);
}

.sanctum-npc-card:hover[b-4etd00vj0z] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border-gold);
    opacity: 1;
    filter: none;
}

.sanctum-npc-card__header[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.sanctum-npc-card__avatar[b-4etd00vj0z] {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--rw-bg-moss-2), var(--rw-bg-moonlit));
    border: 2px solid var(--rw-border);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sanctum-npc-card__initial[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-text-bright);
}

.sanctum-npc-card__title[b-4etd00vj0z] {
    flex: 1;
    min-width: 0;
}

.sanctum-npc-card__name[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.2;
}

.sanctum-npc-card__status[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sanctum-npc-card__status--alive[b-4etd00vj0z] {
    color: var(--rw-verdant-bright);
}

.sanctum-npc-card__status--dead[b-4etd00vj0z] {
    color: var(--rw-blood-bright);
}

.sanctum-npc-card__details[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 0.75rem;
}

.sanctum-npc-card__detail[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
}

.sanctum-npc-card__detail-label[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    min-width: 55px;
}

.sanctum-npc-card__actions[b-4etd00vj0z] {
    display: flex;
    gap: 0.35rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--rw-border);
}

/* === BADGES === */
.sanctum-badge[b-4etd00vj0z] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.45rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: rgba(138, 170, 152, 0.1);
    border: 1px solid rgba(138, 170, 152, 0.2);
    color: var(--rw-sage-tan);
}

.sanctum-badge--dark[b-4etd00vj0z] {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--rw-text-dim);
}

.sanctum-badge--arcane[b-4etd00vj0z] {
    background: var(--rw-arcane-glow);
    border-color: rgba(58, 128, 168, 0.25);
    color: var(--rw-arcane-cyan);
}

/* === THEMED EDITOR PANELS === */
.sanctum-editor[b-4etd00vj0z] {
    background:
        radial-gradient(ellipse at 50% 0%, rgba(196, 160, 64, 0.03) 0%, transparent 70%),
        var(--rw-bg-bark);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-md);
    padding: 1.25rem;
    margin-bottom: 1rem;
    box-shadow: var(--rw-glow-candle);
}

.sanctum-editor--compact[b-4etd00vj0z] {
    padding: 1rem;
}

.sanctum-editor__title[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-gold-light);
    margin: 0 0 0.75rem;
}

.sanctum-editor__field[b-4etd00vj0z] {
    margin-bottom: 0.65rem;
}

.sanctum-editor__label[b-4etd00vj0z] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    margin-bottom: 0.3rem;
}

.sanctum-editor__row[b-4etd00vj0z] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.5rem;
}

.sanctum-editor__actions[b-4etd00vj0z] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

/* === THEMED INPUTS === */
.sanctum-input[b-4etd00vj0z] {
    width: 100%;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
    outline: none;
    box-sizing: border-box;
}

.sanctum-input:focus[b-4etd00vj0z] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.sanctum-input[b-4etd00vj0z]::placeholder {
    color: var(--rw-text-faint);
}

.sanctum-input--textarea[b-4etd00vj0z] {
    resize: vertical;
    min-height: 2.5rem;
    font-family: var(--rw-font-body);
}

/* === THEMED CHECKBOX === */
.sanctum-checkbox[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    cursor: pointer;
    margin-bottom: 0.5rem;
}

.sanctum-checkbox input[b-4etd00vj0z] {
    display: none;
}

.sanctum-checkbox__mark[b-4etd00vj0z] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: var(--rw-bg-panel);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--rw-transition);
    flex-shrink: 0;
}

.sanctum-checkbox input:checked + .sanctum-checkbox__mark[b-4etd00vj0z] {
    background: rgba(196, 160, 64, 0.15);
    border-color: var(--rw-gold);
}

.sanctum-checkbox input:checked + .sanctum-checkbox__mark[b-4etd00vj0z]::after {
    content: '\2713';
    color: var(--rw-gold-light);
    font-size: 0.65rem;
    font-weight: 700;
}

/* === TAG PICKER === */
.sanctum-tag-picker[b-4etd00vj0z] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sanctum-tag[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.25rem 0.6rem;
    border-radius: var(--rw-radius-pill);
    border: 1px solid var(--rw-border);
    background: var(--rw-bg-panel);
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all var(--rw-transition);
}

.sanctum-tag:hover[b-4etd00vj0z] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

.sanctum-tag--active[b-4etd00vj0z] {
    background: rgba(196, 160, 64, 0.12);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

/* === BUTTON VARIANTS (scoped extensions) === */
.sanctum-btn--danger[b-4etd00vj0z] {
    color: var(--rw-blood-bright);
    border-color: rgba(184, 58, 26, 0.25);
}

.sanctum-btn--danger:hover[b-4etd00vj0z] {
    background: rgba(184, 58, 26, 0.1);
    border-color: var(--rw-blood-bright);
    color: #f87171;
}

.sanctum-btn--danger-fill[b-4etd00vj0z] {
    background: var(--rw-blood-bright);
    border-color: var(--rw-blood-bright);
    color: #fff;
}

.sanctum-btn--danger-fill:hover[b-4etd00vj0z] {
    background: #c04020;
    box-shadow: 0 0 12px rgba(184, 58, 26, 0.3);
}

/* === THEMED MODAL === */
.sanctum-modal-backdrop[b-4etd00vj0z] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    animation: sanctum-modal-bg-in-b-4etd00vj0z 0.2s ease;
}

@keyframes sanctum-modal-bg-in-b-4etd00vj0z {
    from { opacity: 0; }
    to { opacity: 1; }
}

.sanctum-modal[b-4etd00vj0z] {
    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: 90%;
    max-width: 480px;
    max-height: 80vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: sanctum-modal-in-b-4etd00vj0z 0.25s cubic-bezier(0.23, 1, 0.32, 1);
}

@keyframes sanctum-modal-in-b-4etd00vj0z {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.sanctum-modal__header[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--rw-border);
}

.sanctum-modal__title[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-gold-light);
    margin: 0;
}

.sanctum-modal__close[b-4etd00vj0z] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    font-size: 0.85rem;
    padding: 0.25rem;
    transition: color var(--rw-transition);
}

.sanctum-modal__close:hover[b-4etd00vj0z] {
    color: var(--rw-text-bright);
}

.sanctum-modal__body[b-4etd00vj0z] {
    padding: 1rem 1.25rem;
    overflow-y: auto;
}

.sanctum-modal__list[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sanctum-modal__list-item[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.65rem 0.85rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    transition: all var(--rw-transition);
    width: 100%;
    text-align: left;
    color: var(--rw-text);
}

.sanctum-modal__list-item:hover[b-4etd00vj0z] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border-gold);
}

.sanctum-modal__list-info[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.sanctum-modal__list-info strong[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 0.9rem;
}

.sanctum-modal__list-meta[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

.sanctum-modal__list-action[b-4etd00vj0z] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
    border-radius: var(--rw-radius-pill);
    padding: 0.15rem 0.5rem;
}

/* === LOOT LAYOUT === */
.sanctum-loot-layout[b-4etd00vj0z] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.sanctum-loot-section__header[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.sanctum-loot-section__title[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-gold-light);
    margin: 0;
}

.sanctum-loot-section__title--spaced[b-4etd00vj0z] {
    margin-top: 1.25rem;
}

.sanctum-loot-table-list[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.sanctum-loot-table-item[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.65rem 0.85rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    transition: all var(--rw-transition);
}

.sanctum-loot-table-item:hover[b-4etd00vj0z] {
    border-color: var(--rw-border-gold);
    background: var(--rw-bg-moss);
}

.sanctum-loot-table-item__info[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.sanctum-loot-table-item__name[b-4etd00vj0z] {
    font-family: var(--rw-font-display);
    font-size: 0.92rem;
    color: var(--rw-gold-light);
    text-decoration: none;
}

.sanctum-loot-table-item__name:hover[b-4etd00vj0z] {
    color: var(--rw-gold-glow);
    text-decoration: underline;
}

.sanctum-loot-table-item__meta[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.sanctum-loot-history[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sanctum-loot-drop[b-4etd00vj0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.sanctum-loot-drop__main[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--rw-text);
}

.sanctum-loot-drop__item[b-4etd00vj0z] {
    font-weight: 600;
    color: var(--rw-text-bright);
}

.sanctum-loot-drop__qty[b-4etd00vj0z] {
    font-weight: 400;
    color: var(--rw-text-dim);
}

.sanctum-loot-drop__arrow[b-4etd00vj0z] {
    color: var(--rw-text-faint);
}

.sanctum-loot-drop__character[b-4etd00vj0z] {
    color: var(--rw-gold-light);
}

.sanctum-loot-drop__side[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.sanctum-loot-drop__currency[b-4etd00vj0z] {
    font-size: 0.72rem;
    color: var(--rw-gold);
}

.sanctum-loot-drop__date[b-4etd00vj0z] {
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

/* === ALERT === */
.sanctum-alert[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    margin-top: 0.5rem;
}

.sanctum-alert--success[b-4etd00vj0z] {
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.25);
    color: var(--rw-verdant-bright);
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .sanctum-header__overlay[b-4etd00vj0z] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 1rem 1.25rem;
    }

    .sanctum-header__invite[b-4etd00vj0z] {
        align-items: flex-start;
    }

    .sanctum-header__name[b-4etd00vj0z] {
        font-size: 1.5rem;
    }

    .sanctum-stats[b-4etd00vj0z] {
        gap: 0.75rem;
        padding: 0.5rem 1rem;
    }

    .sanctum-stats__value[b-4etd00vj0z] {
        font-size: 1rem;
    }

    .sanctum-content[b-4etd00vj0z] {
        padding: 1rem;
    }

    .sanctum-character-grid[b-4etd00vj0z] {
        grid-template-columns: 1fr;
    }

    .sanctum-npc-grid[b-4etd00vj0z] {
        grid-template-columns: 1fr;
    }

    .sanctum-loot-layout[b-4etd00vj0z] {
        grid-template-columns: 1fr;
    }

    .sanctum-tabs[b-4etd00vj0z] {
        gap: 0;
    }

    .sanctum-tab[b-4etd00vj0z] {
        padding: 0.5rem 0.75rem;
        font-size: 0.65rem;
    }

    .sanctum-editor__row[b-4etd00vj0z] {
        grid-template-columns: 1fr;
    }

    .sanctum-quest__track[b-4etd00vj0z] {
        gap: 0.6rem;
    }

    .sanctum-modal[b-4etd00vj0z] {
        width: 95%;
        max-height: 85vh;
    }

    .sanctum-modal__body[b-4etd00vj0z] {
        -webkit-overflow-scrolling: touch;
    }

    .sanctum-loot-table-list[b-4etd00vj0z] {
        max-height: 30vh;
    }
}

@media (max-width: 480px) {
    .sanctum-content[b-4etd00vj0z] {
        padding: 0.75rem;
    }

    .sanctum-header__name[b-4etd00vj0z] {
        font-size: 1.2rem;
    }

    .sanctum-stats[b-4etd00vj0z] {
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0.4rem 0.75rem;
    }

    .sanctum-stats__value[b-4etd00vj0z] {
        font-size: 0.9rem;
    }

    .sanctum-tab[b-4etd00vj0z] {
        padding: 0.4rem 0.5rem;
        font-size: 0.6rem;
    }

    .sanctum-modal[b-4etd00vj0z] {
        width: 100%;
        max-width: 100%;
        border-radius: var(--rw-radius-md);
        margin: 0.5rem;
    }

    .sanctum-modal__header[b-4etd00vj0z] {
        padding: 0.75rem 1rem;
    }

    .sanctum-modal__body[b-4etd00vj0z] {
        padding: 0.75rem 1rem;
    }
}
/* /Components/Pages/Campaigns/CampaignList.razor.rz.scp.css */
/* --- Empty Campaigns --- */
.empty-campaigns[b-y81468kreo] {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    text-align: center;
}

.empty-campaigns-scene[b-y81468kreo] {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
}

.empty-campaigns-scene-img[b-y81468kreo] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    filter: brightness(0.7);
}

.empty-campaigns-scene-overlay[b-y81468kreo] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, var(--rw-bg-void, #0a0f0d) 100%);
}

.empty-campaigns-body[b-y81468kreo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 2rem 2.5rem;
    margin-top: -2rem;
    position: relative;
    z-index: 1;
}

.empty-campaigns-heading[b-y81468kreo] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    color: var(--rw-sage-cream);
    margin: 0;
}

.empty-campaigns-text[b-y81468kreo] {
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-text-dim);
    margin: 0;
    max-width: 400px;
}

.empty-campaigns-actions[b-y81468kreo] {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.5rem;
}
/* /Components/Pages/Campaigns/QuestJournal.razor.rz.scp.css */
/* ============================================================
   Quest Journal — Player-facing quest tracker
   Enchanted forest aesthetic: dark parchment, gold accents
   ============================================================ */

.rw-journal[b-uaochqu9em] {
    max-width: 720px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
}

/* --- Header --- */

.rw-journal__header[b-uaochqu9em] {
    text-align: center;
    padding: 1.5rem 0 1.5rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
    margin-bottom: 1.5rem;
}

.rw-journal__title[b-uaochqu9em] {
    font-family: var(--rw-font-display);
    font-size: 2rem;
    font-weight: 400;
    color: var(--rw-text-bright);
    margin: 0.5rem 0 0.25rem;
    letter-spacing: 0.02em;
}

.rw-journal__subtitle[b-uaochqu9em] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
}

/* --- Empty state --- */

.rw-journal__empty[b-uaochqu9em] {
    text-align: center;
    padding: 4rem 1rem;
    color: var(--rw-text-dim);
}

.rw-journal__empty-icon[b-uaochqu9em] {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

.rw-journal__empty-hint[b-uaochqu9em] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    color: var(--rw-text-faint);
}

/* --- Filter tabs --- */

.rw-journal__filters[b-uaochqu9em] {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 1.25rem;
    overflow-x: auto;
}

.rw-journal__filter[b-uaochqu9em] {
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-pill);
    background: transparent;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s ease;
}

.rw-journal__filter:hover[b-uaochqu9em] {
    border-color: rgba(196, 160, 64, 0.25);
    color: var(--rw-text);
}

.rw-journal__filter--active[b-uaochqu9em] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
}

/* --- Quest list --- */

.rw-journal__list[b-uaochqu9em] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* --- Quest card --- */

.rw-journal__quest[b-uaochqu9em] {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-glass-bg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.rw-journal__quest:hover[b-uaochqu9em] {
    border-color: rgba(196, 160, 64, 0.15);
}

.rw-journal__quest--expanded[b-uaochqu9em] {
    border-color: rgba(196, 160, 64, 0.25);
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
}

.rw-journal__quest-header[b-uaochqu9em] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 1rem;
    border: none;
    background: transparent;
    color: var(--rw-text);
    text-align: left;
    cursor: pointer;
    font-family: var(--rw-font-body);
}

.rw-journal__quest-header:hover[b-uaochqu9em] {
    background: rgba(255, 255, 255, 0.02);
}

/* Status dot on quest cards */
.rw-journal__quest-status-dot[b-uaochqu9em] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--rw-text-faint);
    transition: all 0.2s;
}

.rw-journal__quest--active .rw-journal__quest-status-dot[b-uaochqu9em],
.rw-journal__quest--inprogress .rw-journal__quest-status-dot[b-uaochqu9em],
.rw-journal__quest--in_progress .rw-journal__quest-status-dot[b-uaochqu9em] {
    background: #c4a040;
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.5);
}

.rw-journal__quest--completed .rw-journal__quest-status-dot[b-uaochqu9em],
.rw-journal__quest--complete .rw-journal__quest-status-dot[b-uaochqu9em] {
    background: #3d8a55;
    box-shadow: 0 0 6px rgba(61, 138, 85, 0.4);
}

.rw-journal__quest--failed .rw-journal__quest-status-dot[b-uaochqu9em] {
    background: #b83a1a;
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.4);
}

.rw-journal__quest-status-dot--active[b-uaochqu9em],
.rw-journal__quest-status-dot--inprogress[b-uaochqu9em],
.rw-journal__quest-status-dot--in_progress[b-uaochqu9em] {
    background: #c4a040;
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.4);
}

.rw-journal__quest-status-dot--completed[b-uaochqu9em],
.rw-journal__quest-status-dot--complete[b-uaochqu9em] {
    background: #3d8a55;
    box-shadow: 0 0 6px rgba(61, 138, 85, 0.4);
}

.rw-journal__quest-info[b-uaochqu9em] {
    flex: 1;
    min-width: 0;
}

.rw-journal__quest-title[b-uaochqu9em] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    font-weight: 400;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.3;
}

.rw-journal__quest--completed .rw-journal__quest-title[b-uaochqu9em] {
    color: var(--rw-text-dim);
}

.rw-journal__quest-meta[b-uaochqu9em] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.rw-journal__quest-tag[b-uaochqu9em] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    color: var(--rw-text-faint);
    display: flex;
    align-items: center;
    gap: 0.2rem;
}

.rw-journal__quest-tag-icon[b-uaochqu9em] {
    font-size: 0.72rem;
}

.rw-journal__quest-chevron[b-uaochqu9em] {
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    flex-shrink: 0;
}

/* --- Quest body (expanded) --- */

.rw-journal__quest-body[b-uaochqu9em] {
    padding: 0 1rem 1rem;
    border-top: 1px solid rgba(196, 160, 64, 0.08);
    animation: rw-journal-expand-b-uaochqu9em 0.2s ease-out;
}

@keyframes rw-journal-expand-b-uaochqu9em {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-journal__quest-description[b-uaochqu9em] {
    padding: 0.75rem 0;
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--rw-text);
}

.rw-journal__quest-description :deep(p)[b-uaochqu9em] {
    margin: 0 0 0.5rem;
}

.rw-journal__quest-description :deep(strong)[b-uaochqu9em] {
    color: var(--rw-text-bright);
}

/* --- Objectives --- */

.rw-journal__objectives[b-uaochqu9em] {
    padding: 0.5rem 0;
}

.rw-journal__objectives-title[b-uaochqu9em] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0 0 0.5rem;
}

.rw-journal__objective[b-uaochqu9em] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.3rem 0;
    font-size: 0.85rem;
    color: var(--rw-text);
}

.rw-journal__objective--complete[b-uaochqu9em] {
    color: var(--rw-text-faint);
}

.rw-journal__objective--complete .rw-journal__objective-text[b-uaochqu9em] {
    text-decoration: line-through;
    text-decoration-color: rgba(61, 138, 85, 0.4);
}

.rw-journal__objective-check[b-uaochqu9em] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    border-radius: 50%;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-faint);
}

.rw-journal__objective--complete .rw-journal__objective-check[b-uaochqu9em] {
    background: rgba(61, 138, 85, 0.15);
    border-color: rgba(61, 138, 85, 0.3);
    color: #3d8a55;
}

.rw-journal__objective-optional[b-uaochqu9em] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    color: var(--rw-text-faint);
    margin-left: 0.35rem;
}

/* --- Sub-quests --- */

.rw-journal__subquests[b-uaochqu9em] {
    padding: 0.5rem 0;
}

.rw-journal__subquest[b-uaochqu9em] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.35rem 0.5rem;
    border: none;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s;
}

.rw-journal__subquest:hover[b-uaochqu9em] {
    background: rgba(196, 160, 64, 0.06);
}

/* --- Quest links (NPC, Location) --- */

.rw-journal__quest-links[b-uaochqu9em] {
    display: flex;
    gap: 1rem;
    padding: 0.75rem 0 0.25rem;
    border-top: 1px solid rgba(196, 160, 64, 0.06);
    margin-top: 0.5rem;
}

.rw-journal__quest-link[b-uaochqu9em] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-journal__quest-link-icon[b-uaochqu9em] {
    font-size: 0.85rem;
    color: var(--rw-text-faint);
}

.rw-journal__quest-link-label[b-uaochqu9em] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-journal__quest-link-name[b-uaochqu9em] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-gold-light);
}

/* --- Progress bar --- */

.rw-journal__progress[b-uaochqu9em] {
    margin-top: 2rem;
    text-align: center;
}

.rw-journal__progress-bar[b-uaochqu9em] {
    height: 4px;
    background: rgba(58, 84, 72, 0.3);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 0.5rem;
}

.rw-journal__progress-fill[b-uaochqu9em] {
    height: 100%;
    background: linear-gradient(90deg, #3d8a55, #c4a040);
    border-radius: 2px;
    transition: width 0.5s ease;
}

.rw-journal__progress-text[b-uaochqu9em] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

/* --- Responsive --- */

@media (max-width: 600px) {
    .rw-journal[b-uaochqu9em] {
        padding: 1rem 0.5rem 2rem;
    }

    .rw-journal__title[b-uaochqu9em] {
        font-size: 1.5rem;
    }

    .rw-journal__quest-links[b-uaochqu9em] {
        flex-direction: column;
        gap: 0.5rem;
    }
}
/* /Components/Pages/Characters/CharacterCreate.razor.rz.scp.css */
/* ============================================================
   CharacterCreate — Hero Forging Wizard
   Enchanted forest aesthetic with portrait-driven selection
   cards, themed progress rail, and immersive stat blocks.
   ============================================================ */

/* --- Page Shell --- */
.cc-page[b-ljlydd89te] {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 1rem 3rem;
}

.cc-title[b-ljlydd89te] {
    font-family: var(--rw-font-display);
    font-size: 2rem;
    color: var(--rw-gold-light);
    margin: 0.5rem 0 1.5rem;
    letter-spacing: 0.03em;
}

/* --- Step Progress Rail --- */
.cc-steps[b-ljlydd89te] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    position: relative;
    margin-bottom: 2rem;
    padding: 0 0.5rem;
}

/* Connecting line behind nodes */
.cc-steps[b-ljlydd89te]::before {
    content: '';
    position: absolute;
    top: 16px;
    left: calc(10% + 16px);
    right: calc(10% + 16px);
    height: 2px;
    background: var(--rw-border);
    z-index: 0;
}

.cc-step[b-ljlydd89te] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    z-index: 1;
    cursor: pointer;
    flex: 1;
}

.cc-step__node[b-ljlydd89te] {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    font-weight: 600;
    border: 2px solid var(--rw-border);
    background: var(--rw-bg-panel);
    color: var(--rw-text-faint);
    transition: all 0.3s ease;
}

.cc-step__check[b-ljlydd89te] {
    width: 16px;
    height: 16px;
}

.cc-step__label[b-ljlydd89te] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: color 0.3s ease;
    text-align: center;
}

/* Completed step */
.cc-step--completed .cc-step__node[b-ljlydd89te] {
    background: var(--rw-verdant-deep);
    border-color: var(--rw-verdant);
    color: var(--rw-verdant-bright);
}

.cc-step--completed .cc-step__label[b-ljlydd89te] {
    color: var(--rw-verdant);
}

/* Active step */
.cc-step--active .cc-step__node[b-ljlydd89te] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.08));
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.25), 0 0 4px rgba(196, 160, 64, 0.15);
}

.cc-step--active .cc-step__label[b-ljlydd89te] {
    color: var(--rw-gold-light);
    font-weight: 600;
}

/* Pending step — not clickable */
.cc-step--pending[b-ljlydd89te] {
    cursor: default;
}

/* Mobile step indicator */
.cc-steps-mobile[b-ljlydd89te] {
    display: none;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    padding: 0.6rem 1rem;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.cc-steps-mobile__label[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 1rem;
    color: var(--rw-gold-light);
}

.cc-steps-mobile__count[b-ljlydd89te] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* --- Step Content Animation --- */
.cc-animate-in[b-ljlydd89te] {
    animation: cc-slide-in-b-ljlydd89te 0.35s cubic-bezier(0.23, 1, 0.32, 1) both;
}

@keyframes cc-slide-in-b-ljlydd89te {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Headings --- */
.cc-heading[b-ljlydd89te] {
    font-family: var(--rw-font-display);
    font-size: 1.5rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.25rem;
}

.cc-subtext[b-ljlydd89te] {
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-text-dim);
    margin: 0 0 1.5rem;
    font-style: italic;
}

/* --- Selection Card Grid --- */
.cc-card-grid[b-ljlydd89te] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.cc-card-grid--compact[b-ljlydd89te] {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

/* --- Selection Card --- */
.cc-card[b-ljlydd89te] {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.25s cubic-bezier(0.23, 1, 0.32, 1),
                border-color 0.25s ease,
                box-shadow 0.35s ease;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

.cc-card:hover[b-ljlydd89te] {
    transform: translateY(-3px);
    border-color: var(--rw-border-gold);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.4),
                0 0 20px rgba(196, 160, 64, 0.06);
}

.cc-card--selected[b-ljlydd89te] {
    border-color: var(--rw-gold) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4),
                0 0 24px rgba(196, 160, 64, 0.18) !important;
}

.cc-card--selected .cc-card__name[b-ljlydd89te] {
    color: var(--rw-gold-light);
}

/* Portrait */
.cc-card__portrait[b-ljlydd89te] {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: linear-gradient(145deg, var(--rw-bg-moss) 0%, var(--rw-bg-moss-2) 100%);
}

.cc-card__portrait > img[b-ljlydd89te] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.cc-card:hover .cc-card__portrait > img[b-ljlydd89te] {
    transform: scale(1.06);
}

.cc-card__vignette[b-ljlydd89te] {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, var(--rw-bg-panel) 0%, transparent 45%),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.12) 0%, transparent 25%);
    pointer-events: none;
}

/* Card info */
.cc-card__info[b-ljlydd89te] {
    padding: 0.6rem 0.75rem 0.75rem;
    margin-top: -1rem;
    position: relative;
    z-index: 1;
}

.cc-card__name[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 0.95rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.35rem;
    line-height: 1.2;
    transition: color 0.2s ease;
}

.cc-card__traits[b-ljlydd89te] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

/* Selected badge */
.cc-card__selected-badge[b-ljlydd89te] {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.2);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-pill);
    padding: 0.2rem 0.6rem;
    backdrop-filter: blur(8px);
    z-index: 2;
}

/* Horizontal card variant (backgrounds) */
.cc-card--horizontal[b-ljlydd89te] {
    flex-direction: row;
    align-items: center;
}

.cc-card--horizontal .cc-card__icon[b-ljlydd89te] {
    width: 56px;
    height: 56px;
    min-width: 56px;
    margin: 0.75rem;
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    background: var(--rw-bg-moss);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cc-card--horizontal .cc-card__icon > img[b-ljlydd89te] {
    width: 36px;
    height: 36px;
    object-fit: contain;
    filter: brightness(0.85) saturate(0.9);
}

.cc-card--horizontal .cc-card__info[b-ljlydd89te] {
    padding: 0.75rem 0.75rem 0.75rem 0;
    margin-top: 0;
}

.cc-card--horizontal .cc-card__selected-badge[b-ljlydd89te] {
    top: 50%;
    transform: translateY(-50%);
}

/* --- Tags --- */
.cc-tag[b-ljlydd89te] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-sm);
    padding: 0.12rem 0.4rem;
    letter-spacing: 0.02em;
}

.cc-tag--dice[b-ljlydd89te] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.15);
}

.cc-tag--magic[b-ljlydd89te] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.08);
    border-color: rgba(72, 176, 192, 0.15);
}

.cc-tag--skill[b-ljlydd89te] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.08);
    border-color: rgba(61, 138, 85, 0.15);
}

/* --- Subrace Selector --- */
.cc-subrace[b-ljlydd89te] {
    margin-top: 1.25rem;
    margin-bottom: 1rem;
}

/* --- Segmented Control --- */
.cc-segmented[b-ljlydd89te] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.cc-segmented__btn[b-ljlydd89te] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.4rem 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.cc-segmented__btn:hover[b-ljlydd89te] {
    border-color: var(--rw-border-gold);
    color: var(--rw-sage-cream);
}

.cc-segmented__btn--active[b-ljlydd89te] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.12), rgba(196, 160, 64, 0.04));
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

/* --- Score Method Toggle --- */
.cc-score-method[b-ljlydd89te] {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 1.5rem;
}

/* --- Ability Score Grid --- */
.cc-ability-grid[b-ljlydd89te] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.cc-ability[b-ljlydd89te] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.cc-ability__label[b-ljlydd89te] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-ability__block[b-ljlydd89te] {
    width: 80px;
    height: 96px;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rw-bg-panel);
    border: 2px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    /* Hexagonal hint via clip-path */
    clip-path: polygon(50% 0%, 100% 12%, 100% 88%, 50% 100%, 0% 88%, 0% 12%);
    padding-top: 0.25rem;
}

.cc-ability__mod[b-ljlydd89te] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.15rem;
}

.cc-mod--positive[b-ljlydd89te] { color: var(--rw-verdant-bright); }
.cc-mod--negative[b-ljlydd89te] { color: var(--rw-blood-bright); }
.cc-mod--neutral[b-ljlydd89te]  { color: var(--rw-sage-cream); }

.cc-ability__score[b-ljlydd89te] {
    width: 42px;
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-text);
    background: transparent;
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 0.15rem 0;
    -moz-appearance: textfield;
}

.cc-ability__score[b-ljlydd89te]::-webkit-inner-spin-button,
.cc-ability__score[b-ljlydd89te]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.cc-ability__score:focus[b-ljlydd89te] {
    outline: none;
    border-top-color: var(--rw-gold);
}

.cc-ability__abbr[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.1em;
}

/* --- Character Details Layout --- */
.cc-details-layout[b-ljlydd89te] {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2rem;
    margin-bottom: 1.5rem;
}

/* Preview Card */
.cc-preview[b-ljlydd89te] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    box-shadow: var(--rw-shadow);
    position: sticky;
    top: 5rem;
    align-self: start;
}

.cc-preview__portrait[b-ljlydd89te] {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: linear-gradient(145deg, var(--rw-bg-moss) 0%, var(--rw-bg-moss-2) 100%);
}

.cc-preview__portrait > img[b-ljlydd89te] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
}

.cc-preview__vignette[b-ljlydd89te] {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, var(--rw-bg-panel) 0%, transparent 50%),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, transparent 20%);
    pointer-events: none;
}

.cc-preview__info[b-ljlydd89te] {
    padding: 0.75rem 1rem 1rem;
    margin-top: -1.5rem;
    position: relative;
    z-index: 1;
}

.cc-preview__name[b-ljlydd89te] {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    color: var(--rw-gold-light);
    line-height: 1.2;
    margin-bottom: 0.2rem;
}

.cc-preview__subtitle[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    color: var(--rw-sage-tan);
}

.cc-preview__alignment[b-ljlydd89te] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    margin-top: 0.35rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* --- Detail Fields --- */
.cc-fields[b-ljlydd89te] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cc-field-row[b-ljlydd89te] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.cc-label[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    color: var(--rw-sage-tan);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
    display: block;
}

.cc-input[b-ljlydd89te],
.cc-textarea[b-ljlydd89te] {
    width: 100%;
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    color: var(--rw-text);
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.55rem 0.75rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    resize: vertical;
}

.cc-input:focus[b-ljlydd89te],
.cc-textarea:focus[b-ljlydd89te] {
    outline: none;
    border-color: var(--rw-gold);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

.cc-input--name[b-ljlydd89te] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    padding: 0.65rem 0.85rem;
    color: var(--rw-gold-light);
}

.cc-input[b-ljlydd89te]::placeholder,
.cc-textarea[b-ljlydd89te]::placeholder {
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Alignment 3x3 Grid --- */
.cc-alignment-grid[b-ljlydd89te] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.3rem;
    max-width: 260px;
}

.cc-alignment-cell[b-ljlydd89te] {
    aspect-ratio: 1.6 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all 0.2s ease;
    padding: 0;
}

.cc-alignment-cell:hover[b-ljlydd89te] {
    border-color: var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.04);
}

.cc-alignment-cell--selected[b-ljlydd89te] {
    border-color: var(--rw-gold) !important;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.05)) !important;
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.12);
}

.cc-alignment-cell__abbr[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.06em;
    transition: color 0.2s ease;
}

.cc-alignment-cell--selected .cc-alignment-cell__abbr[b-ljlydd89te] {
    color: var(--rw-gold-light);
}

.cc-alignment-label[b-ljlydd89te] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    margin-top: 0.4rem;
    min-height: 1.2em;
}

/* --- Navigation --- */
.cc-nav[b-ljlydd89te] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1.5rem;
    border-top: 1px solid var(--rw-border);
    margin-top: 0.5rem;
}

.cc-btn[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    border: none;
    border-radius: var(--rw-radius-md);
    padding: 0.55rem 1.2rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.2s ease;
    letter-spacing: 0.02em;
}

.cc-btn:disabled[b-ljlydd89te] {
    opacity: 0.4;
    cursor: not-allowed;
}

.cc-btn--primary[b-ljlydd89te] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.06));
    border: 1px solid var(--rw-gold);
    color: var(--rw-gold-light);
}

.cc-btn--primary:hover:not(:disabled)[b-ljlydd89te] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.1));
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.15);
}

.cc-btn--ghost[b-ljlydd89te] {
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
}

.cc-btn--ghost:hover[b-ljlydd89te] {
    border-color: var(--rw-sage-muted);
    color: var(--rw-sage-cream);
}

.cc-btn--create[b-ljlydd89te] {
    background: linear-gradient(135deg, var(--rw-gold), var(--rw-gold-light));
    color: var(--rw-bg-void);
    font-weight: 600;
    padding: 0.65rem 1.8rem;
    font-size: 0.95rem;
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.2);
}

.cc-btn--create:hover:not(:disabled)[b-ljlydd89te] {
    box-shadow: 0 0 32px rgba(196, 160, 64, 0.35), 0 4px 16px rgba(0, 0, 0, 0.3);
    transform: translateY(-1px);
}

.cc-btn__arrow[b-ljlydd89te] {
    font-size: 1.05em;
    line-height: 1;
}

/* --- Error --- */
.cc-error[b-ljlydd89te] {
    background: rgba(184, 58, 26, 0.1);
    border: 1px solid rgba(184, 58, 26, 0.3);
    border-radius: var(--rw-radius-md);
    color: var(--rw-blood-bright);
    padding: 0.65rem 1rem;
    font-size: 0.88rem;
    margin-bottom: 1rem;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
    .cc-steps[b-ljlydd89te] {
        display: none;
    }

    .cc-steps-mobile[b-ljlydd89te] {
        display: flex;
    }

    .cc-card-grid[b-ljlydd89te] {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
        gap: 0.75rem;
    }

    .cc-card-grid--compact[b-ljlydd89te] {
        grid-template-columns: 1fr;
    }

    .cc-ability-grid[b-ljlydd89te] {
        grid-template-columns: repeat(2, 1fr);
    }

    .cc-details-layout[b-ljlydd89te] {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .cc-preview[b-ljlydd89te] {
        position: static;
        display: grid;
        grid-template-columns: 100px 1fr;
        border-radius: var(--rw-radius-md);
    }

    .cc-preview__portrait[b-ljlydd89te] {
        aspect-ratio: 1;
        border-radius: var(--rw-radius-md) 0 0 var(--rw-radius-md);
    }

    .cc-preview__vignette[b-ljlydd89te] {
        background:
            linear-gradient(to left, var(--rw-bg-panel) 0%, transparent 50%);
    }

    .cc-preview__info[b-ljlydd89te] {
        margin-top: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 0.5rem 0.75rem;
    }

    .cc-preview__name[b-ljlydd89te] {
        font-size: 1.1rem;
    }

    .cc-field-row[b-ljlydd89te] {
        grid-template-columns: 1fr;
    }

    .cc-title[b-ljlydd89te] {
        font-size: 1.5rem;
    }

    .cc-heading[b-ljlydd89te] {
        font-size: 1.25rem;
    }

    .cc-input--name[b-ljlydd89te] {
        font-size: 1.15rem;
    }
}

@media (max-width: 480px) {
    .cc-card-grid[b-ljlydd89te] {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }

    .cc-card__info[b-ljlydd89te] {
        padding: 0.4rem 0.5rem 0.5rem;
    }

    .cc-card__name[b-ljlydd89te] {
        font-size: 0.82rem;
    }

    .cc-tag[b-ljlydd89te] {
        font-size: 0.6rem;
        padding: 0.08rem 0.3rem;
    }

    .cc-ability__block[b-ljlydd89te] {
        width: 68px;
        height: 82px;
    }

    .cc-ability__mod[b-ljlydd89te] {
        font-size: 1.35rem;
    }

    .cc-ability__score[b-ljlydd89te] {
        width: 36px;
        font-size: 0.78rem;
    }

    .cc-segmented__btn[b-ljlydd89te] {
        font-size: 0.75rem;
        padding: 0.35rem 0.7rem;
    }
}
/* /Components/Pages/Characters/CharacterList.razor.rz.scp.css */
/* ============================================================
   CharacterList — Hero Portrait Card Grid
   Vertical cards with dominant character art, enchanted forest
   aesthetic. Each card feels like a character select screen.
   ============================================================ */

/* --- Page Header --- */
.roster-header[b-2qc542a4yb] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--rw-border);
}

.roster-header-left[b-2qc542a4yb] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
}

.roster-title[b-2qc542a4yb] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-sage-cream);
    margin: 0;
    letter-spacing: 0.02em;
}

.roster-count[b-2qc542a4yb] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.roster-create-btn[b-2qc542a4yb] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    color: var(--rw-gold-light);
    background: var(--rw-gold-ember);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-md);
    padding: 0.45rem 1rem;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
}

.roster-create-btn:hover[b-2qc542a4yb] {
    background: var(--rw-gold-flare);
    border-color: var(--rw-border-strong);
    color: var(--rw-gold-glow);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.15);
}

.roster-create-btn--lg[b-2qc542a4yb] {
    font-size: 0.95rem;
    padding: 0.6rem 1.4rem;
}

/* --- Character Card Grid --- */
.char-grid[b-2qc542a4yb] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.25rem;
}

/* --- Character Card --- */
.char-card[b-2qc542a4yb] {
    display: flex;
    flex-direction: column;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    cursor: pointer;
    position: relative;
    transition: transform 0.25s cubic-bezier(0.23, 1, 0.32, 1),
                border-color 0.25s ease,
                box-shadow 0.35s ease;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.char-card:hover[b-2qc542a4yb] {
    transform: translateY(-4px);
    border-color: var(--rw-border-verdant);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
                0 0 24px rgba(61, 138, 85, 0.08),
                inset 0 0 0 1px rgba(61, 138, 85, 0.05);
}

.char-card--inactive[b-2qc542a4yb] {
    opacity: 0.55;
    filter: saturate(0.4);
}

.char-card--inactive:hover[b-2qc542a4yb] {
    opacity: 0.75;
    filter: saturate(0.6);
}

/* --- Portrait Region --- */
.char-card-portrait[b-2qc542a4yb] {
    position: relative;
    width: 100%;
    height: 220px;
    overflow: hidden;
    background: linear-gradient(145deg, var(--rw-bg-moss) 0%, var(--rw-bg-moss-2) 100%);
}

.char-card-portrait--empty[b-2qc542a4yb] {
    height: 180px;
}

.char-card-portrait-img[b-2qc542a4yb] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1),
                filter 0.3s ease;
}

.char-card:hover .char-card-portrait-img[b-2qc542a4yb] {
    transform: scale(1.06);
}

/* Vignette overlay for depth */
.char-card-portrait-vignette[b-2qc542a4yb] {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, var(--rw-bg-panel) 0%, transparent 40%),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.15) 0%, transparent 30%);
    pointer-events: none;
}

/* Empty portrait placeholder */
.char-card-portrait-placeholder[b-2qc542a4yb] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(ellipse at center, var(--rw-bg-moonlit) 0%, var(--rw-bg-moss) 70%);
}

.char-card-portrait-placeholder-icon[b-2qc542a4yb] {
    width: 56px;
    height: 56px;
    opacity: 0.15;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.5));
}

/* Level badge — overlaid bottom-left of portrait */
.char-card-level[b-2qc542a4yb] {
    position: absolute;
    bottom: -1px;
    left: 12px;
    font-family: var(--rw-font-display);
    font-size: 1rem;
    line-height: 1;
    color: var(--rw-gold-glow);
    background: linear-gradient(135deg, rgba(15, 32, 40, 0.92) 0%, rgba(20, 42, 50, 0.92) 100%);
    border: 1px solid var(--rw-border-gold);
    border-bottom: none;
    border-radius: var(--rw-radius-sm) var(--rw-radius-sm) 0 0;
    padding: 0.25rem 0.55rem 0.35rem;
    z-index: 2;
    text-shadow: 0 0 8px rgba(196, 160, 64, 0.4);
    letter-spacing: 0.02em;
}

.char-card-level[b-2qc542a4yb]::before {
    content: "Lvl ";
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-gold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-shadow: none;
}

/* Inactive badge */
.char-card-inactive-badge[b-2qc542a4yb] {
    position: absolute;
    top: 10px;
    left: 10px;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--rw-text-faint);
    background: rgba(10, 18, 24, 0.8);
    border: 1px solid var(--rw-sage-dark);
    border-radius: var(--rw-radius-sm);
    padding: 0.15rem 0.45rem;
    backdrop-filter: blur(4px);
    z-index: 2;
}

/* Delete button — top-right, appears on hover */
.char-card-delete[b-2qc542a4yb] {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(10, 18, 24, 0.7);
    border: 1px solid transparent;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-faint);
    font-size: 0.75rem;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-4px);
    transition: all 0.2s ease;
    z-index: 3;
    backdrop-filter: blur(4px);
    padding: 0;
}

.char-card:hover .char-card-delete[b-2qc542a4yb] {
    opacity: 1;
    transform: translateY(0);
}

.char-card-delete:hover[b-2qc542a4yb] {
    background: rgba(139, 37, 0, 0.6);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

/* --- Info Region --- */
.char-card-info[b-2qc542a4yb] {
    padding: 0.65rem 0.9rem 0.8rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    position: relative;
    z-index: 1;
}

.char-card-name[b-2qc542a4yb] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-sage-cream);
    margin: 0;
    line-height: 1.2;
    transition: color 0.2s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.char-card:hover .char-card-name[b-2qc542a4yb] {
    color: var(--rw-verdant-bright);
}

.char-card-subtitle[b-2qc542a4yb] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    margin: 0;
    letter-spacing: 0.02em;
}

/* --- HP Bar --- */
.char-card-hp[b-2qc542a4yb] {
    margin-top: 0.4rem;
}

.char-card-hp-labels[b-2qc542a4yb] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.2rem;
}

.char-card-hp-label[b-2qc542a4yb] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--rw-text-faint);
}

.char-card-hp-value[b-2qc542a4yb] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.02em;
}

.char-card-hp-track[b-2qc542a4yb] {
    height: 4px;
    background: var(--rw-bg-moss);
    border-radius: 2px;
    overflow: hidden;
    position: relative;
}

.char-card-hp-fill[b-2qc542a4yb] {
    height: 100%;
    border-radius: 2px;
    background: var(--hp-color);
    transition: width 0.4s cubic-bezier(0.23, 1, 0.32, 1);
    position: relative;
    box-shadow: 0 0 6px color-mix(in srgb, var(--hp-color) 40%, transparent);
}

/* --- Empty Roster --- */
.empty-roster[b-2qc542a4yb] {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    text-align: center;
}

.empty-roster-scene[b-2qc542a4yb] {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
}

.empty-roster-scene-img[b-2qc542a4yb] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    filter: brightness(0.7);
}

.empty-roster-scene-overlay[b-2qc542a4yb] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, var(--rw-bg-void, #0a0f0d) 100%);
}

.empty-roster-body[b-2qc542a4yb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 2rem 2.5rem;
    margin-top: -2rem;
    position: relative;
    z-index: 1;
}

.empty-roster-heading[b-2qc542a4yb] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    color: var(--rw-sage-cream);
    margin: 0;
}

.empty-roster-text[b-2qc542a4yb] {
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-text-dim);
    margin: 0;
    max-width: 400px;
}

/* --- Delete Modal --- */
.delete-overlay[b-2qc542a4yb] {
    position: fixed;
    inset: 0;
    background: rgba(5, 10, 15, 0.7);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    animation: overlay-in-b-2qc542a4yb 0.15s ease;
}

.delete-modal[b-2qc542a4yb] {
    background: linear-gradient(160deg, var(--rw-bg-panel) 0%, var(--rw-bg-bark) 100%);
    border: 1px solid var(--rw-sage-dark);
    border-radius: var(--rw-radius-lg);
    padding: 1.5rem 1.75rem;
    max-width: 340px;
    width: 90%;
    text-align: center;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
    animation: modal-in-b-2qc542a4yb 0.2s cubic-bezier(0.23, 1, 0.32, 1);
}

.delete-modal-icon[b-2qc542a4yb] {
    font-size: 1.5rem;
    color: var(--rw-blood-bright);
    margin-bottom: 0.5rem;
}

.delete-modal-title[b-2qc542a4yb] {
    font-family: var(--rw-font-sc);
    font-size: 1rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.5rem;
}

.delete-modal-text[b-2qc542a4yb] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    margin: 0 0 1.25rem;
    line-height: 1.5;
}

.delete-modal-actions[b-2qc542a4yb] {
    display: flex;
    gap: 0.6rem;
    justify-content: center;
}

.delete-modal-btn[b-2qc542a4yb] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    padding: 0.4rem 1.1rem;
    border-radius: var(--rw-radius-md);
    border: 1px solid;
    cursor: pointer;
    transition: all 0.15s ease;
}

.delete-modal-btn--cancel[b-2qc542a4yb] {
    background: transparent;
    border-color: var(--rw-sage-dark);
    color: var(--rw-text-dim);
}

.delete-modal-btn--cancel:hover[b-2qc542a4yb] {
    background: var(--rw-bg-moss);
    color: var(--rw-sage-cream);
}

.delete-modal-btn--confirm[b-2qc542a4yb] {
    background: rgba(139, 37, 0, 0.3);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

.delete-modal-btn--confirm:hover[b-2qc542a4yb] {
    background: rgba(139, 37, 0, 0.5);
    box-shadow: 0 0 12px rgba(184, 58, 26, 0.2);
}

@keyframes overlay-in-b-2qc542a4yb {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes modal-in-b-2qc542a4yb {
    from { opacity: 0; transform: scale(0.95) translateY(8px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

/* --- Responsive --- */
@media (max-width: 600px) {
    .char-grid[b-2qc542a4yb] {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: 0.75rem;
    }

    .char-card-portrait[b-2qc542a4yb] {
        height: 160px;
    }

    .char-card-portrait--empty[b-2qc542a4yb] {
        height: 130px;
    }

    .char-card-name[b-2qc542a4yb] {
        font-size: 0.95rem;
    }

    .roster-header[b-2qc542a4yb] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .roster-create-btn[b-2qc542a4yb] {
        align-self: stretch;
        justify-content: center;
    }
}

@media (min-width: 1400px) {
    .char-grid[b-2qc542a4yb] {
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    }
}
/* /Components/Pages/Compendium/ClassDetail.razor.rz.scp.css */
/* =============================================================
   ClassDetail — Tabbed compendium page with progression table
   ============================================================= */

/* --- Tabs --- */
.cd-tabs[b-c2zhu94x46] {
    display: flex;
    gap: 0;
    margin-bottom: 0;
    border-bottom: 1px solid var(--rw-border);
    padding-left: 1px;
}

.cd-tab[b-c2zhu94x46] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-text-faint);
    background: transparent;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 4px 4px 0 0;
    padding: 0.55rem 1.1rem;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
    position: relative;
    bottom: -1px;
}

.cd-tab:hover[b-c2zhu94x46] {
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.02);
}

.cd-tab--active[b-c2zhu94x46] {
    color: var(--rw-gold-light);
    background: linear-gradient(135deg, var(--rw-bg-moss), var(--rw-bg-moss-2));
    border-color: var(--rw-border);
    border-bottom-color: var(--rw-bg-moss);
}

.cd-tab--active:hover[b-c2zhu94x46] {
    color: var(--rw-gold-light);
}

/* --- Panel (content card below tabs) --- */
.cd-panel[b-c2zhu94x46] {
    border-top-left-radius: 0;
    margin-top: 0;
    border-top: none;
}

/* --- Progression Table --- */
.cd-prog[b-c2zhu94x46] {
    padding: 1.25rem;
}

.cd-prog__title[b-c2zhu94x46] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    margin: 0 0 1rem 0;
    text-align: center;
    position: relative;
}

.cd-prog__title[b-c2zhu94x46]::after {
    content: '';
    display: block;
    width: 60%;
    max-width: 240px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--rw-gold), transparent);
    margin: 0.5rem auto 0;
}

.cd-prog__table-wrap[b-c2zhu94x46] {
    overflow-x: auto;
}

.cd-prog__table[b-c2zhu94x46] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    line-height: 1.5;
}

/* --- Table Header --- */
.cd-prog__th[b-c2zhu94x46] {
    padding: 0.5rem 0.65rem;
    text-align: left;
    font-family: var(--rw-font-ui);
    font-weight: 700;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rw-gold);
    border-bottom: 2px solid var(--rw-gold);
    background: rgba(196, 160, 64, 0.04);
}

.cd-prog__th--lvl[b-c2zhu94x46]  { width: 65px; }
.cd-prog__th--prof[b-c2zhu94x46] { width: 80px; text-align: center; }

/* --- Table Rows --- */
.cd-prog__row[b-c2zhu94x46] {
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    transition: background 0.1s ease;
}

.cd-prog__row:hover[b-c2zhu94x46] {
    background: rgba(255, 255, 255, 0.02);
}

/* Tier boundaries (5th, 11th, 17th) — subtle gold line above */
.cd-prog__row--tier[b-c2zhu94x46] {
    border-top: 1px solid rgba(196, 160, 64, 0.2);
}

.cd-prog__row--empty[b-c2zhu94x46] {
    opacity: 0.55;
}

/* --- Table Cells --- */
.cd-prog__cell[b-c2zhu94x46] {
    padding: 0.45rem 0.65rem;
    vertical-align: top;
}

.cd-prog__cell--lvl[b-c2zhu94x46] {
    font-family: var(--rw-font-ui);
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    white-space: nowrap;
}

.cd-prog__cell--prof[b-c2zhu94x46] {
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text-faint);
}

.cd-prog__cell--features[b-c2zhu94x46] {
    line-height: 1.6;
}

/* --- Feature Names (clickable) --- */
.cd-prog__feature[b-c2zhu94x46] {
    display: inline;
    cursor: pointer;
    color: var(--rw-text);
    transition: color 0.12s ease;
    border-bottom: 1px dotted rgba(255, 255, 255, 0.15);
}

.cd-prog__feature:hover[b-c2zhu94x46] {
    color: var(--rw-verdant-bright);
}

.cd-prog__feature--expanded[b-c2zhu94x46] {
    color: var(--rw-verdant-bright);
    border-bottom-color: var(--rw-verdant);
}

/* Comma separation between features */
.cd-prog__feature + .cd-prog__feature[b-c2zhu94x46]::before,
.cd-prog__feature + .cd-prog__desc + .cd-prog__feature[b-c2zhu94x46]::before {
    content: ', ';
    color: var(--rw-text-faint);
    cursor: default;
    border: none;
}

/* Subclass feature accent */
.cd-prog__feature--subclass[b-c2zhu94x46] {
    color: var(--rw-gold-light);
}

.cd-prog__feature--subclass:hover[b-c2zhu94x46] {
    color: var(--rw-gold-glow);
}

.cd-prog__feature--subclass.cd-prog__feature--expanded[b-c2zhu94x46] {
    color: var(--rw-gold-glow);
    border-bottom-color: var(--rw-gold);
}

.cd-prog__sc-badge[b-c2zhu94x46] {
    font-size: 0.6rem;
    color: var(--rw-gold-glow);
    vertical-align: super;
    margin-left: 0.1rem;
}

/* --- Feature Description (expanded) --- */
.cd-prog__desc[b-c2zhu94x46] {
    display: block;
    margin: 0.35rem 0 0.5rem 0;
    padding: 0.5rem 0.65rem;
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    background: rgba(0, 0, 0, 0.15);
    border-left: 2px solid var(--rw-verdant);
    border-radius: 0 4px 4px 0;
    line-height: 1.55;
}

.cd-prog__feature--subclass + .cd-prog__desc[b-c2zhu94x46] {
    border-left-color: var(--rw-gold);
}

.cd-prog__choices[b-c2zhu94x46] {
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

.cd-prog__dash[b-c2zhu94x46] {
    color: var(--rw-text-faint);
    font-size: 0.8rem;
}

/* --- Loading --- */
.cd-prog-loading[b-c2zhu94x46] {
    padding: 3rem 1rem;
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text-faint);
}
/* /Components/Pages/Compendium/ClassList.razor.rz.scp.css */
/* === Class List Grid === */
.class-grid[b-z0333vf64w] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}

.class-card[b-z0333vf64w] {
    display: flex;
    flex-direction: column;
    border-radius: var(--rw-radius-lg, 10px);
    overflow: hidden;
    background: var(--rw-glass-bg, rgba(15, 25, 20, 0.6));
    border: 1px solid var(--rw-border, rgba(255, 255, 255, 0.06));
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.class-card:hover[b-z0333vf64w] {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    border-color: var(--rw-gold, #c4a040);
}

.class-card__portrait[b-z0333vf64w] {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.class-card__portrait img[b-z0333vf64w] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    transition: transform 0.3s ease;
}

.class-card:hover .class-card__portrait img[b-z0333vf64w] {
    transform: scale(1.05);
}

.class-card__portrait-overlay[b-z0333vf64w] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 50%, var(--rw-bg-void, #0a0f0d) 100%);
}

.class-card__info[b-z0333vf64w] {
    padding: 0.75rem 1rem 1rem;
    margin-top: -1rem;
    position: relative;
    z-index: 1;
}

.class-card__name[b-z0333vf64w] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold, #c4a040);
    margin: 0 0 0.35rem;
}

.class-card__detail[b-z0333vf64w] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    margin: 0;
    line-height: 1.5;
}

@media (max-width: 480px) {
    .class-grid[b-z0333vf64w] {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }

    .class-card__portrait[b-z0333vf64w] {
        height: 150px;
    }
}

@media (pointer: coarse) {
    .class-card:active[b-z0333vf64w] {
        transform: scale(0.98);
        transition: transform 0.1s ease;
    }
}
/* /Components/Pages/Compendium/RaceList.razor.rz.scp.css */
/* === Race List — Portrait Card Grid === */
.race-grid[b-8bb49a3chx] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}

.race-card[b-8bb49a3chx] {
    display: flex;
    flex-direction: column;
    border-radius: var(--rw-radius-lg, 10px);
    overflow: hidden;
    background: var(--rw-glass-bg, rgba(15, 25, 20, 0.6));
    border: 1px solid var(--rw-border, rgba(255, 255, 255, 0.06));
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.race-card:hover[b-8bb49a3chx] {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 0 16px rgba(196, 160, 64, 0.08);
    border-color: var(--rw-gold, #c4a040);
}

/* Portrait section */
.race-card__portrait[b-8bb49a3chx] {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--rw-bg-moss-2, #1a2a20);
}

.race-card__portrait > img[b-8bb49a3chx] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
    transition: transform 0.35s ease;
}

.race-card:hover .race-card__portrait > img[b-8bb49a3chx] {
    transform: scale(1.05);
}

/* Gradient fade into the info section */
.race-card__portrait-overlay[b-8bb49a3chx] {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        transparent 40%,
        rgba(10, 15, 13, 0.5) 70%,
        var(--rw-bg-void, #0a0f0d) 100%
    );
    pointer-events: none;
}

/* Info overlaps into the portrait gradient */
.race-card__info[b-8bb49a3chx] {
    padding: 0.5rem 0.75rem 0.75rem;
    margin-top: -1.5rem;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.race-card__name[b-8bb49a3chx] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    color: var(--rw-gold, #c4a040);
    margin: 0;
    line-height: 1.2;
}

/* Stat row — size + speed side by side */
.race-card__stats[b-8bb49a3chx] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.race-card__stat[b-8bb49a3chx] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-text-dim, #8aab9e);
    line-height: 1;
}

.race-card__icon[b-8bb49a3chx] {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    opacity: 0.6;
}

/* Trait pills — vision, etc. */
.race-card__traits[b-8bb49a3chx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.race-card__trait[b-8bb49a3chx] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.68rem;
    color: var(--rw-text-dim, #8aab9e);
    background: rgba(30, 60, 50, 0.4);
    border: 1px solid rgba(61, 138, 85, 0.15);
    border-radius: var(--rw-radius-pill, 999px);
    padding: 0.1rem 0.45rem;
    line-height: 1.3;
}

.race-card__trait--vision[b-8bb49a3chx] {
    color: #a8c4d4;
    background: rgba(30, 50, 65, 0.4);
    border-color: rgba(80, 140, 180, 0.15);
}

/* Subrace count — subtle footer line */
.race-card__subraces[b-8bb49a3chx] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.65rem;
    color: var(--rw-gold-light, #dab855);
    opacity: 0.55;
    letter-spacing: 0.02em;
}

/* Fallback for races without a generated portrait */
.race-card__fallback[b-8bb49a3chx] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--rw-bg-moss-2, #1a2a20) 0%, var(--rw-bg-void, #0a0f0d) 100%);
}

.race-card__fallback img[b-8bb49a3chx] {
    width: 64px;
    height: 64px;
    object-fit: contain;
    opacity: 0.35;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.5));
}

/* Responsive — 2 columns on narrow screens */
@media (max-width: 480px) {
    .race-grid[b-8bb49a3chx] {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.6rem;
    }

    .race-card__name[b-8bb49a3chx] {
        font-size: 0.95rem;
    }

    .race-card__stat[b-8bb49a3chx] {
        font-size: 0.68rem;
    }

    .race-card__trait[b-8bb49a3chx] {
        font-size: 0.6rem;
    }
}

/* Touch devices */
@media (pointer: coarse) {
    .race-card:active[b-8bb49a3chx] {
        transform: scale(0.98);
        transition: transform 0.1s ease;
    }
}
/* /Components/Pages/Homebrew/HomebrewDashboard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   Homebrew Dashboard — Artificer's Workshop
   ═══════════════════════════════════════════════════ */

/* ── Layout ── */
.brew-workshop[b-t13ljogsch] {
    max-width: 1100px;
    margin: 0 auto;
}

/* ── Header ── */
.brew-header[b-t13ljogsch] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.brew-title[b-t13ljogsch] {
    font-family: var(--rw-font-display);
    font-size: 2.1rem;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.02em;
}

.brew-subtitle[b-t13ljogsch] {
    font-family: var(--rw-font-body);
    color: var(--rw-text-dim);
    font-size: 1rem;
    margin: 0.2rem 0 0;
}

/* ── Gold CTA Button ── */
.brew-create-btn[b-t13ljogsch] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.3rem;
    background: var(--rw-gold);
    border: 1px solid var(--rw-gold-light);
    border-radius: var(--rw-radius-md);
    color: var(--rw-bg-void);
    font-family: var(--rw-font-sc);
    font-weight: 700;
    font-size: 0.88rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all var(--rw-transition);
    flex-shrink: 0;
}

.brew-create-btn:hover[b-t13ljogsch] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 24px rgba(196, 160, 64, 0.25);
    transform: translateY(-1px);
}

.brew-create-btn svg[b-t13ljogsch] {
    opacity: 0.8;
}

/* ── Tapered Divider ── */
.brew-divider[b-t13ljogsch] {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--rw-border) 15%, var(--rw-sage-dark) 50%, var(--rw-border) 85%, transparent 100%);
    margin: 1.25rem 0 1.75rem;
    position: relative;
}

.brew-divider[b-t13ljogsch]::after {
    content: '\25C7';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--rw-bg-bark);
    padding: 0 0.75rem;
    color: var(--rw-sage-dark);
    font-size: 0.6rem;
}

/* ── Create Source Panel ── */
.brew-create-panel[b-t13ljogsch] {
    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-gold);
    border-radius: var(--rw-radius-lg);
    padding: 1.75rem;
    margin-bottom: 1.75rem;
    position: relative;
    overflow: hidden;
    animation: brew-panel-enter-b-t13ljogsch 0.3s ease;
}

.brew-create-panel[b-t13ljogsch]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 15%, var(--rw-gold) 50%, transparent 85%);
}

.brew-panel-title[b-t13ljogsch] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.3rem;
    margin: 0 0 0.25rem;
}

.brew-panel-hint[b-t13ljogsch] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    margin: 0 0 1.25rem;
}

.brew-create-fields[b-t13ljogsch] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.brew-panel-actions[b-t13ljogsch] {
    display: flex;
    gap: 0.75rem;
}

/* ── Form Elements ── */
.brew-field[b-t13ljogsch] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.brew-label[b-t13ljogsch] {
    font-family: var(--rw-font-sc);
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.brew-input[b-t13ljogsch] {
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    padding: 0.55rem 0.8rem;
    font-size: 0.95rem;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
    outline: none;
}

.brew-input:focus[b-t13ljogsch] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.brew-input[b-t13ljogsch]::placeholder {
    color: var(--rw-sage-dark);
}

/* ── Buttons ── */
.brew-btn[b-t13ljogsch] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.15rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition: all var(--rw-transition);
    border: 1px solid transparent;
}

.brew-btn-create[b-t13ljogsch] {
    background: var(--rw-verdant);
    color: #fff;
    border-color: var(--rw-verdant);
}

.brew-btn-create:hover:not(:disabled)[b-t13ljogsch] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 16px rgba(61, 138, 85, 0.3);
}

.brew-btn-create:disabled[b-t13ljogsch] {
    opacity: 0.45;
    cursor: not-allowed;
}

.brew-btn-ghost[b-t13ljogsch] {
    background: transparent;
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
}

.brew-btn-ghost:hover[b-t13ljogsch] {
    color: var(--rw-text);
    border-color: var(--rw-sage-dark);
    background: rgba(188, 206, 198, 0.04);
}

/* ── Source Grid ── */
.brew-source-grid[b-t13ljogsch] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.25rem;
}

/* ── Source Card ── */
.brew-source-card[b-t13ljogsch] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    transition: all var(--rw-transition);
    display: flex;
    flex-direction: column;
    animation: brew-card-enter-b-t13ljogsch 0.4s ease backwards;
}

.brew-source-card:nth-child(1)[b-t13ljogsch] { animation-delay: 0.04s; }
.brew-source-card:nth-child(2)[b-t13ljogsch] { animation-delay: 0.08s; }
.brew-source-card:nth-child(3)[b-t13ljogsch] { animation-delay: 0.12s; }
.brew-source-card:nth-child(4)[b-t13ljogsch] { animation-delay: 0.16s; }
.brew-source-card:nth-child(5)[b-t13ljogsch] { animation-delay: 0.20s; }
.brew-source-card:nth-child(6)[b-t13ljogsch] { animation-delay: 0.24s; }

.brew-source-card:hover[b-t13ljogsch] {
    border-color: var(--rw-verdant-deep);
    box-shadow: var(--rw-shadow), var(--rw-glow-verdant);
    transform: translateY(-2px);
}

/* Accent stripe */
.brew-source-accent[b-t13ljogsch] {
    height: 3px;
    background: linear-gradient(90deg, transparent 10%, var(--rw-verdant-deep) 50%, transparent 90%);
    transition: background var(--rw-transition-slow);
}

.brew-source--published .brew-source-accent[b-t13ljogsch] {
    background: linear-gradient(90deg, transparent 10%, var(--rw-gold) 50%, transparent 90%);
}

.brew-source--published:hover[b-t13ljogsch] {
    border-color: rgba(196, 160, 64, 0.3);
    box-shadow: var(--rw-shadow), var(--rw-glow-candle);
}

/* Card body */
.brew-source-body[b-t13ljogsch] {
    padding: 1.25rem 1.25rem 0.75rem;
    flex: 1;
}

.brew-source-top[b-t13ljogsch] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.4rem;
}

.brew-source-name[b-t13ljogsch] {
    font-family: var(--rw-font-display);
    font-size: 1.2rem;
    margin: 0;
    line-height: 1.3;
}

.brew-source-name a[b-t13ljogsch] {
    color: var(--rw-text-bright);
    text-decoration: none;
    transition: color var(--rw-transition);
}

.brew-source-name a:hover[b-t13ljogsch] {
    color: var(--rw-verdant-bright);
}

/* Badges */
.brew-badge[b-t13ljogsch] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.18rem 0.55rem;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
    flex-shrink: 0;
    margin-top: 0.15rem;
}

.brew-badge--published[b-t13ljogsch] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.22);
}

.brew-badge--private[b-t13ljogsch] {
    background: rgba(90, 120, 104, 0.08);
    color: var(--rw-sage-muted);
    border: 1px solid rgba(90, 120, 104, 0.12);
}

/* Description */
.brew-source-desc[b-t13ljogsch] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    margin: 0 0 0.6rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Meta row */
.brew-source-meta[b-t13ljogsch] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.brew-meta-item[b-t13ljogsch] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
}

.brew-meta-item svg[b-t13ljogsch] {
    opacity: 0.6;
}

/* Action bar */
.brew-source-actions[b-t13ljogsch] {
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
    padding: 0.5rem 1.25rem 1rem;
    opacity: 0.5;
    transition: opacity var(--rw-transition);
}

.brew-source-card:hover .brew-source-actions[b-t13ljogsch] {
    opacity: 1;
}

.brew-action-btn[b-t13ljogsch] {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(188, 206, 198, 0.04);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all var(--rw-transition);
    padding: 0;
}

.brew-action-btn:hover[b-t13ljogsch] {
    color: var(--rw-text);
    background: rgba(188, 206, 198, 0.08);
    border-color: var(--rw-sage-dark);
}

.brew-action--active[b-t13ljogsch] {
    color: var(--rw-verdant);
}

.brew-action--danger:hover[b-t13ljogsch] {
    color: var(--rw-blood-bright);
    background: rgba(139, 37, 0, 0.1);
    border-color: rgba(139, 37, 0, 0.2);
}

/* ── Empty State ── */
.brew-empty[b-t13ljogsch] {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    text-align: center;
}

.brew-empty-scene[b-t13ljogsch] {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
}

.brew-empty-scene-img[b-t13ljogsch] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    filter: brightness(0.7);
}

.brew-empty-scene-overlay[b-t13ljogsch] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, var(--rw-bg-void, #0a0f0d) 100%);
}

.brew-empty-body[b-t13ljogsch] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 2rem 2.5rem;
    margin-top: -2rem;
    position: relative;
    z-index: 1;
}

.brew-empty-title[b-t13ljogsch] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.4rem;
    margin: 0;
}

.brew-empty-text[b-t13ljogsch] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    max-width: 420px;
    margin: 0;
    line-height: 1.6;
}

/* ── Modal Overlay ── */
.brew-modal-overlay[b-t13ljogsch] {
    position: fixed;
    inset: 0;
    background: rgba(6, 10, 8, 0.75);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    animation: brew-overlay-in-b-t13ljogsch 0.2s ease;
}

.brew-modal[b-t13ljogsch] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    width: 100%;
    max-width: 480px;
    overflow: hidden;
    animation: brew-modal-in-b-t13ljogsch 0.25s ease;
}

.brew-modal--sm[b-t13ljogsch] {
    max-width: 380px;
}

.brew-modal-header[b-t13ljogsch] {
    padding: 1.25rem 1.5rem 0;
}

.brew-modal-title[b-t13ljogsch] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.2rem;
    margin: 0;
}

.brew-modal-body[b-t13ljogsch] {
    padding: 1rem 1.5rem;
}

.brew-modal-text[b-t13ljogsch] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0 0 1rem;
}

.brew-modal-footer[b-t13ljogsch] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 0.75rem 1.5rem 1.25rem;
}

.brew-btn-danger[b-t13ljogsch] {
    background: var(--rw-blood-bright);
    color: #fff;
    border-color: var(--rw-blood-bright);
}

.brew-btn-danger:hover[b-t13ljogsch] {
    background: var(--rw-ember);
    box-shadow: 0 0 16px rgba(139, 37, 0, 0.3);
}

.brew-select[b-t13ljogsch] {
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    padding: 0.55rem 0.8rem;
    font-size: 0.95rem;
    width: 100%;
    outline: none;
    transition: border-color var(--rw-transition);
    cursor: pointer;
}

.brew-select:focus[b-t13ljogsch] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.brew-error[b-t13ljogsch] {
    color: var(--rw-blood-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    margin-top: 0.5rem;
}

@keyframes brew-overlay-in-b-t13ljogsch {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes brew-modal-in-b-t13ljogsch {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* ── Animations ── */
@keyframes brew-panel-enter-b-t13ljogsch {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes brew-card-enter-b-t13ljogsch {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .brew-header[b-t13ljogsch] {
        flex-direction: column;
        gap: 1rem;
    }

    .brew-create-fields[b-t13ljogsch] {
        grid-template-columns: 1fr;
    }

    .brew-source-grid[b-t13ljogsch] {
        grid-template-columns: 1fr;
    }

    .brew-source-actions[b-t13ljogsch] {
        opacity: 1;
    }
}

@media (max-width: 480px) {
    .brew-source-grid[b-t13ljogsch] {
        gap: 0.75rem;
    }
}
/* /Components/Pages/Homebrew/HomebrewSourceDetail.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   Homebrew Source Detail — The Crafting Table
   ═══════════════════════════════════════════════════ */

/* ── Layout ── */
.brew-detail[b-j3q4exiy8x] {
    max-width: 1100px;
    margin: 0 auto;
}

/* ── Back Link ── */
.brew-back[b-j3q4exiy8x] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    text-decoration: none;
    transition: color var(--rw-transition);
    margin-bottom: 1rem;
}

.brew-back:hover[b-j3q4exiy8x] {
    color: var(--rw-verdant-bright);
}

.brew-back svg[b-j3q4exiy8x] {
    width: 12px;
    height: 12px;
}

/* ── Detail Header ── */
.brew-detail-header[b-j3q4exiy8x] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.brew-detail-title[b-j3q4exiy8x] {
    font-family: var(--rw-font-display);
    font-size: 2.1rem;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.02em;
}

/* Export button */
.brew-btn-export[b-j3q4exiy8x] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1rem;
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all var(--rw-transition);
    flex-shrink: 0;
}

.brew-btn-export:hover[b-j3q4exiy8x] {
    color: var(--rw-verdant-bright);
    border-color: var(--rw-verdant-deep);
    background: rgba(61, 138, 85, 0.06);
}

.brew-btn-export svg[b-j3q4exiy8x] {
    width: 14px;
    height: 14px;
    opacity: 0.7;
}

/* ── Tapered Divider ── */
.brew-divider[b-j3q4exiy8x] {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--rw-border) 15%, var(--rw-sage-dark) 50%, var(--rw-border) 85%, transparent 100%);
    margin: 1.25rem 0 1.5rem;
    position: relative;
}

.brew-divider[b-j3q4exiy8x]::after {
    content: '\25C7';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--rw-bg-bark);
    padding: 0 0.75rem;
    color: var(--rw-sage-dark);
    font-size: 0.6rem;
}

/* ═══════════════════════════════════════
   Content Type Tabs
   ═══════════════════════════════════════ */

.brew-type-tabs[b-j3q4exiy8x] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.brew-type-tab[b-j3q4exiy8x] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1rem;
    background: rgba(188, 206, 198, 0.03);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--tab-color, var(--rw-text-dim));
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.brew-type-tab svg[b-j3q4exiy8x] {
    width: 16px;
    height: 16px;
    opacity: 0.7;
    transition: opacity var(--rw-transition);
}

.brew-type-tab:hover[b-j3q4exiy8x] {
    background: var(--tab-hover, rgba(188, 206, 198, 0.06));
    border-color: var(--tab-color, var(--rw-sage-dark));
}

.brew-type-tab.active[b-j3q4exiy8x] {
    background: var(--tab-bg, rgba(188, 206, 198, 0.08));
    border-color: var(--tab-color, var(--rw-sage-dark));
    box-shadow: 0 0 12px var(--tab-glow, transparent);
}

.brew-type-tab.active svg[b-j3q4exiy8x] {
    opacity: 1;
}

/* Type-specific tab colors */
.brew-tab--monster[b-j3q4exiy8x] {
    --tab-color: var(--rw-blood-bright);
    --tab-bg: rgba(184, 58, 26, 0.1);
    --tab-hover: rgba(184, 58, 26, 0.06);
    --tab-glow: rgba(184, 58, 26, 0.1);
}

.brew-tab--spell[b-j3q4exiy8x] {
    --tab-color: var(--rw-arcane-blue);
    --tab-bg: rgba(58, 128, 168, 0.1);
    --tab-hover: rgba(58, 128, 168, 0.06);
    --tab-glow: rgba(58, 128, 168, 0.1);
}

.brew-tab--magic[b-j3q4exiy8x] {
    --tab-color: var(--rw-gold);
    --tab-bg: rgba(196, 160, 64, 0.08);
    --tab-hover: rgba(196, 160, 64, 0.05);
    --tab-glow: rgba(196, 160, 64, 0.1);
}

.brew-tab--class[b-j3q4exiy8x] {
    --tab-color: var(--rw-verdant-bright);
    --tab-bg: rgba(76, 153, 76, 0.1);
    --tab-hover: rgba(76, 153, 76, 0.06);
    --tab-glow: rgba(76, 153, 76, 0.1);
}

.brew-tab--race[b-j3q4exiy8x] {
    --tab-color: var(--rw-gold-light);
    --tab-bg: rgba(212, 180, 96, 0.08);
    --tab-hover: rgba(212, 180, 96, 0.05);
    --tab-glow: rgba(212, 180, 96, 0.08);
}

.brew-tab--background[b-j3q4exiy8x] {
    --tab-color: var(--rw-text);
    --tab-bg: rgba(180, 180, 180, 0.06);
    --tab-hover: rgba(180, 180, 180, 0.04);
    --tab-glow: rgba(180, 180, 180, 0.06);
}

.brew-tab--feat[b-j3q4exiy8x] {
    --tab-color: #e6a840;
    --tab-bg: rgba(230, 168, 64, 0.08);
    --tab-hover: rgba(230, 168, 64, 0.05);
    --tab-glow: rgba(230, 168, 64, 0.08);
}

.brew-tab--equip[b-j3q4exiy8x] {
    --tab-color: var(--rw-sage-tan);
    --tab-bg: rgba(138, 170, 152, 0.08);
    --tab-hover: rgba(138, 170, 152, 0.05);
    --tab-glow: rgba(138, 170, 152, 0.08);
}

/* ═══════════════════════════════════════
   Success Toast
   ═══════════════════════════════════════ */

.brew-toast[b-j3q4exiy8x] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
    border-radius: var(--rw-radius-md);
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    margin-bottom: 1.25rem;
    animation: brew-toast-enter-b-j3q4exiy8x 0.3s ease;
}

.brew-toast svg[b-j3q4exiy8x] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════
   Editor Panels
   ═══════════════════════════════════════ */

.brew-editor[b-j3q4exiy8x] {
    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-lg);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    position: relative;
    overflow: hidden;
    animation: brew-editor-enter-b-j3q4exiy8x 0.35s ease;
}

/* Type-specific accent stripe */
.brew-editor[b-j3q4exiy8x]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 15%, var(--editor-accent, var(--rw-verdant)) 50%, transparent 85%);
}

.brew-editor--class[b-j3q4exiy8x]      { --editor-accent: var(--rw-verdant-bright); border-color: rgba(76, 153, 76, 0.15); }
.brew-editor--race[b-j3q4exiy8x]       { --editor-accent: var(--rw-gold-light);    border-color: rgba(212, 180, 96, 0.15); }
.brew-editor--background[b-j3q4exiy8x] { --editor-accent: var(--rw-text-dim);      border-color: rgba(180, 180, 180, 0.1); }
.brew-editor--feat[b-j3q4exiy8x]       { --editor-accent: #e6a840;                 border-color: rgba(230, 168, 64, 0.15); }
.brew-editor--monster[b-j3q4exiy8x]    { --editor-accent: var(--rw-blood-bright);  border-color: rgba(184, 58, 26, 0.15); }
.brew-editor--spell[b-j3q4exiy8x]      { --editor-accent: var(--rw-arcane-blue);   border-color: rgba(58, 128, 168, 0.15); }
.brew-editor--magic[b-j3q4exiy8x]      { --editor-accent: var(--rw-gold);          border-color: var(--rw-border-gold); }
.brew-editor--equip[b-j3q4exiy8x]      { --editor-accent: var(--rw-sage-tan);      border-color: rgba(138, 170, 152, 0.15); }

.brew-editor-title[b-j3q4exiy8x] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.2rem;
    margin: 0 0 1.25rem;
}

/* Editor field grid */
.brew-editor-row[b-j3q4exiy8x] {
    display: grid;
    gap: 0.85rem;
    margin-bottom: 0.85rem;
}

.brew-grid-4[b-j3q4exiy8x] { grid-template-columns: 2fr 1.5fr 1fr 1.5fr; }
.brew-grid-3[b-j3q4exiy8x] { grid-template-columns: 1fr 1fr 1fr; }
.brew-grid-2[b-j3q4exiy8x] { grid-template-columns: 1fr 1fr; }
.brew-grid-5[b-j3q4exiy8x] { grid-template-columns: 2fr 1.5fr 1fr 1fr 1.5fr; }

.brew-grid-stats[b-j3q4exiy8x] {
    grid-template-columns: repeat(4, 1fr);
}

/* ── Form Elements (shared) ── */
.brew-field[b-j3q4exiy8x] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.brew-label[b-j3q4exiy8x] {
    font-family: var(--rw-font-sc);
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.brew-input[b-j3q4exiy8x],
.brew-select[b-j3q4exiy8x] {
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    padding: 0.5rem 0.75rem;
    font-size: 0.92rem;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
    outline: none;
    width: 100%;
}

.brew-input:focus[b-j3q4exiy8x],
.brew-select:focus[b-j3q4exiy8x] {
    border-color: var(--editor-accent, var(--rw-gold));
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.brew-input[b-j3q4exiy8x]::placeholder {
    color: var(--rw-sage-dark);
}

.brew-select[b-j3q4exiy8x] {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235a7868' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    padding-right: 2rem;
    cursor: pointer;
}

.brew-select option[b-j3q4exiy8x] {
    background: var(--rw-bg-bark);
    color: var(--rw-text);
}

.brew-textarea[b-j3q4exiy8x] {
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    padding: 0.6rem 0.75rem;
    font-size: 0.92rem;
    resize: vertical;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
    outline: none;
    width: 100%;
    min-height: 70px;
}

.brew-textarea:focus[b-j3q4exiy8x] {
    border-color: var(--editor-accent, var(--rw-gold));
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.brew-textarea[b-j3q4exiy8x]::placeholder {
    color: var(--rw-sage-dark);
}

/* Checkboxes */
.brew-check[b-j3q4exiy8x] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    padding: 0.35rem 0;
}

.brew-check input[type="checkbox"][b-j3q4exiy8x] {
    appearance: none;
    width: 16px;
    height: 16px;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: 3px;
    cursor: pointer;
    transition: all var(--rw-transition);
    position: relative;
    flex-shrink: 0;
}

.brew-check input[type="checkbox"]:checked[b-j3q4exiy8x] {
    background: var(--editor-accent, var(--rw-verdant));
    border-color: var(--editor-accent, var(--rw-verdant));
}

.brew-check input[type="checkbox"]:checked[b-j3q4exiy8x]::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 5px;
    width: 4px;
    height: 8px;
    border: solid var(--rw-bg-void);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.brew-check-label[b-j3q4exiy8x] {
    font-family: var(--rw-font-ui);
    color: var(--rw-text-dim);
    font-size: 0.85rem;
}

/* ── Ability Scores ── */
.brew-ability-row[b-j3q4exiy8x] {
    display: flex;
    gap: 0.6rem;
    justify-content: center;
    margin: 0.75rem 0 1rem;
}

.brew-ability[b-j3q4exiy8x] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
}

.brew-ability-label[b-j3q4exiy8x] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.brew-ability-input[b-j3q4exiy8x] {
    width: 52px;
    height: 52px;
    text-align: center;
    font-size: 1.05rem;
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    outline: none;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.brew-ability-input:focus[b-j3q4exiy8x] {
    border-color: var(--rw-blood-bright);
    box-shadow: 0 0 0 2px rgba(184, 58, 26, 0.12);
}

/* Hide number spinner */
.brew-ability-input[b-j3q4exiy8x]::-webkit-inner-spin-button,
.brew-ability-input[b-j3q4exiy8x]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.brew-ability-input[b-j3q4exiy8x] {
    -moz-appearance: textfield;
}

/* ── Editor Actions ── */
.brew-hint[b-j3q4exiy8x] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    font-style: italic;
    margin: 0.5rem 0 0;
}

.brew-editor-actions[b-j3q4exiy8x] {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

/* ── Buttons ── */
.brew-btn[b-j3q4exiy8x] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.15rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition: all var(--rw-transition);
    border: 1px solid transparent;
}

.brew-btn-create[b-j3q4exiy8x] {
    background: var(--rw-verdant);
    color: #fff;
    border-color: var(--rw-verdant);
}

.brew-btn-create:hover:not(:disabled)[b-j3q4exiy8x] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 16px rgba(61, 138, 85, 0.3);
}

.brew-btn-create:disabled[b-j3q4exiy8x] {
    opacity: 0.45;
    cursor: not-allowed;
}

.brew-btn-ghost[b-j3q4exiy8x] {
    background: transparent;
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
}

.brew-btn-ghost:hover[b-j3q4exiy8x] {
    color: var(--rw-text);
    border-color: var(--rw-sage-dark);
    background: rgba(188, 206, 198, 0.04);
}

/* ═══════════════════════════════════════
   Content Grid
   ═══════════════════════════════════════ */

.brew-content-grid[b-j3q4exiy8x] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.85rem;
    margin-top: 0.5rem;
}

.brew-content-card[b-j3q4exiy8x] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    display: flex;
    transition: all var(--rw-transition);
    animation: brew-card-enter-b-j3q4exiy8x 0.35s ease backwards;
}

.brew-content-card:nth-child(1)[b-j3q4exiy8x] { animation-delay: 0.03s; }
.brew-content-card:nth-child(2)[b-j3q4exiy8x] { animation-delay: 0.06s; }
.brew-content-card:nth-child(3)[b-j3q4exiy8x] { animation-delay: 0.09s; }
.brew-content-card:nth-child(4)[b-j3q4exiy8x] { animation-delay: 0.12s; }
.brew-content-card:nth-child(5)[b-j3q4exiy8x] { animation-delay: 0.15s; }
.brew-content-card:nth-child(6)[b-j3q4exiy8x] { animation-delay: 0.18s; }
.brew-content-card:nth-child(7)[b-j3q4exiy8x] { animation-delay: 0.21s; }
.brew-content-card:nth-child(8)[b-j3q4exiy8x] { animation-delay: 0.24s; }
.brew-content-card:nth-child(9)[b-j3q4exiy8x] { animation-delay: 0.27s; }

.brew-content-card:hover[b-j3q4exiy8x] {
    border-color: var(--rw-sage-dark);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
    transform: translateY(-1px);
}

/* Type-colored left stripe */
.brew-content-stripe[b-j3q4exiy8x] {
    width: 3px;
    flex-shrink: 0;
    background: var(--rw-sage-dark);
    transition: background var(--rw-transition);
}

/* Type-specific stripe colors using data attribute */
[data-ctype="Monster"] .brew-content-stripe[b-j3q4exiy8x]   { background: var(--rw-blood-bright); }
[data-ctype="Spell"] .brew-content-stripe[b-j3q4exiy8x]     { background: var(--rw-arcane-blue); }
[data-ctype="MagicItem"] .brew-content-stripe[b-j3q4exiy8x] { background: var(--rw-gold); }
[data-ctype="Equipment"] .brew-content-stripe[b-j3q4exiy8x] { background: var(--rw-sage-tan); }

.brew-content-body[b-j3q4exiy8x] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 1rem;
    gap: 0.75rem;
}

.brew-content-info[b-j3q4exiy8x] {
    flex: 1;
    min-width: 0;
}

.brew-content-type-badge[b-j3q4exiy8x] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    display: block;
    margin-bottom: 0.15rem;
}

.brew-content-name[b-j3q4exiy8x] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.brew-content-date[b-j3q4exiy8x] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

/* Stat chips */
.brew-content-chips[b-j3q4exiy8x] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.brew-content-chip[b-j3q4exiy8x] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--rw-text-dim);
}

/* Delete button on card */
.brew-action-btn[b-j3q4exiy8x] {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all var(--rw-transition);
    padding: 0;
    opacity: 0;
    flex-shrink: 0;
}

.brew-content-card:hover .brew-action-btn[b-j3q4exiy8x] {
    opacity: 1;
}

.brew-action-btn:hover[b-j3q4exiy8x] {
    color: var(--rw-blood-bright);
    background: rgba(139, 37, 0, 0.1);
    border-color: rgba(139, 37, 0, 0.15);
}

/* ── Empty Content ── */
.brew-empty-content[b-j3q4exiy8x] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.brew-empty-content p[b-j3q4exiy8x] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    margin: 0;
}

/* ═══════════════════════════════════════
   Export Modal
   ═══════════════════════════════════════ */

.brew-modal-overlay[b-j3q4exiy8x] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    padding: 2rem;
    animation: brew-overlay-enter-b-j3q4exiy8x 0.2s ease;
}

.brew-modal[b-j3q4exiy8x] {
    background: linear-gradient(160deg, var(--rw-bg-panel) 0%, var(--rw-bg-bark) 100%);
    border: 1px solid var(--rw-sage-dark);
    border-radius: var(--rw-radius-lg);
    width: 100%;
    max-width: 720px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: brew-modal-enter-b-j3q4exiy8x 0.3s ease;
    position: relative;
}

.brew-modal[b-j3q4exiy8x]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 15%, var(--rw-verdant) 50%, transparent 85%);
}

.brew-modal-header[b-j3q4exiy8x] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--rw-border);
}

.brew-modal-title[b-j3q4exiy8x] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.2rem;
    margin: 0;
}

.brew-modal-close[b-j3q4exiy8x] {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-faint);
    cursor: pointer;
    font-size: 0.85rem;
    transition: all var(--rw-transition);
    padding: 0;
}

.brew-modal-close:hover[b-j3q4exiy8x] {
    color: var(--rw-text);
    border-color: var(--rw-sage-dark);
}

.brew-modal-body[b-j3q4exiy8x] {
    padding: 1.25rem 1.5rem;
    overflow-y: auto;
    flex: 1;
}

.brew-export-text[b-j3q4exiy8x] {
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 0.78rem;
    line-height: 1.5;
    resize: none;
    min-height: 300px;
}

.brew-modal--sm[b-j3q4exiy8x] {
    max-width: 380px;
}

.brew-modal-text[b-j3q4exiy8x] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0 0 1rem;
}

.brew-modal-footer[b-j3q4exiy8x] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--rw-border);
}

.brew-btn-danger[b-j3q4exiy8x] {
    background: var(--rw-blood-bright);
    color: #fff;
    border-color: var(--rw-blood-bright);
}

.brew-btn-danger:hover[b-j3q4exiy8x] {
    background: var(--rw-ember);
    box-shadow: 0 0 16px rgba(139, 37, 0, 0.3);
}

.brew-btn-copy[b-j3q4exiy8x] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border-color: rgba(61, 138, 85, 0.25);
}

.brew-btn-copy:hover[b-j3q4exiy8x] {
    background: rgba(61, 138, 85, 0.2);
    border-color: var(--rw-verdant);
}

.brew-btn-download[b-j3q4exiy8x] {
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.2);
}

.brew-btn-download:hover[b-j3q4exiy8x] {
    background: rgba(196, 160, 64, 0.18);
    border-color: var(--rw-gold);
}

/* ═══════════════════════════════════════
   Animations
   ═══════════════════════════════════════ */

@keyframes brew-editor-enter-b-j3q4exiy8x {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes brew-toast-enter-b-j3q4exiy8x {
    from { opacity: 0; transform: translateX(-10px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes brew-card-enter-b-j3q4exiy8x {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes brew-overlay-enter-b-j3q4exiy8x {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes brew-modal-enter-b-j3q4exiy8x {
    from { opacity: 0; transform: scale(0.96) translateY(8px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* ═══════════════════════════════════════
   Responsive
   ═══════════════════════════════════════ */

@media (max-width: 768px) {
    .brew-detail-header[b-j3q4exiy8x] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .brew-type-tabs[b-j3q4exiy8x] {
        gap: 0.4rem;
    }

    .brew-type-tab span[b-j3q4exiy8x] {
        display: none;
    }

    .brew-type-tab[b-j3q4exiy8x] {
        padding: 0.5rem 0.75rem;
    }

    .brew-editor-row.brew-grid-4[b-j3q4exiy8x],
    .brew-editor-row.brew-grid-5[b-j3q4exiy8x] {
        grid-template-columns: 1fr 1fr;
    }

    .brew-editor-row.brew-grid-stats[b-j3q4exiy8x] {
        grid-template-columns: 1fr 1fr;
    }

    .brew-ability-row[b-j3q4exiy8x] {
        flex-wrap: wrap;
    }

    .brew-ability-input[b-j3q4exiy8x] {
        width: 46px;
        height: 46px;
        font-size: 0.95rem;
    }

    .brew-content-grid[b-j3q4exiy8x] {
        grid-template-columns: 1fr;
    }

    .brew-action-btn[b-j3q4exiy8x] {
        opacity: 1;
    }

    .brew-modal-overlay[b-j3q4exiy8x] {
        padding: 1rem;
    }
}

@media (max-width: 480px) {
    .brew-editor-row.brew-grid-4[b-j3q4exiy8x],
    .brew-editor-row.brew-grid-5[b-j3q4exiy8x],
    .brew-editor-row.brew-grid-3[b-j3q4exiy8x] {
        grid-template-columns: 1fr;
    }

    .brew-ability-row[b-j3q4exiy8x] {
        gap: 0.5rem;
    }

    .brew-ability-input[b-j3q4exiy8x] {
        width: 42px;
        height: 42px;
    }

    .brew-modal-overlay[b-j3q4exiy8x] {
        padding: 0.5rem;
    }

    .brew-modal[b-j3q4exiy8x] {
        max-height: 90vh;
    }
}
/* /Components/Pages/Legal/AcceptTerms.razor.rz.scp.css */
.accept-terms-page[b-5l3rem4f6f] {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100dvh;
    padding: 2rem 1rem;
}

.accept-terms-card[b-5l3rem4f6f] {
    max-width: 860px;
    width: 100%;
    background: var(--rw-surface, #1e1e2e);
    border-radius: 12px;
    border: 1px solid var(--rw-border, rgba(255,255,255,0.08));
    overflow: hidden;
}

.accept-terms-header[b-5l3rem4f6f] {
    padding: 2rem 2.5rem 1rem;
    border-bottom: 1px solid var(--rw-border, rgba(255,255,255,0.08));
}

.accept-terms-header h3[b-5l3rem4f6f] {
    color: var(--rw-gold, #d4a843);
    margin-bottom: 0.5rem;
}

.accept-terms-header p[b-5l3rem4f6f] {
    color: var(--rw-text-muted, #888);
    font-size: 0.9rem;
    margin: 0;
}

.terms-scroll-container[b-5l3rem4f6f] {
    max-height: 55vh;
    overflow-y: auto;
    padding: 1.5rem 2.5rem;
    color: var(--rw-text, #e0e0e0);
    line-height: 1.7;
    font-size: 0.9rem;
}

.terms-scroll-container[b-5l3rem4f6f]::-webkit-scrollbar {
    width: 6px;
}

.terms-scroll-container[b-5l3rem4f6f]::-webkit-scrollbar-track {
    background: transparent;
}

.terms-scroll-container[b-5l3rem4f6f]::-webkit-scrollbar-thumb {
    background: var(--rw-border, rgba(255,255,255,0.15));
    border-radius: 3px;
}

.legal-meta[b-5l3rem4f6f] {
    font-size: 0.8rem;
    color: var(--rw-text-muted, #888);
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--rw-border, rgba(255,255,255,0.06));
}

.terms-scroll-container[b-5l3rem4f6f]  h1 {
    font-size: 1.5rem;
    color: var(--rw-gold, #d4a843);
}

.terms-scroll-container[b-5l3rem4f6f]  h2 {
    font-size: 1.1rem;
    color: var(--rw-text-bright, #f0f0f0);
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

.terms-scroll-container[b-5l3rem4f6f]  a {
    color: var(--rw-gold, #d4a843);
}

.accept-terms-footer[b-5l3rem4f6f] {
    padding: 1.5rem 2.5rem;
    border-top: 1px solid var(--rw-border, rgba(255,255,255,0.08));
    background: var(--rw-surface-alt, rgba(0,0,0,0.15));
}

.loading-state[b-5l3rem4f6f] {
    text-align: center;
    padding: 4rem;
    color: var(--rw-text-muted, #888);
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .accept-terms-header[b-5l3rem4f6f] {
        padding: 1.25rem 1.25rem 0.75rem;
    }

    .terms-scroll-container[b-5l3rem4f6f] {
        padding: 1rem 1.25rem;
        max-height: 50vh;
        -webkit-overflow-scrolling: touch;
    }

    .accept-terms-footer[b-5l3rem4f6f] {
        padding: 1rem 1.25rem;
    }
}

@media (max-width: 480px) {
    .accept-terms-page[b-5l3rem4f6f] {
        padding: 1rem 0.5rem;
    }

    .terms-scroll-container[b-5l3rem4f6f] {
        max-height: 45vh;
        padding: 0.75rem 1rem;
    }

    .accept-terms-header[b-5l3rem4f6f] {
        padding: 1rem;
    }

    .accept-terms-footer[b-5l3rem4f6f] {
        padding: 0.75rem 1rem;
    }
}
/* /Components/Pages/Legal/Attribution.razor.rz.scp.css */
.legal-page[b-qlsjh6w8jg] {
    max-width: 860px;
    margin: 2rem auto;
    padding: 0 1.5rem 3rem;
}

.legal-content[b-qlsjh6w8jg] {
    background: var(--rw-surface, #1e1e2e);
    border-radius: 12px;
    padding: 2.5rem 3rem;
    border: 1px solid var(--rw-border, rgba(255,255,255,0.08));
    color: var(--rw-text, #e0e0e0);
    line-height: 1.7;
}

.legal-content h1[b-qlsjh6w8jg] {
    font-size: 1.75rem;
    color: var(--rw-gold, #d4a843);
    margin-bottom: 1.5rem;
}

.legal-content h2[b-qlsjh6w8jg] {
    font-size: 1.25rem;
    color: var(--rw-text-bright, #f0f0f0);
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--rw-border, rgba(255,255,255,0.06));
}

.legal-content p[b-qlsjh6w8jg] {
    margin-bottom: 0.75rem;
}

.legal-content a[b-qlsjh6w8jg] {
    color: var(--rw-gold, #d4a843);
}

.legal-content strong[b-qlsjh6w8jg] {
    color: var(--rw-text-bright, #f0f0f0);
}

.legal-content hr[b-qlsjh6w8jg] {
    border-color: var(--rw-border, rgba(255,255,255,0.08));
    margin: 2rem 0 1rem;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .legal-page[b-qlsjh6w8jg] {
        margin: 1rem auto;
        padding: 0 0.75rem 2rem;
    }

    .legal-content[b-qlsjh6w8jg] {
        padding: 1.5rem 1.25rem;
    }
}

@media (max-width: 480px) {
    .legal-content[b-qlsjh6w8jg] {
        padding: 1rem;
        border-radius: 8px;
    }

    .legal-content h1[b-qlsjh6w8jg] {
        font-size: 1.4rem;
    }

    .legal-content h2[b-qlsjh6w8jg] {
        font-size: 1.1rem;
    }
}
/* /Components/Pages/Legal/Terms.razor.rz.scp.css */
.legal-page[b-9ju4fru7dd] {
    max-width: 860px;
    margin: 2rem auto;
    padding: 0 1.5rem 3rem;
}

.legal-content[b-9ju4fru7dd] {
    background: var(--rw-surface, #1e1e2e);
    border-radius: 12px;
    padding: 2.5rem 3rem;
    border: 1px solid var(--rw-border, rgba(255,255,255,0.08));
    color: var(--rw-text, #e0e0e0);
    line-height: 1.7;
}

.legal-meta[b-9ju4fru7dd] {
    font-size: 0.85rem;
    color: var(--rw-text-muted, #888);
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--rw-border, rgba(255,255,255,0.08));
}

.legal-content[b-9ju4fru7dd]  h1 {
    font-size: 1.75rem;
    color: var(--rw-gold, #d4a843);
    margin-bottom: 0.5rem;
}

.legal-content[b-9ju4fru7dd]  h2 {
    font-size: 1.25rem;
    color: var(--rw-text-bright, #f0f0f0);
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--rw-border, rgba(255,255,255,0.06));
}

.legal-content[b-9ju4fru7dd]  p {
    margin-bottom: 0.75rem;
}

.legal-content[b-9ju4fru7dd]  ul,
.legal-content[b-9ju4fru7dd]  ol {
    padding-left: 1.5rem;
    margin-bottom: 0.75rem;
}

.legal-content[b-9ju4fru7dd]  li {
    margin-bottom: 0.35rem;
}

.legal-content[b-9ju4fru7dd]  a {
    color: var(--rw-gold, #d4a843);
}

.legal-content[b-9ju4fru7dd]  strong {
    color: var(--rw-text-bright, #f0f0f0);
}

.legal-content[b-9ju4fru7dd]  hr {
    border-color: var(--rw-border, rgba(255,255,255,0.08));
    margin: 1.5rem 0;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .legal-page[b-9ju4fru7dd] {
        margin: 1rem auto;
        padding: 0 0.75rem 2rem;
    }

    .legal-content[b-9ju4fru7dd] {
        padding: 1.5rem 1.25rem;
    }
}

@media (max-width: 480px) {
    .legal-content[b-9ju4fru7dd] {
        padding: 1rem;
        border-radius: 8px;
    }

    .legal-content[b-9ju4fru7dd]  h1 {
        font-size: 1.4rem;
    }

    .legal-content[b-9ju4fru7dd]  h2 {
        font-size: 1.1rem;
    }
}
/* /Components/Pages/Marketing/WaitlistUnsubscribe.razor.rz.scp.css */
.rw-unsub-container[b-hykbc782hx] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 2rem 1rem;
    background-color: var(--rw-bg-primary, #070e14);
}

.rw-unsub-card[b-hykbc782hx] {
    max-width: 480px;
    width: 100%;
    background: var(--rw-panel-bg, #0f2028);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: 12px;
    padding: 2rem;
}

.rw-unsub-header[b-hykbc782hx] {
    text-align: center;
    margin-bottom: 1.5rem;
}

.rw-unsub-logo[b-hykbc782hx] {
    width: 140px;
    height: auto;
    margin-bottom: 1rem;
}

.rw-unsub-header h1[b-hykbc782hx] {
    font-family: 'MedievalSharp', 'Palatino Linotype', serif;
    font-size: 1.5rem;
    color: var(--rw-gold, #ecd06a);
    margin: 0;
}

.rw-unsub-email[b-hykbc782hx] {
    text-align: center;
    color: var(--rw-text-secondary, #8aab9e);
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

.rw-unsub-email strong[b-hykbc782hx] {
    color: var(--rw-text-primary, #bccec6);
}

.rw-unsub-option[b-hykbc782hx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: 8px;
}

.rw-unsub-option--solo[b-hykbc782hx] {
    margin-bottom: 1.5rem;
    align-items: flex-start;
}

.rw-unsub-option-label[b-hykbc782hx] {
    font-weight: 600;
    color: var(--rw-text-primary, #bccec6);
    font-size: 0.9rem;
}

.rw-unsub-option-hint[b-hykbc782hx] {
    color: var(--rw-text-secondary, #8aab9e);
    font-size: 0.78rem;
    margin-top: 2px;
}

.rw-unsub-save[b-hykbc782hx] {
    width: 100%;
    padding: 0.65rem;
}

.rw-unsub-error[b-hykbc782hx],
.rw-unsub-success[b-hykbc782hx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.rw-unsub-error[b-hykbc782hx] {
    background: rgba(220, 53, 69, 0.12);
    border: 1px solid rgba(220, 53, 69, 0.3);
    color: #f0a0a8;
}

.rw-unsub-success[b-hykbc782hx] {
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.3);
    color: #8acea0;
}

.rw-unsub-footer[b-hykbc782hx] {
    text-align: center;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rw-border, #1a3430);
}

.rw-unsub-footer a[b-hykbc782hx] {
    color: var(--rw-verdant, #3d8a55);
    text-decoration: none;
    font-size: 0.85rem;
}

.rw-unsub-footer a:hover[b-hykbc782hx] {
    text-decoration: underline;
}
/* /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: stretch;
    gap: 0;
    margin-bottom: 1.25rem;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(196, 160, 64, 0.06) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(196, 160, 64, 0.04) 0%, transparent 50%),
        var(--rw-bg-panel);
    border: 1px solid var(--rw-border-narrative);
    border-radius: var(--rw-radius-lg);
    position: relative;
    overflow: hidden;
    min-height: 130px;
}

.rw-planning__header[b-82fnft7ojz]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/img/planning-header-texture.webp') center/cover no-repeat;
    opacity: 0.08;
    pointer-events: none;
}

/* ── Left: campaign identity ── */
.rw-planning__identity[b-82fnft7ojz] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1.5rem 2rem;
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 1;
}

.rw-planning__title[b-82fnft7ojz] {
    font-family: var(--rw-font-display);
    font-size: 1.8rem;
    color: var(--rw-gold-light);
    text-shadow: 0 0 30px rgba(196, 160, 64, 0.15);
    margin: 0 0 0.15rem 0;
    letter-spacing: 0.02em;
    line-height: 1.15;
}

.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 0 0.85rem 0;
}

.rw-planning__secondary-actions[b-82fnft7ojz] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.rw-planning__secondary-btn[b-82fnft7ojz] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.7rem;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all 0.2s ease;
    text-decoration: none;
    white-space: nowrap;
}

.rw-planning__secondary-btn:hover[b-82fnft7ojz] {
    color: var(--rw-text);
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.05);
}

/* ── Dropdown caret ── */
.rw-planning__caret[b-82fnft7ojz] {
    transition: transform 0.2s ease;
    margin-left: 0.1rem;
}

.rw-planning__caret--open[b-82fnft7ojz] {
    transform: rotate(180deg);
}

/* ── Right: storyboard gateway ── */
.rw-planning__storyboard-cta[b-82fnft7ojz] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    min-width: 280px;
    max-width: 340px;
    text-decoration: none;
    color: var(--rw-text);
    border-left: 1px solid rgba(196, 160, 64, 0.12);
    background:
        radial-gradient(ellipse at 70% 50%, rgba(61, 138, 85, 0.08) 0%, transparent 70%),
        radial-gradient(ellipse at 30% 80%, rgba(196, 160, 64, 0.05) 0%, transparent 60%);
    transition: all 0.3s ease;
    overflow: hidden;
    z-index: 1;
}

.rw-planning__storyboard-cta[b-82fnft7ojz]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.04) 0%, rgba(196, 160, 64, 0.06) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.rw-planning__storyboard-cta:hover[b-82fnft7ojz]::before {
    opacity: 1;
}

.rw-planning__storyboard-cta:hover[b-82fnft7ojz] {
    border-left-color: rgba(196, 160, 64, 0.3);
}

.rw-planning__storyboard-canvas[b-82fnft7ojz] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.rw-planning__storyboard-lines[b-82fnft7ojz] {
    width: 100%;
    height: 100%;
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.rw-planning__storyboard-cta:hover .rw-planning__storyboard-lines[b-82fnft7ojz] {
    opacity: 1;
}

.rw-planning__storyboard-lines circle[b-82fnft7ojz] {
    animation: rw-node-pulse-b-82fnft7ojz 3s ease-in-out infinite;
}

.rw-planning__storyboard-lines circle:nth-child(2)[b-82fnft7ojz] { animation-delay: 0.6s; }
.rw-planning__storyboard-lines circle:nth-child(3)[b-82fnft7ojz] { animation-delay: 1.2s; }
.rw-planning__storyboard-lines circle:nth-child(4)[b-82fnft7ojz] { animation-delay: 1.8s; }
.rw-planning__storyboard-lines circle:nth-child(5)[b-82fnft7ojz] { animation-delay: 2.4s; }

@keyframes rw-node-pulse-b-82fnft7ojz {
    0%, 100% { r: 4; opacity: 1; }
    50% { r: 5.5; opacity: 0.7; }
}

.rw-planning__storyboard-content[b-82fnft7ojz] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    position: relative;
    z-index: 1;
}

.rw-planning__storyboard-label[b-82fnft7ojz] {
    font-family: var(--rw-font-display);
    font-size: 1.2rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
    line-height: 1.15;
    text-shadow: 0 0 20px rgba(196, 160, 64, 0.15);
}

.rw-planning__storyboard-desc[b-82fnft7ojz] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
}

.rw-planning__storyboard-arrow[b-82fnft7ojz] {
    position: relative;
    z-index: 1;
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
    color: var(--rw-gold);
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.rw-planning__storyboard-cta:hover .rw-planning__storyboard-arrow[b-82fnft7ojz] {
    background: rgba(196, 160, 64, 0.18);
    border-color: rgba(196, 160, 64, 0.35);
    transform: translateX(3px);
}

/* ── Quick stats strip ── */
.rw-planning__stats[b-82fnft7ojz] {
    display: flex;
    gap: 1px;
    background: var(--rw-border);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    margin-bottom: 1rem;
}

.rw-planning__stat[b-82fnft7ojz] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 1;
    padding: 0.55rem 0.75rem;
    background: var(--rw-bg-bark);
    min-width: 0;
}

.rw-planning__stat-value[b-82fnft7ojz] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
}

.rw-planning__stat-label[b-82fnft7ojz] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.03em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Search & sort toolbar ── */
.rw-planning__toolbar[b-82fnft7ojz] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1rem;
    align-items: center;
}

.rw-planning__search[b-82fnft7ojz] {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
}

.rw-planning__search-icon[b-82fnft7ojz] {
    position: absolute;
    left: 0.75rem;
    color: var(--rw-text-faint);
    font-size: 0.95rem;
    pointer-events: none;
    opacity: 0.6;
}

.rw-planning__search-input[b-82fnft7ojz] {
    width: 100%;
    padding: 0.5rem 2rem 0.5rem 2.1rem;
    background: var(--rw-bg-bark);
    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.82rem;
    outline: none;
    transition: border-color 0.2s ease;
}

.rw-planning__search-input:focus[b-82fnft7ojz] {
    border-color: rgba(196, 160, 64, 0.3);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.06);
}

.rw-planning__search-input[b-82fnft7ojz]::placeholder {
    color: var(--rw-text-faint);
    opacity: 0.7;
}

.rw-planning__search-clear[b-82fnft7ojz] {
    position: absolute;
    right: 0.5rem;
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    font-size: 1.1rem;
    padding: 0.15rem 0.3rem;
    line-height: 1;
    border-radius: var(--rw-radius-sm);
    transition: all 0.15s ease;
}

.rw-planning__search-clear:hover[b-82fnft7ojz] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.05);
}

.rw-planning__sort-select[b-82fnft7ojz] {
    padding: 0.5rem 0.7rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    outline: none;
    cursor: pointer;
    transition: border-color 0.2s ease;
    min-width: 130px;
}

.rw-planning__sort-select:focus[b-82fnft7ojz] {
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-planning__sort-select option[b-82fnft7ojz] {
    background: var(--rw-bg-panel);
    color: var(--rw-text);
}

/* ── Section dividers (inside ArtifactGrid) ── */
.rw-section-divider[b-82fnft7ojz] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0 0.25rem;
    margin-top: 0.35rem;
}

.rw-section-divider:first-child[b-82fnft7ojz] {
    margin-top: 0;
    padding-top: 0;
}

.rw-section-divider__icon[b-82fnft7ojz] {
    font-size: 0.8rem;
    opacity: 0.45;
    line-height: 1;
}

.rw-section-divider__label[b-82fnft7ojz] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-section-divider__count[b-82fnft7ojz] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    opacity: 0.5;
}

.rw-section-divider__line[b-82fnft7ojz] {
    flex: 1;
    height: 1px;
    background: var(--rw-border);
    opacity: 0.6;
}

/* ── 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;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .rw-planning__storyboard-cta[b-82fnft7ojz] {
        min-width: 220px;
        max-width: 260px;
        padding: 1rem 1.25rem;
    }

    .rw-planning__storyboard-label[b-82fnft7ojz] {
        font-size: 1rem;
    }
}

@media (max-width: 640px) {
    .rw-planning__header[b-82fnft7ojz] {
        flex-direction: column;
        gap: 0;
    }

    .rw-planning__identity[b-82fnft7ojz] {
        padding: 1.25rem 1.25rem 0.75rem;
    }

    .rw-planning__title[b-82fnft7ojz] {
        font-size: 1.4rem;
    }

    .rw-planning__storyboard-cta[b-82fnft7ojz] {
        min-width: unset;
        max-width: unset;
        border-left: none;
        border-top: 1px solid rgba(196, 160, 64, 0.12);
        padding: 1rem 1.25rem;
    }

    .rw-planning__stats[b-82fnft7ojz] {
        flex-wrap: wrap;
    }

    .rw-planning__stat[b-82fnft7ojz] {
        flex: 1 1 calc(50% - 1px);
    }

    .rw-planning__toolbar[b-82fnft7ojz] {
        flex-direction: column;
        gap: 0.5rem;
    }

    .rw-planning__sort-select[b-82fnft7ojz] {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .rw-planning__stat[b-82fnft7ojz] {
        flex: 1 1 100%;
    }
}
/* /Components/Pages/Planning/Storyboard.razor.rz.scp.css */
/* ============================================================
   Storyboard — Full-page canvas layout
   ============================================================ */

.rw-storyboard[b-l71bme89zv] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - var(--rw-content-padding, 2rem) * 2);
    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;
}

.rw-storyboard__empty-hint[b-l71bme89zv] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    text-align: center;
    pointer-events: none;
    color: var(--rw-text-muted, #6a8a7a);
    font-size: 0.95rem;
    line-height: 1.6;
    opacity: 0.7;
}

.rw-storyboard__empty-icon[b-l71bme89zv] {
    display: block;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

/* --- Inline edit overlay --- */

.rw-inline-edit__overlay[b-l71bme89zv] {
    position: fixed;
    inset: 0;
    z-index: 460;
}

.rw-inline-edit__input[b-l71bme89zv] {
    position: fixed;
    z-index: 470;
    transform: translate(-50%, -50%);
    width: 180px;
    padding: 0.35rem 0.6rem;
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-bright);
    background: var(--rw-glass-bg);
    backdrop-filter: blur(var(--rw-glass-blur));
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-md);
    outline: none;
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.3);
    text-align: center;
}

.rw-inline-edit__input:focus[b-l71bme89zv] {
    box-shadow: 0 0 18px rgba(196, 160, 64, 0.5);
}

/* --- Connect mode banner --- */

.rw-connect-banner[b-l71bme89zv] {
    position: absolute;
    top: 0.75rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 1rem;
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: var(--rw-gold);
    background: var(--rw-glass-bg);
    backdrop-filter: blur(var(--rw-glass-blur));
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-pill);
    z-index: 440;
    animation: rw-connect-appear-b-l71bme89zv 0.25s ease-out;
}

@keyframes rw-connect-appear-b-l71bme89zv {
    from { opacity: 0; transform: translateX(-50%) translateY(-8px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* --- Toast notification --- */

.rw-storyboard-toast[b-l71bme89zv] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    padding: 0.4rem 0.9rem;
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    color: var(--rw-text-bright);
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-pill);
    z-index: 445;
    animation: rw-toast-in-b-l71bme89zv 0.3s ease-out, rw-toast-out-b-l71bme89zv 0.3s ease-in 3.5s forwards;
    pointer-events: none;
}

.rw-storyboard-toast--error[b-l71bme89zv] {
    border-color: rgba(184, 58, 26, 0.4);
    color: #d66a4a;
}

@keyframes rw-toast-in-b-l71bme89zv {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes rw-toast-out-b-l71bme89zv {
    from { opacity: 1; }
    to   { opacity: 0; }
}

/* --- Multi-select toolbar --- */

.rw-multi-select-toolbar[b-l71bme89zv] {
    position: absolute;
    bottom: 0.75rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 1rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    color: var(--rw-text-bright);
    background: var(--rw-glass-bg);
    backdrop-filter: blur(var(--rw-glass-blur));
    border: 1px solid rgba(106, 180, 216, 0.3);
    border-radius: var(--rw-radius-pill);
    z-index: 440;
    animation: rw-connect-appear-b-l71bme89zv 0.25s ease-out;
}

.rw-multi-select-toolbar__count[b-l71bme89zv] {
    color: #6ab4d8;
    white-space: nowrap;
}

.rw-multi-select-toolbar__actions[b-l71bme89zv] {
    display: flex;
    gap: 0.35rem;
}

.rw-multi-select-toolbar__actions .btn[b-l71bme89zv] {
    font-size: 0.7rem;
    padding: 0.15rem 0.45rem;
    letter-spacing: 0.08em;
}

/* --- Entity picker toggle button --- */

.rw-entity-picker-toggle[b-l71bme89zv] {
    position: absolute;
    bottom: 0.75rem;
    left: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-glass-bg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--rw-text-dim);
    cursor: pointer;
    z-index: 420;
    transition: all var(--rw-transition);
}

.rw-entity-picker-toggle:hover[b-l71bme89zv] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
}

@media (max-width: 768px) {
    .rw-storyboard[b-l71bme89zv] {
        height: calc(100dvh - 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 - var(--rw-content-padding, 2rem) * 2);
    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: 1rem;
    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; }
}

/* === CONNECTION QUALITY BADGE === */
.rw-connection-badge[b-3ltwauspga] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease, box-shadow 0.4s ease;
    cursor: default;
}

.rw-connection-pip[b-3ltwauspga] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    transition: background 0.4s ease, box-shadow 0.4s ease;
}

.rw-connection-label[b-3ltwauspga] {
    line-height: 1;
}

/* Good — verdant green glow */
.rw-connection-good[b-3ltwauspga] {
    background: rgba(80, 176, 104, 0.1);
    border: 1px solid rgba(80, 176, 104, 0.25);
    color: var(--rw-verdant-bright);
}

.rw-connection-good .rw-connection-pip[b-3ltwauspga] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 6px rgba(80, 176, 104, 0.5);
}

/* Fair — amber firelight */
.rw-connection-fair[b-3ltwauspga] {
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
}

.rw-connection-fair .rw-connection-pip[b-3ltwauspga] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.5);
}

/* Poor — blood red warning */
.rw-connection-poor[b-3ltwauspga] {
    background: rgba(220, 38, 38, 0.12);
    border: 1px solid rgba(220, 38, 38, 0.3);
    color: #f87171;
}

.rw-connection-poor .rw-connection-pip[b-3ltwauspga] {
    background: #f87171;
    box-shadow: 0 0 6px rgba(220, 38, 38, 0.5);
    animation: rw-connection-warn-b-3ltwauspga 1.5s ease-in-out infinite;
}

/* Lost — dimmed pulse, spectral fade */
.rw-connection-lost[b-3ltwauspga] {
    background: rgba(90, 120, 104, 0.08);
    border: 1px solid rgba(90, 120, 104, 0.2);
    color: var(--rw-text-faint);
    animation: rw-connection-lost-pulse-b-3ltwauspga 2s ease-in-out infinite;
}

.rw-connection-lost .rw-connection-pip[b-3ltwauspga] {
    background: var(--rw-sage-muted);
    box-shadow: none;
    animation: rw-connection-lost-pulse-b-3ltwauspga 2s ease-in-out infinite;
}

@keyframes rw-connection-warn-b-3ltwauspga {
    0%, 100% { opacity: 1; box-shadow: 0 0 6px rgba(220, 38, 38, 0.5); }
    50% { opacity: 0.5; box-shadow: 0 0 10px rgba(220, 38, 38, 0.7); }
}

@keyframes rw-connection-lost-pulse-b-3ltwauspga {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* === 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-connection-badge[b-3ltwauspga] {
        order: 3;
    }

    .rw-connection-label[b-3ltwauspga] {
        display: none;
    }

    .rw-session-control[b-3ltwauspga] {
        order: 4;
        margin-left: auto;
    }
}

@media (max-width: 480px) {
    .rw-session-header[b-3ltwauspga] {
        padding: 0.3rem 0.5rem;
        gap: 0.35rem;
    }

    .rw-session-header h1[b-3ltwauspga] {
        font-size: 0.8rem;
    }

    .rw-connection-badge[b-3ltwauspga] {
        display: none;
    }

    .rw-session[b-3ltwauspga] {
        height: calc(100dvh - var(--rw-content-padding, 0.75rem) * 2);
        border-radius: var(--rw-radius-md);
    }
}

/* === PLAYER QUICK NOTE OVERLAY === */

.rw-player-quick-note[b-3ltwauspga] {
    position: fixed;
    top: 4.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1200;
    max-width: 36rem;
    width: 90%;
    padding: 1rem 1.5rem;
    border-radius: var(--rw-radius-lg);
    text-align: center;
    cursor: pointer;
    font-family: var(--rw-font-display);
    font-size: 1rem;
    line-height: 1.5;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
    animation: rw-note-slide-in-b-3ltwauspga 0.4s ease-out;
}

.rw-player-quick-note--narrative[b-3ltwauspga] {
    background: linear-gradient(135deg, rgba(18, 28, 22, 0.95), rgba(26, 42, 32, 0.95));
    border: 1px solid var(--rw-sage-muted);
    color: var(--rw-text-bright);
}

.rw-player-quick-note--warning[b-3ltwauspga] {
    background: linear-gradient(135deg, rgba(60, 20, 10, 0.95), rgba(80, 30, 15, 0.95));
    border: 1px solid var(--rw-blood-bright);
    color: var(--rw-text-bright);
}

.rw-player-quick-note--info[b-3ltwauspga] {
    background: linear-gradient(135deg, rgba(15, 25, 40, 0.95), rgba(20, 35, 55, 0.95));
    border: 1px solid var(--rw-sage-muted);
    color: var(--rw-text-bright);
}

@keyframes rw-note-slide-in-b-3ltwauspga {
    from { opacity: 0; transform: translateX(-50%) translateY(-1rem); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
/* /Components/Pages/Sessions/SessionDisplay.razor.rz.scp.css */
/* ============================================================
   Session Display — Cinematic broadcast screen
   Full-viewport grid, glass panels over scene background.
   Designed for TV/monitor readability at 10+ feet.
   ============================================================ */

.session-display[b-d9v6lmv0gx] {
    position: fixed;
    inset: 0;
    display: grid;
    grid-template-columns: 300px 1fr 360px;
    grid-template-rows: 1fr auto;
    gap: 0;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 50% 60%, rgba(20, 35, 30, 0.6) 0%, transparent 70%),
        var(--rw-bg-void);
    font-family: var(--rw-font-body);
    color: var(--rw-text-bright);
    z-index: 1;
}

/* Darkening vignette — ensures panel readability over any scene */
.display-vignette[b-d9v6lmv0gx] {
    position: fixed;
    inset: 0;
    z-index: 2;
    background: radial-gradient(ellipse at center,
        transparent 25%,
        rgba(7, 14, 20, 0.35) 55%,
        rgba(7, 14, 20, 0.85) 100%);
    pointer-events: none;
}

/* --- Combat VFX canvas overlay --- */

.combat-vfx-canvas[b-d9v6lmv0gx] {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    z-index: 50;
    pointer-events: none;
}

/* --- Column zones --- */

.display-col-party[b-d9v6lmv0gx] {
    grid-column: 1;
    grid-row: 1 / -1;
    z-index: 3;
    padding: 20px 12px 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    scrollbar-width: none;
}

.display-col-party[b-d9v6lmv0gx]::-webkit-scrollbar {
    display: none;
}

.display-col-center[b-d9v6lmv0gx] {
    grid-column: 2;
    grid-row: 1;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px 0;
}

.display-col-feed[b-d9v6lmv0gx] {
    grid-column: 3;
    grid-row: 1 / -1;
    z-index: 3;
    padding: 20px 16px 20px 12px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* --- Loading state --- */

.display-loading[b-d9v6lmv0gx] {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rw-bg-void);
    z-index: 100;
}

.display-loading-text[b-d9v6lmv0gx] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-sage-tan);
    letter-spacing: 0.05em;
    animation: rw-display-pulse-b-d9v6lmv0gx 2s ease-in-out infinite;
}

@keyframes rw-display-pulse-b-d9v6lmv0gx {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 1; }
}

/* --- Responsive: collapse to single column on tablets --- */
@media (max-width: 768px) {
    .session-display[b-d9v6lmv0gx] {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr auto;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .display-col-party[b-d9v6lmv0gx] {
        grid-column: 1;
        grid-row: 1;
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 12px;
        gap: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .display-col-center[b-d9v6lmv0gx] {
        grid-column: 1;
        grid-row: 2;
        padding-top: 12px;
    }

    .display-col-feed[b-d9v6lmv0gx] {
        grid-column: 1;
        grid-row: 3;
        padding: 12px;
        max-height: 40vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 480px) {
    .display-col-party[b-d9v6lmv0gx] {
        padding: 8px;
        gap: 6px;
    }

    .display-col-center[b-d9v6lmv0gx] {
        padding-top: 8px;
    }

    .display-col-feed[b-d9v6lmv0gx] {
        padding: 8px;
        max-height: 35vh;
    }

    .display-loading-text[b-d9v6lmv0gx] {
        font-size: 1.2rem;
    }
}
/* /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); }

/* Subtle type-specific background tints */
.rw-artifact-card--quest[b-o8riii7wsg] {
    background: linear-gradient(135deg, var(--rw-bg-panel) 80%, rgba(196, 160, 64, 0.04));
}
.rw-artifact-card--location[b-o8riii7wsg] {
    background: linear-gradient(135deg, var(--rw-bg-panel) 80%, rgba(61, 138, 85, 0.04));
}
.rw-artifact-card--encounter[b-o8riii7wsg] {
    background: linear-gradient(135deg, var(--rw-bg-panel) 80%, rgba(184, 58, 26, 0.04));
}
.rw-artifact-card--session[b-o8riii7wsg] {
    background: linear-gradient(135deg, var(--rw-bg-panel) 80%, rgba(58, 128, 168, 0.04));
}
.rw-artifact-card--npc[b-o8riii7wsg] {
    background: linear-gradient(135deg, var(--rw-bg-panel) 80%, rgba(218, 184, 85, 0.03));
}

.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);
}

/* Type-tinted hover glow */
.rw-artifact-card--quest:hover[b-o8riii7wsg] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 25px rgba(196, 160, 64, 0.1);
}
.rw-artifact-card--location:hover[b-o8riii7wsg] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 25px rgba(61, 138, 85, 0.1);
    border-color: rgba(61, 138, 85, 0.2);
}
.rw-artifact-card--npc:hover[b-o8riii7wsg] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 25px rgba(218, 184, 85, 0.08);
}
.rw-artifact-card--session:hover[b-o8riii7wsg] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 25px rgba(58, 128, 168, 0.1);
    border-color: rgba(58, 128, 168, 0.2);
}
.rw-artifact-card--encounter:hover[b-o8riii7wsg] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 25px rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.2);
}

/* Highlighted state (upcoming sessions) */
.rw-artifact-card--highlighted[b-o8riii7wsg] {
    border-color: rgba(58, 128, 168, 0.25);
    background: linear-gradient(135deg, var(--rw-bg-panel) 60%, rgba(58, 128, 168, 0.06));
}

/* Live session state */
.rw-artifact-card--live[b-o8riii7wsg] {
    border-color: rgba(61, 138, 85, 0.3);
    background: linear-gradient(135deg, var(--rw-bg-panel) 60%, rgba(61, 138, 85, 0.06));
}

/* 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;
}

/* Live badge */
.rw-artifact-card__live-badge[b-o8riii7wsg] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.15em;
    color: var(--rw-verdant);
    padding: 0.1rem 0.4rem;
    background: rgba(61, 138, 85, 0.1);
    border-radius: var(--rw-radius-pill);
    border: 1px solid rgba(61, 138, 85, 0.15);
}

.rw-artifact-card__live-dot[b-o8riii7wsg] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rw-verdant);
    animation: rw-live-pulse-b-o8riii7wsg 2s ease-in-out infinite;
}

@keyframes rw-live-pulse-b-o8riii7wsg {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(61, 138, 85, 0.4); }
    50% { opacity: 0.6; box-shadow: 0 0 0 4px rgba(61, 138, 85, 0); }
}

/* 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;
}

/* Progress bar */
.rw-artifact-card__progress[b-o8riii7wsg] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.15rem;
}

.rw-artifact-card__progress-track[b-o8riii7wsg] {
    flex: 1;
    height: 4px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 2px;
    overflow: hidden;
}

.rw-artifact-card__progress-fill[b-o8riii7wsg] {
    height: 100%;
    background: var(--rw-gold);
    border-radius: 2px;
    transition: width 0.4s ease;
    min-width: 2px;
}

.rw-artifact-card__progress-fill--complete[b-o8riii7wsg] {
    background: var(--rw-verdant);
}

.rw-artifact-card__progress-label[b-o8riii7wsg] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    white-space: nowrap;
    min-width: 2rem;
    text-align: right;
}

/* 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);
}

/* Type-color accents for active filter tabs */
.rw-filter-bar__tab--active[data-filter="quests"][b-jxlkxnzcth]::after { background: var(--rw-gold); }
.rw-filter-bar__tab--active[data-filter="locations"][b-jxlkxnzcth]::after { background: var(--rw-verdant); }
.rw-filter-bar__tab--active[data-filter="npcs"][b-jxlkxnzcth]::after { background: var(--rw-gold-light); }
.rw-filter-bar__tab--active[data-filter="sessions"][b-jxlkxnzcth]::after { background: var(--rw-arcane-blue); }
.rw-filter-bar__tab--active[data-filter="encounters"][b-jxlkxnzcth]::after { background: var(--rw-blood-bright); }

@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);
    position: relative;
    z-index: 500;
}

.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);
}

.rw-canvas-toolbar__btn--active[b-scw2qtq53h] {
    background: rgba(184, 58, 26, 0.15);
    color: #b83a1a;
    border: 1px solid rgba(184, 58, 26, 0.3);
}

/* 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);
}

.rw-canvas-toolbar__search-group[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    gap: 0;
}

.rw-canvas-toolbar__search-group .rw-canvas-toolbar__search[b-scw2qtq53h] {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.rw-canvas-toolbar__search-btn[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--rw-border);
    border-left: none;
    border-radius: 0 var(--rw-radius-sm, 6px) var(--rw-radius-sm, 6px) 0;
    background: var(--rw-surface-2);
    color: var(--rw-text-muted);
    cursor: pointer;
    transition: background var(--rw-transition), color var(--rw-transition);
}

.rw-canvas-toolbar__search-btn:hover:not(:disabled)[b-scw2qtq53h] {
    background: var(--rw-surface-3);
    color: var(--rw-text);
}

.rw-canvas-toolbar__search-btn:disabled[b-scw2qtq53h] {
    opacity: 0.4;
    cursor: default;
}

/* --- Auto-layout dropdown --- */
.rw-canvas-toolbar__layout-group[b-scw2qtq53h] {
    position: relative;
}

.rw-canvas-toolbar__layout-dropdown[b-scw2qtq53h] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 160px;
    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);
    z-index: 500;
    animation: rw-layout-appear-b-scw2qtq53h 0.12s ease;
}

@keyframes rw-layout-appear-b-scw2qtq53h {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-canvas-toolbar__layout-item[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    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.82rem;
    text-align: left;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-canvas-toolbar__layout-item:hover[b-scw2qtq53h] {
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-text-bright);
}

.rw-canvas-toolbar__layout-icon[b-scw2qtq53h] {
    width: 18px;
    text-align: center;
    font-size: 0.85rem;
}

.rw-canvas-toolbar__layout-overlay[b-scw2qtq53h] {
    position: fixed;
    inset: 0;
    z-index: 499;
}

/* --- Save indicator --- */
.rw-save-indicator[b-scw2qtq53h] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: opacity 0.3s ease;
}

.rw-save-indicator--idle[b-scw2qtq53h] {
    opacity: 0;
}

.rw-save-indicator--idle .rw-save-indicator__text[b-scw2qtq53h]::after { content: ''; }

.rw-save-indicator--saving[b-scw2qtq53h] {
    opacity: 1;
    color: var(--rw-text-faint);
}

.rw-save-indicator--saving .rw-save-indicator__dot[b-scw2qtq53h] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rw-gold);
    animation: rw-save-pulse-b-scw2qtq53h 1s ease-in-out infinite;
}

.rw-save-indicator--saving .rw-save-indicator__text[b-scw2qtq53h]::after { content: 'Saving…'; }

.rw-save-indicator--saved[b-scw2qtq53h] {
    opacity: 1;
    color: #5eb87a;
}

.rw-save-indicator--saved .rw-save-indicator__dot[b-scw2qtq53h] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #3d8a55;
}

.rw-save-indicator--saved .rw-save-indicator__text[b-scw2qtq53h]::after { content: 'Saved'; }

.rw-save-indicator--error[b-scw2qtq53h] {
    opacity: 1;
    color: #d66a4a;
}

.rw-save-indicator--error .rw-save-indicator__dot[b-scw2qtq53h] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #b83a1a;
}

.rw-save-indicator--error .rw-save-indicator__text[b-scw2qtq53h]::after { content: 'Save failed'; }

@keyframes rw-save-pulse-b-scw2qtq53h {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(0.7); }
}

@media (max-width: 768px) {
    .rw-canvas-toolbar__search[b-scw2qtq53h] { width: 100px; }
    .rw-canvas-toolbar__filters[b-scw2qtq53h] { display: none; }
    .rw-save-indicator[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/EntityPickerSidebar.razor.rz.scp.css */
/* ============================================================
   EntityPickerSidebar — Slide-out entity browser
   ============================================================ */

.rw-entity-picker__overlay[b-6rl4bz287m] {
    position: fixed;
    inset: 0;
    z-index: 489;
    background: rgba(0, 0, 0, 0.3);
    animation: rw-picker-overlay-in-b-6rl4bz287m 0.2s ease;
}

@keyframes rw-picker-overlay-in-b-6rl4bz287m {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.rw-entity-picker[b-6rl4bz287m] {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(340px, 90vw);
    z-index: 490;
    display: flex;
    flex-direction: column;

    background:
        linear-gradient(
            180deg,
            rgba(10, 22, 28, 0.96) 0%,
            rgba(7, 14, 20, 0.98) 100%
        );
    backdrop-filter: blur(20px) saturate(1.2);
    -webkit-backdrop-filter: blur(20px) saturate(1.2);

    border-left: 1px solid rgba(196, 160, 64, 0.12);
    box-shadow:
        -4px 0 24px rgba(0, 0, 0, 0.4),
        inset 1px 0 0 rgba(196, 160, 64, 0.04);

    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.rw-entity-picker--open[b-6rl4bz287m] {
    transform: translateX(0);
}

.rw-entity-picker__header[b-6rl4bz287m] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.8rem 1rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.1);
    flex-shrink: 0;
}

.rw-entity-picker__title[b-6rl4bz287m] {
    margin: 0;
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--rw-text-bright, #dceee6);
}

.rw-entity-picker__close[b-6rl4bz287m] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--rw-text-muted, #6a8a7a);
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.rw-entity-picker__close:hover[b-6rl4bz287m] {
    background: rgba(184, 58, 26, 0.2);
    color: #d66a4a;
}

/* --- Tabs --- */
.rw-entity-picker__tabs[b-6rl4bz287m] {
    display: flex;
    gap: 2px;
    padding: 0.5rem 0.75rem;
    overflow-x: auto;
    flex-shrink: 0;
    border-bottom: 1px solid var(--rw-border, rgba(58, 90, 78, 0.4));
}

.rw-entity-picker__tab[b-6rl4bz287m] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.3rem 0.5rem;
    border: none;
    border-radius: var(--rw-radius-sm, 4px);
    background: transparent;
    color: var(--rw-text-faint, #4a6a5a);
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s ease;
}

.rw-entity-picker__tab:hover[b-6rl4bz287m] {
    color: var(--rw-text-dim, #8aaa98);
    background: rgba(255, 255, 255, 0.03);
}

.rw-entity-picker__tab--active[b-6rl4bz287m] {
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light, #dab855);
}

.rw-entity-picker__tab-icon[b-6rl4bz287m] {
    font-size: 0.75rem;
}

/* --- Search --- */
.rw-entity-picker__search-wrap[b-6rl4bz287m] {
    padding: 0.5rem 0.75rem;
    flex-shrink: 0;
}

.rw-entity-picker__search[b-6rl4bz287m] {
    width: 100%;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--rw-border, rgba(58, 90, 78, 0.4));
    border-radius: var(--rw-radius-sm, 4px);
    background: rgba(7, 14, 20, 0.5);
    color: var(--rw-text, #b0d0c0);
    font-family: var(--rw-font-body, 'Alegreya Sans', sans-serif);
    font-size: 0.82rem;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.rw-entity-picker__search:focus[b-6rl4bz287m] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

/* --- Item list --- */
.rw-entity-picker__list[b-6rl4bz287m] {
    flex: 1;
    overflow-y: auto;
    padding: 0.25rem 0.5rem 0.75rem;
}

.rw-entity-picker__empty[b-6rl4bz287m] {
    padding: 1.5rem;
    text-align: center;
    color: var(--rw-text-faint, #4a6a5a);
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    font-style: italic;
}

.rw-entity-picker__error[b-6rl4bz287m] {
    padding: 1.5rem;
    text-align: center;
    color: var(--rw-ember, #c25050);
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.8rem;
    letter-spacing: 0.05em;
}

.rw-entity-picker__error p[b-6rl4bz287m] {
    margin-bottom: 0.75rem;
}

.rw-entity-picker__item[b-6rl4bz287m] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: none;
    border-radius: var(--rw-radius-sm, 4px);
    background: transparent;
    color: var(--rw-text, #b0d0c0);
    font-family: var(--rw-font-body, 'Alegreya Sans', sans-serif);
    font-size: 0.82rem;
    text-align: left;
    cursor: pointer;
    transition: all 0.15s ease;
}

.rw-entity-picker__item:hover:not(:disabled)[b-6rl4bz287m] {
    background: rgba(61, 138, 85, 0.08);
    color: var(--rw-text-bright, #dceee6);
}

.rw-entity-picker__item:disabled[b-6rl4bz287m] {
    opacity: 0.45;
    cursor: default;
}

.rw-entity-picker__item-icon[b-6rl4bz287m] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 5px;
    font-size: 0.8rem;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.rw-entity-picker__item-icon--session[b-6rl4bz287m]   { background: rgba(42, 106, 142, 0.2); color: #6ab4d8; }
.rw-entity-picker__item-icon--quest[b-6rl4bz287m]     { background: rgba(196, 160, 64, 0.2); color: #dab855; }
.rw-entity-picker__item-icon--location[b-6rl4bz287m]  { background: rgba(61, 138, 85, 0.2);  color: #5eb87a; }
.rw-entity-picker__item-icon--npc[b-6rl4bz287m]       { background: rgba(184, 152, 64, 0.2); color: #dab855; }
.rw-entity-picker__item-icon--encounter[b-6rl4bz287m] { background: rgba(184, 58, 26, 0.2);  color: #d66a4a; }
.rw-entity-picker__item-icon--note[b-6rl4bz287m]      { background: rgba(196, 160, 64, 0.15); color: #c4a040; }

.rw-entity-picker__item-info[b-6rl4bz287m] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.rw-entity-picker__item-name[b-6rl4bz287m] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.82rem;
    line-height: 1.3;
}

.rw-entity-picker__item-detail[b-6rl4bz287m] {
    font-size: 0.68rem;
    color: var(--rw-text-faint, #4a6a5a);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-entity-picker__item-badge[b-6rl4bz287m] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint, #4a6a5a);
    padding: 0.1rem 0.4rem;
    border: 1px solid var(--rw-border, rgba(58, 90, 78, 0.4));
    border-radius: 3px;
    flex-shrink: 0;
}

/* Custom scrollbar */
.rw-entity-picker__list[b-6rl4bz287m]::-webkit-scrollbar {
    width: 5px;
}

.rw-entity-picker__list[b-6rl4bz287m]::-webkit-scrollbar-track {
    background: transparent;
}

.rw-entity-picker__list[b-6rl4bz287m]::-webkit-scrollbar-thumb {
    background: rgba(196, 160, 64, 0.12);
    border-radius: 3px;
}

.rw-entity-picker__list[b-6rl4bz287m]::-webkit-scrollbar-thumb:hover {
    background: rgba(196, 160, 64, 0.25);
}

@media (max-width: 600px) {
    .rw-entity-picker[b-6rl4bz287m] {
        width: 100vw;
    }
}
/* /Components/Planning/Canvas/FloatingNodeEditor.razor.rz.scp.css */
/* ============================================================
   FloatingNodeEditor — In-canvas artifact editor modal
   Enchanted forest glass morphism, draggable, near-node position
   ============================================================ */

/* --- Click-outside overlay --- */
.rw-float-editor__overlay[b-az6t4ycjzj] {
    position: fixed;
    inset: 0;
    z-index: 479;
    cursor: default;
}

/* --- Editor container --- */
.rw-float-editor[b-az6t4ycjzj] {
    position: fixed;
    z-index: 480;
    width: min(440px, 85vw);
    max-height: min(560px, 70vh);
    display: flex;
    flex-direction: column;

    background:
        linear-gradient(
            165deg,
            rgba(12, 28, 32, 0.92) 0%,
            rgba(8, 18, 24, 0.96) 40%,
            rgba(6, 14, 20, 0.98) 100%
        );
    backdrop-filter: blur(24px) saturate(1.3);
    -webkit-backdrop-filter: blur(24px) saturate(1.3);

    border: 1px solid rgba(196, 160, 64, 0.18);
    border-top: 2px solid rgba(196, 160, 64, 0.35);
    border-radius: var(--rw-radius-lg, 12px);

    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.4),
        0 8px 32px rgba(0, 0, 0, 0.55),
        0 2px 8px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(196, 160, 64, 0.06);

    /* Entrance animation */
    opacity: 0;
    transform: scale(0.92) translateY(8px);
    transition:
        opacity 0.25s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);

    outline: none;
    overflow: hidden;
}

.rw-float-editor--open[b-az6t4ycjzj] {
    opacity: 1;
    transform: scale(1) translateY(0);
}

/* --- Header: draggable + title + close --- */
.rw-float-editor__header[b-az6t4ycjzj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.75rem 0.5rem;
    cursor: grab;
    user-select: none;
    border-bottom: 1px solid rgba(196, 160, 64, 0.1);
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.04) 0%, transparent 100%);
    flex-shrink: 0;
}

.rw-float-editor__header:active[b-az6t4ycjzj] {
    cursor: grabbing;
}

.rw-float-editor__title-row[b-az6t4ycjzj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.rw-float-editor__type-icon[b-az6t4ycjzj] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    font-size: 0.9rem;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Type-colored icon backgrounds */
.rw-float-editor__type-icon--session[b-az6t4ycjzj]   { background: rgba(58, 128, 168, 0.25); color: #6ab4d8; }
.rw-float-editor__type-icon--quest[b-az6t4ycjzj]     { background: rgba(196, 160, 64, 0.25); color: #dab855; }
.rw-float-editor__type-icon--location[b-az6t4ycjzj]  { background: rgba(61, 138, 85, 0.25);  color: #5eb87a; }
.rw-float-editor__type-icon--npc[b-az6t4ycjzj]       { background: rgba(218, 184, 85, 0.25); color: #dab855; }
.rw-float-editor__type-icon--encounter[b-az6t4ycjzj] { background: rgba(184, 58, 26, 0.25);  color: #d66a4a; }
.rw-float-editor__type-icon--note[b-az6t4ycjzj]      { background: rgba(196, 160, 64, 0.2);  color: #c4a040; }
.rw-float-editor__type-icon--chapter[b-az6t4ycjzj]   { background: rgba(90, 120, 104, 0.25); color: #8aab9e; }
.rw-float-editor__type-icon--branch[b-az6t4ycjzj]    { background: rgba(188, 206, 198, 0.2); color: #bccec6; }

.rw-float-editor__title[b-az6t4ycjzj] {
    margin: 0;
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1rem;
    font-weight: 400;
    color: var(--rw-text-bright, #dceee6);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-float-editor__close[b-az6t4ycjzj] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--rw-text-muted, #6a8a7a);
    cursor: pointer;
    flex-shrink: 0;
    transition: background var(--rw-transition, 0.2s ease), color var(--rw-transition, 0.2s ease);
}

.rw-float-editor__close:hover[b-az6t4ycjzj] {
    background: rgba(184, 58, 26, 0.2);
    color: #d66a4a;
}

/* --- Body: scrollable content --- */
.rw-float-editor__body[b-az6t4ycjzj] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.6rem 0.75rem 0.75rem;
    min-height: 0;
}

/* Compact form overrides for detail panels inside the floating editor */
.rw-float-editor__body :deep(.rw-detail-panel)[b-az6t4ycjzj] {
    font-size: 0.85rem;
}

.rw-float-editor__body :deep(.rw-detail-panel__form)[b-az6t4ycjzj] {
    gap: 0;
}

.rw-float-editor__body :deep(.mb-3)[b-az6t4ycjzj] {
    margin-bottom: 0.5rem !important;
}

.rw-float-editor__body :deep(.form-label)[b-az6t4ycjzj] {
    font-size: 0.75rem;
    margin-bottom: 0.2rem;
    color: var(--rw-text-muted, #6a8a7a);
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    letter-spacing: 0.06em;
}

.rw-float-editor__body :deep(.form-control)[b-az6t4ycjzj],
.rw-float-editor__body :deep(.form-select)[b-az6t4ycjzj] {
    font-size: 0.82rem;
    padding: 0.3rem 0.5rem;
    background: rgba(7, 14, 20, 0.5);
    border-color: var(--rw-border, rgba(58, 90, 78, 0.4));
    color: var(--rw-text, #b0d0c0);
}

.rw-float-editor__body :deep(.form-control:focus)[b-az6t4ycjzj],
.rw-float-editor__body :deep(.form-select:focus)[b-az6t4ycjzj] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.rw-float-editor__body :deep(.rw-detail-panel__actions)[b-az6t4ycjzj] {
    position: sticky;
    bottom: 0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    border-top: 1px solid rgba(58, 90, 78, 0.2);
    margin-top: 0.5rem;
    background: rgba(8, 18, 24, 0.96);
    z-index: 1;
}

.rw-float-editor__body :deep(.btn-sm)[b-az6t4ycjzj] {
    font-size: 0.78rem;
    padding: 0.25rem 0.65rem;
}

.rw-float-editor__body :deep(.rw-detail-panel__loading)[b-az6t4ycjzj] {
    padding: 1.5rem;
    text-align: center;
    color: var(--rw-text-muted, #6a8a7a);
}

/* Custom scrollbar for the editor body */
.rw-float-editor__body[b-az6t4ycjzj]::-webkit-scrollbar {
    width: 5px;
}

.rw-float-editor__body[b-az6t4ycjzj]::-webkit-scrollbar-track {
    background: transparent;
}

.rw-float-editor__body[b-az6t4ycjzj]::-webkit-scrollbar-thumb {
    background: rgba(196, 160, 64, 0.15);
    border-radius: 3px;
}

.rw-float-editor__body[b-az6t4ycjzj]::-webkit-scrollbar-thumb:hover {
    background: rgba(196, 160, 64, 0.3);
}

/* --- Responsive: bottom sheet on small screens --- */
@media (max-width: 600px) {
    .rw-float-editor[b-az6t4ycjzj] {
        width: 100vw;
        max-height: 70vh;
        left: 0 !important;
        bottom: 0 !important;
        top: auto !important;
        border-radius: var(--rw-radius-lg, 12px) var(--rw-radius-lg, 12px) 0 0;
        transform: translateY(100%);
    }

    .rw-float-editor--open[b-az6t4ycjzj] {
        transform: translateY(0);
    }
}
/* /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;
}

/* --- Status dots --- */
.rw-context-menu__status-dot[b-y2sjulxr4t] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.rw-context-menu__status-dot--active[b-y2sjulxr4t] {
    background: #c4a040;
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.5);
}

.rw-context-menu__status-dot--completed[b-y2sjulxr4t] {
    background: #3d8a55;
    box-shadow: 0 0 4px rgba(61, 138, 85, 0.5);
}

.rw-context-menu__status-dot--blocked[b-y2sjulxr4t] {
    background: #b83a1a;
    box-shadow: 0 0 4px rgba(184, 58, 26, 0.5);
}

.rw-context-menu__status-dot--failed[b-y2sjulxr4t] {
    background: #6a2a1a;
    box-shadow: 0 0 4px rgba(106, 42, 26, 0.4);
}

.rw-context-menu__status--current[b-y2sjulxr4t] {
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
}
/* /Components/Planning/Canvas/RadialMenu.razor.rz.scp.css */
/* ============================================================
   RadialMenu — Blooming radial artifact creation menu
   ============================================================ */

/* --- Overlay: full-viewport dismiss target --- */
.rw-radial__overlay[b-aygyk3cyn7] {
    position: fixed;
    inset: 0;
    z-index: 450;
    cursor: default;
}

/* --- Container: zero-size anchor at click point --- */
.rw-radial[b-aygyk3cyn7] {
    position: fixed;
    z-index: 451;
    width: 0;
    height: 0;
    pointer-events: none;
}

/* --- Center sigil: glowing gold anchor dot --- */
.rw-radial__sigil[b-aygyk3cyn7] {
    position: absolute;
    width: 10px;
    height: 10px;
    top: -5px;
    left: -5px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--rw-gold-glow) 0%, var(--rw-gold) 50%, transparent 100%);
    box-shadow:
        0 0 12px rgba(196, 160, 64, 0.6),
        0 0 28px rgba(196, 160, 64, 0.3),
        0 0 48px rgba(196, 160, 64, 0.1);
    animation: rw-radial-sigil-pulse-b-aygyk3cyn7 2s ease-in-out infinite;
    z-index: 2;
}

/* --- Ring: subtle circular guide behind items --- */
.rw-radial__ring[b-aygyk3cyn7] {
    position: absolute;
    width: 180px;
    height: 180px;
    top: -90px;
    left: -90px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.08);
    box-shadow:
        inset 0 0 30px rgba(196, 160, 64, 0.03),
        0 0 20px rgba(196, 160, 64, 0.02);
    animation: rw-radial-ring-appear-b-aygyk3cyn7 0.4s ease-out forwards;
    opacity: 0;
}

/* --- Menu item: circular artifact button --- */
.rw-radial__item[b-aygyk3cyn7] {
    position: absolute;
    width: 46px;
    height: 46px;
    top: -23px;
    left: -23px;
    border-radius: 50%;
    border: 1.5px solid color-mix(in srgb, var(--item-color) 35%, transparent);
    background: color-mix(in srgb, var(--item-color) 15%, var(--rw-bg-panel));
    cursor: pointer;
    pointer-events: all;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
        transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
        opacity 0.25s ease,
        border-color var(--rw-transition),
        background var(--rw-transition),
        box-shadow var(--rw-transition);
    transition-delay: var(--item-delay);
    z-index: 1;

    /* Start collapsed at center */
    transform: rotate(var(--item-angle)) translateY(0) rotate(calc(-1 * var(--item-angle))) scale(0.2);
    opacity: 0;
    box-shadow:
        0 0 8px color-mix(in srgb, var(--item-color) 20%, transparent),
        0 2px 8px rgba(0, 0, 0, 0.4);
}

/* Bloom outward */
.rw-radial__item--bloom[b-aygyk3cyn7] {
    transform: rotate(var(--item-angle)) translateY(-88px) rotate(calc(-1 * var(--item-angle))) scale(1);
    opacity: 1;
}

/* --- Hover state: glow intensifies, slight scale-up --- */
.rw-radial__item:hover[b-aygyk3cyn7] {
    background: color-mix(in srgb, var(--item-color) 30%, var(--rw-bg-panel));
    border-color: color-mix(in srgb, var(--item-color) 65%, transparent);
    box-shadow:
        0 0 16px color-mix(in srgb, var(--item-color) 40%, transparent),
        0 0 32px color-mix(in srgb, var(--item-color) 15%, transparent),
        0 2px 12px rgba(0, 0, 0, 0.5);
    transform: rotate(var(--item-angle)) translateY(-88px) rotate(calc(-1 * var(--item-angle))) scale(1.15);
    transition-delay: 0ms;
}

/* --- Active/click state --- */
.rw-radial__item:active[b-aygyk3cyn7] {
    transform: rotate(var(--item-angle)) translateY(-88px) rotate(calc(-1 * var(--item-angle))) scale(0.95);
    transition-delay: 0ms;
    transition-duration: 0.08s;
}

/* --- Icon glyph --- */
.rw-radial__icon[b-aygyk3cyn7] {
    font-size: 1.15rem;
    line-height: 1;
    color: color-mix(in srgb, var(--item-color) 80%, var(--rw-text-bright));
    text-shadow: 0 0 6px color-mix(in srgb, var(--item-color) 30%, transparent);
    filter: brightness(1.2);
    pointer-events: none;
}

/* --- Tooltip label on hover via ::after --- */
.rw-radial__item[b-aygyk3cyn7]::after {
    content: attr(data-label);
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) translateY(2px);
    padding: 0.2rem 0.55rem;
    background: var(--rw-glass-bg-dense);
    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-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    color: var(--rw-text-bright);
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}

.rw-radial__item:hover[b-aygyk3cyn7]::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* --- Keyframes --- */

@keyframes rw-radial-sigil-pulse-b-aygyk3cyn7 {
    0%, 100% {
        box-shadow:
            0 0 12px rgba(196, 160, 64, 0.6),
            0 0 28px rgba(196, 160, 64, 0.3),
            0 0 48px rgba(196, 160, 64, 0.1);
    }
    50% {
        box-shadow:
            0 0 16px rgba(196, 160, 64, 0.8),
            0 0 36px rgba(196, 160, 64, 0.4),
            0 0 60px rgba(196, 160, 64, 0.15);
    }
}

@keyframes rw-radial-ring-appear-b-aygyk3cyn7 {
    from {
        opacity: 0;
        transform: scale(0.6);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}
/* /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;
}

/* Dot-grid pattern on canvas */
.rw-storyboard-canvas[b-84wj3i82oc]::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle, rgba(26, 52, 48, 0.3) 1px, transparent 1px);
    background-size: 40px 40px;
    z-index: 0;
}

/* Vignette at canvas edges */
.rw-storyboard-canvas[b-84wj3i82oc]::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at 50% 50%, transparent 55%, rgba(7, 14, 20, 0.4) 100%);
    z-index: 0;
}

/* --- Minimap --- */
.rw-storyboard-minimap[b-84wj3i82oc] {
    position: absolute;
    bottom: 0.75rem;
    right: 0.75rem;
    width: 180px;
    height: 120px;
    background: rgba(7, 14, 20, 0.85);
    backdrop-filter: blur(8px);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md);
    z-index: 420;
    overflow: hidden;
}

/* Override cytoscape-navigator default styles for dark theme */
.rw-storyboard-minimap :deep(.cytoscape-navigator)[b-84wj3i82oc] {
    background: transparent;
    border: none;
}

.rw-storyboard-minimap :deep(.cytoscape-navigatorView)[b-84wj3i82oc] {
    border: 2px solid var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
}

.rw-storyboard-minimap :deep(.cytoscape-navigatorOverlay)[b-84wj3i82oc] {
    background: transparent;
}

/* --- Edgehandles styling --- */
[b-84wj3i82oc] .eh-handle {
    background-color: var(--rw-gold) !important;
    border: 2px solid rgba(7, 14, 20, 0.6) !important;
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.4);
}

[b-84wj3i82oc] .eh-ghost-edge,
[b-84wj3i82oc] .eh-preview {
    opacity: 0.6;
}

@media (max-width: 768px) {
    .rw-storyboard-minimap[b-84wj3i82oc] {
        display: none;
    }
}
/* /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/Display/DisplayEventFeed.razor.rz.scp.css */
/* ============================================================
   Event Feed — Scrolling combat chronicle
   Right column, tiered visual hierarchy for feed entries.
   ============================================================ */

.display-feed[b-fquheggacl] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--rw-display-glass);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border: 1px solid rgba(196, 160, 64, 0.1);
    border-radius: var(--rw-radius-xl);
    overflow: hidden;
}

.display-feed__header[b-fquheggacl] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    color: var(--rw-gold);
    opacity: 0.6;
    padding: 12px 16px 8px;
    text-align: center;
}

.display-feed__scroll[b-fquheggacl] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 12px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    scrollbar-width: none;
    /* Fade mask at top */
    mask-image: linear-gradient(to bottom, transparent 0%, black 8%, black 100%);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 8%, black 100%);
}

.display-feed__scroll[b-fquheggacl]::-webkit-scrollbar {
    display: none;
}

.display-feed__empty[b-fquheggacl] {
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 0.95rem;
    color: var(--rw-sage-muted);
    text-align: center;
    padding: 24px 0;
}

/* --- Feed entry base --- */

.display-feed__anchor[b-fquheggacl] {
    overflow-anchor: auto;
    height: 1px;
    flex-shrink: 0;
}

.feed-entry[b-fquheggacl] {
    overflow-anchor: none;
    padding: 6px 10px;
    border-left: 3px solid var(--rw-sage-dark);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    line-height: 1.45;
    color: var(--rw-sage-cream);
    animation: rw-feed-enter-b-fquheggacl 0.4s ease-out;
    border-radius: 0 var(--rw-radius-sm) var(--rw-radius-sm) 0;
}

.feed-entry__time[b-fquheggacl] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    margin-right: 6px;
}

/* --- Tier: Notable --- */

.feed-entry--notable[b-fquheggacl] {
    border-left-color: var(--rw-gold);
    color: var(--rw-gold-light);
    font-weight: 700;
}

/* --- Tier: Dramatic --- */

.feed-entry--dramatic[b-fquheggacl] {
    border-left-color: var(--rw-blood-bright);
    color: var(--rw-text-bright);
    font-weight: 700;
    font-size: 1.05rem;
    animation: rw-feed-enter-b-fquheggacl 0.4s ease-out, rw-feed-dramatic-glow-b-fquheggacl 1s ease 0.4s;
}

/* --- Tier: Legendary --- */

.feed-entry--legendary[b-fquheggacl] {
    border-left-color: var(--rw-gold-glow);
    background: rgba(196, 160, 64, 0.06);
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    padding: 10px 12px;
    animation: rw-feed-legendary-enter-b-fquheggacl 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* --- Keyword styling --- */

[b-fquheggacl] .feed-keyword--crit {
    color: var(--rw-gold-glow);
    text-shadow: 0 0 6px rgba(196, 160, 64, 0.4);
}

[b-fquheggacl] .feed-keyword--hit {
    color: var(--rw-verdant-bright);
}

[b-fquheggacl] .feed-keyword--miss {
    color: var(--rw-sage-muted);
    font-style: italic;
}

[b-fquheggacl] .feed-keyword--fumble {
    color: var(--rw-blood-bright);
    text-shadow: 0 0 6px rgba(184, 58, 26, 0.4);
}

/* --- Animations --- */

@keyframes rw-feed-enter-b-fquheggacl {
    from {
        opacity: 0;
        transform: translateX(16px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes rw-feed-dramatic-glow-b-fquheggacl {
    from {
        box-shadow: inset -2px 0 8px rgba(184, 58, 26, 0.3);
    }
    to {
        box-shadow: inset -2px 0 0 transparent;
    }
}

@keyframes rw-feed-legendary-enter-b-fquheggacl {
    from {
        opacity: 0;
        transform: translateX(24px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}
/* /Components/Sessions/Display/DisplayInitiativeArc.razor.rz.scp.css */
/* ============================================================
   Initiative Arc — Curved turn-order display
   Horizontal arc with combatant nodes, hero spotlight,
   and "on deck" callout. Designed for TV/projector at 10+ ft.
   ============================================================ */

.initiative-arc[b-9c9zxcx7n7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 0 24px;
    width: 100%;
    min-height: 0;
    flex: 1;
}

/* Encounter name banner */
.initiative-arc__encounter-name[b-9c9zxcx7n7] {
    font-family: var(--rw-font-display);
    font-size: 1.2rem;
    color: var(--rw-gold-light);
    text-align: center;
    letter-spacing: 0.05em;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

/* Round counter */
.initiative-arc__round[b-9c9zxcx7n7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}

.initiative-arc__round-label[b-9c9zxcx7n7] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
}

.initiative-arc__round-num[b-9c9zxcx7n7] {
    font-family: var(--rw-font-display);
    font-size: 1.8rem;
    color: var(--rw-gold);
    text-shadow: 0 0 12px rgba(196, 160, 64, 0.3);
}

/* Node track */
.initiative-arc__track[b-9c9zxcx7n7] {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 16px;
    flex-wrap: nowrap;
    padding-bottom: 8px;
}

/* Individual combatant node */
.arc-node[b-9c9zxcx7n7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative;
}

.arc-node__avatar[b-9c9zxcx7n7] {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    border: 2.5px solid var(--rw-sage-dark);
    background: var(--rw-bg-moss);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s ease;
}

.arc-node__avatar img[b-9c9zxcx7n7] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.arc-node__label[b-9c9zxcx7n7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
}

.arc-node__name[b-9c9zxcx7n7] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
    color: var(--rw-sage-cream);
    max-width: 100px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
}

.arc-node__init[b-9c9zxcx7n7] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
}

/* State badges */
.arc-node__state-badge[b-9c9zxcx7n7] {
    position: absolute;
    bottom: -2px;
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.1em;
    padding: 1px 5px;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
}

.arc-node__state-badge--delayed[b-9c9zxcx7n7] {
    background: rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.3);
}

.arc-node__state-badge--readied[b-9c9zxcx7n7] {
    background: rgba(58, 128, 168, 0.2);
    color: var(--rw-arcane-cyan);
    border: 1px solid rgba(72, 176, 192, 0.3);
}

/* --- Active node --- */

.arc-node--active[b-9c9zxcx7n7] {
    transform: translateY(-12px) scale(1.3);
    z-index: 10;
}

.arc-node--active .arc-node__avatar[b-9c9zxcx7n7] {
    border-color: var(--rw-gold);
    border-width: 3px;
    box-shadow:
        0 0 16px rgba(196, 160, 64, 0.5),
        0 0 32px rgba(196, 160, 64, 0.2);
    animation: rw-arc-active-glow-b-9c9zxcx7n7 3s ease-in-out infinite;
}

.arc-node--active .arc-node__name[b-9c9zxcx7n7] {
    color: var(--rw-gold-light);
}

.arc-node--active .arc-node__init[b-9c9zxcx7n7] {
    color: var(--rw-gold);
}

@keyframes rw-arc-active-glow-b-9c9zxcx7n7 {
    0%, 100% { box-shadow: 0 0 16px rgba(196, 160, 64, 0.5), 0 0 32px rgba(196, 160, 64, 0.2); }
    50% { box-shadow: 0 0 24px rgba(196, 160, 64, 0.7), 0 0 48px rgba(196, 160, 64, 0.3); }
}

/* --- On-deck node --- */

.arc-node--on-deck .arc-node__avatar[b-9c9zxcx7n7] {
    border-color: var(--rw-sage-cream);
    box-shadow: 0 0 8px rgba(192, 212, 200, 0.25);
}

.arc-node--on-deck .arc-node__name[b-9c9zxcx7n7] {
    color: var(--rw-sage-cream);
}

/* --- Done node --- */

.arc-node--done[b-9c9zxcx7n7] {
    transform: scale(0.75);
    opacity: 0.4;
    filter: grayscale(0.5);
}

/* --- Dead node — dramatic death exit --- */

.arc-node--dead[b-9c9zxcx7n7] {
    pointer-events: none;
    animation: rw-arc-death-b-9c9zxcx7n7 1.5s ease forwards;
}

@keyframes rw-arc-death-b-9c9zxcx7n7 {
    0%   { opacity: 1; transform: scale(1); filter: none; }
    20%  { opacity: 1; transform: scale(1.15); filter: brightness(2) saturate(0); }
    40%  { opacity: 0.8; transform: scale(1.05); filter: brightness(1.2) saturate(0); }
    100% { opacity: 0; transform: scale(0.4) translateY(16px); filter: brightness(0) saturate(0); }
}

/* ============================================================
   Hero Spotlight — Active combatant featured callout
   Glass panel with large portrait, name, conditions.
   ============================================================ */

.initiative-arc__spotlight[b-9c9zxcx7n7] {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 16px 28px;
    background: var(--rw-display-glass);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border-radius: var(--rw-radius-lg);
    border: 1px solid rgba(196, 160, 64, 0.2);
    box-shadow: 0 0 24px rgba(196, 160, 64, 0.1);
}

.initiative-arc__spotlight-portrait[b-9c9zxcx7n7] {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 3px solid var(--rw-gold);
    overflow: hidden;
    flex-shrink: 0;
    box-shadow:
        0 0 20px rgba(196, 160, 64, 0.4),
        0 0 40px rgba(196, 160, 64, 0.15);
    animation: rw-spotlight-pulse-b-9c9zxcx7n7 3s ease-in-out infinite;
}

.initiative-arc__spotlight-portrait img[b-9c9zxcx7n7] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@keyframes rw-spotlight-pulse-b-9c9zxcx7n7 {
    0%, 100% {
        box-shadow: 0 0 20px rgba(196, 160, 64, 0.4), 0 0 40px rgba(196, 160, 64, 0.15);
    }
    50% {
        box-shadow: 0 0 28px rgba(196, 160, 64, 0.6), 0 0 56px rgba(196, 160, 64, 0.25);
    }
}

.initiative-arc__spotlight-info[b-9c9zxcx7n7] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.initiative-arc__spotlight-label[b-9c9zxcx7n7] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
}

.initiative-arc__spotlight-name[b-9c9zxcx7n7] {
    font-family: var(--rw-font-display);
    font-size: 2.2rem;
    color: var(--rw-gold-light);
    text-shadow:
        0 0 20px rgba(196, 160, 64, 0.3),
        0 2px 8px rgba(0, 0, 0, 0.6);
    line-height: 1.1;
}

.initiative-arc__spotlight-conditions[b-9c9zxcx7n7] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.initiative-arc__spotlight-condition[b-9c9zxcx7n7] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    padding: 2px 8px;
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.25);
}

.initiative-arc__spotlight-concentration[b-9c9zxcx7n7] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-arcane-cyan);
    margin-top: 2px;
}

/* ============================================================
   On-deck callout — subtle next-up indicator
   ============================================================ */

.initiative-arc__on-deck-callout[b-9c9zxcx7n7] {
    display: flex;
    align-items: center;
    gap: 10px;
    opacity: 0.7;
}

.initiative-arc__on-deck-label[b-9c9zxcx7n7] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.2em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
}

.initiative-arc__on-deck-name[b-9c9zxcx7n7] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-sage-cream);
}
/* /Components/Sessions/Display/DisplayLevelUpOverlay.razor.rz.scp.css */
/* ============================================================
   Level Up Overlay — Full-screen celebration
   The most dramatic animation in the display.
   ============================================================ */

.levelup-overlay[b-byuk8pctt1] {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: radial-gradient(ellipse at center,
        rgba(196, 160, 64, 0.12) 0%,
        rgba(7, 14, 20, 0.95) 70%);
    animation: rw-levelup-life-b-byuk8pctt1 var(--levelup-duration, 8s) ease forwards;
}

/* Flash on entry */
.levelup-flash[b-byuk8pctt1] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, rgba(255, 240, 180, 0.6) 0%, transparent 70%);
    animation: rw-levelup-flash-b-byuk8pctt1 0.5s ease-out forwards;
    pointer-events: none;
}

@keyframes rw-levelup-flash-b-byuk8pctt1 {
    0% { opacity: 0; }
    30% { opacity: 0.7; }
    100% { opacity: 0; }
}

/* Portrait circle */
.levelup-portrait[b-byuk8pctt1] {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    border: 4px solid var(--rw-gold);
    box-shadow:
        0 0 40px rgba(196, 160, 64, 0.4),
        0 0 80px rgba(196, 160, 64, 0.15);
    overflow: hidden;
    background: var(--rw-bg-moss);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: rw-levelup-portrait-rise-b-byuk8pctt1 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s both;
}

.levelup-portrait img[b-byuk8pctt1] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.levelup-portrait__initial[b-byuk8pctt1] {
    font-family: var(--rw-font-display);
    font-size: 4rem;
    color: var(--rw-sage-dark);
}

@keyframes rw-levelup-portrait-rise-b-byuk8pctt1 {
    from {
        opacity: 0;
        transform: scale(0.3);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Character name */
.levelup-name[b-byuk8pctt1] {
    font-family: var(--rw-font-display);
    font-size: 3rem;
    color: var(--rw-gold-light);
    text-shadow:
        0 0 16px rgba(196, 160, 64, 0.5),
        0 3px 8px rgba(0, 0, 0, 0.6);
    animation: rw-levelup-text-enter-b-byuk8pctt1 0.6s cubic-bezier(0.23, 1, 0.32, 1) 0.4s both;
}

/* Class subtitle */
.levelup-class[b-byuk8pctt1] {
    font-family: var(--rw-font-sc);
    font-size: 1.3rem;
    color: var(--rw-sage-cream);
    letter-spacing: 0.1em;
    opacity: 0.8;
    animation: rw-levelup-text-enter-b-byuk8pctt1 0.6s cubic-bezier(0.23, 1, 0.32, 1) 0.5s both;
}

/* Level number — the hero text */
.levelup-level[b-byuk8pctt1] {
    font-family: var(--rw-font-display);
    font-size: 5rem;
    color: var(--rw-gold-glow);
    text-shadow:
        0 0 20px rgba(196, 160, 64, 0.8),
        0 0 50px rgba(196, 160, 64, 0.4),
        0 4px 12px rgba(0, 0, 0, 0.6);
    letter-spacing: 0.05em;
    animation: rw-levelup-burst-b-byuk8pctt1 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.7s both;
    margin-top: 8px;
}

@keyframes rw-levelup-text-enter-b-byuk8pctt1 {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes rw-levelup-burst-b-byuk8pctt1 {
    from {
        opacity: 0;
        transform: scale(0.3);
    }
    70% {
        transform: scale(1.05);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Full overlay lifecycle — hold then fade */
@keyframes rw-levelup-life-b-byuk8pctt1 {
    0% { opacity: 1; }
    80% { opacity: 1; }
    100% { opacity: 0; pointer-events: none; }
}
/* /Components/Sessions/Display/DisplayLootCard.razor.rz.scp.css */
/* ============================================================
   Loot Reveal Card — Rarity-styled item reveal
   Centered overlay with backdrop scrim.
   ============================================================ */

.loot-backdrop[b-psdfsl1yoy] {
    position: fixed;
    inset: 0;
    z-index: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
    animation: rw-loot-backdrop-in-b-psdfsl1yoy 0.3s ease;
}

@keyframes rw-loot-backdrop-in-b-psdfsl1yoy {
    from { opacity: 0; }
    to { opacity: 1; }
}

.loot-card[b-psdfsl1yoy] {
    width: 320px;
    background: var(--rw-display-glass);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-xl);
    overflow: hidden;
    text-align: center;
    padding-bottom: 20px;
    animation: rw-loot-card-enter-b-psdfsl1yoy 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes rw-loot-card-enter-b-psdfsl1yoy {
    from {
        opacity: 0;
        transform: translateY(30px) scale(0.9);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Rarity edge — colored gradient at top */
.loot-card__rarity-edge[b-psdfsl1yoy] {
    height: 3px;
    background: var(--rw-rarity-common);
}

/* --- Image area --- */

.loot-card__image-area[b-psdfsl1yoy] {
    padding: 24px 24px 12px;
}

.loot-card__image[b-psdfsl1yoy] {
    max-width: 120px;
    max-height: 120px;
    object-fit: contain;
    border-radius: var(--rw-radius-md);
}

.loot-card__icon[b-psdfsl1yoy] {
    color: var(--rw-sage-muted);
    opacity: 0.5;
}

/* --- Text --- */

.loot-card__name[b-psdfsl1yoy] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    padding: 0 16px;
    line-height: 1.3;
}

.loot-card__meta[b-psdfsl1yoy] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-sage-tan);
    padding: 4px 16px 0;
}

.loot-card__dot[b-psdfsl1yoy] {
    margin: 0 4px;
}

.loot-card__rarity-badge[b-psdfsl1yoy] {
    font-weight: 700;
}

.loot-card__quantity[b-psdfsl1yoy] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-sage-muted);
    padding-top: 2px;
}

.loot-card__divider[b-psdfsl1yoy] {
    height: 1px;
    background: rgba(255, 255, 255, 0.06);
    margin: 12px 24px;
}

.loot-card__recipient[b-psdfsl1yoy] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-sage-cream);
}

.loot-card__recipient-avatar[b-psdfsl1yoy] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--rw-sage-dark);
}

.loot-card__currency[b-psdfsl1yoy] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding-top: 8px;
}

.loot-card__coin[b-psdfsl1yoy] {
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 700;
}

.loot-card__coin--gold[b-psdfsl1yoy] { color: var(--rw-gold-light); }
.loot-card__coin--silver[b-psdfsl1yoy] { color: var(--rw-sage-cream); }

/* ============================================================
   Rarity-specific styling — glow, tint, name color
   ============================================================ */

.loot-card--common .loot-card__rarity-edge[b-psdfsl1yoy] { background: var(--rw-rarity-common); }
.loot-card--common .loot-card__name[b-psdfsl1yoy] { color: var(--rw-sage-cream); }

.loot-card--uncommon .loot-card__rarity-edge[b-psdfsl1yoy] { background: var(--rw-rarity-uncommon); }
.loot-card--uncommon .loot-card__name[b-psdfsl1yoy] { color: var(--rw-rarity-uncommon); }
.loot-card--uncommon[b-psdfsl1yoy] { box-shadow: 0 0 12px rgba(30, 255, 0, 0.12); }
.loot-card--uncommon .loot-card__rarity-badge[b-psdfsl1yoy] { color: var(--rw-rarity-uncommon); }

.loot-card--rare .loot-card__rarity-edge[b-psdfsl1yoy] { background: var(--rw-rarity-rare); }
.loot-card--rare .loot-card__name[b-psdfsl1yoy] { color: var(--rw-rarity-rare); }
.loot-card--rare[b-psdfsl1yoy] { box-shadow: 0 0 16px rgba(0, 112, 221, 0.2); animation: rw-loot-card-enter-b-psdfsl1yoy 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), rw-loot-glow-pulse-b-psdfsl1yoy 3s ease-in-out infinite 0.6s; }
.loot-card--rare .loot-card__rarity-badge[b-psdfsl1yoy] { color: var(--rw-rarity-rare); }

.loot-card--veryrare .loot-card__rarity-edge[b-psdfsl1yoy] { background: var(--rw-rarity-veryrare); }
.loot-card--veryrare .loot-card__name[b-psdfsl1yoy] { color: var(--rw-rarity-veryrare); }
.loot-card--veryrare[b-psdfsl1yoy] { box-shadow: 0 0 20px rgba(163, 53, 238, 0.25); animation: rw-loot-card-enter-b-psdfsl1yoy 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), rw-loot-glow-pulse-purple-b-psdfsl1yoy 3s ease-in-out infinite 0.8s; }
.loot-card--veryrare .loot-card__rarity-badge[b-psdfsl1yoy] { color: var(--rw-rarity-veryrare); }

.loot-card--legendary .loot-card__rarity-edge[b-psdfsl1yoy] { background: var(--rw-rarity-legendary); height: 4px; }
.loot-card--legendary .loot-card__name[b-psdfsl1yoy] { color: var(--rw-rarity-legendary); font-size: 1.5rem; text-shadow: 0 0 12px rgba(255, 128, 0, 0.3); }
.loot-card--legendary[b-psdfsl1yoy] { box-shadow: 0 0 30px rgba(255, 128, 0, 0.3), 0 0 60px rgba(255, 128, 0, 0.1); animation: rw-loot-card-enter-b-psdfsl1yoy 1s cubic-bezier(0.34, 1.56, 0.64, 1), rw-loot-glow-pulse-gold-b-psdfsl1yoy 2.5s ease-in-out infinite 1s; }
.loot-card--legendary .loot-card__rarity-badge[b-psdfsl1yoy] { color: var(--rw-rarity-legendary); }

.loot-card--artifact .loot-card__rarity-edge[b-psdfsl1yoy] { background: linear-gradient(90deg, #e6cc80, #ff8000, #a335ee, #0070dd, #1eff00, #e6cc80); background-size: 200%; animation: rw-loot-rainbow-b-psdfsl1yoy 3s linear infinite; height: 4px; }
.loot-card--artifact .loot-card__name[b-psdfsl1yoy] { color: var(--rw-rarity-artifact); font-size: 1.5rem; }
.loot-card--artifact[b-psdfsl1yoy] { box-shadow: 0 0 30px rgba(230, 204, 128, 0.3); }
.loot-card--artifact .loot-card__rarity-badge[b-psdfsl1yoy] { color: var(--rw-rarity-artifact); }

@keyframes rw-loot-glow-pulse-b-psdfsl1yoy {
    0%, 100% { box-shadow: 0 0 16px rgba(0, 112, 221, 0.2); }
    50% { box-shadow: 0 0 24px rgba(0, 112, 221, 0.35); }
}

@keyframes rw-loot-glow-pulse-purple-b-psdfsl1yoy {
    0%, 100% { box-shadow: 0 0 20px rgba(163, 53, 238, 0.25); }
    50% { box-shadow: 0 0 32px rgba(163, 53, 238, 0.4); }
}

@keyframes rw-loot-glow-pulse-gold-b-psdfsl1yoy {
    0%, 100% { box-shadow: 0 0 30px rgba(255, 128, 0, 0.3), 0 0 60px rgba(255, 128, 0, 0.1); }
    50% { box-shadow: 0 0 40px rgba(255, 128, 0, 0.5), 0 0 80px rgba(255, 128, 0, 0.2); }
}

@keyframes rw-loot-rainbow-b-psdfsl1yoy {
    from { background-position: 0% center; }
    to { background-position: 200% center; }
}
/* /Components/Sessions/Display/DisplayPartyPanel.razor.rz.scp.css */
/* ============================================================
   Portrait Card — Character cards for the display party panel
   Glass-morphism at display scale with cinematic animations.
   Class-themed frames, condition badges, concentration aura.
   ============================================================ */

/* --- Class frame custom properties (defaults) --- */
.portrait-card[b-e2yceu3txd] {
    --frame-color: var(--rw-border-gold);
    --frame-glow: rgba(196, 160, 64, 0.15);
    --frame-accent: rgba(196, 160, 64, 0.05);

    background: var(--rw-display-glass);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border: 1px solid var(--frame-color);
    border-radius: var(--rw-radius-xl);
    box-shadow: var(--rw-shadow), 0 0 8px var(--frame-glow);
    overflow: hidden;
    transition: all 0.4s ease;
    position: relative;
}

/* ============================================================
   Class-Themed Portrait Frames
   Each class sets unique border/glow/accent colors.
   ============================================================ */

.portrait-card--class-barbarian[b-e2yceu3txd] {
    --frame-color: #8b4513;
    --frame-glow: rgba(139, 69, 19, 0.25);
    --frame-accent: rgba(139, 69, 19, 0.08);
    border-width: 2px;
}

.portrait-card--class-bard[b-e2yceu3txd] {
    --frame-color: #c4a040;
    --frame-glow: rgba(196, 160, 64, 0.3);
    --frame-accent: rgba(196, 160, 64, 0.08);
}

.portrait-card--class-cleric[b-e2yceu3txd] {
    --frame-color: #c0c8d8;
    --frame-glow: rgba(200, 210, 230, 0.3);
    --frame-accent: rgba(220, 225, 240, 0.08);
}

.portrait-card--class-druid[b-e2yceu3txd] {
    --frame-color: #4a8c5c;
    --frame-glow: rgba(74, 140, 92, 0.25);
    --frame-accent: rgba(74, 140, 92, 0.08);
}

.portrait-card--class-fighter[b-e2yceu3txd] {
    --frame-color: #7a8290;
    --frame-glow: rgba(122, 130, 144, 0.2);
    --frame-accent: rgba(122, 130, 144, 0.06);
    border-width: 2px;
}

.portrait-card--class-monk[b-e2yceu3txd] {
    --frame-color: #a08060;
    --frame-glow: rgba(160, 128, 96, 0.2);
    --frame-accent: rgba(160, 128, 96, 0.06);
    border-width: 1px;
}

.portrait-card--class-paladin[b-e2yceu3txd] {
    --frame-color: #d4a840;
    --frame-glow: rgba(212, 168, 64, 0.35);
    --frame-accent: rgba(212, 168, 64, 0.1);
}

.portrait-card--class-ranger[b-e2yceu3txd] {
    --frame-color: #6a7a50;
    --frame-glow: rgba(106, 122, 80, 0.2);
    --frame-accent: rgba(106, 122, 80, 0.06);
}

.portrait-card--class-rogue[b-e2yceu3txd] {
    --frame-color: #5a4870;
    --frame-glow: rgba(90, 72, 112, 0.25);
    --frame-accent: rgba(90, 72, 112, 0.08);
}

.portrait-card--class-sorcerer[b-e2yceu3txd] {
    --frame-color: #6090c0;
    --frame-glow: rgba(96, 144, 192, 0.3);
    --frame-accent: rgba(96, 144, 192, 0.08);
    animation: rw-frame-crackle-b-e2yceu3txd 4s ease-in-out infinite;
}

.portrait-card--class-warlock[b-e2yceu3txd] {
    --frame-color: #6a3a6a;
    --frame-glow: rgba(106, 58, 106, 0.3);
    --frame-accent: rgba(106, 58, 106, 0.08);
}

.portrait-card--class-wizard[b-e2yceu3txd] {
    --frame-color: #4a6a9a;
    --frame-glow: rgba(74, 106, 154, 0.25);
    --frame-accent: rgba(74, 106, 154, 0.08);
}

@keyframes rw-frame-crackle-b-e2yceu3txd {
    0%, 100% { box-shadow: var(--rw-shadow), 0 0 8px var(--frame-glow); }
    25%      { box-shadow: var(--rw-shadow), 0 0 12px var(--frame-glow), 0 0 2px var(--frame-color); }
    50%      { box-shadow: var(--rw-shadow), 0 0 6px var(--frame-glow); }
    75%      { box-shadow: var(--rw-shadow), 0 0 14px var(--frame-glow), 0 0 3px var(--frame-color); }
}

/* --- Portrait image --- */

.portrait-card__image-wrap[b-e2yceu3txd] {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: linear-gradient(135deg, var(--rw-bg-moss) 0%, var(--rw-bg-bark) 100%);
    /* Class-themed accent gradient overlay */
    box-shadow: inset 0 -40px 40px -20px var(--frame-accent);
}

.portrait-card__image[b-e2yceu3txd] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.portrait-card__placeholder[b-e2yceu3txd] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--rw-bg-moss) 0%, var(--rw-bg-bark) 100%);
    font-family: var(--rw-font-display);
    font-size: 2.5rem;
    color: var(--rw-sage-dark);
}

/* Level badge */
.portrait-card__level-badge[b-e2yceu3txd] {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(7, 14, 20, 0.8);
    border: 2px solid var(--frame-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    color: var(--rw-gold-light);
    font-weight: 700;
}

/* ============================================================
   Condition Icons — Small pills along left edge of portrait
   ============================================================ */

.portrait-card__conditions[b-e2yceu3txd] {
    position: absolute;
    top: 6px;
    left: 6px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    z-index: 4;
}

.portrait-card__condition[b-e2yceu3txd] {
    display: block;
    padding: 1px 5px;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(4px);
    animation: rw-condition-enter-b-e2yceu3txd 0.3s ease-out;
}

.portrait-card__condition--debuff-green[b-e2yceu3txd] {
    background: rgba(40, 120, 50, 0.7);
    color: #90e898;
    border: 1px solid rgba(80, 180, 90, 0.4);
}

.portrait-card__condition--debuff-purple[b-e2yceu3txd] {
    background: rgba(90, 50, 120, 0.7);
    color: #c8a0e8;
    border: 1px solid rgba(140, 90, 180, 0.4);
}

.portrait-card__condition--debuff-yellow[b-e2yceu3txd] {
    background: rgba(140, 120, 30, 0.7);
    color: #e8d880;
    border: 1px solid rgba(200, 180, 60, 0.4);
}

.portrait-card__condition--debuff-grey[b-e2yceu3txd] {
    background: rgba(80, 80, 90, 0.7);
    color: #b0b0b8;
    border: 1px solid rgba(130, 130, 140, 0.4);
}

.portrait-card__condition--debuff-orange[b-e2yceu3txd] {
    background: rgba(140, 80, 20, 0.7);
    color: #e8b060;
    border: 1px solid rgba(200, 120, 40, 0.4);
}

.portrait-card__condition--debuff-red[b-e2yceu3txd] {
    background: rgba(140, 30, 20, 0.7);
    color: #e88080;
    border: 1px solid rgba(200, 60, 40, 0.4);
}

.portrait-card__condition--buff-blue[b-e2yceu3txd] {
    background: rgba(30, 80, 140, 0.7);
    color: #80c0e8;
    border: 1px solid rgba(60, 130, 200, 0.4);
}

@keyframes rw-condition-enter-b-e2yceu3txd {
    from { opacity: 0; transform: translateX(-8px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ============================================================
   Concentration Spell Aura
   ============================================================ */

.portrait-card__concentration[b-e2yceu3txd] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 16px 8px 5px;
    background: linear-gradient(to top, rgba(72, 176, 192, 0.3), transparent);
    text-align: center;
    animation: rw-concentration-pulse-b-e2yceu3txd 3s ease-in-out infinite;
}

.portrait-card__concentration-name[b-e2yceu3txd] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    color: var(--rw-arcane-cyan);
    text-shadow: 0 0 6px rgba(72, 176, 192, 0.5);
}

@keyframes rw-concentration-pulse-b-e2yceu3txd {
    0%, 100% { opacity: 0.7; }
    50%      { opacity: 1; }
}

/* Down / Dead overlay */
.portrait-card__down-overlay[b-e2yceu3txd] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(139, 37, 0, 0.4);
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-blood-bright);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
    letter-spacing: 0.15em;
    z-index: 5;
}

.portrait-card__down-overlay--dead[b-e2yceu3txd] {
    background: rgba(0, 0, 0, 0.6);
    color: var(--rw-sage-muted);
}

/* Floating callouts */
.portrait-card__callout[b-e2yceu3txd] {
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    font-weight: 700;
    pointer-events: none;
    animation: rw-display-float-rise-b-e2yceu3txd 1.2s cubic-bezier(0.2, 0.8, 0.3, 1) forwards;
    z-index: 10;
}

.portrait-card__callout--damage[b-e2yceu3txd] {
    color: var(--rw-blood-bright);
    text-shadow: 0 0 8px rgba(184, 58, 26, 0.6);
}

.portrait-card__callout--heal[b-e2yceu3txd] {
    color: var(--rw-verdant-bright);
    text-shadow: 0 0 8px rgba(80, 176, 104, 0.6);
}

.portrait-card__callout--xp[b-e2yceu3txd] {
    color: var(--rw-arcane-cyan);
    text-shadow: 0 0 8px rgba(72, 176, 192, 0.6);
    font-size: 1.1rem;
}

@keyframes rw-display-float-rise-b-e2yceu3txd {
    from {
        opacity: 1;
        transform: translateX(-50%) translateY(0) scale(0.8);
    }
    60% {
        opacity: 1;
        transform: translateX(-50%) translateY(-28px) scale(1.1);
    }
    to {
        opacity: 0;
        transform: translateX(-50%) translateY(-44px) scale(0.9);
    }
}

/* --- Character info --- */

.portrait-card__info[b-e2yceu3txd] {
    padding: 8px 12px 4px;
}

.portrait-card__name[b-e2yceu3txd] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
    text-shadow: 0 1px 4px rgba(196, 160, 64, 0.15);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.portrait-card__subtitle[b-e2yceu3txd] {
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    font-style: italic;
    color: var(--rw-sage-tan);
    line-height: 1.3;
}

/* --- HP bar --- */

.portrait-card__hp[b-e2yceu3txd] {
    padding: 4px 12px 6px;
}

/* --- Stats row --- */

.portrait-card__stats[b-e2yceu3txd] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 2px 12px 10px;
}

.portrait-card__stat[b-e2yceu3txd] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-sage-tan);
}

.portrait-card__stat svg[b-e2yceu3txd] {
    color: var(--rw-sage-muted);
}

/* ============================================================
   Active Turn State
   ============================================================ */

.portrait-card--active[b-e2yceu3txd] {
    transform: translateY(-4px) scale(1.02);
    border-color: var(--rw-gold);
    box-shadow:
        0 0 10px rgba(196, 160, 64, 0.25),
        0 0 20px rgba(196, 160, 64, 0.08),
        var(--rw-shadow);
    animation: rw-portrait-active-pulse-b-e2yceu3txd 3s ease-in-out infinite;
}

@keyframes rw-portrait-active-pulse-b-e2yceu3txd {
    0%, 100% { box-shadow: 0 0 10px rgba(196, 160, 64, 0.25), 0 0 20px rgba(196, 160, 64, 0.08), var(--rw-shadow); }
    50% { box-shadow: 0 0 16px rgba(196, 160, 64, 0.4), 0 0 30px rgba(196, 160, 64, 0.15), var(--rw-shadow); }
}

.portrait-card__turn-badge[b-e2yceu3txd] {
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    padding: 2px 10px;
    background: var(--rw-gold);
    color: var(--rw-bg-void);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.12em;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
    z-index: 5;
}

/* ============================================================
   Critical HP — Heartbeat animation
   Asymmetric pulse: quick squeeze, slow release for tension.
   ============================================================ */

.portrait-card--critical[b-e2yceu3txd] {
    border-color: var(--rw-blood-bright);
    animation: rw-portrait-critical-pulse-b-e2yceu3txd 1.5s ease-in-out infinite;
}

.portrait-card--critical .portrait-card__hp[b-e2yceu3txd] {
    animation: rw-heartbeat-b-e2yceu3txd 1.2s ease-in-out infinite;
}

@keyframes rw-portrait-critical-pulse-b-e2yceu3txd {
    0%, 100% { box-shadow: 0 0 8px rgba(184, 58, 26, 0.15), var(--rw-shadow); }
    50% { box-shadow: 0 0 14px rgba(184, 58, 26, 0.3), var(--rw-shadow); }
}

@keyframes rw-heartbeat-b-e2yceu3txd {
    0%   { transform: scale(1); }
    14%  { transform: scale(1.06); }
    28%  { transform: scale(1); }
    42%  { transform: scale(1.03); }
    70%  { transform: scale(1); }
    100% { transform: scale(1); }
}

/* ============================================================
   Down / Dead States
   ============================================================ */

.portrait-card--down[b-e2yceu3txd] {
    border-color: var(--rw-blood);
    opacity: 0.7;
}

.portrait-card--down .portrait-card__image[b-e2yceu3txd] {
    filter: grayscale(0.6) brightness(0.5);
}

.portrait-card--dead[b-e2yceu3txd] {
    opacity: 0.5;
}

.portrait-card--dead .portrait-card__image[b-e2yceu3txd] {
    filter: grayscale(0.8) brightness(0.4);
}

/* ============================================================
   Empty State
   ============================================================ */

.portrait-panel__empty[b-e2yceu3txd] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    min-height: 200px;
}

.portrait-panel__empty-text[b-e2yceu3txd] {
    font-family: var(--rw-font-display);
    font-size: 1.2rem;
    color: var(--rw-sage-tan);
    font-style: italic;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
    animation: rw-empty-pulse-b-e2yceu3txd 3s ease-in-out infinite;
}

@keyframes rw-empty-pulse-b-e2yceu3txd {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* --- Disconnected player state --- */

.portrait-card--disconnected[b-e2yceu3txd] {
    opacity: 0.45;
    filter: grayscale(0.6);
    transition: opacity 0.6s ease, filter 0.6s ease;
}

.portrait-card--disconnected .portrait-card__image-wrap[b-e2yceu3txd]::after {
    content: "AWAY";
    position: absolute;
    bottom: 6px;
    right: 6px;
    font-family: var(--rw-font-display);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    color: var(--rw-sage-tan);
    background: rgba(0, 0, 0, 0.6);
    padding: 2px 8px;
    border-radius: var(--rw-radius-sm, 4px);
    text-transform: uppercase;
}
/* /Components/Sessions/Display/DisplayQuickNote.razor.rz.scp.css */
/* ============================================================
   Quick Note — GM narrative callout banner
   Bottom-center cinematic subtitle, slides up on arrival.
   ============================================================ */

.quick-note[b-w3mrd4pt1m] {
    position: fixed;
    bottom: 48px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 500;
    max-width: 700px;
    width: 90%;
    padding: 16px 28px;
    border-radius: var(--rw-radius-lg);
    text-align: center;
    pointer-events: none;
    animation: rw-note-enter-b-w3mrd4pt1m 0.6s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

/* --- Narrative (default) --- */
.quick-note--narrative[b-w3mrd4pt1m] {
    background: var(--rw-glass-bg-warm);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border: 1px solid rgba(196, 160, 64, 0.15);
    border-bottom: 2px solid var(--rw-gold);
    box-shadow: var(--rw-glow-narrative), var(--rw-shadow);
}

.quick-note--narrative .quick-note__text[b-w3mrd4pt1m] {
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 1.5rem;
    color: var(--rw-sage-cream);
    text-shadow: 0 1px 6px rgba(196, 160, 64, 0.15);
    line-height: 1.5;
}

/* --- Warning --- */
.quick-note--warning[b-w3mrd4pt1m] {
    background: rgba(40, 12, 8, 0.65);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border: 1px solid rgba(184, 58, 26, 0.2);
    border-bottom: 2px solid var(--rw-blood-bright);
    box-shadow: 0 0 30px rgba(184, 58, 26, 0.1), var(--rw-shadow);
}

.quick-note--warning .quick-note__text[b-w3mrd4pt1m] {
    font-family: var(--rw-font-body);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--rw-text-bright);
    text-shadow: 0 0 8px rgba(184, 58, 26, 0.3);
    line-height: 1.5;
}

/* --- Info --- */
.quick-note--info[b-w3mrd4pt1m] {
    background: rgba(10, 20, 30, 0.65);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border: 1px solid rgba(72, 176, 192, 0.15);
    border-bottom: 2px solid var(--rw-arcane-cyan);
    box-shadow: 0 0 30px rgba(72, 176, 192, 0.08), var(--rw-shadow);
}

.quick-note--info .quick-note__text[b-w3mrd4pt1m] {
    font-family: var(--rw-font-ui);
    font-size: 1.4rem;
    color: var(--rw-arcane-cyan);
    line-height: 1.5;
}

/* --- Animation --- */

@keyframes rw-note-enter-b-w3mrd4pt1m {
    from {
        transform: translateX(-50%) translateY(24px);
        opacity: 0;
    }
    to {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }
}
/* /Components/Sessions/Display/DisplaySceneBackground.razor.rz.scp.css */
.scene-layer[b-v34hiu1t3w] {
    position: fixed;
    inset: 0;
    z-index: 0;
    background-color: var(--rw-bg-void);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1.5s ease;
    pointer-events: none;
}

.scene-layer--visible[b-v34hiu1t3w] {
    opacity: 1;
}

/* ============================================================
   Ambient animation layer — CSS-only atmospheric effects
   Sits between scene background and vignette overlay.
   GPU-friendly: opacity/transform only.
   ============================================================ */

.scene-ambient[b-v34hiu1t3w] {
    position: fixed;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    opacity: 0;
    transition: opacity 1.5s ease;
}

/* Tavern — warm flickering firelight */
.scene-ambient--tavern[b-v34hiu1t3w] {
    opacity: 1;
    background: radial-gradient(ellipse at 50% 85%, rgba(200, 120, 30, 0.12) 0%, transparent 60%);
    animation: rw-scene-flicker-b-v34hiu1t3w 4s ease-in-out infinite;
}

@keyframes rw-scene-flicker-b-v34hiu1t3w {
    0%   { opacity: 0.7; }
    15%  { opacity: 1; }
    30%  { opacity: 0.85; }
    50%  { opacity: 1; }
    65%  { opacity: 0.75; }
    80%  { opacity: 0.95; }
    100% { opacity: 0.7; }
}

/* Forest — slow drifting fog */
.scene-ambient--forest[b-v34hiu1t3w] {
    opacity: 1;
    background:
        linear-gradient(90deg, transparent 0%, rgba(120, 160, 120, 0.06) 30%, transparent 60%),
        linear-gradient(90deg, transparent 40%, rgba(80, 140, 90, 0.05) 70%, transparent 100%);
    animation: rw-scene-fog-b-v34hiu1t3w 20s linear infinite;
}

@keyframes rw-scene-fog-b-v34hiu1t3w {
    from { transform: translateX(-10%); }
    to   { transform: translateX(10%); }
}

/* Dungeon — erratic torchlight */
.scene-ambient--dungeon[b-v34hiu1t3w] {
    opacity: 1;
    background: radial-gradient(ellipse at 30% 60%, rgba(180, 100, 30, 0.08) 0%, transparent 40%),
                radial-gradient(ellipse at 70% 40%, rgba(160, 80, 20, 0.06) 0%, transparent 35%);
    animation: rw-scene-torch-b-v34hiu1t3w 3s ease-in-out infinite;
}

@keyframes rw-scene-torch-b-v34hiu1t3w {
    0%   { opacity: 0.6; }
    10%  { opacity: 1; }
    20%  { opacity: 0.7; }
    35%  { opacity: 0.9; }
    50%  { opacity: 0.5; }
    70%  { opacity: 1; }
    85%  { opacity: 0.65; }
    100% { opacity: 0.6; }
}

/* Castle — subtle golden ambient */
.scene-ambient--castle[b-v34hiu1t3w] {
    opacity: 1;
    background: radial-gradient(ellipse at 50% 30%, rgba(196, 160, 64, 0.06) 0%, transparent 50%);
    animation: rw-scene-glow-b-v34hiu1t3w 6s ease-in-out infinite;
}

/* Cave — pulsing ember glow from below */
.scene-ambient--cave[b-v34hiu1t3w] {
    opacity: 1;
    background: radial-gradient(ellipse at 50% 90%, rgba(180, 60, 10, 0.1) 0%, transparent 45%);
    animation: rw-scene-ember-b-v34hiu1t3w 5s ease-in-out infinite;
}

@keyframes rw-scene-ember-b-v34hiu1t3w {
    0%, 100% { opacity: 0.5; transform: scale(1); }
    50%      { opacity: 1; transform: scale(1.05); }
}

/* Ocean — slow rhythmic sway */
.scene-ambient--ocean[b-v34hiu1t3w] {
    opacity: 1;
    background: linear-gradient(180deg, transparent 40%, rgba(20, 80, 140, 0.08) 70%, rgba(15, 60, 100, 0.12) 100%);
    animation: rw-scene-wave-b-v34hiu1t3w 8s ease-in-out infinite;
}

@keyframes rw-scene-wave-b-v34hiu1t3w {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}

/* Desert — slow heat shimmer */
.scene-ambient--desert[b-v34hiu1t3w] {
    opacity: 1;
    background: linear-gradient(180deg, rgba(200, 160, 60, 0.06) 0%, transparent 30%),
                radial-gradient(ellipse at 50% 100%, rgba(180, 120, 40, 0.08) 0%, transparent 50%);
    animation: rw-scene-shimmer-b-v34hiu1t3w 6s ease-in-out infinite;
}

@keyframes rw-scene-shimmer-b-v34hiu1t3w {
    0%, 100% { opacity: 0.6; transform: scaleY(1); }
    50%      { opacity: 1; transform: scaleY(1.01); }
}

/* Mountain — slow cloud drift */
.scene-ambient--mountain[b-v34hiu1t3w] {
    opacity: 1;
    background: linear-gradient(90deg, transparent 0%, rgba(180, 190, 210, 0.05) 40%, transparent 80%);
    animation: rw-scene-clouds-b-v34hiu1t3w 25s linear infinite;
}

@keyframes rw-scene-clouds-b-v34hiu1t3w {
    from { transform: translateX(-15%); }
    to   { transform: translateX(15%); }
}

/* City — distant warm window glow */
.scene-ambient--city[b-v34hiu1t3w] {
    opacity: 1;
    background: radial-gradient(ellipse at 30% 70%, rgba(200, 150, 50, 0.06) 0%, transparent 30%),
                radial-gradient(ellipse at 70% 60%, rgba(180, 130, 40, 0.05) 0%, transparent 25%);
    animation: rw-scene-glow-b-v34hiu1t3w 7s ease-in-out infinite;
}

@keyframes rw-scene-glow-b-v34hiu1t3w {
    0%, 100% { opacity: 0.6; }
    50%      { opacity: 1; }
}

/* Neutral fallback — very subtle pulse */
.scene-ambient--neutral[b-v34hiu1t3w] {
    opacity: 1;
    background: radial-gradient(ellipse at 50% 50%, rgba(100, 120, 110, 0.04) 0%, transparent 50%);
    animation: rw-scene-glow-b-v34hiu1t3w 8s ease-in-out infinite;
}
/* /Components/Sessions/Display/DisplaySessionTimer.razor.rz.scp.css */
.session-timer[b-8v1azjpwtj] {
    position: fixed;
    bottom: 16px;
    right: 20px;
    z-index: 10;
    font-family: var(--rw-font-sc);
    font-size: 1.1rem;
    color: var(--rw-sage-muted);
    letter-spacing: 0.15em;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
    opacity: 0.7;
    pointer-events: none;
}
/* /Components/Sessions/Display/DisplayXpCallout.razor.rz.scp.css */
/* ============================================================
   XP Callout — Floating reward numbers
   Teal-colored, staggered per character.
   ============================================================ */

.xp-callout-container[b-p05wqbqrbp] {
    position: fixed;
    bottom: 100px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 400;
    display: flex;
    gap: 24px;
}

.xp-callout[b-p05wqbqrbp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    animation: rw-xp-float-b-p05wqbqrbp 2s cubic-bezier(0.2, 0.8, 0.3, 1) both;
    pointer-events: none;
}

.xp-callout__name[b-p05wqbqrbp] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-sage-tan);
}

.xp-callout__amount[b-p05wqbqrbp] {
    font-family: var(--rw-font-ui);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--rw-arcane-cyan);
    text-shadow: 0 0 10px rgba(72, 176, 192, 0.5);
}

@keyframes rw-xp-float-b-p05wqbqrbp {
    from {
        opacity: 0;
        transform: translateY(0) scale(0.8);
    }
    20% {
        opacity: 1;
        transform: translateY(-12px) scale(1.1);
    }
    70% {
        opacity: 1;
    }
    to {
        opacity: 0;
        transform: translateY(-40px) scale(0.9);
    }
}
/* /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 === */
/* Negative margin extends gold-tinted zone to panel edges (depends on parent padding: 1rem) */
.rw-detail-panel__header[b-w6efaqbrxh] {
    position: relative;
    background: linear-gradient(
        180deg,
        rgba(196, 160, 64, 0.05) 0%,
        rgba(196, 160, 64, 0.02) 60%,
        transparent 100%
    );
    border-radius: var(--rw-radius-lg) var(--rw-radius-lg) 0 0;
    margin: -1rem -1rem 0 -1rem;
    padding: 1rem 1rem 0.75rem 1rem;
}

/* --- Banner: Portrait + Identity --- */
.rw-detail-panel__banner[b-w6efaqbrxh] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* --- Portrait (Brass Double-Ring Frame) --- */
.rw-detail-panel__portrait[b-w6efaqbrxh] {
    width: 128px;
    height: 128px;
    border-radius: var(--rw-radius-xl);
    overflow: hidden;
    flex-shrink: 0;
    border: 3px solid var(--rw-gold);
    outline: 2px solid rgba(196, 160, 64, 0.15);
    outline-offset: 3px;
    box-shadow:
        0 0 24px rgba(196, 160, 64, 0.25),
        0 6px 28px rgba(0, 0, 0, 0.55),
        inset 0 0 12px rgba(0, 0, 0, 0.5);
    position: relative;
    transition: box-shadow 0.3s ease;
}

.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.75rem;
    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 === */

/* Wide detail pane (bottom-sheet on tablets spans full viewport) */
@container detail-pane (min-width: 500px) {
    .rw-detail-panel__portrait[b-w6efaqbrxh] {
        width: 144px;
        height: 144px;
    }

    .rw-detail-panel__name[b-w6efaqbrxh] {
        font-size: 1.9rem;
    }

    .rw-detail-panel__stat-strip[b-w6efaqbrxh] {
        gap: 0.65rem;
    }

    .rw-detail-stat-box[b-w6efaqbrxh] {
        padding: 0.5rem 0.85rem;
        min-width: 68px;
    }
}

@container detail-pane (max-width: 480px) {
    .rw-detail-panel__portrait[b-w6efaqbrxh] {
        width: 88px;
        height: 88px;
        outline-offset: 2px;
    }

    .rw-detail-panel__name[b-w6efaqbrxh] {
        font-size: 1.25rem;
    }

    .rw-detail-panel__banner[b-w6efaqbrxh] {
        gap: 0.65rem;
    }

    .rw-detail-panel__header[b-w6efaqbrxh] {
        margin: -0.75rem -0.75rem 0 -0.75rem;
        padding: 0.75rem 0.75rem 0.5rem 0.75rem;
    }
}

/* Very narrow pane — stack HP controls */
@container detail-pane (max-width: 380px) {
    .rw-detail-panel__hp-row[b-w6efaqbrxh] {
        flex-direction: column;
        align-items: stretch;
    }

    .rw-detail-panel__hp-controls[b-w6efaqbrxh] {
        align-self: flex-end;
    }

    .rw-detail-panel__portrait[b-w6efaqbrxh] {
        width: 72px;
        height: 72px;
        outline: none;
    }

    .rw-detail-panel__name[b-w6efaqbrxh] {
        font-size: 1.1rem;
    }
}

@media (max-width: 900px) {
    .rw-detail-panel__portrait[b-w6efaqbrxh] {
        width: 88px;
        height: 88px;
        outline-offset: 2px;
    }

    .rw-detail-panel__name[b-w6efaqbrxh] {
        font-size: 1.3rem;
    }

    .rw-detail-panel__banner[b-w6efaqbrxh] {
        gap: 0.65rem;
    }

    .rw-detail-panel__header[b-w6efaqbrxh] {
        margin: -0.75rem -0.75rem 0 -0.75rem;
        padding: 0.75rem 0.75rem 0.5rem 0.75rem;
    }
}
/* /Components/Sessions/Gm/DisplayControlPanel.razor.rz.scp.css */
/* ============================================================
   Display Control Panel — GM drawer for session display
   Enchanted forest aesthetic with tactile controls
   ============================================================ */

.display-control[b-f4lv4pqmja] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

/* --- Sections & Headers --- */

.display-control__section[b-f4lv4pqmja] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--rw-border);
}

.display-control__section:first-of-type[b-f4lv4pqmja] {
    border-top: none;
    padding-top: 0;
}

.display-control__section-header[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.18em;
    color: var(--rw-gold);
    opacity: 0.65;
    text-transform: uppercase;
}

.display-control__section-header svg[b-f4lv4pqmja] {
    opacity: 0.7;
    flex-shrink: 0;
}

/* --- Launch Button --- */

.display-control__launch-btn[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 11px 14px;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.12), rgba(196, 160, 64, 0.06));
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-md);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all 0.25s ease;
    position: relative;
    overflow: hidden;
}

.display-control__launch-btn[b-f4lv4pqmja]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), transparent 60%);
    opacity: 0;
    transition: opacity 0.25s ease;
}

.display-control__launch-btn:hover[b-f4lv4pqmja] {
    border-color: var(--rw-border-strong);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.18), rgba(196, 160, 64, 0.08));
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.1), inset 0 1px 0 rgba(196, 160, 64, 0.1);
}

.display-control__launch-btn:hover[b-f4lv4pqmja]::before {
    opacity: 1;
}

.display-control__launch-btn:active[b-f4lv4pqmja] {
    transform: scale(0.985);
}

.display-control__launch-icon[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    opacity: 0.8;
}

.display-control__launch-text[b-f4lv4pqmja] {
    flex: 1;
    text-align: left;
}

.display-control__launch-arrow[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    opacity: 0.5;
    transition: all 0.25s ease;
}

.display-control__launch-btn:hover .display-control__launch-arrow[b-f4lv4pqmja] {
    opacity: 0.9;
    transform: translate(2px, -2px);
}

/* --- Toggle Switches --- */

.display-control__toggles[b-f4lv4pqmja] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    background: rgba(0, 0, 0, 0.15);
    border-radius: var(--rw-radius-md);
    padding: 4px;
}

.display-control__toggle-row[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 8px;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: background 0.15s ease;
}

.display-control__toggle-row:hover[b-f4lv4pqmja] {
    background: rgba(255, 255, 255, 0.03);
}

.display-control__toggle-label[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-sage-cream);
}

.display-control__toggle-label svg[b-f4lv4pqmja] {
    color: var(--rw-sage-muted);
    flex-shrink: 0;
}

/* Custom switch track */
.display-control__switch[b-f4lv4pqmja] {
    position: relative;
    width: 36px;
    height: 20px;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-pill);
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
}

.display-control__switch-knob[b-f4lv4pqmja] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    background: var(--rw-sage-muted);
    border-radius: 50%;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.display-control__switch--on[b-f4lv4pqmja] {
    background: rgba(196, 160, 64, 0.2);
    border-color: rgba(196, 160, 64, 0.4);
}

.display-control__switch--on .display-control__switch-knob[b-f4lv4pqmja] {
    left: 18px;
    background: var(--rw-gold-light);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.4), 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* --- Scene Grid --- */

.display-control__scene-grid[b-f4lv4pqmja] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 5px;
}

.display-control__scene-thumb[b-f4lv4pqmja] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    aspect-ratio: 1;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    padding: 4px 2px;
    position: relative;
    overflow: hidden;
}

.display-control__scene-thumb[b-f4lv4pqmja]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, rgba(196, 160, 64, 0.06), transparent 70%);
    opacity: 0;
    transition: opacity 0.2s ease;
}

.display-control__scene-thumb:hover[b-f4lv4pqmja] {
    border-color: var(--rw-sage-muted);
    background: var(--rw-bg-moss-2);
    transform: translateY(-1px);
}

.display-control__scene-thumb:hover[b-f4lv4pqmja]::before {
    opacity: 1;
}

.display-control__scene-thumb--active[b-f4lv4pqmja] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.15), inset 0 0 12px rgba(196, 160, 64, 0.05);
}

.display-control__scene-thumb--active[b-f4lv4pqmja]::before {
    opacity: 1;
}

.display-control__scene-thumb:active[b-f4lv4pqmja] {
    transform: scale(0.95);
}

.display-control__scene-icon[b-f4lv4pqmja] {
    font-size: 1.1rem;
    line-height: 1;
    filter: grayscale(0.3);
    transition: filter 0.2s ease;
}

.display-control__scene-thumb--active .display-control__scene-icon[b-f4lv4pqmja] {
    filter: grayscale(0);
}

.display-control__scene-label[b-f4lv4pqmja] {
    font-family: var(--rw-font-ui);
    font-size: 0.5rem;
    color: var(--rw-sage-tan);
    text-align: center;
    line-height: 1;
    letter-spacing: 0.02em;
}

.display-control__scene-thumb--active .display-control__scene-label[b-f4lv4pqmja] {
    color: var(--rw-gold-light);
}

/* --- Note Style Pills --- */

.display-control__note-style-pills[b-f4lv4pqmja] {
    display: flex;
    gap: 4px;
    background: rgba(0, 0, 0, 0.15);
    border-radius: var(--rw-radius-md);
    padding: 3px;
}

.display-control__style-pill[b-f4lv4pqmja] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 5px 6px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-sage-tan);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.display-control__style-pill:hover[b-f4lv4pqmja] {
    color: var(--rw-sage-cream);
    background: rgba(255, 255, 255, 0.04);
}

.display-control__style-pill--active[b-f4lv4pqmja] {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
}

.display-control__style-pill--active.display-control__style-pill--narrative[b-f4lv4pqmja] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.2);
}

.display-control__style-pill--active.display-control__style-pill--warning[b-f4lv4pqmja] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
    border-color: rgba(184, 58, 26, 0.25);
}

.display-control__style-pill--active.display-control__style-pill--info[b-f4lv4pqmja] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.1);
    border-color: rgba(72, 176, 192, 0.2);
}

/* --- Note Compose Area --- */

.display-control__note-compose[b-f4lv4pqmja] {
    display: flex;
    gap: 6px;
    align-items: flex-end;
}

.display-control__note-input[b-f4lv4pqmja] {
    flex: 1;
    resize: none;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 0.82rem;
    padding: 8px 10px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    line-height: 1.4;
}

.display-control__note-input[b-f4lv4pqmja]::placeholder {
    color: var(--rw-sage-muted);
    opacity: 0.6;
}

.display-control__note-input:focus[b-f4lv4pqmja] {
    outline: none;
    border-color: var(--rw-border-gold);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.08);
}

.display-control__note-send[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-sage-muted);
    cursor: not-allowed;
    transition: all 0.25s ease;
    flex-shrink: 0;
}

.display-control__note-send--ready[b-f4lv4pqmja] {
    cursor: pointer;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.3);
}

.display-control__note-send--ready:hover[b-f4lv4pqmja] {
    background: rgba(196, 160, 64, 0.2);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
    transform: scale(1.05);
}

.display-control__note-send--ready:active[b-f4lv4pqmja] {
    transform: scale(0.95);
}
/* /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;
    /* Keep below drawer z-index (210) so drawers are clickable */
    z-index: 0;
    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;
}

/* --- Encounter Title --- */
.gm-battlefield__encounter-title[b-zsb8suiwi6] {
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light);
    text-shadow: 0 0 12px rgba(196, 160, 64, 0.12);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
    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: 1 1 0%;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    overflow-y: auto;
    padding: 0.75rem;
    min-height: 0;
    min-width: 0;
}

/* --- Right: Detail Panel --- */
.gm-battlefield__detail[b-zsb8suiwi6] {
    flex: 0 0 420px;
    min-width: 360px;
    max-width: 480px;
    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(320px, 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 === */
/* === Loot Drop Zone Strip === */
.gm-battlefield__loot-strip[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: rgba(196, 160, 64, 0.08);
    border-top: 1px solid rgba(196, 160, 64, 0.2);
    animation: lootStripFadeIn-b-zsb8suiwi6 0.3s ease-out;
}

@keyframes lootStripFadeIn-b-zsb8suiwi6 {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.gm-battlefield__loot-strip-label[b-zsb8suiwi6] {
    font-size: 0.7rem;
    color: rgba(196, 160, 64, 0.7);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.gm-battlefield__loot-targets[b-zsb8suiwi6] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    flex: 1;
}

.gm-battlefield__loot-target[b-zsb8suiwi6] {
    min-width: 0;
}

:deep(.gm-battlefield__loot-target .rw-drop-zone)[b-zsb8suiwi6] {
    border-radius: var(--rw-radius-lg, 8px);
}

.gm-battlefield__loot-target-inner[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.6rem;
    background: var(--rw-glass-bg, rgba(20, 30, 30, 0.6));
    border: 1px dashed rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius-lg, 8px);
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
    cursor: default;
}

:global(.rw-drop-active) .gm-battlefield__loot-target-inner[b-zsb8suiwi6] {
    border-color: rgba(196, 160, 64, 0.7);
    background: rgba(196, 160, 64, 0.12);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.2);
}

.gm-battlefield__loot-target-portrait[b-zsb8suiwi6] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
}

.gm-battlefield__loot-target-name[b-zsb8suiwi6] {
    font-size: 0.75rem;
    color: var(--rw-text-secondary, #aaa);
    white-space: nowrap;
}

.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 COMMAND CENTER — 3-column layout (no encounter)
   ============================================================ */

.gm-battlefield__narrative-command[b-zsb8suiwi6] {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(300px, 1.4fr) minmax(200px, 1fr);
    min-height: 0;
    overflow: hidden;
}

.gm-narrative-command__scenes[b-zsb8suiwi6],
.gm-narrative-command__center[b-zsb8suiwi6],
.gm-narrative-command__quests[b-zsb8suiwi6] {
    overflow-y: auto;
    min-height: 0;
    padding: 0.75rem;
}

.gm-narrative-command__scenes[b-zsb8suiwi6] {
    border-right: 1px solid var(--rw-border);
}

.gm-narrative-command__quests[b-zsb8suiwi6] {
    border-left: 1px solid var(--rw-border);
}

/* === RESPONSIVE === */

/* Intermediate: tighten detail panel */
@media (max-width: 1200px) {
    .gm-battlefield__detail[b-zsb8suiwi6] {
        flex: 0 0 380px;
        min-width: 340px;
        max-width: 420px;
    }

    .gm-battlefield__grid[b-zsb8suiwi6] {
        grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    }
}

/* Below 900px: Detail panel becomes bottom sheet, narrative stacks */
@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;
        min-width: unset;
        max-width: unset;
        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(260px, 1fr));
    }

    /* Narrative: stack vertically */
    .gm-battlefield__narrative-command[b-zsb8suiwi6] {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr auto;
        overflow-y: auto;
    }

    .gm-narrative-command__scenes[b-zsb8suiwi6] {
        border-right: none;
        border-bottom: 1px solid var(--rw-border);
        max-height: 35vh;
    }

    .gm-narrative-command__quests[b-zsb8suiwi6] {
        border-left: none;
        border-top: 1px solid var(--rw-border);
        max-height: 35vh;
    }
}

/* 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-command__scenes[b-zsb8suiwi6],
    .gm-narrative-command__quests[b-zsb8suiwi6] {
        max-height: 30vh;
    }
}
/* /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-display);
    font-size: 1rem;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light);
    text-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
    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: 20%;
    right: 20%;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--rw-gold), transparent);
    border-radius: 2px;
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.5), 0 0 4px rgba(196, 160, 64, 0.3);
}

/* 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;
}

/* === LOOTABLE — Draggable dead monster === */
.rw-monster-card--lootable[b-6l6mr3aawr] {
    cursor: grab;
    opacity: 0.65;
    border-color: rgba(196, 160, 64, 0.3);
    transition: opacity 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.rw-monster-card--lootable:hover[b-6l6mr3aawr] {
    opacity: 0.85;
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
}

.rw-monster-card--lootable[b-6l6mr3aawr]::after {
    content: '\1F4B0';
    position: absolute;
    top: 4px;
    right: 30px;
    font-size: 0.75rem;
    opacity: 0.7;
}

/* === 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.6rem;
    padding: 0.5rem 0.75rem;
    min-height: 64px;
    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: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2.5px 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: 90px;
    flex-shrink: 0;
}

/* Override HpBar height for roster compact mode */
.rw-roster-card__hp[b-642kbxm11b]  .rw-hp-bar {
    height: 10px;
    border-radius: 5px;
}

.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: 56px;
        padding: 0.4rem 0.55rem;
        gap: 0.45rem;
    }

    .rw-roster-card__portrait[b-642kbxm11b] {
        width: 40px;
        height: 40px;
    }

    .rw-roster-card__hp[b-642kbxm11b] {
        width: 70px;
    }
}

@media (max-width: 600px) {
    .rw-roster-card__portrait[b-642kbxm11b] {
        width: 36px;
        height: 36px;
    }

    .rw-roster-card__hp[b-642kbxm11b] {
        width: 60px;
    }

    .rw-roster-card__hp[b-642kbxm11b]  .rw-hp-bar {
        height: 8px;
    }
}

/* Show HP label on wide desktops */
@media (min-width: 1200px) {
    .rw-roster-card__hp[b-642kbxm11b]  .rw-hp-bar__label {
        display: block;
        font-size: 0.55rem;
    }
}
/* /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/LootPreviewModal.razor.rz.scp.css */
/* ============================================================
   LootPreviewModal — GM Loot Review Dossier
   Compact overlay for reviewing and editing rolled loot
   before releasing results to the player.
   ============================================================ */

.loot-preview[b-htb4h3gfhq] {
    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.35);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    animation: loot-preview-enter-b-htb4h3gfhq 0.3s ease-out;
    min-width: 320px;
    max-width: 420px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}

@keyframes loot-preview-enter-b-htb4h3gfhq {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.loot-preview[b-htb4h3gfhq]::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 === */

.loot-preview__header[b-htb4h3gfhq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.1);
}

.loot-preview__title-row[b-htb4h3gfhq] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.loot-preview__icon[b-htb4h3gfhq] {
    font-size: 0.7rem;
}

.loot-preview__title[b-htb4h3gfhq] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    color: var(--rw-gold);
}

.loot-preview__subtitle[b-htb4h3gfhq] {
    font-family: var(--rw-font-body);
    font-size: 0.55rem;
    color: var(--rw-text-faint);
    margin-left: 0.15rem;
}

.loot-preview__close[b-htb4h3gfhq] {
    all: unset;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    transition: color var(--rw-transition);
}

.loot-preview__close:hover[b-htb4h3gfhq] {
    color: var(--rw-blood-bright);
}

/* === FLAVOR TEXT === */

.loot-preview__flavor[b-htb4h3gfhq] {
    padding: 0.3rem 0.5rem;
    font-family: var(--rw-font-body);
    font-size: 0.52rem;
    color: var(--rw-text-faint);
    font-style: italic;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

/* === ITEMS LIST === */

.loot-preview__items[b-htb4h3gfhq] {
    flex: 1;
    overflow-y: auto;
    padding: 0.3rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.loot-preview__empty[b-htb4h3gfhq] {
    padding: 0.5rem;
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.loot-preview__item[b-htb4h3gfhq] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.35rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    transition: border-color var(--rw-transition);
    animation: loot-item-in-b-htb4h3gfhq 0.2s ease-out;
}

@keyframes loot-item-in-b-htb4h3gfhq {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: translateX(0); }
}

.loot-preview__item:hover[b-htb4h3gfhq] {
    border-color: rgba(196, 160, 64, 0.2);
}

/* Item icon / placeholder */
.loot-preview__item-icon[b-htb4h3gfhq] {
    width: 28px;
    height: 28px;
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.loot-preview__item-icon img[b-htb4h3gfhq] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.loot-preview__item-placeholder[b-htb4h3gfhq] {
    font-size: 0.7rem;
}

/* Item name + type */
.loot-preview__item-info[b-htb4h3gfhq] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-width: 0;
}

.loot-preview__item-name[b-htb4h3gfhq] {
    font-family: var(--rw-font-body);
    font-size: 0.58rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.loot-preview__type-badge[b-htb4h3gfhq] {
    font-family: var(--rw-font-ui);
    font-size: 0.38rem;
    padding: 0.01rem 0.15rem;
    border-radius: 999px;
    width: fit-content;
    color: var(--rw-text-faint);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.loot-preview__type-badge--equipment[b-htb4h3gfhq] {
    color: var(--rw-arcane-cyan);
    border-color: rgba(72, 176, 192, 0.2);
}

.loot-preview__type-badge--magicitem[b-htb4h3gfhq] {
    color: #c78dff;
    border-color: rgba(199, 141, 255, 0.2);
}

.loot-preview__type-badge--component[b-htb4h3gfhq] {
    color: var(--rw-verdant-bright);
    border-color: rgba(80, 176, 104, 0.2);
}

.loot-preview__type-badge--junk[b-htb4h3gfhq] {
    color: var(--rw-text-faint);
    border-color: rgba(255, 255, 255, 0.06);
}

/* Editable fields */
.loot-preview__item-qty[b-htb4h3gfhq],
.loot-preview__item-currency[b-htb4h3gfhq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.05rem;
}

.loot-preview__micro-label[b-htb4h3gfhq] {
    font-family: var(--rw-font-sc);
    font-size: 0.32rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.loot-preview__input[b-htb4h3gfhq] {
    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.58rem;
    padding: 0.15rem 0.25rem;
    outline: none;
    transition: border-color var(--rw-transition);
}

.loot-preview__input:focus[b-htb4h3gfhq] {
    border-color: var(--rw-gold);
}

.loot-preview__input--sm[b-htb4h3gfhq] {
    width: 38px;
    text-align: center;
    -moz-appearance: textfield;
}

.loot-preview__input--sm[b-htb4h3gfhq]::-webkit-outer-spin-button,
.loot-preview__input--sm[b-htb4h3gfhq]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

.loot-preview__input--name[b-htb4h3gfhq] {
    flex: 1;
    min-width: 80px;
}

.loot-preview__remove-btn[b-htb4h3gfhq] {
    all: unset;
    cursor: pointer;
    font-size: 0.5rem;
    color: var(--rw-text-faint);
    padding: 0.1rem;
    border-radius: var(--rw-radius-sm);
    transition: color var(--rw-transition), background var(--rw-transition);
}

.loot-preview__remove-btn:hover[b-htb4h3gfhq] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
}

/* === ADD ROW === */

.loot-preview__add-row[b-htb4h3gfhq] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.35rem;
    margin: 0 0.3rem 0.2rem;
    background: rgba(196, 160, 64, 0.04);
    border: 1px dashed rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-sm);
    animation: loot-item-in-b-htb4h3gfhq 0.2s ease-out;
}

.loot-preview__add-confirm[b-htb4h3gfhq] {
    all: unset;
    cursor: pointer;
    padding: 0.15rem 0.35rem;
    font-family: var(--rw-font-sc);
    font-size: 0.45rem;
    letter-spacing: 0.04em;
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.3);
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.loot-preview__add-confirm:not(:disabled):hover[b-htb4h3gfhq] {
    background: rgba(61, 138, 85, 0.1);
}

.loot-preview__add-confirm:disabled[b-htb4h3gfhq] {
    opacity: 0.35;
    cursor: not-allowed;
}

.loot-preview__add-cancel[b-htb4h3gfhq] {
    all: unset;
    cursor: pointer;
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    transition: color var(--rw-transition);
}

.loot-preview__add-cancel:hover[b-htb4h3gfhq] {
    color: var(--rw-blood-bright);
}

/* === ACTION BAR === */

.loot-preview__actions[b-htb4h3gfhq] {
    display: flex;
    gap: 0.3rem;
    padding: 0.35rem 0.5rem;
    border-top: 1px solid rgba(196, 160, 64, 0.1);
}

.loot-preview__btn[b-htb4h3gfhq] {
    all: unset;
    cursor: pointer;
    padding: 0.2rem 0.45rem;
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    letter-spacing: 0.04em;
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
    white-space: nowrap;
}

.loot-preview__btn--add[b-htb4h3gfhq] {
    color: var(--rw-text-faint);
    border: 1px solid var(--rw-border);
}

.loot-preview__btn--add:hover[b-htb4h3gfhq] {
    color: var(--rw-text);
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.03);
}

.loot-preview__btn--reroll[b-htb4h3gfhq] {
    color: var(--rw-arcane-cyan);
    border: 1px solid rgba(72, 176, 192, 0.25);
    background: rgba(72, 176, 192, 0.05);
}

.loot-preview__btn--reroll:hover[b-htb4h3gfhq] {
    background: rgba(72, 176, 192, 0.1);
    box-shadow: 0 0 8px rgba(72, 176, 192, 0.1);
}

.loot-preview__btn--approve[b-htb4h3gfhq] {
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.35);
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.15) 0%, rgba(61, 138, 85, 0.05) 100%);
    margin-left: auto;
}

.loot-preview__btn--approve:hover[b-htb4h3gfhq] {
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.25) 0%, rgba(61, 138, 85, 0.1) 100%);
    box-shadow: 0 0 10px rgba(61, 138, 85, 0.15);
}
/* /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/NarrativeActionPanel.razor.rz.scp.css */
/* ============================================================
   Narrative Action Panel — Central GM command area
   ============================================================ */

.rw-narrative-actions[b-fn0zv5sfrc] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    position: relative;
}

/* --- Scene Context --- */

.rw-narrative-actions__scene-context[b-fn0zv5sfrc] {
    padding: 0.85rem 0.75rem;
    background: linear-gradient(
        135deg,
        rgba(196, 160, 64, 0.06) 0%,
        rgba(15, 32, 40, 0.4) 100%
    );
    border: 1px solid rgba(196, 160, 64, 0.15);
    border-radius: var(--rw-radius-lg);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex-shrink: 0;
}

.rw-narrative-actions__scene-context--empty[b-fn0zv5sfrc] {
    align-items: center;
    text-align: center;
    padding: 1.25rem 1rem;
}

.rw-narrative-actions__scene-badge[b-fn0zv5sfrc] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-gold);
    opacity: 0.7;
}

.rw-narrative-actions__scene-title[b-fn0zv5sfrc] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    margin: 0;
    line-height: 1.2;
    text-shadow: 0 1px 8px rgba(196, 160, 64, 0.2);
}

.rw-narrative-actions__scene-title--dim[b-fn0zv5sfrc] {
    color: var(--rw-text-bright);
    text-shadow: none;
    font-size: 1.3rem;
    animation: rw-narrative-title-glow-b-fn0zv5sfrc 4s ease-in-out infinite;
}

@keyframes rw-narrative-title-glow-b-fn0zv5sfrc {
    0%, 100% { text-shadow: 0 1px 8px rgba(196, 160, 64, 0.15); }
    50% { text-shadow: 0 1px 16px rgba(196, 160, 64, 0.35), 0 0 30px rgba(196, 160, 64, 0.1); }
}

.rw-narrative-actions__scene-desc[b-fn0zv5sfrc] {
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    line-height: 1.5;
    margin: 0;
}

.rw-narrative-actions__scene-location[b-fn0zv5sfrc] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-arcane-blue, #6ab4d4);
}

/* --- Party Overview --- */

.rw-narrative-actions__party[b-fn0zv5sfrc] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    flex-shrink: 0;
}

.rw-narrative-actions__section-label[b-fn0zv5sfrc] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
    opacity: 0.7;
}

.rw-narrative-actions__party-grid[b-fn0zv5sfrc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.rw-narrative-actions__party-chip[b-fn0zv5sfrc] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.55rem 0.3rem 0.3rem;
    background: var(--rw-glass-bg, rgba(15, 32, 40, 0.5));
    border: 1px solid var(--rw-border);
    border-radius: 20px;
    transition: all 0.2s;
}

.rw-narrative-actions__party-chip:hover[b-fn0zv5sfrc] {
    border-color: rgba(80, 176, 104, 0.3);
    background: rgba(20, 40, 48, 0.7);
}

.rw-narrative-actions__party-portrait[b-fn0zv5sfrc] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    border: 1.5px solid var(--rw-verdant);
    box-shadow: 0 0 6px rgba(61, 138, 85, 0.1);
}

.rw-narrative-actions__party-name[b-fn0zv5sfrc] {
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
}

/* --- Encounter Creation --- */

.rw-narrative-actions__encounter-create[b-fn0zv5sfrc] {
    flex-shrink: 0;
}

.rw-narrative-actions__encounter-row[b-fn0zv5sfrc] {
    display: flex;
    gap: 0.4rem;
    align-items: stretch;
}

.rw-narrative-actions__encounter-input[b-fn0zv5sfrc] {
    flex: 1;
    min-width: 0;
    padding: 0.45rem 0.65rem;
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text);
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    outline: none;
    transition: border-color 0.2s;
}

.rw-narrative-actions__encounter-input[b-fn0zv5sfrc]::placeholder {
    color: var(--rw-text-faint);
}

.rw-narrative-actions__encounter-input:focus[b-fn0zv5sfrc] {
    border-color: var(--rw-gold);
}

.rw-narrative-actions__encounter-btn[b-fn0zv5sfrc] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.75rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rw-ember, #c44040);
    background: rgba(196, 64, 64, 0.08);
    border: 1px solid rgba(196, 64, 64, 0.25);
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    transition: all 0.25s;
    white-space: nowrap;
}

.rw-narrative-actions__encounter-btn:not(:disabled):hover[b-fn0zv5sfrc] {
    background: rgba(196, 64, 64, 0.18);
    border-color: rgba(196, 64, 64, 0.5);
    box-shadow: 0 0 12px rgba(196, 64, 64, 0.15);
}

.rw-narrative-actions__encounter-btn:disabled[b-fn0zv5sfrc] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* --- Narrative Tool Buttons --- */

.rw-narrative-actions__tools[b-fn0zv5sfrc] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex-shrink: 0;
}

.rw-narrative-actions__tool-grid[b-fn0zv5sfrc] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
}

.rw-narrative-actions__tool-btn[b-fn0zv5sfrc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-glass-bg, rgba(15, 32, 40, 0.5));
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s ease;
    min-height: 48px;
}

.rw-narrative-actions__tool-btn:hover[b-fn0zv5sfrc] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.06);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.rw-narrative-actions__tool-btn:active[b-fn0zv5sfrc] {
    transform: translateY(0);
}

.rw-narrative-actions__tool-btn--rest:hover[b-fn0zv5sfrc] {
    border-color: rgba(106, 180, 212, 0.3);
    background: rgba(106, 180, 212, 0.06);
}

.rw-narrative-actions__tool-btn--reward:hover[b-fn0zv5sfrc] {
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.08);
}

.rw-narrative-actions__tool-btn--challenge:hover[b-fn0zv5sfrc] {
    border-color: rgba(61, 138, 85, 0.3);
    background: rgba(61, 138, 85, 0.06);
}

.rw-narrative-actions__tool-icon[b-fn0zv5sfrc] {
    width: 26px;
    height: 26px;
    object-fit: contain;
    filter: brightness(0.9) sepia(0.15) hue-rotate(15deg);
    flex-shrink: 0;
}

/* --- Confirmation Overlay --- */

.rw-narrative-actions__confirm-overlay[b-fn0zv5sfrc] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(7, 16, 24, 0.7);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 10;
    animation: rw-confirm-fade-in-b-fn0zv5sfrc 0.2s ease-out;
    border-radius: var(--rw-radius-lg);
}

@keyframes rw-confirm-fade-in-b-fn0zv5sfrc {
    from { opacity: 0; }
    to { opacity: 1; }
}

.rw-narrative-actions__confirm-card[b-fn0zv5sfrc] {
    padding: 1.25rem;
    background: var(--rw-bg-panel, rgba(15, 32, 40, 0.95));
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-lg);
    max-width: 320px;
    width: 90%;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    animation: rw-confirm-card-in-b-fn0zv5sfrc 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes rw-confirm-card-in-b-fn0zv5sfrc {
    from { opacity: 0; transform: scale(0.95) translateY(8px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.rw-narrative-actions__confirm-card h4[b-fn0zv5sfrc] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-gold-light);
    margin: 0;
}

.rw-narrative-actions__confirm-card p[b-fn0zv5sfrc] {
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    line-height: 1.5;
    margin: 0;
}

.rw-narrative-actions__xp-input-row[b-fn0zv5sfrc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-narrative-actions__xp-input-row label[b-fn0zv5sfrc] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    white-space: nowrap;
}

.rw-narrative-actions__xp-input[b-fn0zv5sfrc] {
    width: 100px;
    padding: 0.35rem 0.5rem;
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-gold-light);
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    outline: none;
    text-align: center;
}

.rw-narrative-actions__xp-input:focus[b-fn0zv5sfrc] {
    border-color: var(--rw-gold);
}

.rw-narrative-actions__confirm-buttons[b-fn0zv5sfrc] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    margin-top: 0.25rem;
}

.rw-narrative-actions__confirm-btn[b-fn0zv5sfrc] {
    padding: 0.35rem 0.85rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid;
}

.rw-narrative-actions__confirm-btn--cancel[b-fn0zv5sfrc] {
    color: var(--rw-text-dim);
    background: transparent;
    border-color: var(--rw-border);
}

.rw-narrative-actions__confirm-btn--cancel:hover[b-fn0zv5sfrc] {
    background: rgba(255, 255, 255, 0.05);
}

.rw-narrative-actions__confirm-btn--ok[b-fn0zv5sfrc] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-narrative-actions__confirm-btn--ok:hover[b-fn0zv5sfrc] {
    background: rgba(196, 160, 64, 0.25);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}
/* /Components/Sessions/Gm/NarrativeQuestTracker.razor.rz.scp.css */
/* ============================================================
   Quest Tracker — Campaign quest management in live session
   ============================================================ */

.rw-quest-tracker[b-zy9erdwiug] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    height: 100%;
    min-height: 0;
}

.rw-quest-tracker__header[b-zy9erdwiug] {
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.15);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.rw-quest-tracker__header-icon[b-zy9erdwiug] {
    width: 16px;
    height: 16px;
    color: var(--rw-gold);
    opacity: 0.7;
}

/* --- Empty State --- */

.rw-quest-tracker__empty[b-zy9erdwiug] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 1rem;
    text-align: center;
    flex: 1;
}

.rw-quest-tracker__empty span[b-zy9erdwiug] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
}

.rw-quest-tracker__empty small[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

/* --- Filter Pills --- */

.rw-quest-tracker__filters[b-zy9erdwiug] {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}

.rw-quest-tracker__pill[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    padding: 0.2rem 0.55rem;
    border: 1px solid var(--rw-border);
    border-radius: 12px;
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.rw-quest-tracker__pill:hover[b-zy9erdwiug] {
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-text);
}

.rw-quest-tracker__pill--active[b-zy9erdwiug] {
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.35);
    color: var(--rw-gold-light);
}

/* --- Quest List --- */

.rw-quest-tracker__list[b-zy9erdwiug] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

/* --- Quest Card --- */

.rw-quest-tracker__card[b-zy9erdwiug] {
    padding: 0.5rem 0.6rem;
    background: var(--rw-glass-bg, rgba(15, 32, 40, 0.5));
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    transition: all 0.25s ease;
    animation: rw-quest-card-in-b-zy9erdwiug 0.3s ease-out both;
}

.rw-quest-tracker__card:nth-child(1)[b-zy9erdwiug] { animation-delay: 0s; }
.rw-quest-tracker__card:nth-child(2)[b-zy9erdwiug] { animation-delay: 0.05s; }
.rw-quest-tracker__card:nth-child(3)[b-zy9erdwiug] { animation-delay: 0.1s; }
.rw-quest-tracker__card:nth-child(4)[b-zy9erdwiug] { animation-delay: 0.15s; }
.rw-quest-tracker__card:nth-child(n+5)[b-zy9erdwiug] { animation-delay: 0.2s; }

@keyframes rw-quest-card-in-b-zy9erdwiug {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.rw-quest-tracker__card:hover[b-zy9erdwiug] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(20, 40, 48, 0.6);
}

.rw-quest-tracker__card--expanded[b-zy9erdwiug] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.04);
}

/* Status-based left accent */
.rw-quest-tracker__card--active[b-zy9erdwiug] {
    border-left: 3px solid var(--rw-gold);
}

.rw-quest-tracker__card--completed[b-zy9erdwiug] {
    border-left: 3px solid var(--rw-verdant);
    opacity: 0.7;
}

.rw-quest-tracker__card--completed:hover[b-zy9erdwiug] {
    opacity: 0.9;
}

.rw-quest-tracker__card--failed[b-zy9erdwiug] {
    border-left: 3px solid var(--rw-ember, #c44040);
    opacity: 0.6;
}

.rw-quest-tracker__card--failed:hover[b-zy9erdwiug] {
    opacity: 0.8;
}

.rw-quest-tracker__card--inactive[b-zy9erdwiug] {
    border-left: 3px solid var(--rw-border);
    opacity: 0.5;
}

/* --- Card Top --- */

.rw-quest-tracker__card-top[b-zy9erdwiug] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-quest-tracker__card-title-row[b-zy9erdwiug] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.4rem;
}

.rw-quest-tracker__card-title[b-zy9erdwiug] {
    font-family: var(--rw-font-display);
    font-size: 0.82rem;
    color: var(--rw-text-bright);
    line-height: 1.2;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* --- Status Badge --- */

.rw-quest-tracker__status-badge[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
}

.rw-quest-tracker__status-badge--active[b-zy9erdwiug] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.15);
}

.rw-quest-tracker__status-badge--completed[b-zy9erdwiug] {
    color: var(--rw-verdant);
    background: rgba(61, 138, 85, 0.15);
}

.rw-quest-tracker__status-badge--failed[b-zy9erdwiug] {
    color: var(--rw-ember, #c44040);
    background: rgba(196, 64, 64, 0.15);
}

.rw-quest-tracker__status-badge--inactive[b-zy9erdwiug] {
    color: var(--rw-text-dim);
    background: rgba(128, 128, 128, 0.1);
}

/* --- Progress Bar --- */

.rw-quest-tracker__progress[b-zy9erdwiug] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-quest-tracker__progress-bar[b-zy9erdwiug] {
    flex: 1;
    height: 4px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 2px;
    overflow: hidden;
}

.rw-quest-tracker__progress-fill[b-zy9erdwiug] {
    height: 100%;
    background: linear-gradient(90deg, var(--rw-verdant), rgba(61, 138, 85, 0.7));
    border-radius: 2px;
    transition: width 0.4s ease;
}

.rw-quest-tracker__progress-label[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-text-faint);
    white-space: nowrap;
}

.rw-quest-tracker__npc-giver[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Expanded Detail --- */

.rw-quest-tracker__card-detail[b-zy9erdwiug] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(196, 160, 64, 0.1);
    animation: rw-quest-detail-in-b-zy9erdwiug 0.2s ease-out;
}

@keyframes rw-quest-detail-in-b-zy9erdwiug {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Status Row --- */

.rw-quest-tracker__status-row[b-zy9erdwiug] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-quest-tracker__status-label[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-dim);
}

.rw-quest-tracker__status-select[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    padding: 0.15rem 0.4rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    cursor: pointer;
}

.rw-quest-tracker__status-select:focus[b-zy9erdwiug] {
    border-color: var(--rw-gold);
    outline: none;
}

/* --- Objectives --- */

.rw-quest-tracker__objectives[b-zy9erdwiug] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.rw-quest-tracker__objective[b-zy9erdwiug] {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    font-family: var(--rw-font-body);
    font-size: 0.74rem;
    color: var(--rw-text);
    line-height: 1.35;
    cursor: pointer;
    padding: 0.1rem 0;
}

.rw-quest-tracker__objective input[type="checkbox"][b-zy9erdwiug] {
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border: 1.5px solid var(--rw-border);
    border-radius: 3px;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 1px;
    position: relative;
    transition: all 0.2s;
}

.rw-quest-tracker__objective input[type="checkbox"]:checked[b-zy9erdwiug] {
    background: rgba(61, 138, 85, 0.2);
    border-color: var(--rw-verdant);
}

.rw-quest-tracker__objective input[type="checkbox"]:checked[b-zy9erdwiug]::after {
    content: '✓';
    position: absolute;
    top: -1px;
    left: 2px;
    font-size: 12px;
    color: var(--rw-verdant);
    font-weight: bold;
}

.rw-quest-tracker__objective input[type="checkbox"]:hover[b-zy9erdwiug] {
    border-color: var(--rw-gold);
}

.rw-quest-tracker__objective--done span[b-zy9erdwiug] {
    text-decoration: line-through;
    text-decoration-color: rgba(61, 138, 85, 0.4);
    opacity: 0.65;
}

.rw-quest-tracker__optional[b-zy9erdwiug] {
    font-style: italic;
    color: var(--rw-text-faint);
    font-size: 0.65rem;
}

.rw-quest-tracker__no-objectives[b-zy9erdwiug],
.rw-quest-tracker__loading[b-zy9erdwiug] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    font-style: italic;
}
/* /Components/Sessions/Gm/NarrativeSceneTimeline.razor.rz.scp.css */
/* ============================================================
   Scene Timeline — Vertical narrative flow for GM session
   ============================================================ */

.rw-scene-timeline[b-g005e926fr] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    height: 100%;
    min-height: 0;
}

.rw-scene-timeline__header[b-g005e926fr] {
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.15);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.rw-scene-timeline__header-icon[b-g005e926fr] {
    width: 16px;
    height: 16px;
    color: var(--rw-gold);
    opacity: 0.7;
}

/* --- Empty State --- */

.rw-scene-timeline__empty[b-g005e926fr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 1rem;
    text-align: center;
    flex: 1;
}

.rw-scene-timeline__empty-icon[b-g005e926fr] {
    color: var(--rw-text-dim);
}

.rw-scene-timeline__empty span[b-g005e926fr] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
}

.rw-scene-timeline__empty small[b-g005e926fr] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    max-width: 200px;
}

/* --- Timeline Track --- */

.rw-scene-timeline__track[b-g005e926fr] {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
    padding-left: 1rem;
}

/* Connecting line */
.rw-scene-timeline__track[b-g005e926fr]::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 12px;
    bottom: 12px;
    width: 2px;
    background: linear-gradient(
        to bottom,
        rgba(196, 160, 64, 0.4) 0%,
        rgba(61, 138, 85, 0.2) 100%
    );
    border-radius: 1px;
}

/* --- Node (dot + card) --- */

.rw-scene-timeline__node[b-g005e926fr] {
    display: flex;
    gap: 0.6rem;
    position: relative;
    cursor: pointer;
    padding: 0.35rem 0;
    animation: rw-scene-node-in-b-g005e926fr 0.35s ease-out both;
}

.rw-scene-timeline__node:nth-child(1)[b-g005e926fr] { animation-delay: 0s; }
.rw-scene-timeline__node:nth-child(2)[b-g005e926fr] { animation-delay: 0.06s; }
.rw-scene-timeline__node:nth-child(3)[b-g005e926fr] { animation-delay: 0.12s; }
.rw-scene-timeline__node:nth-child(4)[b-g005e926fr] { animation-delay: 0.18s; }
.rw-scene-timeline__node:nth-child(5)[b-g005e926fr] { animation-delay: 0.24s; }
.rw-scene-timeline__node:nth-child(n+6)[b-g005e926fr] { animation-delay: 0.3s; }

@keyframes rw-scene-node-in-b-g005e926fr {
    from { opacity: 0; transform: translateX(-8px); }
    to { opacity: 1; transform: translateX(0); }
}

/* --- Dot --- */

.rw-scene-timeline__dot[b-g005e926fr] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--rw-border);
    background: var(--rw-bg-panel);
    flex-shrink: 0;
    margin-top: 0.5rem;
    margin-left: -1rem;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s ease;
}

.rw-scene-timeline__node--active .rw-scene-timeline__dot[b-g005e926fr] {
    border-color: var(--rw-gold);
    background: var(--rw-gold);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.4);
}

.rw-scene-timeline__node--past .rw-scene-timeline__dot[b-g005e926fr] {
    border-color: var(--rw-verdant);
    background: rgba(61, 138, 85, 0.3);
    color: var(--rw-verdant);
}

/* --- Card --- */

.rw-scene-timeline__card[b-g005e926fr] {
    flex: 1;
    min-width: 0;
    padding: 0.55rem 0.65rem;
    background: var(--rw-glass-bg, rgba(15, 32, 40, 0.5));
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    transition: all 0.25s ease;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-scene-timeline__node:hover .rw-scene-timeline__card[b-g005e926fr] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(20, 40, 48, 0.6);
}

.rw-scene-timeline__node--active .rw-scene-timeline__card[b-g005e926fr] {
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.06);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.08),
                inset 0 1px 0 rgba(196, 160, 64, 0.1);
}

.rw-scene-timeline__node--past .rw-scene-timeline__card[b-g005e926fr] {
    opacity: 0.6;
}

.rw-scene-timeline__node--past:hover .rw-scene-timeline__card[b-g005e926fr] {
    opacity: 0.85;
}

/* --- Card Header --- */

.rw-scene-timeline__card-header[b-g005e926fr] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.rw-scene-timeline__card-title[b-g005e926fr] {
    font-family: var(--rw-font-display);
    font-size: 0.88rem;
    color: var(--rw-text-bright);
    line-height: 1.2;
}

.rw-scene-timeline__node--active .rw-scene-timeline__card-title[b-g005e926fr] {
    color: var(--rw-gold-light);
}

.rw-scene-timeline__location-badge[b-g005e926fr] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-arcane-blue, #6ab4d4);
    background: rgba(106, 180, 212, 0.08);
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    white-space: nowrap;
}

.rw-scene-timeline__card-desc[b-g005e926fr] {
    font-family: var(--rw-font-body);
    font-size: 0.76rem;
    color: var(--rw-text-dim);
    line-height: 1.45;
    margin: 0;
}

/* --- GM Notes (collapsible) --- */

.rw-scene-timeline__gm-notes[b-g005e926fr] {
    font-size: 0.72rem;
}

.rw-scene-timeline__gm-notes summary[b-g005e926fr] {
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    padding: 0.15rem 0;
    user-select: none;
}

.rw-scene-timeline__gm-notes summary:hover[b-g005e926fr] {
    color: var(--rw-text-dim);
}

.rw-scene-timeline__gm-notes p[b-g005e926fr] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    line-height: 1.4;
    margin: 0.25rem 0 0;
    padding: 0.35rem 0.5rem;
    background: rgba(0, 0, 0, 0.15);
    border-left: 2px solid rgba(196, 160, 64, 0.2);
    border-radius: 0 var(--rw-radius-sm) var(--rw-radius-sm) 0;
}

/* --- Planned Events --- */

.rw-scene-timeline__events[b-g005e926fr] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding-top: 0.15rem;
}

.rw-scene-timeline__event[b-g005e926fr] {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 0.2rem 0;
    transition: opacity 0.2s;
}

.rw-scene-timeline__event--triggered[b-g005e926fr] {
    opacity: 0.5;
}

.rw-scene-timeline__event-check[b-g005e926fr] {
    width: 18px;
    height: 18px;
    border-radius: 3px;
    border: 1.5px solid var(--rw-border);
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 1px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--rw-verdant);
    transition: all 0.2s;
}

.rw-scene-timeline__event-check:not(:disabled):hover[b-g005e926fr] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.1);
}

.rw-scene-timeline__event-check:disabled[b-g005e926fr] {
    cursor: default;
    border-color: var(--rw-verdant);
    background: rgba(61, 138, 85, 0.15);
}

.rw-scene-timeline__event-info[b-g005e926fr] {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-width: 0;
}

.rw-scene-timeline__event-title[b-g005e926fr] {
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    color: var(--rw-text);
    line-height: 1.3;
}

.rw-scene-timeline__event--triggered .rw-scene-timeline__event-title[b-g005e926fr] {
    text-decoration: line-through;
    text-decoration-color: rgba(61, 138, 85, 0.4);
}

.rw-scene-timeline__event-trigger[b-g005e926fr] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Launch Encounter Button --- */

.rw-scene-timeline__launch-btn[b-g005e926fr] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.55rem;
    margin-top: 0.15rem;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rw-ember, #c44040);
    background: rgba(196, 64, 64, 0.08);
    border: 1px solid rgba(196, 64, 64, 0.2);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.rw-scene-timeline__launch-btn:hover[b-g005e926fr] {
    background: rgba(196, 64, 64, 0.15);
    border-color: rgba(196, 64, 64, 0.4);
    box-shadow: 0 0 8px rgba(196, 64, 64, 0.15);
}

.rw-scene-timeline__launch-btn svg[b-g005e926fr] {
    flex-shrink: 0;
}
/* /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);
}

/* === ECONOMY TYPE ACCENTS === */

.rw-qac--bonus[b-hgq4p6taw8] {
    border-left: 3px solid #d4883a;
    box-shadow: inset 3px 0 8px -3px rgba(212, 136, 58, 0.15);
}

.rw-qac--reaction[b-hgq4p6taw8] {
    border-left: 3px solid #3ab8a8;
    box-shadow: inset 3px 0 8px -3px rgba(58, 184, 168, 0.15);
}

.rw-qac--passive[b-hgq4p6taw8] {
    border-left: 3px solid rgba(160, 160, 160, 0.4);
    opacity: 0.85;
}

.rw-qac--spell[b-hgq4p6taw8] {
    border-left: 3px solid #6a8fd8;
    box-shadow: inset 3px 0 8px -3px rgba(106, 143, 216, 0.15);
}

/* Economy badge tag colors */
.rw-qac__tag--economy[b-hgq4p6taw8] {
    font-weight: 700;
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.rw-qac__tag--bonus[b-hgq4p6taw8] {
    color: #d4883a;
    background: rgba(212, 136, 58, 0.12);
    border: 1px solid rgba(212, 136, 58, 0.25);
}

.rw-qac__tag--reaction[b-hgq4p6taw8] {
    color: #3ab8a8;
    background: rgba(58, 184, 168, 0.12);
    border: 1px solid rgba(58, 184, 168, 0.25);
}

.rw-qac__tag--passive[b-hgq4p6taw8] {
    color: var(--rw-text-muted, #888);
    background: rgba(160, 160, 160, 0.08);
    border: 1px solid rgba(160, 160, 160, 0.15);
}

.rw-qac__tag--free[b-hgq4p6taw8] {
    color: #8bc34a;
    background: rgba(139, 195, 74, 0.1);
    border: 1px solid rgba(139, 195, 74, 0.2);
}

/* Spell level & concentration tags */
.rw-qac__tag--spell[b-hgq4p6taw8] {
    color: #6a8fd8;
    background: rgba(106, 143, 216, 0.1);
    border: 1px solid rgba(106, 143, 216, 0.2);
}

.rw-qac__tag--conc[b-hgq4p6taw8] {
    color: #e8a838;
    background: rgba(232, 168, 56, 0.12);
    border: 1px solid rgba(232, 168, 56, 0.2);
    font-weight: 700;
}

.rw-qac__tag--uses[b-hgq4p6taw8] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.55rem;
}

.rw-qac__tag--trigger[b-hgq4p6taw8] {
    font-size: 0.65rem;
    line-height: 1;
}

/* Description panel for passive abilities */
.rw-qac__desc-panel[b-hgq4p6taw8] {
    padding: 0.5rem;
}

.rw-qac__desc-text[b-hgq4p6taw8] {
    font-size: 0.72rem;
    color: var(--rw-text);
    line-height: 1.55;
    margin: 0;
}

.rw-qac__desc-source[b-hgq4p6taw8] {
    display: block;
    font-size: 0.6rem;
    color: var(--rw-text-muted, #888);
    margin-top: 0.35rem;
    font-style: italic;
}

.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.72rem;
    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.88rem;
    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.82rem;
    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.84rem;
    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.78rem;
    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.58rem;
    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.78rem;
    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: 1.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.82rem;
    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.8rem;
    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.6rem;
    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.78rem;
}

/* === 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 === */

/* Tablet */
@media (max-width: 768px) {
    .rw-stat-panel__drawer[b-qp951q8cxt] {
        width: min(85vw, 480px);
    }

    .rw-stat-panel__header[b-qp951q8cxt] {
        position: sticky;
        top: 0;
        z-index: 10;
        background: var(--rw-glass-bg-dense);
        backdrop-filter: var(--rw-glass-blur-strong);
        -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    }

    .rw-stat-panel__close[b-qp951q8cxt] {
        min-width: 44px;
        min-height: 44px;
        font-size: 1.5rem;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .rw-stat-panel__drawer[b-qp951q8cxt] {
        width: 100vw;
    }

    .rw-stat-panel__header[b-qp951q8cxt] {
        position: sticky;
        top: 0;
        z-index: 10;
        background: var(--rw-glass-bg-dense);
        backdrop-filter: var(--rw-glass-blur-strong);
        -webkit-backdrop-filter: var(--rw-glass-blur-strong);
        min-height: 44px;
    }

    .rw-stat-panel__close[b-qp951q8cxt] {
        min-width: 44px;
        min-height: 44px;
        font-size: 1.5rem;
    }

    .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/PlayerAbilityPanel.razor.rz.scp.css */
/* ============================================================
   PlayerAbilityPanel — Player's Ability Reference
   Read-only ability cards for the player's own combat view.
   Compact, scannable reference during their turn.
   ============================================================ */

.rw-player-abilities[b-m8vm9mkmjw] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.35rem;
}

/* === SECTION === */

.rw-player-abilities__section[b-m8vm9mkmjw] {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
}

.rw-player-abilities__section--open[b-m8vm9mkmjw] {
    border-color: rgba(255, 255, 255, 0.1);
}

.rw-player-abilities__section--actions[b-m8vm9mkmjw]  { border-left: 2px solid var(--rw-gold); }
.rw-player-abilities__section--bonus[b-m8vm9mkmjw]    { border-left: 2px solid #d4883a; }
.rw-player-abilities__section--reactions[b-m8vm9mkmjw] { border-left: 2px solid #3ab8a8; }
.rw-player-abilities__section--spells[b-m8vm9mkmjw]   { border-left: 2px solid #6a8fd8; }
.rw-player-abilities__section--traits[b-m8vm9mkmjw]   { border-left: 2px solid rgba(160, 160, 160, 0.3); }

/* === HEADER === */

.rw-player-abilities__header[b-m8vm9mkmjw] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    padding: 0.3rem 0.5rem;
    border: none;
    background: none;
    cursor: pointer;
    user-select: none;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.rw-player-abilities__header:hover[b-m8vm9mkmjw] {
    background: rgba(255, 255, 255, 0.04);
}

.rw-player-abilities__chevron[b-m8vm9mkmjw] {
    width: 0.45rem;
    height: 0.45rem;
    flex-shrink: 0;
    position: relative;
    transition: transform 0.2s ease;
}

.rw-player-abilities__chevron[b-m8vm9mkmjw]::before {
    content: '';
    position: absolute;
    width: 4px;
    height: 4px;
    border-right: 1.5px solid var(--rw-gold);
    border-bottom: 1.5px solid var(--rw-gold);
    transform: rotate(-45deg);
}

.rw-player-abilities__section--open .rw-player-abilities__chevron[b-m8vm9mkmjw] {
    transform: rotate(90deg);
}

.rw-player-abilities__icon[b-m8vm9mkmjw] {
    font-size: 0.7rem;
    line-height: 1;
}

.rw-player-abilities__title[b-m8vm9mkmjw] {
    flex: 1;
    text-align: left;
}

.rw-player-abilities__count[b-m8vm9mkmjw] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    font-weight: 700;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.06);
    padding: 0.02rem 0.3rem;
    border-radius: var(--rw-radius-pill);
}

/* === BODY === */

.rw-player-abilities__body[b-m8vm9mkmjw] {
    padding: 0.15rem 0.35rem 0.3rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    animation: rw-pap-reveal-b-m8vm9mkmjw 0.2s ease-out;
}

@keyframes rw-pap-reveal-b-m8vm9mkmjw {
    from { opacity: 0; transform: translateY(-3px); }
    to { opacity: 1; transform: translateY(0); }
}

/* === ABILITY CARD (read-only) === */

.rw-player-abilities__card[b-m8vm9mkmjw] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.4rem;
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.02);
    cursor: help;
    transition: background 0.15s ease;
}

.rw-player-abilities__card:hover[b-m8vm9mkmjw] {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.1);
}

.rw-player-abilities__card-name[b-m8vm9mkmjw] {
    font-family: var(--rw-font-body);
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.rw-player-abilities__card-tags[b-m8vm9mkmjw] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    margin-left: auto;
    flex-shrink: 0;
}

.rw-player-abilities__tag[b-m8vm9mkmjw] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    padding: 0.08rem 0.3rem;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
    color: var(--rw-text-dim);
    font-weight: 500;
}

.rw-player-abilities__tag--atk[b-m8vm9mkmjw] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.15);
}

.rw-player-abilities__tag--dice[b-m8vm9mkmjw] {
    color: var(--rw-arcane-cyan);
    background: rgba(58, 128, 168, 0.08);
    border: 1px solid rgba(58, 128, 168, 0.12);
}

.rw-player-abilities__tag--type[b-m8vm9mkmjw] {
    font-size: 0.5rem;
    text-transform: lowercase;
    opacity: 0.7;
}

.rw-player-abilities__tag--uses[b-m8vm9mkmjw] {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.rw-player-abilities__tag--conc[b-m8vm9mkmjw] {
    color: #e8a838;
    background: rgba(232, 168, 56, 0.1);
    border: 1px solid rgba(232, 168, 56, 0.15);
    font-weight: 700;
}

.rw-player-abilities__tag--ritual[b-m8vm9mkmjw] {
    color: #8bc34a;
    background: rgba(139, 195, 74, 0.08);
    border: 1px solid rgba(139, 195, 74, 0.12);
    font-weight: 600;
}

/* === SPELL LEVEL GROUPS === */

.rw-player-abilities__spell-level[b-m8vm9mkmjw] {
    margin-bottom: 0.15rem;
}

.rw-player-abilities__spell-level-header[b-m8vm9mkmjw] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.12rem 0.1rem;
    border-bottom: 1px solid rgba(106, 143, 216, 0.08);
    margin-bottom: 0.1rem;
}

.rw-player-abilities__spell-label[b-m8vm9mkmjw] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    color: #6a8fd8;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.rw-player-abilities__slot-pips[b-m8vm9mkmjw] {
    display: flex;
    gap: 2px;
    margin-left: auto;
}

.rw-player-abilities__slot-pip[b-m8vm9mkmjw] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    border: 1px solid rgba(106, 143, 216, 0.35);
    background: rgba(0, 0, 0, 0.3);
}

.rw-player-abilities__slot-pip--filled[b-m8vm9mkmjw] {
    background: #6a8fd8;
    border-color: #6a8fd8;
    box-shadow: 0 0 3px rgba(106, 143, 216, 0.3);
}
/* /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);
}

/* Toggle flash — plays when action state changes */
.action-btn--just-toggled[b-e25g7629ww] {
    animation: action-toggle-flash-b-e25g7629ww 0.35s ease-out;
}

@keyframes action-toggle-flash-b-e25g7629ww {
    0% { box-shadow: 0 0 0 0 rgba(80, 176, 104, 0.4); }
    40% { box-shadow: 0 0 12px 2px rgba(80, 176, 104, 0.3); }
    100% { box-shadow: none; }
}

/* 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);
}

/* End Turn emphasis when all actions spent */
.action-bar__end-btn--ready[b-e25g7629ww] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.18);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.12);
    animation: end-turn-pulse-b-e25g7629ww 2.5s ease-in-out infinite;
}

@keyframes end-turn-pulse-b-e25g7629ww {
    0%, 100% { box-shadow: 0 0 20px rgba(196, 160, 64, 0.12); }
    50% { box-shadow: 0 0 30px rgba(196, 160, 64, 0.22), 0 0 8px rgba(196, 160, 64, 0.15); }
}

/* === 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(100dvh - var(--rw-content-padding, 2rem) * 2);
    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);
    box-shadow: 0 2px 8px rgba(80, 176, 104, 0.1);
}

/* 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(100dvh - var(--rw-content-padding, 1.25rem) * 2);
    }

    .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); }
}

/* HP change flash effects */
.hero-card--hp-damage[b-3iqqwbymjm] {
    animation: hero-damage-flash-b-3iqqwbymjm 0.5s ease-out;
}

@keyframes hero-damage-flash-b-3iqqwbymjm {
    0% { border-color: rgba(184, 58, 26, 0.8); box-shadow: 0 0 20px rgba(184, 58, 26, 0.3); }
    100% { border-color: inherit; box-shadow: none; }
}

.hero-card--hp-heal[b-3iqqwbymjm] {
    animation: hero-heal-flash-b-3iqqwbymjm 0.5s ease-out;
}

@keyframes hero-heal-flash-b-3iqqwbymjm {
    0% { border-color: rgba(80, 176, 104, 0.8); box-shadow: 0 0 20px rgba(80, 176, 104, 0.3); }
    100% { border-color: inherit; box-shadow: none; }
}

.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;
    }
}

/* === HP Self-modification === */

.hero-card__hp-btn[b-3iqqwbymjm] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    font-size: 0.85rem;
    font-weight: 700;
    margin-left: 0.3rem;
    transition: all 0.15s ease;
}

.hero-card__hp-btn--dmg[b-3iqqwbymjm] {
    background: rgba(184, 58, 26, 0.2);
    color: var(--rw-blood-bright);
    border: 1px solid rgba(184, 58, 26, 0.3);
}

.hero-card__hp-btn--dmg:hover[b-3iqqwbymjm] {
    background: rgba(184, 58, 26, 0.35);
}

.hero-card__hp-btn--heal[b-3iqqwbymjm] {
    background: rgba(80, 176, 104, 0.2);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(80, 176, 104, 0.3);
}

.hero-card__hp-btn--heal:hover[b-3iqqwbymjm] {
    background: rgba(80, 176, 104, 0.35);
}

.hero-card__hp-edit[b-3iqqwbymjm] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.hero-card__hp-edit-label[b-3iqqwbymjm] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rw-text-muted);
}

.hero-card__hp-input[b-3iqqwbymjm] {
    width: 3.5rem;
    text-align: center;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-size: 0.9rem;
    padding: 0.2rem;
}

.hero-card__hp-confirm[b-3iqqwbymjm],
.hero-card__hp-cancel[b-3iqqwbymjm] {
    all: unset;
    cursor: pointer;
    font-size: 0.8rem;
    padding: 0.15rem 0.3rem;
    border-radius: var(--rw-radius-sm);
    transition: background 0.15s ease;
}

.hero-card__hp-confirm[b-3iqqwbymjm] {
    color: var(--rw-verdant-bright);
}

.hero-card__hp-confirm:hover[b-3iqqwbymjm] {
    background: rgba(80, 176, 104, 0.2);
}

.hero-card__hp-confirm:disabled[b-3iqqwbymjm] {
    opacity: 0.4;
    cursor: default;
}

.hero-card__hp-cancel[b-3iqqwbymjm] {
    color: var(--rw-text-muted);
}

.hero-card__hp-cancel:hover[b-3iqqwbymjm] {
    background: rgba(255, 255, 255, 0.05);
}
/* /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 teal 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(72, 176, 192, 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 teal glow */
.rw-slot-pip--filled[b-w0x1y82pfr] {
    background: rgba(46, 136, 144, 0.7);
    box-shadow:
        0 0 4px rgba(46, 136, 144, 0.4),
        inset 0 0 2px rgba(72, 176, 192, 0.3);
    border: 1px solid rgba(72, 176, 192, 0.5);
}

/* Spent — dark hollow */
.rw-slot-pip--spent[b-w0x1y82pfr] {
    background: rgba(20, 42, 50, 0.5);
    border: 1px solid rgba(46, 136, 144, 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(72, 176, 192, 0.85);
    box-shadow:
        0 0 8px rgba(46, 136, 144, 0.6),
        0 0 2px rgba(72, 176, 192, 0.5);
    transform: scale(1.15);
}

.rw-slot-pip--interactive.rw-slot-pip--spent:hover[b-w0x1y82pfr] {
    background: rgba(46, 136, 144, 0.2);
    border-color: rgba(46, 136, 144, 0.35);
    transform: scale(1.1);
}
/* /Components/Sessions/Shared/AbilityCardGroup.razor.rz.scp.css */
/* ============================================================
   AbilityCardGroup — Grimoire Chapter Sections
   Combat abilities organized like chapters in an enchanted
   tome, each section sealed with runic dividers.
   ============================================================ */

.rw-acg[b-ymrlxbxs8t] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* === SECTION CONTAINER === */

.rw-acg__section[b-ymrlxbxs8t] {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-lg);
    background: rgba(255, 255, 255, 0.02);
    overflow: hidden;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.rw-acg__section--open[b-ymrlxbxs8t] {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
}

/* Section accent colors via left border */
.rw-acg__section--actions[b-ymrlxbxs8t]  { border-left: 2px solid var(--rw-gold); }
.rw-acg__section--bonus[b-ymrlxbxs8t]    { border-left: 2px solid #d4883a; }
.rw-acg__section--reactions[b-ymrlxbxs8t] { border-left: 2px solid #3ab8a8; }
.rw-acg__section--spells[b-ymrlxbxs8t]   { border-left: 2px solid #6a8fd8; }
.rw-acg__section--legendary[b-ymrlxbxs8t] { border-left: 2px solid var(--rw-gold-light); }
.rw-acg__section--traits[b-ymrlxbxs8t]   { border-left: 2px solid rgba(160, 160, 160, 0.4); }
.rw-acg__section--special[b-ymrlxbxs8t]  { border-left: 2px solid #8bc34a; }

/* === COLLAPSIBLE HEADER === */

.rw-acg__header[b-ymrlxbxs8t] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.4rem 0.6rem;
    border: none;
    background: none;
    cursor: pointer;
    user-select: none;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: background 0.15s ease;
}

.rw-acg__header:hover[b-ymrlxbxs8t] {
    background: rgba(255, 255, 255, 0.04);
}

/* Chevron */
.rw-acg__chevron[b-ymrlxbxs8t] {
    width: 0.5rem;
    height: 0.5rem;
    flex-shrink: 0;
    position: relative;
    transition: transform 0.25s ease;
}

.rw-acg__chevron[b-ymrlxbxs8t]::before {
    content: '';
    position: absolute;
    width: 5px;
    height: 5px;
    border-right: 1.5px solid var(--rw-gold);
    border-bottom: 1.5px solid var(--rw-gold);
    transform: rotate(-45deg);
    top: 1px;
    left: 0;
}

.rw-acg__section--open .rw-acg__chevron[b-ymrlxbxs8t] {
    transform: rotate(90deg);
}

.rw-acg__section-icon[b-ymrlxbxs8t] {
    font-size: 0.75rem;
    line-height: 1;
    flex-shrink: 0;
}

.rw-acg__section-title[b-ymrlxbxs8t] {
    flex: 1;
    text-align: left;
}

.rw-acg__section-count[b-ymrlxbxs8t] {
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    font-weight: 700;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.06);
    padding: 0.05rem 0.35rem;
    border-radius: var(--rw-radius-pill);
    min-width: 1.2rem;
    text-align: center;
}

/* === BODY (card list) === */

.rw-acg__body[b-ymrlxbxs8t] {
    padding: 0.15rem 0.35rem 0.35rem;
    animation: rw-acg-reveal-b-ymrlxbxs8t 0.2s ease-out;
}

@keyframes rw-acg-reveal-b-ymrlxbxs8t {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.rw-acg__items[b-ymrlxbxs8t] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* === SPELL LEVEL SUBGROUPS === */

.rw-acg__spell-level[b-ymrlxbxs8t] {
    margin-bottom: 0.25rem;
}

.rw-acg__spell-level:last-child[b-ymrlxbxs8t] {
    margin-bottom: 0;
}

.rw-acg__spell-level-header[b-ymrlxbxs8t] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.2rem 0.15rem 0.15rem;
    margin-bottom: 0.15rem;
    border-bottom: 1px solid rgba(106, 143, 216, 0.1);
}

.rw-acg__spell-level-label[b-ymrlxbxs8t] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    font-weight: 600;
    color: #6a8fd8;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Spell slot pips inline with level header */
.rw-acg__slot-pips[b-ymrlxbxs8t] {
    display: flex;
    align-items: center;
    gap: 3px;
    margin-left: auto;
}

.rw-acg__slot-pip[b-ymrlxbxs8t] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1px solid rgba(106, 143, 216, 0.4);
    background: rgba(0, 0, 0, 0.3);
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.rw-acg__slot-pip--filled[b-ymrlxbxs8t] {
    background: #6a8fd8;
    border-color: #6a8fd8;
    box-shadow: 0 0 4px rgba(106, 143, 216, 0.4);
}

/* === EMPTY STATE === */

.rw-acg__empty[b-ymrlxbxs8t] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    text-align: center;
    padding: 0.75rem;
    font-style: italic;
}
/* /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;
}

.rw-combatant-badge__identify--pending[b-ryravtsumo] {
    opacity: 0.7;
    cursor: default;
    color: var(--rw-verdant-bright);
    font-size: 0.6rem;
}

/* === 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(calc(-50% + var(--jitter, 0px))) translateY(0) scale(0.8);
    }
    30% {
        opacity: 1;
        transform: translateX(calc(-50% + var(--jitter, 0px))) translateY(-14px) scale(1.1);
    }
    100% {
        opacity: 0;
        transform: translateX(calc(-50% + var(--jitter, 0px))) 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%);
    --hp-pulse-max: 1;
    --hp-pulse-min: 0.82;
    --hp-glow-min: drop-shadow(0 0 6px rgba(218, 170, 50, 0.35));
    --hp-glow-max: drop-shadow(0 0 8px rgba(218, 170, 50, 0.35));
    filter: drop-shadow(0 0 6px rgba(218, 170, 50, 0.35));
    animation: rw-hp-pulse-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%);
    --hp-pulse-max: 1;
    --hp-pulse-min: 0.85;
    --hp-glow-min: drop-shadow(0 0 8px rgba(184, 58, 26, 0.4));
    --hp-glow-max: drop-shadow(0 0 14px rgba(184, 58, 26, 0.6));
    filter: drop-shadow(0 0 8px rgba(184, 58, 26, 0.4));
    animation: rw-hp-pulse-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 (#6 unified, #8 filter migration) === */

@keyframes rw-hp-pulse-b-0zbk1x0l16 {
    0%, 100% { opacity: var(--hp-pulse-max); filter: var(--hp-glow-min); }
    50% { opacity: var(--hp-pulse-min); filter: var(--hp-glow-max); }
}
/* /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/SessionChatPanel.razor.rz.scp.css */
/* ============================================================
   SessionChatPanel — In-session text chat
   ============================================================ */

.rw-chat[b-4xkaso4pvh] {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 0.5rem;
}

.rw-chat__messages[b-4xkaso4pvh] {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.5rem;
    scrollbar-width: thin;
}

.rw-chat__empty[b-4xkaso4pvh] {
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.8rem;
    padding: 2rem 0;
}

.rw-chat__msg[b-4xkaso4pvh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: baseline;
    font-size: 0.78rem;
    line-height: 1.4;
}

.rw-chat__sender[b-4xkaso4pvh] {
    font-weight: 600;
    color: var(--rw-sage-muted);
    flex-shrink: 0;
}

.rw-chat__msg--dm .rw-chat__sender[b-4xkaso4pvh] {
    color: var(--rw-gold-light);
}

.rw-chat__text[b-4xkaso4pvh] {
    color: var(--rw-text);
    word-break: break-word;
}

.rw-chat__time[b-4xkaso4pvh] {
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    margin-left: auto;
    flex-shrink: 0;
}

.rw-chat__input-row[b-4xkaso4pvh] {
    display: flex;
    gap: 0.3rem;
    padding: 0 0.5rem 0.5rem;
}

.rw-chat__input[b-4xkaso4pvh] {
    flex: 1;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-size: 0.8rem;
    padding: 0.4rem 0.6rem;
    outline: none;
    transition: border-color 0.15s ease;
}

.rw-chat__input:focus[b-4xkaso4pvh] {
    border-color: var(--rw-sage-muted);
}

.rw-chat__send[b-4xkaso4pvh] {
    all: unset;
    cursor: pointer;
    padding: 0.3rem 0.6rem;
    background: var(--rw-sage-muted);
    color: var(--rw-bg-deep);
    border-radius: var(--rw-radius-sm);
    font-size: 0.85rem;
    transition: opacity 0.15s ease;
}

.rw-chat__send:disabled[b-4xkaso4pvh] {
    opacity: 0.4;
    cursor: default;
}

.rw-chat__send:hover:not(:disabled)[b-4xkaso4pvh] {
    opacity: 0.8;
}
/* /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/ClassProgressionEditor.razor.rz.scp.css */
/* =============================================================
   ClassProgressionEditor — Grimoire-style progression editor
   ============================================================= */

.cpe[b-kmf95ze1ho] {
    margin-top: 1rem;
}

/* --- Loading --- */
.cpe__loading[b-kmf95ze1ho] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 0;
}

.cpe__loading-bar[b-kmf95ze1ho] {
    width: 120px;
    height: 3px;
    background: var(--rw-bg-moss);
    border-radius: 2px;
    overflow: hidden;
    position: relative;
}

.cpe__loading-bar[b-kmf95ze1ho]::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 40%;
    background: var(--rw-gold);
    border-radius: 2px;
    animation: cpe-loading-slide-b-kmf95ze1ho 1.2s ease-in-out infinite;
}

@keyframes cpe-loading-slide-b-kmf95ze1ho {
    0%   { left: -40%; }
    100% { left: 100%; }
}

.cpe__loading-text[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cpe__empty[b-kmf95ze1ho] {
    padding: 2rem;
    text-align: center;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-faint);
    font-size: 0.85rem;
}

/* --- Overview Header --- */
.cpe__overview-header[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.cpe__actions[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cpe__dirty-badge[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light);
    background: var(--rw-gold-ember);
    border: 1px solid var(--rw-border-gold);
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
}

.cpe__save-btn[b-kmf95ze1ho] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rw-bg-void);
    background: var(--rw-gold);
    border: 1px solid var(--rw-gold);
    border-radius: 4px;
    padding: 0.35rem 0.75rem;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.1s ease;
}

.cpe__save-btn:hover:not(:disabled)[b-kmf95ze1ho] {
    background: var(--rw-gold-light);
    transform: translateY(-1px);
}

.cpe__save-btn:disabled[b-kmf95ze1ho] {
    opacity: 0.5;
    cursor: not-allowed;
}

.cpe__save-spinner[b-kmf95ze1ho] {
    width: 12px;
    height: 12px;
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-top-color: var(--rw-bg-void);
    border-radius: 50%;
    animation: cpe-spin-b-kmf95ze1ho 0.6s linear infinite;
}

@keyframes cpe-spin-b-kmf95ze1ho {
    to { transform: rotate(360deg); }
}

/* --- Table --- */
.cpe__table-wrap[b-kmf95ze1ho] {
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    overflow: hidden;
}

.cpe__table[b-kmf95ze1ho] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.cpe__th[b-kmf95ze1ho] {
    padding: 0.5rem 0.6rem;
    text-align: left;
    font-weight: 600;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-text-faint);
    background: var(--rw-bg-bark);
    border-bottom: 1px solid var(--rw-border);
}

.cpe__th--lvl[b-kmf95ze1ho]   { width: 52px; text-align: center; }
.cpe__th--prof[b-kmf95ze1ho]  { width: 48px; text-align: center; }
.cpe__th--count[b-kmf95ze1ho] { width: 36px; text-align: center; }

.cpe__row[b-kmf95ze1ho] {
    cursor: pointer;
    transition: background 0.12s ease;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.cpe__row:last-child[b-kmf95ze1ho] {
    border-bottom: none;
}

.cpe__row:hover[b-kmf95ze1ho] {
    background: rgba(196, 160, 64, 0.04);
}

.cpe__row--active[b-kmf95ze1ho] {
    background: var(--rw-gold-ember) !important;
    border-left: 3px solid var(--rw-gold);
}

.cpe__row--empty .cpe__cell--features[b-kmf95ze1ho] {
    opacity: 0.35;
}

.cpe__cell[b-kmf95ze1ho] {
    padding: 0.35rem 0.6rem;
    vertical-align: middle;
}

.cpe__cell--lvl[b-kmf95ze1ho] {
    text-align: center;
    font-weight: 600;
    color: var(--rw-text-dim);
    position: relative;
}

.cpe__cell--prof[b-kmf95ze1ho] {
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.75rem;
}

.cpe__cell--count[b-kmf95ze1ho] {
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.72rem;
}

.cpe__cell--features[b-kmf95ze1ho] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

.cpe__subclass-star[b-kmf95ze1ho] {
    color: var(--rw-gold-glow);
    font-size: 0.65rem;
    margin-right: 0.15rem;
    vertical-align: super;
}

.cpe__no-features[b-kmf95ze1ho] {
    color: var(--rw-text-faint);
    font-size: 0.75rem;
}

/* --- Feature pills --- */
.cpe__pill[b-kmf95ze1ho] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 500;
    padding: 0.12rem 0.45rem;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--rw-text);
    white-space: nowrap;
}

.cpe__pill--passive[b-kmf95ze1ho] {
    border-color: rgba(61, 138, 85, 0.25);
    color: var(--rw-verdant-bright);
}

.cpe__pill--choice[b-kmf95ze1ho] {
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
}

.cpe__pill--resource[b-kmf95ze1ho] {
    border-color: rgba(80, 140, 200, 0.25);
    color: #6cb4e0;
}

.cpe__pill--replacement[b-kmf95ze1ho] {
    border-color: rgba(139, 37, 0, 0.3);
    color: var(--rw-blood-bright);
}

/* --- Editor Section --- */
.cpe__editor[b-kmf95ze1ho] {
    margin-top: 1.25rem;
    background: rgba(255, 255, 255, 0.015);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    padding: 1rem;
}

.cpe__editor-nav[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.cpe__nav-btn[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    cursor: pointer;
    transition: all 0.12s ease;
}

.cpe__nav-btn:hover:not(:disabled)[b-kmf95ze1ho] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: var(--rw-gold-ember);
}

.cpe__nav-btn:disabled[b-kmf95ze1ho] {
    opacity: 0.3;
    cursor: not-allowed;
}

.cpe__editor-title[b-kmf95ze1ho] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-gold-light);
    margin: 0;
    text-align: center;
}

.cpe__editor-prof[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    margin-left: 0.5rem;
    font-weight: 400;
}

.cpe__editor-empty[b-kmf95ze1ho] {
    text-align: center;
    padding: 1.5rem;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-faint);
    font-size: 0.82rem;
    font-style: italic;
}

/* --- Feature Card --- */
.cpe__feature[b-kmf95ze1ho] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    margin-bottom: 0.75rem;
    overflow: hidden;
}

.cpe__feature-header[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    background: rgba(255, 255, 255, 0.02);
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.cpe__feature-header-left[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cpe__feature-type-dot[b-kmf95ze1ho] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.cpe__feature-type-dot--passive[b-kmf95ze1ho]     { background: var(--rw-verdant); }
.cpe__feature-type-dot--choice[b-kmf95ze1ho]      { background: var(--rw-gold); }
.cpe__feature-type-dot--resource[b-kmf95ze1ho]    { background: #508cc8; }
.cpe__feature-type-dot--replacement[b-kmf95ze1ho] { background: var(--rw-blood); }

.cpe__feature-name-display[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rw-text-bright);
}

.cpe__feature-body[b-kmf95ze1ho] {
    padding: 0.75rem;
}

.cpe__field-row[b-kmf95ze1ho] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.cpe__checkbox-wrap[b-kmf95ze1ho] {
    padding-top: 0.35rem;
}

.cpe__textarea[b-kmf95ze1ho] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    line-height: 1.5;
    resize: vertical;
}

.cpe__code[b-kmf95ze1ho] {
    font-size: 0.75rem;
    line-height: 1.4;
    resize: vertical;
}

/* --- Delete button --- */
.cpe__delete-btn[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.12s ease;
    flex-shrink: 0;
}

.cpe__delete-btn:hover[b-kmf95ze1ho] {
    color: var(--rw-blood-bright);
    border-color: var(--rw-blood);
    background: rgba(139, 37, 0, 0.1);
}

.cpe__delete-btn--sm[b-kmf95ze1ho] {
    width: 20px;
    height: 20px;
    font-size: 0.6rem;
}

/* --- Choices Section --- */
.cpe__choices[b-kmf95ze1ho] {
    margin-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding-top: 0.75rem;
}

.cpe__choices-header[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.cpe__choices-title[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light);
}

.cpe__add-choice-btn[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-gold-light);
    background: transparent;
    border: 1px dashed var(--rw-border-gold);
    border-radius: 3px;
    padding: 0.2rem 0.5rem;
    cursor: pointer;
    transition: all 0.12s ease;
}

.cpe__add-choice-btn:hover[b-kmf95ze1ho] {
    background: var(--rw-gold-ember);
    border-style: solid;
}

.cpe__choice[b-kmf95ze1ho] {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 4px;
    padding: 0.6rem;
    margin-bottom: 0.5rem;
}

.cpe__choice-header[b-kmf95ze1ho] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.cpe__choice-name-display[b-kmf95ze1ho] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--rw-text-dim);
}

.cpe__choices-empty[b-kmf95ze1ho] {
    text-align: center;
    padding: 0.75rem;
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Add Feature Button --- */
.cpe__add-feature-btn[b-kmf95ze1ho] {
    display: block;
    width: 100%;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--rw-gold-light);
    background: transparent;
    border: 1px dashed var(--rw-border-gold);
    border-radius: 6px;
    padding: 0.6rem;
    cursor: pointer;
    transition: all 0.15s ease;
    margin-top: 0.5rem;
}

.cpe__add-feature-btn:hover[b-kmf95ze1ho] {
    background: var(--rw-gold-ember);
    border-style: solid;
    border-color: var(--rw-gold);
}
/* /Components/Shared/ContentItemPicker.razor.rz.scp.css */
.content-picker__label[b-oijriz2bcp] {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rw-gold-light);
    margin-bottom: 0.35rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.content-picker__search-wrap[b-oijriz2bcp] {
    position: relative;
}

.content-picker__dropdown[b-oijriz2bcp] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--rw-bg-surface, #1e1e2e);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 6px;
    max-height: 240px;
    overflow-y: auto;
    margin-top: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.content-picker__option[b-oijriz2bcp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: none;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    color: var(--rw-text-main);
    font-size: 0.85rem;
    cursor: pointer;
    text-align: left;
    transition: background 0.1s ease;
}

.content-picker__option:last-child[b-oijriz2bcp] {
    border-bottom: none;
}

.content-picker__option:hover[b-oijriz2bcp] {
    background: rgba(255, 255, 255, 0.06);
}

.content-picker__option-name[b-oijriz2bcp] {
    flex: 1;
}

.content-picker__option-type[b-oijriz2bcp] {
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    margin-left: 0.5rem;
}

.content-picker__selected[b-oijriz2bcp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 6px;
}

.content-picker__selected-name[b-oijriz2bcp] {
    flex: 1;
    font-size: 0.85rem;
    color: var(--rw-text-main);
}

.content-picker__selected-type[b-oijriz2bcp] {
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
}

.content-picker__clear[b-oijriz2bcp] {
    background: none;
    border: none;
    color: var(--rw-text-dim);
    font-size: 0.8rem;
    cursor: pointer;
    padding: 0 0.2rem;
}

.content-picker__clear:hover[b-oijriz2bcp] {
    color: var(--rw-danger);
}

.content-picker__loading[b-oijriz2bcp],
.content-picker__no-results[b-oijriz2bcp] {
    padding: 0.75rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    margin-top: 2px;
}
/* /Components/Shared/ForkToHomebrewButton.razor.rz.scp.css */
/* =============================================================
   ForkToHomebrewButton — Artisan tool aesthetic
   ============================================================= */

.fhb[b-gqtbidvx98] {
    position: relative;
    display: inline-block;
}

/* --- Trigger Button --- */
.fhb__trigger[b-gqtbidvx98] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rw-gold);
    background: transparent;
    border: 1px solid rgba(196, 160, 64, 0.35);
    border-radius: 4px;
    padding: 0.4rem 0.75rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.fhb__trigger:hover[b-gqtbidvx98] {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.06);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.1);
}

.fhb__trigger:active[b-gqtbidvx98] {
    transform: scale(0.97);
}

.fhb__icon[b-gqtbidvx98] {
    font-size: 0.85rem;
    line-height: 1;
}

.fhb__label[b-gqtbidvx98] {
    line-height: 1;
}

/* --- Floating Panel --- */
.fhb__panel[b-gqtbidvx98] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 50;
    min-width: 260px;
    background: linear-gradient(145deg, var(--rw-bg-bark), var(--rw-bg-moss));
    border: 1px solid var(--rw-border);
    border-top: 2px solid var(--rw-gold);
    border-radius: 0 6px 6px 6px;
    box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.4),
        0 0 1px rgba(196, 160, 64, 0.2);
    overflow: hidden;
}

.fhb__panel-header[b-gqtbidvx98] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.fhb__panel-title[b-gqtbidvx98] {
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
}

.fhb__close[b-gqtbidvx98] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-size: 1.1rem;
    cursor: pointer;
    padding: 0 0.15rem;
    line-height: 1;
    transition: color 0.15s;
}

.fhb__close:hover[b-gqtbidvx98] {
    color: var(--rw-text);
}

/* --- Body --- */
.fhb__body[b-gqtbidvx98] {
    padding: 0.65rem 0.75rem 0.75rem;
}

.fhb__select-label[b-gqtbidvx98] {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rw-text-faint);
    margin-bottom: 0.3rem;
}

.fhb__select[b-gqtbidvx98] {
    width: 100%;
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text);
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: 3px;
    padding: 0.4rem 0.5rem;
    cursor: pointer;
    transition: border-color 0.15s;
    appearance: auto;
}

.fhb__select:focus[b-gqtbidvx98] {
    outline: none;
    border-color: var(--rw-gold);
}

/* --- Actions --- */
.fhb__actions[b-gqtbidvx98] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.fhb__cancel[b-gqtbidvx98] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-text-faint);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.35rem 0.5rem;
    transition: color 0.15s;
}

.fhb__cancel:hover[b-gqtbidvx98] {
    color: var(--rw-text);
}

.fhb__confirm[b-gqtbidvx98] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-bg-void);
    background: linear-gradient(135deg, var(--rw-verdant), var(--rw-verdant-bright));
    border: none;
    border-radius: 3px;
    padding: 0.4rem 0.75rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.fhb__confirm:hover:not(:disabled)[b-gqtbidvx98] {
    filter: brightness(1.1);
    box-shadow: 0 0 8px rgba(76, 153, 76, 0.25);
}

.fhb__confirm:disabled[b-gqtbidvx98] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* --- Spinner --- */
.fhb__spinner[b-gqtbidvx98] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-top-color: var(--rw-bg-void);
    border-radius: 50%;
    animation: fhb-spin-b-gqtbidvx98 0.6s linear infinite;
}

@keyframes fhb-spin-b-gqtbidvx98 {
    to { transform: rotate(360deg); }
}

/* --- States --- */
.fhb__loading[b-gqtbidvx98] {
    padding: 1rem 0.75rem;
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
}

.fhb__empty[b-gqtbidvx98] {
    padding: 0.75rem;
    text-align: center;
}

.fhb__empty p[b-gqtbidvx98] {
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    margin: 0 0 0.4rem;
}

.fhb__create-link[b-gqtbidvx98] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rw-verdant-bright);
    text-decoration: none;
    transition: color 0.15s;
}

.fhb__create-link:hover[b-gqtbidvx98] {
    color: var(--rw-gold-light);
}

.fhb__error[b-gqtbidvx98] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-blood);
    margin-top: 0.4rem;
    padding: 0.3rem 0.4rem;
    background: rgba(180, 40, 40, 0.08);
    border-radius: 2px;
}

.fhb__success[b-gqtbidvx98] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-verdant-bright);
    margin-top: 0.4rem;
    padding: 0.3rem 0.4rem;
    background: rgba(76, 153, 76, 0.08);
    border-radius: 2px;
}
/* /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/JsonKeyValueEditor.razor.rz.scp.css */
.json-kv-editor__label[b-h5xtk59oev] {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rw-gold-light);
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.json-kv-editor__pairs[b-h5xtk59oev] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.5rem;
}

.json-kv-editor__pair[b-h5xtk59oev] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.json-kv-editor__key[b-h5xtk59oev] {
    flex: 0 0 35%;
}

.json-kv-editor__value[b-h5xtk59oev] {
    flex: 1;
}

.json-kv-editor__remove[b-h5xtk59oev] {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    color: var(--rw-text-dim);
    font-size: 0.7rem;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s ease;
}

.json-kv-editor__remove:hover[b-h5xtk59oev] {
    border-color: var(--rw-danger);
    color: var(--rw-danger);
}

.json-kv-editor__empty[b-h5xtk59oev] {
    padding: 0.75rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    border: 1px dashed rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    margin-bottom: 0.5rem;
}

.json-kv-editor__add-btn[b-h5xtk59oev] {
    background: none;
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    color: var(--rw-gold-light);
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.json-kv-editor__add-btn:hover[b-h5xtk59oev] {
    border-color: var(--rw-gold-light);
    background: rgba(var(--rw-gold-rgb, 212, 175, 55), 0.06);
}
/* /Components/Shared/JsonListEditor.razor.rz.scp.css */
.json-list-editor__label[b-we25w12wn9] {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rw-gold-light);
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.json-list-editor__items[b-we25w12wn9] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.json-list-editor__item[b-we25w12wn9] {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    padding: 0.75rem;
}

.json-list-editor__item-header[b-we25w12wn9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.json-list-editor__item-num[b-we25w12wn9] {
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    font-weight: 600;
}

.json-list-editor__item-actions[b-we25w12wn9] {
    display: flex;
    gap: 0.25rem;
}

.json-list-editor__btn[b-we25w12wn9] {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    color: var(--rw-text-dim);
    font-size: 0.7rem;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s ease;
}

.json-list-editor__btn:hover[b-we25w12wn9] {
    background: rgba(255, 255, 255, 0.06);
    color: var(--rw-text-main);
}

.json-list-editor__btn--remove:hover[b-we25w12wn9] {
    border-color: var(--rw-danger);
    color: var(--rw-danger);
}

.json-list-editor__fields[b-we25w12wn9] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
}

.json-list-editor__field-label[b-we25w12wn9] {
    display: block;
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    margin-bottom: 0.15rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.json-list-editor__empty[b-we25w12wn9] {
    padding: 1rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    border: 1px dashed rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    margin-bottom: 0.75rem;
}

.json-list-editor__add-btn[b-we25w12wn9] {
    background: none;
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    color: var(--rw-gold-light);
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    cursor: pointer;
    width: 100%;
    transition: all 0.15s ease;
}

.json-list-editor__add-btn:hover[b-we25w12wn9] {
    border-color: var(--rw-gold-light);
    background: rgba(var(--rw-gold-rgb, 212, 175, 55), 0.06);
}
/* /Components/Shared/Leveling/AbilityScoreIncrease.razor.rz.scp.css */
/* === ASI / FEAT TOGGLE === */
.rw-asi-modes[b-ixhbhy19p4] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.rw-asi-mode-btn[b-ixhbhy19p4] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    padding: 0.4rem 0.85rem;
    border-radius: var(--rw-radius-md, 6px);
    border: 1px solid var(--rw-border, #1a3430);
    background: transparent;
    color: var(--rw-text-dim, #8aab9e);
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-asi-mode-btn:hover[b-ixhbhy19p4] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-asi-mode-btn--active[b-ixhbhy19p4] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.05));
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-light, #dab855);
}

/* === POINTS REMAINING === */
.rw-asi-points[b-ixhbhy19p4] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.85rem;
    color: var(--rw-text-dim, #8aab9e);
    margin-bottom: 0.75rem;
}

.rw-asi-points strong[b-ixhbhy19p4] {
    color: var(--rw-gold-light, #dab855);
}

/* === ABILITY GRID === */
.rw-asi-grid[b-ixhbhy19p4] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

@media (max-width: 480px) {
    .rw-asi-grid[b-ixhbhy19p4] {
        grid-template-columns: repeat(2, 1fr);
    }
}

.rw-asi-ability[b-ixhbhy19p4] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.6rem 0.5rem;
    text-align: center;
    transition: border-color var(--rw-transition, 0.15s ease);
}

.rw-asi-ability--allocated[b-ixhbhy19p4] {
    border-color: var(--rw-gold, #c4a040);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.06), transparent);
}

.rw-asi-ability-name[b-ixhbhy19p4] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    color: var(--rw-text-dim, #8aab9e);
    margin-bottom: 0.3rem;
}

.rw-asi-controls[b-ixhbhy19p4] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.rw-asi-btn[b-ixhbhy19p4] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid var(--rw-border, #1a3430);
    background: transparent;
    color: var(--rw-text-dim, #8aab9e);
    font-size: 0.9rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--rw-transition, 0.15s ease);
    padding: 0;
}

.rw-asi-btn:hover:not(:disabled)[b-ixhbhy19p4] {
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-light, #dab855);
}

.rw-asi-btn:disabled[b-ixhbhy19p4] {
    opacity: 0.25;
    cursor: not-allowed;
}

.rw-asi-value[b-ixhbhy19p4] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rw-text-faint, #5a7e6e);
    min-width: 2rem;
    text-align: center;
}

.rw-asi-value--positive[b-ixhbhy19p4] {
    color: var(--rw-gold-light, #dab855);
}
/* /Components/Shared/Leveling/ChoiceRenderer.razor.rz.scp.css */
/* === CHOICE SECTION === */
.rw-choice-section[b-aw2qp1mc1s] {
    margin-bottom: 1.25rem;
}

.rw-choice-feature-name[b-aw2qp1mc1s] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.15rem;
}

.rw-choice-name[b-aw2qp1mc1s] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    margin-bottom: 0.65rem;
}
/* /Components/Shared/Leveling/FeatChoice.razor.rz.scp.css */
/* === FILTER INPUT === */
.rw-choice-filter[b-toiaqdl4k6] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.45rem 0.75rem;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.85rem;
    color: var(--rw-sage-cream, #c0d4c8);
    width: 100%;
    margin-bottom: 0.75rem;
    transition: border-color var(--rw-transition, 0.15s ease);
    outline: none;
}

.rw-choice-filter[b-toiaqdl4k6]::placeholder {
    color: var(--rw-text-faint, #5a7e6e);
}

.rw-choice-filter:focus[b-toiaqdl4k6] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.1);
}

/* === OPTION CARD GRID === */
.rw-choice-card-grid[b-toiaqdl4k6] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.6rem;
}

.rw-choice-card[b-toiaqdl4k6] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.75rem 0.85rem;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
    position: relative;
}

.rw-choice-card:hover:not(.rw-choice-card--disabled)[b-toiaqdl4k6] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    box-shadow: var(--rw-glow-candle, 0 0 40px rgba(196, 160, 64, 0.06));
}

.rw-choice-card--selected[b-toiaqdl4k6] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.02));
}

.rw-choice-card--disabled[b-toiaqdl4k6] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-choice-card-title[b-toiaqdl4k6] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.2rem;
}

.rw-choice-card-desc[b-toiaqdl4k6] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    line-height: 1.45;
}

.rw-choice-card-disabled-reason[b-toiaqdl4k6] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-blood-bright, #b83a1a);
    margin-top: 0.25rem;
}
/* /Components/Shared/Leveling/FightingStyleChoice.razor.rz.scp.css */
/* === FIGHTING STYLE CARDS === */
.rw-choice-card-grid[b-v1gx7a8nn3] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.6rem;
}

.rw-choice-card[b-v1gx7a8nn3] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.75rem 0.85rem;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-choice-card:hover:not(.rw-choice-card--disabled)[b-v1gx7a8nn3] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    box-shadow: var(--rw-glow-candle, 0 0 40px rgba(196, 160, 64, 0.06));
}

.rw-choice-card--selected[b-v1gx7a8nn3] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.02));
}

.rw-choice-card--disabled[b-v1gx7a8nn3] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-choice-card-title[b-v1gx7a8nn3] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.2rem;
}

.rw-choice-card-desc[b-v1gx7a8nn3] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    line-height: 1.45;
}
/* /Components/Shared/Leveling/GenericOptionChoice.razor.rz.scp.css */
/* === GENERIC OPTION CARDS === */
.rw-choice-card-grid[b-1vlg7ncrln] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.6rem;
}

.rw-choice-card[b-1vlg7ncrln] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.75rem 0.85rem;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-choice-card:hover:not(.rw-choice-card--disabled)[b-1vlg7ncrln] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    box-shadow: var(--rw-glow-candle, 0 0 40px rgba(196, 160, 64, 0.06));
}

.rw-choice-card--selected[b-1vlg7ncrln] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.02));
}

.rw-choice-card--disabled[b-1vlg7ncrln] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-choice-card-title[b-1vlg7ncrln] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.2rem;
}

.rw-choice-card-desc[b-1vlg7ncrln] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    line-height: 1.45;
}

.rw-choice-card-disabled-reason[b-1vlg7ncrln] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-blood-bright, #b83a1a);
    margin-top: 0.25rem;
}

/* === SELECTION COUNT === */
.rw-choice-count[b-1vlg7ncrln] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.85rem;
    color: var(--rw-text-dim, #8aab9e);
    margin-bottom: 0.65rem;
}

.rw-choice-count strong[b-1vlg7ncrln] {
    color: var(--rw-gold-light, #dab855);
}
/* /Components/Shared/Leveling/HpRoller.razor.rz.scp.css */
/* === HP ROLLER === */
.rw-hp-roller[b-d9xozzyby1] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 1rem;
}

.rw-hp-title[b-d9xozzyby1] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.5rem;
}

.rw-hp-stats[b-d9xozzyby1] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    margin-bottom: 0.75rem;
}

.rw-hp-stats strong[b-d9xozzyby1] {
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-hp-methods[b-d9xozzyby1] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.rw-hp-method-btn[b-d9xozzyby1] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    padding: 0.4rem 0.85rem;
    border-radius: var(--rw-radius-md, 6px);
    border: 1px solid var(--rw-border, #1a3430);
    background: transparent;
    color: var(--rw-text-dim, #8aab9e);
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-hp-method-btn:hover[b-d9xozzyby1] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-hp-method-btn--active[b-d9xozzyby1] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.05));
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-light, #dab855);
}

/* === RESULT DISPLAY === */
.rw-hp-result[b-d9xozzyby1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rw-hp-die-value[b-d9xozzyby1] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.3rem;
    font-weight: 700;
    min-width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--rw-radius-sm, 3px);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--rw-border, #1a3430);
    color: var(--rw-sage-cream, #c0d4c8);
    padding: 0 0.4rem;
}

.rw-hp-die-value--rolled[b-d9xozzyby1] {
    color: var(--rw-arcane-cyan, #48b0c0);
    border-color: rgba(72, 176, 192, 0.25);
    background: rgba(72, 176, 192, 0.06);
}

.rw-hp-operator[b-d9xozzyby1] {
    color: var(--rw-text-faint, #5a7e6e);
    font-size: 0.85rem;
}

.rw-hp-con-value[b-d9xozzyby1] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    color: var(--rw-text-dim, #8aab9e);
}

.rw-hp-total[b-d9xozzyby1] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--rw-verdant-bright, #50b068);
    min-width: 2.2rem;
    height: 2.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--rw-radius-sm, 3px);
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(61, 138, 85, 0.2);
    padding: 0 0.5rem;
}

.rw-hp-total--revealed[b-d9xozzyby1] {
    animation: rw-hp-total-reveal-b-d9xozzyby1 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.rw-hp-total-label[b-d9xozzyby1] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    color: var(--rw-verdant, #3d8a55);
    text-transform: uppercase;
}

/* === STAGGER ANIMATION === */
.rw-hp-stagger[b-d9xozzyby1] {
    animation: rw-hp-stagger-in-b-d9xozzyby1 0.25s ease-out both;
}

@keyframes rw-hp-stagger-in-b-d9xozzyby1 {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes rw-hp-total-reveal-b-d9xozzyby1 {
    0% { transform: scale(0.7); }
    60% { transform: scale(1.15); }
    100% { transform: scale(1); }
}

/* === DIE ICON & WOBBLE === */
.rw-hp-die-icon[b-d9xozzyby1] {
    display: inline-block;
    margin-right: 0.25rem;
    transition: transform 0.15s ease;
}

.rw-hp-method-btn--roll:hover .rw-hp-die-icon[b-d9xozzyby1] {
    animation: rw-hp-die-wobble-b-d9xozzyby1 0.4s ease-in-out infinite;
}

@keyframes rw-hp-die-wobble-b-d9xozzyby1 {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-12deg); }
    75% { transform: rotate(12deg); }
}

/* === ROLLING STATE === */
.rw-hp-rolling-text[b-d9xozzyby1] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    color: var(--rw-text-dim, #8aab9e);
    animation: rw-hp-rolling-pulse-b-d9xozzyby1 1s ease-in-out infinite;
}

@keyframes rw-hp-rolling-pulse-b-d9xozzyby1 {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

/* === RE-ROLL CONFIRMATION === */
.rw-hp-reroll-confirm[b-d9xozzyby1] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.82rem;
    color: var(--rw-text-dim, #8aab9e);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.rw-hp-reroll-btn[b-d9xozzyby1] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.5rem;
    border-radius: var(--rw-radius-sm, 3px);
    border: 1px solid var(--rw-border, #1a3430);
    background: transparent;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-hp-reroll-btn--yes[b-d9xozzyby1] {
    color: var(--rw-arcane-cyan, #48b0c0);
    border-color: rgba(72, 176, 192, 0.3);
}

.rw-hp-reroll-btn--yes:hover[b-d9xozzyby1] {
    background: rgba(72, 176, 192, 0.1);
}

.rw-hp-reroll-btn--no[b-d9xozzyby1] {
    color: var(--rw-text-dim, #8aab9e);
}

.rw-hp-reroll-btn--no:hover[b-d9xozzyby1] {
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-hp-method-btn--reroll[b-d9xozzyby1] {
    font-size: 0.72rem;
    padding: 0.25rem 0.6rem;
    color: var(--rw-text-faint, #5a7e6e);
    border-style: dashed;
}

.rw-hp-method-btn--reroll:hover[b-d9xozzyby1] {
    color: var(--rw-arcane-cyan, #48b0c0);
    border-color: rgba(72, 176, 192, 0.3);
}
/* /Components/Shared/Leveling/LevelUpPanel.razor.rz.scp.css */
/* === STEP INDICATOR === */
.rw-level-steps[b-stj1zhy1nk] {
    display: flex;
    align-items: flex-start;
    gap: 0;
    margin-bottom: 1.5rem;
    position: relative;
}

.rw-level-step[b-stj1zhy1nk] {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    position: relative;
    z-index: 1;
}

/* Connecting line between steps */
.rw-level-step:not(:last-child)[b-stj1zhy1nk]::after {
    content: '';
    position: absolute;
    top: 14px;
    left: calc(50% + 16px);
    width: calc(100% - 32px);
    height: 2px;
    background: var(--rw-border, #1a3430);
    transition: background var(--rw-transition-slow, 0.3s ease);
}

.rw-level-step--complete:not(:last-child)[b-stj1zhy1nk]::after {
    background: var(--rw-verdant, #3d8a55);
}

.rw-level-step__marker[b-stj1zhy1nk] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.8rem;
    font-weight: 700;
    border: 2px solid var(--rw-border, #1a3430);
    background: var(--rw-bg-panel, #0f2028);
    color: var(--rw-text-faint, #5a7e6e);
    transition: all var(--rw-transition-slow, 0.3s ease);
}

.rw-level-step--active .rw-level-step__marker[b-stj1zhy1nk] {
    border-color: var(--rw-gold, #c4a040);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.05));
    color: var(--rw-gold-light, #dab855);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.25);
}

.rw-level-step--complete .rw-level-step__marker[b-stj1zhy1nk] {
    border-color: var(--rw-verdant, #3d8a55);
    background: var(--rw-verdant, #3d8a55);
    color: var(--rw-bg-void, #070e14);
}

.rw-level-step__label[b-stj1zhy1nk] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    color: var(--rw-text-faint, #5a7e6e);
    margin-top: 0.35rem;
    text-align: center;
    white-space: nowrap;
    transition: color var(--rw-transition, 0.15s ease);
}

.rw-level-step--active .rw-level-step__label[b-stj1zhy1nk] {
    color: var(--rw-gold-light, #dab855);
}

.rw-level-step--complete .rw-level-step__label[b-stj1zhy1nk] {
    color: var(--rw-verdant-bright, #50b068);
}

/* === SECTION HEADERS === */
.rw-level-heading[b-stj1zhy1nk] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.25rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.75rem;
    letter-spacing: 0.02em;
}

.rw-level-subtext[b-stj1zhy1nk] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    margin-bottom: 1rem;
}

/* === CLASS SELECTION CARDS === */
.rw-level-class-grid[b-stj1zhy1nk] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
}

.rw-level-class-card[b-stj1zhy1nk] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 1rem;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
    position: relative;
    overflow: hidden;
}

.rw-level-class-card[b-stj1zhy1nk]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.06), transparent 60%);
    opacity: 0;
    transition: opacity var(--rw-transition, 0.15s ease);
}

.rw-level-class-card:hover[b-stj1zhy1nk] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    box-shadow: var(--rw-glow-candle, 0 0 40px rgba(196, 160, 64, 0.06));
}

.rw-level-class-card:hover[b-stj1zhy1nk]::before {
    opacity: 1;
}

.rw-level-class-card--selected[b-stj1zhy1nk] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.2), inset 0 0 20px rgba(196, 160, 64, 0.04);
}

.rw-level-class-card--selected[b-stj1zhy1nk]::before {
    opacity: 1;
}

.rw-level-class-name[b-stj1zhy1nk] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.25rem;
}

.rw-level-class-badge[b-stj1zhy1nk] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    color: var(--rw-text-dim, #8aab9e);
    background: rgba(255, 255, 255, 0.04);
    padding: 0.15rem 0.5rem;
    border-radius: var(--rw-radius-pill, 999px);
    border: 1px solid var(--rw-border, #1a3430);
    display: inline-block;
}

/* === FEATURE CARDS === */
.rw-level-feature-list[b-stj1zhy1nk] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.rw-level-feature-card[b-stj1zhy1nk] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.6rem 0.85rem;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-level-feature-card:hover[b-stj1zhy1nk] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.08);
}

.rw-level-feature-card--expanded[b-stj1zhy1nk] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.12);
}

.rw-level-feature-icon[b-stj1zhy1nk] {
    font-size: 0.9rem;
    line-height: 1;
}

.rw-level-feature-header[b-stj1zhy1nk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-level-feature-name[b-stj1zhy1nk] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-level-feature-tag[b-stj1zhy1nk] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.6rem;
    letter-spacing: 0.05em;
    padding: 0.1rem 0.45rem;
    border-radius: var(--rw-radius-pill, 999px);
    text-transform: uppercase;
}

.rw-level-feature-tag--passive[b-stj1zhy1nk] {
    color: var(--rw-text-dim, #8aab9e);
    background: rgba(138, 171, 158, 0.1);
    border: 1px solid rgba(138, 171, 158, 0.15);
}

.rw-level-feature-tag--choice[b-stj1zhy1nk] {
    color: var(--rw-gold-light, #dab855);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.rw-level-feature-tag--resource[b-stj1zhy1nk] {
    color: var(--rw-arcane-cyan, #48b0c0);
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.15);
}

.rw-level-feature-tag--replacement[b-stj1zhy1nk] {
    color: var(--rw-iron-light, #6a8878);
    background: rgba(106, 136, 120, 0.1);
    border: 1px solid rgba(106, 136, 120, 0.15);
}

.rw-level-feature-desc[b-stj1zhy1nk] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.82rem;
    color: var(--rw-text-dim, #8aab9e);
    margin-top: 0.3rem;
    line-height: 1.5;
}

/* === NO FEATURES NOTICE === */
.rw-level-notice[b-stj1zhy1nk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.85rem;
    background: rgba(72, 176, 192, 0.06);
    border: 1px solid rgba(72, 176, 192, 0.12);
    border-radius: var(--rw-radius-md, 6px);
    color: var(--rw-arcane-cyan, #48b0c0);
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

/* === REVIEW CARD === */
.rw-level-review[b-stj1zhy1nk] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    border-radius: var(--rw-radius-md, 6px);
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.rw-level-review-row[b-stj1zhy1nk] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.25rem 0;
}

.rw-level-review-row:not(:last-child)[b-stj1zhy1nk] {
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.rw-level-review-label[b-stj1zhy1nk] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    color: var(--rw-text-faint, #5a7e6e);
    min-width: 90px;
}

.rw-level-review-value[b-stj1zhy1nk] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.9rem;
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-level-review-value--highlight[b-stj1zhy1nk] {
    color: var(--rw-gold-light, #dab855);
    font-weight: 700;
}

/* === FOOTER BUTTONS === */
.rw-level-footer[b-stj1zhy1nk] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
}

.rw-level-btn[b-stj1zhy1nk] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    padding: 0.5rem 1.25rem;
    border-radius: var(--rw-radius-md, 6px);
    border: 1px solid var(--rw-border, #1a3430);
    background: transparent;
    color: var(--rw-text-dim, #8aab9e);
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-level-btn:hover:not(:disabled)[b-stj1zhy1nk] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-level-btn:disabled[b-stj1zhy1nk] {
    opacity: 0.35;
    cursor: not-allowed;
}

.rw-level-btn--primary[b-stj1zhy1nk] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.05));
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-light, #dab855);
}

.rw-level-btn--primary:hover:not(:disabled)[b-stj1zhy1nk] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.1));
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
}

.rw-level-btn--confirm[b-stj1zhy1nk] {
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.2), rgba(61, 138, 85, 0.08));
    border-color: var(--rw-verdant, #3d8a55);
    color: var(--rw-verdant-bright, #50b068);
}

.rw-level-btn--confirm:hover:not(:disabled)[b-stj1zhy1nk] {
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.3), rgba(61, 138, 85, 0.12));
    box-shadow: 0 0 12px rgba(61, 138, 85, 0.15);
}

/* === ERROR === */
.rw-level-error[b-stj1zhy1nk] {
    background: rgba(139, 37, 0, 0.1);
    border: 1px solid rgba(184, 58, 26, 0.25);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.5rem 0.75rem;
    color: var(--rw-blood-bright, #b83a1a);
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

/* === FEATURE REVEAL ANIMATION === */
.rw-feature-reveal[b-stj1zhy1nk] {
    animation: rw-feature-reveal-b-stj1zhy1nk 0.25s ease-out;
}

@keyframes rw-feature-reveal-b-stj1zhy1nk {
    from {
        opacity: 0;
        max-height: 0;
        margin-top: 0;
    }
    to {
        opacity: 1;
        max-height: 200px;
        margin-top: 0.3rem;
    }
}

/* === CELEBRATION === */
.rw-level-celebrate[b-stj1zhy1nk] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    position: relative;
    overflow: hidden;
}

.rw-level-celebrate__flash[b-stj1zhy1nk] {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(196, 160, 64, 0.25), transparent 70%);
    animation: rw-level-celebrate-flash-b-stj1zhy1nk 0.6s ease-out;
    pointer-events: none;
}

.rw-level-celebrate__level[b-stj1zhy1nk] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 3.5rem;
    color: var(--rw-gold-light, #dab855);
    text-shadow: 0 0 40px rgba(196, 160, 64, 0.5), 0 0 80px rgba(196, 160, 64, 0.2);
    animation: rw-level-celebrate-burst-b-stj1zhy1nk 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
    line-height: 1;
    margin-bottom: 0.5rem;
}

.rw-level-celebrate__class[b-stj1zhy1nk] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 1rem;
    letter-spacing: 0.12em;
    color: var(--rw-sage-cream, #c0d4c8);
    text-transform: uppercase;
    animation: rw-level-celebrate-text-b-stj1zhy1nk 0.5s ease-out 0.3s both;
}

@keyframes rw-level-celebrate-flash-b-stj1zhy1nk {
    0% { opacity: 0; }
    30% { opacity: 1; }
    100% { opacity: 0.3; }
}

@keyframes rw-level-celebrate-burst-b-stj1zhy1nk {
    0% { transform: scale(0.3); opacity: 0; }
    60% { transform: scale(1.08); opacity: 1; }
    100% { transform: scale(1); }
}

@keyframes rw-level-celebrate-text-b-stj1zhy1nk {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* === PANEL IDENTITY (via ::deep since SlidePanel is a child component) === */
[b-stj1zhy1nk] .rw-slide-panel--levelup .rw-slide-panel__header {
    border-bottom: 2px solid var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.06) 0%, transparent 100%);
}

[b-stj1zhy1nk] .rw-slide-panel--levelup .rw-slide-panel__title {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    color: var(--rw-gold-light, #dab855);
}
/* /Components/Shared/Leveling/LevelUpSummaryView.razor.rz.scp.css */
/* === SUMMARY CONTAINER === */
.rw-summary[b-oabmakbiia] {
    animation: rw-summary-reveal-b-oabmakbiia 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

/* === HEADER === */
.rw-summary-header[b-oabmakbiia] {
    text-align: center;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--rw-border-gold, rgba(196, 160, 64, 0.18));
}

.rw-summary-class[b-oabmakbiia] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    color: var(--rw-text-dim, #8aab9e);
    text-transform: uppercase;
    margin-bottom: 0.25rem;
}

.rw-summary-level[b-oabmakbiia] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 2rem;
    color: var(--rw-gold-light, #dab855);
    line-height: 1;
    text-shadow: 0 0 20px rgba(196, 160, 64, 0.3);
}

/* === SECTIONS === */
.rw-summary-sections[b-oabmakbiia] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rw-summary-section[b-oabmakbiia] {
    margin-top: 0.75rem;
    padding-top: 0.6rem;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.rw-summary-section-title[b-oabmakbiia] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint, #5a7e6e);
    text-transform: uppercase;
    margin-bottom: 0.4rem;
}

/* === ROWS === */
.rw-summary-row[b-oabmakbiia] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.3rem 0;
}

.rw-summary-label[b-oabmakbiia] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.88rem;
    color: var(--rw-text-dim, #8aab9e);
}

.rw-summary-value[b-oabmakbiia] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.9rem;
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-summary-value--hp[b-oabmakbiia] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.1rem;
    color: var(--rw-verdant-bright, #50b068);
    font-weight: 700;
}

.rw-summary-value--change[b-oabmakbiia] {
    color: var(--rw-gold-light, #dab855);
}

.rw-summary-refresh[b-oabmakbiia] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.6rem;
    letter-spacing: 0.04em;
    color: var(--rw-text-faint, #5a7e6e);
    margin-left: 0.4rem;
}

/* === FEATURES LIST === */
.rw-summary-feature[b-oabmakbiia] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.88rem;
    color: var(--rw-sage-cream, #c0d4c8);
    padding: 0.2rem 0 0.2rem 0.75rem;
    border-left: 2px solid var(--rw-border-gold, rgba(196, 160, 64, 0.18));
}

/* === SPELL SLOTS === */
.rw-summary-slots[b-oabmakbiia] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.rw-summary-slot[b-oabmakbiia] {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-sm, 3px);
    padding: 0.3rem 0.5rem;
    text-align: center;
    min-width: 52px;
}

.rw-summary-slot--changed[b-oabmakbiia] {
    border-color: var(--rw-arcane-blue, #3a80a8);
    background: rgba(58, 128, 168, 0.06);
}

.rw-summary-slot-level[b-oabmakbiia] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.6rem;
    letter-spacing: 0.04em;
    color: var(--rw-text-faint, #5a7e6e);
}

.rw-summary-slot-count[b-oabmakbiia] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1rem;
    color: var(--rw-sage-cream, #c0d4c8);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

.rw-summary-slot-old[b-oabmakbiia] {
    color: var(--rw-text-faint, #5a7e6e);
    font-size: 0.85rem;
}

.rw-summary-slot-new[b-oabmakbiia] {
    color: var(--rw-arcane-cyan, #48b0c0);
}

/* === PREVIEW MODE === */
.rw-summary--preview .rw-summary-level[b-oabmakbiia] {
    color: var(--rw-gold-dim, #a88f3a);
    text-shadow: none;
}

.rw-summary-preview-note[b-oabmakbiia] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-text-faint, #5a7e6e);
    font-style: italic;
    text-align: center;
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}

/* === ANIMATION === */
@keyframes rw-summary-reveal-b-oabmakbiia {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Components/Shared/Leveling/SkillChoice.razor.rz.scp.css */
/* === SKILL SELECTION === */
.rw-skill-count[b-oodzufbouk] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.85rem;
    color: var(--rw-text-dim, #8aab9e);
    margin-bottom: 0.65rem;
}

.rw-skill-count strong[b-oodzufbouk] {
    color: var(--rw-gold-light, #dab855);
}

.rw-skill-list[b-oodzufbouk] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.rw-skill-item[b-oodzufbouk] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.75rem;
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
    user-select: none;
}

.rw-skill-item:hover:not(.rw-skill-item--disabled)[b-oodzufbouk] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
}

.rw-skill-item--selected[b-oodzufbouk] {
    border-color: var(--rw-gold, #c4a040);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.02));
}

.rw-skill-item--disabled[b-oodzufbouk] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* Custom checkbox */
.rw-skill-check[b-oodzufbouk] {
    width: 16px;
    height: 16px;
    border-radius: 3px;
    border: 1.5px solid var(--rw-border, #1a3430);
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-skill-item--selected .rw-skill-check[b-oodzufbouk] {
    border-color: var(--rw-gold, #c4a040);
    background: var(--rw-gold, #c4a040);
}

.rw-skill-check-mark[b-oodzufbouk] {
    display: none;
    width: 10px;
    height: 10px;
    color: var(--rw-bg-void, #070e14);
}

.rw-skill-item--selected .rw-skill-check-mark[b-oodzufbouk] {
    display: block;
}

.rw-skill-name[b-oodzufbouk] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.9rem;
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-skill-desc[b-oodzufbouk] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.78rem;
    color: var(--rw-text-faint, #5a7e6e);
    margin-left: auto;
}

.rw-skill-disabled-reason[b-oodzufbouk] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-blood-bright, #b83a1a);
    margin-left: auto;
}
/* /Components/Shared/Leveling/SpellChoice.razor.rz.scp.css */
/* === SPELL CHOICE === */
.rw-spell-choice[b-bbcawo8w3l] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

/* === FILTERS === */
.rw-spell-filters[b-bbcawo8w3l] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rw-spell-search[b-bbcawo8w3l] {
    flex: 1;
    min-width: 160px;
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.45rem 0.75rem;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.85rem;
    color: var(--rw-sage-cream, #c0d4c8);
    outline: none;
    transition: border-color var(--rw-transition, 0.15s ease);
}

.rw-spell-search[b-bbcawo8w3l]::placeholder {
    color: var(--rw-text-faint, #5a7e6e);
}

.rw-spell-search:focus[b-bbcawo8w3l] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.1);
}

.rw-spell-filter-select[b-bbcawo8w3l] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.45rem 0.6rem;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.8rem;
    color: var(--rw-sage-cream, #c0d4c8);
    outline: none;
    cursor: pointer;
}

.rw-spell-filter-select option[b-bbcawo8w3l] {
    background: var(--rw-bg-panel, #0f2028);
}

/* === COUNT === */
.rw-spell-count[b-bbcawo8w3l] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.85rem;
    color: var(--rw-text-dim, #8aab9e);
}

.rw-spell-count strong[b-bbcawo8w3l] {
    color: var(--rw-gold-light, #dab855);
}

/* === SPELL LIST === */
.rw-spell-list[b-bbcawo8w3l] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 400px;
    overflow-y: auto;
    padding-right: 0.25rem;
}

.rw-spell-list[b-bbcawo8w3l]::-webkit-scrollbar {
    width: 5px;
}

.rw-spell-list[b-bbcawo8w3l]::-webkit-scrollbar-track {
    background: transparent;
}

.rw-spell-list[b-bbcawo8w3l]::-webkit-scrollbar-thumb {
    background: var(--rw-border, #1a3430);
    border-radius: 3px;
}

/* === SPELL CARD === */
.rw-spell-card[b-bbcawo8w3l] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.6rem 0.75rem;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-spell-card:hover:not(.rw-spell-card--known):not(.rw-spell-card--disabled)[b-bbcawo8w3l] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
}

.rw-spell-card--selected[b-bbcawo8w3l] {
    border-color: var(--rw-gold, #c4a040);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.02));
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

.rw-spell-card--known[b-bbcawo8w3l] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-spell-card--disabled[b-bbcawo8w3l] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* === CARD HEADER === */
.rw-spell-card-header[b-bbcawo8w3l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.rw-spell-card-name[b-bbcawo8w3l] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--rw-sage-cream, #c0d4c8);
}

.rw-spell-card-tags[b-bbcawo8w3l] {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}

.rw-spell-level-tag[b-bbcawo8w3l],
.rw-spell-school-tag[b-bbcawo8w3l],
.rw-spell-conc-tag[b-bbcawo8w3l],
.rw-spell-ritual-tag[b-bbcawo8w3l] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.55rem;
    letter-spacing: 0.04em;
    padding: 0.1rem 0.35rem;
    border-radius: var(--rw-radius-pill, 999px);
    white-space: nowrap;
}

.rw-spell-level-tag[b-bbcawo8w3l] {
    color: var(--rw-arcane-cyan, #48b0c0);
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.15);
}

.rw-spell-school-tag[b-bbcawo8w3l] {
    color: var(--rw-text-dim, #8aab9e);
    background: rgba(138, 171, 158, 0.08);
    border: 1px solid rgba(138, 171, 158, 0.12);
}

.rw-spell-conc-tag[b-bbcawo8w3l] {
    color: var(--rw-gold-light, #dab855);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.18);
    font-weight: 700;
}

.rw-spell-ritual-tag[b-bbcawo8w3l] {
    color: var(--rw-verdant-bright, #50b068);
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.18);
}

/* === META === */
.rw-spell-card-meta[b-bbcawo8w3l] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-text-faint, #5a7e6e);
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
}

.rw-spell-meta-sep[b-bbcawo8w3l] {
    opacity: 0.4;
}

.rw-spell-components[b-bbcawo8w3l] {
    color: var(--rw-text-dim, #8aab9e);
}

/* === KNOWN LABEL === */
.rw-spell-known-label[b-bbcawo8w3l] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    color: var(--rw-verdant, #3d8a55);
    margin-top: 0.2rem;
}

/* === DESCRIPTION === */
.rw-spell-card-desc[b-bbcawo8w3l] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    line-height: 1.5;
    margin-top: 0.5rem;
    padding-top: 0.4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
    animation: rw-spell-desc-reveal-b-bbcawo8w3l 0.2s ease-out;
}

@keyframes rw-spell-desc-reveal-b-bbcawo8w3l {
    from {
        opacity: 0;
        max-height: 0;
    }
    to {
        opacity: 1;
        max-height: 500px;
    }
}

/* === EMPTY STATE === */
.rw-spell-empty[b-bbcawo8w3l] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.85rem;
    color: var(--rw-text-faint, #5a7e6e);
    text-align: center;
    padding: 1.5rem;
}
/* /Components/Shared/Leveling/SubclassChoice.razor.rz.scp.css */
/* === SUBCLASS CARDS === */
.rw-choice-card-grid[b-i5i2wzo8nv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.6rem;
}

.rw-choice-card[b-i5i2wzo8nv] {
    background: var(--rw-bg-moss, #142a32);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-md, 6px);
    padding: 0.75rem 0.85rem;
    cursor: pointer;
    transition: all var(--rw-transition, 0.15s ease);
}

.rw-choice-card:hover:not(.rw-choice-card--disabled)[b-i5i2wzo8nv] {
    border-color: var(--rw-border-gold, rgba(196, 160, 64, 0.18));
    box-shadow: var(--rw-glow-candle, 0 0 40px rgba(196, 160, 64, 0.06));
}

.rw-choice-card--selected[b-i5i2wzo8nv] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.02));
}

.rw-choice-card--disabled[b-i5i2wzo8nv] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-choice-card-title[b-i5i2wzo8nv] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--rw-sage-cream, #c0d4c8);
    margin-bottom: 0.2rem;
}

.rw-choice-card-desc[b-i5i2wzo8nv] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.8rem;
    color: var(--rw-text-dim, #8aab9e);
    line-height: 1.45;
}

.rw-choice-card-disabled-reason[b-i5i2wzo8nv] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-blood-bright, #b83a1a);
    margin-top: 0.25rem;
}
/* /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/MonsterLootTableEditor.razor.rz.scp.css */
.loot-editor[b-bmrthx38ia] {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.loot-editor__title[b-bmrthx38ia] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

.loot-editor__subtitle[b-bmrthx38ia] {
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.loot-editor__loading[b-bmrthx38ia],
.loot-editor__no-entries[b-bmrthx38ia] {
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    padding: 0.5rem 0;
}

.loot-editor__empty[b-bmrthx38ia] {
    text-align: center;
    padding: 1.5rem;
    border: 1px dashed rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
}

.loot-editor__empty p[b-bmrthx38ia] {
    margin-bottom: 0.75rem;
}

.loot-editor__table-wrap[b-bmrthx38ia] {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.loot-editor__table-wrap table[b-bmrthx38ia] {
    font-size: 0.85rem;
}

.loot-editor__table-wrap th[b-bmrthx38ia] {
    background: rgba(255, 255, 255, 0.03);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--rw-text-faint);
    font-weight: 600;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.loot-editor__table-wrap td[b-bmrthx38ia] {
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    vertical-align: middle;
}

.loot-editor__type-badge[b-bmrthx38ia] {
    font-size: 0.7rem;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    background: rgba(255, 255, 255, 0.04);
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
}

.loot-editor__remove-btn[b-bmrthx38ia] {
    background: none;
    border: none;
    color: var(--rw-text-dim);
    font-size: 0.8rem;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    border-radius: 3px;
    transition: all 0.15s ease;
}

.loot-editor__remove-btn:hover[b-bmrthx38ia] {
    color: var(--rw-danger);
    background: rgba(var(--rw-danger-rgb, 220, 53, 69), 0.1);
}

.loot-editor__add-section[b-bmrthx38ia] {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.loot-editor__add-form[b-bmrthx38ia] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.loot-editor__field[b-bmrthx38ia] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.loot-editor__field label[b-bmrthx38ia] {
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.loot-editor__field--sm[b-bmrthx38ia] {
    flex: 1;
    min-width: 70px;
}

.loot-editor__row[b-bmrthx38ia] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.loot-editor__currency-section[b-bmrthx38ia] {
    margin-top: 0.25rem;
}

.loot-editor__currency-section summary[b-bmrthx38ia] {
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    cursor: pointer;
    margin-bottom: 0.4rem;
}

.loot-editor__currency-row[b-bmrthx38ia] {
    margin-top: 0.4rem;
}

.loot-editor__danger-zone[b-bmrthx38ia] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}
/* /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/PillSelect.razor.rz.scp.css */
/* ============================================================
   PillSelect — Clickable pill grid for multi-select
   ============================================================ */

.rw-pill-select__label[b-ftyjnzjz4v] {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rw-text-dim);
    margin-bottom: 0.35rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.rw-pill-select__grid[b-ftyjnzjz4v] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

/* Base pill */
.rw-pill-select__pill[b-ftyjnzjz4v] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--rw-radius-pill);
    background: rgba(255, 255, 255, 0.03);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.15s ease;
    user-select: none;
}

.rw-pill-select__pill:hover[b-ftyjnzjz4v] {
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.06);
}

/* Active / selected pill */
.rw-pill-select__pill--active[b-ftyjnzjz4v] {
    border-color: var(--rw-verdant);
    background: rgba(61, 138, 85, 0.15);
    color: var(--rw-verdant-bright);
}

.rw-pill-select__pill--active:hover[b-ftyjnzjz4v] {
    border-color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.25);
    color: var(--rw-verdant-bright);
}

/* Custom pill remove button */
.rw-pill-select__pill--custom[b-ftyjnzjz4v] {
    padding-right: 0.3rem;
}

.rw-pill-select__pill-remove[b-ftyjnzjz4v] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    color: var(--rw-verdant-bright);
    cursor: pointer;
    transition: all 0.15s ease;
}

.rw-pill-select__pill-remove:hover[b-ftyjnzjz4v] {
    background: rgba(184, 58, 26, 0.3);
    color: var(--rw-blood-bright);
}

/* Custom text input inline */
.rw-pill-select__custom-input[b-ftyjnzjz4v] {
    border: 1px dashed rgba(255, 255, 255, 0.1);
    border-radius: var(--rw-radius-pill);
    background: transparent;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    padding: 0.2rem 0.5rem;
    width: 80px;
    outline: none;
    transition: all 0.15s ease;
}

.rw-pill-select__custom-input[b-ftyjnzjz4v]::placeholder {
    color: var(--rw-text-faint);
    opacity: 0.6;
}

.rw-pill-select__custom-input:focus[b-ftyjnzjz4v] {
    border-color: var(--rw-verdant);
    width: 120px;
    background: rgba(255, 255, 255, 0.03);
}
/* /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);
    max-width: 100vw;
    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;
    flex: 1;
    overflow: hidden;
}

.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/SubclassProgressionEditor.razor.rz.scp.css */
/* =============================================================
   SubclassProgressionEditor — Level-tab filtered feature editor
   ============================================================= */

.scpe[b-ju290wczrr] {
    margin-top: 1rem;
}

.scpe__loading[b-ju290wczrr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 0;
}

.scpe__loading-bar[b-ju290wczrr] {
    width: 120px;
    height: 3px;
    background: var(--rw-bg-moss);
    border-radius: 2px;
    overflow: hidden;
    position: relative;
}

.scpe__loading-bar[b-ju290wczrr]::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 40%;
    background: var(--rw-gold);
    border-radius: 2px;
    animation: scpe-slide-b-ju290wczrr 1.2s ease-in-out infinite;
}

@keyframes scpe-slide-b-ju290wczrr {
    0%   { left: -40%; }
    100% { left: 100%; }
}

.scpe__loading-text[b-ju290wczrr] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.scpe__empty[b-ju290wczrr] {
    padding: 2rem;
    text-align: center;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-faint);
    font-size: 0.85rem;
}

/* --- Header --- */
.scpe__header[b-ju290wczrr] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.scpe__actions[b-ju290wczrr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.scpe__dirty-badge[b-ju290wczrr] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light);
    background: var(--rw-gold-ember);
    border: 1px solid var(--rw-border-gold);
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
}

.scpe__save-btn[b-ju290wczrr] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--rw-bg-void);
    background: var(--rw-gold);
    border: 1px solid var(--rw-gold);
    border-radius: 4px;
    padding: 0.35rem 0.75rem;
    cursor: pointer;
    transition: background 0.15s ease;
}

.scpe__save-btn:hover:not(:disabled)[b-ju290wczrr] {
    background: var(--rw-gold-light);
}

.scpe__save-btn:disabled[b-ju290wczrr] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* --- Level Tabs --- */
.scpe__levels[b-ju290wczrr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 1rem;
}

.scpe__level-tab[b-ju290wczrr] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--rw-text-dim);
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: 4px;
    padding: 0.35rem 0.65rem;
    cursor: pointer;
    transition: all 0.12s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.scpe__level-tab:hover[b-ju290wczrr] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: var(--rw-gold-ember);
}

.scpe__level-tab--active[b-ju290wczrr] {
    color: var(--rw-bg-void);
    background: var(--rw-gold);
    border-color: var(--rw-gold);
}

.scpe__level-tab--active:hover[b-ju290wczrr] {
    color: var(--rw-bg-void);
    background: var(--rw-gold-light);
}

.scpe__level-count[b-ju290wczrr] {
    font-size: 0.65rem;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.2);
    color: inherit;
    padding: 0.05rem 0.3rem;
    border-radius: 8px;
    min-width: 16px;
    text-align: center;
}

/* --- Editor --- */
.scpe__editor[b-ju290wczrr] {
    background: rgba(255, 255, 255, 0.015);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    padding: 1rem;
}

.scpe__editor-empty[b-ju290wczrr] {
    text-align: center;
    padding: 1.5rem;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-faint);
    font-size: 0.82rem;
    font-style: italic;
}
/* /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);
}
/* /Components/Shared/ToastContainer.razor.rz.scp.css */
/* ============================================================
   ToastContainer — Floating notification toasts
   ============================================================ */

.rw-toast-container[b-6yc3chp19x] {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 9999;
    display: flex;
    flex-direction: column-reverse;
    gap: 0.5rem;
    pointer-events: none;
    max-width: 360px;
}

.rw-toast[b-6yc3chp19x] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.8rem;
    border-radius: var(--rw-radius-md, 8px);
    background: var(--rw-glass-bg, rgba(18, 30, 22, 0.85));
    backdrop-filter: blur(var(--rw-glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--rw-glass-blur, 12px));
    border: 1px solid rgba(196, 160, 64, 0.15);
    color: var(--rw-sage-cream, #d4c9a8);
    font-family: var(--rw-font-body, 'Alegreya Sans', sans-serif);
    font-size: 0.85rem;
    pointer-events: auto;
    animation: rw-toast-enter-b-6yc3chp19x 0.3s ease;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.rw-toast--exit[b-6yc3chp19x] {
    animation: rw-toast-exit-b-6yc3chp19x 0.3s ease forwards;
}

.rw-toast__icon[b-6yc3chp19x] {
    flex-shrink: 0;
    font-size: 1rem;
}

.rw-toast--success .rw-toast__icon[b-6yc3chp19x] { color: var(--rw-verdant, #4a9); }
.rw-toast--error .rw-toast__icon[b-6yc3chp19x] { color: var(--rw-ember, #c25050); }
.rw-toast--warning .rw-toast__icon[b-6yc3chp19x] { color: var(--rw-gold, #c4a040); }
.rw-toast--info .rw-toast__icon[b-6yc3chp19x] { color: var(--rw-arcane-blue, #5a8abf); }

.rw-toast--success[b-6yc3chp19x] { border-color: rgba(68, 170, 153, 0.25); }
.rw-toast--error[b-6yc3chp19x] { border-color: rgba(194, 80, 80, 0.25); }
.rw-toast--warning[b-6yc3chp19x] { border-color: rgba(196, 160, 64, 0.25); }
.rw-toast--info[b-6yc3chp19x] { border-color: rgba(90, 138, 191, 0.25); }

.rw-toast__message[b-6yc3chp19x] {
    flex: 1;
    min-width: 0;
}

.rw-toast__close[b-6yc3chp19x] {
    flex-shrink: 0;
    background: none;
    border: none;
    color: var(--rw-text-dim, #6a8a7a);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 0 0.15rem;
    transition: color 0.15s ease;
}

.rw-toast__close:hover[b-6yc3chp19x] {
    color: var(--rw-sage-cream, #d4c9a8);
}

@keyframes rw-toast-enter-b-6yc3chp19x {
    from {
        opacity: 0;
        transform: translateX(2rem);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes rw-toast-exit-b-6yc3chp19x {
    from {
        opacity: 1;
        transform: translateX(0);
    }
    to {
        opacity: 0;
        transform: translateX(2rem);
    }
}
